Vous êtes sur la page 1sur 46

ANALISIS Y DISEO DE SISTEMAS

SESION 07
UNIVERSIDAD NACIONAL DE INGENIERIA Facultad de Ingeniera Industrial y de Sistemas Ing. Jess Walter Antaurco Trujillo Wantaurco@yahoo.com

Objetivos de la clase

Analizar con detalle el modelado estructural

Contenidos
1. Modelado Estructural

Diagramas de Clases

Modelado Estructural

Modelado estructural

Se describen los tipos de objetos de un sistema y las relaciones estticas que existen entre ellos.

Clases Interfaces Relaciones de dependencia, realizacin, generalizacin y asociacin (agregacin, composicin) Tambin pueden incluir paquetes y colaboraciones

Un diagrama de clase es una representacin grfica de un modelo estructural.

Modelado estructural: Diferentes perspectivas

Modelado Conceptual

Conceptos del dominio del problema: atributos, restricciones y relaciones entre ellos. Clases que corresponden a conceptos del dominio Atributos y operaciones (mtodos) Incluye clases que corresponden a decisiones del diseo Clases que corresponden a un lenguaje de programacin

Modelo del Anlisis


Modelo de Diseo

Modelo de Implementacin

Modelo Conceptual

Del modelo conceptual a las clases

Los modelos de anlisis se obtienen a partir del modelo conceptual:


Conceptos a clases Atributos de un concepto a atributos de la clase Aadir comportamiento (mtodos)

IteradorCuenta

Modelo de diseo
Domiciliacion

Cuenta 1 0..n

Ahorro

Corriente Operacion Periodica

Colaboracin (parte esttica)

Colaboracin (parte dinmica)


: Usuario 11: recalcularTotal() 1: aadirItem(codigo) 4: aadirItem(codigo) 2: aadirItem(codigo) 3: [primer producto] crear()

: MostrarProductos

: Aadir

: CarroCompras

6: [!nuevoItem]incrementarUnidades()

10: [nuevoItem]put(codigo,i)

5: i:=getItemCarro(codigo)

7: [nuevoItem]p:=get(codigo)

9: [nuevoItem]i:=creaItem(p)

: ItemCarro

: CatalagoProductos i : ItemCarro 8: [nuevoItem]p:=buscar(codigo)

: Producto

Ingeniera directa e Inversa

Ingeniera directa

Transformar modelos en cdigo en un lenguaje de programacin determinado Obtener un modelo a partir de cdigo. Ms difcil ya que hay prdida de informacin al pasar de los modelos al cdigo.

Ingeniera inversa

Clases
Atributos

Operaciones

No se tienen por qu mostrar todos las propiedades Se pueden agrupar operaciones: <<constructor>>, <<query>>

Interfaces

Una interfaz es una coleccin de operaciones que especifica los servicios de una clase o componente.
<<Interface>> Collection add() remove() size() contains() iterator()

<<Interface>> Iterator next() hasNext()

Atributos
[visibilidad] nombre [: tipo] [= valor_inicial ] [{propiedades}] visibilidad Nombre Tipo
+ = pblica # = protegida - = privada

: nombre del atributo : tipo del atributo

valor_inicial : valor inicial o por defecto

Atributos

Nivel Conceptual: Los clientes tienen un nombre Nivel de Especificacin: El cliente puede almacenar y consultar su nombre Nivel de Implementacin: Una instancia de Cliente tiene un campo de tipo String que almacena su nombre y un mtodo que lo devuelve

Operaciones
[visibilidad] nombre [(lista_parametros)] [: tipo_retorno] [{propiedades}] visibilidad
+ = pblica # = protegida - = privada

nombre: nombre de la operacin lista_parmetros: lista de parmetros separados por comas tipo retorno: propiedades: tipo de valor devuelto por la operacin {isQuery}, {sequential}, {concurrent}

Operaciones

Cuenta # # # codigoCuenta cliente saldo ultimaOperacion : : : : int int int int

Atributos

+ getSaldo () : int + getUltimaOperacion () : int - nuevoCodigo () : int

Operaciones

Relaciones

Dependencia
PlanDelCurso

Un cambio en la especificacin de un elemento afecta a otro


Window position parent children size
Curso aadir(c : Curso) eliminar(c : Curso)

Clock

open() close() move() resize()

Nodo <<friend>>

Lista

Estereotipos para dependencias

bind: entre una clase genrica y una instanciacin


friend: dependencia de clase amiga use: relacin de uso, el ms comn entre clases y se da por
defecto

import: un paquete importa los elementos de otro. extend: para casos de uso

include: para casos de uso

Relaciones

Generalizacin

Es-un-tipo-de
Cuenta

Window

CuentaAhorro

CuentaCorriente

TextWindow

BoxDialog

Generalizacin

Nivel Conceptual

Todas las instancias de CuentaCorriente son instancias de Cuenta La interfaz de CuentaCorriente incluye la interfaz de Cuenta

Nivel Especificacin

Nivel Implementacin Herencia

Asociacin

