tema 2.2.2: modelo del análisisbenghazi/is/tema222.ppt · ppt file · web view2010-11-30 ·...

92
ngeniería del software I (2ºITG) 1 Unidad 2: Te Tema 2.2.2: Modelo del Análisis

Upload: lambao

Post on 08-Oct-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Ingeniería del software I (2ºITG) 1 Unidad 2: Tema 2.2.2

Tema 2.2.2: Modelo del Análisis

Ingeniería del software I (2ºITG) 2 Unidad 2: Tema 2.2.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.

Ingeniería del software I (2ºITG) 3 Unidad 2: Tema 2.2.2

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.

Ingeniería del software I (2ºITG) 4 Unidad 2: Tema 2.2.2

Modelo del Análisis

Introducción: El Modelo del AnálisisLa tarea principal del análisis es comprender, describir e identificar los requisitos del sistema software a desarrollar.

Modelo Conceptual o

Modelo de Dominio Modelo de losrequisitos funcionales

Diagrama de Secuenciadel sistema

Contrato de las operacionesprincipales

Descripción textual del problema

Ingeniería del software I (2ºITG) 5 Unidad 2: Tema 2.2.2

NombreResponsabilidadBuscar el alumno y al proyecto, calcular el baremo para ese p alumno e incluir ese proyecto a los elegidos del alumnoExcepciones El alumnos debe existir y estar matriculado en la asignatura Salidas Precondiciones PoscondicionesPara cada proyecto elegido: - Fue creado enlace Alumno Proyecto (Eligen).

- Fueron modificados los atributos Baremo y prioridad

.elegirProyecto(DniAlumno, idProyecto )

Introducción: El Modelo del AnálisisHerramientas para representar los Modelos del Análisis

Modelo Conceptual o

Modelo de Dominio

Diagrama de Secuenciadel sistema

Contrato de las operacionesprincipales

Diagrama de clases de UML

Diagrama de Secuencia de UML

Contratos de C. Larman

Ingeniería del software I (2ºITG) 6 Unidad 2: Tema 2.2.2

El Modelo conceptualEl 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.

Ingeniería del software I (2ºITG) 7 Unidad 2: Tema 2.2.2

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.

Ingeniería del software I (2ºITG) 8 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: La Clase

➢ Una 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

Ingeniería del software I (2ºITG) 9 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: La Clase

RectanguloesquinaSupDer:PointesquinaInfIzq:Pointmover(p:Point)escalar(p:Point)area():float...Realizar todas las operaciones geométricas

Responsabilidades

Operaciones

AtributosNombre

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.

Ingeniería del software I (2ºITG) 10 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: La Clase

➢ Visibilidad 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.

Ingeniería del software I (2ºITG) 11 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: La Clase

➢ Multiplicidad ➢ De clase: Número de instancias que puede tener una

clase. ➢ De atributo: Número de instancias de un atributo.

ControladorDeRed 1

PuertoConsola[2..*]:Puerto

Multiplicidad de clase

Multiplicidad de atributo

Ingeniería del software I (2ºITG) 12 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: La Clase➢ Clase plantilla: Clase con algunas de sus propiedades

parametrizada. Para su uso es necesario que tomen valor los parámetros.

Correspondencia Item Valor

+ligar(in i:Item, v:Valor):Boolean+estaLigado(in i:Item):Boolean {isQuery}

Correspondencia

<<bind>>(cliente,pedido) Correspondencia<cliente,pedido>

Ingeniería del software I (2ºITG) 13 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: La Interfaz

➢ Una Interfaz sirve para especificar el servicio de las clases. Está compuesta por un nombre y definición de un conjunto de operaciones.

➢ Hay dos representaciones distintas para una interfaz:

Gestores::GestorFlujoURLabrirConexion()analizarURL()establecerURL()

<<interface>>GestorFlujoURL

Ingeniería del software I (2ºITG) 14 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: Las Relaciones

➢ Las Relaciones modelan la forma en la que los elementos estructurales se conectan entre sí.

➢ Tipo de relaciones:➢ Dependencia.➢ Generalización.➢ Asociación.➢ Realización.

Ingeniería del software I (2ºITG) 15 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: La Dependencia

➢ Una Dependencia modela una relación de uso. ➢ En una dependencia no es necesario especificar un

nombre.

A

DependenciaB

bb1(a1:A) A

