Sunteți pe pagina 1din 37
Análisis y diseño orientado a objetos Sesión 2

Análisis y diseño orientado a objetos

Sesión 2

INTRODUCCION DEL CONTENIDO En esta sesión conoceremos los conceptos del paradigma orientado a objetos. Identificaremos que

INTRODUCCION DEL CONTENIDO

En esta sesión conoceremos los conceptos del paradigma orientado a objetos. Identificaremos que es un objeto, sus atributos, comportamientos y sus relaciones con otros objetos. Conoceremos los distintos diagramas UML para analizar y diseñar sistemas de información actuales.

INTRODUCCION DEL CONTENIDO En esta sesión conoceremos los conceptos del paradigma orientado a objetos. Identificaremos que
Objetivo • Aplicar el análisis y diseño de software orientado a objetos para modelar sistemas a

Objetivo

Aplicar el análisis y diseño de software orientado a objetos para modelar sistemas a través de UML que satisfagan las necesidades de las organizaciones.

Conceptos de la POO Ventajas: • Permite al programador organizar un programa de acuerdo a abstracciones

Conceptos de la POO

Ventajas:

Permite al programador organizar un programa de acuerdo a abstracciones de mas alto nivel

Los datos globales desaparecen y se convierten en parte interna de los objetos.

Modelado de sistemas Enfoque Orientado a Objetos usando notación UML Problemas actuales en implementación, al usar

Modelado de sistemas

Enfoque Orientado a Objetos usando notación UML

Problemas actuales en implementación, al usar entornos de programación visual y/o bases de datos relacionales

Posibles mejoras a mediano plazo

Evolución: Uso de BDOO y/o mejoras en los LPOO Revolución: Generación Automática de Código a partir de Modelos OO.

Análisis orientado a objetos ¿Qué? • Representar los requisitos del cliente en tres dominios: dominio de
Análisis orientado a objetos ¿Qué?
• Representar los requisitos del cliente en tres dominios:
dominio de la información, dominio funcional y dominio del
comportamiento
• Representación conceptual correspondiente al problema y
modelo
de requisitos de cada clase aporta para lograr
la
arquitectura deseada
• No se considera el ambiente de implementación
Análisis Orientado a Objetos Objet Objet o y o x Fecha objeto funciones funciones Año Año
Análisis Orientado a Objetos
Objet
Objet
o y
o x
Fecha
objeto
funciones
funciones
Año
Año
Día
Día
de 2
de 4
Mes
Mes
Dígito
Dígito
Año
s
Año
s
Diseño orientado a objetos ¿Cómo? Como el plano para la construcción de una casa Refinamiento y

Diseño orientado a objetos ¿Cómo?

Como el plano para la construcción de una casa

Refinamiento y formalización adicional del modelo de análisis tomando en cuenta los detalles de implementación

El resultado del modelo de diseño son especificaciones mucho más detalladas en cuanto a que se incluyen operaciones y atributos de los objetos

Aspectos principales del diseño OO Diseño de Objetos: objetos incluyendo operaciones y atributos. Diseño de Sistema:
Aspectos principales del diseño OO
Diseño de
Objetos:
objetos
incluyendo
operaciones y
atributos.
Diseño de
Sistema: Se
adapta el
modelo al
ambiente de
implementación.
Debate • ¿Por qué la orientación a objetos? • ¿Cuáles son los beneficios de OO ?

Debate

¿Por qué la orientación a objetos?

¿Cuáles son los beneficios de OO ?

¿Qué es el estado y comportamiento de un objeto?

UML • El Unified Modeling Language (UML) define un lenguaje de modelado orientado a objetos común

UML

El Unified Modeling Language (UML) define un lenguaje de modelado orientado a objetos común para:

visualizar especificar construir y documentar los componentes de un sistema de software OO.

UML • El Unified Modeling Language (UML) define un lenguaje de modelado orientado a objetos común

Un modelo es una simplificación de la realidad creada para comprender mejor un sistema.

Análisis Diseño Implementaci ón Diagramas de casos de uso Diagramas de actividad Diagramas de secuencia Diagramas
Análisis
Diseño
Implementaci
ón
Diagramas de casos
de uso
Diagramas de
actividad
Diagramas de
secuencia
Diagramas de
colaboración
Bases de datos
relacionales
Diagramas de clases
Diagramas de
estados
Diagramas de
actividad

