240 likes | 516 Views
Introducción. ADOO Conceptos históricos Análisis estructurado de sistemas Análisis orientado a objetos Ventajas Proceso Identificación y definición de objetos Definición y organización de clases Metodologías emergentes. Análisis y Diseño Orientado a Objetos. 1. Introducción.
E N D
Introducción ADOO • Conceptos históricos • Análisis estructurado de sistemas • Análisis orientado a objetos • Ventajas • Proceso • Identificación y definición de objetos • Definición y organización de clases • Metodologías emergentes Análisis y Diseño Orientado a Objetos 1
Introducción Conceptos Históricos • Importancia por comprender y comunicar los requisitos de un sistema antes de programarlo. • Se destacaban métodos basados en descripciones textuales realizadas sobre el papel. • Ambigüedad • Dificultaban las modificaciones • No servían para apoyar el diseño de sistemas grandes • Surgen: • El análisis estructurado • El análisis de sistemas basado en objetos Análisis y Diseño Orientado a Objetos 2
Introducción El Análisis Estructurado • Fue desarrollado en los años 60 e introdujo un método definitivo y más manejable para el análisis de sistemas • Basado en descomponer componentes funcionales • Los subprogramas podían servir como mecanismo de abstracción para construir grandes y complejos sistemas • El proceso más conocido es la descomposición funcional, donde las áreas funcionales se dividen en Procesos y estos son descompuestos en pasos o procedimientos comprensibles por diseñadores y usuarios finales. Análisis y Diseño Orientado a Objetos 3
Introducción El Análisis Estructurado • Procesos Subprocesos (piezas procedimentales) - Planificación Comercial - Validación - Financiación del cliente - Planificación - Comprobación del producto - Aceptación de disponibilidad - Producción de pedidos del producto - Investigación - Control - Completar - Procedimiento - Ventas de existencias pedidos de error - Distribución - Atención de - Facturación - Comprobación de - Contabilidad pedidos - Entrega de pedidos pendientes - Personal - Empaquetamiento de pedidos - Crear pedido del - Transporte cliente Areas funcionales Procesos Partes de un proceso Análisis y Diseño Orientado a Objetos 4
Introducción El Análisis Estructurado • Gráfico estructural • Módulos funcionales específicos • Activación de estos módulos por otros módulos • Especificaciones finales que se adaptan a estructuras de secuencia, selección y control repetitivo (Lenguajes procedimentales) • La descomposición funcional, la identifican con el nombre de autores tales como: Yourdon, Constantine, DeMarco y Gane. • Los programadores se concentran en operaciones • Poca atención a los datos, más código Análisis y Diseño Orientado a Objetos 5
Introducción Análisis Orientado a Objetos • Popularizado por Chen en los 80’s (precursor del AOO) • Diagrama Entidad-Relación Atributos Clasificarlos (Categorías) Agregando relaciones Jerarquía de subtipos y Objetos asociados Carece de: Encapsulación, Herencia, Paso de mensajes Análisis y Diseño Orientado a Objetos 6
Introducción Método Sistema-Proceso • Sally Shalaer y Stephen Mellor (1988) Objetos y Atributos Ciclo de vida de los objetos (modelos de estado) sucesos Definición de procesos Componentes : Lo que está haciendo Aquello sobre lo que el proceso se está ejecutando En que momento se realiza Análisis y Diseño Orientado a Objetos 7
Introducción Método Orientado a Objetos • El análisis de sistemas orientado a objetos es un nuevo método que realza la definición de las características y comportamiento dentro de un sistema de objetos. • Características: Reduce el código derivado de los datos Permanece estable ante el cambio de requisitos No énfasis Entrada-Salida Enfasis en el contenido de las entidades No agrupa funciones, agrupa métodos Paso de mensajes determina la sequencia de funcionamiento Análisis y Diseño Orientado a Objetos 8
Introducción Tres Métodos de Análisis de Sistemas Descomposición Suceso-Respuesta Orientado a Objetos funcional 1. Proceso 1. Control 1. Datos 2. Control 2. Proceso 2. Control 3. Datos 3. Datos 3. Proceso Análisis y Diseño Orientado a Objetos 9
Introducción Análisis Estructurado Vs Orientado a Objetos Análisis y Diseño Análisis y Diseño Estructurado Orientado a Objetos Descendente: Descomposición funcional Ascendente: Composición de basada en subprocesos de procesos de clases basada en abstracción de niveles superiores datos Análisis y Diseño Orientado a Objetos 10
Introducción Ventajas del análisis y diseño orientado a objetos Centrado en : • La identificación de objetos y la definición de clases • La organización jerarquizada de clases • La reutilización de clases • La construcción de marcos estructurales de aplicación a partir de librerías de clases Análisis y Diseño Orientado a Objetos 11
Introducción Proceso de análisis y diseño orientado a objetos • El resultado de un diseño orientado a objetos es una jerarquía de clases Estructuras de control propias Clase Módulo Datos Problema en forma natural Objetos y métodos asociados Objetosse agrupan enClases se agrupan enSubclases Nivel superior es el marco estructural _________________________ DSOO - María Eugenia Valencia 12
Introducción Pasos fundamentales del análisis y diseño orientado a objetos • Identificación y definición de objetos y clases • Organización de relaciones entre clases • Extracción de estructuras en una jerquía de clases • Construcción de librerías de clases y marcos estructurales de aplicación reutilizables _________________________ DSOO - María Eugenia Valencia 13
Introducción Identificación y definición de objetos • El diseño de un sistema orientado a objetos comienza con los objetos. • Identificación de objetos • Inspección gramatical de documentos • Derivación a partir de diagramas de flujo y de relación de entidades _________________________ DSOO - María Eugenia Valencia 14
Introducción Directrices para ayudar a identificar y definir Clases y Métodos • Modelar con clases las entidades que ocurren de forma natural en el problema • Diseñar métodos de finalidad única • Diseñar un nuevo método al encontrar una oportunidad de ampliar uno existente • Evitar métodos extensos • Guardar como variables de instancia los datos necesitados por más de un método, o por una subclase • Diseñar pensando en una librería de clases, no pensar solo en la aplicación actual. _________________________ DSOO - María Eugenia Valencia 15
Introducción Cúando crear un clase? Cúando añadir un método? • Dicha nueva clase representa una abstracción significativa del problema • Sea posible que los servicios que proporciona sean utilizados por varias clases más • Su conducta sea inherente compleja • La clase o método haga poco uso de las representaciones de sus valores matemáticos • Si se presentara como un método de otra clase, pocos usuarios de ésta la invocarían _________________________ DSOO - María Eugenia Valencia 16
Introducción Definición y organización de clases Objetos Clases Biblioteca de clases Algunas metodologías para mejorar las jerarquías • Mejorar los protocolos estándar • Construcción de clases abstractas • Identificación de marcos estructurales (frameworks) _________________________ DSOO - María Eugenia Valencia 17
Introducción Algunas metodologías para mejorar las jerarquías • Mejorar los protocolos estándar: nombres y comportamiento de mensajes y métodos • Asignar a mensajes y métodos nombres similares • Reelaborar cualquier código que compruebe de forma explícita la clase de un objeto. (Clases que puedan enviar un mensaje directamente a un objeto) • Reducir el número de argumentos descomponiendo un mensaje en varios • Reducir el tamaño de los métodos _________________________ DSOO - María Eugenia Valencia 18
Introducción Algunas metodologías para mejorar las jerarquías • Construcción de clases abstractas • Identificar mensajes y métodos comunes y transladarlos a una superclase • Eliminar de una superclase aquellos métodos que son ignorados frecuentemente, en su lugar que los hereden subclases • Acceder a todas las variables solamente mediante el envío de mensajes • Reelaborar las subclases para construir especializaciones _________________________ DSOO - María Eugenia Valencia 19
Introducción Algunas metodologías para mejorar las jerarquías • Identificación de marcos estructurales (frameworks) Objetivo último del diseño orientado a objetos, nivel más alto de abstracción. • Identificar subclases que realicen el mismo método de formas diferentes • Identificar y dividir clases en las que algunos métodos solo accedan a ciertas variables de instancia y otros métodos sólo accedan a otras • Enviar mensajes a otras clases en lugar de hacerlo a la propia clase • Identificar conjunto de métodos combinados en una clase sólo para acceder a variables de instancia comunes (translado de métodos) _________________________ DSOO - María Eugenia Valencia 20
Introducción Defectos comunes en el diseño • Modificación directa. Clases que hacen modificaciones directas a los valores de datos en otras clases son una violación directa de la encapsulación. Tales uniones se hacen para diseños inflexibles. • Demasiada responsabilidad. Clases con demasiada responsabilidad son dificiles de entender y de usar. La responsabilidad debe ser repartida entre pequeños paquetes y distribuida. • No responsabilidad. Clases con no responsabilidad no tienen propósito. A menudo se presenta cuando los diseñadores igualan existencia física con existencia de diseño lógico. “El dinero no es un objeto”. • Clases con responsabilidad no usada. Como resultado de componentes de software sin pensar en como ellos interactuan. _________________________ DSOO - María Eugenia Valencia 21
Introducción Modelos ó Metodologías Orientadas a Objetos • GOOD (General Object-Oriented Software Development) • HOOD (Hierarchical Object-Oriented Design • MOOD (Multiple-View Object-Oriented Methodology) • OOA (Object Oriented Analysis) • OMT (Object Modeling Technique) • UML (Unified Modeling Language) _________________________ DSOO - María Eugenia Valencia 22
Introducción • GOOD (General Object-Oriented Software Development), utiliza diagramas de flujo de datos en la fase de especificación para identificar entidades abstractas que se convierten en objetos en la fase de diseño. • HOOD (Hierarchical Object-Oriented Design), es un derivado del método de Booch, desarrollado por la agencia europea del espacio. Comienza por descomponer el problema en objetos y métodos, a continuación se inicia la formalización y organización de objetos utilizando gráficos basados en los diagramas de Booch, la descripción formal se completa usando Leng.Descrpformal.Ada. No tiene clases ni herencia. • MOOD (Multiple-View Object-Oriented Methodology), comienza con un modelo estructurado (Ward/Mellor). Permite el paradigma orientado a objetos pero exige que los procesos concurrentes se expresen como tareas convenio de Ada y no de objetos. _________________________ DSOO - María Eugenia Valencia 23