Ingeniería del Software Orientada a Objetosyaqui.mxl.uabc.mx/~molguin/as/IngSoft 6.pdf ·...

Post on 25-Sep-2018

238 views 1 download

Transcript of Ingeniería del Software Orientada a Objetosyaqui.mxl.uabc.mx/~molguin/as/IngSoft 6.pdf ·...

Ingeniería del Software Orientado a ObjetosUnidad 6: Vistas del UML

M.C. Martín Olguín (C) 2004

El UML

Es un lenguaje estándar para escribir planos del software.

El UML es sólo un lenguaje y como tal es parte de un método de desarrollo de software.

Es independiente del proceso de software.

M.C. Martín Olguín (C) 2004

UML

El UML es un lenguaje para:VisualizarEspecificarConstruirDocumentarLos artefactos de un sistema de software

M.C. Martín Olguín (C) 2004

Vistas del UML

Vista Estructural

Vista deImplementación

Vista deAmbiente

Vista delComportamiento

Vista delUsuario

M.C. Martín Olguín (C) 2004

Vista del Usuario (User View) Representa el problema y la solución

desde la perspectiva de los individuos a cuyo problema se enfoca la solución.

M.C. Martín Olguín (C) 2004

Vista Estructural (Structural View) Incluye los aspectos estáticos o

estructurales del problema y la solución. También se conoce como la vista estática

o lógica.

M.C. Martín Olguín (C) 2004

Vista del Comportamiento (Behavioral View) Incluye los aspectos dinámicos del

problema y la solución. También se conoce como la vista

dinámica, de procesos, concurrente o colaborativa.

M.C. Martín Olguín (C) 2004

Vista de Implementación (Implementation View) Incluye los aspectos estructurales y de

comportamiento de la realización de la solución.

Esta vista se conoce también como la vista de componentes o de desarrollo.

M.C. Martín Olguín (C) 2004

Vista de Ambiente (Environment View) Abarca los aspectos estructurales y de

comportamiento del dominio en el cual la solución debe ser realizada.

También se conoce como vista de instalación o vista física.

M.C. Martín Olguín (C) 2004

Vistas 4+1 del UML

Vista Lógica

Vista deDesarrollo

Vista FísicaVista de Procesos

Escenarios

6.2 Diagramas del UML

M.C. Martín Olguín (C) 2004

Diagrama de Casos de Uso

Autentifica Usuario

Maestro Registra Calificación

Alumno Consulta Kardex

<<include>>

<<include>>

Bloquea Cuenta

<<extend>>

M.C. Martín Olguín (C) 2004

Casos de Uso

Es una secuencia de transacciones realizadas por un sistema que arrojan un resultado medible de valores para un actor particular

Representan la funcionalidad que provee el sistema.

M.C. Martín Olguín (C) 2004

...Casos de Uso

Modelan un diálogo entre los actores y el sistema.

La colección de los casos de uso de un sistema constituyen todas las formas definidas en las que el sistema puede ser utilizado.

M.C. Martín Olguín (C) 2004

Actores

Los actores NO son parte del sistema, representan cualquier ente que debe interactuar con el sistema. Un actor puede:Sólo captar información en el sistema.Sólo recibir información del sistema.Captar y recibir información al y desde el

sistema.

M.C. Martín Olguín (C) 2004

Relaciones entre Casos de Uso

Una relación de asociación puede existir entre un actor y un caso de uso.

Este tipo de relaciones se denominan asociaciones de comunicación ya que representan la comunicación entre un actor y un caso de uso.

UML define cuatro tipos de relación en los Diagramas de Casos de Uso.

M.C. Martín Olguín (C) 2004

Relación de comunicación

Actor C aso de U so

M.C. Martín Olguín (C) 2004

Relación de Inclusión (include)

Se da entre dos casos de uso cuando uno de ellos representa funcionalidad que se comparte con otros casos de uso.

La asociación se representa con una flecha que va desde el caso de uso base hacia el caso de uso incluido.

Caso de Uso Origen C aso de U so Desti no

<<include>>

M.C. Martín Olguín (C) 2004

Relación de extensión (extend)

Se usa para mostrar: Comportamiento opcional. Comportamiento que se ejecuta sólo bajo ciertas

