1 / 87

Introducción al análisis y diseño orientado a objetos

Introducción al análisis y diseño orientado a objetos. ¿Por qué la Orientación a Objetos?. Proximidad de los conceptos de modelado respecto de las entidades del mundo real Mejora captura y validación de requisitos Acerca el “espacio del problema” y el “espacio de la solución”

Download Presentation

Introducción al análisis y diseño orientado a objetos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introducción al análisis y diseño orientado a objetos Depto de Lenguajes y Sistemas Informáticos. AESI

  2. ¿Por qué la Orientación a Objetos? • Proximidad de los conceptos de modelado respecto de las entidades del mundo real • Mejora captura y validación de requisitos • Acerca el “espacio del problema” y el “espacio de la solución” • Modelado integrado de propiedades estáticas y dinámicas del ámbito del problema • Facilita construcción, mantenimiento y reutilización Depto de Lenguajes y Sistemas Informáticos. AESI

  3. ¿Por qué la Orientación a objetos? • Conceptos comunes de modelado durante el análisis, diseño e implementación • Facilita la transición entre distintas fases • Favorece el desarrollo iterativo del sistema • Disipa la barrera entre el “qué” y el “cómo” • Sin embargo, existen problemas ... Depto de Lenguajes y Sistemas Informáticos. AESI

  4. Problemas en OO “...Los conceptos básicos de la OO se conocen desde hace dos décadas, pero su aceptación todavía no está tan extendida como los beneficios que esta tecnología puede sugerir” “...La mayoría de los usuarios de la OO no utilizan los conceptos de la OO de forma purista, como inicialmente se pretendía. Esta práctica ha sido promovida por muchas herramientas y lenguajes que intentan utilizar los conceptos en diversos grados” --Wolfgang Strigel Depto de Lenguajes y Sistemas Informáticos. AESI

  5. Introducción Basado en el concepto de OBJETO Objeto = unidad atómica que integra estado y comportamiento OBJETO = ATRIB. + OPERACIONES Un objeto puede caracterizar una entidad física (coche) o concepto (ecuación matemática) Principios de Ing. del Software Abstracción Ocultamiento de Información Modularidad La encapsulaciónen un objeto permite una alta cohesión y un bajo acoplamiento Depto de Lenguajes y Sistemas Informáticos. AESI

  6. Objetivos  Productividad  Calidad minimiz. Errores facilidad de uso portabilidad modificabilidad Misma represent. en fases del ciclo de vida Depto de Lenguajes y Sistemas Informáticos. AESI

  7. Beneficios Reusabilidad Crear nuevos sistemas utilizando los ya existentes Extensibilidad Fácil ampliación sin necesidad de retocar módulos Depto de Lenguajes y Sistemas Informáticos. AESI

  8. Mitos Todos los programas OO son automáticamente reutilizables y extensibles La POO rompe con la programación procedural Un LOO no puede obtenerse como evolución de uno no OO Depto de Lenguajes y Sistemas Informáticos. AESI

  9. Conceptos Previos Clase: conj. de objetos que comparten una estructura y comportamiento comunes Metaclase clase cuyas instancias son a su vez otras clases Objeto entidad abstracta o real con un papel definido en el dominio de un problema Depto de Lenguajes y Sistemas Informáticos. AESI

  10. Objetos I Zona visible ( métodos ) Zona no visible ( atributos o variables instancia ) Caracteristicas: estado: propiedades del objeto. Valores actuales de sus atributos comportamiento: expresa cómo se producen los cambios de estado. Identidad: identificador unívoco de un objeto Depto de Lenguajes y Sistemas Informáticos. AESI

  11. Objetos II Paso de mensajes expresa la acción que un objeto realiza sobre otro Métodos operaciones sobre los atributos de un objeto tipos de operaciones: modificadoras selectoras iteradoras constructoras y destructoras Depto de Lenguajes y Sistemas Informáticos. AESI

  12. Características OO Encapsulación Herencia Paso de Mensajes Enlace Dinámico Polimorfismo Depto de Lenguajes y Sistemas Informáticos. AESI

  13. Encapsulación También llamado abstracción agrupar bajo una misma entidad los datos y las funciones (métodos) que trabajan con esos datos Efecto independiza la implementación interna del interface del objeto Depto de Lenguajes y Sistemas Informáticos. AESI

  14. Herencia Sirve para construir clases a partir de clases ya existentes. Las nuevas clases incorporan estructura y comportamiento de la clase de la que heredan Superclase/Subclase, Clase Padre/Clase Hija, Clase Base/Clase Derivada Depto de Lenguajes y Sistemas Informáticos. AESI

  15. Paso de Mensajes El único mecanismo para modificar el estado actual de un objeto son sus METODOS o SERVICIOS. Los objetos se comunican entre sí mediante el paso de mensajes. Consiste en pedir a un objeto que ejecute un servicio. Objeto_Destino.servicio(parámetros) Depto de Lenguajes y Sistemas Informáticos. AESI

  16. Enlace Dinámico Mecanismo que permite determinar o identificar el trozo de código a ejecutar en un tiempo dado. T. Compilación: el código a ejecutar se conoce en tiempo de compilación averia.clasificar() T. Ejecución: el código no se conoce hasta la ejecución del servicio documento.salto_de_linea() Depto de Lenguajes y Sistemas Informáticos. AESI

  17. Polimorfismo Mecanismo que permite definir el mismo interface para un conj. de objetos con comportamiento totalmente distinto figura.area() figura = cuadrado, rectángulo, triángulo, círculo. Depto de Lenguajes y Sistemas Informáticos. AESI

  18. Análisis OO Identificar objetos y clases Diccionario de datos Identificar asociaciones entre objetos Identificar atributos y operaciones Refinar mediante Herencia Depto de Lenguajes y Sistemas Informáticos. AESI

  19. Identificar clases y objetos Tener en cuenta entidades físicas y conceptos Se suelen corresponder con sustantivos Agrupar objetos por estructura y comportamiento común Depto de Lenguajes y Sistemas Informáticos. AESI

  20. Diccionario de datos Describir con precisión cada clase de objetos También se describirán asociaciones atributos operaciones Depto de Lenguajes y Sistemas Informáticos. AESI

  21. Identificar asociaciones Asociacion = dependencia y/o referencia entre dos o mas clases Se suelen corresponder con verbos de estado acciones dirigidas: “conduce” ubicación física: “junto a, contenido en” comunicaciones: “habla con” propiedad: “tiene, parte de” cumpl. de condicion: “trabaja para, casado con” Depto de Lenguajes y Sistemas Informáticos. AESI

  22. Identificar atributos y operaciones Propiedades de los objetos Se suelen corresponder con nombres seguidos por frases posesivas el color del coche Operaciones sobre el estado de los atributos Se suelen corresponder con verbos relacionados con actividades sobre los atributos clasificar los partes de avería Depto de Lenguajes y Sistemas Informáticos. AESI

  23. Refinar mediante Herencia Organizar las clases que compartan estructura común. Concretizar aspectos comunes en una superclase Refinar clases existentes en clases especializadas Pistas: adjetivos relacionados con los nombres de las clases. Depto de Lenguajes y Sistemas Informáticos. AESI

  24. Ejercicio “La Biblioteca” “Una biblioteca tiene libros que presta a sus socios. Los socios se caracterizan por un código de socio y su nombre. Los libros, por su ISBN, título y autor. Un préstamo relaciona la acción de prestar un libro a un socio en una fecha y tiene un código de préstamo. Cuando un socio devuelve un libro el bibliotecario disminuye su cantidad de libros prestados. Un socio con tres o mas libros prestados es un socio no fiable...” Depto de Lenguajes y Sistemas Informáticos. AESI

  25. Ejercicio “La Biblioteca” Depto de Lenguajes y Sistemas Informáticos. AESI

  26. UML como lenguaje de análisis y diseño de software Depto de Lenguajes y Sistemas Informáticos. AESI

  27. Construir la casita del perro Una persona puede realizarla Requiere Mínimo esfuerzo de modelado Proceso simple Herramientas simples Depto de Lenguajes y Sistemas Informáticos. AESI

  28. Construir una casa Un equipo la construye de forma más eficiente y en menos tiempo Requiere Modelado Proceso bien definido Herramientas potentes Depto de Lenguajes y Sistemas Informáticos. AESI

  29. Construir un rascacielos Depto de Lenguajes y Sistemas Informáticos. AESI

  30. Modelar una casa Depto de Lenguajes y Sistemas Informáticos. AESI

  31. Item PedirA Reglas de Negocio ¿El modelado visual? “ Un modelo captura los aspectos esenciales de un sistema” James Rumbaugh El modelado visual es la construcción de modelos usando herramientas gráficas estándar. Sistema Informáticoo Depto de Lenguajes y Sistemas Informáticos. AESI

  32. El Modelado Visual es una Herramienta de Comunicación El modelado visual se usa para analizar y diseñar una aplicación. Con él capturamos la lógica del problema Depto de Lenguajes y Sistemas Informáticos. AESI

  33. El Modelado Visual y la Complejidad de un Sistema Depto de Lenguajes y Sistemas Informáticos. AESI

  34. Inteefaz Usuario (Visual Basic, Java) Logica del Problema (C++, Java) Sevidor de Bases deDatos (C++ & SQL) Arquitectura del Software Modelar el sistema independientemente del lenguaje de programación Depto de Lenguajes y Sistemas Informáticos. AESI

  35. El lenguaje de modelado unificado • UML significa Lenguaje de Modelado Unificado (Unified Modeling Language) • Un lenguaje de propósito general para el modelado orientado a objetos. • The UML combina • Conceptos de Modelado de Datos (Entity Relationship Diagrams) • Modelado de Objetos • Modelado de Componentes • UML es el lenguaje estándar para visualizar, especificar, construir y documentar aplicaciones software. • Puede ser usado a través de diferentes ciclos de vida y de diferentes tecnologías de implementación. • Basado en la experiencia y necesidades de los usuarios. Depto de Lenguajes y Sistemas Informáticos. AESI

  36. Situación de Partida • 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) • => Necesidad de una notación estándar Depto de Lenguajes y Sistemas Informáticos. AESI

  37. UML 1.3 OMG Acceptance, Nov 1997 UML 1.1 Final submission to OMG, Sep ‘97 First submission to OMG, Jan ´97 UML 1.0 UML partners public feedback UML 0.9 Web - June ´96 Unified Method 0.8 OOPSLA ´95 OOSE Other methods Creación de UML Booch method OMT Depto de Lenguajes y Sistemas Informáticos. AESI

  38. HP Fusion Meyer Booch Operation descriptions and message numbering Before and after conditions Booch method Rumbaugh Embley Harel OMT Singleton classes and high-level view Statecharts Gamma, et al Wirfs-Brock Frameworks and patterns, Responsibilities Odell Shlaer - Mellor Jacobson Classification Object lifecycles OOSE Contribuciones a UML Depto de Lenguajes y Sistemas Informáticos. AESI

  39. Características de UML • UML es un lenguaje para • visualizar • specificar • construir • documentar los artefactos de un sistema software Depto de Lenguajes y Sistemas Informáticos. AESI

  40. Métodos Formales en Modelado • Tipos de enfoques: no-formales, semi-formales y formales • Las principales mejoras al utilizar métodos formales son: • Mayor rigor en la especificación • Mejores condiciones para realizar la verificación y validación en forma más exhaustiva • Mejores condiciones para automatización de procesos para la generación automática de prototipos y/o código final Depto de Lenguajes y Sistemas Informáticos. AESI

  41. Inconvenientes en UML • Definición del proceso de desarrollo usando UML. UML no es una metodología. • Falta integración con respecto de otras técnicas tales como patrones de diseño, interfaces de usuario, documentación, etc. • Ejemplos aislados • “Monopolio de conceptos, técnicas y métodos entorno a UML Depto de Lenguajes y Sistemas Informáticos. AESI

  42. Perspectivas de 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 del OMG como notación estándar • Evidencias: • Herramientas que proveen la notación UML • “Edición” de libros • Congresos, cursos, “camisetas”, etc. Depto de Lenguajes y Sistemas Informáticos. AESI

  43. Diagramas • Un diagrama es una vista del modelo • Proporciona una representación parcial del sistema • Semánticamente consistente con las otras vistas • En UML, hay 9 tipos de diagramas • vistas de estructura: casos de uso, clases, objetos, componentes, implantación • vistas de comportamiento: secuencia, colaboración, estados, actividad Depto de Lenguajes y Sistemas Informáticos. AESI

  44. State Diagrams State Diagrams State Diagrams State Diagrams State Diagrams State Diagrams Diagramas de Objetos Diagramas de Componentes Diagramas de Clases Component Diagrams Component Diagrams Diagramas de Implantación Use Case Diagrams Use Case Diagrams Scenario Diagrams Scenario Diagrams Use Case Diagrams Use Case Diagrams Scenario Diagrams Scenario Diagrams Diagramas de Casos de Uso Diagramas de Secuencia Diagramas de Colaboración Digramas de Estados Diagramas de UML Un modelo es una descripción completa de un sistema desde una perspectiva particular Modelos Diagramas de Actividad Depto de Lenguajes y Sistemas Informáticos. AESI

  45. Casos de Uso • Los Casos de Uso (Ivar Jacobson) describen bajo la forma de acciones y reacciones el comportamiento de un sistema desde el p.d.v. del usuario. • Permiten definir los límites del sistema y las relaciones entre el sistema y el entorno. • Los Casos de Uso son descripciones de la funcionalidad del sistema independientes de la implementación. • Comparación con respecto a los Diagramas de Flujo de Datos del Enfoque Estructurado. Depto de Lenguajes y Sistemas Informáticos. AESI

  46. … Casos de Uso • Los Casos de Uso particionan el conjunto de necesidades atendiendo a la categoría de usuarios que participan en el mismo. • Están basado en el lenguaje natural, es decir, es accesible por los usuarios. Depto de Lenguajes y Sistemas Informáticos. AESI

  47. Ejemplo de Casos de Uso Caso de Uso:Comprar productos Actores: Cliente, Cajero Tipo: Primario Descripción: Un cliente llega a la caja registradora con los artículos que comprará. El cajero registra los artículos y cobra el importe. Al terminar la operación el cliente se marcha con los productos. Depto de Lenguajes y Sistemas Informáticos. AESI

  48. … Casos de Uso • Ejemplo: Depto de Lenguajes y Sistemas Informáticos. AESI

  49. … Casos de Uso • Actores: • Principales: personas que usan el sistema • Secundarios: personas que mantienen o administran el sistema • Material externo: dispositivos materiales imprescindibles que forman parte del ámbito de la aplicación y deben ser utilizados • Otros sistemas: sistemas con los que el sistema interactúa • La misma persona física puede interpretar varios papeles como actores distintos • El nombre del actor describe el papel desempeñado Depto de Lenguajes y Sistemas Informáticos. AESI

  50. … Casos de Uso • Los Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de interacción, los escenarios, desde el punto de vista del usuario • Un escenario es una instancia de un caso de uso • Los casos de uso intervienen durante todo el ciclo de vida. El proceso de desarrollo estará dirigido por los casos de uso Depto de Lenguajes y Sistemas Informáticos. AESI

More Related