Professional Documents
Culture Documents
Anlisis
Anlisis en el PUD
Diagramas de secuencia del sistema
Contratos
Object Constraint Language (OCL)
Modelo alternativo de anlisis: Modelo de Jacobson
Iteracin en PUD
Planificacin de la Iteracin
Captura de requerimientos:
Modelo de casos de uso, Modelo de Dominio, ...
Anlisis:
Diagrama de secuencia del sistema, Contratos, Modelo
Conceptual...
Diseo:
Diagramas de interaccin, Diagrama de Clases
Implementacin:
codificacin (Clases y mtodos)
Pruebas:
verificacin de la implementacin
Evaluacin de la iteracin
2
Dependiente de
la tecnologa
codificacin:
Cdigo Fuente (clases y mtodos)
pruebas:
Especificacin de las pruebas de funcionamiento
mantenimiento:
Documentacin y revisin de todo lo anterior
3
Contratos
Describen los efectos de las operaciones del sistema
10
11
:Sistema
:Cajero
IniciarVenta(tpv) : venta
*
Lnea de vida
12
Incluyen:
Precondiciones y poscondiciones que describen
cambios de estado
Salidas
Descripcin declarativa:
Qu har la operacin ms que cmo la har.
Preconditions
Suposiciones sobre el estado del sistema antes de la operacin
Salida
Descripcin de la salida de la operacin
14
Elaboracin de Contratos
Identificar las operaciones a partir del diagrama de
secuencia
Elaborar un contrato para cada operacin
Comenzar redactando la seccin de
Responsabilidades; despus informalmente el
propsito de la operacin
Completar la seccin de Poscondiciones; describiendo
de forma declarativa los cambios de estado del Modelo
Conceptual
Creacin y eliminacin de objetos
Modificacin de los atributos
Formacin y cancelacin de asociaciones
15
Ejemplo: contratos
TPV
id
tiene
Venta
id
fecha
hora
/importe
1..*
consta
LineaVenta
cantidad
0..*
corresponde
1
Producto
cdigo
precio
descripcin
16
Name:IniciarVenta(IdTPV) : IdVenta
Responsabilities
Iniciar el registro de una venta
Preconditions
Existe un TPV.id = IdTPV
Postconditions
Se dio de alta una instancia v de Venta
v.id = un nuevo identificador para venta
v.fecha = fecha actual del sistema
h.hora = hora actual del sistema
Se dio de alta una instancia de la asociacin tiene entre v y la
instancia de TPV.id = IdTPV
Salida
v.id
17
Name:TerminarVenta(IdVenta) : importe
Responsabilities
Finalizar el registro de una venta y mostrar el importe a de la
venta
Preconditions
Existe una venta v con v.id = IdVenta
Postconditions
v.terminada? = verdadero
Salida
importe = v.importe
19
20
Ejemplo: contratos
TPV
id
tiene
Venta
terminada?
da
hora
/importe
1..*
consta
LineaVenta
cantidad
0..*
corresponde
1
Producto
cdigo
precio
descripcin
21
:Sistema
:Cajero
IniciarVenta(IdTPV) : IdVenta
*
Lnea de vida
22
23
24
25
:Bibliotecario
:Sistema
IdentificarSocio(dni) : Socio
EnPrestamo(dni) : InfoLibros
ConsultarLibro(Libro) : InfoLibros
ReservarLibro(dni, signatura)
PrestarCopia(dni, idCopia)
26
Name:PrestarCopia(dni, signatura)
Responsabilities
Registra el nuevo prstamo con la fecha actual.
Preconditions
Existe un socio s.dni = dni
Existe una copia c.idCopia = idCopia
Postconditions
Se cre una instancia pc de la asociacin PrstamoC
Se asoci pc a la cpia c y al scio s
pc.iniFecha = fechaActual()
pc.finFecha = fechaActual() + c.tiempoMax
c.estado = prestado
Salida
28
Lenguaje formal
Permite definir expresiones
No es un lenguaje de programacin!
Permite especificar invariantes (restricciones y condiciones)
Permite navegar entre los objetos
29
Ejemplo: OCL
Persona
FechaNac
Nombre
Apellido
Sexo
/casado?
/parado?
/edad
dirige
director
*
empleado
0..1
empleado_por
Empresa
nombre
/empleados
esposa
trabaja
ttulo
FechaInicio
salario
esposo 0..1
matrimonio
Lugar
fecha
30
Expresiones OCL
Una expresin OCL describe propiedades de los
objetos del Modelo Conceptual y
Una propiedad puede hacer referencia a:
Atributos de una clase de objetos
Restriccin de Integridad
Las personas tienen edades superiores o iguales a cero
Persona
p:Persona
-- instancia textual
self.edad >= 0
p.edad >= 0
Reglas de navegacin
Si la multiplicidad de la asociacin es 1, el resultado es un
objeto o un conjunto con un nico objeto
Si la multiplicidad de la asociacin es >1, el resultado es
una bolsa (o, a veces, un conjunto)
32
33
34
Notacin
Resultado
or
and
or exclusivo
negacin
igualdad
desigualdad
implicacin
if-then-else
a or b
a and b
a xor b
not a
a=b
a <> b
a implies b
if c then b else b
booleano
booleano
booleano
booleano
booleano
booleano
booleano
b or b
39
Notacin
Resultado
concatenacin
tamao
substring
igualdad
desigualdad
string.concat(string)
string
string.size
entero
string.substring(int,int)
string
string1 = string2
booleano
string1 <> string2 booleano
40
Resultado
nmero de elementos
nmero de las ocurrencias del objeto
el objeto pertenece a la coleccin?
la coleccin est vaca?
la coleccin no est vaca?
suma de todos los elementos
expression es cierta para algn elemento?
expression es cierta para todos los elementos?
selecciona los elementos para los que
expression es cierta
reject(expression)
elimina los elementos para los que es falsa
union(collection)
la unin de las dos colecciones
intersection(collection) la interseccin de las dos colecciones
41