Você está na página 1de 134

Modelo de Anlisis

Semana 2 - Sesin 3

Temario
Mtodos giles versus MDD
Modelo de anlisis
Modelo conceptual

Tendencias en el desarrollo de software


Mtodos giles

Vs.

Desarrollo basado en modelos

MDD
Model Driven Development

Son realmente
incompatibles?
Fuente: http://www.in2.es/training

Mtodos giles versus MDD

Mtodos giles versus MDD


Mtodos giles
Son un grupo de mtodos basados en el desarrollo iterativo e
incremental como una respuesta a las prctica rgidas y
estructuradas de desarrollo de software.
Sus defensores publicaron el manifiesto gil en el ao 2001:
http://agilemanifesto.org/iso/es/

Uno de los postulados del manifiesto sostiene que hay que


priorizar el desarrollo del software a la creacin de modelos y
documentacin.
El postulado no se opone a la documentacin ni a los modelos.
Sin embargo, hay extremistas giles que prefieren no modelar y
solamente realizar las actividades del software que generan valor.
Esto es, producir cdigo y entregar rpidamente productos de software.

Mtodos giles versus MDD


Mtodos giles
Los mtodos giles son buenos y estn teniendo xito en la
formacin de equipos de desarrollo de software de alto
rendimiento .
Peroqu pasa
implementado?

con

el

producto

despus

que

se

ha

Una de las tareas ms costosas y que toma ms tiempo es el


mantenimiento de una aplicacin de software.
Esta tarea es ms penosa an, cuando no hay documentacin, ni
modelos de referencia.
En algunas organizaciones, ni siquiera la base de datos est
documentada.

Existen muchas propuestas de mtodos giles como: Scrum,


Kanban y Xtreme Programming, entre otras.

Mtodos giles versus MDD


Model-Driven Development (MDD)
Es una aproximacin al desarrollo de software en el que el enfoque
y los artefactos fundamentales son modelos (y no programas).
Se considera derivada del negocio.
Implica la generacin automtica de programas a partir de
modelos.
Utiliza directamente lenguajes de modelado como herramientas
de implementacin.
Las herramientas cases como Rational Architect de IBM y
Enterprise Architect de Sparx Systems, se basan en los principios
del MDD

En MDD: El modelo es la implementacin

Mtodos giles versus MDD


MDD se compone de:

Modelo independiente de computacin (CIM), que describe el contexto y los


requerimientos del negocio

Modelo independiente de la plataforma (PIM), que refina el CIM y especifica los servicios
e interfaces que los sistemas de software deben proporcionar al negocio,
independientemente de las tecnologas de desarrollo.

Modelo especfico de la plataforma (PSM), que describe la realizacin del software en


una plataforma concreta

En adicin, debe proporcionar una herramienta que permita modernizar los sistemas
existentes e integrarlos a los nuevos. Esta herramienta es conocida como Modernizacin
derivada de la arquitectura (ADM) en el OMG

Fuente: http://www.modelbased.net/mdi/mda/mda.html

Reflexiona un momento
No documentar nada puede ser tan perjudicial
como documentar demasiado.
Es preciso encontrar un equilibrio que permita
que el mantenimiento del software no sea
traumtico.

Conclusiones

Los mtodos giles de han convertido en un


conjunto de buenas prcticas en el desarrollo de
software.

Han tenido mucho xito en proyectos de


desarrollo medianos y pequeos.

No estn divorciados de la documentacin y los


modelos.

Existen propuestas como Essential Unified


Process (EssUP) de Ivar Jacobson y AgileUP de
Scott Ambler y asociados que defienden el uso
de modelos.

Modelo de anlisis

Qu es el modelo de anlisis?
El modelo de anlisis proporciona una
configuracin conceptual del sistema.
En el modelo de anlisis se analizan,
refinan y estructuran los requerimientos
capturados con el propsito de estructurar
el sistema completo.
Est orientado al problema y no al
ambiente en el que el sistema va a ser
desarrollado e implementado.
Los modelos que se desarrollan describen
qu es lo que el sistema va a hacer.

Fuente: Imgenes
prediseadas de office.com

Rational Unified Process (RUP)

Fuente: http://www.cycoda.com/html/prog-rup.html

Diferencias del modelo de anlisis con el


modelo de casos de uso
Modelo de Casos de Uso

Modelo de Anlisis

Se describe usando el lenguaje del


cliente.

Se describe usando el lenguaje del


desarrollador.

Se usa a manera de contrato entre


clientes y desarrolladores para
definir lo que el sistema debe y no
debe hacer.

Se usa para que los desarrolladores


comprendan como el sistema debe
ser diseado e implementado.

Puede contener redundancias e


inconsistencias durante el proceso
de negociacin.

Los requerimientos deben haber


sido aprobados para que los
modelos a crear no tengan ni
redundancias ni inconsistencias.

Es la vista externa del sistema.


Captura funcionalidad del sistema

Es la vista interna del sistema


Bosqueja como realizar la
funcionalidad dentro del sistema.

Qu objetivos persigue el modelo de


anlisis?
Transformar
los
requerimientos
en
especificaciones del anlisis del sistema.
Perfilar la arquitectura del sistema.

las

Qu forma parte del modelo de anlisis?


El modelo de anlisis consiste de un conjunto de
clases de anlisis.
Las clases de anlisis se ordenan en torno a dos
diagramas del UML.
Diagramas de clases de anlisis
En donde se muestran las clases que participan de un caso de
uso o mdulo.
Tambin se le conoce como Robustness diagram

Modelo conceptual de clases