Ingeniería del software I (2ºITG) 16 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: La Generalización➢ La 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).

Superclase

Subclase

Figura2D{root}trasladar()escalar()area()perimetro()

Rectangulo

esq1,esq2:Puntobase()area()

Circulo {leaf}centro:Puntoradio:double

base()area()

Poligono

lista[3..*]:PuntonumeroLados()area()

Clase concreta

Elementos abstractos

Ingeniería del software I (2ºITG) 17 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: La Asociación➢ Una 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.

Persona Empresatrabaja para

Asociación

Dirección del nombreNombre

Ingeniería del software I (2ºITG) 18 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: La Asociación➢ En 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

Persona Empresa

Navegabilidad

Nombre de rol

.empleado .patron

Ingeniería del software I (2ºITG) 19 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: La Asociación➢ La 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, 0..1 = Cero o Uno, 0..* = Cero o muchos,

1..* = Uno o muchos, 0..1,3..4,6..* = Cualquier número excepto 2 y 5

Persona Empresa

Multiplicidad

.empleado .patron1..* 0..1

Ingeniería del software I (2ºITG) 20 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: La Asociación➢ Una 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.

Puzle Pieza

Agregación

1 1..*

El todoLa parte

➢ Una Composición es una forma de agregación con una fuerte relación de pertenencia y vida de las partes con el todo.

Banco Cuenta 1 1..*

Composición

Ingeniería del software I (2ºITG) 21 Unidad 2: Tema 2.2.2

nomArchivo

Diagrama de clases de UML: La Asociación➢ La visibilidad posibilita el acceso desde los objetos de

una clases a los objetos de otras clases a través de asociaciones (+,-).GrupoUsuarios Usuario1

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.

Clave -Clave

Directorio Archivo0..1

Cualificador

Ingeniería del software I (2ºITG) 22 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: La Asociación➢ Una Clase asociación se da cuando una asociación

presenta propiedades, esas propiedades hay que modelarlas como una clase.

Persona Empresa.empleado .patron1..* 0..1

TrabajaParadescripciónfechaContratosalario

Clase asociación

Ingeniería del software I (2ºITG) 23 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: La Realización➢ Una 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.

Collections

<<Interface>> Collection.add() addAll()...

LinkedList

Realización

Dependencia

Ingeniería del software I (2ºITG) 24 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: Extensiones del lenguaje➢ Esteroetipos: añaden nuevos elementos de construcción.

Se representan entre << >>.➢ Valores etiquetados: añaden nuevas propiedades sobre

los elementos del lenguaje. Se presenta entre {}.

<<contenedor>>ColaAcciones

{versión =3.2}{persistente}

añadir(a:Accion) eliminar(n:Integer)<<consulta>> longitud():Integer<<ayuda>> reordenar()

Estereotipo

Valor etiquetado

Ingeniería del software I (2ºITG) 25 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: Las Notas➢ Una nota es un símbolo gráfico o textual para representar

comentarios asociados a uno o varios componentes.

.tasacion

.valorActual()

.Propiedad

Véase politica8-5-98.doc para los detalles estos algoritmos

Estudiar la posibilidad de incluirclases abstracta que nos modelen valores materiales o intangibles Requisito: deberá cumplir lo

legislado respecto al registro de transacciones

Valor

.valorActual() historia()

.valorActua()

Bonotasa.de InteresCuentaCorriente

.valorActual()

Ingeniería del software I (2ºITG) 26 Unidad 2: Tema 2.2.2

Diagrama de clases de UML: Extensiones del lenguaje➢ Restricciones: extensiones de la semántica de los

elementos del lenguaje, añadiendo nuevas reglas o modificando las ya existentes.

Persona

Empresa

sexo:{hombre,mujer}

{segura}

0..1 esposa

0..1 marido

{or}

{self.esposa.sexo = mujer andself.marido.sexo = hombre}

Restricción simple

Restricción simple y formal

Restricción múltipleCuenta

Ingeniería del software I (2ºITG) 27 Unidad 2: Tema 2.2.2

Diagrama de clases de UML

Ejemplo

Ingeniería del software I (2ºITG) 28 Unidad 2: Tema 2.2.2

Diagrama de clases de UML

Ejercicio: 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.

Ingeniería del software I (2ºITG) 29 Unidad 2: Tema 2.2.2

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.

Ingeniería del software I (2ºITG) 30 Unidad 2: Tema 2.2.2

