Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ClaseAYD 02a
ClaseAYD 02a
SISTEMAS
SESION 02
Parte 1
UNIVERSIDAD NACIONAL DE INGENIERIA
Facultad de Ingeniería Industrial y de Sistemas
Ing. Jesús Walter Antaurco Trujillo
Wantaurco@yahoo.com
Objetivos
Introducir modelos de proceso del software
Describir tres modelos de proceso genéricos
y cuando pueden ser utilizados
Describir los modelos de proceso para la
ingeniería de requisitos, el desarrollo del
software, pruebas y la evolución
Explicar el modelo de proceso unificado
racional
2
Agenda
Modelos de proceso del software
Iteración del Proceso
Actividades del Proceso
El Proceso Unificado Racional
3
Desarrollo de SI
Comunicación compleja
Origen: desconocido
4
Modelos del ciclo de vida del
software.
Bibliografía
Ian Sommerville 2005 7ma edición Cap. 4
5
El proceso del software
Es la estructura de actividades requeridas para
desarrollar un sistema de Software
Especificación;
Diseño;
Validación;
Evolución.
Un modelo del proceso del software es una
representación abstracta de un proceso.
Representa una descripción de un proceso desde
una perspectiva particular.
6
Modelos genéricos del proceso
del software
El modelo waterfall
Fases distintas y separadas de la especificación y
desarrollo.
Desarrollo Evolutivo
Especificación, desarrollo y validación son interpolados.
Ingeniería de Software basado en componentes
El sistema se ensambla de componentes existentes.
Hay muchas variantes de estos modelos de
desarrollo formal por ejemplo, un proceso del tipo
cascada es utilizado pero la especificación es una
especificación formal que es refinada por varias
etapas a un diseño ejecutable.
7
Modelo Waterfall (cascada)
Primer modelo empleado (Royce 1970)
También denominado
“ciclo de vida clásico” o “paradigma clásico”
“orientado a fases”
“lineal secuencial”
Ejecución secuencial de una serie de fases
Cada fase genera documentación para la
siguiente
Varias propuestas
8
Modelo Waterfall (cascada)
9
Modelo Waterfall por fases
Fases
Análisis y definición de Requisitos
Diseño del Sistema y del software
Implementación y pruebas unitarias
Integración y pruebas del sistema
Implantación y Mantenimiento
La desventaja principal del modelo cascada es la
dificultad del cambio después de que el proceso esté
en curso.
Una fase tiene que estar completa antes de iniciar la
siguiente fase.
10
Problemas del Modelo cascada
La flexibilidad de cambios del proyecto durante los
distintos niveles hace dificultoso atender los
cambios de los requisitos del cliente.
Por lo tanto, este modelo es apropiado cuando los
cambios de los requisitos son limitados durante el
proceso del diseño.
Pocos sistemas del negocio tienen requisitos
estables
El modelo de la cascada se utiliza sobre todo para
los proyectos de la ingeniería de sistemas grandes
donde un sistema se desarrolla en varios sitios o
sistemas de duración corta donde se desarrolla en
un solo sitio. 11
Desarrollo evolutivo
Desarrollo Exploratorio
El objetivo es trabajar con el cliente para explorar sus
requerimientos y entregar un sistema final.
El desarrollo empieza con las partes del sistema que se
comprenden mejor.
El sistema evoluciona agregando nuevos atributos
propuestos por el cliente
Prototipo desechable
El objetivo es entender los requisitos del sistema.
Debe comenzar con los requisitos del cliente que son
mal entendidos para clarificar cuál es realmente
necesario 12
Desarrollo evolutivo
Actividades concurrentes
Versión
Especificación
inicial
Versión
validación final
13
Desarrollo Evolutivo
Problemas
Falta de visibilidad del proceso;
Los Sistemas a menudo son mal estructurados;
Las habilidades especiales (por ejemplo. el lenguaje
para el prototipado rápido) que puede ser requerido.
Aplicabilidad
Para sistemas pequeño o medianos;
Para partes de sistemas grandes (por ejemplo. el
interfaz de usuario);
Para sistemas cuyo ciclo de vida sea corto.
14
Ingeniería de Software basada en
Componentes
Basado en reutilización de sistemas donde los
sistemas son integrados a partir de componentes
existentes ó Sistemas comerciales.
Etapas del Proceso
Análisis de Componentes;
Modificación de Requerimientos;
Diseño de Sistemas con reutilización;
Desarrollo e integración.
Este enfoque esta cada vez más utilizado por la
estandarización de componente que han surgido.
15
Desarrollo Orientado a la
Reutilización
16
Iteración de Procesos
Los cambios son inevitables en todos los
grandes proyectos de software .
Los requerimientos de sistemas cambian
cuando el negocio que soporta el sistema
responde a las presiones externas.
La iteración puede aplicar uno de los modelos
genéricos.
Dos modelos de procesos
Entrega Incremental;
Desarrollo en espiral.
17
Entrega Incremental
En vez de entregar el sistema como una sola entrega,
el desarrollo y la entrega se analiza en incrementos
con cada incremento se entrega la parte de la
funcionalidad requerida.
Los requisitos del usuario son priorizados y los
requisitos con más alta prioridad se incluyen en los
primeros incrementos.
Una vez que el desarrollo de un incremento es
iniciado, los requisitos son congelados aunque los
requisitos para incrementos posteriores pueden
continuar evolucionando.
18
Desarrollo Incremental
19
Modelo Incremental (Pressman 2005) pp. 51-52
Incremento 1
Entrega
Análisis Diseño Código Prueba Incremento 1
Entrega
Incremento 2 Análisis Diseño Código Prueba Incremento 2
Entrega
Incremento 3 Análisis Diseño Código Prueba Incremento 3
Entrega
Incremento 4 Análisis Diseño Código Prueba Incremento 4
Tiempo
21
Programación Extrema
Es una variante del enfoque incremental
Basado en el desarrollo y la entrega de
incrementos pequeños de la
funcionalidad.
Confía en la mejora constante del
código, implicación del usuario en el
equipo y en la programación por
parejas
22
Desarrollo en Espiral
El proceso se representa como espiral en vez de
secuencia de actividades con retorno hacia atrás.
Cada ciclo en la espiral representa una fase en el
proceso.
Las fases no son fijas tales como la especificación o
el diseño – los lazos en la espiral son seleccionados
dependiendo de que es lo que se requiere.
Los riesgos se determinan y se resuelven
explícitamente a través del proceso.
23
Modelo espiral del proceso del
software (Boehm IEEE 1998)
24
Fases del Modelo Espiral
Definición de Objetivos
Se identifican los objetivos específicos para cada
fase.
Evaluación y reducción de riesgos
Se identifican los riesgos y se determinan las
actividades para reducir los riesgos del proyecto.
Desarrollo y validación
Se escoge un modelo de desarrollo para el sistema
eligiendo cualquiera de los modelos genéricos.
Planeamiento
Se revisa el proyecto y se planea la próxima fase del
espiral
25
Actividades del proceso
Especificación de Software
Diseño e implementación de Software
Validación de Software
Evolución de Software
26
Especificación de Software
Es el proceso de comprensión y definición de
qué servicios se requieren del sistema y de la
identificación de las limitaciones de
funcionamiento y desarrollo del.
Procesos de la Ingeniería de Requisitos
Estudio de viabilidad;
Obtención y análisis de Requisitos;
Especificación de Requisitos;
Validación de Requisitos.
27
El proceso de la ingeniería de requisitos
28
Diseño e implementación de
Software
Proceso de convertir la especificación del
sistema en un sistema ejecutable.
Diseño de Software
Diseñar una estructura de software para realizar
la especificación;
Implementación
Traducir la estructura en un programa
ejecutable;
Las actividades del diseño y la
implementación se relacionan y pueden ser
retroalimentados.
29
Actividades del proceso de
diseño
Diseño de la Arquitectura
Especificación abstracta
Diseño de Interfase
Diseño de Componentes
Diseño de la estructura de Datos
Diseño de Algoritmos
30
Proceso del diseño de
software
31
Métodos estructurados
Enfoques sistemáticos para desarrollar un
diseño de software.
El diseño es documentado generalmente
como un conjunto de modelos gráficos.
Modelos Posibles
Modelo de objetos;
Modelo de comportamiento (interacción de
objetos);
Modelo de transición de estados;
Modelo Estructural;
Modelo de flujo de Datos.
32
Programación y depuración de
errores
Traducir un diseño a un programa y depurar
errores del programa.
La programación es una actividad personal
No hay proceso de programación genérico.
Los programadores llevan a cabo algunas
pruebas de código para descubrir los defectos
en el programa y quitar estos defectos en el
proceso de la depuración.
33
El proceso de depuración
34
Validación de Software
Verificación y validación (V & V) se utiliza
para mostrar que un sistema esta conforme
con su especificación y que cumple con las
expectativas del cliente.
Implica procesos de comprobación como las
inspecciones y revisiones.
Probar el sistema implica verificar el sistema
con los casos de la prueba que son derivados
de la especificación de los datos verdaderos
que se procesara por el sistema.
35
Etapas del proceso de pruebas
36
Prueba de componentes
Pruebas unitarias o de componentes
Los componentes individuales se prueban
independientemente;
Los componentes pueden ser funciones u objetos o
conjuntos coherentes de estas entidades
Pruebas del sistema
Pruebas integrales del sistema (funcionales y no
funcionales). Y probar las propiedades emergentes
dado que los componentes se integran para formar el
sistemas.
Pruebas de Aceptación
Probar con datos de cliente para verificar que el
sistema cubre las necesidades de cliente.
37
Fases de Prueba en el proceso
del software
38
Evolución del Software
El software es intrínsecamente flexible y
puede cambiar.
Cuando los requisitos cambian por
circunstancias cambiantes de negocio, el
software que sostiene el negocio debe
evolucionar y también debe cambiar.
Aunque haya existido una separación entre
el desarrollo y la evolución (mantenimiento)
esto es cada vez más irrelevante porque hoy
en día pocos sistemas son completamente
nuevos.
39
Evolución del Sistema
40
ANALISIS Y DISEÑO DE
SISTEMAS
FIN SESION 02
Parte 1
UNIVERSIDAD NACIONAL DE INGENIERIA
Facultad de Ingeniería Industrial y de Sistemas
Ing. Jesús Walter Antaurco Trujillo
Wantaurco@yahoo.com 41