En donde se describen las relaciones y atributos de las clases
entidad.

Qu forma parte del modelo de anlisis?


Tambin forma parte de este modelo
Diagramas en los que realizan o describen el
comportamiento general de los casos de uso nucleares.

Estos son los diagramas de Interaccin.

Diagramas en donde se describen los ciclos de vida de


las clases relevantes
Estos son los diagramas de mquinas de estado

Qu son las clases de anlisis?


Las clases de anlisis del sistema
modelan el comportamiento
funcional descrito en cada caso de
uso del sistema.
Representan las piezas para poder
ejecutar los casos de uso del
sistema.
Cada clase de anlisis brinda una
perspectiva o conocimiento de la
ejecucin del caso de uso del
sistema.

Fuente: Imgenes
prediseadas de office.com

Cules son las clases de anlisis?


Existen tres estereotipos de clases:

Clase interfaz o frontera (boundary


class).
Clase controladora (control class).

Clase entidad (entity class).

Qu es una clase frontera?


Una clase boundary o frontera, representa una interfaz de
interaccin entre el actor y el sistema.
Modela el dilogo entre el actor y el sistema.
Involucra recibir y presentar informacin y peticiones desde
usuarios y sistemas externos.
La interaccin con el actor se traduce en eventos y cambios
en la presentacin.
Describen la lgica de presentacin del sistema.
Las nombraremos con el prefijo: CF

Qu es una clase frontera?


En resumen, representan la
abstraccin de los distintos
medios que favorecen el
intercambio de informacin
del actor con el sistema
Ejemplos.
Ventana.
Formulario.
Pgina web.
Reporte.
Interfaz con dispositivo.
Interfaz de comunicacin.
Sensor.

Fuente: Imgenes
prediseadas de office.com

Cuntos tipos de clase frontera hay?


Existen tres tipos:
Clase interfaz usuario (user interface class)
Modela el dilogo del sistema con actores de tipo personas.

Clase interfaz sistema (software interface class)


Modela el dilogo del sistema con actores de tipo software.

Clase interfaz dispositivo (device interface class)


Modela el dilogo del sistema con actores de tipo dispositivos
de hardware.

Cuntos tipos de clase frontera hay?


Ejemplos:
De interfaces de usuario
Pantalla Registro de pago.
Pgina Carrito de compras.
Reporte Movimientos de tarjeta de debito.

De interfaces de sistema
Script Asiento contable.
Archivo XML Datos del cliente.
Los archivos XML son frontera slo cuando se usan para
intercambio de informacin entre sistemas

De interfaz dispositivo
Script de un dispositivo externo de
temperatura.
Lector lser de tarjetas de crdito

Fuente: http://es.mypidion.com/

Qu es una clase controladora?


En general una clase de
control:
Modela la coordinacin y el
comportamiento dentro de un
caso de uso del sistema.
Un objeto control, que es la
instancia
de
una
clase
controladora, se encarga de
delegar y controlar el trabajo de
otras clases.

Fuente:
http://www.que.es/madrid/fot
os/director-orquesta-pianistaargentino-daniel-f78071.html

Qu es una clase controladora?


Entre sus funciones generales estn:
Efectuar la coordinacin, secuencia, gestin
de transacciones y control de otros objetos.
Realizar la dinmica del sistema encapsulada
en un caso de uso especfico.
Hacer clculos y derivaciones complejas,
como la lgica del negocio.
Instanciar objetos de otras clases.

Cuntos tipos de controladoras podemos


definir?
Para el anlisis definiremos dos:
Controladoras de caso de uso
Controladora de negocio

Clase controladora de caso de uso (CCU).


Coordina la interaccin entre las clases frontera y las clases
controladoras de negocio.
Es la responsable de ejecutar el caso de uso del sistema,
manejando los eventos que lanza el actor a travs de una
clase frontera.
Se crea una instancia al comienzo del caso de uso.
Se destruye una instancia al finalizar el caso de uso.
Las nombraremos con el prefijo CCU

CCU

Cuntos tipos de controladoras podemos


definir?
Clase controladora de negocio (CN).
Procesa transacciones conforme a la reglas del negocio
del mdulo que representa.
Instancia clases entidad.
Coordina el intercambio de informacin entre las clases
controladoras de casos de uso y las clases entidad.
Se crea una instancia cuando un mdulo comienza a
operar, normalmente al inicio de una sesin del sistema.
Se destruye cuando el mdulo finaliza.
Las nombraremos con el prefijo CN.
CN

Cuntos tipos de controladoras podemos


definir?
Ejemplos
De clases controladoras de caso de uso (CCU).
CCU-ActualizarFacturas.
CCU-CerrarCaja.
CCU-MatricularAlumno.

De clases controladora de negocio (CN).


CN-Ventas.
CN-RecursosHumanos.
CN-Seguridad.

Qu es una clase entidad?


Una clase entity, representa una unidad de
informacin.
Modela tanto los datos
comportamiento asociado.

como

el

Generalmente es persistente durante todo


el sistema.
Los objetos de las clases entidad pueden
ser usados por ms de un caso de uso.
En un caso de uso se puede crear un objeto
nuevo de la clase
En otro caso de uso puede consultarse sus
datos.

Debe dar una idea clara de la unidad de


informacin que representa.

Fuente: Imgenes
prediseadas de office.com

Qu es una clase entidad?


Ejemplos
Cliente
Factura
FacturaDetalle
Producto
Pas

Cliente

Cmo identificar las clases de anlisis?


A partir del modelo de negocio
Examinando las entidades
del negocio del modelo de
anlisis de negocio
Se pueden descubrir : clases
frontera y entidades