circunstancias, tales como disparar una alarma. Varios flujos diferentes pueden ser ejecutados

basados en la selección del actor. Se representa como una flecha que apunta del

caso de uso extendido al caso de uso base

Caso de uso base Caso de Uso extendido

<<extend>>

M.C. Martín Olguín (C) 2004

Diagrama de Casos de Uso

Documenta el comportamiento del sistema en desarrollo.

Muestra las funciones que el sistema debe cumplir, su entorno (actores) y las relaciones entre los casos de uso y los actores (diagrama de casos de uso).

El papel más importante de un modelo de casos de uso es el de comunicar.

M.C. Martín Olguín (C) 2004

Ejemplo de Diagrama de Casos de Uso

Autentifica Usuario

Maes tro Registra Calificación

Alumno Consulta Kardex

<<include>>

<<include>>

Bloquea Cuenta

<<extend>>

Autentifica con password

Autentifica con retina

M.C. Martín Olguín (C) 2004

Diagrama de Actividades

El sistema pide usuario y password

El sistema valida al alumno

válido

El sistema despliega el kardex

intentos

El sistema bloquea la cuenta del alumno

[ intentos <= 3 ]

[ intentos > 3 ]

M.C. Martín Olguín (C) 2004

Diagrama de Actividades

Los diagramas de actividades representan la dinámica del sistema.

Muestran el flujo del control en el sistema conforme pasa de una actividad a otra, cuales actividades pueden ser llevadas a cabo en paralelo y cualquier trayectoria alternativa del flujo.

M.C. Martín Olguín (C) 2004

...Diagrama de Actividades

En la etapa inicial (inception) del proyecto, los diagramas de actividades pueden ser creados para representar el flujo entre casos de uso, o para representar el flujo dentro de un caso de uso en particular.

En las etapas avanzadas del proyecto, los diagramas de actividades pueden ser creados para mostrar el flujo de una operación en el diseño del sistema.

M.C. Martín Olguín (C) 2004

Diagrama de Actividades

Actividad inicial

Actividad final

Barras de sincronización

M.C. Martín Olguín (C) 2004

...Diagrama de Actividades con Marcos de Responsabilidad

M.C. Martín Olguín (C) 2004

Ejemplo de diagrama de actividades

El sistema pide usuario y password

El sistema valida al alumno

válido

El sistema despliega el kardex

intentos

El sistema bloquea la cuenta del alumno

[ intentos <= 3 ]

[ intentos > 3 ]

M.C. Martín Olguín (C) 2004

Diagrama de ClasesPersona

NombreDireccion

obtenDireccion()

Maestro

materiaCursadamateriacalificacion

registraCalificacion()

calif ica

Alumno

Kardex

0..n

1

1

tiene

1

1

0..n

M.C. Martín Olguín (C) 2004

Diagrama de Clases

Es un diagrama que muestra un conjunto de clases, interfaces, colaboraciones y sus relaciones.

Gráficamente, un diagrama de clases es una colección de vértices y arcos.

M.C. Martín Olguín (C) 2004

Utilidad de los Diagramas de Clase

Se utilizan para modelar la vista de diseño estático de un sistema.

Por lo regular se utilizan para una de las siguientes cosas:Modelar el vocabulario del sistemaModelar colaboraciones simplesModelar el esquema lógica de la BD

M.C. Martín Olguín (C) 2004

Modelado del vocabulario del Sistema Involucra tomar decisiones acerca de

cuáles abstracciones son parte del sistema en consideración y cuáles caen fuera de sus fronteras.

Se usan los diagramas de clase para especificar estas abstracciones y sus responsabilidades.

M.C. Martín Olguín (C) 2004

Modelado de colaboraciones simples Una colaboración es una sociedad de

clases, interfaces y otros elementos que trabajan en conjunto para proveer algún comportamiento cooperativo que es mayor que la suma de sus elementos.

Los diagramas de clases se utilizan para visualizar y especificar este conjunto de clases y sus relaciones.

M.C. Martín Olguín (C) 2004

Modelado de esquema lógico de BD El esquema de una BD es el equivalente

al plano de un edificio. Cuando se requiere almacenar

