Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de...

39
Análisis y Diseño OO Análisis y Diseño OO Msc. Luis Carlos Díaz, Msc. Luis Carlos Díaz, 2007-3 2007-3 Ingeniería de Ingeniería de Software en el Software en el Contexto de ADOO Contexto de ADOO

Transcript of Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de...

Page 1: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Análisis y Diseño OOAnálisis y Diseño OO

Msc. Luis Carlos Díaz, 2007-3Msc. Luis Carlos Díaz, 2007-3

Ingeniería de Software en Ingeniería de Software en el Contexto de ADOOel Contexto de ADOO

Page 2: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Presentación del CursoPresentación del Curso

Page 3: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Ingeniería de SoftwareIngeniería de Software

Personas

Tecnología

Proceso

Producto

Page 4: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

… … sobre el producto!sobre el producto!

Lo que el director deseaLo que el director desea

Page 5: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

… … sobre el producto!sobre el producto!

Como lo define el Como lo define el líder del proyectolíder del proyecto

Page 6: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

… … sobre el producto!sobre el producto!

Como se diseña el sistemaComo se diseña el sistema

Page 7: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

… … sobre el producto!sobre el producto!

Como lo desarrollanComo lo desarrollanLos programadoresLos programadores

Page 8: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

… … sobre el producto!sobre el producto!

Como es intalado por Como es intalado por los operadoreslos operadores

Page 9: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

… … sobre el producto!sobre el producto!

Lo que realmente quería Lo que realmente quería el usuarioel usuario

Page 10: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

El ciclo de vida del SoftwareEl ciclo de vida del Software

Tiempo …

Nacimiento Muerte

Ciclos desde su nacimiento hasta su muerte

Page 11: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Problemas en el desarrolloProblemas en el desarrollo

El dominio de la aplicación no es conocidoFalta de comunicación con el usuario

Falta de comunicación del grupo de desarrolloCarencia de una buena documentación

Falta de planeaciónSobrecostos

Demoras y cancelación de proyectosMala calidad del producto

No cumplimiento de las necesidades del “Negocio”

Page 12: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Ejemplo: Los Costos!Ejemplo: Los Costos!

¿Cómo solucionar estos problemas y ¿Cómo solucionar estos problemas y suplir los retos del desarrollo de software?suplir los retos del desarrollo de software?

… … Tarea de la Ingeniería de Software!Tarea de la Ingeniería de Software!

ApuestaApuesta: Si el proceso es de calidad : Si el proceso es de calidad El producto resultante de ese proceso es de calidad!!!El producto resultante de ese proceso es de calidad!!!

Page 13: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Sobre el ProcesoSobre el Proceso

Requisitos nuevos

o modificados

Sistema nuevo

o modificado

Proceso de Desarrollo de Software

ConstrucciónConstrucción DesarrolloDesarrollo Mantenimiento del SoftwareMantenimiento del Software

Page 14: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Modelos del Ciclo de VidaModelos del Ciclo de Vida

Diente TiburónEn “V”

Diente de Sierra

Espiral

Cascada

Page 15: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Proceso GeneralProceso General

PRE- DESARROLLOExploración

Asignación del sistema

DESARROLLORequerimientos

AnálisisDiseño

Implementación

POS- DESARROLLOInstalación

Operación & SoporteMantenimiento

Retiro

PROCESOS INTEGRALESVerificación, Validación, Adm. de configuraciones, Documentación, Entrenamiento

ADMINISTRACIÓN DEL PROYECTOInicio, Supervisión, Control, Calidad

Resumen de los principales procesos Resumen de los principales procesos de desarrollo de software:de desarrollo de software:

Page 16: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Modelo de madurez de los Modelo de madurez de los Procesos de Desarrollo de SwProcesos de Desarrollo de Sw

Page 17: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

RUP: Rational Unified ProcessRUP: Rational Unified Process

Page 18: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

FasesFases

Tiempo …