Examinando los procesos se


pueden encontrar los
mdulos del sistema
As se encuentran las
posibles: controladoras de
negocio
Fuente: RUP-Going from Business Models to Systems

Cmo identificar las clases de anlisis?


A partir de las especificaciones
de los casos de uso.
Consiste en examinar las
especificaciones de los casos de
uso para descubrir los objetos y
clases del sistema bajo estudio.
Se pone nfasis en el estudio
de los cursos o flujos de
eventos.
En este proceso se pueden
descubrir todas las clases de
anlisis comprometidas con un
caso de uso en particular

Cmo identificar clases frontera?


Sugerencias
Identificar una clase interfaz o frontera por cada
conjunto de dilogos que necesite el actor en cada caso
de uso.
Pueden identificarse ms de una clase interfaz o
frontera por caso de uso del sistema.
Depende de cmo se han organizado las pantallas o
formularios de dilogo.

Cmo identificar clases controladoras?


Sugerencias
Identificar una clase controladora de caso de uso (CCU)
por cada caso de uso del sistema.
El nombre debe ser igual al caso de uso que representa.

Identificar una clase controladora de negocio (CN) por


mdulo.
El nombre debe ser igual al mdulo que representa.

Cmo identificar clases entidad?


Sugerencias.
Identificar una clase entidad por cada sustantivo con
identidad propia de datos que se utilice en el caso de uso.
De preferencia usar el sustantivo en singular.

El Glosario de trminos ayuda en ocasiones a encontrar


algunas clases entidad.
Los sustantivos encontrados en los casos de uso pueden ser:
Objetos
Descripcin del estado de un objeto.
Entidades externas y/o actores.
Nada de lo descrito anteriormente.

Cmo identificar clases entidad?


Este mtodo puede
identificar objetos sin
importancia, en
consecuencia:
La lista de nombres debe
filtrarse.

Fuente: Imgenes
prediseadas de office.com

Advertencia: Cualquier
nombre puede verbalizarse
y viceversa.

Cmo identificar clases entidad?


Al filtrar sustantivos nos
podemos dar cuenta de
que:
Muchos trminos se
refieren al mismo
objeto.
Un trmino puede
referirse a ms de un
objeto.
El lenguaje natural es
muy ambiguo.

Fuente: Imgenes
prediseadas de office.com

Ejemplo
Un requerimiento se ha expresado como:
Se deben tomar en cuenta las condiciones legales
vigentes al hacer un pago

Si slo consideramos los nombres sin estudiarlos


qu pasara?
Tendramos un conjunto de clases innecesarias.

En el caso del ejemplo la nica clase entidad es:


Pago.
Nota: Cada nombre debe ser considerado dentro
del contexto del problema. No singularmente.

Qu es un diagrama de clases de anlisis?


Es una herramienta de UML.
Muestra la estructura esttica del sistema.
Modela la relacin entre las clases de anlisis del
sistema.
Se puede construir un diagrama de clases de
anlisis por caso de uso del sistema y/o a nivel de
mdulo.

Cmo contruirlo?

El diagrama de clases de anlisis se construye con ciertas reglas.

Opcionalmente se representa al actor comunicndose unidireccionalmente con las CF

Las CF se comunican bidireccionalmente con las CCU

Las CCU se comunican unidireccionalmente con las CN

Las CN se comunican unidireccionalmente con las CE

Cuando hay casos de uso relacionados la CCU del caso de uso principal se comunica
unidireccionalmente con el caso de uso dependiente (extendido o incluido)

CF Pagos

CCU Realizar Pago

Cajero

CCU Actualizar Cuentas

CN Caja

Pago

Ejemplo
En este ejemplo encontraremos las clases de anlisis
a partir de la especificacin del caso de uso
Registrar Matricula que tiene una relacin de
extensin con Consultar Curso

Todas las operaciones de la matrcula se realizan en


el mdulo Matrcula
Toda la informacin del curso se actualiza en el
mdulo Cursos

CU-Registrar Matricula
Flujo bsico
1.
2.

El estudiante selecciona la opcin de men Matricula de alumnos.


El sistema muestra un formulario de Registro de matrcula con los datos del
estudiante y el semestre.
3. El estudiante indica agregar un curso.
4. El sistema muestra el formulario Lista de cursos disponibles con la lista de cursos
obligatorios y electivos habilitados para el estudiante con su cupo disponible.
5. El estudiante selecciona los cursos obligatorios y electivos e indica grabar.
6. El sistema valida si los cursos tienen cupo e incorpora al alumno al registro de
alumnos de los cursos elegidos y muestra nuevamente el formulario de Registro de
matrcula con la lista de los cursos matriculados.
7. El estudiante indica que ha terminado el registro si todo est conforme.
8. El sistema graba el registro de matricula y genera la boleta de pago.
9. El estudiante indica imprimir boleta.
10. El sistema enva la informacin de pagos al sistema de pagos.

CU-Registrar Matricula
Flujo alternativo
Si en el punto 5 del flujo bsico
1. El estudiante decide consultar la informacin del curso.
2. El sistema deriva el control al caso de uso extendido: Consultar Curso
3. Al cerrar la consulta, el control vuelve al punto 5 del flujo bsico.

Encontrando clases entidad


Relacin de sustantivos encontrados:
Estudiante, cdigo de estudiante
Sistema
Semestre
Nueva matrcula
Lista de cursos obligatorios y electivos
disponibles
Cursos obligatorios y electivos

