- 1.
- Los clculos de coste asociados con el desarrollo de software
excesivamente elevados
- Insatisfactorio comportamiento y funcionalidad del software
desarrollado
- Motivacin de los ingenieros a desarrollar nuevos modelos de
desarrollo, incluyendo prototipos, sntesis de software, software
reutilizable,.
Causas para elESTUDIOde Modelos
2.
- Definir las actividades necesarias en el desarrollo de un
Sistema de Informacin.
- Mantener una coherencia entre todos los proyectos de una misma
organizacin.
- Introducir puntos de control para realizar revisiones y
controles de calidad, toma de decisiones.
- Investigacin de paradigmas o modelos de desarrollo.
Necesidades de las organizaciones 3. Marco de referencia que
contiene los procesos, las actividades y las tareas involucradas en
el desarrollo, la explotacin y el mantenimiento de un producto de
software, abarcando la vida del sistema desde la definicin de los
requisitos hasta la finalizacin de su uso. Norma ISO 12207-1 Ciclo
de vida del Software 4. CICLO DE VIDA:Conjunto de etapas que se han
de llevar a cabo para crear, explotar y mantener un Sistema
Informtico. METODOS: Son las normativas que marcan las directrices
que se han de seguir para llevar a cabo una tarea. Responde a la
pregunta QU. TECNICAS: Es un modo de representacin para la solucin
de un problema concreto. Responde a la pregunta CMO. METODOLOGIA:Es
un conjunto coherente de mtodos y tcnicas que cubren ms de una
etapa del ciclo de vida. HERRAMIENTAS: Proporcionan un soporte
automtico o semi-automtico para el proceso y para los mtodos.
DEFINICIONES 5.
- Los paradigmas o modelos de desarrollo de Software son
estrategias de desarrollo para organizar las diversas etapas y
actividades del ciclo de vida del software.
- Describe las transiciones entre las etapas, especificando qu
actividades desarrollar en cada momento.
- Seleccin de un modelo o paradigma especfico dependiendo de
lanaturaleza del proyectoy/o aplicacin, los mtodos, las
herramientas a utilizar, los controles yentregas que se
requieren.
Paradigmas o Modelos de desarrollo 6.
- El trabajo asociado a la ingeniera del Software puede dividirse
en tres fases fundamentales, independientemente del rea de
aplicacin:
Paradigmas o Modelos de desarrollo 7.
-
- Qu informacin que ha de ser procesada,
-
- Qu funcin y rendimiento se desea
-
- Qu comportamiento del sistema
-
- Qu interfaces van a ser establecidas
-
- Qu restricciones de diseo existen
-
- Qu criterios de validacin se necesitan para definir
-
- Dependiendo del paradigma o modelo se definen un conjunto
especfico de actividades, pero las tareas principales sern:
ingeniera de sistema o de informacin, planificacin del proyecto del
software, y anlisis de los requisitos
Paradigmas o Mod. de desarrollo: Fase de definicin 8.
-
- Cmo han de disearse las estructuras de datos,
-
- Cmo ha de implementarse la funcin como una arquitectura del
software
-
- Cmo han de caracterizarse las interfaces
-
- Cmo ha de traducirse el diseo en un lenguaje de
programacin
-
- Cmo ha de realizarse la prueba
-
- Las tareas principales sern: diseo del software, generacin de
cdigo y prueba del software
Paradigmas o Mod. de desarrollo: Fase de desarrollo 9. Fase
centrada 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 producidos por los requisitos cambiantes del
software. Cuatro tipos de cambio: Correccin, Adaptacin (Cambio de
sistema Operativo, reglas de la empresa,etc.), Mejora, Prevencin
(reingeniera) Actividades a realizar: Gestin de riesgos, revisiones
tcnicas formales, mediciones, garantia de calidad del software,
seguimiento y gestion del proyecto de software, gestin de
reutilizaci. Paradigmas o Mod. de desarrollo: Fase de Mantenimiento
10.
- Desglosando las fases anteriores, obtendramos las principales
fases o etapas del ciclo de vida del software
-
- Identificacin del sistema y definicin de requerimientos
-
- Desarrollo e implementacin
-
- Integracin y prueba del software
-
- Mantenimiento del software
Paradigmas o Modelos de desarrollo 11.
- Ciclo de vida en cascada o modelo tradicional (WaterFall)
- Modelo o ciclo de vida en espiral
- Modelos de desarrollo orientados a objetos
Paradigmas o Modelos de desarrollo 12.
- Propuesto por Royce en 1970, popularizado por Boehm en
1981
- Finalidad: Establecer orden en el desarrollo de grandes
productos de software
- Diferentes etapas, las cuales son procesadas de un modo
lineal
- Base de muchos otros modelos, levemente mejorada y retocada a
lo largo del tiempo.
- An en nuestros das sigue siendo muy utilizado.
Paradigmas o Modelos de desarrollo:Ciclo de vida en cascada o
mod. tradicional 13.
- Anima a especificar lo que el sistema ha de hacer (definicin de
requerimientos) antes de la construccin del sistema
- Planea los componentes que van a interaccionar
- Gestiona el encuentro de errores
- Genera un conjunto de documentos para ms tarde ser utilizados y
permitir un buen testeo y mantenimiento del sistema
- Reducir los costes de desarrollo ymantenimiento
- Referente a las tareas a realizar: Organizacin
estructurada
Paradigmas o Modelos de desarrollo:Ciclo de vida en cascada o
mod. tradicional 14. 1. Definicin de requerimientos Estudio
detallado de la situacin actual del problema a tratar, definicin de
los requerimientos que debe cumplir el nuevo sistema 2. Anlisis y
diseo del sistema Descomposicin modular de toda la aplicacin,
descripcin detallada de cada uno de los mdulos y sus
inter-relaciones, todo ello para poder facilitar al mximo la fase
de codificacin 3. Implementacin (codificacin) Cada mdulo como
resultado de la fase anteriores traducido a la herramienta o
lenguaje apropiado. Ciclo de vida en cascada: Etapas(1/2) 15. 4.
Integracin y pruebas Verificacin del correcto funcionamiento de
cada mdulo y todo el sistema una vez ha sido integrado, detectar
errores en la codificacin, definiciones de requerimientos y de
diseo 5. Explotacin y mantenimiento Garantizar el mantenimiento del
sistema, correccin de errores detectados en esta fase, adaptacin
del sistema a nuevos entornos.Cul es la etapa que absorbe la mayora
de tiempo? La fase de explotacin y mantenimiento, yes un coste
adicional para el cliente Ciclo de vida en cascada: Etapas(2/2)
16.
- El establecimiento explcito de todos los requisitos del sistema
al principio del desarrollo.
- Poca flexibilidad para cambios en el sistema. No muestra
interactividad entre fases
- Nada hecho hasta el final. La validacin de los requisitos
iniciales no realizada hasta el final
- La implementacin del sistema de un modo ascendente implica
primero las pruebas modulares, despus la de los subsistemas, y
finalmente la del sistema completo. Los problemas graves suelen
encontrarse en la interficie entre subsistemas
Ciclo de vida en cascada: CRITICA 17. Objetivos principales de
cada una de las fases: 1. Estudio del sistema actual y viabilidad
del nuevo sistema Identificacin de usuarios envueltos, estudio de
su puesto de trabajo, deficiencias actuales, sugerencias de cara al
futuro. Establecer los objetivos del nuevo sistema. Determinar la
viabilidad proponiendo diversas soluciones. Planificacin de
desarrollo. 5% o 10 % del tiempo total del desarrollo. 2. Anlisis
Especificacin estructurada utilizando diferentes tcnicas de
diagramas para modelar el sistema nuevo Ciclo de vida en cascada:
MEJORAS Ciclo de Vida Estructurado (1/3) 18. 3. Diseo Establecer un
conjunto de mdulos e interficies entre ellos, desglosando la
especificacin obtenida en la fase de anlisis, facilitando la tarea
de codificacin, transformacin de los modelos lgicos de datos a
fsicos 4. Implementacin Programacin estructurada descendente e
integracin de los mdulos Ciclo de vida en cascada: MEJORAS Ciclo de
Vida Estructurado (2/3) 19. 5. Generacin de pruebas de aceptacin
Especificacin de un conjunto de pruebas 6. Garanta de calidad. 7.
Descripcin de los procedimientos Toda la documentacin necesaria
para describir tanto los procesos como el producto resultante 8.
Instalacin e implantacin del nuevo sistema al entorno Principal
caracterstica del modelo: la implantacin del sistema descendente.
Abstraccin de sistema, de los subsistemas y finalmente de los
mdulos Ciclo de vida en cascada: MEJORAS Ciclo de Vida Estructurado
(3/3) 20. Ciclo de vida en cascada o mod. tradicional Documentacin
Definicin de requerimientos Anlisis yDiseo del sistema
Implementacin Integracin yPruebas Explotacin y Mantenimiento
21.
- Utilizados principalmente en el desarrollo de sistemas donde
existe un pobre conocimiento de los requerimientos de un sistema o
la rpida evolucin de los mismos a travs del tiempo.
- Captura de requerimientos diseo rpido
- El diseo rpido se centra en una representacin de aquellos
aspectos del software que sern visibles al usuario. El prototipo es
evaluado por el cliente y el usuario yutilizado para refinar los
requerimientos del software a ser desarrollado.
Paradigmas o Modelos de desarrollo:Prototipado 22.
- 1.Preliminar anlisis y especificacin de los requerimientos de
usuario.
- 2.Diseo e implementacin de un prototipo
-
- Enfasis en la interficie de usuario, equipo pequeo para
minimizar los costes de comunicacin. Utilizacin de herramientas de
ayuda al desarrollo.
- 3.Ejercicio del prototipo
- 4.Refinamiento iterativo del prototipo
- 5.Refinamiento de los requerimientos
- 6.Diseo e implementacin de un sistema.
-
- A partir de la fase 6 se sigue con el estndar del ciclo de
vida.
Prototipado : FASES 23. Prototipado 24. Prototipado:
CRITICAS
- El diseo rpido indica muchas de las veces el utilizar
fragmentos de programas ya existentes y herramientas que faciliten
la rpida generacin de programas.
- No se tiene en cuenta la calidad del software, ni
sumantenimiento.
- Ineficiencia de los programas, utilizacin de recursos,
utilizacin de lenguajes inadecuados
25. Prototipado: Para QUE nos puede ser til?
- Cuando el cliente no sabe o no quiere revisar modelos
abstractos de datos (DER o DFD) para la validacin de los resultados
que se van obteniendo.
- No s lo que quiero , pero lo reconocer en cuanto lo vea
- Sistemas on-line donde la importancia reside ms en la
interficie de usuario que en los procesos.
26.
- Descrito por Boehm, mejores caractersticas de los dos modelos
anteriormente expuestos
- Incorpora el factor riego del proyecto al modelo de ciclo de
vida
- Se produce una cadena continua de productos, los cuales estn
disponibles para la examinacin y evaluacin por parte del
cliente
- Provee mecanismos para la aseguracin de la calidad del
software
- La reevaluacin despus de cada fase permite cambios en las
percepciones de los usuarios, avances tecnolgicos o perspectivas
financieras
Paradigmas o Modelos de desarrollo:Modelo o ciclo de vida en
espiral 27.
- Determinacin de objetivos, alternativas, restricciones, y
elaboracin del plan de desarrollo para el ciclo actual.
- Evaluacin de las alternativas, identificacin y resolucin de
riesgos. Se decide si se sigue o no con el proyecto
- Desarrollo del producto siguiendo un modelo:del ciclo de vida o
cascada, prototipo, etc...
Modelo o ciclo de vida en espiral:CUADRANTES 28. Modelo o ciclo
de vida en espiral 29. Modelo o ciclo de vida en espiral:Puntos
Fuertes
- Evita las dificultades de los modelos existentes a travs de un
acercamiento conducido por el riesgo.
- Intenta eliminar errores en las fases tempranas.
- Es el mismo modelo para el desarrollo y el mantenimiento.
- Provee mecanismos para la aseguracin de la calidad del
software.
- Trabaja bien en proyectos complejos, dinmicos e
innovadores.
- La reevaluacin despus de cada fase permite cambios en las
percepciones de los usuarios, avances tecnolgicos o perspectivas
financieras.
- La focalizacin en los objetivos y limitaciones ayuda a asegurar
la calidad.
30. Modelo o ciclo de vida en espiral:Puntos Dbiles
- Falta un proceso de gua explcito para determinar objetivos,
limitaciones y alternativas
- Provee ms flexibilidad que la conveniente para la mayora de las
aplicaciones
- La pericia de tasacin del riesgo no es una tarea fcil. El autor
declara que es necesaria mucha experiencia en proyectos de software
para realizar esta tarea exitosamente
31. Modelo o ciclo de vida en espiral:Dominios
-
- Proyectos complejos, dinmicos, innovadores, ambiciosos,
llevados a cabo por equipos internos (no necesariamente de
software).
- Dominios de aplicacin inapropiados
-
- Dominio de probemas fciles: si el domino del problema est bien
entendido y no hay mayores riesgos, es difcil y consume tiempo
buscar riesgos donde no los hay.