! Fundamentos del diseño orientado a objetos. ! Casos de uso. ! Diseño orientado a objetos. ! Facilidad de diseño y relación con el mundo real

Documentos relacionados
Diagramas De Casos De Uso

Lenguaje de Modelamiento Unificado.

UML: INTRODUCCIÓN, ORIENTACIÓN a Objetos

Prof. Mariano Mancuso. Sistemas de información y control diagrama de clases

UML (Lenguaje de Modelado Unificado) y Diagramas de Casos de Uso

Guía del Curso Analista Programador Java: Business Apps Expert

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo

Capítulo 16. Diagrama de Clases UML

Un caso de uso es una tarea que debe poder llevarse a cabo con el apoyo del sistema que se está desarrollando, se representa mediante un óvalo.

Curso de Java POO: Programación orientada a objetos

Tema: Herramientas UML, Análisis y diseño UML

Tema: Herramientas UML, Análisis y diseño UML

1. Asignar Responsabilidades a componentes de software es la habilidad más importante del AOO. Porque:

Probando casos de uso

Unidad II. Metodología para resolver problemas aplicando la POO. Parte 1

Actividad ASI 1: Definición del Sistema

Ingeniería a de Software CC51A

Introducción a la Orientación a Objetos

TEMA 4. PROCESO UNIFICADO

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS.

Los diagramas de clases y de objetos sirven para modelar diversos aspectos estructurales o estáticos de un sistema: Modelado - Vocabulario del Sistema

CIDE, SA. RIF: J NIT: MODELO FUNCIONAL

DIAGRAMAS UML ANDRÉS ESTEBAN MARTÍNEZ HUTA CICLO DE VIDA DEL SOFTWARE GLORIA CECILIA RÍOS MUÑOZ

Modelado Básico con Casos de Uso. Diseño de Software Avanzado Departamento de Informática

Cristian Blanco

Elementos Diagramas de Clases Clase:

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

Diagramas de interacción

Programación Avanzada. Desarrollo Orientado a Objetos basado en UML

CASOS DE USO Exploración de Requerimientos

Desarrollo Orientado a Objetos en Métrica v. 3

Análisis y Diseño Orientado a Objetos

Análisis y Diseño de Sistemas

Diagramas de secuencia

Requerimientos de Software

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

Comprensión de los sistemas de. control. Ing. Jorge Sofrony. Inicio. Obje%vos del Programa. Misión y Visión del programa

Conceptos de Programación Orientada a Objetos

UML, ejemplo sencillo sobre Modelado de un Proyecto

Tema 2 Introducción a la Programación en C.

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

Análisis y Diseño de Sistemas

UML Unifield Modeling Languaje

Documentación de Requisitos con Casos de Uso

DIAGRAMAS DE UML DIAGRAMAS DE CASO DE USO

Diseño Lógico Modelo Relacional. Ges3ón y Modelación de Datos María Constanza Pabón

Tema 3: Diagramas de Casos de Uso. Arturo Mora Soto Octubre 2008

Figura 2. Figura 1. Figura 3. Figura 4

CLASE 4: CASOS DE USO REQUERIMIENTOS. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette Martínez

TEMA: CASOS DE USO DEL PROYECTO CATEDRÁTICO: ING. ANA MERCEDES CACERES GRUPO: RAUL ERNESTO CRUZ ORELLANA LEVI OSMIN RODRIGUEZ OROZCO

Las redes semánticas intentan trasladar esa afirmación a un formalismo Una red semántica será un grafo donde:

Capítulos 2 y 5: Modelación con UML y Modelo Objeto

Descripción del Curso

1. Preparar al estudiante para desarrollar aplicaciones de software utilizando un enfoque orientado a objetos.

Metodología de Desarrollo Visual. Universidad Carlos III de Madrid. Maria- Isabel, Sanchez Segura & Arturo, Mora- Soto

3. DOCUMENTACIÓN 3.1. DOCUMENTACIÓN DE APLICACIONES. OBJETIVOS PARA MODIFICAR HACE FALTA COMPRENDER/ESTUDIAR:

Planificaciones Análisis de la Información. Docente responsable: GONZALEZ NORBERTO DANIEL. 1 de 6

Material para Entidades Servicios tecnológicos para una vida más fácil. Servicios tecnológicos para una vida más fácil.

USECASE. CASOS de USO

Casos de Uso. Introducción. Actores