Prerrequisitos
Record acadmico
Registro de alumnos por Curso
Registro de Matrcula
Boleta de pago
Informacin de matrcula
Sistema de Pagos

Qu nombres
deben filtrarse?

No olvides que
Los objetos entidad se agrupan en clases.
Basados en una estructura y comportamiento similares.

Las clases entidad se refinan estudiando otros


escenarios.

Clases entidad candidatas


Clase

Descripcin

Estudiante

Datos de todos y cada uno de los


estudiantes
Informacin de los diferentes semestres
acadmicos.
Datos de todas y cada uno de las carreras
ofrecidas por la Universidad.
Inscripcin de un estudiante en un
semestre.
Relacin de los cursos seleccionados en una
matrcula

Semestre
Carrera
Matricula
MatriculaDetalle

Clases entidad candidatas


Clase
Curso
Horario

Descripcin

Datos de todos y cada uno de los cursos.


Lista de todos los cursos ofrecidos en un
semestre. Puede haber ms de un horario por
curso.
Prerrequisito
Un curso necesario para llevar otro curso.
RecordAcademico Lista de los cursos previamente llevados por
un estudiante con informacin de su nota
final.
InformacionPago Lista de todos los pagos de acuerdo a la
categora del alumno.

Encontrando clases interfaz o frontera


Examinar cada par actor / escenario y crear las
clases frontera obvias.
En el ejemplo del caso de uso Registrar Matrcula:
Una CF-Registro de Matricula, se requiere para que el
estudiante consulte los cursos en que se ha
matriculado, adicione nuevos e imprima la boleta de
pago.
Una CF-Lista de cursos, se necesita para mostrar los
cursos habilitados para el estudiante en donde podr
seleccionar y consultar la informacin de cada curso.

No olvides que
Las clases frontera tambin se crean para la
comunicacin sistema-a-sistema.
Se adicionan para
comunicacin elegido.

describir

el

protocolo

de

Para el caso de uso Registrar Matrcula se


necesitan adems:
Una CF-Sistema de Pago que es un script que permite la
comunicacin con el Sistema de Pagos de la
Universidad.
Una CF-Boleta de Pago que genera la boleta de pago
lista para ser impresa.

Encontrando clases controladoras


En este nivel de anlisis debe adicionarse una
controladora por caso de uso.
Este caso de uso tiene dos controladoras la del caso de
uso principal Registrar Matrcula y la del caso de uso
extendido Consultar Cursos.

Las clases controladoras de mdulo estn


vinculadas a un conjunto de clases entidad
ntimamente relacionadas
Este caso de uso se realiza en el mdulo de Matrcula y
requiere de la informacin de los cursos que se
encuentran en el mdulo de Cursos.

No olvides que

Este estudio es inicial.


A medida que se desarrollan mas casos de
uso y sus escenarios se pueden encontrar
ms controladoras y entidades.

Clases controladoras candidatas


Se adiciona una clase controladora de caso de uso
CCU-Registrar Matricula que:
Recibe informacin de las Interfaces.
Para cada curso disponible (horario) seleccionado:
Solicita sus prerrequisitos y si tiene o no cupo.
Sabe que hacer cuando uno de los cursos seleccionados por el
estudiante ya no tiene cupo.

Se adiciona una clase controladora de caso de uso


CCU-Consultar Cursos que:
Permite la consulta de la informacin de cada curso

Clases controladoras candidatas


Se adiciona una clase controladora de negocio CNMatricula que:
Verifica en el Record acadmico del estudiante si este
aprob los prerrequisitos del curso de su eleccin.
Verifica si el curso est con cupo.
Crea los objetos de Matricula y MatriculaDetalle
Asocia el Pago a la Matricula.

Se adiciona una clase controladora de negocio CNCursos que:


Conoce la informacin de los cursos y sus
prerrequisitos.

Diagrama de clases de anlisis para el caso de


uso Registrar Matrcula

Paquetes
Un paquete es un mecanismo de propsito general para
organizar elementos en grupos.
Como el nmero de clases crece a medida que se van
analizando ms y ms escenarios de los distintos CU, es
conveniente:
Que las clases se agrupen en paquetes.
Proporcionar la habilidad de organizar el modelo en desarrollo.

Las clases las agruparemos en paquetes de acuerdo a su


naturaleza.

Paquetes en un Sistema de Matrcula


Tomando como ejemplo el caso Registrar
Matrcula y la agrupacin de clases de acuerdo a
su tipo, podemos reconocer cuatro paquetes:
Entidades de la Universidad
Control de Eventos
Reglas de Negocio
Interfaces

Paquetes en un Sistema de Matrcula


Hasta el momento:
Entidades de la Universidad
Matricula, MatriculaDetalle, etc.

Control de Eventos
CCU-Registrar Matricula y CCU-Consultar Cursos

Reglas del Negocio:


CN-Matrcula y CN-Cursos

Interfaces:
CF-RegistroMatricula, CF-ListaCurso, CF-SistemaPago, y CF-BoletaPago.

Diagrama de Paquetes

Interfaces

Control de
Eventos

Reglas de Negocio

Entidades de la
Universidad

Clases por Paquete

Interfaces

CF-Registro Matricula

CF-Lista Cursos

CF-Sistema Pago

CF-Boleta Pago

Clases por Paquete

CCU-Registrar Matricula

Control de
Eventos

CCU-Consultar Cursos

Clases por Paquete

CN-Matricula

Reglas del
Negocio

CN-Cursos

Entidades
de la
Universidad

Clases por Paquete


0..1
1

0..*

Estudiante
se registra

agrupa

ensea

