Professional Documents
Culture Documents
TACC II
Curso 2007/08
1
Motivación
z Un proyecto software no consiste sólo en programar.
3
Modelos de ciclo de vida
z ¿Qué estrategia seguimos para organizar las fases de
un proyecto?.
Qué
Planificación y Estimación.
Qué
Desventajas:
Análisis
•No permite iteraciones.
Cómo
Cómo
Diseño • Los requisitos se
congelan al principio del
proyecto.
Codificación
• No existe un proyecto
“enseñable” hasta el final
del proyecto.
Pruebas
e integración
MCV en
Cascada Operación y [retiro]
Mantenimiento 5
Modelos de Ciclo de Vida
Iteraciónde
Iteración deAA&&DD [más iteraciones]
Planificación
Planificación Análisis
Análisis Diseño
Diseño
Incremento
Incremento
Extraer
Extraer Eval.
Eval.
Planificación
Planificación Análisis
Análisis Diseño
Diseño clases
clases Prototipo
Prototipo Pruebas
Pruebas cliente
cliente
reutilizables
reutilizables
[más iteraciones]
MCV iterativo e
incremental (RUP) 6
Indice
Aeropuerto ControlTrafico
PlanVuelo
8
Paradigma de Orientación a Objetos
Características
z Diseños modulares.
z Extensibilidad.
z Fácil de modificar.
z Orientado a datos.
z Reutilización de clases.
9
Ventajas
z Módulos con fuerte cohesión interna y escaso
acoplamiento externo (sin variables globales, …)
z Facilita el funcionamiento en entorno
multiprocesador (objetos distribuidos)
z Correspondencia directa con el mundo real
z Prototipos rápidos
z Herramientas y bibliotecas muy amplias
z Aplicaciones construidas enganchando objetos
z Mejor comprensión y mantenimiento
z Apropiado para aplicaciones dirigidas por eventos.
10
Inconvenientes
z Impactos desfavorables sobre espacio y tiempo de
ejecución.
11
Análisis Orientado a Objetos
z Centrarse en el “qué”.
z Validar. 12
Análisis Orientado a Objetos
z La especificación de
requisitos describe el
Obtención
sistema, en lenguaje
de requisitos natural.
Especificación
de requisitos:
Documento
z Sirve de comunicación
entre desarrolladores y
Análisis
clientes, “contrato”.
Modelo de
Análisis:
Modelo z El modelo de análisis
Diseño del usa notación formal (ej.:
Sistema Z, Alloy) o semi-formal
Modelo del
Sistema: (ej.: UML).
Modelo
z Sirve de comunicación
entre desarrolladores. 13
Análisis Orientado a Objetos
Modelos de Análisis
Modelosbasados
Modelos basadosen en Modelosorientados
orientadosalalFlujo
Flujo
Modelos
Escenarios
Escenarios
Casosde
Casos deuso,
uso,texto.
texto. Diagramasde
Diagramas deFlujo
Flujode
deDatos
Datos
Casosde
Casos deuso,
uso,diagramas.
diagramas. Diagramasde
Diagramas deFlujo
Flujode
deControl
Control
Diagramasde
Diagramas deactividad.
actividad. Diagramasde
Diagramas deTransición
Transiciónde
deEstados
Estados
Diagramasde
Diagramas desecuencia.
secuencia. ……
……
Modelo de Análisis
Modelosbasados
Modelos basadosenen
Modelosbasados
Modelos basadosen
en
Clases
Clases Comportamiento
Comportamiento
Diagramasde
Diagramas deClases.
Clases.
Diagramasde
dePaquete.
Paquete. Diagramasde
Diagramas deEstado.
Estado.
Diagramas
ModelosCRC.
CRC. Diagramasde
Diagramas deSecuencia.
Secuencia.
Modelos
Diagramasde
deInteracción.
Interacción. ……
Diagramas
… 14
…
Análisis Orientado a Objetos
Modelos de Análisis. Basado en Escenarios.
Modelo de
Análisis: Modelo
16
Casos de uso
z Pasos:
17
Ejemplo
Caso de uso: comprar una obra maestra
Actores primarios:
Agente Galería, vendedor
Interesados y Objetivos:
• Agente: quiere obtener una recomendación lo más acertada posible del
precio máximo recomendado de manera rápida.
• Vendedor: quiere vender el cuadro a un precio razonable de manera rápida.
Precondiciones:
El agente ha entrado en la aplicación.
Garantía de éxito (post-condiciones):
Se registra la venta.
Escenario Principal de Éxito:
1. El agente introduce la descripción del cuadro.
2. El sistema busca el cuadro más parecido del mismo autor.
3. El sistema presenta el precio recomendado.
4. El agente hace una propuesta por debajo del precio recomendado, y el
vendedor acepta la oferta.
5. El agente introduce información de la venta.
Extensiones:
2a. No hay ningún cuadro parecido del mismo autor, así que el sistema
no presenta una recomendación. 18
z Tipos de clases:
{De entidad (a.k.a. de modelo o de negocio). Son clases
que persisten durante la aplicación. Representan
información relevante para la aplicación.
21
Ejemplo
Clasificación de las clases
Obra maestra
9: proporcionar
detalles del 10: transferir detalles
vendedor 11: solicitar
vendedor
actualización
z Jerarquías de generalización/especialización.
24
Método de Clase-Responsabilidad-
Colaborador (CRC)
Clase: PlanoDePlanta
Descripción:
Responsabilidad Colaborador
Define el nombre/tipo de plano de planta
25
Del Análisis al Diseño
z El modelo de análisis describe el sistema desde
el punto de vista de los actores.
z No contiene información de la estructura interna
del sistema, esto es del cómo.
z Diseño del sistema:
{Objetivos de diseño que se deben optimizar (derivados
de los requisitos no funcionales).
{Una arquitectura software: descomposición en
subsistemas, dependencias entre ellos, etc.
z Diseño detallado (de objetos).
{Refinamiento del diseño del sistema.
{Diseño de las clases de la solución, interfaces. 26
Diseño Orientado a Objetos
27
Diseño Orientado a Objetos
Encapsulamiento
zDesarrollador
{Objetivo: crear clase con interfaz clara y
comprensible
{Manera: ocultar detalles de implementación
{Beneficios: cambio de estructuras/algoritmos
sin afectar
{Coste: clases reutilizables más caras a corto
plazo
28
Diseño Orientado a Objetos
Encapsulamiento
29
Descomposición Funcional
30
OOD
31
Definción de una clase
33
Definir atributos
zTipos de atributos
{Atómicos predefinidos (entero, real, carácter,
pixel...)
{Atómico enumerativo (color, día de la
semana...)
{Colección
{Composición (referencias objetos)
zValor del atributo
{Común a muchos objetos (variable de clase)
{Propio de un objeto (variable de objeto)
34
Identificar Métodos
zTipos de métodos
{Modificador (asigna valor a un atributo)
{Selector (devuelve el valor de un atributo)
{Aplicable a la clase (constructor)
{Aplicable al objeto
zParámetros del método
{¿Qué información necesita? (argumentos de
entrada)
{¿Qué debe devolver? (resultado y argumentos
de salida)
36
Identificar Errores
37
Patrones de Diseño
z Catálogo de soluciones que han probado ser buenas
para ciertos problemas comunes de diseño.
39
UML
http://uml.org
41
UML
z No es un método, ni un proceso ni una metodología.
{ centrado en la arquitectura,
{ iterativo e
{ incremental.
42
UML
43
UML
Tipos de
Diagramas
UML
Modelos 44
Vistas
z Vista de Casos de Uso
{Funcionalidad externa del sistema
z Vista Lógica
{Estructura estática y conducta dinámica del sistema
z Vista de Componentes
{Organización de las componentes
z Vista de Concurrencia
{Comunicaciones y sincronización
z Vista de Despliegue
{Arquitectura física
45
Vista de Casos de Uso
z Dirigida al Análisis de Requisitos (lo que quiere hacer el
usuario)
z Describe la funcionalidad del sistema, como la perciben
los actores externos
z Dirige el desarrollo de las otras vistas
z Define los objetivos finales del sistema
z Permite validar el sistema
z Actor externo:
{ Usuario
{ Otro sistema
z Se plasma en diagramas
{ de Casos de Uso
{ de Actividad
{ de Secuencia
46
Vista de Casos de Uso
TPV
TPV
Procesar
Procesar
Venta
Venta
Servicio
cajero de Autorización
Procesar
Procesar de Pagos
Devoluciones
Devoluciones
«actor»
«actor»
«actor»
«actor»
Analizar
Analizar
Analizadorde
Analizador de Actividad
Actividad Calculadorde
de
Actividadde
de Calculador
Actividad Impuestos
Impuestos
Ventas
Ventas
...
...
«actor»
«actor»
Gestionar
Gestionar Sistemade de
Sistema
Seguridad
Seguridad contabilidad
contabilidad
Gestionar
Gestionar
Administrador Usuarios
Usuarios
del sistema 47
Vista Lógica
49
Vista Lógica
Diagramas estáticos
Elemento
Diagrama de
clases
Carbono Hidrógeno
:Hidrógeno :Hidrógeno
Diagrama de
objetos :Hidrógeno :Carbono :Carbono :Hidrógeno
50
:Hidrógeno :Hidrógeno
Vista Lógica
Diagrama de Estados
[(info=driver.detectarDisco())!=NULL]/
[not driver. disco=buscaDisco(info)
detectarAbierto()] NumActual = 1;
C actual = disco.obtenerCancion(ordenActual)
[driver.detectarAbierto()]
Cerrado endOfSong()/
NumActual+=1
driver.cerrar ()
driver.abrir ()
Play()/ C
Stop driver.play(actual, 0) Play
eject ()/
eject ()/
driver.play(actual, Tpausa)
[NumActual<=
disco.numCanciones()]/
Tpausa = driver.stop()
actual=
eject ()/
Abierto disco.obtenerCancion
driver.stop(); stop()/
(NumActual)
driver.abrir() driver.stop();
driver.play(actual,0)
NumActual=1
Pause()/
actual=
Play()/
disco.obtenerCancion(NumActual)
Pause
apagar ()/
driver.stop(); 51
driver.apagar()
Vista Lógica
Diagrama de Secuencia
52
Vista Lógica
Diagrama de Colaboración (comunicación)
realizarPago(cantidad) 1: realizarPago(cantidad)
:Registro
:Registro :Venta
:Venta
1.1: crear(cantidad)
:Pago
:Pago
53
Vista Lógica
Diagrama de Actividad
Drink
[no cola]
54
Vista de Componentes
55
Vista de Componentes
Ejemplo
56
http://www.agilemodeling.com/artifacts/componentDiagram.htm
Vista de Concurrencia
:FactoryManager
:FactoryScheduler
job
1:start(job)
A2,B2/2:completed(job)
currentJob:TransferJob
<<local>> job :FactoryJobMgr
B2:completed A2:completed
1/B1:start(job) 1/A1:start(job)
:Robot :Oven
58
Vista de Despliegue
59
Vista de Despliegue
Diagrama de Despliegue
60
Tipos de Diagramas
61
Tipos de Diagramas
Análisis
Análisis Diseño
Diseño
63
Metodologías
64
Metodologías
ÎBooch (OOAD) ÎJacobson (OOSE)
ÊCASEIode (CCM) ÊOlivetti (OGROUP)
ÊCoad-Yourdon- ÎMartin-Odell
Nicola (OOA,OOD) (OOIE)
ÊNE University ÊTASKON
(Demeter) (OORAM)
ÊObject Engin. ÊWinter (OSMOSYS)
(Fresco) ÎRumbaugh (OMT)
ÊHewlett-Packard ÊLBMS (SE/OT)
(Fusion) ÎShlaer/Mellor
ÊGraham (SOMA) (OOSA)
ÊTexas Instruments ÊCCTA (SSADM)
(IE\O) ÎWirfs-Brock (RDD)
ÊICL (MTD) ÊLloyds Register 65
… … … …
68
Rational Unified Process (RUP)
workflows y modelos
Modelo de
Análisis Análisis
Modelo
Modelo de
Diseño de
Despliegue
Diseño
Modelo de
Implementación Implementación
Modelo de
Prueba Pruebas
69
Modelo de Casos de Uso
Diagramas de
Casos de Uso
Modelo de Diagramas de
Análisis Componentes
Modelo Diagramas de
De Diseño Despliegue
Modelo de Diagramas de
Despliegue Secuencia
Modelo de Diagramas de
Implementación Colaboración
Modelo de Diagramas de
Pruebas Estado
Diagramas de 70
Actividad
Modelo de Análisis
Diagramas de
Casos de Uso
Modelo de Diagramas de
Análisis Componentes
Modelo Diagramas de
De Diseño Despliegue
Modelo de Diagramas de
Despliegue Secuencia
Modelo de Diagramas de
Implementación Colaboración
Modelo de Diagramas de
Pruebas Estado
Diagramas de 71
Actividad
Modelo de Diseño
Diagramas de
Casos de Uso
Modelo de Diagramas de
Análisis Componentes
Modelo Diagramas de
De Diseño Despliegue
Modelo de Diagramas de
Despliegue Secuencia
Modelo de Diagramas de
Implementación Colaboración
Modelo de Diagramas de
Pruebas Estado
Diagramas de 72
Actividad
Modelo de Despliegue
Diagramas de
Casos de Uso
Modelo de Diagramas de
Análisis Componentes
Modelo Diagramas de
De Diseño Despliegue
Modelo de Diagramas de
Despliegue Secuencia
Modelo de Diagramas de
Implementación Colaboración
Modelo de Diagramas de
Pruebas Estado
Diagramas de 73
Actividad
Modelo de Implementación
Diagramas de
Casos de Uso
Modelo de Diagramas de
Análisis Componentes
Modelo Diagramas de
De Diseño Despliegue
Modelo de Diagramas de
Despliegue Secuencia
Modelo de Diagramas de
Implementación Colaboración
Modelo de Diagramas de
Pruebas Estado
Diagramas de 74
Actividad
Proceso dirigido por casos de uso
workflows
Arquitectura
76
Bibliografía
z “Applying UML and Patterns. 2nd Edition ”. Craig
Larman, Prentice Hall, 2002.
z “Applying UML in the Unified Process”. Ivar
Jacobson, Rational Software.
z “Ingeniería del Software. Un enfoque práctico 6ª
Edición”. R.S. Pressman, McGraw Hill. 2005.
z “Ingeniería del Software Orientado a Objetos”,
Bruegge, Dutoit, Prentice Hall. 2002.
z “Análisis y Diseño Orientado a Objetos con UML
y el Proceso Unificado”. Schach. McGraw Hill.
2005.
77