información persistente en una base de datos, se pueden utilizar los diagramas de clase para construir los planos (el esquema).

M.C. Martín Olguín (C) 2004

Relaciones entre clases

Dependencia Generalización Asociación Realización

M.C. Martín Olguín (C) 2004

Dependencia

Es una relación de uso, la cual establece que un cambio en la especificación de una cosa puede afectar a otra que la utiliza, pero no necesariamente en el caso contrario.

Se utilizan cuando es necesario denotar que una clase utiliza a otra.

Una relación de dependencia se representa como una línea punteada que apunta del cliente al proveedor.

M.C. Martín Olguín (C) 2004

...Dependencia

Por lo regular se usarán dependencias en el contexto de clases para mostrar que una clase usa a otra clase como argumento en la firma de alguna operación.

M.C. Martín Olguín (C) 2004

Generalización

Es una relación entre una cosa general (llamada la superclase o padre) y una clase más específica de esa cosa.

Comúnmente llamada relación “es un tipo de”. Significa que los objetos de los hijos pueden ser

usados en cualquier parte que el padre sea requerido, pero no en el caso contrario.

M.C. Martín Olguín (C) 2004

...Generalización

Un hijo hereda los atributos y operaciones de sus padres.

A veces el hijo tiene atributos y operaciones adicionales.

Una operación del hijo que tiene la misma firma que una operación del padre sobreescribe esta última, esto se conoce como polimorfismo.

M.C. Martín Olguín (C) 2004

...GeneralizaciónVehiculo

combustible : String

Vehiculo(tipoCombustible : String)getCombustible() : StringsetCombust ible() : Integervirar(rumbo : String) : Boolean

Barco Automovil

• Una clase puede tener cero, uno o más padres.

• Una clase que no tiene padres y tiene uno o más hijo se conoce como clase raíz o clase base.

• Una clase sin hijos es una clase hoja.

• Una clase con un solo padre se dice que usa herencia simple.

• Una clase con más de un padre se dice que usa herencia múltiple.

M.C. Martín Olguín (C) 2004

Asociación

Es una relación estructural que especifica que los objetos de una cosa están conectados a objetos de otra.

Es una conexión semántica bidireccional entre clases.

No es un flujo de datos como se define en el análisis y diseño estructurado, los datos pueden fluir en cualquier dirección a través de la asociación.

M.C. Martín Olguín (C) 2004

...Asociación

Una asociación entre clases significa que existe una liga entre los objetos de las clases asociadas.

Dada una asociación que conecta dos clases, se puede navegar de un objeto de una clase a un objeto de la otra clase y viceversa.

Una clase puede tener asociaciones así misma.

M.C. Martín Olguín (C) 2004

...Asociación

• Una clase se puede asociar con una, dos o más clases

• Una asociación que conecta exactamente dos clases es llamada asociación binaria.

M.C. Martín Olguín (C) 2004

...AsociaciónAdornosLas asociaciones pueden tener nombre. El nombre de una asociación por lo regular se representa con un verbo.

M.C. Martín Olguín (C) 2004

...Asociación•En una asociación se pueden representar los roles que cada clase desempeña.

•Los roles son sustantivos que describen el papel de la clase en la asociación

M.C. Martín Olguín (C) 2004

...Asociación

Restricciones Es probable que las asociaciones se puedan dar bajo

ciertas restricciones, estas se pueden representar mediante una condición encerrada entre llaves del lado de la clase que tiene que cumplirla.

M.C. Martín Olguín (C) 2004

...Asociación

Multiplicidad Indica la cantidad de objetos de una clase que se

relacionan con uno o más objetos de la clase asociada.

Se representa mediante un valor o intervalo de valores a un lado de la clase, que indica el número de ocurrencias de los objetos de la clase que se pueden dar en la asociación

M.C. Martín Olguín (C) 2004

...Asociación

Asociaciones calificadasCuando la multiplicidad de una asociación es

de uno a muchos, con frecuencia se presenta un reto muy particular: la búsqueda. Cuando un objeto de una clase tiene que seleccionar un objeto particular de otra clase para cumplir con el papel de la asociación, la primera clase utilizará un atributo en particular para localizar al objeto adecuado.

