Introducción Metodologías emergentes ADOO Conceptos históricos

Slides:



Advertisements
Presentaciones similares
IBD Plan 90 y 2003 Clase 11.
Advertisements

IBD Plan 90 y 2003 Clase 10.
SISTEMAS II CICLO DE VIDA.
Algoritmos y Programas
MODELOS ORIENTADOS A OBJETOS
Fundamentos de Diseño de Software INFT.1
Lenguaje Unificado de Modelado
Análisis y Diseño Estructurado
Pruebas Orientadas a Objeto
03 Estudio del mercado El estudio del mercado trata de averiguar la respuesta del mercado ante un producto o servicio, con el fin de plantear la estrategia.
ANALISIS ESTRUCTURADO Ing. Sonia Godoy Hortua 1. E SPECIFICACIÓN DE REQUERIMIENTOS 1. Requerimientos funcionales y no funcionales 2. Especificación de.
Introducción a la Orientación a Objetos
Ventajas del análisis y diseño orientado a objetos
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
Fundamentos de Ingeniería de Software
Prof. César Luza Montero
POO Santiago, Mayo 2004 TRABAJO DE INVESTIGACIÓN POO Programación Orientada a Objetos CENAFOM Carolina Bravo V. Jaime Jofré B.
CONCEPTOS Y PRINCIPIOS ORIENTADOS A OBJETOS
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Ingeniería del Software
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
Ingeniería del Software
Análisis y Diseño O.O. Click to add notes Preguntas del diseño :
Desarrollo Orientado a Objetos con UML
Unified Modeling Language (Lenguaje de Modelamiento unificado)
Análisis y Diseño orientado a objetos con UML.
Introducción a los Conceptos de Bases de Datos Docente: Ing. Marleny Soria Medina.
Ingeniería de software Unidad II Ingeniería de Software Orientado a Objetos Principios Orientados a Objetos Tema Semana 7.
Fundamentos de Programación
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Introducción a la programación Orientada a objetos
Ingeniería de Software
Ingeniería de Software Orientado a Objetos
Fundamentos de Programación
Fundamentos de programación
CONCEPTOS BÁSICOS Diseño de Sistemas.
Ingeniería en Sistemas de Información
Organización y Estructuración de Datos
GESTION DE PROCESOS DE NEGOCIO
INSTITUTO TECNOLOGICO DE MINATITLAN ASIGNATURA: FUNDAMENTOS DE PROGRAMACION DOCENTE: JOSE ANGEL TOLEDO ALVAREZ ALUMNA: ALEJANDRA OSORIO ARVISU SEMESTRE:
TEMA 10: DIAGRAMA DE: OBJETOS, SECUENCIA Y DESPLIEGUE EN UML
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
Facultad de Ingeniería
DEFINICIÓN DE OBJETO Un objeto es aquello que puede ser observado, estudiado y aprendido CARACTERÍSTICAS nos permiten conocerlos mediante la observación,
Programación Orientada a Objeto
PROGRAMACION ORIENTADA A OBJETOS
Diseño de Sistemas.
Introducción a UML Departamento de Informática Universidad de Rancagua
Conceptos Fundamentales
Ingeniería de Requisitos
Ing. Esp. Ricardo Cujar. Programación Orientada a Objetos  Modelo de desarrollo de software.  Modo de pensar del hombre y no de la máquina.  Abstracción.
UML Casos de Uso (repaso) y Diagramas de Clase
Actividades en el Proceso de desarrollo de Software
Unified Modeling Language (Lenguaje de Modelamiento unificado)
PROGRAMACIÓN IV INTRODUCCIÓN.
UNIDAD 2: “Características del Modelado UML” CONTENDIDO Elaborado por: Ingeniero Harold Cabrera Meza Actualizado por: Ingeniero Nilson Albeiro Ferreira.
Ciclo de Vida del Software
3. Paradigmas de la ingeniería de software.
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
Tipo de relación entre clases Es uno de los aspectos que distinguen el paradigma de orientación a objetos frente a otros paradigmas. Mecanismo que,
ORIENTACIÓN A OBJETOS El paradigma.
La Programación Orientado a Objetos
Introducción AOO. Contenido - Introducción - Repaso de Orientación a Objetos - UML - Casos de Uso.
MODELAMIENTO VISUAL Y UML
Fundamentos de Ingeniería de Software
DIAGRAMAS DE SECUENCIA. UML está compuesto por los siguientes diagramas:
Modelado UML Diagrama de Clases
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
Estructura de Datos Departamento de Programación Universidad Metropolitana Contenido: UML. Envío de mensajes. Relaciones. Asociación. Agregación o composición.
Transcripción de la presentación:

Introducción Metodologías emergentes 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

El Análisis Estructurado 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

El Análisis Estructurado 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

El Análisis Estructurado 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

Análisis Orientado a Objetos 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

Método Sistema-Proceso 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

Método Orientado a Objetos 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

Tres Métodos de Análisis de Sistemas 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

Análisis Estructurado Vs Orientado a Objetos 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

Ventajas del análisis y diseño orientado a objetos 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

Proceso de análisis y diseño orientado a objetos 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 Objetos se agrupan en Clases se agrupan en Subclases Nivel superior es el marco estructural _________________________ DSOO - María Eugenia Valencia 12

Pasos fundamentales del análisis y diseño orientado a objetos 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

Identificación y definición de objetos 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 Ejemplo usando el método de booch _________________________ DSOO - María Eugenia Valencia 14

Directrices para ayudar a identificar y definir Clases y Métodos 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. Ejemplo usando el método de booch _________________________ DSOO - María Eugenia Valencia 15

Cúando crear un clase? Cúando añadir un método? 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 Ejemplo usando el método de booch _________________________ 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) Ejemplo usando el método de booch _________________________ DSOO - María Eugenia Valencia 17

Algunas metodologías para mejorar las jerarquías 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 Ejemplo usando el método de booch _________________________ DSOO - María Eugenia Valencia 18

Algunas metodologías para mejorar las jerarquías 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 Ejemplo usando el método de booch _________________________ DSOO - María Eugenia Valencia 19

Algunas metodologías para mejorar las jerarquías 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) Ejemplo usando el método de booch _________________________ DSOO - María Eugenia Valencia 20

Defectos comunes en el diseño 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. Ejemplo usando el método de booch _________________________ DSOO - María Eugenia Valencia 21

Modelos ó Metodologías Orientadas a Objetos 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) Ejemplo usando el método de booch _________________________ 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. Ejemplo usando el método de booch _________________________ DSOO - María Eugenia Valencia 23