Está en la página 1de 59

Ingeniera de Software

ING. DIEGO GANDINO


Objetivos 2

Conocer los diferentes ciclos de


vida en software.
Comprender las debilidades y
fortalezas de cada uno.
Ser capaz de determinar el
mejor para cada situacin
Introduccin 3

Cuando se desarrolla algo siempre se sigue una


secuencia de pasos para lograr una serie de
tareas.
Por lo general se realizan siempre en el mismo
orden
Proceso 4

Serie de pasos que involucran actividades,


restricciones y recursos para lograr una salida
determinada.
Involucra herramientas y tcnicas.
Caractersticas de un 5

proceso
Establece todas las actividades
Usa recursos, sujeto a restricciones.
Genera productos intermedios y finales
Puede estar compuesto por subprocesos
Cada actividad tiene entradas y salidas
Las actividades se relacionan
Ciclo de vida de software 6

Describe la vida de un producto software desde


su concepcin hasta su implementacin,
entrega, utilizacin y mantenimiento.
Imponen consistencia y estructura.
tiles si se sabe como hacer algo bien y se desea
asegurar que otros lo hagan bien.
Adaptable a herramientas y tcnicas.
Etapas en el desarrollo de 7

soft
Anlisis y definicin de los req.
Diseo de los sistemas.
Diseo de los programas.
Escritura de los programas.
Prueba unitaria.
Prueba de integracin.
Prueba del sistema.
Entrega del sistema, mantenimiento.
Modelos de procesos de 8
software
Ayuda al equipo a encontrar inconsistencias, redundancias y
omisiones en el proceso.
Debe reflejar las metas del desarrollo:
Soft de alta calidad
Localizacin temprana de defectos, etc.
Debe ser adaptado a la situacin actual
Modelo en cascada 9

Concepto del
software

Anlisis de
requerimientos

Diseo global

Diseo detallado

Codificacin y
depuracin

Prueba del
sistema
1
0

Fue el 1 en focalizar un marco de trabajo por


fases.
Secuencia ordenada de pasos.
Se realiza una revisin al final de cada etapa
Dirigido por documentos
Las etapas no se solapan
1
1

Exploracin de conceptos y del sistema


Requerimientos
Diseo
Implementacin
Instalacin
Soporte y operaciones
Mantenimiento
Retiro
1
Ventajas 2

Util para productos con una definicin estable


Trabajo con metodologas conocidas
Ayuda a localizar errores en las 1 etapas
Funciona con personal inexperto.
Define procedimiento de control de calidad
Fcil de determinar los hitos
Permite liberar el personal
1
Desventajas 3

Dificultad para especificar los requerimientos


Olvidar algo supone un error costoso.
La vuelta atrs es posible pero dificil
No soporta la iteracin
Los problemas se detectan solo al final
El usuario no ve el producto hasta terminar
Gran cantidad de documentacin
1
4
El modelo en V
Operacin y
mantenimiento

Validar los
Anlisis de requerimientos Prueba de
requerimientos aceptacin

Diseo del Prueba del


sistema sistema
Verificar el diseo

Diseo del Pruebas unitarias


programa y de integracin

Codificacin
1
5

Variacin del modelo en cascada


Demuestra como se relaciona las pruebas con el
anlisis y diseo.
Centra su foco en las actividades y la exactitud.
Validacin: implementacin de todos los
requerimientos
Verificacin: funciones correctas.
1
Ventajas 6

Enfatiza el planeamiento para la V&V


Fcil de usar
Define los productos que el proceso
debera generar y que cada uno
debe ser probado
1
Desventajas 7

No facilita el manejo de eventos concurrentes


No administra iteracciones entre fases
No est preparado para el cambio de los req.
Los requerimientos se prueban demasiado tarde
1
Codificar y corregir 8

No se selecciona ningn modelo de ciclo de


vida.
Se comienza con una idea general.
Ventajas:
No conlleva ninguna gestin.
Se muestran inmediatamente progreso.
Requiere poca experiencia.
Desventajas
No proporciona medios de evaluacin de calidad
o identificacin de riesgos
1
Espiral 9
2
0

Orientado a riesgos.
Divide un proyecto en subproyectos.
Finaliza del mismo modo que el ciclo
de vida en cascada
Se tienen punto de verificacin en
cada iteracin.
Es un modelo complicado
2
Ventajas 1

Permite que el usuario valide el producto


Provee en forma rpida indicadores de riesgo
El usuario se relaciona con el desarrollo
Combina las ventajas del modelo en cascada
con el incremental
Incrementa la posibilidad de obtener un
producto de calidad
Posibilita la evaluacin constante de los costos
2
Desventajas 2

Si el proyecto es de bajo riesgo o


pequeo el modelo puede ser costoso
Puede resultar muy complejo
Requiere amplia habilidades en riesgos
El espiral puede continuar
indefinidamente
El gran nmero de etapas intermedias
puede generar mucha documentacin
2
Cascada modificado 3