Factura Articulo1..n

listaArt iculoslistaArt iculos1..n

M.C. Martín Olguín (C) 2004

...Asociación

Clases de asociaciónUna asociación, al igual que una clase, puede

contener atributos y operaciones. Cuando este es el caso se define una clase de asociación.

M.C. Martín Olguín (C) 2004

Agregación

Es una forma especializada de asociación, en la cual, el todo está relacionado con sus partes.

La agregación se conoce también como una relación “es parte de”.

M.C. Martín Olguín (C) 2004

Composición Una composición es un tipo especial de

agregación. Cada componente dentro de una composición

puede pertenecer tan sólo a un todo. Las partes se crean y destruyen con el todo. El todo es responsable de manejar la creación y

destrucción de las partes.

M.C. Martín Olguín (C) 2004

...Composición

Frame

Button

Panel

TextArea

M.C. Martín Olguín (C) 2004

Realización

Una realización es una relación semántica entre clasificadores en la cual un clasificador especifica un contrato que el otro se obliga a cumplir.

Gráficamente una realización se representa como una línea punteada con una flecha cerrada grande apuntando al clasificador que especifica el contrato.

M.C. Martín Olguín (C) 2004

...Realización

Contrato Empleado

M.C. Martín Olguín (C) 2004

Clases Abstractas

Una clase abstracta es aquella que no provee objetos y se utiliza por lo general como superclase para derivar clases que sí aportarán objetos al sistema.

Las clases abstractas se representan con el nombre de la clase en letra cursiva.

M.C. Martín Olguín (C) 2004

Interfaces

Son clases que definen un conjunto de operaciones accesibles externamente.

Se utilizan para modelar una colección de operaciones que definen un servicio que ofertan diferentes clases.

Las interfaces no contienen atributos, solo operaciones

M.C. Martín Olguín (C) 2004

...Interfaces

M.C. Martín Olguín (C) 2004

Visibilidad Establece el tipo de acceso que van a tener las otras

clases a los atributos u operaciones de una clase. Existen tres niveles: Público: Todas las clases la pueden acceder. Se representa

antecediendo el símbolo de suma (+) al atributo o a la operación. Protegido: Sólo las clases heredadas lo pueden acceder. Se