Directrices para elaborar el Modelo Conceptual

1. Realizar una descripción de las estructuras e interacciones principales en el dominio del problema.

2. Incorporar los conceptos.

3. Incorporar las asociaciones.

4. Incorporar las generalizaciones.

5. Agregar atributos o propiedades de los conceptos.

Pasos a seguir:

Ingeniería del software I (2ºITG) 31 Unidad 2: Tema 2.2.2

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.

Ingeniería del software I (2ºITG) 32 Unidad 2: Tema 2.2.2

Descripción del problemaEl proceso a seguir sería el siguiente:0. Los alumnos se matriculan de la asignatura

“proyectos informáticos”.1. Los profesores definen los contenidos de sus

proyectos propuestos, dando el titulo del proyecto, las asignaturas recomendadas y una descripción general del mismo.

2. A continuación cada alumno elige entre 1 y 10 trabajos de los ofertados. A cada una de sus elecciones le asigna una prioridad.

3. 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).

Ingeniería del software I (2ºITG) 33 Unidad 2: Tema 2.2.2

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.

Ingeniería del software I (2ºITG) 34 Unidad 2: Tema 2.2.2

Incorporar conceptos

Pasos a seguir:

1) Identificar los conceptos.

2) Seleccionar los conceptos relevantes en nuestro problema.

3) Representar esos conceptos en el modelo conceptual, como clases de un Diagrama de clases de UML.

Ingeniería del software I (2ºITG) 35 Unidad 2: Tema 2.2.2

Identificar conceptos

Estrategias para identificar conceptos:

A) 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.

B) 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.

Ingeniería del software I (2ºITG) 36 Unidad 2: Tema 2.2.2

Identificar conceptosProblema: 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.

Ingeniería del software I (2ºITG) 37 Unidad 2: Tema 2.2.2

Identificar conceptos

El proceso a seguir sería el siguiente:0. Los alumnos se matriculan de la asignatura

“proyectos informáticos”.1. Los profesores definen los contenidos de sus

proyectos propuestos, dando el titulo del proyecto, las asignaturas recomendadas y una descripción general del mismo.

2. A continuación cada alumno elige entre 1 y 10 trabajos de los ofertados. A cada una de sus elecciones le asigna una prioridad.

3. 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).

Problema: Asignación de Proyectos.

Ingeniería del software I (2ºITG) 38 Unidad 2: Tema 2.2.2

Identificar conceptos

Ejem

plos

Tipo

de

cate

goría

sLista de categoría de clases conceptuales(1)

Actores y agentes participantes

Lugares

Organizaciones

Cosas tangibles

• Cajero• Cliente• Usuario• Supervisor• Proveedor• Transportista• Establecimiento• Oficina de atención al público• Despacho del profesor• Almacén de artículos• Centro académico• Compañía aérea• Universidad• Entidad Bancaria• Departamento• Cajón de máquina registradora• Cajero automático• Producto• Terminal Punto de Venta

Ingeniería del software I (2ºITG) 39 Unidad 2: Tema 2.2.2

Identificar conceptos

Ejem

plos

Tipo

de

cate

goría

sLista de categoría de clases conceptuales(2)

Cosas no tangibles

Documentos físicos o virtuales

Especificaciones, reglas, diseño o Descripciones

Transacciones

• Línea de crédito• Beca• Calificación• Acción en bolsa• Expediente• Matrícula• Catálogo de artículos• Lista de alumnos• Cuenta corriente• Recibo• Contrato laboral• Especificación de un producto• Regla de negocio(Devoluciones/Cancelaciones)• Reglas de creación de producto/servicios.• Manual de procedimientos y seguridad• Venta• Matrícula• Reserva• Prestamo

Ingeniería del software I (2ºITG) 40 Unidad 2: Tema 2.2.2

Identificar conceptos

Ejem

plos

Lista de categoría de clases conceptuales(3)

Items de una transacción

Eventos

Contenedores de cosas

Items del contenedor

• línea de una venta• Importe de la matrícula• Fechas de la reserva• Periodo de vencimiento del préstamo• Venta• Compra• Matrícula• Certificación académica• Autorización de pago• Cancelación de reserva• Ingreso hospitalariol• Recipiente• Autocar• Unidad de Urgencia.• Plan de estudios• Elementos del recipiente• Pasajero• Box de Urgencias• Asignaturas

