1 Tema 2.2.2: Modelo del Análisis
2 CONTENIDO Introducción: El Modelo del Análisis. El modelo conceptual.Diagrama de clases de UML. Las clases y las interfaces. Las relaciones. Notas y mecanismos de extensibilidad. Directrices para elaborar el modelo conceptual. Modelo de los requisitos funcionales. Diagrama de secuencia del sistema. Contrato de las operaciones.
3 OBJETIVOS Comprender la fase de análisis como una etapa de modelización del sistema Estudiar las herramientas que aporta UML para esta etapa de desarrollo. Descubrir los procesos de desarrollo a seguir durante el análisis.
4 requisitos funcionalesIntroducción: El Modelo del Análisis La tarea principal del análisis es comprender, describir e identificar los requisitos del sistema software a desarrollar. Modelo del Análisis Descripción textual del problema Modelo de los requisitos funcionales Diagrama de Secuencia del sistema Contrato de las operaciones principales Modelo Conceptual o Modelo de Dominio
5 Introducción: El Modelo del AnálisisHerramientas para representar los Modelos del Análisis Modelo Conceptual o Modelo de Dominio Diagrama de clases de UML Diagrama de Secuencia del sistema Diagrama de Secuencia de UML Contrato de las operaciones principales Contratos de C. Larman
6 El Modelo conceptual El Modelo conceptual es una representación visual, mediante un determinado lenguaje, de los conceptos u objetos del mundo real de un dominio de interés. El modelo conceptual, en general, muestra: Un conjunto de conceptos. Relaciones entre conceptos. Atributos de los conceptos. El modelo conceptual no muestra: Componentes u objetos software. Responsabilidades de estos. Nuestro Modelo conceptual se va representar usando como herramienta los diagramas de clases de UML.
7 Diagrama de clases de UMLLos diagrama de clases de UML nos va a permitir representar nuestros modelos, concretamente: Modelo del análisis: Modelo conceptual. Modelo del diseño:Diagrama de clases del diseño. Un Diagrama de clases de UML puede contener lo siguiente: Elementos estructurales: clases e interfaces. Relaciones entre esos elementos: dependencia, generalización, asociación y realización. Notas y estereotipos.
8 Diagrama de clases de UML: La ClaseUna clase es una descripción de un conjunto de objetos que comparten: atributos, operaciones, relaciones y semántica”. Una clase define los conceptos que forman parte del dominio del problema o de la solución. Dominio del problema: Conceptos Dominio de la solución: Clases
9 Diagrama de clases de UML: La ClaseRectangulo esquinaSupDer:Point esquinaInfIzq:Point mover(p:Point) escalar(p:Point) area():float ... Realizar todas las operaciones geométricas Responsabilidades Operaciones Atributos Nombre Nombre: Expresión nominal extraída del vocabulario del problema a modelar. Debe comenzar con mayúscula. Atributo: Propiedad del elemento que se está modelando. [visibilidad] nombre [multiplicidad] [:tipo] [=valor inicial] Operación: Es la abstracción de un servicio que puede prestar ese objeto [visibilidad] nombre [(lista parámetros)] [:tipo retorno] Responsabilidades: Obligación de esa clase con las demás clases.
10 Diagrama de clases de UML: La ClaseVisibilidad de los atributos y operaciones. Publica: Cualquier clase puede usar ese atributo u operación. (+) Paquete: Sólo el paquete en el que está definida la clase puede usar ese atributo u operación. (~) (valor por defecto) Protegida: Cualquier clase hija puede usar ese atributo u operación. (#) Privada: Sólo la propia clase puede usar ese atributo u operación. (-). Alcance de los atributos y operaciones De instancia: Cada instancia posee su propio atributo u operación. (valor por defecto) De clase: Existe un único valor para todas las instancias de la clase. Se representa subrayando el nombre.
11 Diagrama de clases de UML: La ClaseMultiplicidad De clase: Número de instancias que puede tener una clase. De atributo: Número de instancias de un atributo. Multiplicidad de clase ControladorDeRed 1 PuertoConsola[2..*]:Puerto Multiplicidad de atributo
12 Diagrama de clases de UML: La ClaseClase plantilla: Clase con algunas de sus propiedades parametrizada. Para su uso es necesario que tomen valor los parámetros. Item Valor Correspondencia +ligar(in i:Item, v:Valor):Boolean +estaLigado(in i:Item):Boolean {isQuery} <
13 <
14 Diagrama de clases de UML: Las RelacionesLas Relaciones modelan la forma en la que los elementos estructurales se conectan entre sí. Tipo de relaciones: Dependencia. Generalización. Asociación. Realización.
15 Diagrama de clases de UML: La DependenciaUna Dependencia modela una relación de uso. En una dependencia no es necesario especificar un nombre. Dependencia B A A bb1(a1:A)
16 Diagrama de clases de UML: La GeneralizaciónLa Generalización (relación “es-un”) es una relación entre un elemento general (padre o superclase) y un caso específico de éste (hijo o subclase). Elementos abstractos Figura2D{root} trasladar() escalar() area() perimetro() Superclase Subclase Clase concreta Circulo {leaf} centro:Punto radio:double base() area() Rectangulo esq1,esq2:Punto base() area() Poligono lista[3..*]:Punto numeroLados() area()
17 Diagrama de clases de UML: La AsociaciónUna Asociación es una relación estructural fuerte, que indica que los objetos de una clase forman parte del estado del objeto del otro extremo. Asociación Persona Empresa trabaja para Dirección del nombre Nombre
18 Diagrama de clases de UML: La AsociaciónEn una asociación se puede navegar desde el objeto de una clase hasta el objeto de la otra clase, y viceversa, si no se indica el sentido de navegación. Un rol es la cara que la clase de un extremo de la asociación presenta a la clase del otro extremo Navegabilidad Persona Empresa .empleado .patron Nombre de rol
19 Diagrama de clases de UML: La AsociaciónLa Multiplicidad indica cuantos objetos de un extremo de la asociación pueden conectarse con un objeto del otro extremo. Sintaxis: valorMinimo..valorMaximo (por defecto es 1) Ejemplos:1 = Uno, = Cero o Uno, 0..* = Cero o muchos, 1..* = Uno o muchos, 0..1,3..4,6..* = Cualquier número excepto 2 y 5 Multiplicidad Persona 0..1 Empresa 1..* .empleado .patron
20 Diagrama de clases de UML: La AsociaciónUna Agregación (relación “parte-de”) es una asociación en la que una de las clases representa el “todo” y la/s otra/s la/s parte/s. La parte Agregación El todo Puzle 1 Pieza 1..* Una Composición es una forma de agregación con una fuerte relación de pertenencia y vida de las partes con el todo. 1 1..* Cuenta Banco Composición
21 Diagrama de clases de UML: La AsociaciónLa visibilidad posibilita el acceso desde los objetos de una clases a los objetos de otras clases a través de asociaciones (+,-). GrupoUsuarios 1 Usuario Clave -Clave Visibilidad Un cualificador es un atributo de algunas de las clases de la asociación que pasa a ser un atributo asociado a la clase del otro extremo. Directorio 0..1 Archivo nomArchivo Cualificador
22 Diagrama de clases de UML: La AsociaciónUna Clase asociación se da cuando una asociación presenta propiedades, esas propiedades hay que modelarlas como una clase. Persona 1..* Empresa 0..1 .empleado .patron Clase asociación TrabajaPara descripción fechaContrato salario
23 Diagrama de clases de UML: La RealizaciónUna Realización se da entre dos elementos cuando uno de ellos especifica un contrato y el otro garantiza que se cumple. Por ejemplo: Una interfaz presenta una relación de realización con la/s clase/s que la implementa/n. Dependencia <
24 Diagrama de clases de UML: Extensiones del lenguajeEsteroetipos: añaden nuevos elementos de construcción. Se representan entre << >>. Valores etiquetados: añaden nuevas propiedades sobre los elementos del lenguaje. Se presenta entre {}. <
25 Diagrama de clases de UML: Las NotasUna nota es un símbolo gráfico o textual para representar comentarios asociados a uno o varios componentes. Valor Estudiar la posibilidad de incluir clases abstracta que nos modelen valores materiales o intangibles Requisito: deberá cumplir lo legislado respecto al registro de transacciones .valorActual() historia() Bono CuentaCorriente .Propiedad .tasacion tasa.de Interes .valorActua() .valorActual() .valorActual() Véase politica doc para los detalles estos algoritmos
26 Diagrama de clases de UML: Extensiones del lenguajeRestricciones: extensiones de la semántica de los elementos del lenguaje, añadiendo nuevas reglas o modificando las ya existentes. Restricción simple Empresa {segura} Cuenta Restricción múltiple {or} Persona 0..1 esposa sexo:{hombre,mujer} 0..1 marido Restricción simple y formal {self.esposa.sexo = mujer and self.marido.sexo = hombre}
27 Diagrama de clases de UMLEjemplo
28 Diagrama de clases de UMLEjercicio: Instanciar el diagrama de clases de la página 27 en el caso de que tengamos 1 empresa, con 2 oficinas, 3 departamentos y 5 personas. Ejercicio: Desarrollar un diagrama de clases que modele el aula. Ese diagrama de clases debe ser siempre válido, esté el aula ocupada o no. Ejercicio: Desarrollar un diagrama de clases que modele este edificio.
29 Ejercicios Ejercicio: A partir del siguiente Modelo Conceptual, haga un enunciado de la estructura del problema que representa, teniendo en cuenta que hay 28 menús distintos, en los que no se repite ningún plato.
30 Pasos a seguir: Directrices para elaborar el Modelo ConceptualRealizar una descripción de las estructuras e interacciones principales en el dominio del problema. Incorporar los conceptos. Incorporar las asociaciones. Incorporar las generalizaciones. Agregar atributos o propiedades de los conceptos.
31 Descripción del problemaProblema: Asignación de proyectos Informáticos En un plan de estudios de una titulación universitaria, hay una asignatura denominada "proyectos". Para aprobar dicha asignatura el alumno tiene que desarrollar un trabajo práctico, en el que resuelva un determinado problema aplicando los conocimientos adquiridos durante su formación. Durante la realización del proyecto (trabajo) el alumno recibe la dirección tutelada de un profesor. Para ello los profesores definen una serie de proyectos(trabajos) a realizar, y a los alumnos se les adjudica un proyecto, de entre sus elegidos, en función de un determinado baremo.
32 Descripción del problemaEl proceso a seguir sería el siguiente: Los alumnos se matriculan de la asignatura “proyectos informáticos”. Los profesores definen los contenidos de sus proyectos propuestos, dando el titulo del proyecto, las asignaturas recomendadas y una descripción general del mismo. A continuación cada alumno elige entre 1 y 10 trabajos de los ofertados. A cada una de sus elecciones le asigna una prioridad. Una vez terminada la elección se asigna los trabajos a los alumnos, teniendo en cuenta el siguiente baremo: suma de la nota media del expediente y la nota media de las asignaturas recomendadas en el proyecto (que hayan sido cursadas por el alumno).
33 Descripción del problemaRestricciones a tener en cuenta: Un proyecto puede ser asignado como máximo a tres alumnos. No puede quedar ningún alumno sin proyecto. Puede haber proyectos sin alumnos. Un profesor puede definir más de un proyecto. Un alumno sólo puede ser asignado a un proyecto.
34 Incorporar conceptos Pasos a seguir: Identificar los conceptos.Seleccionar los conceptos relevantes en nuestro problema. Representar esos conceptos en el modelo conceptual, como clases de un Diagrama de clases de UML.
35 Identificar conceptosEstrategias para identificar conceptos: De la descripción del problema, encontrar los términos que se correspondan con sustantivos o frases nominales, éstos van a ser los candidatos a conceptos. Establecer una lista de categorías de conceptos y rellenarla a partir de la información que se tenga de la descripción del problema.
36 Problema: Asignación de Proyectos.Identificar conceptos Problema: Asignación de Proyectos. En un plan de estudios de una titulación universitaria, hay una asignatura denominada "proyectos". Para aprobar dicha asignatura el alumno tiene que desarrollar un trabajo práctico, en el que resuelva un determinado problema aplicando los conocimientos adquiridos durante su formación. Durante la realización del proyecto (trabajo) el alumno recibe la dirección tutelada de un profesor. Para ello los profesores definen una serie de proyectos(trabajos) a realizar, y a los alumnos se les adjudica un proyecto, de entre sus elegidos, en función de un determinado baremo.
37 Problema: Asignación de Proyectos.Identificar conceptos Problema: Asignación de Proyectos. El proceso a seguir sería el siguiente: Los alumnos se matriculan de la asignatura “proyectos informáticos”. Los profesores definen los contenidos de sus proyectos propuestos, dando el titulo del proyecto, las asignaturas recomendadas y una descripción general del mismo. A continuación cada alumno elige entre 1 y 10 trabajos de los ofertados. A cada una de sus elecciones le asigna una prioridad. Una vez terminada la elección se asigna los trabajos a los alumnos, teniendo en cuenta el siguiente baremo: suma de la nota media del expediente y la nota media de las asignaturas recomendadas en el proyecto (que hayan sido cursadas por el alumno).
38 Lista de categoría de clases conceptuales(1)Identificar conceptos Lista de categoría de clases conceptuales(1) Tipo de categorías Ejemplos
39 Lista de categoría de clases conceptuales(2)Identificar conceptos Lista de categoría de clases conceptuales(2) Tipo de categorías Ejemplos
40 Lista de categoría de clases conceptuales(3)Identificar conceptos Lista de categoría de clases conceptuales(3) Tipo de categorías Ejemplos
41 Lista de categoría de clases conceptuales(4)Identificar conceptos Lista de categoría de clases conceptuales(4) Tipo de categorías Ejemplos
42 Problema: Asignación de Proyectos.Seleccionar conceptos relevantes Problema: Asignación de Proyectos. Lista preliminar de conceptos: Baremo, Alumno, Profesor, Dirección Tutelada, Plan de Estudios, Asignatura, Nota Media, Titulación Universitaria, Expediente, Proyecto, Trabajo Práctico, Título, Descripción, Problema, Asignatura Recomendadas, elecciones y prioridad. Para cada concepto encontrado seleccionar aquellos que sean relevantes para nuestro problema. Tratando de detectar: Términos sinónimos: (Plan de Estudios, Titulación Universitaria), (Proyecto, Trabajo, Problema, Trabajo Práctico) Relaciones: Dirección Tutelada, Asignaturas Recomendadas y elecciones. Atributos de conceptos o de relaciones: Baremo, Nota Media, Título, Descripción, prioridad
43 Problema: Asignación de Proyectos.Representar los conceptos Problema: Asignación de Proyectos. Lista Definitiva de conceptos: Alumno, Profesor, Plan de Estudios, Asignatura, Expediente y Proyecto. Representar estos conceptos en el modelo conceptual usando las clases de UML. Profesor Alumno Plan Estudios Asignatura Expediente Proyecto
44 Incorporar AsociacionesUna asociación es una conexión significativa y relevante entre dos conceptos. Pasos a seguir: Identificar posible asociaciones. Representarlas en el MC y Seleccionar asociaciones válidas. Nombrar las asociaciones seleccionadas. Identificar multiplicidad.
45 Identificar AsociacionesEstrategias para Identificar las asociaciones: Buscar frases verbales en la descripción del problema ) Usar la siguiente lista de categoría de asociaciones: A es parte o está contenido físicamente o lógicamente en B A se registra/conoce/conecta/captura en B. A es una descripción de B A es miembro de B A usa o dirige B A se comunica con B A está contiguo a B A es propiedad de B
46 Problema: Asignación de Proyectos.Identificar Asociaciones Problema: Asignación de Proyectos. 1.En un plan de estudios de una titulación universitaria, hay una asignatura denominada "proyectos". Plan Estudios Asignaturas (1) 2.Para aprobar dicha asignatura el alumno tiene que desarrollar un trabajo práctico, en el que resuelva un determinado problema aplicando los conocimientos adquiridos durante su formación. Alumno Proyecto (2) 3.el alumno recibe la dirección tutelada de un profesor. Alumno Profesor (3)
47 Problema: Asignación de Proyectos.Identificar Asociaciones Problema: Asignación de Proyectos. 4.Los profesores definen una serie de proyectos(trabajos) Profesor Proyecto (8) 5. a los alumnos se les adjudica un proyecto Alumno Proyecto (2) 6. Entre sus elegidos, Alumno Proyecto (2) 7. Los alumnos se matriculan de dicha asignatura “proyecto”. Alumno Asignatura (2)
48 Identificar AsociacionesProblema: Asignación de Proyectos. 8.Expediente del Alumno Expediente Alumno (8) 9.Asignaturas recomendadas en el proyecto Asignatura Proyecto (9) 10.Del enunciado del problema (punto 4º del proceso a seguir) se deduce que: El Expediente astá formado por Asignaturas y sus notas. Asignatura Expediente (1)
49 Problema: Asignación de Proyectos.Representarlas y seleccionar las validas Problema: Asignación de Proyectos. Expediente 8 Alumno 6 7 10 5 2 3 Proyecto Asignaturas 9 1 4 Profesor Plan Estudios
50 Problema: Asignación de Proyectos.Representarlas y seleccionar las validas Problema: Asignación de Proyectos. Expediente 8 Alumno 6 7 10 5 y 2 3 Proyecto Asignaturas 9 1 4 Profesor Plan Estudios Asociación redundante o derivada
51 Problema: Asignación de Proyectos.Nombrar Asociaciones Problema: Asignación de Proyectos. 1. Un Plan de Estudios está formado por Asignaturas. 6. Los alumnos eligen proyectos. 2 y 5. Los Proyectos son asignados/realizados a/por Alumnos. 4. Los profesores definen Proyectos. 8. Los alumnos tienen expedientes. 10. Los expedientes están formados por Asignaturas y su nota. 9. Los proyecto recomiendan asignaturas.
52 Problema: Asignación de Proyectos.Nombrar Asociaciones Problema: Asignación de Proyectos. Alumno Proyecto Expediente Asignaturas Plan Estudios Profesor Eligen Asignados Poseen Recomienda FormadoPor Define
53 Problema: Asignación de Proyectos.Identificar Multiplicidad Problema: Asignación de Proyectos. Alumno Proyecto Expediente Asignaturas Plan Estudios Profesor Eligen Asignados Poseen Recomienda FormadoPor Define 0..* 0..3 0..* 1..10 1..* 0..* 0..* 1..* 1..*
54 Incorporar generalizacionesPasos a seguir: 1. Identificar posibles Generalizaciones A partir de la descripción del problema y de las las clases conceptuales identificadas encontrar clases conceptuales con elementos comunes. Definir las relaciones de superclase (concepto general) subclases (concepto más específico). 2. Validar las estructuras encontradas. Una subclase potencial debería estar de acuerdo con: La regla del 100% (conformidad con la definición de la superclase). La Regla Es-Un (conformidad con la pertenencia al conjunto que define la superclase). 3. Representarlas en el Modelo conceptual. Regla del 100% El 100% de la definición de la superclase conceptual se debe poder aplicar a la subclase. La subclase debe ajustarse al 100% de los: Atributos Asociaciones de la superclase
55 Directrices para identificar generalizacionesIncorporar generalizaciones Directrices para identificar generalizaciones Para crear subclases conceptuales a partir de superclases La subclase tiene atributos adicionales de interés. La subclase tiene asociaciones adicionales de interés. La subclase funciona, reacciona o se manipula de manera diferente a la superclase o a alguna otra subclase. Para crear superclases conceptuales a partir de subclases potenciales Cuando las subclases presentan variaciones de un concepto similar. Todas las subclases tiene el mismos atributo que se puede factorizar en la superclase. Todas las subclases tiene la misma asociación que se puede factorizar en la superclase. Todas las subclases tiene la misma operación que se puede factorizar en la superclase.
56 Problema: Asignación de Proyectos.Incorporar generalizaciones Problema: Asignación de Proyectos. Supongamos que: 2º Los profesores definen los contenidos de sus proyectos, ..., las asignaturas optativas recomendadas, ... Hay dos tipos de asignaturas: Optativas y Troncales. Está justificada la subclasificación: Si, ya que asignatura optativa tiene una asociación relevante con Proyecto. Representación en el modelo conceptual Proyecto Optativa Troncal Asignatura
57 Agregar los Atributos Pasos a seguir: 1º Identificar Atributos desde:La descripción del problema ,o de otras fuentes de información. 2º Representarlos en el Modelo Conceptual en los conceptos o en las asociaciones que correspondan. Tipos de atributos válidos: Primitivos o valores puros de datos:(Entero, Real, Carácter, Boolean, Cadena). No primitivos: (Nombre de persona, Número de teléfono, Hora, Fecha, Dirección, Punto,...)
58 Agregar los Atributos Directrices sobre los atributos:Relacionar conceptos con asociaciones y no con atributos. No usar atributos de un concepto como clave de acceso desde otro concepto. No incluir, si no es necesario, los conceptos asociados a los atributos no primitivos. Alumno fechaNacimiento Expediente .asignatura Proyecto .codAsignaturas Fecha
59 Problema: Asignación de Proyectos.Agregar los Atributos Problema: Asignación de Proyectos. Atributos extraídos de la descripción del problema: Nombre de la Asignatura. ( de Asignatura) Título del Proyecto. (de Proyecto) Descripción del Proyecto. (de Proyecto) Nota media del Expediente. (de Expediente) Baremo. (de la asociación Eligen). Prioridad (de la asociación Eligen). Nota de un Alumno en una Asignatura. (de la asociación FormadoPor entre Expediente y Asignatura). Atributos extraídos de otras fuentes: Nombre y DNI del Profesor y del Alumno. Código y Créditos de la Asignatura.
60 Problema: Asignación de Proyectos.Agregar los Atributos Problema: Asignación de Proyectos. Expediente notaMedia Alumnos nombre DNI Poseen 0..* 0..* 0..3 FormadoPor Eligen NOTA prioridad Baremo Asignados 1..10 1..* Proyecto titulo descripción Asignaturas codAsignatura nombre créditos Recomienda 0..* 0..* 1..* Define 1..* FormadoPor Profesor nombre DNI Plan Estudios
61 Seguimos con... Introducción: El Modelo del Análisis.El modelo conceptual. Diagrama de clases de UML. Las clases y las interfaces. Las relaciones. Notas y mecanismos de extensibilidad. Directrices para elaborar el modelo conceptual. Modelo de los requisitos funcionales. Diagrama de secuencia del sistema. Contrato de las operaciones.
62 requisitos funcionalesModelo de los requisitos funcionales Modelo del Análisis Descripción textual del problema Modelo de los requisitos funcionales Contrato de las operaciones principales Modelo Conceptual o Modelo de Dominio Diagrama de Secuencia del sistema
63 Diagrama de Secuencia del SistemaEl Diagrama de Secuencia del Sistema(DSS) nos va a representar las peticiones de los distintos actores (elementos externos al sistema) hacia el sistema y las posibles respuestas de éste. SISTEMA Herramienta a usar: Diagramas de secuencia de UML
64 Diagramas de secuencia de UMLMuestran una colaboración concreta entre un grupo de objetos a través del envío de mensajes, para llevar a cabo una determinada operación, mostrando la dimensión temporal del envío de mensajes. Compuesto, esencialmente, por: Elementos estructurales: Objetos y Actores Relaciones entre estos: Mensajes entre Actores/Objetos y Objetos/Objetos.
65 Diagramas de secuencia de UMLEstructura general de un Diagrama de Secuencia de UML Objetos .objeto1 .objeto3 .objeto2 Tiempo Mensajes
66 Diagramas de secuencia de UMLObjeto: Instancia de una clase. Actor: Elemento externo al sistema con el cual interacciona. Instancia huérfana Instancias con nombre miCliente miCliente:Cliente Actor :Cliente :Cliente .unSocio:SocioBiblio Instancia anónima Multiobjeto
67 Diagramas de secuencia de UMLAsociado a los objetos y a los actores se representa su línea de vida, tiempo que vive ese objeto o actor en esa interacción. Construcción del objeto :Cliente Línea de vida Foco de control: objeto activado Objeto con el control de la ejecución Destrucción del objeto
68 Diagramas de secuencia de UMLMensaje: Mecanismo de comunicación entre objetos. .aa:A .bb:B [n][var1:=]nombreMens([var2][:Tipo],..)[:Tipo] n = orden en la secuencia de envío de mensaje var1 = objeto o valor de retorno. var2 = objeto o valor del argumento. Tipo = Tipo de las variables usadas
69 Diagramas de secuencia de UMLDevolución de control o retorno y mensaje a self aa:A bb:B .mens1() mens2() mens3()
70 Diagramas de secuencia de UMLComportamiento condicional en el envío de mensajes
71 Diagramas de secuencia de UMLComportamiento iterativo en el envío de mensajes .mens0()
72 Diagramas de secuencia de UMLEjemplo
73 s:Interlocutor :Central r:Interlocutor c:Conversación descolgarAuricular( ) darTonoDeLlamada( ) *marcarDigito( ) marcando {marcando.tiempoEjecucion < 30 segs} enrutarLlamadas(s,n) <
74 Diagramas de secuencia de UMLEjercicio: Modificar el diagrama anterior para que se contemple la posibilidad de que el receptor no descuelgue. Ejercicio: Hacer un DS que modele el funcionamiento del ascensor de este edificio. Ejercicio: Hacer el DS de una operación de la primera práctica.
75 Ejercicio Dibujar el diagrama de secuencia correspondiente a la siguiente especificación sobre el comportamiento de un cajero automático: · El usuario introduce la tarjeta en el cajero · El usuario introduce en el cajero la cantidad a retirar. · El cajero solicita al banco la verificación del la contraseña (PIN). · El banco le ofrece al cajero una respuesta afirmativa. · El cajero le envía al banco la cantidad a retirar. · El banco envía a la cuenta una petición para actualizar saldos. · El banco emite un mensaje para el almacenamiento de la transacción. · La cuenta le ofrece el nuevo saldo al banco. · El banco le envía al cajero la orden de expender la cantidad de dinero deseada. · El cajero proporciona el dinero al cliente y le expide un recibo.
76 Diagrama de Secuencia del SistemaUn Diagrama de Secuencia del Sistema es un DS de UML en el que se muestran los eventos generados por los actores, y como ese evento va a provocar la ejecución de una operación del Sistema, viendo a éste como una caja negra. :Sistema .op1() op2() op3() Frontera del sistema
77 Diagrama de Secuencia del SistemaPasos a seguir: Identificar las operaciones principales del sistema de la descripción del problema. Hacer una descripción de la funcionalidad que proporciona la operación (recurrir a escenarios). Identificar los actores que inician dichas operaciones. Asignarles un nombre y tratar de Identificar los parámetros de dichas operaciones. Asignar un nombre a todo el sistema. Representar las operaciones, los actores y el sistema en un Diagrama de Secuencia del Sistema.
78 Pasos 1,2 y 3 del Ejemplo: Asignación de proyectosDiagrama de Secuencia del Sistema Pasos 1,2 y 3 del Ejemplo: Asignación de proyectos De la descripción del problema (p. 31 de este tema) tenemos las siguientes operaciones su descripción y los actores y la inician: Matricular alumnos: A comienzo del curso académico los Alumnos se matriculan de una titulación y de las asignaturas que desee. Para ello proporciona sus datos personales y las asignaturas elegidas. Definir proyectos: A lo largo del mes de septiembre los Profesores definen los proyectos, proporcionando su titulo, sus recomendaciones(asignaturas optativas recomendadas) y una descripción general del mismo. Elegir proyecto: A lo largo del mes de octubre los Alumnos eligen entre 1 y 10 proyectos (priorizándolos), de la lista de proyectos definidos por los profesores, para cada proyecto elegido por el alumno se calcula su baremo. Éste será igual a la suma entre la nota media del expediente y nota media de las asignaturas optativas recomendadas por el profesor para ese proyecto. Asignar proyecto: Terminado el proceso de elección el Responsable del sistema procede a asignar los proyectos a los alumnos, teniendo en cuenta la elección del alumno, para ello se recurre al baremo que tenga ese alumno para ese proyecto.
79 Diagrama de Secuencia del SistemaNombrar al Sistema y representar (pasos 4, 5 y 6) del ejemplo: Asignación de proyectos Nombre del sistema : Alumno :Profesor :SAP :Responsable .matricularAlumnos(idAlu, listIdAsig) .definirProyecto( ¿?,¿?,¿?,¿?) .elegirProyecto(idAlu,idPro,prio) .asignarProyecto()
80 simplificación: Único actor el Responsable del SistemaDiagrama de Secuencia del Sistema Nombrar al Sistema y representar (pasos 4, 5y 6) del Ejemplo: Asignación de proyectos simplificación: Único actor el Responsable del Sistema :SAP :Responsable matricularAlumnos(idAlu, listIdAsig) definirProyecto(¿?,¿?,¿?,¿?) elegirProyecto(idAlu,idPro,prio) .asignarProyecto() Ejercicio: Encontrar los parámetros de la operación definirProyecto(....)
81 Elementos de un contratoContrato de las operaciones Un contrato es un documento que describe lo que una operación se propone lograr, sin decir cómo. Elementos de un contrato
82 Pasos a seguir para especificar los contratosContrato de las operaciones Pasos a seguir para especificar los contratos Para cada operación principal preparar un contrato. Para cada contrato proceder de la siguiente forma: Identificar los objetos involucrados en la operación, usando para ello la descripción de las operaciones principales y el modelo conceptual como base. Comenzar por la sección de Responsabilidades, describiendo informalmente el propósito de la operación. Continuar con la sección de Poscondiciones. Finalizar con las demás sesiones, especialmente con las precondiciones.
83 Directrices sobre las poscondicionesContrato de las operaciones Directrices sobre las poscondiciones Las poscondiciones deben describir los cambios de estado de un sistema no sus acciones. Los cambios de estado que se describen en las poscondiciones son: Creación y destrucción de objetos. Creación y destrucción de enlaces. Modificación de atributos. Los objetos y enlaces que se pueden crear y destruir suelen estar definidos en el Modelo Conceptual. Las poscondiciones pueden provocar cambios en el Modelo Conceptual. Las poscondiciones deben expresarse mediante una frase verbal en pretérito.
84 Ejemplo: Asignación de proyectosContrato de las operaciones Ejemplo: Asignación de proyectos :Responsable :SAP .matricularAlumnos( ..) .definirProyecto(.. ) .elegirProyecto(..) .asignarProyecto()
85 Contrato de la operación: matricularAlumnos(idAlu, listIdAsig)Contrato de las operaciones Contrato de la operación: matricularAlumnos(idAlu, listIdAsig) Identificar objetos Descripción de la operación: Matricular alumno: A comienzo del curso académico los Alumnos se matriculan de una titulación y de las asignaturas que desee. Para ello proporciona sus datos personales y las asignaturas elegidas. Trozo de Modelo conceptual involucrado en la operación: objetos: PlanEstudios, Alumno, Asignatura y Expediente. Alumnos Expediente estado 0..* 1..* PlanEstudios Asignaturas
86 Contrato de la operación: matricularAlumnos(idAlu, listIdAsig)Contrato de las operaciones Contrato de la operación: matricularAlumnos(idAlu, listIdAsig) Un asociación con atributos se transforma en una clase que modela la asociación, con los atributos de la asociación Expediente Expediente 1..* 0..* estado AsigDeExpe estado 1..* 0..* Asignaturas Asignaturas
87 Contrato de la operación: matricularAlumnos(idAlu, listIdAsig)Contrato de las operaciones Contrato de la operación: matricularAlumnos(idAlu, listIdAsig)
88 Contrato de las operacionesContrato de la operación: definirProyecto(idProf,tit,descrip,listIdAsig) Identificar objetos: Descripción de la operación: Definir proyectos: A lo largo del mes de septiembre los Profesores definen los proyectos, proporcionando su titulo, las asignaturas optativas recomendadas y una descripción general del mismo. Trozo de Modelo conceptual involucrado en la operación: objetos: Profesor, Asignatura y Proyecto. Proyecto Profesor Asignatura
89 Contrato de las operacionesContrato de la operación:definirProyecto(idProf,tit,descrip,listIdAsig)
90 Contrato de la operación: elegirProyecto(idAlu,idPro,prio)Contrato de las operaciones Contrato de la operación: elegirProyecto(idAlu,idPro,prio) Identificar objetos: Descripción de la operación: Elegir proyecto: A lo largo del mes de octubre los Alumnos eligen entre 1 y 10 proyectos, priorizándolos, de la lista de proyectos definidos por los profesores, para cada proyecto elegido por el alumno se calcula su baremo. Éste será igual a la suma entre la nota media del expediente y nota media de las asignaturas recomendadas por el profesor para ese proyecto. Trozo de Modelo conceptual involucrado en la operación: objetos: PlanEstudios, Alumno, Expediente,Asignatura y Proyecto. Proyecto Alumno . baremo prioridad Asignatura Expediente
91 Contrato de la operación: elegirProyecto(idAlu,idPro,prio)Contrato de las operaciones Contrato de la operación: elegirProyecto(idAlu,idPro,prio) Identificar objetos: 0..* Proyecto 1..10 Alumno . baremo prioridad Eleccion baremo prioridad 0..* 1..10 Alumno Proyecto
92 Contrato de la operación:elegirProyecto(idAlu,idPro,prio)Contrato de las operaciones Contrato de la operación:elegirProyecto(idAlu,idPro,prio)
93 Contrato de las operacionesEjercicio: Desarrollar el contrato de la operación asignarProyecto(..)