(Sashimi)
Concepto del
software

Anlisis de
requerimientos

Diseo global

Diseo detallado

Codificacin y
depuracin

Prueba del
sistema
2
4

Sugiere un mayor grado de solapamiento


Es una aproximacin razonable para muchos
proyectos
Los hitos son mas ambiguos y hace difcil trazar el
progreso
2
Cascada con 5

subproyectos
Concepto del
software

Diseo detallado
Anlisis de
requerimientos

Codificacin y
depuracin
Diseo global

Prueba del
Diseo detallado
sistema

Diseo detallado

Codificacin y
depuracin

Codificacin y
depuracin
Prueba del
sistema

Prueba del
sistema
2
6

Util en desarrollo con partes conocidas e


implementadas con anterioridad
til para dividir el proyecto en partes que la
desarrollen grupos distintos
2
Prototipado evolutivo 7
2
8

Lo mas dificultoso es la determinacin de


los req. En un proyecto y es el
componente mas difcil de corregir
El sistema se desarrolla en incrementos
Comienza con el prototipo de interfaz de
usuario o cualquier rea de alto riesgo.
Apoya el desarrollo rpido controlando
pronto los riesgos.
Similar a ir a hacer las compras sin un
listado de cosas a comprar
2
Ventajas 9

El usuario puede ver el sistema


Los desarrolladores aprenden de las
opiniones del usuario
Se minimizan los malos entendidos
Los nuevos req se pueden agregar
facilmente
Se involucra al usuario en el desarrollo
Existe un alto control de los riesgos
El costo por retrabajo es menor
3
Desventajas 0

Se puede pasar por alto la calidad


Puede producirse un sistema de bajo
rendimiento
Si el lenguaje de programacin y
prototipado no son compatibles se
puede perder mucho tiempo
Si no se es ordenado o se carece de
un plan se puede caer en una
iteracin indefinida de codificar y
corregir.
3
1

Eficacia
Reduccin potencial de la planificacin nominal
(Excelente)
Mejora en la visibilidad del proyecto (Ex)
Disminuye el riesgo
Riesgos principales
Expectativas poco realistas.
Uso ineficiente del tiempo de prototipado
Expectativas poco realistas de rendimiento
3
2

Riesgos principales (cont...)


Mal diseo
Dificultades para el mantenimiento.
Claves para el xito
Desechar o mantener el prototipo.
Limitar la interaccin del usuario.
Desarrolladores experimentados
Listas de comprobaciones de diseo y calidad
de cdigo
3
Entrega por etapas 3

Concepto del
software

Anlisis de
requerimientos

Diseo global

Etapa1: diseo detallado, codificacin, depuracin, prueba y entrega

Etapa2: diseo detallado, codificacin, depuracin, prueba y entrega

Etapan: diseo detallado, codificacin, depuracin, prueba y entrega


3
4

Se desarrollan las capacidades mas importantes al principio.


Proporciona signos visibles de progreso.
En cada etapa se tiene un producto.
Se comienza con una idea clara.
Funciona mejor para sistemas que se conocen bien
Es similar a ir de compras con una lista.
3
Ventajas 5

Se entrega un nuevo producto en cada


incremento
Las lecciones al final de cada entrega se puede
utilizar en el siguiente incremento
Los costos y el calendario se pueden revisar al
final de cada etapa
Los riesgos se diseminan a lo largo de cada
iteracin
Los riegos por cambios en los req se disminuyen
3
Desventajas 6

La definicin de la funcionalidad completa se


debera hacer al principio
Debido a que algunas partes del sistema se
terminan antes que otras la forma de
comunicacin debe definirse muy bien
Se puede tender a retrasar la solucin de
problemas
El cliente debe entender que el costo total no
ser bajo
Requiere un muy buen planeamiento y diseo
3
7

Eficacia
Reduccin potencial de la planificacin nominal (Ninguna)
Mejora en la visibilidad del proyecto (Buena)
Disminuye el riesgo
Riesgos principales
Cambio de prestaciones.
3
8

Claves para el xito


Definir la 1 entrega en forma que pueda
entregarla tan pronto como pueda.
Entregar las etapas en orden de importancia.
3
Diseo por planificacin 9

Concepto del
software

Anlisis de
requerimientos

Diseo global

Etapa1: diseo detallado, codificacin, depuracin, prueba y entrega

Agotamiento del plazo Etapa2: diseo detallado, codificacin, depuracin, prueba y entrega
o presupuesto

Etapan: diseo detallado, codificacin, depuracin, prueba y entrega


4
Entrega evolutiva 0

Concepto del
software

Anlisis de
requerimientos

Versin final

Diseo global

Desarrollar una
versin

Incorporar la Entregar la
realimentacin versin

Realimentacin
del cliente
4
1

Equilibrio entre el control de la entrega por etapa