Tipo

de

cate

goría

s

Ingeniería del software I (2ºITG) 41 Unidad 2: Tema 2.2.2

Identificar conceptos

Ejem

plos

Tipo

de

cate

goría

sLista de categoría de clases conceptuales(4)

Tipo o categoría de cosas

Otros sistemas externos al SuD

• Tipo de impuesto aplicable• Tipo de conservación del producto• Tipo de prestamo• Tipo de subasta• Tipo de procedimiento terapéutico• Tipo de contrato de trabajo• Sistema de pago a crédito• Sistema de Expedientes• Sistema de autorización de pago con tarjeta• Sistema de control de temperatura• Sistema de envío de pedidos.

Ingeniería del software I (2ºITG) 42 Unidad 2: Tema 2.2.2

Seleccionar conceptos relevantesProblema: 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

Ingeniería del software I (2ºITG) 43 Unidad 2: Tema 2.2.2

Representar los conceptosProblema: 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.

Alumno

ProyectoExpedienteAsignatura

Plan EstudiosProfesor

Ingeniería del software I (2ºITG) 44 Unidad 2: Tema 2.2.2

Incorporar Asociaciones

Una asociación es una conexión significativa y relevante entre dos conceptos.

Pasos a seguir: 1) Identificar posible asociaciones.2) Representarlas en el MC y Seleccionar

asociaciones válidas.3) Nombrar las asociaciones seleccionadas.4) Identificar multiplicidad.

Ingeniería del software I (2ºITG) 45 Unidad 2: Tema 2.2.2

Identificar AsociacionesEstrategias para Identificar las asociaciones:A) Buscar frases verbales en la descripción del problema

B) ) Usar la siguiente lista de categoría de asociaciones:

1. A es parte o está contenido físicamente o lógicamente en B

2. A se registra/conoce/conecta/captura en B.3. A es una descripción de B 4. A es miembro de B5. A usa o dirige B6. A se comunica con B7. A está contiguo a B8. A es propiedad de B

Ingeniería del software I (2ºITG) 46 Unidad 2: Tema 2.2.2

Identificar AsociacionesProblema: 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)

Ingeniería del software I (2ºITG) 47 Unidad 2: Tema 2.2.2

Identificar AsociacionesProblema: Asignación de Proyectos.

5. a los alumnos se les adjudica un proyectoAlumno ----- Proyecto (2)

6. Entre sus elegidos,Alumno ------ Proyecto (2)

7. Los alumnos se matriculan de dicha asignatura “proyecto”.

Alumno ------ Asignatura (2)

4.Los profesores definen una serie de proyectos(trabajos)Profesor ------ Proyecto (8)

Ingeniería del software I (2ºITG) 48 Unidad 2: Tema 2.2.2

Identificar Asociaciones

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)

9.Asignaturas recomendadas en el proyectoAsignatura ----- Proyecto (9)

8.Expediente del AlumnoExpediente ------ Alumno (8)

Problema: Asignación de Proyectos.

Ingeniería del software I (2ºITG) 49 Unidad 2: Tema 2.2.2

Representarlas y seleccionar las validas

Alumno

Proyecto

Expediente

Asignaturas

Plan EstudiosProfesor

1

2 3

4

5 6 7

8

9

10

Problema: Asignación de Proyectos.

Ingeniería del software I (2ºITG) 50 Unidad 2: Tema 2.2.2

Representarlas y seleccionar las validas

Alumno

Proyecto

Expediente

Asignaturas

Plan EstudiosProfesor

1

3

4

5 y 2 6 7

8

9

10

Asociación redundante o derivada

Problema: Asignación de Proyectos.

Ingeniería del software I (2ºITG) 51 Unidad 2: Tema 2.2.2

Nombrar Asociaciones

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.

Problema: Asignación de Proyectos.

Ingeniería del software I (2ºITG) 52 Unidad 2: Tema 2.2.2

Nombrar Asociaciones

Alumno

Proyecto

Expediente

Asignaturas

Plan EstudiosProfesor

Eligen

Asig

nado

s

Poseen

Recomienda

FormadoPor

FormadoPor

Defi

ne

Problema: Asignación de Proyectos.

Ingeniería del software I (2ºITG) 53 Unidad 2: Tema 2.2.2

Identificar Multiplicidad

Alumno

Proyecto

Expediente

Asignaturas

