You are on page 1of 32

UNT INGENIERIA INDUSTRIAL

INGENIERIA DE SOFTWARE

Ing. Francisco Rodrguez Novoa

Tema 8

Modelo de Diseo

Ing. Francisco Rodrguez

Rational Unified Process (RUP)

AGENDA
Anlisis
Anlisis Orientado a Objetos
Artefactos de Anlisis
Trabajadores
Actividades del Anlisis Orientado a Objetos

VISION GENERAL

VISION GENERAL

Acercar el modelo de anlisis al modelo de implementacin


Los milagros ms comunes de la ingeniera del software son las
transiciones desde el anlisis hasta el diseo y desde el diseo al cdigo
(Richard Due).

Identificar requisitos no funcionales y restricciones en relacin


a:

lenguajes de programacin, reutilizacin de componentes, sistemas


operativos, tecnologas de: distribucin, concurrencia, bases de datos,
interfaces de usuario, gestin de transacciones, etc.

Descomponer el modelo de anlisis en subsistemas que


puedan desarrollarse en paralelo. Definir la interfaz de
cada subsistema.
Derivar una representacin arquitectnica del sistema

VISION GENERAL
Modelo de anlisis

Modelo de diseo

Modelo conceptual

Modelo fsico

Pueden obtenerse varios diseos

Especfico a una implementacin

Menos formal

Ms formal

Menos caro de desarrollar

Ms caro (5 veces ms)

Puede eliminarse

Debe mantenerse todo el ciclo de


vida

Diseo Diagramas UML

Artefactos. Modelo de Diseo


Casos de uso en el dominio de la solucin
Cmo soportar requisitos funcionales/no funcionales y otras
restricciones en el entorno de implementacin
Entrada fundamental para actividades de implementacin

Artefactos. Clases de diseo


Una clase de diseo es una abstraccin de una clase de
implementacin
Las operaciones, atributos, tipos, visibilidad (public, protected,
private ...), etc se pueden especifican con la sintaxis del lenguaje
elegido
Las relaciones entre clases de diseo se traducen de manera
directa al lenguaje:
generalizacin: herencia
asociaciones, agregaciones: atributos

Se pueden postergar algunos requisitos a implementacin (por


ejemplo: manera de nombrar los atributos, operaciones, ...)
Realizan interfaces

Artefactos. Clases de diseo

Artefactos. Realizacin en diseo de los casos de uso


Es una colaboracin que describe cmo se realiza en diseo un
caso de uso en trminos de clases de diseo y sus interacciones

Artefactos. Realizacin en diseo de los casos de uso


La realizacin en diseo de un caso de uso, incluye:

diagramas de clases: clases participantes


diagramas de interaccin: escenarios del caso de uso
descripcin textual del flujo de eventos
Requisitos de implementacin
Opcionalmente, subsistemas e interfaces

Artefactos. Realizacin en diseo de los casos de uso


Diagramas de clase
Una clase de diseo puede participar en varios casos de uso
Algunas responsabilidades, atributos y asociaciones suelen ser
especficos de un slo caso de uso.
Diagramas de interaccin
La secuencia de acciones en un caso de uso comienza cuando un
actor enva un mensaje a un objeto de diseo.
Utilizar mejor diagramas de secuencia que de colaboracin. Nos
interesa la secuencia cronolgica de las interacciones.
Se pueden incluir subsistemas y las interfaces que proporcionan

Artefactos. Realizacin en diseo de los casos de uso


Flujo de eventos
Para clarificar los d. de secuencia: descripcin textual
Una descripcin no tiene que ser local a un diagrama.
Puede englobar a varios e indicar cmo se relacionan.
Requisitos de implementacin
Requisitos a gestionar en implementacin
Quizs durante esta fase de diseo se obtengan algunos nuevos
Representarlos con restricciones {...} asignadas a las clases de
diseo, operaciones, atributos, asociaciones, etc.

Artefactos. Subsistemas de diseo


Para organizar los artefactos de diseo: clases de diseo,
realizacin de casos de uso, interfaces y otros subsistemas.
Fuertemente cohesionados y dbilmente acoplados.

Artefactos. Interfaz
Los interfaces se utilizan para especificar las operaciones de
las clases y los subsistemas de diseo
Las clases de diseo soportan las operaciones de su interfaz
mediante mtodos.
Los subsistemas de diseo soportan las operaciones de su
interfaz mediante las clases de diseo (o subsistemas) que
contiene.

Ejemplo Cajero Bancario


Para ilustrar las actividades, utilizaremos el ejemplo del cajero
automtico

Actividades. Diseo de los casos de uso


Identificar las clases de diseo y/o subsistemas necesarios
para la realizacin del caso de uso.
Distribuir el comportamiento del caso de uso entre las clases
y/o subsistemas de diseo

Actividades. Diseo casos de uso


Identificar las clases de diseo
Derivar las clases de diseo de las correspondientes clases de
anlisis que participan en el caso de uso.
Estudiar los requisitos especiales del caso de uso: realizarlos
con los mecanismos genricos de diseo o con clases de diseo.
Asignar responsabilidades a las clases identificadas.
Realizar un diagrama de clases que muestre las clases de diseo
que intervienen en la realizacin del caso de uso y las
relaciones entre ellas

Diseo del caso de uso: Validar usuario

Actividades. Diseo casos de uso


Describir interacciones entre objetos de diseo
Utilizar diagramas de secuencia
objetos, instancias de actores, enlaces

Crear un diagrama de secuencia


Comenzar estudiando la realizacin en anlisis del c.u.
Sobre los diagramas de secuencia:
el caso de uso comienza cuando una instancia de un actor enva un
mensaje a un objeto interfaz.
cada clase de diseo identificada debera tener al menos un objeto
participando en el diagrama de secuencia.

En esta fase gestionar excepciones y errores (entradas


incorrectas, situaciones anormales, etc.)

Diseo del caso de uso: Validar usuario

Diseo del caso de uso: Sacar dinero


Suponemos que el usuario ya ha sido identificado (se ha
ejecutado el caso de uso anterior).
Ahora selecciona la opcin sacar dinero.

Refinando el caso de uso: Sacar dinero

Diseo del caso de uso: Sacar dinero

Diseo de las clases


Identificar las responsabilidades de las clases de diseo
(papeles en los casos de uso)

Identificar:
Operaciones
Atributos
relaciones en las que participa
estados (diagramas de estados)
mtodos que soportan sus operaciones
Requisitos nuevos

Diseo de las clases


Identificar operaciones
En el lenguaje de implementacin
Mirar responsabilidades que tiene en los casos de uso
Identificar atributos
Describirlos en el lenguaje de programacin
Considerar los atributos de las clases de anlisis de las que
se derivan

Diseo de las clases


Identificar asociaciones y agregaciones
Las interacciones en los diagramas de secuencia precisan de
asociaciones entre las clases que interactan.
Minimizar el nmero de relaciones entre clases (disminuir el
acoplamiento).
Refinar multiplicidad, papeles, etc.
Refinar la navegabilidad (direccin) de las asociaciones en base
a los diagramas de secuencia.
Identificar generalizaciones-especializaciones

Diseo de las clases


Describir mtodos
Algoritmos para implementar alguna operacin (lenguaje
natural).
Esqueletos de mtodos generado por la herramienta.
En general, esto se suele hacer en implementacin.
Describir estados
Algunos objetos reaccionan en funcin de su estado actual.
Utilizar diagramas de transicin de estados

Modelo de clases de diseo

FIN

You might also like