CLA. Diagramas de clases en Métrica V3

Principios de Análisis Informático. Tema 3: Fase de inicio

UML El Lenguaje Unificado de Modelado Grady Booch, Jim Rumbaugh e Ivar Jacobson

Sistemas de Información II Requerimientos. Análisis de Requisitos

LÓGICA DE PROGRAMACIÓN

Contenido INTRODUCCIÓN... 3 Etapas de validación... 3 OBJETIVOS VALIDADOR FACTURACIÓN ELECTRÓNICA USUARIO

Programación Avanzada. Requerimientos de Software

Modulo 11. Clases y Objetos en Java

T3-Análisis y Diseño del Sistema Software

Diseño. Diseño. Interacción. Aspectos comunes en interacción. Diagramas de Interacción. Curso de Arquitecturas de Software

Centro Asociado Palma de Mallorca Tutor: Antonio Rivero Cuesta

MODELADO DE CASOS DE USO (Libro UML 2-Arlow & Neustad)

Curso Taller de Arquitectura de Software usando UML

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

Manual de Usuario Webmail Horde

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Manual de Usuario para cambio de contraseña de Alumnos y Empleados ITSON. Solicitud de Cambio Password

GI-A.10.1-SA-07 GUIA RÁPIDA COMPRAR EN LÍNEA. Código: GI-A.10.1-SA-07 GUÍA RÁPIDA COMPRAR EN LÍNEA. Revisión:1 MANUAL

REQUISITOS...3 CASOS DE USO...4

Trabajo Práctico Nro. 7. Herramientas para el Modelado de Comportamiento Básico: Diagramas y Especificaciones de Casos de Uso

Se utiliza para representar los tipos de objetos dentro del sistema (proceso) y las diversas relaciones estáticas que existen entre ellos

Ejercicio Guiado de Análisis y Diseño Orientado a Objetos. Ejemplo: CAJERO AUTOMÁTICO

ESQUEMA DE SEGURIDAD KEPLER 80

SISTEMA DE VENTAS Y COMPRA DE TIENDA DE VESTIR SIVECO VISION. Versión 1.0 MANUEL PABLO GUERRA MARTÍNEZ.

Java Avanzado Facultad de Ingeniería. Escuela de computación.

DIAGRAMAS DE UML. Prof. Wenceslao Chávez Bedoya

SISTEMA DE CONSULTAS PAGOS DE PROVEEDORES

Inicio rápido: Regístrese para Microsoft Business Center

4. DIAGRAMAS DE INTERACCIÓN INTRODUCCIÓN DIAGRAMAS DE SECUENCIA Objetos Mensajes

El modelo de casos de uso. Ingeniería de la Programación

Manual de Usuario para Proponentes

SINAUTO. (Captura Requirimientos) GRUPO 03


Capitulo III. Diseño del Sistema.

ACCESO A LA APLICACIÓN...

PROTOTIPO DE FACTURACIÓN ELECTRÓNICA MANUAL TÉCNICO

DIAGRAMAS DE SECUENCIA DEL SISTEMA, CONTRATOS DE LAS OPERACIONES DEL SISTEMA, GLOSARIO Y PAQUETES

TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso 2010/2011

MCTS Exchange Server 2010 Administración. Fabricante: Microsoft Grupo: Servidores Subgrupo: Microsoft Exchange Server 2010

Bases de Datos Diseño de Bases de Datos Modelo Conceptual Entidad Relación

Transcripción:

