Beruflich Dokumente
Kultur Dokumente
Para que el hardware o parte del material de una computadora pueda funcionar,
es necesario tener un conjunto de normas y rdenes para coordinar todos los
procesos que realicen. Este conjunto se denomina Software o parte inmaterial del
sistema. Gracias al Software (integrado por multitud de programas que interactan
unos con otros) pueden ser manejados todos los recursos de que dispone un
sistema para resolver cualquier aplicacin Informtica.
El software es el material que convierte a una computadora en una herramienta.
Sin el software, una computadora es justo un grande, caro, intil, pedazo corto y
grueso de plstico, acero y silicn.
El software es lo que hace a una computadora comprtese la manera que se
necesita. Por ejemplo, el software del procesador de palabras (Word) hace a la
computadora comportarse como una mquina de escribir. El software de un
sistema informtico es el conjunto de elementos lgicos necesarios para realizar
las tareas encomendadas al mismo.
Podemos definirlo del siguiente modo: El software es la parte lgica que dota al
equipo fsico de capacidad para realizar cualquier tipo de trabajos.
Para nombrar al software de un modo ms formal tomaremos la siguiente
definicin:
Software: Definido por la IEEE como "programas de computadora,
procedimientos, documentacin asociada y datos relativos a la operacin de un
sistema informtico".
Las etapas de evolucin que sufri el software a travs de los aos se peden
clasificar como a continuacin se muestra:
Primera era:
Durante los primeros aos lo normal era que el hardware fuera de propsito
general. Por otra parte, el software se diseaba a medida para cada aplicacin y
tena una distribucin relativamente pequea. El software como producto (es decir,
programas desarrollados para ser vendidos a uno o ms clientes) estaba en su
infancia. La mayora del software se desarrollaba y era utilizado por la misma
persona u organizacin. La misma persona lo escriba, lo ejecutaba y, si fallaba, lo
depuraba. Debido a que la movilidad en el trabajo era baja, los ejecutivos estaban
seguros de que esa persona estar all cuando se encontrara algn error. Debido
a este entorno personalizado del software, el diseo era un proceso implcito,
realizado en la mente de alguien, y la documentacin normalmente no exista.
Segunda era:
La segunda era en la evolucin de los sistemas de computadora se extiende
desde la mitad de la dcada de los sesenta hasta finales de los setenta. La
multiprogramacin y los sistemas multiusuario introdujeron nuevos conocimientos
de interaccin hombre-mquina. Las tcnicas interactivas abrieron un nuevo
mundo de aplicaciones y nuevos niveles de sofisticacin del hardware y del
software. Los sistemas de tiempo real podan recoger, analizar y transformar datos
de mltiples fuentes, controlando as los procesos y produciendo salidas en
milisegundos en lugar de en minutos. Los avances en los dispositivos de
almacenamiento en lnea condujeron a la primera generacin de sistemas de
gestin de bases de datos.
La segunda era se caracteriz tambin por el establecimiento del software como
producto y la llegada de las casas del software . El software ya se desarrollaba
para tener una amplia distribucin en un mercado multidisciplinario. Los
programas se distribuan para computadoras grandes y para minicomputadoras, a
cientos e incluso a miles de usuarios.
Tercera era:
La tercer era en la evolucin de los sistemas de computadora comenz a
mediados de los aos setenta y continu ms all de una dcada. El sistema
distribuido, mltiples computadoras, cada ejecutando funciones concurrentemente
Primera Era
Segunda Era
Tercera Era
Cuarta Era
Sistemas personales
Sistemas Distribuidos. potentes.
Orientacin por lotes
(batch).
Distribucin Limitada.
Software a medida.
Multiusuario.
Tiempo Real.
Bases de Datos.
Producto de software.
Incorporacin de
"Inteligencia"
Hardware de bajo
costo.
Impacto en el
consumo.
Tecnologas Orientadas
a Objetos.
Sistemas expertos.
Computacin en
Paralelo.
Redes de computadora
.2 Caractersticas y Aplicaciones.
Hoy en da, el software agrega valor a la empresa, pues es uno de los principales
encargados del manejo de la informacin. Vivimos en le "era de la informacin" ,
las empresas se preocupan por la correcta administracin de su informacin, la
tecnologa de informacin desempea funcin primordial en las organizaciones,
convirtindose en el factor que marca la diferencia para el logro de "ventaja
competitiva" . As, el software realiz su propia revolucin industrial, variando en
su entorno de tal manera que es inconcebible cometer los errores de desarrollo
que se presentaban en la poca del desarrollo de software como "Arte".
Muchas de las causas de las crisis del software se pueden encontrar en una
mitologa que surge durante los primeros aos del desarrollo del software. Hoy, la
mayora de los profesionales competentes consideran a los mitos por lo que son
actitudes errneas que han causado serios problemas, tanto a los gestores como
a los tcnicos. Sin embargo, las viejas actitudes y hbitos son difciles de
modificar, y todava se cree en algunos restos de los mitos del software.
Mitos de gestin.
Los gestores con responsabilidad sobre el software, como los gestores en la
mayora de las disciplinas, estn normalmente bajo la presin de cumplir los
presupuestos, hacer que no se retrase el proyecto y mejorar la calidad.
Mito.
Tenemos ya un libro que esta lleno de estndares y procedimientos para construir
software. No le proporciona ya a mi gente todo lo que necesita saber?.
Realidad.
Esta muy bien que el libro exista, pero se usa?, conocen los trabajadores su
existencia?, refleja las prcticas modernas de desarrollo de software?, es
completo?. En muchos casos, la respuesta a todas estas preguntas es "no".
Mito.
Mi gente dispone de las herramientas de desarrollo de software ms avanzadas,
despus de todo, les compramos las computadoras ms modernas.
Realidad.
Se necesita mucho ms que el ltimo modelo de computadora grande (o de PC)
para hacer desarrollo de software de gran calidad. Las herramientas de ingeniera
del software asistida por computadora (CASE), aunque la mayora todava no se
usen, son ms importantes que el hardware para conseguir buena calidad y
productividad.
Mito.
Si fallamos en la planificacin, podemos aadir ms programadores y adelantar el
tiempo perdido (el llamado algunas veces "concepto de la horda mongoliana").
Realidad.
El desarrollo de software no es un proceso mecnico como la fabricacin. En
palabras de Brooks [BRO75]: << ... aadir gente a un proyecto de software
retrasado lo retrasa an ms>>. Al principio, esta declaracin puede parecer un
contra sentido. Sin embargo, cuando se aaden nuevas personas, le necesidad de
aprender y comunicarse con el equipo puede y hace que se reduzca la cantidad
de tiempo gastado en el desarrollo productivo. Puede aadirse gente, pero slo de
una manera planificada y bien coordinada.
Mitos del cliente.
Un cliente que solicita una aplicacin de software puede ser una persona del
despacho de al lado, un grupo tcnico de la sala de abajo, el departamento de
ventas o una compaa exterior que solicita un software bajo contrato. Los mitos
conducen a que el cliente se cree una falsa expectativa y finalmente, quede
insatisfecho con el que desarrolla el software.
Mito.
Una declaracin general de los objetivos es suficiente para comenzar a escribir los
programes; podemos dar los detalles ms adelante.
Realidad.
Una mala definicin inicial es la principal causa del trabajo baldo en software. Es
esencial una descripcin formal y detallada del mbito de la informacin,
funciones, rendimiento, interfaces, ligaduras del diseo y criterios de validacin.
Estas caractersticas pueden determinarse slo despus de una exhaustiva
comunicacin entre el cliente y el analista.
Mito.
Los requisitos del proyecto cambian continuamente, pero os cambios pueden
acomodarse fcilmente, ya que el software es flexible.
Realidad.
Es verdad que los requisitos del software cambian, pero el impacto del cambio
vara segn el momento en que se introduzca. La Figura 1.5 ilustra el impacto de
los cambios. Si se pone cuidado al dar la definicin inicial, los cambios solicitados
al principio pueden acomodarse fcilmente. El cliente puede revisar los requisitos
y recomendar las modificaciones con relativamente poco impacto en el costo.
Cuando los cambios se solicitan durante el diseo del software, el impacto en el
costo crece rpidamente. Ya se han acordado los recursos a utilizar y se ha
establecido un esqueleto del diseo. Los cambios pueden producir trastornos que
El trabajo que se asocia a la ingeniera del software se puede dividir en tres fases
genricas, con independencia de rea de aplicacin, tamao o complejidad del
proyecto. Cada fase se enfrenta con una o varias cuestiones de las destacadas
anteriormente.
La fase definicin se centra sobre el qu. Es decir, durante la definicin, el que
desarrolla el software intenta identificar qu informacin ha de ser procesada, que
funcin y rendimiento se desea, qu comportamiento del sistema, qu interfases
van a ser establecidas, qu restricciones de diseo existen, y que criterios de
validacin se necesitan para definir un sistema correcto. Por tanto, han de
identificarse los requisitos clave del sistema y del software. Aunque los mtodos
aplicados durante la fase de la definicin variarn dependiendo del paradigma de
ingeniera del software (o combinacin de paradigmas) que se aplique, de alguna
manera tendrn lugar tres tareas principales:
Ingeniera de sistemas o de informacin.
Planificacin del proyecto del software.
Anlisis de los requisitos.
La fase de desarrollo se centra en el cmo. Es decir, durante el desarrollo un
ingeniero de software intenta definir cmo han de disearse las estructuras de
datos, cmo ha de implementarse la funcin como una arquitectura del software,
cmo han de implementarse detalles procedimentales , cmo han de
caracterizarse las interfaces, cmo ha de traducirse el diseo el un lenguaje de
programacin (o lenguaje no procedimental) y cmo ha de realizarse la prueba.
Los mtodos aplicados durante la fase de desarrollo variarn, aunque las tres
tareas especficas tcnicas deberan ocurrir siempre:
Diseo del software.
Generacin de cdigo.
Prueba del software.
La fase de mantenimiento se centra en el cambio. Que va asociado a la
correccin de errores, a las adaptaciones requeridas a medida que evoluciona el
entorno del software, y a cambios debidos a las mejoras producidas por los
requisitos cambiantes del cliente. La fase de mantenimiento vuelve a aplicar los
pagos de las fases de definicin y de desarrollo, pero con el contexto del software
ya existente. Durante la fase de mantenimiento se encuentran cuatro tipos de
cambios:
Fase general
Descripcin
Parte fundamental del desarrollo de software.
De definicin.
De desarrollo.
De
mantenimiento
Pruebas. Una vez que se ha generado un cdigo, comienzan las pruebas del
programa. El proceso de pruebas se centra en los procesos lgico internos del
software, asegurando que todas las sentencias se han comprobado, yen los
proceso externos funcionales, es decir, la realizacin de las pruebas para le
deteccin de errores y el sentirse seguro de que la entrada definida produzca
resultados reales de acuerdo con los resultados requeridos.
Mantenimiento. El software indudablemente sufrir cambios despus de ser
entregado al cliente (una excepcin posible es el software empotrado). Se
producirn cambios porque se han encontrado errores, porque el software debe
adaptarse para acoplarse a los cambios de su entorno externo (p. Ej.: se requiere
un cambio debido a un sistema operativo o dispositivo perifrico nuevo), o porque
el cliente requiere mejoras funcionales o de rendimiento. El mantenimiento vuelve
a aplicar cada una de las fases precedentes a un programa ya existente y no a
uno nuevo.
Este paradigma concibe las fases de desarrollo como proceso independientes en
el tiempo, es decir, no se pueden realizar de manera simultnea; cada fase
empieza cuando se ha terminado la fase anterior y para poder pasar a otra fase es
necesario haber conseguido todos lo objetivos de la etapa previa.
Las etapas de este paradigma se desarrollan en forma secuencial y cuando se
detecta algn error en alguna etapa, lo ms probable ser abandonar todo lo
avanzado y regresar a la etapa primera de anlisis de requisitos del sistema; pues,
aunque la vuelta atrs por etapas es posible, sta demanda mucho esfuerzo y
puede terminar en el colapso.
El paradigma de cascada puro presenta las siguientes ventajas y desventajas.
Ventajas
Desventajas
de
la
Ventajas
Desventajas
El
desarrollador
debe
dar
forma
Permite la retroalimentacin por parte del usuario. prematuramente a un sistema, incluso antes
de comprender de manera bsica el problema
y su funcionamiento.
Desarrollo rpido.
El usuario se siente parte del grupo.
implementar una funcin de gestin. Las descripciones del proceso se crean para
aadir, modificar, suprimir o recuperar un objeto de datos.
Generacin de Aplicaciones. El DRA asume la utilizacin de tcnicas de cuarta
generacin. En lugar de crear software con lenguajes de programacin de tercera
generacin, el proceso DRA trabaja para volver a utilizar componentes de
programas ya existentes (cuando es posible) o a crear componentes reutilizables
(cuando sea necesario). En todos los casos se utilizan herramientas automticas
para facilitar la construccin del software.
Pruebas y Entrega. Como el proceso DRA enfatiza la reutilizacin, ya se han
comprobado muchos de los componentes de los programas. Esto reduce tiempo
de pruebas. Sin embargo, se deben probar todos los componentes nuevos y se
deben ejercitar todas las interfaces a fondo.
El modelo de proceso DRA se ilustra en la Figura 2.6. Obviamente las limitaciones
de tiempo impuestas en un proyecto DRA demandan <<mbito en escalas>>
[KER94]. Si una aplicacin de gestin puede modularse de forma que permita
completarse cada una de las funciones principales en menos de tres meses
(utilizando el enfoque descrito anteriormente), es un candidato del DRA. Cada una
de las funciones pueden ser afrontadas por un equipo DRA diferente y ser
integradas en un solo conjunto.
Desventajas:
Para proyectos grandes aunque por escalas, el DRA requiere recursos humanos
suficientes como para crear el nmero correcto de equipos DRA.
DRA requiere clientes y desarrolladores comprometidos en las rpidas
actividades necesarias para complementar un sistema en un marco de tiempo
abreviado. Si o hay compromiso, por ninguna de las partes constituyentes, los
proyectos DRA fracasarn.
Ventajas
Mientras los costos del modelo
aumentan, los riesgos de proyecto
disminuyen.
Desventajas
Es un modelo complicado.
2. Los datos recogidos en compaas que usan T4G parecen indicar que el
tiempo requerido para producir software se reduce mucho para aplicaciones
pequeas y de tamao medio, y que la cantidad de anlisis y diseo para
las aplicaciones pequeas, tambin se reduce.
Tecnologa de Procesos
Las herramientas de tecnologa de procesos permiten que una organizacin de
software construya un modelo automatizado de la estructura comn del proceso,
conjunto de tareas, y actividades de proteccin.
El modelo, presentado normalmente como una red, se puede analizar para
determinar el flujo de trabajo tpico y para examinar estructuras alternativas de
procesos que pudieran llevar a un tiempo o costo de desarrollo reducidos. Una vez
que se ha creado un proceso aceptable, se pueden utilizar otras herramientas de
tecnologa de procesos para asignar, supervisar, e incluso controlar todas las
tareas de ingeniera del software definidas como parte del modelo de proceso.
Cada uno de los miembros de un equipo de proyecto de software pueden utilizar
tales herramientas para desarrollar una lista de control de tareas de trabajo a
realizarse productos de trabajo a producirse, y actividades de garanta de calidad
a conducirse.
Criterios Generales para Seleccionar un Paradigma:
El ingeniero de sistemas debe estar en capacidad de seleccionar de manera
correcta la utilizacin de alguno de los paradigmas anteriormente mencionados o
una combinacin de ellos, evaluando las principales caractersticas del problema
al cual se enfrentar.
Estas caractersticas se deben captar en la fase de anlisis general del sistema y
debern reforzarse en la etapa de anlisis detallado del sistema. Como puntos de
evaluacin para la seleccin del paradigma adecuado tenemos:
La naturaleza del proyecto, donde se agrupan criterios como la complejidad del
producto final, el conocimiento de la aplicacin por parte del grupo, la utilizacin
final del software, etc..
El control del proyecto y la importancia de los avances, directamente
relacionado con las caractersticas del cliente, sus perspectivas y deseos respecto
al software, la importancia de su inclusin en el grupo de desarrollo del producto,
etc..
Los mtodos y las herramientas disponibles para el desarrollo de cada una de
las fases a realizar.