Programación Avanzada

Slides:



Advertisements
Presentaciones similares
Etapa Análisis-Diseño Uso de UML en el Desarrollo de Proyectos
Advertisements

Casos de Uso – 2ª Parte Especificación Is-in-400.blogspot.com
Diseño de la Interfaz de Usuario
Desarrollo Orientado a Objetos con UML
HERRAMIENTA DE GESTION DE VENTAS Departamento de Electrónica Diseño y Programación Orientados a Objetos Cristian Hernández C Daniel Spataris.
CASOS DE USO Ing. Sonia Godoy H..
GUÍA DE USO DEL SISTEMA DE ATENCIÓN Y GESTIÓN TICKETS (SAGT) ANALISTAS Gerencia de Atención al Estado Oficina de Atención al Usuario Octubre, 2010.
Introducción a las bases de datos. MODELO ENTIDAD RELACIÓN (CONTINUACIÓN)  Ejemplo de cómo se lee un diagrama entidad relación:
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Sonia.
Nombre José Francisco Luna Jurado Matricula Asignatura
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
LIBRO DE BANCOS DHARMA USAHA
Procedimiento Administración de Cuentas de Depósitos Monetarios
Flujo de trabajo: Requisitos Modelado de Casos de Uso
Programación Avanzada
REGISTRO DE ACTIVIDADES PREVENTIVAS
Programación Avanzada
Zapatería Clara Cirenne
Programación Avanzada
Sistema de Control de Accesos Web
METODOLOGÍA DE SISTEMAS
Programación Avanzada
Programación Avanzada
TEMA 3. CAPTURA DE REQUISITOS COMO CASOS DE USO (Continuación fase de Planeación y Elaboración) ANÁLISIS Y DISEÑO DE SISTEMAS II Lic. Elisa Arizaca Ramirez.
Ciclo de vida del producto y decisiones de selección del proceso
ESTRUCTURAS CONDICIONALES
SEMINARIO DE INDUCCIÓN
EVIDENCIA Y PROCEDIMIENTOS DE AUDITORIA
Agendas de actuación.
¿ Que hemos aprendido? Análisis Entendimiento del problema
USO RESPONSABLE DE LAS TARJETAS DE CREDITO Responsabilidad social.
Programación Avanzada
18 agosto – 22 septiembre de 2016 Chile
Patrones de Diseño Patrones GRASP Experto Creador Alta Cohesión
BASES DE DATOS.
Diagramas de clases Modelan la vista estática del sistema
SEMINARIO DE INDUCCIÓN
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
METODOLOGÍA DE SISTEMAS
VALIDACION DE DATOS EN EXCEL
Fundamentos contables
Metodologías para Gestión de Proyectos
Taller Organización de Procedimientos Administrativos.
TRANSFERENCIAS ELECTRÓNICAS Y PAGOS
Presenta.
Análisis de Pareto Elección de los cambios más importantes a realizar Ingeniería Simple Copyright 2008 by Leonel Morales Díaz.
Programación lógica y funcional Unidad I Conceptos fundamentales.
Guía interactiva de usuario final operativo
Guatemala, 2011.
Registro de Metas para Personal Operativo
Mecanismo de Seguridad “Identificación Positiva“
Diagramas de clases Modelan la vista estática del sistema
Las empresas necesitan soluciones para
Oscar Navarrete J. Jorge Gutiérrez A.
Oscar Navarrete J. Jorge Gutiérrez A.
COLAS O LINEA DE ESPERA EN C# SHARP. ¿QUE ES UNA COLA O LINEA DE ESPERA?  Es una estructura de datos que almacena elemento en una lista y permite acceder.
Casos de Uso Análisis de requisitos con casos de uso.
Sistema de Control de Ingreso de Vehículos
SWAY Aplicación Office 365.
DISEÑO METODOLÓGICO ¿C UÁLES SERÁN LOS MÉTODOS PARA ABORDAR LA INVESTIGACIÓN ? Metodología de la Investigación Científica.
ANÁLISIS Y DISEÑO DESDE UNA PERSPECTIVA ORIENTADA A OBJETOS Alan Vargas.
Consideraciones a tener en cuenta:  Solo se puede retirar como máximo 1 sola vez por cada curso, a lo largo de todo el programa.  No se considerarán.
INTRODUCCIÓN A UML.  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
PRUEBAS DE CAJA NEGRA. -Internationa Software Testing Qualification Board (ISTQB) Internationa Software Testing Qualification Board (ISTQB) Técnica de.
2. PRINCIPIOS BASICOS DE MICROSOFT ACCESS. -Sistema que tiene la capacidad de realizar tareas de distinta índole utilizando herramientas que interactúan.
Estudio de Viabilidad del Sistema (EVS). Estudio de Viabilidad del Sistema Cuestiones ¿Qué es la viabilidad de un sistema? ¿Cuáles son los objetivos del.
PLANIFICACION Diego Hernández.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Gestión de los flujos de trabajo. Estructura organizativa y flujos de trabajo La estructura organizativa se refiere a las relaciones formales e informales.
Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Copyright 2019 Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Derechos reservados UML.
Transcripción de la presentación:

