OO - UML 1 Software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos que pertenecen a un sistema de cómputo" Lewis 1994. ING. DE SOFTWARE Es la rama de la ingeniería que aplica los principios de la ciencia de la computación y las matemáticas para lograr soluciones costoefectivas (eficaces en costo o económicas) a los problemas de desarrollo de software " Cota 1994 Es un enfoque sistemático del desarrollo, operación, mantenimiento y retiro del software" Lewis 1994. Ingeniería según [Bohem 1987] es la aplicación de la ciencia y las matemáticas mediante lo cual las propiedades de la materia y las fuentes de energía de la naturaleza se hacen útiles al hombre en estructuras, máquinas, productos, sistemas y procesos 2 1
ING. DE SOFTWARE ES ESTABLECIMIENTOS Y APLICACIÓN DE PRINCIPIOS DE INGENIERIA PARA OBTENER SOFTWARE BAJO LOS CRITERIOS COSTO ECONOMICO FIABILIDAD FUNCIONAMIENTO EFICIENTE SATISFACCION DEL USUARIO SEGURIDAD 3 Métodos o técnicas: Indican cómo construir técnicamente el software, y abarca una serie de tareas: Planificación y estimación de Proyectos Análisis de requerimiento Diseño de estructura de datos, programas y procedimientos Herramientas: Son instrumentos o sistemas automatizados para realizar algo de la mejor manera posible CASE (Computer Aided Software Engineering) ELEMENTOS LA ING. DE SOFTWARE Paradigma Representan un enfoque particular o filosofía para la construcción del software. : Análisis y Diseño orientado a objetos y Análisis y Diseño estructurado. Procedimientos: Son la combinación de las técnicas y las herramientas que en forma conjunta dan un resultado particular. 4 2
ELEMENTOS DE LA ING. DE SOFTWARE PARADIGMA PARADIGMA ANALISIS Y DISEÑO ESTRUCTURADO Basado La Realidad como Elementos Estructurados Tienen PROCEDIMIENTOS Tienen Métodos o Técnicas y Herramientas ANALISIS Y DISEÑO ORIENTADO A OBJETO Basado La Realidad como Objetos Tienen PROCEDIMIENTOS Tienen Métodos o Técnicas y Herramientas 5 FASES GENERALES EN LOS METODOS O TECNICAS DE LA ING DE SOFTWARE Análisis y Requerimientos Especificación Diseño Desarrollo y trabajo en equipo Periodo de definición, análisis de requerimientos y propiedades p que se desean Modelado de lo que se desea Determinación de la arquitectura Hardware - software para cumplir las especificaciones Programación y pruebas en ambiente controlados Mantenimiento Implantación, Prueba, depuración y control de rendimiento. Ajuste del sistema 6 3
Objetivos de la Ingeniería de software Mejorar la calidad de los productos de software Aumentar la productividad y trabajo de los ingenieros del software. Facilitar el control del proceso de desarrollo de software. Suministrar a los desarrolladores las bases para construir software de alta calidad en una forma eficiente. Definir una disciplina que garantice la producción y el mantenimiento de los productos software desarrollados en el plazo fijado y dentro del costo estimado. 7 Objetivos de los proyectos de informáticos Capacidad Aumentan la velocidad de procesamiento Aumento en el volumen Recuperación más rápida de la información Costo Vigilancia de los costos Reducción de costos Control Mayor seguridad de información Menor margen de error 8 4
Objetivos de los proyectos de informáticos Comunicación Interconexión Integración de áreas en las empresas Competitividad Asegurar clientes Dejar fuera a los competidores Mejores acuerdos con los proveedores Formar bases para nuevos productos 9 FUNDAMENTOS DEL PARADIGMA ESTRUCTURADO PROGRAMACION ESTRUCTURADA ESQUEMA MODULAR DE LO GENERAL A LO PARTICULAR 10 5
FUNDAMENTOS DEL PARADIGMA ESTRUCTURADO Símbolos Significado Ejemplo ENTIDAD ESTUDIANTE FLUJO DE DATOS Usuario o dispositivos H/S Nva Información de estudiante Formas; Reportes; Datos Magnéticos PROCESO 2.1 Crear registro Módulos de Software o procedimientos Automáticos- Manuales ALMACEN DE DATOS D3 Maestro de Estudiante Archivos convencionales o estructuras de una base de datos o sencillamente carpetas. 11 PROCEDIMIENTOS DEL PARADIGMA ESTRUCTURADO CICLO DE VIDA Conocimiento y Establecimiento de lo que se desea Esquema de lo que se desea DETERMINACION DE REQUERIMIENTOS DISEÑO DEL SISTEMA Factibilidad INVESTIGACION PRELIMINAR Programación DESARROLLO DEL SOFTWARE PRUEBA IMPLANTACION Y EVALUACION 12 6
PROCEDIMIENTOS DEL PARADIGMA ESTRUCTURADO PROTOTIPO IDENTIFICAR LOS REQUERIMIENTOS DESARROLLAR EL PROTOTIPO UTILIZAR EL PROTOTIPO NO REVISAR EL PROTOTIPO Satisfacción? SI Puesta en Funcionamiento 13 PROCEDIMIENTOS DEL PARADIGMA ESTRUCTURADO ANALISIS ESTRUCTURADO - DFD EJEMPLO DFD NIVEL 0 Ofertas Productos/Materia prima Facturas PROVEDORES Pagos Servicio/Factura de Arepas FABRICA DE AREPA DOÑA PEPA Orden de Compra Pagos CLIENTES Solicitud o Pedido de Arepas 14 7
PROCEDIMIENTOS DEL PARADIGMA ESTRUCTURADO ANALISIS ESTRUCTURADO - DFD EJEMPLO DFD NIVEL 1 Solicitud o Pedido de Arepas Facturas-Recepcion 1.0 CHEQUEO Y RECEPCION DE PEDIDO CLIENTES Pagos 4.0 DESPACHO RECEPCION FACTURACION-PAGOS Facturas y arepas Ordenes de fabricacion Orden de fabricación fabricación de pedidos 2.0 Materiales FABRICACION C Pagos PEDIDOS Solicitud de Compras 3.0 COMPRAS Facturas y materiales Orden de compra PROVEEDORES 15 PROCEDIMIENTOS DEL PARADIGMA ESTRUCTURADO ANALISIS ESTRUCTURADO - DISEÑO ESTRUCTURADO Proceso de pago por parte del cliente Detalles de la forma de pago del cliente Abono del pago efectuado por el cliente Bandera de error 16 8
PARADIGMA ORIENTADO A OBJETO SE FUNDAMENTA Programación Orientada a Objeto (C++) Mejora el mantenimiento de los sistemas. Permite la reutilización de códigos. Reduce los costos de desarrollo. 17 PARADIGMA ORIENTADO A OBJETO Clase AUTOMOVILES Objetos CHOFERES Modelo Fiat Palio Nombre Pedro García # serie: Tipo de Motor 7834827FGT 6 cilindros Num. De Licencia Fecha de Nacimiento Encender Motor 7623145879 22/ Marzo/1977 Atributos Mensaje 18 9
PARADIGMA ORIENTADO A OBJETO Encapsulación Señal Externa Resultados Control sobre su comportamiento 19 PARADIGMA ORIENTADO A OBJETO Herencia Clase Original O Padre Clase derivada o Hija Herencia Modelo Numero de serie Tipo de Motor Camión (Hereda Automóviles) Modelo Numero de serie Tipo de Motor Capacidad de carga Refrigeración 20 10
PARADIGMA ORIENTADO A OBJETO Polimorfismo Clase Original O Padre Comportamientos diferentes Clase derivada o Hija 21 Construcción de una casa para fido Puede hacerlo una sola persona Requiere: Modelado mínimo Proceso simple Herramientas simples 22 11
Construcción de una casa Construida eficientemente i t y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas más sofisticadas 23 Claves en Desarrollo de SI Notación UML Herramientas ArgoUML Proceso Actividades y Tareas 24 12
Abstracción - Modelado Visual (MV) El modelado captura las partes esenciales del sistema Orden Item envío Proceso de Negocios Sistema Computacional 25 II. Notación (Visual) - Beneficios Manejar la complejidad Interface de Usuario (Visual Basic, Java,..) Lógica del Negocio (C++, Java,..) Múltiples Sistemas Servidor de BDs (C++ & SQL,..) Modelar el sistema independientemente del lenguaje de implementación Componentes Reutilizados Promover la Reutilización 26 13
Qué es UML? UML = Unified Modeling Language I. Introducción: UML Un lenguaje de propósito general para el modelado orientado a objetos Documento OMG Unified Modeling Language Specification UML combina notaciones provenientes desde: Modelado Orientado a Objetos Modelado de Datos Modelado de Componentes Modelado de Flujos de Trabajo (Workflows) 27 Situación de Partida I. Introducción: UML Diversos métodos y técnicas OO, con muchos aspectos en común pero utilizando distintas notaciones Inconvenientes para el aprendizaje, aplicación, construcción y uso de herramientas, etc. Pugna entre distintos enfoques (y correspondientes gurús) Establecer una notación estándar 28 14
I. Introducción: UML Historia de UML Comenzó como el Método Unificado, con la participación de Grady Booch y Jim Rumbaugh. (1995) El mismo año se unió Ivar Jacobson. Los Tres Amigos son socios en la compañía Rational Software. Herramienta CASE Rational Rose 29 Historia de UML 2001-2003 UML 2.0 2000 UML 1.4 1999 UML 1.3 1998 Nov 97 UML aprobado por el OMG UML 1.2 Revisiones menores I. Introducción: UML 30 15
UML aglutina enfoques OO I. Introducción: UML Booch Rumbaugh Jacobson Odell Shlaer-Mellor Object life cycles Gamma et. al. Frameworks, patterns, notes Embly Singleton classes UML Fusion Operation descriptions, message numbering Meyer Pre- and Post-conditions Harel State Charts Wirfs-Brock Responsabilities 31 I. Introducción: UML Aspectos Novedosos Definición semi-formal del Metamodelo de UML Mecanismos de UML: Permiten adaptar los elementos de modelado, asignándoles una semántica particular 32 16
Inconvenientes en UML Definición del proceso de desarrollo usando UML. UML no es una metodología I. Introducción: UML Falta integración con respecto de otras técnicas tales como patrones de diseño, interfaces de usuario, documentación y otros Monopolio de conceptos, técnicas y métodos en torno a UML 33 Perspectivas de UML I. Introducción: UML UML será el lenguaje de modelado orientado a objetos estándar predominante los próximos años Razones: Participación de metodólogos influyentes Participación de importantes empresas Aceptación como notación estándar Evidencias: Herramientas que proveen la notación UML Edición de libros Congresos, cursos, etc. 34 17
Breve Tour por UML UML tiene tres bloques básicos de construcción: Elementos Relaciones Diagramas. 35 Elementos del UML Elementos: Unidades básicas de construcción, cuatro tipos: Estructurales: Partes estáticas de los modelos, representan aspectos conceptuales o materiales De comportamiento: Partes dinámicas de los modelos, representan comportamientos en el tiempo y espacio. De agrupación: Partes organizativas de los modelos. De Notación: Partes explicativas de los modelos. 36 18
Elementos Estructurales Describe un conjunto de objetos que comparten los mismos atributos, métodos, relaciones y semántica. Las clases implementan una o más interfaces. Clase Clase activa Se trata de una clase, en la que existe procesos o hilos de ejecución concurrentes con otros elementos. Las líneas del contorno son más gruesas que en la clase normal. 37 Elementos Estructurales Agrupación de métodos u operaciones que especifican un servicio de una clase o componente, describiendo su comportamiento, completo o parcial, externamente visible. UML permite emplear un círculo para representar las interfaces, aunque lo más normal es emplear la clase con el nombre en cursiva. Define una interacción entre elementos que cooperan para proporcionar un comportamiento mayor que la suma de los comportamientos de sus elementos. 38 19
Elementos Estructurales Describe un conjunto de secuencias de acciones que un sistema ejecuta, para producir un resultado observable de interés. Se emplea para estructurar los aspectos de comportamiento de un modelo. Parte física y por tanto reemplazable de un modelo, que agrupa un conjunto de interfaces, archivos de código fuente, clases, colaboraciones y proporciona la implementación de dichos elementos. Elemento físico que existe en tiempo de ejecución y representa un recurso computacional con capacidad de procesar. 39 Elementos Comportamiento Comprende un conjunto de mensajes que se intercambian entre un conjunto de objetos, para cumplir un objetivo especifico. Especifica la secuencia de estados por los que pasa un objeto o una interacción, en respuesta a eventos. 40 20
Elementos de agrupación: Se emplea para organizar otros elementos en grupos. Elementos de notación: Partes explicativa de UML, que puede describir textualmente cualquier aspecto del modelo. 41 Relaciones Relaciones: Abstracciones que actúan de unión entre los elementos. Dependencia Es una relación entre dos elementos, tal que un cambio en uno puede afectar al otro. Asociación Generalización Realización Es una relación estructural que resume un conjunto de enlaces que son conexiones entre objetos. Es una relación en la que el elemento generalizado puede ser substituido por cualquiera de los elementos hijos, ya que comparten su estructura y comportamiento. Es una relación que implica que la parte realizante cumple con una serie de especificaciones propuestas por la clase realizada (interfaces). 42 21
Diagramas Diagramas: Disponen un conjunto de elementos, que representan el modelo desde distintas perspectivas. UML tiene nueve diagramas fundamentales clasificados en dos grupos: Uno para modelar la estructura estática Otro para modelar el comportamiento dinámico. 43 Diagramas Diagrama de clases Diagrama de objetos Diagrama de despliegue Estáticos Diagrama de componentes Diagrama de casos de uso Diagrama de secuencia Diagrama de colaboración Dinámicos Diagrama de estados Diagrama de actividades 44 22
Ejemplo de Diagramas de Clase Estáticos 45 Diagrama de Objetos Estáticos :Coche :Rueda :Motor Coche 1 1 Motor 1 :Rueda 4 :Rueda Rueda :Rueda 23
Diagrama de Uso Dinámicos Catálogo Telefónico Comprobar Estado Realizar Pedido Vendedor Cliente Servir Pedido Empleado 47 Modelos y Diagramas II. Breve Tour por UML Un modelo Captura una vista de un sistema del mundo real. Es una abstracción de dicho sistema, considerando d un cierto propósito. Así, el modelo describe completamente aquellos aspectos del sistema que son relevantes al propósito del modelo, y a un apropiado nivel de detalle. Diagrama: Una representación gráfica de una colección de elementos de modelado, a menudo dibujada como un grafo con vértices conectados por arcos 48 24
... Modelos y Diagramas Un proceso de desarrollo de software II. Breve Tour por UML Debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de interés El código fuente del sistema: Es el modelo más detallado del sistema (y además es ejecutable). Sin embargo, se requieren otros modelos... 49 II. Breve Tour por UML... Modelos y Diagramas Diagramas UML Modelos Realidad 50 25
II. Breve Tour por UML... Modelos y Diagramas Los diagramas expresan gráficamente partes de un modelo Use Case Use Case Diagrams Diagramas de Diagrams Secuencia Use Case Use Case Diagrams Diagramas de Diagrams Casos de Uso State State Diagrams Diagramas de Diagrams Clases State State Diagrams Diagramas de Diagrams Objetos Scenario Scenario Diagrams Diagramas Diagrams de Colaboración Modelo State State Diagrams Diagramas Diagrams de Componentes Scenario Scenario Diagrams Diagramas de Diagrams Estados Diagramas de Actividad Component Diagrams Component Diagramas Diagrams de Distribución 51 II. Breve Tour por UML Resumen UML define una notación que se expresa como diagramas sirven para representar modelos/subsistemas o partes de ellos El 80 por ciento de la mayoría de los problemas pueden modelarse usando alrededor del 20 por ciento de UML-- Grady Booch 52 26
Herramienta Case ArgoUML Es una herramienta utilizada en el modelaje de sistemas. Mediante la cual se realizan diseños en UML ("Unified Markup Language") llevados acabo en el análisis y pre-diseño de Sistemas de Software. OTRAS RATIONAL ROSE POSEIDON 53 UML (Unified Modeling Lenguage: Lenguaje Unificado de Modelado) 54 27
UML UML es un lenguaje de modelado que sirve para visualizar, especificar, construir y documentar un sistema software. Lenguaje de modelado: Lenguaje cuyo vocabulario y reglas se centran en la representación conceptual y física de un sistema (Booch, Jacobson y Rumbaugh). 55 UML para visualizar a) )Símbolos con semántica bien definida. id b) UML transciende al lenguaje de programación. c) Modelo explícito, que facilita la comunicación. 56 28
UML para especificar Especificar es equivalente a construir modelos que cumplan las condiciones de no ambigüedad y completitud. UML cubre la especificación del análisis, diseño e implementación de un sistema software. 57 UML para construir Es posible hacer corresponder con los lenguajes de programación (Java, C++, BD B.Datos, etc.). Modelo UML Ingeniería Directa Ingeniería Inversa CÓDIGO 58 29
UML para documentar UML cubre la documentación de un sistema: Requerimientos Arquitectura Diseño Código fuente Planificación ió Pruebas Prototipos Versiones 59 Tipos de Diagramas De Clases De Objetos De casos de uso De interacción De secuencia De colaboración De transición entre estados/de estados De actividad De implementación De componentes De despliegue 60 30
Diagrama de CASOS DE USOS 61 Diagrama de CASOS DE USOS 62 31
Diagrama de CASOS DE USOS 63 Diagrama de CASOS DE USOS 64 32
Diagrama de ACTIVIDADES 65 Diagrama de Clases Un diagrama de clases esta compuesto por los siguientes elementos: Clase: atributos, métodos y visibilidad. Relaciones: Herencia, Composición, Agregación, Asociación y Uso. 66 33
Diagrama de Clases Sola la Clase Public Private CLASE protected la Clase y Herencia 67 Diagrama de Clases Ejemplo de CLASE 68 34
Diagrama de Clases Herencia (Especialización/Generalización): 69 Diagrama de Clases Agregación por referencia Composición o por Vl Valor Composición de Objetos que son instancias de clases Instancias Referencia al tiempo 70 35
Diagrama de Clases Asociación: Colaboración entre Objetos/Clase 71 Diagrama de Clases Dependencia o (uso): Dependencia de una Clase con Otra 72 36
Diagrama de Clases Clase Abstracta: Iáli Itálica Métodos no definidos Métodos definidos 73 Diagrama de Clases Clase parametrizada: Parámetros a ser pasados 74 37
Diagrama de Clases CARDINALIDAD o Multiplicidad : Multiplicidad Significado 1 Una única instancia N/* 0..N / 0..* 1..N / 1..* N instancias Entre ninguna y N instancias Entre una y N instancias 0..1 Ninguna o una instancia N..M Entre N y M instancias 75 Diagrama de Clase Ejemplo 76 38
Diagrama de Componentes 77 Diagrama de DESPLIEGUE 78 39