Diagramas para el análisis y diseño OO

Diagrama de Casos de Uso: Muestra un conjunto de casos de uso y actores y sus
Diagrama de
Casos de Uso:
Muestra un
conjunto de
casos de uso y
actores y sus
relaciones.
Diagrama de
interacción:
Diagramas
para modelar
el
Comportamie
nto del
Sistema:
Diagrama de
Secuencia:
resalta la
organización
estructural de
los objetos que
envían y reciben
Diagrama de
interacción con
la relación
temporal de los
mensajes y los
mensajes.
objetos.
Diagrama de
colaboración:
modela la
interacción entre
los objetos de un
Caso de Uso.

Diagramas del análisis OO

Diagrama de Clases: presenta las clases del sistema con sus relaciones estructurales y de herencia. Diagrama
Diagrama de
Clases:
presenta las
clases del
sistema con
sus relaciones
estructurales y
de herencia.
Diagrama de
Diagramas
para
diseñar la
solución
Actividades:
Muestra el flujo
de actividades
dentro de un
sistema.

Diagramas del diseño OO

Estados:
Estados:

Muestra una máquina de estados, que consta de estados, transiciones, eventos y actividades. Vista dinámica del sistema.

Diagrama de

Paquetes en UML • Los paquetes ofrecen un mecanismo general para la organización de los modelos/subsistemas

Paquetes en UML

Los paquetes ofrecen un mecanismo general para la organización de los modelos/subsistemas agrupando elementos de modelado

Se representan gráficamente como:

Paquetes en UML • Los paquetes ofrecen un mecanismo general para la organización de los modelos/subsistemas
Ejemplo de paquetes en UML

Ejemplo de paquetes en UML

Ejemplo de paquetes en UML
Diagrama de Casos de Uso • Casos de Uso es una técnica para capturar información de

Diagrama de Casos de Uso

Casos de Uso es una técnica para capturar información de cómo un sistema o negocio trabaja, o de cómo se desea que trabaje

No pertenece estrictamente al enfoque orientado a objeto, es una técnica para captura de requisitos

Diagrama de Casos de Uso • Casos de Uso es una técnica para capturar información de
Diagrama de Secuencia Los Diagramas de Secuencia y de Colaboración son usados para describir gráficamente un
Diagrama de Secuencia
Los Diagramas de Secuencia y de
Colaboración son usados para describir
gráficamente un caso de uso o un escenario
Los mensajes son dibujados
cronológicamente desde arriba hacia abajo
Los rectángulos en las líneas verticales
representan los periodos de actividad de
los objetos.
Ejemplo de diagrama de Secuencia

Ejemplo de diagrama de Secuencia

Ejemplo de diagrama de Secuencia
Diagrama de Colaboración El Diagrama de Colaboración modela la interacción entre los objetos de un Caso

Diagrama de Colaboración

El Diagrama de Colaboración modela la interacción entre los objetos de un Caso de Uso

Los objetos están conectados por enlaces (links) en los cuales se representan los mensajes enviados acompañados de una flecha que indica su dirección

Ejemplo de diagrama de Colaboración

Ejemplo de diagrama de Colaboración

Ejemplo de diagrama de Colaboración
Diagrama de Estados El Diagrama de Estados modela el comportamiento de una parte del sistema El

Diagrama de Estados

El Diagrama de Estados modela el comportamiento de una parte del sistema

El comportamiento es modelado en términos del estado en el cual se encuentra el objeto, qué acciones se ejecutan en cada estado y cuál es el estado al que transita después de un determinado evento

Ejemplo de diagrama de Estados

Ejemplo de diagrama de Estados

Ejemplo de diagrama de Estados
Diagrama de Actividad Caso especial de Diagrama de Estados donde: • Todos (o la mayoría de)

Diagrama de Actividad

Caso especial de Diagrama de Estados donde:

Todos (o la mayoría de) los estados son estados de acción Todas (la mayoría de) las transiciones son “disparadas” cuando termina una acción

Puede especificar:

El comportamiento de los objetos de una clase La lógica de una operación (método) Parte o toda la descripción de un Caso de uso La descripción de un Flujo de Trabajo

Ejemplo de diagrama de Actividad

Ejemplo de diagrama de Actividad

