Escolar Documentos
Profissional Documentos
Cultura Documentos
Semana 2 - Sesin 3
Temario
Mtodos giles versus MDD
Modelo de anlisis
Modelo conceptual
Vs.
MDD
Model Driven Development
Son realmente
incompatibles?
Fuente: http://www.in2.es/training
con
el
producto
despus
que
se
ha
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.
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
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
Fuente: http://www.cycoda.com/html/prog-rup.html
Modelo de Anlisis
las
Fuente: Imgenes
prediseadas de office.com
Fuente: Imgenes
prediseadas de office.com
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/
Fuente:
http://www.que.es/madrid/fot
os/director-orquesta-pianistaargentino-daniel-f78071.html
CCU
como
el
Fuente: Imgenes
prediseadas de office.com
Cliente
Fuente: Imgenes
prediseadas de office.com
Advertencia: Cualquier
nombre puede verbalizarse
y viceversa.
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
Cmo contruirlo?
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
Cajero
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
CU-Registrar Matricula
Flujo bsico
1.
2.
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.
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.
Descripcin
Estudiante
Semestre
Carrera
Matricula
MatriculaDetalle
Descripcin
No olvides que
Las clases frontera tambin se crean para la
comunicacin sistema-a-sistema.
Se adicionan para
comunicacin elegido.
describir
el
protocolo
de
No olvides que
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.
Control de Eventos
CCU-Registrar Matricula y CCU-Consultar 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
Interfaces
CF-Registro Matricula
CF-Lista Cursos
CF-Sistema Pago
CF-Boleta Pago
CCU-Registrar Matricula
Control de
Eventos
CCU-Consultar Cursos
CN-Matricula
Reglas del
Negocio
CN-Cursos
Entidades
de la
Universidad
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
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.
El modelo conceptual
Vamos a revisar:
Atributos de clases
Nombre
Categora
Ejemplos
Transacciones comerciales
Detalle de transacciones
VentasDetalle, ReservaDetalle
Productos o servicios
Roles
Lugares
Aeropuerto, CiudadArribo
Eventos
Vuelo, Viaje
Objetos fsicos
Descripciones
Ruta, HorarioViajes
Contenedores
Avin, Tienda
Ejemplo
Estas clases pertenecen a un sistema de ventas
elemental
Factura
FacturaDetalle
Pais
Cliente
Producto
La sintaxis es la siguiente:
visibilidad nombre: tipoDato = valorInicial
Smbolo
UML
Privado
Protegido
Pblico
Paquete
Implementacin
Visibilidad
#
+
~
Smbolo
SW
Tipo de dato:
atributo.
Valor inicial:
defecto.
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
Vuelo
Ciudad
fecha
nombre
Errores comunes
Llaves forneas: No utilices atributos que sean llaves
forneas. Utiliza asociaciones
Vuelo
idPiloto
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
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
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.
0..n
PedidoVenta
0..n
PedidoVenta
solicita
1
Cliente
0..n
PedidoVenta
Describe la manera en
que ocurre la asociacin.
No es un
obligatorio.
elemento
Se lee: El cliente
solicita Pedidos
de Venta
Se representa
numeracin.
travs
de
una
solicita
0..n
PedidoVenta
1
Cliente
0..n
PedidoVenta
1
Cliente
0..n
PedidoVenta
Descripcin
Un objeto de una clase se asocia a ninguno o un objeto de la otra
clase.
0..n / 0..*
0..x
1
1..n / 1..*
1..x
x
hace
1
Cliente
0..n
Pedido
hace
1
Cliente
0..n
Pedido
hace
1
Cliente
0..n
Pedido
Asociacin de clases.
Agregacin (Agregacin por Referencia).
Auto agregacin.
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
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),
Agregacin
Las siguientes clases
Son independientes o tienen algo en comn?
Computadora
Monitor
DiscoDuro
CPU
Parlantes
Teclado
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
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:
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?
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.
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
Window
Scrollbar
WindowScrollbar
Scrollbar
WindowScrollbar
Solucin
Window
Scrollbar
WindowScrollbar
Window
WindowScrollbar
Scrollbar
1
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,
Metamorfosis y herencia
EstudiantePartTime
EstudianteFullTime
nombre
nombre
direccion
direccion
nroDeCursos
idEstudiante
fechaGraduacion
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.