Objetivos(Vision)

Arquitectura CapacidadOperacional

Inicial

Releasedel Producto

Inception Elaboration Construction Transition

Page 19: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

FasesFases

Incepción o Inicio:Incepción o Inicio: visión aproximada del visión aproximada del producto final con base en las producto final con base en las características del negociocaracterísticas del negocio

Elaboración:Elaboración: Visión refinada, núcleo Visión refinada, núcleo central, resolución de riesgos altoscentral, resolución de riesgos altos

Construcción:Construcción: implantación del sistema, implantación del sistema, implementación de requerimientos de implementación de requerimientos de menor riesgo y preparación para el menor riesgo y preparación para el desplieguedespliegue

Transición:Transición: Despliegue del producto Despliegue del producto

Page 20: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Fases e IteracionesFases e Iteraciones

Alcance y ObjetivosAlcance y Objetivos ArquitecturaArquitectura Versión BetaVersión Beta Versión FinalVersión Final

IncepciónIncepción ElaboraciónElaboración ConstrucciónConstrucción TransiciónTransición

Iteración 1

Iteración 1

Iteración 2

Iteración 2

Iteración 3

Iteración 3

Iteración 4

Iteración 4

Entregas internas

(Versiones)

Entregas internas

(Versiones)

Modelado del NegocioModelado del Negocio

RequerimientosRequerimientos

Análisis y DiseñoAnálisis y Diseño

ImplementaciónImplementación

Pruebas (Fiabilidad, Funcionalidad, Rendimiento)

Pruebas (Fiabilidad, Funcionalidad, Rendimiento)

Fases:

Iteraciones:

Disciplinas:

Page 21: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Las IteracionesLas Iteraciones

En cada faseEn cada fase Análisis de RequerimientosAnálisis de Requerimientos DiseñoDiseño ImplementaciónImplementación PruebasPruebas

Se busca un refinamiento sucesivo Se busca un refinamiento sucesivo del sistemadel sistema

Longitud máxima: 2 a 6 semanasLongitud máxima: 2 a 6 semanas Fijar iteraciones cortas y adaptablesFijar iteraciones cortas y adaptables

Page 22: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Elementos del RUPElementos del RUP Workflows (disciplinas primarias, de apoyo)Workflows (disciplinas primarias, de apoyo) WorkersWorkers Actividades y ArtefactosActividades y Artefactos

ActividadesActividades

WorkersWorkers

ArtefactosArtefactos

Page 23: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Características GeneralesCaracterísticas Generales

Dirigido por Casos de UsoDirigido por Casos de Uso Centrado en la ArquitecturaCentrado en la Arquitectura Iterativo e IncrementalIterativo e Incremental

OtrosOtros Desarrollo basado en componentesDesarrollo basado en componentes UML como lenguaje de ModeladoUML como lenguaje de Modelado Proceso IntegradoProceso Integrado

Page 24: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Ventajas del RUPVentajas del RUP

Mitigación temprana de posibles riesgos Mitigación temprana de posibles riesgos altosaltos

Progreso visible en las primeras etapasProgreso visible en las primeras etapas Temprana retroalimentación que se ajuste Temprana retroalimentación que se ajuste

a las necesidades realesa las necesidades reales Gestión de la complejidadGestión de la complejidad Conocimiento adquirido en una iteración Conocimiento adquirido en una iteración

puede aplicarse de iteración a iteraciónpuede aplicarse de iteración a iteración

Page 25: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Buenas prácticasBuenas prácticas

Abordar las cuestiones de alto riesgo y Abordar las cuestiones de alto riesgo y valor en las primeras iteracionesvalor en las primeras iteraciones

Usuarios involucrados continuamenteUsuarios involucrados continuamente Verificar continuamente la calidad desde Verificar continuamente la calidad desde