Carrera
Es anotado

dispone

0..*

0..*

0..*

conlleva
1

Matricula
inscribe

requiere

Curso

Record
Academico

0..*

1..*

ofrece

esta disponible

se compone
1..*

0..*
0..*

Semestre

0..*

figura

Matricula
Detalle

Informacion
Pago

1 0..*

Horario

Prerrequisito
es un

No olvides que

Las clases de anlisis proporcionan una vista


conceptual del sistema.

Se usan para dimensionarlo y bosquejar la


arquitectura.

No necesariamente se implementarn en el
diseo.

Ejercicios
Revisa el caso Casual Shoes:
Identifica las clases de anlisis.
Efecta los diagramas de clases de anlisis de
los casos de uso implicados

Solucin
Revisa la solucin del caso Casual Shoes:
Revisa como se han identificado las clases en el
texto.
Revisa los tres diagramas de clases de anlisis
creado.

Conclusiones
El modelo de anlisis proporciona una idea del
nmero de clases necesarias para repartir la
inteligencia del sistema.
Esta primera separacin presentacin-controldatos, proporciona una idea de divisin de capas
lgicas.
En el modelo de diseo estos criterios de
divisin dependern de la eleccin del lenguaje
de programacin, patrones de diseo y empleo de
buenas prcticas, entre otros.

Mtodos giles versus MDD

El modelo conceptual

El modelo conceptual lo revisaste en el curso de


Ingeniera de requerimientos.

Es un artefacto importante en el modelo de


anlisis porque representa la informacin
persistente del sistema organizada en clases.

Vamos a revisar:

Qu es el modelo conceptual o de dominio?

Cmo encontrar clases entidad sino tenemos


especificaciones de casos de uso?

Atributos de clases

Relaciones entre clases

Qu es el modelo conceptual o de dominio?


Es una representacin visual de clases
conceptuales u objetos reales en el dominio de
la informacin que se requiere para un sistema.
Muestra los conceptos de informacin del
sistema: sus partes y relaciones.
Es una representacin de las relaciones entre
clases entidad.
Se utiliza para confeccionarlo, un diagrama de
clases del UML simplificado.

Qu es una clase conceptual o entidad?


Es la descripcin de un grupo de objetos con:
Una semntica en comn (nombre):
Propiedades en comn (atributos).
Forma especfica de relacionarse (asociaciones).
De forma opcional pueden representarse operaciones
(que no se van a implementar realmente).

Nombre

Cmo encontrar clases entidad?


Hay varias tcnicas
Identificacin y filtro de sustantivos en las
especificaciones de casos de uso.
Esto ya lo vimos en el tema anterior cuando estuvimos
inspeccionando especificaciones de casos de uso para
encontrar clases de anlisis.

Reuso o modificacin de modelos existentes.


Uso de listas de categoras

Tcnicas para encontrar clases


Reuso o modificacin de modelos existentes.
Es la forma ms fcil.
Existen modelos de dominio publicados de inventarios,
finanzas, salud, educativos, etc.
Se pueden usar modelos de datos que se pueden
capturar por ingeniera reversa y transformar en
modelos conceptuales.

Tcnicas para encontrar clases


Uso de listas de categoras
Esta tcnica consiste en encontrar clases a partir de unas categoras
predefinidas como se muestra en la tabla siguiente, para un sistema de viajes:

Categora

Ejemplos

Transacciones comerciales

Venta, Pago, Reservacin

Detalle de transacciones

VentasDetalle, ReservaDetalle

Productos o servicios

Vuelo, Asiento, Souvenir

Roles

Counter, Cliente, Pasajero, Piloto

Lugares

Aeropuerto, CiudadArribo

Eventos

Vuelo, Viaje

Objetos fsicos

Asiento, Avin, Boleto

Descripciones

Ruta, HorarioViajes

Contenedores

Avin, Tienda

Cmo se representan las clases?


Se representa en tres partes.
Parte 1: Se coloca el nombre de la clase.
Parte 2: Se colocan los atributos.
Parte 3: Se especifican las operaciones (opcional).

Modo de presentacin: cono

Modo de presentacin: Decoracin

Ejemplo
Estas clases pertenecen a un sistema de ventas
elemental
Factura

FacturaDetalle

Pais

Cliente

Producto

Qu son los atributos de una clase?


Los atributos representan:
Caractersticas estticas de la clase, cuyos valores
pueden ser modificables.
Datos almacenados y actualizados por la clase.

El conjunto de los atributos y sus valores


establecen la diferencia entre los objetos.

Cmo se documentan los atributos?


Por cada atributo debe definirse:
Visibilidad.
Nombre.
Tipo de dato.
Valor inicial.

La sintaxis es la siguiente:
visibilidad nombre: tipoDato = valorInicial

Cmo se documentan los atributos?


Visibilidad: Establece la proporcin en que otras clases
pueden utilizar el atributo de la clase.
Descripcin

Smbolo
UML

Privado

El atributo es visible solo para el interior de


la clase. Solo sus mtodos pueden
accederlo.

Protegido

El atributo es visible para el interior de la


clase y sus subclases.

Pblico

El atributo es visible para el interior y


exterior de la clase.

Paquete

El atributo es visible para el interior y para


las clases de un mismo paquete.

Implementacin

El atributo es visible solo para el interior de


la clase, no para los objetos de la clase.

Visibilidad

#
+
~

Smbolo
SW

Cmo se documentan los atributos?


El icono al comienzo del nombre del atributo seala
el tipo de visibilidad.

Cmo se documentan los atributos?