Asociacin

Relacin estructural que especifica que los objetos de un tipo estn conectados con los de otro.

Persona

+empleado 1..*

+patron *

Empresa

Curso
*

impartido
1..*

Profesor

Asociaciones

Agregacin

Caso especial de asociacin Relacin estructural parte-de


Empresa 1..1

* Departamento

Asociaciones

Nivel Conceptual

Muestran la relacin conceptual entre dos clases. Un cliente tiene varios pedidos Representan responsabilidades Detectamos los mensajes del protocolo de una clase con respecto a la otra Establecer atributos: navegabilidad

Nivel de Especificacin

Nivel de Implementacin

Asociaciones

Especificacin:
class Pedido { public Cliente getCliente(); public Set getLineaPedido(); ... }

Implementacin

class Pedido { private Cliente private HashSet }

_cliente; _lineasPedido;

Navegacin

Posibilidad de limitar la navegacin a una sola direccin Determina si una clase de la asociacin tiene conocimiento de la otra. Nivel de especificacin o implementacin

Curso *

impartido 1..*

Profesor

Navegabilidad (UML 2.0)


A A A A A B B B B B
Navegabilidad indefinida Navegable de A a B, de B a A indefinida Navegable en ambos sentidos

Navegable slo de A a B No navegable en ningn sentido

Navegabilidad (Prctica habitual)


A A A B B B
Navegabilidad en ambos sentidos
Navegable slo de A a B No se usa

A
A

B
B

No se usa No se usa

Visibilidad

Pblica: +propietario Protegida: #propietario Privada: -propietario

GrupoUsuarios * *

Usuario

+propietario
1..1

-clave
*

Clave

Agregacin

Dos criterios:

Dependencia:
La existencia de una parte va ligada a la del agregado?

Exclusividad:
Una parte puede pertenecer a ms de un agregado?

Composicin

Es un caso particular de agregacin:


exclusiva y dependiente

Las partes pueden crearse despus del agregado compuesta al que pertenecen, pero una vez creadas viven y mueren con ella. La parte slo puede formar parte de un agregado. El agregado gestiona la creacin y destruccin de las partes. Las partes se pueden eliminar antes de eliminar el agregado.

Composicin
Ventana

agregado /todo

1..1

composicin
* Marco

parte

Composicin
POLIGONO 1 Relleno:Diseo

{ordered} {ordered} 3..*

Punto

Clases Asociacin

Una asociacin que tambin es una clase Una clase asociacin aade una restriccin: Slo puede existir una instancia de la asociacin entre cualquiera par de objetos participantes

No podramos modelar que una persona tiene diferentes contratos para una misma compaa a lo largo del tiempo.

Ejemplo de clase asociacin

Ejemplo de clase asociacin

Restricciones para Asociaciones


Empresa
Departamento * *

Cuenta

{or}
Persona

{subconjunto}
+miembro 1..* Persona +Director 1..1

Paquetes

Elemento organizativo Puede agrupar elementos de cualquier tipo. Un elemento es exclusivo a un paquete. Establece un espacio de nombres Posibilidad de anidar paquetes.
Modelo

Modelo

+ Producto + CarroCompra + Comercio

Importacin/Exportacin en paquetes

Los paquetes permiten controlar la complejidad del manejo de un gran nmero de abstracciones, controlando los accesos mediante la importacin.
Relaciones de importacin, acceso y generalizacin La parte pblica de un paquete son sus exportaciones. Las partes pblicas son visibles en los paquetes que importan al paquete contenedor. La importacin no es transitiva. Los paquetes anidados pueden ver todo lo que ven los paquetes que los contienen.

Cliente Servidor + BaseDeDatos + ServicioDeRegistro

+ FormularioPedido + FormularioDeSeguimiento - Pedido

<<import>>
Politicas + ReglasPedidos + GUI:Ventana

GUI + Ventana + Formulario # GestorEventos

<<import>>

Generalizacin de Paquetes
GUI + Ventana + Formulario # GestorEventos

WindowsGUI + GUI:Ventana + Formulario # GUI:GestorEventos + VBForm

MacGUI

Paquetes

Un paquete bien estructurado debe:


ser cohesivo estar poco acoplado pocos anidamientos conjunto equilibrado de elementos

Uso de los paquetes


<<subsystem>> Pedidos <<layer>> Servicios Bsicos

<<model>> Diseo

<<framework>> Struts

Uso de los paquetes

Agrupar elementos relacionados para manejarlo en conjunto.


Paquete Clases e interfaces del modelo Paquete Interfaces de usuario Paquete Servicios base de datos

Paquete Modelo del anlisis

Un modelo es un paquete incluyendo todos los elementos que constituyen una particular vista del sistema modelado.

Anlisis y Diseo de Sistemas


FIN Sesin 7
UNIVERSIDAD NACIONAL DE INGENIERIA Facultad de Ingeniera Industrial y de Sistemas Ing. Jess Walter Antaurco Trujillo Wantaurco@yahoo.com

Vous aimerez peut-être aussi