Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modelo en cascada Anlisis (qu) Diseo (cmo) Codificacin (hacerlo) Pruebas (funciona?) Mantenimiento (no)
Ciclo evolutivo
Ciclo
{
*
Modelo en espiral Definicin de un subsistema (descomposicin funcional) Construccin de un modelo (qu clases se requieren) Anlisis de clase(s) Diseo de clase(s) Codificacin de clase(s) Prueba de clase(s)
OOD es...
Modular Escaso acoplamiento externo y fuerte cohesin interna Efectos laterales mnimos (encapsulamiento) Programacin por extensin Orientado a datos Explota la herencia (jerrquico) Reutilizacin de clases Fcil de modificar
* *
* * * * *
Encapsulamiento I
Desarrollador
Objetivo: crear clase con interfaz clara y comprensible Manera: ocultar detalles de implementacin Beneficios: cambio de estructuras/algoritmos sin afectar Coste: clases reutilizables ms caras a corto plazo
Encapsulamiento II
Usuario de las clases
Objetivo: usar la clase con el mnimo esfuerzo Manera: usar slo las operaciones provistas Beneficios: interfaz comprensible, bajo coste de programacin Coste: prdida de eficiencia de ejecucin
Descomposicin funcional
*
* *
Mdulos construidos alrededor de las operaciones Datos globales o distribuidos entre mdulos Entrada/Proceso/Salida Organigramas de trabajo y flujo de datos
OOD
Mdulos construidos alrededor de las clases Clases escasamente acopladas, sin datos globales Encapsulamiento y mensajes Diagramas jerrquicos de clases
* *
Ventajas de OOD
Mdulos con fuerte cohesin interna y escaso acoplamiento externo Facilita el funcionamiento en entorno multiprocesador Correspondencia directa con el mundo real Prototipos rpidos Herramientas y bibliotecas muy amplias Aplicaciones construidas enganchando objetos Mejor comprensin y mantenimiento
9
* *
Inconvenientes de OOD
Impactos desfavorables sobre espacio y tiempo de ejecucin Forma de pensar diferente: curva de aprendizaje lenta Herencia y ligadura dinmica dificulta las pruebas
10
* * * * *
Identificacin de atributos
*
Completo (contienen toda la informacin pertinente) General (se aplican a todos los objetos de la clase) Diferenciado (cada atributo representa un aspecto diferente de la clase)
12
Definicin de atributos
Tipos de atributos
Atmicos predefinidos (entero, real, carcter, pixel...) Atmico enumerativo (color, da de la semana...) Coleccin Composicin (referencias objetos) Comn a muchos objetos (variable de clase) Propio de un objeto (variable de objeto)
13
Identificacin de mtodos
*
Mtodo: algoritmo que utiliza y modifica los atributos de una clase Un mtodo es desencadenado por un mensaje Funcionalidad de la clase: conjunto de sus mtodos El conjunto de mtodos debe ser:
Completo (realizan toda la funcionalidad de la clase) General (se aplican a todos los objetos de la clase) Diferenciado (cada mtodo debe ser simple y realizar una sola funcin)
14
Definicin de un mtodo
Tipos de mtodos
Modificador (asigna valor a un atributo) Selector (devuelve el valor de un atributo) Aplicable a la clase (constructor) Aplicable al objeto Qu informacin necesita? (argumentos de entrada) Qu debe devolver? (resultado y argumentos de salida)
15
Qu puede salr mal durante la ejecucin de un mtodo? Qu comprobaciones debe hacer cada mtodo? Cmo interceptar y corregir las condiciones de error?
16
UML
Unified Modeling Language
Manuel Alfonseca Roberto Moriyn
17
(OOAD) (CCM) Coad-YourdonNicola (OOA,OOD) NE University (Demeter) Object Engin. (Fresco) Hewlett-Packard (Fusion) Graham (SOMA) Texas Instruments (IE\O) ICL (MTD) ParcPlace (OBA)
CASEIode
(OOSE) (OGROUP) Martin-Odell (OOIE) TASKON (OORAM) Winter (OSMOSYS) Rumbaugh (OMT) LBMS (SE/OT) Shlaer/Mellor (OOSA) CCTA (SSADM) Wirfs-Brock (RDD) Lloyds Register (Z++)
Olivetti
18
Jacobson
19
OOAD (Booch)
Asociacin
Tipos de clases
* * * * * *
Clases ordinarias Metaclases Categoras de clases Clases parametrizadas (templates) Clases instanciadas (templates) Utilidades de clase: subprogramas libres y clases estticas
21
Partes de UML
Vistas
Conjunto de diagramas 9 tipos de grafos Combinan los elementos del modelo Clases, objetos, mensajes, relaciones Comentarios, informacin, semntica, extensiones y adaptaciones
Diagramas
Mecanismos generales
22
VISTAS
Vista de Casos de Uso
Funcionalidad externa del sistema Estructura esttica y conducta dinmica del sistema Organizacin de las componentes Comunicaciones y sincronizacin Arquitectura fsica
Vista Lgica
Vista de Componentes
Vista de Concurrencia
23
Vista de componentes
Vista lgica
Vista de concurrencia
24
* *
* * *
Actor externo:
Se plasma en diagramas
Vista Lgica
Describe la funcionalidad interna Dirigida a diseadores y desarrolladores Define la estructura esttica
* *
Clases, objetos y relaciones Mensajes y funciones Persistencia y concurrencia Interfaces y estructura interna de las clases
Propiedades adicionales
26
Vista Lgica
Se plasma en diagramas
27
Vista de Componentes
Describe los mdulos del sistema y sus dependencias Dirigida a desarrolladores Se plasma en diagramas
* *
de Componentes
28
Vista de Concurrencia
Describe la divisin del sistema en procesos y procesadores Dirigida a desarrolladores e integradores Resuelve problemas de
uso eficiente de los recursos ejecucin en paralelo (hilos) comunicacin y sincronizacin de hilos dinmicos de Componentes de Despliegue
29
Se plasma en diagramas
Vista de Despliegue
Muestra la distribucin fsica del sistema (ordenadores, dispositivos) y sus conexiones Dirigida a desarrolladores, integradores y probadores Se plasma en
30
Tipos de Diagramas
De Casos de Uso Estticos
* *
Dinmicos
* *
Introducir contrasea
Control de cuentas
Usuario
Cajero Banco
Cajero automtico
32
* * * * * * * * * * *
Origen levanta receptor Suena tono de llamada Origen marca cifra (9) Para tono de llamada Origen marca cifra (1) Origen marca cifra (3) Origen marca cifra (9) Origen marca cifra (7) Origen marca cifra (4) Origen marca cifra (4) Origen marca cifra (6) Origen marca cifra (7)
* * * * * * * *
Suena alarma destino Suena seal origen Destino responde Para alarma destino Para seal origen Conexin Destino cuelga Origen cuelga
33
Ejemplo de escenario
Mientras exploran un castillo, A y B descubren lo que parece ser la entrada de un corredor secreto. Mientras A examina la puerta, B retira una vela del candelabro. En ese momento, la puerta gira 180, llevndose a A consigo. B vuelve a colocar la vela en el candelabro. La puerta gira 360 y A vuelve a quedar separado de B. B saca de nuevo la vela. La puerta gira 360, pero esta vez A le impide cerrarse con su cuerpo. B pasa la vela a A. Los dos amigos fuerzan a la puerta a retroceder 180 y de nuevo quedan separados, pero ahora B est dentro y A junto al candelabro. A pone la vela en el candelabro. Cuando la puerta empieza a girar, A saca la vela. La puerta se detiene tras girar 90. A y B penetran en el corredor para explorarlo.
34
* * * *
Identificar sucesos Construir diagramas de estados (uno/clase) Comprobar consistencia (iterar) Aadir mtodos
35
Diagramas estticos
Elementos: Objetivos:
Agregacin
(Delegacin)
Relaciones
Asociativas
37
Una clase:
Nombre Atributos
Mtodos
&:Visibilidad opcional + pblico (por omisin para mtodos) - privado (por omisin para atributos) # protegido
38
Tipos de Relaciones
Dependencia: Herencia (Generalizacin):
Superclase
Agregacin:
Agregado
m m
Subclase
Subclase
Parte
Parte
Implementacin: Multiplicidad:
Clase
interfaz
Relaciones de Asociacin
Asociacin:
m
Clase nombre
m
Clase
Asociacin restringida:
Clase
{restriccin}
Clase
Asociacin cualificada:
Clase Cualificador Clase
Clase Asociacin:
Clase
Nombre asociacin atributo enlace mtodo enlace
Clase
Multiplicidad:
Diagrama de clases:
Muestra la estructura esttica de las clases (combina clases y relaciones) Diagrama de objetos Muestra objetos concretos con la misma notacin Nombres de objetos subrayados
OTJuan:Ordenador nombre=IBM A36 memoria=64 OCJuan:Ordenador nombre=Clon1 memoria=32
Diagrama de objetos:
41
Diagramas dinmicos
Elementos:
Objetivos:
42
Descripcin de un estado
Estado: Suena la alarma Descripcin: Suena la alarma del reloj para
indicar que ha llegado la hora predeterminada
Se llega a l despus de la secuencia: set alarm (objetivo) cualquier secuencia que no incluya clear alarm hora actual = objetivo Condicin:
alarm=on && objetivo<=hora actual <= objetivo+20s && no se ha pulsado ningn botn desde objetivo
Acepta: button pushed(any) pasa al estado normal hora actual=objetivo+20 pasa a normal
43
Diagramas de Estados
Autmata finito determinista Se aplica a una sola clase o al sistema Las entradas son mensajes Un mensaje recibido es un evento
Nombre del estado Variables de estado
entry / accin de entrada exit / accin de salida do / actividad-A help / actividad-A
* * * *
Estado inicial
Mensaje (evento)
Otro estado
Alto
44
Diagramas de Secuencia
Tambin llamados trazas de eventos El tiempo crece verticalmente hacia abajo
* *
:Receptor
:Lnea
:Receptor
Origen levanta receptor Suena tono de llamada Origen marca cifra (3) Para tono de llamada Origen marca cifra (9)
...
Suena seal origen Suena alarma destino Destino responde
. . .
45
Diagrama de Colaboracin
*
Combina un diagrama de objetos y uno de secuencia Se llama tambin diagrama de flujo de eventos
1.levanta receptor 3.marca cifra 10.cuelga 5.suena alarma 8.para alarma 9.conexin 11.fin conexin
:Receptor
:Lnea
:Receptor
2.suena tono llamada 4.para tono llamada 5.suena seal origen 7.para seal 9.conexin 11.fin conexin
6.descuelga 10.cuelga
46
Diagramas de Actividad
Llamados tambin Diagramas de Flujo de Actividad Estados de Accin (se sale de ellos cuando termina su accin, sin esperar un evento)
[Puls Cancelar] Pide contrasea [Contrasea escrita] Comprueba contrasea Muestra mensaje
...
[Contrasea correcta]
[No coincide]
Muestra mensaje 47
Diagrama de Componentes
* * *
Estructura fsica del cdigo Componentes fuente, objeto o ejecutables Pueden formar paquetes
Gestor Ventanas
(win.cpp)
Gestor Ventanas
(win.obj)
Bibl. grfica
(graph.lib)
Gestor Comu.
(com.cpp)
Gestor Comu.
(com.obj)
Prog. cliente
(client.exe)
Clase main
(main.cpp)
Clase main
(main.obj)
48
Diagrama de Despliegue
Muestra la arquitectura fsica del hardware y del software del sistema Nodos: ordenadores y dispositivos Conexiones de diversos tipos
* *
ClienteA: Compaq
TCP/IP
DecNet
49
Smbolos
Clase Atributos Mtodos Objeto Atributos Estado Mtodos
Caso de Uso
Nodo Interfaz
Paquete
Nota
Componente
Dependencia Generalizacin
Asociacin Agregacin
50
ANALISIS
REQUISITOS Definidos conjuntamente por el usuario y el analista Lenguaje natural Casos de uso (I. Jacobson) De ellos se sacan los tres modelos a nivel de anlisis Modelo de Objetos Modelo Dinmico Modelo Funcional
51
Identificar objetos y clases Identificar y depurar relaciones Identificar atributos de objetos y relaciones Aadir herencia Comprobar los casos de uso (iterar) Modularizar Aadir y simplificar mtodos
52
Seleccionar nombres de los requisitos Aadir clases por conocimiento del tema Eliminar redundancias Eliminar clases irrelevantes Eliminar clases vagas Separar atributos Separar mtodos Eliminar objetos de diseo
53
* * * * * * * *
Seleccionar verbos de relacin en requisitos Aadir relaciones (conocimiento del tema) Eliminar relaciones de diseo Eliminar eventos transitorios Reducir relaciones ternarias Eliminar relaciones redundantes/derivadas Aadir relaciones olvidadas Definir la multiplicidad de cada relacin
54
* * * * * *
Distinguir objetos de atributos Distinguir atributos de objeto y de relacin El identificador de objeto es siempre un atributo implcito Eliminar atributos privados (diseo) Eliminar atributos de detalle fino Localizar atributos discordantes (dividir clase)
55
56
57
* *
Identificar valores de entrada/salida Construir diagramas de flujo de datos Describir funciones Identificar restricciones y dependencias funcionales entre objetos Definir criterios de optimizacin (iterar) Aadir mtodos (funciones de diagramas de flujo de datos)
58
* * * * *
Definicin de subsistemas Indentificacin de la concurrencia intrnseca y entre tareas Asignacin de subsistemas a procesadores y tareas (diseo de hardware) Gestin de datos (Bases de datos) Gestin de recursos globales Seleccin del control del software Condiciones lmite Establecimiento de prioridades
59
Definicin de subsistemas
* * *
60
61
Condiciones lmite
* * *
62
Batch Transformacin continua Interfaz interactiva Simulacin dinmica Tiempo real Gestin de transacciones
63
Diseo de objetos
Combinacin de los tres modelos Diseo de algoritmos Optimizacin del acceso a los datos Implementacin del control de software Ajuste de la herencia Diseo de relaciones Diseo de atributos Modularizacin
* * * * * * * *
64
Diseo de objetos
Los procesos del modelo funcional son mtodos del de objetos Los eventos del modelo dinmico son mtodos del de objetos
65
Diseo de objetos
Diseo de algoritmos
* * *
Eleccin del algoritmo ptimo Eleccin de las estructuras de datos Definicin de clases y mtodos auxiliares Decidir a quin asignar los mtodos dudosos
66
Diseo de objetos
Aadir relaciones redundantes Optimizar la eficiencia Guardar valores para su uso posterior
67