Ejemplo de diagrama de Actividad
Diagrama de Clases Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales

Diagrama de Clases

Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herencia

La definición de clase incluye definiciones para atributos y operaciones

El modelo de casos de uso aporta información para establecer las clases, objetos, atributos y operaciones

Ejemplo de diagrama de Clases Componentes del diagrama de cl ases elaborarlo Como

Ejemplo de diagrama de Clases

Componentes del diagrama de cl ases
Componentes del
diagrama de cl
ases

elaborarlo

Como

¿Cómo identificar Objetos? • Cosas tangibles • Roles • Incidentes o eventos • Interacciones

¿Cómo identificar Objetos?

Cosas tangibles Roles Incidentes o eventos Interacciones

¿Cómo identificar Objetos? • Cosas tangibles • Roles • Incidentes o eventos • Interacciones
Características de un Objeto OBJETO= ESTADO+ COMPORTAMIENTO+ IDENTIDAD

Características de un Objeto

OBJETO= ESTADO+ COMPORTAMIENTO+ IDENTIDAD

Encapsulamiento Privada ( -): visible sólo para la clase y para las clases amigas (C++). Protegida

Encapsulamiento

Privada( -): visible sólo para la clase y para las clases amigas (C++).

Protegida( # ): visible sólo para las clases derivadas (subclases).

Pública( + ): visible para todas las clases con las que esta asociada.

Jerarquía de clases • Las jerarquías permiten gestionar la complejidad ordenando los objetos dentro de árboles

Jerarquía de clases

Las jerarquías permiten gestionar la complejidad ordenando los objetos dentro de árboles de clases de abstracción creciente.

Jerarquía de clases • Las jerarquías permiten gestionar la complejidad ordenando los objetos dentro de árboles
Herencia • Consiste en factorizar los elementos comunes (atributos, operaciones y restricciones) de un conjunto de

Herencia

Consiste en factorizar los elementos comunes (atributos, operaciones y restricciones) de un conjunto de clases en una clase más general llamada superclase.

Significa “es un” o “es una”

Herencia • Consiste en factorizar los elementos comunes (atributos, operaciones y restricciones) de un conjunto de
Propiedades de la generalización

Propiedades de la generalización

Propiedades de la generalización
Abstracción

Abstracción

Abstracción
Polimorfismo • Describe la característica de un elemento que puede tomar varias formas.

Polimorfismo

Describe la característica de un elemento que puede tomar varias formas.

Polimorfismo • Describe la característica de un elemento que puede tomar varias formas.
Análisis de caso: Hotel El dueño de un hotel le pide a usted desarrollar un programa

Análisis de caso: Hotel

El dueño de un hotel le pide a usted desarrollar un programa para consultar sobre las habitaciones disponibles y reservar habitaciones de su hotel.

El hotel posee tres tipos de habitaciones: simple, doble y matrimonial, y dos tipos de clientes: habituales y esporádicos. Una reservación almacena datos del cliente, de la habitación reservada, la fecha de comienzo y el número de días que será ocupada la habitación.

El recepcionista del hotel debe poder hacer la siguientes operaciones:

Obtener un listado de las habitaciones disponible de acuerdo a su tipo Preguntar por el precio de una habitación de acuerdo a su tipo Preguntar por el descuento ofrecido a los clientes habituales

Preguntar por el precio total para un cliente dado, especificando su numero de ID, tipo de habitación y número de noches.

Reservar una habitación especificando el número de la habitación, id y nombre del cliente.

Eliminar una reserva especificando el número de la habitación El administrador puede usar el programa para:

Cambiar el precio de una habitación de acuerdo a su tipo Cambiar el valor del descuento ofrecido a los clientes habituales

Calcular las ganancias que tendrán en un mes especificado (considere que todos los meses tienen treinta días).

El hotel posee información sobre cuales clientes son habituales. Esta estructura puede manejarla con un diccionario, cuya clave sea el número de ID y como significado tenga los datos personales del cliente.

El diseño a desarrollar debe facilitar la extensibilidad de nuevos tipos de lt

h

bit

li

t

iti

Herramientas CASE • <a href=http://www.objectsbydesign.com/tools/umltools_byPrice.html " id="pdf-obj-36-2" src="pdf-obj-36-2.jpg">

Herramientas CASE