430 likes | 814 Views
Análisis y Diseño Orientado a Objetos. _________________________ DSOO - María Eugenia Valencia. 1. Análisis y Diseño Orientado a Objetos. OBJETIVOS General Específicos Profundizar en los conceptos de las tecnologías orientadas a objetos Usar UML para modelar sistemas
E N D
Análisis y Diseño Orientado a Objetos _________________________ DSOO - María Eugenia Valencia 1
Análisis y Diseño Orientado a Objetos • OBJETIVOS • General • Específicos • Profundizar en los conceptos de las tecnologías orientadas a objetos • Usar UML para modelar sistemas • Aplicar el proceso unificado de Rational para desarrollar un proyecto _________________________ DSOO - María Eugenia Valencia 2
Análisis y Diseño Orientado a Objetos CONTENIDO _________________________ DSOO - María Eugenia Valencia 3
Análisis y Diseño Orientado a Objetos • BIBLIOGRAFIA • Craig Larman : "Applying UML and Patterns" • Grady Booch, James Rumbaugh, and Ivar Jacobson: "The Unified Modelin Languaje User Guide” • James Rumbaug, Ivar Jacobson, and Grady Booch: "The Unified Modeling Language Reference Manual" • Ivar Jacobson, Grady Booch, and James Rumbaugh: "The Unified Software Development Process” • Martin Fowler with Kendall Scott: "UML Distilled" • Terry Quatrani : "Visual Modeling with Rational Rose and UML" • Bertrand Meyer : "Object Oriented software Construction" Segunda Edición. • Ratinal and others “UML version 1.1 and 1.3” 4
Análisis y Diseño Orientado a Objetos • INTRODUCCION • El ADOO es un paso evolucionario, sigue la “huella” de las anteriores abstracciones. • Porqué es tan popular el ADOO? • Porque se espera que nos conduzca de manera fácil y rápida a un incremento de la productividad • Porque usa técnicas de razonamiento similar usadas para resolver problemas en otros dominios 5
Introducción Uno de sus aspectos la POO se convierte en un nuevo paradigma “Conjunto de teorías, estándares y métodos que juntos representan una forma de organizar el conocimiento” Todo es basado en clases y objetos Análisis y Diseño Orientado a Objetos 6
Introducción Antecedentes • Retraso del software con respecto al hardware en dos generaciones de procesadores al principio de los 90. • Herramientas, técnicas y abstracciones de desarrollo del software convencional se convierten rápidamente en inadecuadas. • La poca tecnificación de los procesos de producción de software. • La orientación a objetos proporciona un nuevo paradigma para la creación de software. • El análisis y diseño orientado a objetos aparece como una nueva alternativa. Análisis y Diseño Orientado a Objetos 7
Introducción Fuerzas Conductoras de los 90 • Información de tipo multimedia (imagen , voz, sonido, texto, etc.) • Fabricación integrada por computador (CIM) • Diseño asistido por computador (CAD) • Ingeniería de software asistida por computador (CASE) • Edición Computarizada (CAP) • Interfaces gráficas (diseño y programación visual) • Plataformas heterogéneas de software y hardware ej: la arquitectura Cliente-Servidor Análisis y Diseño Orientado a Objetos 8
Introducción Fuerzas Conductoras de los 90 USUARIO APLICACION Aplicaciones, archivos y sistemas operativos Piensen en tareas Análisis y Diseño Orientado a Objetos 9
Introducción Una visión al futuro Las técnicas orientadas a objetos han sido empleadas por la comunidad investigadora durante más de 20 años. Su uso tomó fuerza cuando empezaron a aparecer lenguajes muy populares que soportaban algunas de las ideas de las técnicas orientadas a objetos (Cobol, Pascal, C). Las nuevas tendencias muestran: • Una fuerte tendencia hacia el uso de herramientas visuales de apoyo al diseño y programación • Integración de tecnologías y aplicaciones • Surgimiento de nuevos estándares Análisis y Diseño Orientado a Objetos 10
Introducción Una visión al futuro Usuario Final Bibliotecas de Clases OO Entornos Operativos OO Bases de Datos OO Herramientas de Desarrollo OO Lenguajes OO 1990 1992 1994 1996 1998 2000 Análisis y Diseño Orientado a Objetos 11
Introducción La Orientación a Objetos USUARIO FINAL Programador Usuario Análisis y Diseño Programación Programador de Clases Programador de Hardware Análisis y Diseño Orientado a Objetos 12
Introducción Pilares básicos de la orientación a objetos Blob Disparador Polimorfismo Abstracción Agente Programación visual Encapsulamiento Persistencia Términos técnicos relacionados Conceptos clave Mensaje y método Clase y modelo Objeto Herencia Mecanismos básicos Análisis y Diseño Orientado a Objetos 13
Introducción Fundamentos de la orientación a objetos • La orientación a objetos se define por medio de un conjunto de mecanismos: objetos, clases y modelos, métodos y mensajes y herencia • Estos mecanismos dan origen a conceptos clave inherentes a los sistemas orientados a objetos: encapsulación, abstracción y polimorfismo • Asimilar las ideas orientadas a objetos significa aprender las diferencias así como las similitudes entre este método y los métodos convencionales Análisis y Diseño Orientado a Objetos 14
Introducción 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 aplican procedimientos activos a datos pasivos. Los métodos orientados a objetos encapsulan procedimientos y datos • La orientación a objetos se aplica a la mayoría de los principales componentes del software incluyendo: lenguajes, bases de datos e interfaces. El resultado será un software que es más fácil de ampliar y mantener, y aplicaciones que son más completas, más fáciles de utilizar y más flexibles • La orientación a objetos es importante hoy en día debido a la creciente complejidad del software y la necesidad de mejores procesos de creación de software Análisis y Diseño Orientado a Objetos 15
Introducción Objetos Análisis y Diseño Orientado a Objetos 16
Introducción Complejidad de la programación • Evolución hacia una separación importante entre los conceptos manipulados por los programas y su representación interna en el computador • Modularidad • Reutilización • Abstracción de los datos • Programación estructurada • Programación orientada a objetos Análisis y Diseño Orientado a Objetos 17
Introducción Programación estructurada Programa = algoritmo + estructuras de datos • Los procedimientos actuan sobre los datos: separación • Metodología: dividir para reinar • Problema: un cambio en los datos puede producir cambios profundos en la organización de los procedimientos • Solución: la encapsulación Análisis y Diseño Orientado a Objetos 18
Introducción La encapsulación Los datos y los procedimientos que los manipulan se agrupan en una sola entidad: el objeto Detalles de implementación escondidos: acceso únicamente por medio de la interfaz del objeto objeto METODOS CAMPOS Interfaz Análisis y Diseño Orientado a Objetos 19
Introducción El objeto Objeto = parte estática + parte dinámica • Parte estática: conjunto de datos (campos) • Parte dinámica: conjunto de procedimientos que manipulan los datos (métodos) • Modificación de los datos sin acceso directo a una variable • La aplicación es un conjunto de objetos, cada uno de los cuales posee las claves de su comportamiento Análisis y Diseño Orientado a Objetos 20
Introducción Definición de un método Selector ( lista de parámetros): cuerpo de la función Diferencia entre el método y su selector: varios métodos pueden poseer el mismo selector Análisis y Diseño Orientado a Objetos 21
Introducción La clase • Descripción de una familia de objetos que poseen la misma estructura y el mismo comportamiento • Componentes estáticos: los datos o campos. Caracterizan el estado del objeto durante la ejecución del programa • Componente dinámico: los procedimientos o métodos. Manipulan los campos y caracterizan las acciones que pueden ser afectadas por los objetos • La definición de una clase sirve para construir sus representantes físicos, las instancias Análisis y Diseño Orientado a Objetos 22
Introducción Ejemplo de clase Clase Revista Campos referencia nombre precioSinImpuesto cantidad Métodos precioConImpuesto( ) : produce (1.186 * precioSinImpuesto) precioTransporte( ) : produce (0.05 * precioSinImpuesto) retirar( c ): cantidad := cantidad - c añadir( c ): cantidad + c Análisis y Diseño Orientado a Objetos 23
Introducción Instanciación Instancia: objeto construido respetando los planes de construcción de una clase • No hay copia de los métodos • Copia parcial de los campos: la lista queda en la clase, el objeto posee los valores • Los campos son llamados igualmente variables de instancia o, simplemente, variables Análisis y Diseño Orientado a Objetos 24
Introducción Párrafo Clase Justificar Métodos Variables de clase Tipo de letra “fuente” = helvética Variables de instancia Texto = Instancias Los hombres .. Los niños .. Las mujeres .. Análisis y Diseño Orientado a Objetos 25
referencia 60021 nombre TV portátil precioSinImpuesto 210.000 cantidad 46 Introducción Ejemplo de instanciación 30341 kimono 45.000 600 Medio_De_Transporte Retirar Añadir Instancia-de Instancia-de Análisis y Diseño Orientado a Objetos 26
Introducción Herencia • Mecanismo para definir clases más específicas a partir de clases existentes: se complementan los conocimientos de la clase padre • La nueva clase (subclase) comparte las variables y los métodos de su clase madre (superclase): la subclase hereda las informaciones de la superclase • Tipos de herencia • Herencia simple • Una clase posee una sola superclase directa, el gráfico de herencia es un arbol • Herencia múltiple • Una clase posee varias superclases directas, el gráfico de herencia no es un árbol Análisis y Diseño Orientado a Objetos 27
Introducción Mecanismos de herencia • Enriquecimiento: • Se añaden variables y/o métodos • Substitución: • Un método heredado recibe una nueva definición (la antigua no es adecuada al nuevo conjunto de objetos descritos por la superclase • Visibilidad • Pública (public) • Privada (private) • Protegida (protected) Análisis y Diseño Orientado a Objetos 28
Introducción Herencia documento gráfico texto título párrafo tabla Los niños .. Análisis y Diseño Orientado a Objetos 29
Introducción Los mensajes • Un objeto no puede actuar directamente sobre otro • Unico medio de acción sobre un objeto: utilización de uno de los métodos de la interface del objeto • Envío de un mensaje: solicitud de ejecución de un método. El método es ejecutado por el objeto receptor • Elementos de un mensaje: • el receptor • el selector del método • los argumentos sobre los cuales se aplica el método • El método puede producir un resultado, que se puede asignar a una variable Análisis y Diseño Orientado a Objetos 30
Introducción Mensaje Mensaje Moverse(aladerecha,10centimetros) Objeto receptor Selector Parámetros Análisis y Diseño Orientado a Objetos 31
Introducción Ventajas iniciales del enfoque orientado a objetos • Simplicidad • Modularidad • Modificación simple • Posibilidades de extensión • Flexibilidad • Mantenimiento simple • Reutilización Análisis y Diseño Orientado a Objetos 32