Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El orden de ejecucin de estas y otras actividades determina el ciclo de vida del software.
Procesos Productivos
El proceso de produccin de bienes debe ser:
confiable, predecible, y eficiente.
Codificar y Corregir
En un principio...
el desarrollo de software era una tarea unipersonal, el problema a resolver era claramente comprendido, el programador era el usuario de la aplicacin,
solucin de ecuaciones, clculos astronmicos, balstica;
La definicin precisa de los procesos de produccin hace posible (en algunos casos) la automatizacin. La produccin del software puede verse como un proceso productivo. Pero:
la produccin de software es una actividad intelectual, los requerimientos del software son inestables y por lo tanto el software evoluciona constantemente.
la aplicacin era simple segn estndares actuales, el desarrollo implicaba solamente codificacin en lenguaje de mquina.
Especificacin (a veces) 3
Codificar y Corregir
Modelo Codificar-y-Corregir :
codificar parte del software, corregir errores, agregar funcionalidad o nuevos elementos.
Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.
Nuevas Necesidades
Nuevos aspectos a considerar:
econmicos, de organizacin, psicolgicos.
Carencias
La confiabilidad es esencial:
sistemas bancarios, control de procesos industriales.
Consecuencia
Ms y ms Carencias
El software no satisface las necesidades ni las expectativas del cliente. La calidad no es adecuada. Productos terminados fuera de plazo y presupuesto. La maleabilidad del software no es infinita. Se requiere una etapa de anlisis de requerimientos antes del diseo.
9
Cadena de Consecuencias
Codificar y Corregir Desarrollo Descontrolado
Carencias
Consecuencia
Modelo de Cascada
Se populariz en la dcada de los 70 y gua la mayor parte de la prctica actual. El proceso es una cascada de fases, donde el producto de una fase es la entrada de la siguiente. Cada fase se compone de una serie de actividades que deben realizarse en paralelo. Existen variantes del modelo bsico de cascada, pero todas comparten la misma filosofa.
12
Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.
El Modelo de Cascada
Estudio de factibilidad Especificacin de Requisitos Diseo Codificacin Integracin y Pruebas Instalacin Mantenimiento 13
Tipos de Desarrollos
Una casa de software desarrolla un sistema a medida para un cliente externo. El departamento de computacin desarrolla sistemas de software para otros departamentos de la misma empresa. Una casa de software desarrolla un producto para vender en un mercado horizontal. El estudio de factibilidad es diferente en cada caso.
15 16
Estudio de Factibilidad
Tipo de Aplicacin Experiencia de los Desarrolladores Recursos Disponibles
Anlisis de Factibilidad
A veces es demasiado prematuro tomar decisiones a esta altura, pero no hay alternativa.
18
Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.
Se debe especificar qu cualidades debe tener el software y no cmo lograrlo. La especificacin de requisitos no debe limitar innecesariamente al desarrollador.
19 20
Utilidad de la Especificacin
Requisitos del Software Requisitos del Software
Otro Producto
Plan Plande dePruebas Pruebas
S I S I L N A
Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.
S I S I L N A
Contrato con el Cliente
casos que prueben la satisfaccin de cada funcionalidad especificada
Cualidades y Principios
Los principales principios a aplicar:
separacin de intereses
distintos puntos de vista,
Metodologa
Una empresa de desarrollo puede (debera) tener un estndar de mtodos y procedimientos para realizar el anlisis y especificacin de requisitos:
modelo de datos
diagramas ER, tarjetas CRC;
abstraccin
de lo general a los detalles,
funcionalidad
diagramas de flujo de datos, casos de uso;
modularizacin
datos, funciones y control.
control
redes de Petri, mquinas de estados.
23
24
Diseo
El diseo describe cmo har el sistema para satisfacer sus requisitos. Es la descomposicin del sistema en componentes. Arquitectura del sistema:
qu hacen las componentes? cmo interactan?
Requisitos no funcionales.
Confiabilidad (disponibilidad, integridad, seguridad). Precisin de los resultados, eficiencia. Amigable, portable.
Codificacin
Consiste en escribir programas usando un lenguaje de programacin. El resultado de esta etapa es un conjunto de mdulos programados y probados. Existen estndares de la empresa desarrolladora:
nombres de programas y variables, encabezamientos, nmero mximo de lneas.
Prueba de Mdulos
Las empresas pueden establecer estndares de pruebas:
definicin de un plan de pruebas, criterios de pruebas (caja negra, caja blanca), criterios de fin de las pruebas, administracin de los casos de prueba.
La depuracin (debugging) es parte de esta etapa. Es el control de calidad llevado a cabo en esta etapa. Inspecciones para comprobar adhesin a los estndares.
27 28
Instalacin y Mantenimiento
La distribucin del software se hace en dos etapas:
se instala la aplicacin a un grupo selecto de usuarios (test beta) como experimento controlado, se distribuye el software a todos sus usuarios.
Despus de las pruebas del sistema completo, el software se pone en funcionamiento en la organizacin desarrolladora (test alfa).
El mantenimiento son todas las actividades que ocurren despus que el software est instalado:
corregir errores, agregar nueva funcionalidad.
29
30
Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.
Otras Actividades
Paralelamente a las actividades esenciales del modelo de Cascada, existen otras:
documentacin, verificacin, administracin.
Los cambios son (casi) siempre posibles pero tambin (casi) siempre muy difciles.
31
32
Un Modelo Lineal
Un modelo lineal supone que
todos los requisitos estn disponibles, el diseo elegido es el ms apropiado, la programacin ocurre sin contratiempos, los errores encontrados son fcilmente corregidos.
Un Modelo Rgido
Cada etapa se termina completamente antes de comenzar la siguiente. As, los requisitos estn completos antes del diseo y el cliente no participa ms hasta la instalacin del sistema completo. Si algunas personas terminan su tarea de una etapa antes que los dems, debern esperar a que todos terminen para comenzar la siguiente etapa.
La retroalimentacin permite corregir errores pronto. Debemos intentar ceirnos al desarrollo lineal.
Mantenimiento
35 36
Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.
Un Modelo Monoltico
Se planifica el ciclo de vida de desarrollo para entregar el sistema completo en una fecha dada. El cliente no tiene adelantos del progreso del sistema. Los desarrolladores construyen el sistema basados en los requisitos originales. Los errores slo se detectan despus de instalado el sistema.
Estimacin de tiempo y costo con muy poca informacin. Especificacin de requisitos precisa, pero difcil evaluar si cumple las expectativas del cliente. El cliente no siempre tiene claros sus requisitos . La anticipacin del cambio no se considera esencial. La cantidad de documentos puede volver burocrtico el desarrollo.
38
Modelo de Cascada
37
Consecuencias de la Cascada
Los altos costos de mantenimiento de los sistemas actuales se deben en parte a que los requisitos desarrollados no son siempre las necesidades reales. Problemas contractuales:
quin paga por el mantenimiento? qu hay de las cosas que debieran haber estado en el sistema y no estn?
Modelo Alternativo
Los errores existen siempre y el software est destinado a cambiar. Do it twice (Brooks, 1975).
Primera versin: comprobar factibilidad y requisitos (prototipo desechable). Versin definitiva: construida con el conocimiento ganado con la primera versin (modelo de cascada).
39
40
Incrementos
El modelo evolutivo de desarrollo no implica necesariamente entregas incrementales. Entregas incrementales implican no slo cdigo, sino tambin manuales de uso. Los incrementos deben ser unidades autocontenidas.
41
42
Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.
Modelo Evolutivo
Etapas del modelo:
entregar al cliente algo til, medir el valor agregado del incremento, ajustar el diseo y los objetivos en base a las mediciones.
Variaciones
Implementacin Incremental.
Se sigue el modelo de cascada hasta la etapa de diseo y luego se implementan sucesivos incrementos.
Integracin Incremental.
Los mdulos programados independientemente se van integrado y probando hasta tener el sistema completo.
Desarrollo Incremental.
Se sigue una cascada completa para cada incremento. El usuario da sugerencias para los siguientes desarrollos.
sucesin de pequeas cascadas, ms fcil estimar tiempo y costo de pequeos desarrollos, el mantenimiento es parte del desarrollo.
Prototipo Evolutivo.
43
44
Modelo de Transformaciones
El desarrollo de software es una secuencia de transformaciones que van de la especificacin de requisitos a la implementacin.
Se analizan los requisitos y se los especifica formalmente. Se toma la especificacin y se la refina a un mayor nivel de detalle. Se realizan transformaciones para hacer ejecutable cada parte de la especificacin. Se optimizan algunas implementaciones.
Mecanismos de Transformacin
El ingeniero de software decide qu transformacin aplicar. La derivacin de la transformacin debe ser formalmente correcta. Es conveniente que exista una biblioteca de transformaciones posibles de dnde escoger. En cada transformacin el cliente corrobora que los requisitos se cumplan. El uso de software de apoyo es esencial. El mantenimiento del software se realiza a partir de su historia de especificaciones.
45
46
Generador de Nmeros
(Input/Output Autmatas)
answerg (a)
GENERATORg
numberg (i)
GUESS
Requerimientos
47
48
Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.
Mantenimiento en Transformacin
Modelo de Cascada:
los cambios no se anticipan; el mantenimiento es visto como cambios de emergencia; se realiza bajo presin de los clientes y la gerencia; los cambios suelen hacerse slo en el cdigo; la especificacin y el cdigo divergen con el tiempo.
Modelo de Transformaciones:
la historia de transformaciones de los sistemas est registrada; los cambios se realizan en el punto de la historia apropiado; todas las transformaciones siguientes se aplican nuevamente; se obtiene un sistema formalmente correcto.
50
Un Ideal?
El mtodo de Transformaciones se aplica poco en la prctica. Poco software de apoyo ms all de la investigacin acadmica. La automatizacin nunca es total, requiere de la creatividad del ingeniero de software para elegir la transformacin ms apropiada. Un sistema experto que sugiera la transformacin posible sera de gran ayuda.
Modelo de Espiral
El Modelo de Espiral brinda un marco para desarrollar software controlando los riesgos asociados. Es un metamodelo: aloja los otros modelos como parte de s. Riesgo: circunstancias potencialmente adversas que pueden impedir el proceso de desarrollo y la obtencin de un producto de calidad. Administracin del Riesgo: disciplina cuyo objetivos son identificar, atender y eliminar los riesgos del software antes de que amenacen el xito del 52 proyecto o los costos de rehacer el software.
51
Un Modelo Cclico
El modelo consiste en una serie de ciclos. Cada ciclo tiene cuatro etapas (cuadrantes):
determinar objetivos, evaluar alternativas e identificar riesgos, desarrollar y verificar, planear la siguiente fase.
El radio del espiral representa el costo acumulado por el proceso hasta el momento. El ngulo representa el progreso del proceso.
53
54
Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.