Beruflich Dokumente
Kultur Dokumente
Mayo 2004
A pedido del pueblo
1
Aspectos en Ing. de Software
Identificamos los siguientes temas importantes
en ingeniería de software:
modelamiento
resolución de problemas
adquisición de conocimiento
desarrollo racional
2
UML Básico
UML emerge como un lenguaje estándar para modelar,
particularmente para modelamiento “object-oriented”.
Al desarrollar sistemas, usamos UML para representar
tres modelos diferentes del sistema:
el modelo funcional, representado vía diagramas de
casos de uso (sistema desde la perspectiva del usuario),
el modelo objeto, representado vía diagramas de
clase (estructura del sistema),
el modelo dinámico, representado vía diagramas de
secuencia , diagramas “statechart”, y diagramas de
actividad (comportamiento interno del sistema).
3
Diagramas de Casos de Uso
4
Diagramas de Casos de Uso
Ejemplo: Diagrama de casos de uso para un reloj
simple.
RelojSimple
LeeHora
CambioPila
5
Diagramas de Clase
Representan la estructura del sistema.
Clases especifican la estructura común y el
comportamiento de un conjunto de objetos.
Objetos
6
Diagramas de Clases
Ejemplo: Diagrama de Clases para un reloj simple.
RelojSimple
1 1 1 1
2 1 2 1
7
Diagramas de Secuencia
Muestran la comunicación entre objetos.
Los objetos involucrados en un caso de uso se
llaman objetos participantes.
Un diagrama de secuencia representa las
interacciones que tienen lugar entre esos objetos.
En un diagrama de secuencia,
columnas representan actividad de actores y
objetos,
flechas rotuladas representan stimuli (mensajes)
que
se envían desde un actor a un objeto o entre
objetos.
8
Diagramas de Secuencia
Ejemplo: DS para el caso de uso de AjustaHora.
:Usuario
presionaBotón1() parpadeaHoras()
presionaBotón1() parpadeaMinutos()
presionaBotón2() incrementaMinutos()
refresh()
presionaBotones1y2() aceptaNuevaHora()
detieneParpadeo()
9
Diagramas “Statechart”
Describenel comportamiento de un objeto individual
como un autómata de estado finito, es decir,
un número finito de estados que el objeto puede asumir,
transiciones entre esos estados.
Aquí, un estado es un conjunto particular de valores
para un objeto.
Los estados se representan por óvalos.
10
Diagramas “Statechart”
Ejemplo: Diagrama “Statechart” para
RelojSimple.
botón2Pulsado
botón1&2Pulsado ParpadeaHoras IncrementaHoras
botón1Pulsado
botón2Pulsado
botón1&2Pulsado ParpadeaMinutos IncrementaMinutos
botón1&2Pulsado botón1Pulsado
botón2Pulsado
DetieneParpadeo ParpadeaSegundos IncrementaSegundos
11
Diagramas de Actividad
12
Diagramas de Actividad
Ejemplo: Diagrama de Actividad para incidentes
Asignar
Recursos
Documentar
Incidente
13
Sistemas, Modelos, y Vistas
14
Sistemas, Modelos, y Vistas
Modelamiento es la forma de tratar con la alta
complejidad de ciertos sistemas.
Tales sistemas se describen a menudo con múltiples
modelos, donde cada uno representa un aspecto
particular del sistema.
En general, un modelo se enfoca en aspectos
particulares de un sistema e ignora detalles irrelevantes.
Debemos construir modelos que son lo suficientemente
simples como para ser fácilmente entendidos por una
sola persona.
15
Sistemas, Modelos, y Vistas
Podemos usar una vista para visualizar un subconjunto de
un modelo.
U. de Concepción
6 de mayo de 2004
Profesores de la U. de Concepción
Fechas
17
Conceptos y Fenómenos
Un concepto se define como una 3-tupla:
su nombre (identifica el concepto),
18
Conceptos y Fenómenos
Abstracción es la clasificación del fenómeno en
conceptos.
20
Clases
En LPs orientados a objetos, las clases se usan
como conceptos (abstracciones).
Clases son como TAD en términos de
encapsulamiento de la estructura y comportamiento.
A diferencia de los TAD, las clases se pueden
derivar de otras clases usando generalización.
Imaginemos que desarrollamos un reloj para
“surfear” en la Web.
Entonces la clase WebReloj podría ser un
refinamiento de la clase Reloj.
21
Clases
Este tipo de relación entre dos clases se llama
generalización.
La clase base (Reloj) se llama superclase, y la clase
refinada se llama subclase (WebReloj).
La subclase refina la superclase agregando
atributos y operaciones (o modificando las
existentes).
En los diagramas de clase de UML, clases y
objetos se muestran como cajas con tres
compartimentos que contienen
el nombre de la clase u objeto (object:Class),
sus atributos,
sus operaciones.
22
Clases
Reloj
hora
fecha WebReloj
AjusteFecha(d)
URLactual
IngreseURL(u)
VirusScan()
23
Clases
Un objeto es una instancia de una clase; cada objeto
pertenece exactamente a una clase.
En UML, los nombres de las instancias se subrayan.
<<instanceOf>>
miReloj:Reloj Reloj
<<instanceOf>>
miRelojChoro:WebReloj WebReloj
24
Clases eventos, Eventos, y Mensajes
25
Clases eventos, Eventos, y Mensajes
Ejemplo: Diagrama de secuencia para envío de mensajes.
:Usuario
pulsaBotón3() ObtieneHora()
HoraGMT
obtieneDeltaHora()
DeltaHora
26
Alto para un breve resumen
UML surge como un lenguaje estándar, particularmente
para modelamiento OO.
Para desarrollar sistemas, se usa UML para representar
tres modelos diferentes del sistema:
el modelo funcional, representado vía diagramas de
casos de uso (sistema desde la perspectiva del usuario),
el modelo objeto, representado vía diagramas de
clase (estructura del sistema),
el modelo dinámico, representado vía diagramas de
secuencia, diagramas de estado, y diagramas de
actividad (comportamiento interno del sistema).
27
UML Detallado : Diagramas de Casos de Uso
Ejemplo: Diagrama de casos de uso para un reloj
simple.
RelojSimple
LeeHora
CambiaPila
28
UML Detallado : Diagramas de Casos de Uso
29
Actores
Unactor modela una entidad externa que se
comunica con el sistema:
Usuario
Sistema externo
Ambiente físico
Un actor tiene un nombre único y una descripción
opcional.
Ejemplos:
30
Casos de Uso
Un caso de uso representa una clase de funcionalidad
provista por el sistema como un evento flujo.
31
Casos de Uso: Ejemplo
Nombre: Flujo eventos:
Compra de pasaje 1. Pasajero selecciona el número
de zonas por las que viajará.
Actor paricipante: 2. Distribuidor indica el monto
Pasajero
del pasaje.
3. Pasajero inserta dinero al
Condic. de entrada: menos por el monto.
Pasajero parado frente
4. Distribuidor da vuelto.
a la ventanilla.
5. Distribuidor entrega pasaje.
Pasajero tiene suficiente
dinero para comprar el
pasaje.
32
La relación <<extend>>
33
La relación <<extend>>
Pasajero
CompraPasaje
<<extend>> <<extend>>
<<extend>>
Cancelar SinVuelto
34
La relación <<include>>
35
La relación <<include>>
Pasajero
CompraPasajeMúltiple
CompraPasajeSimple
<<include>>
<<include>>
SinVuelto Cancela
36
UML en Detalle: Diagramas de Clase
RelojSimple
1 1 1 1
2 1 2 1
PulsaBotón Display Pila Hora
37
UML en Detalle: Diagramas de Clase
38
Clases
Una clase representa un concepto.
Una clase encapsula estados (atributos) y
comportamiento (operaciones).
Cada atributo tiene un tipo.
TarifaSchedule TarifaSchedule
Tabla zona2precio zona2precio TarifaSchedule
Enumeración obtieneZonas() obtieneZonas()
Precio obtienePrecio(Zona) obtienePrecio()
39
Instancias
Una instancia representa un fenómeno.
El nombre de una instancia va subrayado y puede
contener la clase de la instancia.
Los atributos son representados por sus valores.
tarifa_2004:TarifaSchedule
zona2precio = {
{‘1’, .20},
{‘2’, .40},
{‘3’, .60}}
40
Asociaciones
Asociaciones denotan relaciones entre clases.
La multiplicidad de una asociación final denota cuántos
objetos puede referenciar legítimamente el objeto fuente.
Tiene-capital
País Ciudad
1 1
nombre:String nombre:String
asociación
1-a-1
Polígono Punto
1 *
x:Integer
dibuja() asociación y:Integer
1-a-muchos
41
Agregación
Una agregación es un caso especial de asociación que
denota una jerarquía “consiste de”.
El agregado es la clase padre, los componentes son las
clases hijas.
Sistema Vapor
1 0..2
Calentador Cañería
42
Generalización
Las relaciones de generalización denotan herencia
entre clases.
Las clases hijas heredan los atributos y operaciones
de la clase padre.
La generalización simplifica el modelo al eliminar
redundancias.
Botón
BotónCancelar BotónZona
43
UML en detalle: Diagramas de secuencia
Ej: Diagrama de secuencia para el caso de uso MiHora.
:RelojUsuario
presionaBotón1() parpadeaHoras()
presionaBotón1() parpadeaMinutos()
presionaBotón2() incrementaMinutos()
refresh()
presionaBotones1y2() aceptaNuevaHora()
detieneParpadeo()
44
UML en Detalle: Diagramas de Secuencia
45
Observaciones a Diagramas de Secuencia
46
UML en Detalle: Diagramas de Estado
Ejemplo: Diagrama de Estado para RelojSimple.
Botón2Presionado
botones1&2Presionados
ParpadeaHoras IncrementaHoras
botón1Presionado
botón2Presionado
botones1&2Presionados
ParpadeaMinutos IncrementaMinutos
botones1&2Presionados botón1Presionado
botón2Presionado
DetieneParpadeo ParpadeaSegundos IncrementaSegundos
47
Diagramas de Actividad
Ejemplo: Diagrama de actividad para manejar incidentes
Atribuye
Recursos
Documenta
Incidente
48
Diagramas de Actividad
Un diagrama de actividad muestra flujo de control en un sistema
Un diagrama de actividad es un caso especial de un diagrama de
estados donde los estados son actividades (“funciones”)
Dos tipos de estado:
Estado acción:
No puede ser descompuesto
49
Diagramas de Actividad: Decisiones de
Modelamiento
Abre [bajaPrioridad] Asigna
Incidente Recursos
[fuego & altaPrioridad]
Notifica Jefe
de Policía
50
Modelamiento con UML: Resumen
UML suministra gran variedad de notaciones para
representar muchos aspectos del desarrollo de software
Es un lenguaje complejo pero poderoso
51
Fin
52