Plan EstudiosProfesor

Eligen

Asig

nado

s

Poseen

Recomienda

FormadoPor

FormadoPorD

efine

1..1

00.

.*

0..3

1..*

0..* 0..*

1..*

1..*

Problema: Asignación de Proyectos.

0..*

Ingeniería del software I (2ºITG) 54 Unidad 2: Tema 2.2.2

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 Asociacionesde la superclase

Ingeniería del software I (2ºITG) 55 Unidad 2: Tema 2.2.2

Incorporar generalizacionesDirectrices 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.

Ingeniería del software I (2ºITG) 56 Unidad 2: Tema 2.2.2

Incorporar generalizaciones

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

Asignatura

Proyecto Optativa Troncal

Problema: Asignación de Proyectos.

Ingeniería del software I (2ºITG) 57 Unidad 2: Tema 2.2.2

Agregar los AtributosPasos 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,...)

Ingeniería del software I (2ºITG) 58 Unidad 2: Tema 2.2.2

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.

Expediente

.asignatura

Proyecto

.codAsignaturas

Alumno

fechaNacimiento

Fecha

Ingeniería del software I (2ºITG) 59 Unidad 2: Tema 2.2.2

Agregar los Atributos

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.

Problema: Asignación de Proyectos.

Ingeniería del software I (2ºITG) 60 Unidad 2: Tema 2.2.2

Agregar los Atributos

AlumnosnombreDNI

Proyectotitulodescripción

ExpedientenotaMedia

AsignaturascodAsignaturanombrecréditos

Plan Estudios

ProfesornombreDNI

Defi

ne

Eligen

Asig

nado

s

Poseen

Recomienda

FormadoPor

FormadoPor

1..1

0

1..*

1..*

0..*

0..3

1..*

0..* 0..*

Bare

mo

prio

rida

d

NO

TA

Problema: Asignación de Proyectos.

0..*

Ingeniería del software I (2ºITG) 61 Unidad 2: Tema 2.2.2

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.

Ingeniería del software I (2ºITG) 62 Unidad 2: Tema 2.2.2

Modelo de los requisitos funcionales

Modelo del Análisis

Modelo Conceptual o

Modelo de DominioModelo de los

requisitos funcionales

Diagrama de Secuenciadel sistema

Contrato de las operacionesprincipales

Descripción textual del problema

Ingeniería del software I (2ºITG) 63 Unidad 2: Tema 2.2.2

Diagrama de Secuencia del Sistema

SISTEMASISTEMA

El 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.

Herramienta a usar: Diagramas de secuencia de UML

Ingeniería del software I (2ºITG) 64 Unidad 2: Tema 2.2.2

Diagramas de secuencia de UML

Muestran 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.

Ingeniería del software I (2ºITG) 65 Unidad 2: Tema 2.2.2

Diagramas de secuencia de UML

.objeto1

.objeto3

.objeto2

Tiempo

Mensajes

Objetos

Estructura general de un Diagrama de Secuencia de UML

Ingeniería del software I (2ºITG) 66 Unidad 2: Tema 2.2.2

Diagramas de secuencia de UMLObjeto: Instancia de una clase.Actor: Elemento externo al sistema con el cual interacciona.

miCliente:Cliente

:Cliente

miCliente

:Cliente

Instancias con nombre

Instancia huérfana

Instancia anónima .unSocio:SocioBiblio

Actor

Multiobjeto

Ingeniería del software I (2ºITG) 67 Unidad 2: Tema 2.2.2

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.

Foco de control:objeto activado

Línea de vida

Objeto con el control de la ejecuciónDestrucción

del objeto

:ClienteConstrucción del objeto

Ingeniería del software I (2ºITG) 68 Unidad 2: Tema 2.2.2

Diagramas de secuencia de UMLMensaje: Mecanismo de comunicación entre objetos.

n = orden en la secuencia de envío de mensajevar1 = objeto o valor de retorno.var2 = objeto o valor del argumento.Tipo = Tipo de las variables usadas

.aa:A .bb:B

[n][var1:=]nombreMens([var2][:Tipo],..)[:Tipo]

Ingeniería del software I (2ºITG) 69 Unidad 2: Tema 2.2.2

Diagramas de secuencia de UMLDevolución de control o retorno y mensaje a self

aa:A bb:B

.mens1()

mens2() mens3()