Contenidos Diseño orientado a objetos Curso de Programación en Java! Fundamentos del diseño orientado a objetos! Casos de uso! Diseño orientado a objetos Jesús Montes Sánchez jmontes@fi.upm.es Marzo 2011 Programación orientada a objetos Fundamentos del diseño orientado a objetos! Facilidad de diseño y relación con el mundo real! Reusabilidad y facilidad de mantenimiento! Sistemas más complejos! Abstracción! Trabajo en equipo! Del lenguaje máquina hacia el mundo real! Resuelve problemas complicados. No está pensado para tareas sencillas Ciclo de vida del soqware Ciclo de vida del soqware Implantación Validación Especificación Análisis Diseño! Especificación y análisis! Se especifican las tareas que va a realizar el sistema! QUÉ hace nuestro programa?! Diseño! Se dis[nguen las diferentes partes del sistema y su interacción! CÓMO lo hace? Programación 1

UML (Unified Modeling Language) Especificación y análisis! Lenguaje unificado de modelado! Planos de la aplicación. No sirve para desarrollar, sino para describir (análisis y diseño)! Se u[lizan diferentes diagramas. (13 [pos en UML 2.0)! Definimos de forma no ambigua QUÉ va ha hacer nuestro programa.! Funcionalidades del programa.! Mecanismos de interacción con el usuario.! Como interactúa con el exterior.! Definición de CASOS DE USO Sistema y entorno Modelo de caja negra! Sistema! El programa que estamos desarrollando. Es el objeto de nuestro trabajo y es lo que especificamos, analizamos, diseñamos, programamos! Entorno! Todo aquello que aparece en nuestro análisis y diseño y que es externo al sistema.! Usuarios! Otros sistemas!! Los elementos del entorno deben ver al sistema como una caja negra! Una caja negra es un sistema cerrado, del que no conocemos su funcionamiento.! Una caja negra ofrece una interfaz con el exterior, que permite usarla. A través de dicha interfaz los usuarios pueden operar la caja y recibir los resultados de dicha operación.! El proceso de análisis y diseño se basa en este principio fundamental. Se analiza y diseña cada componente del sistema como una caja negra y luego se profundiza, repi[endo el proceso en su interior. Casos de uso Casos de uso! Cada caso de uso es una historia de uso del sistema.! Los casos de uso SON requisitos.! Recogen fundamentalmente requisitos funcionales.! Los casos de uso NO SON ORIENTADOS A OBJETOS. 2

Casos de uso Elementos de un caso de uso! Los casos de uso permiten considerar y organizar los requisitos en el contexto de los obje[vos y escenarios de uso del sistema.! Los casos de uso mejoran la comprensión y cohesión frente a una lista extensa de caracterís[cas inconexas.! Ejemplo: procesar una venta El cliente llega a la caja con los arjculos que desea comprar. El cajero pasa cada arjculo por el lector de código de barras y el sistema presenta el coste total de la compra. El cliente paga y el sistema registra y valida el pago. El sistema actualiza el inventario y produce un recibo. El cliente se va con sus arjculos y su recibo.! Precondiciones! Aquello que se debe cumplir para que el caso se de.! Actor! Individuo involucrado en el caso de uso.! Escenario o curso de eventos! Lo que ocurre cuando se da el caso de uso.! Garanja de éxito (postcondiciones)! Resultado final del caso de uso. Actor Escenario o curso de eventos! En[dad externa al sistema que interactúa con él.! Tiene comportamiento propio.! Pueden ser humanos, organizaciones, disposi[vos informá[cos! Se nombran por el rol que desempeñan: Cliente, cajero, administrador! En un diseño con varios sistemas, un programa (sistema) puede ser actor de otro.! Una secuencia específica de acciones e interacciones entre los actores y el sistema objeto de estudio.! Puede haber escenarios de éxito! Ejemplo: procesar una venta sin incidencias! y escenarios de fracaso! Ejemplo: Procesar una venta donde el cliente no lleva suficiente dinero para pagarla y debe cancelarse la venta. Definición de caso de uso Planteamiento de casos de uso! Un caso de uso es una colección de escenarios de éxito y fracaso relacionados, que describe a los actores u[lizando el sistema para sa[sfacer un obje[vo.! Estrategia basada en Actores! Iden[ficar actores principales.! Iden[ficar los obje[vos de usuario de dichos actores.! Definir un caso de uso por cada obje[vo de usuario.! Estrategia basada en Eventos! Iden[ficar eventos a los que debe responder el sistema.! Relacionar los eventos con actores y casos de uso. 3

Casos de uso (UML) Especificación de casos de uso! Nombre Actor! Actores Caso de uso Nombre Nombre! Escenario principal de éxito Nombre Sistema Ejemplo: programa mi mi: Actores! mi es un programa que permite a dis[ntos usuarios enviarse mensajes electrónicos.! Un usuario de mi usa el programa a través de su interfaz.! Un usuario de mi se iden[fica con su nombre y su contraseña.! Los usuarios de mi puede enviar mensajes a otros indicando el nombre del des[natario y el texto del mensaje.! Usuario! La persona que hace uso de la aplicación! No hay mas actores! Los usuarios de mi pueden acceder al sistema para ver si [ene mensajes nuevos en su buzón y leerlos. mi: casos de uso mi: diagrama de casos de uso! Enviar un mensaje! El usuario envía un mensaje a otro usuario del sistema.! Consultar no léidos! El usuario consulta los mensajes recibidos en su buzón.! Iniciar sesión?! NO: No es un caso de uso porque no representa un uso completo del sistema. El obje[vo del usuario nunca es iniciar sesión sin mas. Usuario mi Enviar mensaje Consultar no leídos 4

mi: consultar no leídos! Actores! Usuario! Escenario principal 1. El usuario se auten[ca con su nombre y contraseña. 2. El sistema da la bienvenida al usuario. 3. El usuario selecciona la opción de enviar un mensaje, indicando el des[natario y texto del mensaje. 4. El sistema envía el mensaje y confirma la operación.! Contraseña incorrecta: El sistema da error y la operación termina.! Des[natario no encontrado: El sistema da error y se vuelve a 2.! Actores! Usuario! Escenario principal 1. El usuario se auten[ca con su nombre y contraseña. 2. El sistema da la bienvenida al usuario. 3. El usuario selecciona la opción de leer los mensajes no leídos. 4. El sistema muestra los mensajes al usuario.! Contraseña incorrecta: El sistema da error y la operación termina.! No hay nuevos: En 4, el sistema no[fica que no hay mensajes. Diseño Diseño orientado a objetos! La especificación y análisis en casos de uso nos dan una idea clara de las funcionalidades que va a tener nuestro programa y como se interactúa con él.! Hasta ahora hemos visto el programa completo (sistema) como una caja negra.! El siguiente paso es entrar en la caja y definir los elementos que la forman: Clases y objetos. Iden[ficación de conceptos Iden[ficación de clases! Iden[ficar sustan[vos y frases nominales, en los casos de uso completos, en los requisitos, y en descripciones del dominio.! Intui[vamente (mucho cuidado con esto)! Cada nombre un objeto! Cada verbo un método! En general, los principales conceptos de nuestro programa estarán representados por clases que se instanciarán en objetos.! Iden[ficar conceptos! Iden[ficar elementos que dis[nguen a esos conceptos: atributos! Iden[ficar relaciones entre clases! A par[r de los casos de uso, iden[ficar la interacción entre objetos que da lugar a la funcionalidad deseada. 5

Clases (UML) mi: iden[ficando conceptos! Nombre de la clase! Atributos! Métodos + público, - privado Nombre + atributo1: int - atributo2: double + método1(par1): int + método2(par1, par2): double + método3(): void! mi es un programa que permite a dis[ntos usuarios enviarse mensajes electrónicos.! Un usuario de mi usa el programa a través de su interfaz.! Un usuario de mi se iden[fica con su nombre y su contraseña.! Los usuarios de mi puede enviar mensajes a otros indicando el nombre del des[natario y el texto del mensaje.! Los usuarios de mi pueden acceder al sistema para ver si [ene mensajes nuevos en su buzón y leerlos. mi: clases mi: diagrama de clases!! Los elementos de comunicación con el exterior.!! Cada uno de los usuarios que hacen uso del sistema.! Mensaje! Los mensajes que los usuarios se intercambian.!! El buzón personal de cada persona. Con[ene los mensajes dirigidos a ésta. - nombre: String - contraseña: String Mensaje - texto: String Relaciones entre clases Asociación! Asociación! Agregación! Composición! Dependencia! Generalización! Relación entre clases que se man[ene en el [empo! Puede tener un nombre, una dirección y una cardinalidad.! Se refleja cuando se introducen referencias a objetos como atributos! Dependiendo de la cardinalidad, habrá que usar arrays o estructuras de datos Clase1 - Atributo1 - Atributo2 + Operación1 - Atributo3 Clase2 - Atributo + Operación1 + Operación2 6

Agregación Composición! Asociación con contenido semán[co.! Caso par[cular de agregación! Una clase representa el todo y la otra una parte! La parte no existe sin el todo! La parte no está necesariamente ligadas al todo (puede exis[r sin él) PC - Marca - Modelo - Monitor Pantalla! En Java la dis[nción entre agregación y composición es puramente conceptual (recolector de basura) Arbol - Hojas * Hoja Dependencia Generalización! Indica que una clase hace uso de otra.! Representa herencia entre clases. Clase padre! Una clase instancia otro objeto.! Se recibe un objeto como parámetro.! Se devuelve un objeto como resultado. Clase1 Clase2! Un caso par[cular de generalización es la Realización, que se da cuando se hereda de una clase de interfaz Clase hija <<interfaz>> Clase interfaz Clase1 Relaciones como atributos mi: diagrama de clases! Cuando una relación entre clases se refiere a un atributo de la clase, éste se pone sobre la línea que representa la asociación.! También se puede poner como un atributo más y dejar la línea vacía PC - Marca: String - Modelo: String PC - Marca: String - Modelo: String - Monitor: Pantalla - Monitor Pantalla Pantalla - usuarios: List<> - nombre: String - contraseña: String - buzónl: - mensajes: List<Mensaje> Mensaje - remitente: - texto: String - destinatario: 7

Operaciones! A par[r de los casos de uso iden[ficados, se describen las operaciones del sistema.! Esta descripción se puede hacer de manera informal (en texto) o mediante diagramas de interacción. Por sencillez, en este curso lo haremos de manera informal.! UML proporciona dos [pos de diagramas de interacción: diagramas de secuencia y diagramas de colaboración.! La descripción de estas operaciones dará lugar a los métodos de las clases del sistema.! Caso de uso:! Escenario principal 1. El usuario se auten[ca con su nombre y contraseña. 2. El sistema da la bienvenida al usuario. 3. El usuario selecciona la opción de enviar un mensaje, indicando el des[natario y texto del mensaje. 4. El sistema envía el mensaje y confirma la operación.! Contraseña incorrecta: El sistema da error y la operación termina.! Des[natario no encontrado: El sistema da error y se vuelve a 2. 1. El usuario se auten[ca, indicando su usuario y contraseña. 2. La interfaz localiza al usuario (objeto ). Si la contraseña es correcta con[núa. Si no, se da un mensaje de error. 3. La interfaz solicita el nombre del des[natario y lo busca. Si lo encuentra con[núa. Si no, da un mensaje de error. 4. La interfaz solicita el texto del mensaje. 5. La interfaz crea el mensaje y se lo entrega a la persona des[no. 6. La persona des[no almacena el mensaje en su buzón. Auten[car Enviar mensaje Comp. contraseña Entregar mensaje Crear 1 (rem.) 2 (dest.) Mensaje Guardar mensaje mi: consultar no leídos! Métodos necesarios:!! auten[car (usuario, contraseña) :! enviarmensaje (remitente, des[natario, texto)!! obtenernombre () : String! comprobarcontraseña (contraseña) : Boolean! entregarmensaje(mensaje)! Mensaje! crearmensaje (remitente, des[natario, texto)!! almacenarmensaje (mensaje)! Caso de uso! Escenario principal 1. El usuario se auten[ca con su nombre y contraseña. 2. El sistema da la bienvenida al usuario. 3. El usuario selecciona la opción de leer los mensajes no leídos. 4. El sistema muestra los mensajes al usuario.! Contraseña incorrecta: El sistema da error y la operación termina.! No hay nuevos: En 4, el sistema no[fica que no hay mensajes. 8

mi: consultar no leídos 1. El usuario se auten[ca, indicando su usuario y contraseña. 2. La interfaz localiza al usuario (objeto ). Si la contraseña es correcta con[núa. Si no, se da un mensaje de error. 3. La interfaz solicita a la sus mensajes no leídos. 4. La persona solicita a su sus mensajes no leídos. Auten[car Ver no leídos Comp. contraseña Ver no leídos Obtener no leídos 5. La interfaz muestra por pantalla los mensajes no leídos, si los hay. 6. El buzón se vacía mi: diagrama de clases! Métodos necesarios (no vistos antes):!! vernoleídos()!! vernoleídos() : List<Mensaje>!! obtenernoleídos() : List<Mensaje> - usuarios: List<> + autenticar (usuario: String, contraseña: String) + enviarmensaje(destinatario: String, texto: String) + vernoleídos() - nombre: String - contraseña: String - buzónl: + obtenernombre(): String + comprobarcontraseña(contr: String): Boolean + entregarmensaje(mensaje: Mensaje) + vernoleídos(): List<Mensaje> - mensajes: List<Mensaje> + almacenarmensaje(mensaje: Mensaje) + obtenernoleídos(): List<Mensaje> Mensaje - remitente: - texto: String - destinatario: + crear(remit:, dest:, texto: String) 9