el principio y con frecuenciael principio y con frecuencia Aplicar casos de usoAplicar casos de uso Modelar el Software visualmenteModelar el Software visualmente Gestión cuidadosa de requisitosGestión cuidadosa de requisitos Control de cambiosControl de cambios

Page 26: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

ModeladoModelado

Mundo Real Mundo Computacional

Situación Software

Proceso

Representaciones “Modelado”

Simplificación de la realidadSimplificación de la realidad Proporciona los planos del sistemaProporciona los planos del sistema Contexto: Incluye elementos que tienen gran influencia y omite aquellos Contexto: Incluye elementos que tienen gran influencia y omite aquellos

menores que no son relevantes para el nivel de abstracción dadomenores que no son relevantes para el nivel de abstracción dado

Page 27: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

ModelosModelos

Ayudan a visualizar cómo es o cómo Ayudan a visualizar cómo es o cómo queremos que sea un sistema.queremos que sea un sistema.

Permiten especificar la estructura o el Permiten especificar la estructura o el comportamiento de un sistemacomportamiento de un sistema

Proporcionan plantillas que nos guían en Proporcionan plantillas que nos guían en la construcción de un sistemala construcción de un sistema

Documentan las decisiones que se Documentan las decisiones que se adoptanadoptan

Page 28: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

¿Por qué modelar Software?¿Por qué modelar Software? Dimensión y complejidadDimensión y complejidad

Sistema Operativo Windows NT: 40 millones LOCSistema Operativo Windows NT: 40 millones LOC No es hecho por una sola personaNo es hecho por una sola persona Equipos de desarrolloEquipos de desarrollo

Entendimiento del desarrollo Entendimiento del desarrollo

Representaciones simples Representaciones simples Medio de manejar la complejidadMedio de manejar la complejidad

Máximas:Máximas: ““Una empresa de software con éxito es aquella que produce de Una empresa de software con éxito es aquella que produce de

una manera consistente software de calidad que satisface las una manera consistente software de calidad que satisface las necesidades del usuario” necesidades del usuario”

““Un buen software satisface las necesidades cambiantes de sus Un buen software satisface las necesidades cambiantes de sus usuarios y de la empresa”[RBJ]usuarios y de la empresa”[RBJ]

Page 29: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Principios del modeladoPrincipios del modelado

““La elección de qué modelos creer tiene una La elección de qué modelos creer tiene una profunda influencia sobre cómo se acomete un profunda influencia sobre cómo se acomete un problema y cómo se da forma a una solución”problema y cómo se da forma a una solución”

““Todo modelo puede ser expresado a diferentes Todo modelo puede ser expresado a diferentes niveles de precisión”niveles de precisión”

““Los mejores modelos están ligados a la realidad”Los mejores modelos están ligados a la realidad”

““Un único modelo no es suficiente. Cualquier Un único modelo no es suficiente. Cualquier sistema no trivial se aborda mejor a través de un sistema no trivial se aborda mejor a través de un pequeño conjunto de modelos casi pequeño conjunto de modelos casi independientes” [RJB]independientes” [RJB]

Page 30: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

UML: Unified Modeling LanguageUML: Unified Modeling Language

Lenguaje de Modelado Unificado!Lenguaje de Modelado Unificado! BoochBooch JacobsonJacobson RumbaughRumbaugh

Taller: Convenciones de modelado Taller: Convenciones de modelado de un pequeño Apto.de un pequeño Apto.

[The Unified Software Development Process. I. Jacobson, G. Booch and J. Rumbaugh. Addison-Wesley, 1999]

Page 31: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Breve Historia de UMLBreve Historia de UML

Érase una vez …Érase una vez …

Método de BoochMétodo de Booch El método OOSE (Object-Oriented El método OOSE (Object-Oriented

Software Engineering) de JacobsonSoftware Engineering) de Jacobson El método OMT (Object Modeling El método OMT (Object Modeling

Technique) de RumbaughTechnique) de Rumbaugh

Page 32: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Breve Historia de UMLBreve Historia de UML