Ingeniería del software I (2ºITG) 70 Unidad 2: Tema 2.2.2

Diagramas de secuencia de UMLComportamiento condicional en el envío de mensajes

bb:B [condición]mens1()

[!condición]mens2()

[condición]mens1()

aa:A

[!condición]mens2()

Ingeniería del software I (2ºITG) 71 Unidad 2: Tema 2.2.2

Diagramas de secuencia de UMLComportamiento iterativo en el envío de mensajes

.mens0()

bb:B

*[condición]mens1()

cc:C

mens2()

mens3() mens4()

*[i=1..N]

:D

*mens5()

aa:A

Ingeniería del software I (2ºITG) 72 Unidad 2: Tema 2.2.2

Diagramas de secuencia de UMLEjemplo

e:Interlocutor

r:Interlocutor

:Centralita

:Conexión

1:descolgar

3:*[i=1..9]marDig(d)

2:darTono()

3.1:enrutarLlamada(e,r)

3.3:<<create>>

3.2:llamar()3.2.1:descolgar

4.1:desConectar(e,r)

4:colgar

<<destroy>>

Ingeniería del software I (2ºITG) 74 Unidad 2: Tema 2.2.2

Diagramas de secuencia de UML

Ejercicio: 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.

Ingeniería del software I (2ºITG) 75 Unidad 2: Tema 2.2.2

EjercicioDibujar 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.

Ingeniería del software I (2ºITG) 76 Unidad 2: Tema 2.2.2

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

Ingeniería del software I (2ºITG) 77 Unidad 2: Tema 2.2.2

Diagrama de Secuencia del Sistema

Pasos a seguir:1. Identificar las operaciones principales del

sistema de la descripción del problema. 2. Hacer una descripción de la funcionalidad que

proporciona la operación (recurrir a escenarios).3. Identificar los actores que inician dichas

operaciones.4. Asignarles un nombre y tratar de Identificar los

parámetros de dichas operaciones. 5. Asignar un nombre a todo el sistema.6. Representar las operaciones, los actores y el

sistema en un Diagrama de Secuencia del Sistema.

Ingeniería del software I (2ºITG) 78 Unidad 2: Tema 2.2.2

Diagrama de Secuencia del SistemaPasos 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.

Ingeniería del software I (2ºITG) 79 Unidad 2: Tema 2.2.2

Diagrama de Secuencia del Sistema Nombrar al Sistema y representar (pasos 4, 5 y 6)

del ejemplo: Asignación de proyectos

:SAP

.matricularAlumnos(idAlu, listIdAsig)

.elegirProyecto(idAlu,idPro,prio)

: Alumno

:Responsable

:Profesor

.asignarProyecto()

.definirProyecto( ¿?,¿?,¿?,¿?)

Nombre del sistema

Ingeniería del software I (2ºITG) 80 Unidad 2: Tema 2.2.2

Diagrama de Secuencia del Sistema Nombrar al Sistema y representar (pasos 4, 5y 6) del

Ejemplo: Asignación de proyectossimplificación: Único actor el Responsable del Sistema

:SAP

matricularAlumnos(idAlu, listIdAsig)

elegirProyecto(idAlu,idPro,prio)

:Responsable

.asignarProyecto()

definirProyecto(¿?,¿?,¿?,¿?)

Ejercicio: Encontrar los parámetros de la operación definirProyecto(....)

Ingeniería del software I (2ºITG) 81 Unidad 2: Tema 2.2.2

Contrato de las operacionesUn contrato es un documento que describe lo que una operación se propone lograr, sin decir cómo.

Elementos de un contratoElementos de un contratoNombre Nombre de la operación y sus parámetrosResponsabilidadDescripción informal de las responsabilidades

que debe cumplir la operación.Tipo Concepto, clase o interfaz responsable de la operación.Notas Notas para el diseño, algoritmo, ..Excepciones Casos excepcionales.Salidas Mensajes o datos enviados fuera.Precondiciones Suposición acerca del estado del sistema o de los objetos

Poscondiciones Estado del sistema o de los objetos del Modelo

.del Modelo Conceptual antes de ejecutar la operación.

.Conceptual después de la ejecución de la operación

Ingeniería del software I (2ºITG) 82 Unidad 2: Tema 2.2.2

Contrato de las operacionesPasos 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.

Ingeniería del software I (2ºITG) 83 Unidad 2: Tema 2.2.2

