UML - univalle eisc

Download Report

Transcript UML - univalle eisc

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
Piensen en tareas
Aplicaciones, archivos
y sistemas operativos
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
Programador Usuario
Programador de Clases
Programación
Análisis y Diseño
USUARIO FINAL
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
Agente
Programación
visual
Polimorfismo
Términos técnicos
relacionados
Objeto
Encapsulamiento
Abstracción
Persistencia
Conceptos clave
Mensaje
y método
Clase y
modelo
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
de implementación escondidos: acceso únicamente por medio de
la interfaz del objeto
Interfaz
€ Detalles
METODOS
CAMPOS
objeto
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
Clase
Párrafo
Métodos
Justificar
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
Introducción
Ejemplo de instanciación
referencia
30341
60021
nombre
kimono
45.000
600
TV portátil
precioSinImpuesto
210.000
cantidad
Medio_De_Transporte
Retirar
Añadir
Instancia-de
46
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