Nombre: Es el nombre del atributo
Es preciso usar sustantivos claros y precisos.
Debe dar una clara idea de la unidad de informacin que
representa.
Utilizar letra minscula y de forma continua en su redaccin.
Para nombres compuestos: el primer sustantivo empieza con
minscula y los subsiguientes empiezan con mayscula.
Deben ser escritas de forma continua.
Ejemplos: nombreCliente, precioProducto

Tipo de dato:
atributo.

Es la estructura fsica o primitiva del

Ejemplos: String, Integer, Date

Valor inicial:
defecto.

Es el valor que el atributo adquiere por

Ejemplos de atributos de una clase

Errores comunes
Los atributos deben definirse en correspondencia
con los necesarios para representar los objetos del
mundo real y no son componentes de software.
No representan:
Conexiones a travs de llaves forneas.
Estados
Se debe considerar si los atributos de nombre tipo, o
categora son atributos o deben ser modelados en
otras clases y relaciones especiales.

Errores Comunes
Atributos que son en verdad clases: No utilizar
atributos complejos, que en verdad son objetos.
Utilizar asociaciones.
Vuelo
destino

Destino es complejo, modela


como clase sus posibles valores
y establece la relacin entre las
clases Vuelo y Ciudad

Vuelo

Ciudad

fecha

nombre

Errores comunes
Llaves forneas: No utilices atributos que sean llaves
forneas. Utiliza asociaciones

Vuelo
idPiloto

idPiloto es una llave


fornea, modela una
asociacin con la
clase Piloto

Errores comunes
Atributos que representan especializaciones o
formas de agrupar o diferencias objetos: Los
atributos Tipo o Categora pueden ser clases y no
atributos.

Vuelo
tipoVuelo

Existe otra forma de


modelarlos.
Pueden ser objetos
con comportamientos
distintos

Errores comunes
Estado: El atributo estado se usa ms en bases de datos.
En objetos y clases el estado se explica por los valores de
los atributos y las relaciones entre clases.
Mas adelante aprenderemos a realizar diagramas de mquinas
de estado (DME)que explican los cambios de situacin de los
objetos de una clase.

Vuelo
estado

Los estados de los


objetos los
estudiaremos en el
DME

Cules son las relaciones posibles entre


clases?
Identificaremos:
Asociaciones
Autoasociaciones
Clases asociativas
Agregaciones y composiciones
Herencia

Asociacin
Es la relacin ms comn.
Una asociacin entre dos clases significa:
Que existe algn vnculo o conexin significativa que debe permanecer
de manera persistente.
Que las clases participantes son normalmente independientes.

Se representa una asociacin bidireccional, a travs de una


lnea continua.
solicita
1
Cliente

0..n
PedidoVenta

Cmo se documenta una relacin?


Toda relacin tiene elementos de documentacin
que la definen. Estos son:
Nombre.
Multiplicidad.
Navegabilidad.
Tipo.
solicita
1
Cliente

0..n
PedidoVenta

Cmo se documenta una relacin?


Nombre
Frase verbal precisa que
refleja el propsito de la
relacin.

solicita
1
Cliente

0..n
PedidoVenta

Describe la manera en
que ocurre la asociacin.
No es un
obligatorio.

elemento

Se utiliza solo cuando


mejora la comprensin
de la asociacin.

Se lee: El cliente
solicita Pedidos
de Venta

Cmo se documenta una relacin?


Multiplicidad o cardinalidad

Especifica el nmero de objetos de las


clases que participan de la asociacin.

Modela la cantidad de objetos de un


extremo de la asociacin que se asocian a
1
un objeto del otro durante el tiempo de
Cliente
vida del sistema.

Se representa
numeracin.

travs

de

una

Se coloca en cada extremo de la


asociacin.

solicita
0..n
PedidoVenta

Cmo se documenta una relacin?


Multiplicidad o cardinalidad
Para establecerla adecuadamente
es til preguntar:
solicita

Cuntos objetos PedidoVenta


estn asociados a un Cliente?
0, ninguno, o n, muchos

1
Cliente

0..n
PedidoVenta

Cmo se documenta una relacin?


Multiplicidad o cardinalidad
Para establecerla adecuadamente
es til preguntar:
solicita

Cuntos objetos Cliente estn


asociados a un Pedido Venta?
Exactamente 1

1
Cliente

0..n
PedidoVenta

Cmo se documenta una relacin?


Tipos de multiplicidad o cardinalidad
Tipo
0..1

Descripcin
Un objeto de una clase se asocia a ninguno o un objeto de la otra
clase.

0..n / 0..*

Un objeto de una clase se asocia a ninguno, uno o ms de un objeto


de la otra clase. N o * representan un nmero indeterminado.

0..x

Un objeto de una clase se asocia a ninguno, uno o hasta un mximo


de x objetos de la otra clase.
Un objeto de una clase se asocia a nicamente un objeto de la otra
clase.
Un objeto de una clase se asocia a uno como mnimo o ms de un
objeto de la otra clase.
Un objeto de una clase se asocia a uno como mnimo o hasta un
mximo de x objetos de la otra clase.
Un objeto de una clase se asocia a x exactos objetos de la otra
clase.

1
1..n / 1..*
1..x
x

Cmo se documenta una relacin?


Navegabilidad
Define el sentido u orientacin de la comunicacin o
intercambio entre las clases.
Las asociaciones son unidireccionales o bidireccionales.
Define el sentido u orientacin de la comunicacin o
intercambio entre las clases.
Se representa a travs de una lnea continua con una
flecha en el extremo que indique la direccin deseada solo
cuando es unidireccional.