representa con el símbolo de número (#). Privado: Sólo la clase original tiene acceso. Se representa con el

símbolo de resta (-). Todas las operaciones en las interfaces y realizaciones

son públicas.

M.C. Martín Olguín (C) 2004

Ejemplo de Diagrama de ClasesPersona

NombreDireccion

obtenDireccion()

Maestro

materiaCursadamateriacalificacion

registraCalificacion()

calif ica

Alumno

Kardex

0..n

1

1

tiene

1

1

0..n

M.C. Martín Olguín (C) 2004

Diagrama de Objetos

alumnoX : Alumno maestroY : Maestro

cursoZ : materiasCursadas

M.C. Martín Olguín (C) 2004

Diagrama de Objetos

Muestra un conjunto de objetos y sus relaciones en un punto en el tiempo.

Contienen:ObjetosEnlacesAl igual que los demás diagramas pueden

contener notas y restricciones.

M.C. Martín Olguín (C) 2004

...Diagramas de Objetos

Se usan al igual que los diagramas de clases para modelar la vista estática del diseño, pero desde la perspectiva de una instancia real o de prototipo.

Modelar estructuras de objeto implica tomar un “snapshot” de los objetos del sistema en un momento dado.

M.C. Martín Olguín (C) 2004

Diagrama de Secuencia

: Alumno validador reporteKardex : Kardex

pantallaLogin

despliega

valida(alumno)

despliega(alumno)

M.C. Martín Olguín (C) 2004

Diagrama de Secuencia

Muestra las interacciones de los objetos ordenados en una secuencia de tiempo.

Muestra los objetos y las clases involucradas en el escenario y la secuencia de mensajes intercambiados entre los objetos necesaria para llevar a cabo la funcionalidad del escenario.

M.C. Martín Olguín (C) 2004

...Diagrama de Secuencia

M.C. Martín Olguín (C) 2004

Diagramas de Secuencia

: Alumno validador reporteKardex : Kardex

pantallaLogin

despliega

valida(alumno)

despliega(alumno)

M.C. Martín Olguín (C) 2004

Diagramas de Colaboración

: Alumnovalidador

reporteKardex : Kardex

pantallaLogin1: despliega

2: valida(alumno)

3: despliega(alumno)

M.C. Martín Olguín (C) 2004

Diagrama de Colaboración

Muestra a los objetos con sus relaciones entre sí, además de los mensajes que se intercambian entre ellos.

Es semánticamente equivalente al diagrama de secuencia.

M.C. Martín Olguín (C) 2004

...Diagrama de Colaboración

M.C. Martín Olguín (C) 2004

...Diagrama de Colaboración

: Alumnovalidador

reporteKardex : Kardex

pantallaLogin1: despliega

2: valida(alumno)

3: despliega(alumno)

M.C. Martín Olguín (C) 2004

Diagramas de Estados

M.C. Martín Olguín (C) 2004

Diagramas de Estados

Un estado representa una condición en la vida de un objeto durante la cual se lleva a cabo una acción, se espera por un evento o se satisface una condicional.

El estado de un objeto puede ser caracterizado por el valor de uno o más atributos de su clase.

Los casos de uso y los escenarios sirven para describir el comportamiento del sistema, es decir, la interacción entre los objetos participantes.

M.C. Martín Olguín (C) 2004

...Diagrama de Estados

Los diagramas de estado sirven para describir el comportamiento dentro de un objeto.

Muestra los estados de un objeto, los eventos o mensajes que causan la transición de un estado a otro y las acciones resultantes de ese cambio de estado.

Se crean sólo para los objetos con comportamiento dinámico significativo.

M.C. Martín Olguín (C) 2004

...Diagrama de Estados

M.C. Martín Olguín (C) 2004

Transiciones de Estado

Representa un cambio de un estado origen a un estado sucesor, la transición puede estar acompañada de una acción.

Pueden ser: Automática

Se da al terminar la actividad que origina el estado. No-automática

Se da a causa de un evento. Los dos tipos son inmediatas y no se pueden

interrumpir.

M.C. Martín Olguín (C) 2004

...Transiciones de Estado

Constan de cinco partes: Estado Origen: es el estado afectado por la transición Evento: El evento cuya recepción por parte del objeto

en el estado origen, hace posible el disparo de la transición si la condición de seguridad se cumple.

Condición de Seguridad: Expresión booleana que se evalúa cuando se recibe el evento, si es verdadera, la transición se dispara.

M.C. Martín Olguín (C) 2004

...Transiciones de Estado

Acción: Operación atómica ejecutable que puede actuar directamente en el objeto dueño de la máquina de estado e indirectamente en otros objetos visibles por el objeto.

Estado Destino: El estado que está activo después de completarse la transición.

M.C. Martín Olguín (C) 2004

Detalles de los Estados

M.C. Martín Olguín (C) 2004

Diagramas de Estados

M.C. Martín Olguín (C) 2004

Diagrama de Componentes

Los diagramas de componentes muestran la organización y las dependencias entre componentes de software. Un componente puede ser: Un componente de código fuente

Por ejemplo un archivo con código en C. Un componente de ejecución (run time)

Por ejemplo un control tipo ActiveX. Un componente ejecutable

Un programa listo para ser invocado por el intérprete de comandos, por ejemplo un EXE.

M.C. Martín Olguín (C) 2004

Componente

Un componente de software es una parte física de un sistema que reside en la computadora (archivo, tabla de datos, ejecutable, etc.).

Un componente se puede visualizar como el mapeo de una o más clases del diseño en un pedazo de software.

M.C. Martín Olguín (C) 2004

Representación de Componentes en UML

M.C. Martín Olguín (C) 2004

Uso de interfaces entre componentes

M.C. Martín Olguín (C) 2004

Diagrama de Distribución

Una vez definidos los componentes de software de un sistema, se requieren definir los componentes de hardware y la distribución de los mismos en el ambiente real de operación.

El elemento principal de un diagrama de distribución es el nodo : Nodo tipo procesador Nodo tipo dispositivo

M.C. Martín Olguín (C) 2004

...Diagrama de Distribución