Programación Avanzada Diseño Guías para el Abordaje del Diseño

Contenido Introducción Caso de Estudio Guías para el Abordaje del Diseño Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Introducción Se desea abordar la etapa de diseño con un enfoque sistemático Se presentarán pautas para organizar de mejor forma la tarea Se ejemplificarán las mismas por medio de un caso de estudio Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Caso de Estudio Gestión de cuentas en bancos a través de ATMs (cajeros automáticos): A través de una red de ATMs, los clientes acceden a sus cuentas sobre las cuales realizan transacciones (depósitos y retiros) Las cuentas pueden ser compartidas por más de un cliente Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Caso de Estudio Modelo de Dominio numero : int saldo : float Cuenta nombre : string Banco ATM fecha : Date hora : int importe : float terminada : bool Transaccion Retiro Deposito codigo : string Cliente * 1 registra > o p e r a c n > 1..* Cuenta-Cliente < realizada sobre trabaja con > Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Caso de Estudio Caso de Uso Nombre Retiro de Cuenta Actores Cliente Sinopsis El caso de uso comienza cuando el cliente inserta su tarjeta en el cajero e ingresa su clave de usuario. Tras validar al cliente, el sistema recibe el nombre del banco y el número de cuenta para iniciar la transacción de retiro correspondiente. El cliente ingresa el monto que desea retirar de la cuenta y el sistema realiza el débito. Finalmente, el cliente retira su tarjeta. Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Caso de Estudio DSS con Memoria Cliente Sistema autenticarCliente(codCliente:String) : bool ingresarCuenta(nroCuenta:int, nomBanco:String) ingresarMonto(monto:float) finalizar() El sistema recuerda al Cliente (en el primer mensaje) y la cuenta (en el segundo mensaje) Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Caso de Estudio Descripción de Operaciones autenticarCliente (codCliente:String):bool Valida la existencia del cliente ingresarCuenta (nroCuenta:int, nomBanco:String) Obtiene la cuenta nroCuenta del banco nomBanco sobre la cual se realizará la transacción ingresarMonto (monto:float) Realiza la transacción de débito por el monto indicado sobre la cuenta del cliente finalizar () Finaliza la operativa del sistema Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Caso de Estudio Caso de Uso (2) Nombre Consulta de Depósitos Actores Cliente Sinopsis El caso de uso comienza cuando el cliente inserta su tarjeta en el cajero e ingresa su clave de usuario. Tras ingresar los datos de validación (igual que en el caso de uso Retiro de Cuenta), el cliente indica el nombre del banco y el número de cuenta sobre la cual desea consultar el total de depósitos (históricos). Posteriormente, el sistema calcula el total de depósitos histórico y lo devuelve. Finalmente, el cliente retira su tarjeta. Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Caso de Estudio DSS con Memoria (2) Cliente Sistema autenticarCliente(codCliente:String) : bool depositos(nroCuenta:int, nomBanco:String) : float El sistema recuerda al Cliente (en el primer mensaje) finalizar() Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Caso de Estudio Descripción de Operaciones (2) autenticarCliente (codCliente:String):bool Misma operación que en el DSS anterior depositos (nroCuenta:int, nomBanco:String):float Devuelve la suma de los montos de todos los depósitos realizados en la cuenta nroCuenta del banco nomBanco finalizar () Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Guías para el Abordaje del Diseño El abordaje de la etapa de diseño puede realizarse sistemáticamente Por ejemplo, considerando estos pasos: Organizar Operaciones Definir Ubicación de Instancias Definir Colaboraciones Diseñar Colaboraciones Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Guías para el Abordaje del Diseño Organizar Operaciones Definir los Controladores a utilizar Definir las Interfaces del Sistema que contendrán las operaciones del sistema Organizar operaciones según: Afinidad temática (según dominio) Afinidad funcional (según objetivos) Casos de Uso Definir la Fábrica de controladores Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Guías para el Abordaje del Diseño Organizar Operaciones (2) Al definir Controladores, considerar Operaciones repetidas en casos de uso Memoria del Sistema Si un Controlador realiza una Interfaz del Sistema, asigna un método a todas las operaciones presentes en ella. Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Guías para el Abordaje del Diseño Ejemplo (Organizar Operaciones) ¿Algún concepto del dominio podría ser un Controlador?, ¿ATM?, ¿Banco? Una posible opción Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Guías para el Abordaje del Diseño Definir Ubicación de Instancias Diferenciar: Las colecciones que pueden ser alojadas en un controlador (ej: ATM, Banco) Las que serán accedidas únicamente a través de otra clase (ej: Cuenta accesible a través de Banco) En caso de ser necesario, alojar separadamente una colección que sea compartida entre varios controladores Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Guías para el Abordaje del Diseño Definir Colaboraciones Una colaboración realiza uno o más casos de uso Agrupar casos de uso con cierta afinidad Comúnmente afinidad temática pero no hay una regla estricta Definir una colaboración por cada grupo de casos de uso, asignándole un nombre Priorizar las colaboraciones según el impacto esperado sobre el diseño Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Guías para el Abordaje del Diseño Ejemplo (Definir Colaboraciones) Definir una sola colaboración para ambos casos de uso es beneficioso ya que están relacionados Plantear que la asignación es tremendamente subjetiva En el ejemplo, puedo definir una sola colaboración ya que está todo relacionado. Definir dos colaboraciones no me beneficia en nada Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Guías para el Abordaje del Diseño Diseñar Colaboraciones Diseñar cada colaboración en orden de prioridad: Realizar diagramas de comunicación para las operaciones del sistema involucradas Considerar (a) criterios de asignación de responsabilidades, (b) decisiones tomadas en iteraciones anteriores (consistencia) y (c) nuevos problemas de diseño Realizar el diagrama de clases de diseño Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Guías para el Abordaje del Diseño Ejemplo (Diseñar Colaboraciones) ¿Cómo se asignan responsabilidades? ¿Quién crea las transacciones? ¿ATM?, ¿Banco?, ¿Cuenta? ¿Quién es el experto en calcular el total de depósitos realizados? ¿Banco?, ¿Cuenta?, ¿Cliente? ¿Qué visibilidades se necesitan? ¿ATM  Transacción?, ¿Banco  Cuenta?, ¿Cliente  Transacción?, ¿ATM  Cuenta? ¿Qué sucede con las clases de asociación? Mostrar que se “transforman” en otra cosa, e incluso, desaparecer ¿Qué visibilidades necesito? (reuso de elementos de diseño) ¿Cómo me comunico con los controladores en un diag. de comunicación (Singleton)? ¿Cómo asigno responsabilidades (GRASP)? Mostrar algunos diag. de comunicación y un posible DCD resultado Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Guías para el Abordaje del Diseño Ejemplo (Diseñar Colaboraciones) (2) ¿Qué sucede con los tipos asociativos? Si poseen información relevante puede convenir mantenerlas ¿Qué sucede con las clases de asociación? Mostrar que se “transforman” en otra cosa, e incluso, desaparecer ¿Qué visibilidades necesito? (reuso de elementos de diseño) ¿Cómo me comunico con los controladores en un diag. de comunicación (Singleton)? ¿Cómo asigno responsabilidades (GRASP)? Mostrar algunos diag. de comunicación y un posible DCD resultado a) b) Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Guías para el Abordaje del Diseño Ejemplo (Diseñar Colaboraciones) (3) Una posible solución ¿Qué sucede con las clases de asociación? Mostrar que se “transforman” en otra cosa, e incluso, desaparecer ¿Qué visibilidades necesito? (reuso de elementos de diseño) ¿Cómo me comunico con los controladores en un diag. de comunicación (Singleton)? ¿Cómo asigno responsabilidades (GRASP)? Mostrar algunos diag. de comunicación y un posible DCD resultado Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Guías para el Abordaje del Diseño Ejemplo (Diseñar Colaboraciones) (4) Otras opciones Asociar la transacción con el cliente Delegar las transacciones al banco ¿Qué sucede con las clases de asociación? Mostrar que se “transforman” en otra cosa, e incluso, desaparecer ¿Qué visibilidades necesito? (reuso de elementos de diseño) ¿Cómo me comunico con los controladores en un diag. de comunicación (Singleton)? ¿Cómo asigno responsabilidades (GRASP)? Mostrar algunos diag. de comunicación y un posible DCD resultado Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño

Guías para el Abordaje del Diseño Ejemplo (Diseñar Colaboraciones) (5) ¿Qué sucede con las clases de asociación? Mostrar que se “transforman” en otra cosa, e incluso, desaparecer ¿Qué visibilidades necesito? (reuso de elementos de diseño) ¿Cómo me comunico con los controladores en un diag. de comunicación (Singleton)? ¿Cómo asigno responsabilidades (GRASP)? Mostrar algunos diag. de comunicación y un posible DCD resultado Programación Avanzada - Curso 2017 Diseño: Guías para el Abordaje del Diseño