Cmo se documenta una relacin?


Navegabilidad
Qu significa este ejemplo?
Significa que:
Para acceder a un pedido hay que hacerlo a travs del cliente.
El pedido no conoce a qu cliente pertenece.

hace
1
Cliente

0..n
Pedido

Cmo se documenta una relacin?


Navegabilidad
Qu significa en este ejemplo?
Significa que:
El pedido conoce a qu cliente pertenece
Para localizar los pedidos de un cliente hay que hacerlo a travs de
la coleccin de pedidos

hace
1

Cliente

0..n

Pedido

Cmo se documenta una relacin?


Navegabilidad
Qu significa en este ejemplo?
Significa que:
El pedido conoce a qu cliente pertenece y viceversa.
Para acceder a un pedido hay que hacerlo a travs del cliente y
viceversa.

hace
1
Cliente

0..n
Pedido

Cmo se documenta una relacin?


Tipo
Define la manera en que ocurre el intercambio entre las
clases que intervienen en la asociacin.
Existen 5 tipos de asociaciones.
Asociacin simple.
Auto asociacin.

Asociacin de clases.
Agregacin (Agregacin por Referencia).
Auto agregacin.

Composicin (Agregacin por Valor).


Generalizacin/Especializacin

Asociacin simple
Ya la habamos revisado anteriormente
Representa una relacin o conexin semntica simple entre dos
clases.
Se representa a travs de una flecha a la lnea continua de la
asociacin en el extremo que indique la direccin solo si la
navegabilidad es unidireccional.
hace
1
Cliente

0..n
Pedido

Asociacin Simple
Ejemplo

Auto asociacin
Representa una relacin o conexin semntica simple a una
misma clase.
Significa que una instancia de la clase se asocia con otras de
la misma clase.

Empleado
0..1

0..n

Est subordinado a

Se lee:
Un empleado puede tener un jefe o no tener ninguno.
Un empleado puede tener muchos empleados subordinados o ninguno.

Clase Asociativa
La clase asociativa nace de la asociacin de clases
que conlleva informacin adicional

En que clase deberan estar los siguientes atributos?


regala
temasEscritos

Clase Asociativa
Qu significara que los atributos se coloquen en el Libro?

Significara que los autores ganan por igual y que todos escriben sobre todos los temas
del libro. Lo cual no es cierto.

Clase Asociativa
Qu significaran los atributos en el Autor?

Significara que un autor gana los mismo en cualquier libro que escriba y
que en todos los libros escribe sobre los mismos temas

Clase Asociativa
Se da cuando la asociacin de clases tiene informacin
Se crea una tercera clase: clase asociativa.
Esta clases tienen igualmente: caractersticas
comportamiento (operaciones) y relaciones.

(atributos),

Los objetos de esta clase existen despus de que los objetos


de las clases origen se asocien y se active la asociacin simple
respectiva.
Se representa a travs de una lnea discontinua que parte de
la asociacin simple hasta la nueva clase

Ejemplo de Clase asociativa


Una clase
asociativa
depende por
igual de las
dos clases
que le
dieron
origen
En el
ejemplo,
LibroXAutor
depende
tanto de
Libro como
de Autor

Agregacin
Las siguientes clases
Son independientes o tienen algo en comn?

Computadora

Monitor

DiscoDuro

CPU

Parlantes

Teclado

RAM UnidadCD TarjetaVideo TarjetaSonido

Raton

Boton

Bola

Agregacin
Las agregaciones son relaciones de contenido en
donde una clase agrupa a los objetos de otra
Existen dos tipos:
Agregacin simple o por referencia
Composicin o agregacin por valor

Agregacin
Agregacin simple o por referencia
Es una relacin que implica que una clase contiene a o agrupa a
otras clases independientes.
Es una asociacin de todo / parte.
Cuando deja de existir la clase todo no tiene que dejar de existir las
clases parte de la agregacin.
El tiempo de vida de la clase todo no define el tiempo de vida de
las clases parte.
Es una relacin dbil entre las clases todo y partes.
Se representa a travs de un rombo transparente en el extremo de la
clase todo.

Ejemplo de agregacin

Computadora

CPU

Monitor

DiscoDuro

RAM

UnidadCD

Parlantes

TarjetaVideo

Teclado

TarjetaSonido

Raton

Boton

Bola

Si una
computadora
se malogra
sus partes
pueden ser
cambiadas a
otro
ordenador.

Agregacin
Auto Agregacin
Representa una asociacin de agregacin.
Significa que un objeto de una clase se forma de otros objetos de
la misma clase.
La clase todo y la clase parte son la misma.
0..n
Producto

0..1

est formado por

Por ejemplo, un producto six-pack tiene un precio pero los productos que
forman parte del paquete tambin pueden venderse de forma individual

Composicin
Agregacin por valor o composicin
Es una relacin que implica en su significado que una clase contiene
totalmente a otras clases independientes.
Es una asociacin de todo / parte.
Es una agregacin fuerte, en la que se cumple lo siguiente:

La destruccin de la clase todo implica la destruccin de la clase parte.


El tiempo de vida de la clase todo define el tiempo de vida de las clases parte.

Se representa a travs de un rombo relleno en el extremo de la clase


todo.

Ejemplo de composicin

Persona

Cabeza

Brazo

Ojo

Boca

Nariz

Cuerpo

Pierna

Oreja

Pelo

Los rganos
de una
persona
nacen y
mueren con
ella.

Composicin
Un ejemplo tpico de
composicin son las
clases que modelan
transacciones y que
constan de cabecera y
detalle como la clase
Factura y FacturaDetalle