y la flexibilidad del prototipado evolutivo.
Reduce el riesgo de entregar el producto que el
cliente no desea
Hace visible el progreso
Reduce el error de estimacin.
Reduce el riesgo de integracin
4
2

Comienza con una idea de lo que se necesita


Es como ir de compra con una lista pero en el
momento agregar nuevas cosas.
4
3

Riesgos
Expectativas poco realistas, debido al rpido
progreso inicial.
Disminucin del control del proyecto.
Cambio de prestaciones
Mala realimentacin del usuario.
Expectativas poco realistas de rendimiento
Mal diseo
4
4

Claves para el xito


Arquitectura pensada en todas las
direcciones.
Definir con cuidado el ncleo del sistema
Decidir si se inclina mas hacia el prototipado
evolutivo o entrega por etapas
Ordenar la funcionalidad desde la mas segura
a la menos segura
4
Rational Unified Process 5

Modelo de proceso iterativo diseado por


Rational, ahora parte de IBM.
Fue diseado para el desarrollo orientado a
objetos basado en UML.
Propone que el desarrollo se haga en ciclos.
Normalmente cada ciclo se encara como un
proyecto, cuya meta es agregar funcionalidad
a un proyecto existente.
No es un sistema con pasos firmemente
establecidos, sino un conjunto de
metodologas adaptables al contexto y
necesidades de cada organizacin.
Cada ciclo se divide en: Iniciacin,
Elaboracin, construccin y Transicin.
4
Principios 6

Adaptar el proceso
Equilibrar prioridades
Demostrar valor iterativamente
organiza las tareas en fases e iteraciones
Colaboracin entre equipos
Elevar el nivel de abstraccin
Patron de software, Lenguajes 4GL, frameworks, etc
Enfocarse en la calidad
4
7
4
8

Fase Iniciacin: Esta fase tiene como propsito


definir y acordar el alcance del proyecto con los
patrocinadores, identificar los riesgos asociados al
proyecto, proponer una visin muy general de la
arquitectura de software y producir el plan de las
fases y el de iteraciones posteriores.
4
9

Fase elaboracin: se seleccionan los casos de uso que


permiten definir la arquitectura base del sistema y se
desarrollaran en esta fase, se realiza la especificacin de los
casos de uso seleccionados y el primer anlisis del dominio
del problema, se disea la solucin preliminar.
5
0

Fase construccin: El propsito de esta fase es


completar la funcionalidad del sistema, para ello
se deben clarificar los requisitos pendientes,
administrar los cambios de acuerdo a las
evaluaciones realizados por los usuarios y se
realizan las mejoras para el proyecto.
5
1

Fase transicin: asegurar que el software est


disponible para los usuarios finales, ajustar los
errores y defectos encontrados en las pruebas de
aceptacin, capacitar a los usuarios y proveer el
soporte tcnico necesario. Se debe verificar que
el producto cumpla con las especificaciones
entregadas por las personas involucradas en el
proyecto.
5
2
5
3
5
4
5
Artefactos (productos) 5

Inicio:
Documento Visin
Especificacin de Requisitos
Elaboracin:
Diagramas de caso de uso
Construccin:
Documento Arquitectura que trabaja con las siguientes vistas:
Vista Lgica
Diagrama de clases
Modelo E-R (Si el sistema as lo requiere)
Vista de Implementacin
Diagrama de Secuencia
Diagrama de estados
Diagrama de Colaboracin
Vista Conceptual
Modelo de dominio
Vista fsica
Mapa de comportamiento a nivel de hardware.
5
6

Cada fase puede tener varias iteraciones, cada iteracin


entrega a un cliente interno o externo. Normalmente en la
etapa de construccin cada iteracin puede entregar
diferentes productos para evaluarlo, beta-tester, obtener
feedback, etc. Igualmente en la etapa de elaboracin la 1
iteracin puede tener una arq. De alto nivel y la siguiente
entrar en los detalles.
Hasta que no finaliza una fase no se comienza con la
siguiente. Por regla general, la fase en la que se realizan
ms iteraciones es la Contruccin.
5
7

Diferentes actividades ingenieriles pueden


hacerse en cada fase para lograr los objetivos.
Una diferencia fundamental de RUP con
respecto a los otros modelos es que separa las
fases de las tareas que se realizan. Por ejemplo
anlisis se puede realizar hasta durante la fase
de construction, cosa que el modelo en
cascada no lo permite.
5
Seleccin del modelo 8

Me compenetro con el cliente en la


especificacin? Es probable que cambien los
requerimientos?
Comprendo la arquitectura?
Cuanta fiabilidad necesito?
Cuanto riesgo conlleva el proyecto?
Estoy sometido a una planificacin predefinida?
Necesito proporcionar signos visibles?
5
Bibliografa 9

Desarrollo y gestin de proyectos informticos


Steve McConnell
Cap. 7-20-21-36
RUP:
http://es.wikipedia.org/wiki/Proceso_Unificado_d
e_Rational

También podría gustarte