MODULO I: Tema 3: Modelado de Sistemas Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 2 Que es un sistema? q DeIinicion. Cualquier cosa identiIicable. Que realiza una actividad o Iuncion. Esta dotada de una estructura. Evoluciona en el tiempo. Esta dentro de un entorno. Se mueve para alcanzar un objetivo. q Es un conjunto de elementos que interaccionan dinamicamente, organizados en Iuncion a un objetivo. Elementos organizados y estructurados. Elementos que interaccionan (sistema en Iuncionamiento). Elementos organizados para alcanzar un objetivo. Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 3 Que es un Sistema de InIormacion? Sistema compuesto de tres subsistemas: Subsistema Operante. Se encarga de realizar la transIormacion de los Ilujos de entrada en Ilujos de salida elaborados. Subsistema de InIormacion. Aporta la inIormacion necesaria para realizar el proceso transIormador o la toma de decisiones y recoge la inIormacion producida en el proceso. Subsistema de Pilotaje DeIine los objetivos y politicas del negocio que regiran el proceso transIormador. Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 4 Que es un Sistema de InIormacion? Subsistema de Pilotaje Subsistema Operante Subsistema de InIormacion S.I. Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 5 Que es un Modelo? q Es una simplificacin de la realidad que proporciona un plano o vista de un sistema. Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 6 Por que construimos modelos? q EspeciIicar y comunicar la estructura y el comportamiento del sistema. q Comprender mejor el sistema. q Documentar las decisiones. q Controlar el riesgo Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 7 Principios del modelado q Hay que elegir bien los modelos, pues aIecta a la vision que tenemos del mundo. q Todo modelo puede ser expresado a diIerentes niveles de precision. q Todos los modelos simpliIican la realidad, lo importante es que no enmascaren ningun detalle importante. q Un unico modelo no es suIiciente. Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 8 Tipos de Modelos q Existen diIerentes tipos de modelos en Iuncion de lo que se quiere reIlejar en ellos. Modelos estaticos o estructurales. Modelos dinamicos o de comportamiento. Modelos que reIlejan la estructura organizativa y de decision. Modelos Arquitectonicos. Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 9 Construccion de una casa para 'Iido Puede racer|o ura so|a persora Requ|ere: Vode|ado rir|ro Proceso s|rp|e lerrar|erlas s|rp|es Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 10 Construccion de una casa Corslru|da el|c|erlererle y er ur l|erpo razorao|e por ur equ|po Requ|ere: Vode|ado Proceso o|er del|r|do lerrar|erlas rs sol|sl|cadas Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 11 Construccion de un rascacielos Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 12 Claves en el Desarrollo de SI Herramientas Proceso Notacin Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 13 Sistema Computacional Proceso de Negocios Orden Item envo "El modelado captura las partes esenciales del sistema" Abstraccion - Modelado Visual (MV) Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 14 MV para manejar la complejidad Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 15 Interfaz de Usuario (VisuaI Basic, Java, ..) Lgica deI Negocio (C++, Java, ..) Servidor de BDs (C++ & SQL, ..) "ModeIar eI sistema independientemente deI Ienguaje de impIementacin" MV para deIinir la Arquitectura del SoItware Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 16 MItipIes Sistemas MV promueve la reutilizacion Componentes ReutiIizados Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 17 Introduccion al Modelado con UML Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 18 Que es UML? UML UniIied Modeling Language Un lenguaje de proposito general para el modelado orientado a objetos Documento 'OMG UniIied Modeling Language SpeciIication UML combina notaciones procedentes de: Modelado Orientado a Objetos Modelado de Datos Modelado de Componentes Modelado de Flujos de Trabajo (WorkIlows) Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 19 Situacion de Partida Diversos metodos y tecnicas OO, con muchos aspectos en comun pero utilizando distintas notaciones Inconvenientes para el aprendizaje, aplicacion, construccion y uso de herramientas, etc. Pugna entre distintos enIoques (y correspondientes gurus) ~ Necesidad de una notacion estandar Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 20 Historia de UML Comenzo como el 'Metodo UniIicado, con la participacion de Grady Booch y Jim Rumbaugh. Se presento en el OOPSLA`95 El mismo ao se unio Ivar Jacobson. Los 'Tres Amigos son socios en la compaia Rational SoItware. Herramienta CASE Rational Rose Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 21 Historia de UML Nov '97 UML aprobado por el OMG 1998 1999 2000 UHL 1.2 UHL 1.3 UHL 1.4 2001 ? UHL 2.0 Revisiones menores Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 22 Participantes en UML 1.0 Rational SoItware (Grady Booch, Jim Rumbaugh e Ivar Jacobson) Digital Equipment Hewlett-Packard i-Logix (David Harel) IBM ICON Computing (Desmond D`Souza) Intellicorp and James Martin & co. (James Odell) MCI Systemhouse MicrosoIt ObjecTime Oracle Corp. Platinium Technology Sterling SoItware Taskon Texas Instruments Unisys Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 23 UML 'aglutina enIoques OO UML Rumbaugh Jacobson Meyer Harel Wirfs-Brock Fusion Embly Gamma et. al. Shlaer-Mellor Odell Booch Pre- and Post-conditions State Charts Responsabilities Operation descriptions, message numbering Singleton classes Frameworks, patterns, notes Object life cycles Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 24 Aspectos Novedosos DeIinicion semi-formal del Metamodelo de UML Mecanismos de Extension en UML: Stereotvpes Constraints Tagged Jalues Permiten adaptar los elementos de modelado, asignandoles una semantica particular Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 25 Metodos Formales en Modelado Tipos de enIoques: no-Iormales, semi-Iormales y Iormales Las principales mejoras al utilizar metodos Iormales son: Mayor rigor en la especiIicacion Mejores condiciones para realizar la veriIicacion y validacion en Iorma mas exhaustiva Mejores condiciones para automatizacion de procesos para la generacion automatica de prototipos y/o codigo Iinal Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 26 Inconvenientes en UML DeIinicion del proceso de desarrollo usando UML. UML no es una metodologia Falta integracion con respecto de otras tecnicas tales como patrones de diseo, interIaces de usuario, documentacion, etc. Ejemplos aislados 'Monopolio de conceptos, tecnicas y metodos en torno a UML Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 27 Perspectivas de UML UML sera el lenguaje de modelado orientado a objetos estandar predominante los proximos aos Razones: Participacion de metodologos inIluyentes Participacion de importantes empresas Aceptacion del OMG como notacion estandar Evidencias: Herramientas que proveen la notacion UML 'Edicion de libros Congresos, cursos, etc. Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 28 Modelos y Diagramas q Un modelo captura una vista de un sistema del mundo real. Es una abstraccion de dicho sistema, considerando un cierto proposito. Asi, el modelo describe completamente aquellos aspectos del sistema que son relevantes al proposito del modelo, y a un apropiado nivel de detalle. q Diagrama: una representacion graIica de una coleccion de elementos de modelado, a menudo dibujada como un graIo con vertices conectados por arcos Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 29 ... Modelos y Diagramas Un proceso de desarrollo de soItware debe oIrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de inters El cdigo Iuente del sistema es el modelo mas detallado del sistema (y ademas es ejecutable). Sin embargo, se requieren otros modelos ... Cada modelo es completo desde su punto de vista del sistema, sin embargo, existen relaciones de trazabilidad entre los diIerentes modelos Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 30 Diagramas de UML Use 6ase 0|agrams Use 6ase 0|agrams 0|agramas de 6asos de Uso 8cenar|o 0|agrams 8cenar|o 0|agrams 0|agramas de 6o|aborac|n 8tate 0|agrams 8tate 0|agrams 0|agramas de 6omponentes 6omponent 0|agrams 6omponent 0|agrams 0|agramas de 0|str|buc|n 8tate 0|agrams 8tate 0|agrams 0|agramas de 0bjetos 8cenar|o 0|agrams 8cenar|o 0|agrams 0|agramas de Estados Use 6ase 0|agrams Use 6ase 0|agrams 0|agramas de 8ecuenc|a 8tate 0|agrams 8tate 0|agrams 0|agramas de 6|ases 0|agramas de Act|v|dad Hode|o "Un mode|o es una descr|pc|n comp|eta de un s|stema desde una perspect|va concreta" Los d|agramas expresan grf|camente partes de un mode|o Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 31 Tipos de Diagramas de UML Diagrama de Casos de Uso Diagrama de Clase (incluyendo Diagrama de Objetos) Diagramas de Comportamiento Diagrama de Estados Diagrama de Actividad Diagramas de Interaccin Diagrama de Secuencia Diagrama de Colaboracin Diagramas de implementacin Diagrama de Componentes Diagrama de Despliegue Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 32 Cliente Venta Normal Venta en Rebajas Vendedor Venta en Oferta Diagrama de Casos de Uso : Soc i o : Enc argado : Li b ro : Fi c ha li bro : Fi c ha s oc io : P rs t am o Coger li bro Solic i tar prs tamo Verific ar s it uac i n s oc io Si t uac i n s o ci o ok Veri fi car s i tuac in li bro Sit uac in l ibro ok nt roduc ir prs tam o Aut oriz ar p rs t amo Diagrama de Secuencia Diagrama de Actividad : Soci o : E ncar ga do : Libro : Fi cha li b ro : Fi cha s oci o : Prsta mo 1: Coger libro 2: Solicitar prstamo 8: Autorizar prstamo 3: Verifi car si tuacin soci o 4: Si tuacin soci o ok 5: Verifi car situaci n libro 6: Si tuacin li bro ok 7: ntroducir prstamo Diagrama de Colaboracin S i n pr stamo s Con p rstamos A lta B aja P re sta r Devolver [ Nme ro prsta mos = 1 ] P restar Devolve r[ Nm ero pr stamos = 1 ] Nme ro pr sta mo s > 1 Nme ro pr sta mo s = 0 Diagrama de Estados Control y Anlisis Comment Acceso a BD Comment Rutinas de Coneccion Comment nterfaz de Terminal Comment Gestin de Cuentas Comment Diagrama de Componentes Punto de Venta Servidor Central Terminal de Consulta Gestin de Cuentas Comment nterfaz de Terminal Rutinas de Coneccion Rutinas de Coneccion nterfaz de Terminal Rutinas de Coneccion Acceso a BD Comment Control y Anlisis Comment Diagrama de Distribucin Diagrama de Objetos P1: Pr ofesor DN : 59. 455. 111 N Contrato: 1000 Nombr e : Jos Prez Lpez A1: Asignatur a Cdigo:T1-1- 03 Curso: Pri mer o Nombr e : ntroducci n a l a nf ormtica A2: Asignatur a Cdigo: 4-05 Curso: Cuart o Nombr e : ngeni era del Soft ware T2: Tit ul aci n Cdigo: T1 Nombr e : ng. Superi or en nfor mtica T1: Tit ul aci n Cdigo: T1 Nombr e : . Tcnica nf ormtica Si stemas Avin militar Avin comercial Avin de carga Avin de pasajeros Motor Avin 1..4 1 Piloto Vendedor de billetes * 1 Vuelo * 1 1..2 * * 1 Lnea area 1 * 1 1..4 1..2 * 1 * 1 * 1 * * 1 { disjunta, completa } { disjunta, completa } Diagrama de Clases Reserva ... Diagramas de UML Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 33 Hacia un Metodo OO Un proceso de desarrrollo de programas tiene como objetivo la Iormalizacion de las actividades relacionadas con la elaboracion de sistemas inIormaticos Debe ser: Reproducible DeIinido Medible en cuanto a rendimiento Optimizable ... Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 34 Requisitos ImpIement. Pruebas Los Casos de Uso forman Ia unin AnIisis Diseo Capturar, clarificar y validar los casos de uso Realizar los casos de uso verificar se satisfacen los casos de uso . Hacia un Metodo OO Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 35 Las 41 vistas de Kruchten (1995): Vista Lgica Vista de Procesos Vista de Distribucin Vista de Realizacin Vista de los Casos de Uso . Hacia un Metodo OO Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 36 Vista Logica La vista logica describe los aspectos estaticos y dinamicos de un sistema en terminos de clases y objetos. Se usan: Objetos Clases Colaboraciones Interacciones Categorias (paquetes estereotipados) Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 37 Vista de Realizacion Se preocupa de la organizacion de los componentes en el entorno de desarrollo Muestra el reparto de clases en componentes y estos en subsistemas Se usan: Modulos Subprogramas Tareas Subsistemas (paquetes estereotipados) Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 38 Vista de Procesos Representa la descomposicion en Ilujos de ejecucion (threads), la sincronizacion entre Ilujos y la asignacion de objetos y clases en dichos Ilujos. Fiabilidad, rendimiento, etc. Importante en entornos multitarea. Se usan: Tareas, threads, procesos. Interacciones. Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 39 Vista de Distribucion Describe los diIerentes recursos de hardware y la implementacion del programa en dichos recursos Se consideran: Tiempos de respuesta y rendimiento restricciones geograIicas potencia de calculo distribuido sobrecargas tolerancia a Iallos y a averias Se usan: nodos, modulos y programas principales Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 40 Vista de los Casos de Uso Los casos de uso uniIican las cuatro vistas precedentes Se usan: Actores, Casos de uso Clases Colaboraciones Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 41 Realizacion El codigo que realiza las clases, los objetos y las interacciones entre los objetos se almacena en componentes que constituyen los modulos de la estructura Iisica de los sistemas Un programa principal es una especie de componente con codigo ejecutable correspondiente a una o varias interacciones Un programa principal se distribuye sobre nodos en procesos que lo ejecutan Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 42 Ciclo de Vida Iterativo e Incremental El ciclo de vida iterativo se basa en la evolucion de prototipos ejecutables que se muestran a los usuarios y clientes En el ciclo de vida iterativo a cada iteracion se reproduce el ciclo de vida en cascada a menor escala Los objetivos de una iteracion se establecen en Iuncion de la evaluacion de las iteraciones precedentes Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 43 Cada iteracion comprende: PlaniIicar la iteracion (estudio de riesgos) Analisis de los Casos de Uso y escenarios Diseo de opciones arquitectonicas CodiIicacion y pruebas. La integracion del nuevo codigo con el existente de iteraciones anteriores se hace gradualmente durante la construccion Evaluacion de la entrega ejecutable (evaluacion del prototipo en Iuncion de las pruebas y de los criterios deIinidos) Preparacion de la entrega (documentacion e instalacion del prototipo) ...Ciclo de Vida Iterativo e Incremental Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 44 Gestion del Riesgo El analisis de riegos consiste en evaluar el proyecto, la tecnologia y los recursos con el Iin determinar y comprender la naturaleza y el origen de los riesgos Riesgos: Comerciales (competencia, etc.) Financieros (economicos, etc.) Tecnicos (base tecnologica solida y probada?) De desarrollo (equipo experimentado?) El mayor riesgo consiste en no saber donde estan los riesgos Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 45 ...Gestion del Riesgo Cada iteracion se basa en la construccion de un numero reducido de escenarios que se centran primero en los riesgos mas importantes y determinan las clases y las categorias a construir en la iteracion Se distinguen prototipos orientados a la interIaz del usuario, a cuestiones HW, de reutilizacion de programas o a la validacion Iuncional Cada prototipo corresponde a 1 o mas casos de uso Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 46 Reparto de Actividades Requisitos Diseo ImpIementacin Prueba AnIisis PreIiminary Iteration(s) iter. #1 iter. # 2 iter. #n iter. #n+1 ite r. #n+2 iter. #m iter. #m+1 Inicio EIaboration Construction Transition Fases Actividades Una iteracin en Ia fase de eIaboracin Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 47 Fases del Ciclo de Vida El ciclo de vida para UML consiste en una serie de ciclos cada uno de los cuales produce una nueva version del producto Cada ciclo esta compuesto por Iases y cada una de estas Iases esta compuesta por un numero de iteraciones Las Iases son: Estudio de oportunidad (Inicio) Elaboracion Construccion Transicion Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 48 ...Fases del Ciclo de Vida Estudio de oportunidad (Inicio) DeIine el ambito y objetivos del proyecto Se deIine la Iuncionalidad y capacidades del producto Elaboracin Tanto la Iuncionalidad como el dominio del problema se estudian en proIundidad Se deIine una arquitectura basica Se planiIica el proyecto considerando recursos disponibles Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 49 ...Fases del Ciclo de Vida Construccin El producto se desarrolla a traves de iteraciones donde cada iteracion involucra tareas de analisis, diseo e implementacion Las Iases de estudio y analisis solo dieron una arquitectura basica que es aqui reIinada de manera incremental conIorme se construye (se permiten cambios en la estructura) Gran parte del trabajo es programacion y pruebas Se documenta tanto el sistema construido como el manejo del mismo Esta Iase proporciona un producto construido junto con la documentacion Ingenieria del SoItware I (4 I.I.) Modulo 1. Tema 3: Modelado de Sistemas 50 ...Fases del Ciclo de Vida Transicin Se libera el producto y se entrega al usuario para un uso real Se incluyen tareas de marketing, empaquetado atractivo, instalacion, conIiguracion, entrenamiento, soporte, mantenimiento, etc. Los manuales de usuario se completan y reIinan con la inIormacion anterior Estas tareas se realizan tambien en iteraciones