Sesion 2.pptx
-
Upload
ana-luisa-ballinas-hernandez -
Category
Documents
-
view
42 -
download
4
Transcript of Sesion 2.pptx
Análisis y diseño orientado a objetosSesión 2
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.
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 POOVentajas:
• 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 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 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
Objeto x
Fecha
Objeto y
Año de 4
Dígitos
funciones
objeto
DíaMesAño
Año de 2
Dígitos
funciones
DíaMesAño
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: Se
adapta el modelo al
ambiente de implementación.
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 para:• visualizar• especificar• construir y • documentar los componentes de un sistema de software OO.
• Un modelo es una simplificación de larealidad creada para comprender mejor un sistema.
Diagramas para el análisis y diseño OO
Análisis Diseño Implementación
Diagramas de casos de usoDiagramas de actividadDiagramas de secuencia
Diagramas de colaboración
Diagramas de clasesDiagramas de estados
Diagramas de actividad
Bases de datos relacionales
Diagramas del análisis OO
Diagramas para modelar el
Comportamiento del Sistema:
Diagrama de Casos de Uso: Muestra un
conjunto de casos de uso y actores y sus
relaciones.
Diagrama de Secuencia:
Diagrama de interacción con la relación temporal de los mensajes y
los objetos.
Diagrama de colaboración:
modela la interacción entre los objetos de un Caso
de Uso.
Diagrama de interacción: resalta
la organización estructural de los
objetos que envían y reciben mensajes.
Diagramas para diseñar la
solución
Diagrama de Clases: presenta
las clases del sistema con sus
relaciones estructurales y de
herencia.
Diagrama de Estados: Muestra una máquina de estados,
que consta de estados, transiciones,
eventos y actividades. Vista
dinámica del sistema.
Diagrama de Actividades:
Muestra el flujo de actividades dentro
de un sistema.
Diagramas del diseño OO
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:
Ejemplo de paquetes en UML
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 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
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
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
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
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
Como elaborarloComponentes del diagrama de clases
¿Cómo identificar Objetos?
• Cosas tangibles• Roles• Incidentes o eventos• Interacciones
Características de un Objeto
OBJETO= ESTADO+ COMPORTAMIENTO+
IDENTIDAD
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 de clases de abstracción creciente.
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”
Propiedades de la generalización
Abstracción
Polimorfismo
• Describe la característica de un elemento que puede tomar varias formas.
Análisis de caso: HotelEl 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ónEl 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 habitación o clientes y a su vez permitir agregar nuevas consultas.
Herramientas CASE
• http://www.objectsbydesign.com/tools/umltools_byPrice.html