Contrato de las operacionesDirectrices 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.

Ingeniería del software I (2ºITG) 84 Unidad 2: Tema 2.2.2

Contrato de las operaciones

:SAP

.matricularAlumnos( ..)

.elegirProyecto(..)

:Responsable

.asignarProyecto()

.definirProyecto(.. )

Ejemplo: Asignación de proyectos

Ingeniería del software I (2ºITG) 85 Unidad 2: Tema 2.2.2

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

Asignaturas e

stad

o PlanEstudios

0..*

1..*

Ingeniería del software I (2ºITG) 86 Unidad 2: Tema 2.2.2

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

Asignaturas

est

ado

Expediente

Asignaturas

AsigDeExpeestado

1..*

0..*

0..*

1..*

Ingeniería del software I (2ºITG) 87 Unidad 2: Tema 2.2.2

Contrato de las operaciones

NombreResponsabilidad Identificar al alumno y a las asignaturas que quiere cursar

E incluirlas en su expediente con el estado a matriculada.Tipo SAPNotas Excepciones Si el alumno no ha sido identificado.

Si alguna asignatura no es identificada.SalidasPrecondiciones Poscondiciones Para cada elemento de listIdAsig

(identificado por el correspondiente elemento de listIDAsig)

(identificado por idAlu).

matricularAlumnos(idAlu, listIdAsig)

- Fue creado un objeto AsigDeExpe (ae) con estado a “matriculada” - Fue creado un enlace entre ae y un objeto Asignatura

- Fue creado un enlace entre ae y un objeto Expediente

Contrato de la operación: matricularAlumnos(idAlu, listIdAsig)

Ingeniería del software I (2ºITG) 88 Unidad 2: Tema 2.2.2

Contrato de las operaciones Contrato 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

Ingeniería del software I (2ºITG) 89 Unidad 2: Tema 2.2.2

Contrato de las operaciones

Nombre DefinirProyecto(idProf,tit,descrip,listIdAsig)Responsabilidad Crear un nuevo proyecto asignandole el profesor que lo define

Las asignaturasecomendadas, su título y su descripciónTipo SAPNotas Excepciones Si el profesor no es identificado.

Si alguna asignatura no es identificada.SalidasPrecondiciones Poscondiciones

(identificado por idProf)Para cada elemento de listIdAsig

(identificado por el correspondiente elemento de listIdAsig)

- Fue creado un objeto Proyecto (pro) debidamente inicializado - Fue creado un enlace entrepro y un objeto Profesor .

- Fue creado un enlace entre pro y un objeto Asignatura

Contrato de la operación:definirProyecto(idProf,tit,descrip,listIdAsig)

Ingeniería del software I (2ºITG) 90 Unidad 2: Tema 2.2.2

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

Asignatura Expediente

.baremoprioridad

Ingeniería del software I (2ºITG) 91 Unidad 2: Tema 2.2.2

Contrato de las operaciones Contrato de la operación: elegirProyecto(idAlu,idPro,prio)

Identificar objetos:

Proyecto Alumno

.baremoprioridad

ProyectoAlumnoEleccion

baremoprioridad

0..* 1..10

1..10 0..*

Ingeniería del software I (2ºITG) 92 Unidad 2: Tema 2.2.2

Contrato de las operaciones

Nombre ElegirProyecto(idAlu,idPro,prio)Responsabilidad Buscar al Alumno y al Proyecto, calcular el baremo para ese proyecto e

Tipo SAPNotas Baremo = nota Media Exp. + nota media de Asignaturas RecomendadasExcepciones Si el alumno no es identificado.

Si el proyecto no es identificado.Si el alumno no está matriculado de la asignatura “Proyecto Informáticos”.

SalidasPrecondiciones Que estén todos los proyectos definidos.Poscondiciones

(identificado por idPro)

(identificado por idAlun

.incluir ese proyecto dentro de la lista de elegidos por ese alumno.

- Fue creado un objeto Eleccion (ele) con baremo calculado. - Fue creado un enlace entre ele y un objeto Proyecto

- Fue creado un enlace entre ele y un objeto Alumno

Contrato de la operación:elegirProyecto(idAlu,idPro,prio)

Ingeniería del software I (2ºITG) 93 Unidad 2: Tema 2.2.2

Contrato de las operaciones

Ejercicio: Desarrollar el contrato de la operación asignarProyecto(..)