Ventajas de cada uno:Ventajas de cada uno:

Método de BoochMétodo de Booch: Expresivo en diseño : Expresivo en diseño y construcción de proyectosy construcción de proyectos

Método OOSEMétodo OOSE: soporte para casos de : soporte para casos de uso y levantamiento de requerimientosuso y levantamiento de requerimientos

Método OMTMétodo OMT: análisis y sistemas de : análisis y sistemas de información con gran cantidad de datosinformación con gran cantidad de datos

Page 33: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Breve Historia de UMLBreve Historia de UML

Al conocerse …Al conocerse …

Cada uno de los métodos evolucionaba Cada uno de los métodos evolucionaba independientemente hacia los otros dosindependientemente hacia los otros dos

Se pretendía estabilizar el mercado Se pretendía estabilizar el mercado orientado a objetosorientado a objetos

Extraer y complementarse con lo mejor Extraer y complementarse con lo mejor de cada uno de los métodosde cada uno de los métodos

Page 34: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Breve Historia de UMLBreve Historia de UML

¿Cómo unir?¿Cómo unir?

Tener un lenguaje de especificación de Tener un lenguaje de especificación de requerimientos?requerimientos?

Programación visual?Programación visual? Equilibrio entre expresividad y Equilibrio entre expresividad y

simplicidad!simplicidad!

Page 35: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Modelos, Vistas y SistemasModelos, Vistas y Sistemas

Modelo:Modelo: Abstracción de un sistema Abstracción de un sistema Vista:Vista: Aspectos de un modelo Aspectos de un modelo Notación:Notación: representación de Vistas representación de Vistas

Page 36: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

UML: Diagramas de Casos de UsoUML: Diagramas de Casos de Uso

Funcionalidad del sistema desde el Funcionalidad del sistema desde el punto de vista del usuariopunto de vista del usuario

Sistema

Page 37: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

UML: Diagramas de ClaseUML: Diagramas de Clase

Estructura del SistemaEstructura del Sistema

Page 38: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

UML: Diagramas de SecuenciaUML: Diagramas de Secuencia

Comportamiento entre actores y Comportamiento entre actores y objetos del sistemaobjetos del sistema

Page 39: Análisis y Diseño OO Msc. Luis Carlos Díaz, 2007-3 Ingeniería de Software en el Contexto de ADOO.

Bibliografía & ReferenciasBibliografía & Referencias Bernd Bruegge: Ingeniería de Software Orientado a Objetos. Prentice Hall, Bernd Bruegge: Ingeniería de Software Orientado a Objetos. Prentice Hall,

2000.2000.

Jaime Oyarzo Espinosa: Notas de clase Introducción a la Informática. Jaime Oyarzo Espinosa: Notas de clase Introducción a la Informática. Universidad de AlcaláUniversidad de Alcalá

Hugo Cendales: Notas de clase ADOO. Universidad Javeriana, 2007.Hugo Cendales: Notas de clase ADOO. Universidad Javeriana, 2007.

Luis Carlos Díaz: Notas de clase ADOO. Universidad Javeriana, 2006.Luis Carlos Díaz: Notas de clase ADOO. Universidad Javeriana, 2006.

Miguel Torres: Notas de clase ADOO. Universidad Javeriana, 2005.Miguel Torres: Notas de clase ADOO. Universidad Javeriana, 2005.

http://kybele.escet.urjc.es/documentos/ISG/Estructurado/%5BISG-2006-07http://kybele.escet.urjc.es/documentos/ISG/Estructurado/%5BISG-2006-07%5DMetodologiasDesarrolloSW.pdf%5DMetodologiasDesarrolloSW.pdf

Otros Aportes: Comentarios y observaciones de docentes del curso: Deicy Otros Aportes: Comentarios y observaciones de docentes del curso: Deicy Alvarado & Angela Carrillo, 2007Alvarado & Angela Carrillo, 2007