Herencia
Qu tienen en comn stas dos clases?

Tienen atributos comunes: codPersona, tipoDocumento, numDocumento, direccin y telfono

Herencia
La herencia modela la necesidad de establecer una jerarqua
entre clases.
Identifica conceptos que se caracterizan por:
Tener comportamiento general. Este concepto ser la superclase.
Tener comportamiento especfico. Este concepto ser la subclase.

Se representa a travs de una lnea continua con un tringulo


transparente que va desde la subclase hacia la superclase.
Se encuentra en aquellas clases que tienen ciertos atributos y
operaciones en comn.
Se crea una clase nueva, la superclase, que asume dicho
comportamiento comn.

Herencia
En este ejemplo tanto
Persona Natural como
Persona Jurdica son
subclases o
especializaciones de la
superclase o clase
generalizada Persona

Ejercicio de herencia
Tomando en cuenta
que las clases deben
ser modeladas de
acuerdo a un mismo
nivel de abstraccin
Cul es el error en
la jerarqua de
herencias de la
figura?
Ford

Vehiculo

Terrestre

Camion

Areo

Avion

Helicoptero

Solucin
Ford es una marca y
no un tipo de
vehculo, que es el
nivel de abstraccin
de la figura.
En lugar de Ford
debe ir automvil
Ford

Vehiculo

Terrestre

Camion

Areo

Avion

Helicoptero

Herencia versus Agregacin


Usualmente se confunden.....
La herencia representa una relacin es un.
La agregacin representa la relacin tiene a.

Esta palabras clave ayudan a aclarar la relacin

Herencia versus Agregacin

Window

Scrollbar

WindowScrollbar

Una WindowScrollbar es una Window


Una WindowScrollbar tiene una
Scrollbar
Que relaciones deben usarse?

Ejercicio de Herencia versus Agregacin

Para este diagrama se sabe que:


Window

Scrollbar

WindowScrollbar

Una WindowScrollbar es una


Window
Una WindowScrollbar tiene una
Scrollbar
Es correcta la forma como se
han diagramado las relaciones?

Solucin

Window

Scrollbar

WindowScrollbar

Window

WindowScrollbar

Scrollbar
1

La correcta forma de establecer las relaciones es:


Una WindowScrollbar es una especializacin de Window
Un Scrollbar est agregado a una WindowScrollbar

Metamorfosis y herencia
Qu es una metamorfosis?
Es un cambio de forma, estructura o funcin
Cualquier cambio marcado
apariencia o condicin.

como

Problema:
Cmo se puede modelar?

en

carcter,

Ejemplo de metamorfosis y herencia


En la Universidad hay estudiantes a tiempo
completo y a tiempo parcial.
Los estudiantes a tiempo completo tienen un Id y una
fecha de graduacin esperada, pero un estudiante a
tiempo parcial no.
Los estudiantes a tiempo parcial pueden tomar un
mximo de 3 cursos. Los a tiempo completo no tienen
un mximo de cursos.

Metamorfosis y herencia
EstudiantePartTime

EstudianteFullTime

nombre

nombre

direccion

direccion

nroDeCursos

idEstudiante
fechaGraduacion

Cul sera la forma de mejorar el modelo?

Metamorfosis y herencia
Estudiante
nombre
direccion

EstudiantePartTime

EstudianteFullTime

nroDeCursos

idEstudiante
fechaGraduacion

La primera
alternativa que
seguramente
pensaste es
modelar una
herenciapero..
Qu pasa si un
estudiante a
tiempo parcial se
convierte en un
estudiante a
tiempo
completo?

Metamorfosis y herencia
Es muy difcil cambiar la clase de un objeto.
Una mejor tcnica de modelado es:
Situar la estructura y comportamiento que cambia
dentro de otra clase.

Metamorfosis y herencia
Modelar una
agregacin o una
asociacin es mejor.

Estudiante
nombre
direccion

0,1

0,1

ClasificaPartTime

ClasificaFullTime

nroDeCursos

iDEstudiante
fechaGraduacion

Un estudiante no
tiene que
eliminarse si
cambia de
clasificacin.
S se puede eliminar
la clasificacin y la
informacin que
tena y crear otra.

Conclusiones
El modelo conceptual permite estructurar las
clases entidad (persistentes) con sus atributos y
relaciones permanentes.
Es conveniente definir adecuadamente los
atributos y relaciones de acuerdo a la naturaleza
de las clases.

Bibliografa
Para Tcnicas giles vs. MDD
CABOT, Jordi: MDD - Desarrollo de software dirigido por modelos que funciona
http://es.slideshare.net/jcabot/mdd-desarrollo-de-software-dirigido-por-modelos-quefunciona-de-verdad
Para el Modelo de Anlisis:
3-Papers-1
Para el Modelo Conceptual:
3-Papers-2
AMBLER, Scott y asociados: UML 2 Class Diagrams
http://www.agilemodeling.com/artifacts/classDiagram.htm
Sparx Systems: UML 2 Class Diagram
http://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_classdiagram.html

Preguntas
Si, luego del estudio de este
material, tienes dudas sobre
alguno de los temas, ingresa al
Aula Virtual y participa en el foro
de dudas acadmicas de la unidad.

Contina con las actividades


propuestas en la sesin.

Material producido para el curso de Arquitectura de Software


Autor: Mara del Pilar Stronguil Leturia
Diseo y produccin: TICE
ARQUITECTURA DE SOFTWARE- EPE
COPYRIGHT UPC 2014

Você também pode gostar