Parte 08 Ejemplo Metodologia_analisis
description
Transcript of Parte 08 Ejemplo Metodologia_analisis
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 1
Proyecto de Software de Gestin de Alquileres de Pelculas
Documento del Anlisis del Sistema
Versin 1.0
Fecha: 14/03/2009
Realizado por el Equipo de Desarrollo
H & S System S.A.
Realizado para Video Club Agencia
Huancayo
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 2
Lista de Cambios
Nro. Fecha Descripcin Autores
0 14/03/2009 Versin 1.0 Ing. Jaime Suasnbar Terrel
1
2
3
4
5
6
7
8
9
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 3
1. INTRODUCCIN
En este apndice se ofrecen algunos ejemplos de aplicacin de las tcnicas propuestas en
esta metodologa. Para ello se ha continuado con el ejemplo de la gestin de un pequeo
vdeoclub que se utiliz en la Metodologa para la Elicitacin de Requisitos de Sistemas
Software, aunque por motivos de espacio se ha optado por no incluir todas las operaciones
del sistema correspondientes a los casos de uso identificados en el ejemplo citado, sino
solamente un pequeo subconjunto.
Aunque no estn definidos en la actual versin de OCL [IBM 2005], se han asumido las clases
bsicos Date y Time para representar fechas y horas respectivamente. Se ha asumido
tambin que se ha definido la operacin menor o igual sobre ambos tipos (
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 4
Figura 15: Diagrama de clases del subsistema Pelculas y DVDs
Figura 16: Diagrama de clases del subsistema Alquileres y Socios
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 5
2.2. SUBSISTEMA PELCULAS Y DVDS
2.2.1. ESPECIFICACIN DE CLASES
Este subsistema contiene las clases y asociaciones relacionadas con las
pelculas y DVDs del vdeoclub.
CLASE ACTOR
Descripcin clase Actor
Clase Actor
Requisitos asociados RI-01 Informacin sobre pelculas
Descripcin Este clase concreto representa los actores protagonistas de las pelculas del video-club
Superclases ArtistaCine
Subclases -
Componentes
Nombre Tipo OCL Mult.
- - -
Comentarios Ninguno
Atributos clase Actor
No se han identificado atributos para este clase.
Enlaces clase Actor
Enlace variable Actor::pelcula
Descripcin Conjunto de pelculas en las que el actor es el protagonista
Tipo OCL Set ( Pelcula )
Asociacin actaEn(Actor,Pelcula)
Comentarios Ninguno
Invariante clase Actor
No se han identificado restricciones para este clase.
CLASE ARTISTACINE
Descripcin clase ArtistaCine
Clase ArtistaCine
Requisitos asociados RI-01 Informacin sobre pelculas
Descripcin Este clase abstracto representa los actores protagonistas de las pelculas del video-club
Superclases -
Subclases Actor,Director (solapadas,completas)
Componentes
Nombre Tipo OCL Mult.
- - -
Comentarios Puede haber artistas de cine que sean actores y directores a la vez, por ejemplo Woody Allen
Atributos clase ArtistaCine
Atributo constante
artistaCine::nombre
Descripcin Nombre del artista de cine
Tipo OCL String
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 6
Enlaces clase ArtistaCine
Este clase no participa en ninguna asociacin.
Invariante clase ArtistaCine
Invariante ArtistaCine
Descripcin No puede haber dos artistas de cine con el mismo nombre (nombre es clave)
Expresin artistaCine.allInstances=>foral (a1, a2 | (a1a2)= (a1.nombre a2.nombre) )
Comentarios Ninguno
CLASE DVD
Descripcin clase DVD
Clase DVD Requisitos asociados RI-01 Informacin sobre pelculas Descripcin Este clase abstracto representa los DVDs actualmente en poder del
video-club Superclases - Subclases - Componentes
Nombre Tipo OCL Mult.
- - - Comentarios Ninguno
Atributos clase DVD
Atributo derivado DVD::estAlquilada
Descripcin Indica si el DVD est alquilada actualmente
Expresin Self.alquilwerActual->notEmpty
Comentarios Ninguno
Atributo constante DVD::nmero Descripcin Nmero Identificativo del DVD Tipo OCL Interger Comentarios Se debe generar automticamente; es
imprescindible para que el empleado del video-club .localice los DVDs en los estantes
Enlaces clase DVD
Enlace variable DVD::alquiler Descripcin Alquileres de los que ha sido o es objeto el DVD
Tipo OCL sequence (alquiler)
Asociacin esObjetoDe(DVD, Alquiler)
Comentarios Los alquileres estn ordenados por fecha de alquiler
Enlace derivado DVD:: alquilerActual Descripcin Alquiler en curso del DVD
Tipo OCL self.alquiler->select (a | not a.estDevuelto )
Asociacin esObjetoActualmenteDe(DVD,Alquiler)
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 7
Enlace variable DVD::pelcula Descripcin Pelcula contenida en el DVD
Tipo OCL Pelcula
Asociacin contiene(DVD,Pelcula)
Comentarios Ninguno
Enlace derivado DVD::socio Descripcin Socio que tiene alquilada el DVD actualmente
Tipo OCL self.alquilerActual.socio
Asociacin tieneAlquilada(Socio,DVD)
Comentarios Ninguno
Invariante clase DVD
Invariante DVD
Descripcin No puede haber dos DVDs con el mismo nombre (nmero es clave)
Los alquileres deben estar orientados por fecha de alquiler
No hay alquileres duplicados
El DVD slo puede tener pendiente un alquiler a la vez
Expresin DVD.allInstances->foral ( c1, c2 | ( c1 c2 ) = ( c1.nmero c2.nmero ) )
and
self.alquiler->isOrderedBy( size = self.alquiler->asset->size
and
self.alquilerActual->size
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 8
Invariante clase Director
No se han identificado restricciones para este clase.
CLASE PELCULA
Descripcin clase Pelcula
Clase Pelcula Requisitos asociados RI-01 Informacin sobre pelculas Descripcin Este clase concreto representa las pelculas que han
estado o estn disponibles en el video-club Superclases - Subclases - Componentes Nombre Tipo OCL Mult.
- - - Comentarios Ninguno
Atributos clase Pelcula
Atributo constante Pelcula::ao
Descripcin Ao en que se estren la pelcula
Tipo OCL Interger
Comentarios Ninguno
Atributo constante Pelcula::duracin
Descripcin Duracin de la pelcula
Tipo OCL Time
Comentarios Ninguno
Atributo constante Pelcula::tema
Descripcin Tema de la pelcula
Tipo OCL enum ( Infantil, Accin, Ciencia-Ficcin, Terror, Adultos )
Comentarios Ninguno
Atributo constante Pelcula::titulo
Descripcin Ttulo de la pelcula
Tipo OCL String
Comentarios Ninguno
Enlaces clase Pelcula
Enlace derivado Pelcula::alquilada
Descripcin DVDs de la pelcula actualmente alquiladas
Tipo OCL Self.DVD->select (c | c.est.Alquilada )
Asociacin tieneAlquilada(Pelcula,DVD)
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 9
Enlace variable Pelcula::DVD
Descripcin DVDs de las pelculas de las que dispone el video-club
Tipo OCL Set (DVD)
Asociacin contiene(DVD, Pelcula)
Comentarios Ninguno
Enlace constante Pelcula::director
Descripcin Director de la pelcula
Tipo OCL director
Asociacin dirige(Director,Pelcula)
Comentarios Ninguno
Enlace derivado Pelcula::disponible
Descripcin DVDs de la pelcula actualmente disponibles (no alquiladas)
Tipo OCL Self.DVD->select (c | not c.est.Alquilada )
Asociacin tieneDisponible(Pelcula,DVD)
Comentarios Ninguno
Enlace constante Pelcula::productora
Descripcin Productora de la pelcula
Tipo OCL productora
Asociacin Produce(Productor,pelcula)
Comentarios Ninguno
Enlace constante Pelcula::protagonista
Descripcin Conjunto de actores protagonistas de la pelcula
Tipo OCL Set ( Actor )
Asociacin acta.en(Actor,pelcula)
Comentarios Ninguno
Invariante clase Pelcula
Invariante Pelcula
Descripcin los DVDs alquiladas y no alquiladas forman una particin de todas los DVDs de la pelcula
Expresin self.DVD = self.disponible->unin( self.alquilada ) and
self.disponible->intersection( self.alquilada )-> isEmpty Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 10
CLASE PRODUCTORA
Descripcin clase Productora
Clase Productora Requisitos asociados RI-01 Informacin sobre pelculas Descripcin Este clase concreto representa las productoras de las
pelculas del video-club Superclases - Subclases - Componentes Nombre Tipo OCL Mult.
- - Comentarios Ninguno
Atributos clase Productora
Atributo constante
Productora::nombre
Descripcin Nombre de la productora
Tipo OCL String
Comentarios Ninguno
Enlaces clase Productora
Enlace variable
Productora::pelcula
Descripcin Conjunto de pelculas producidas por la porductora
Tipo OCL Set ( Pelcula )
Asociacin produce(Productora,Pelcula)
Comentarios Ninguno
Invariante clase Productora
Invariante Productora
Descripcin No puede haber dos productoras con el mismo nombre (nombre es clave)
Expresin Productora.allInstance->forall( a1, a2 | (a1a2) = (al.nombre a2.nombre)
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 11
2.2.2. ESPECIFICACIN DE ASOCIACIONES
Asociacin actaEn entre Actor y Pelcula
Descripcin asociacin actaEn(Actor, Pelcula)
Asociacin actaEn entre Actor y Pelcula
Requisitos asociados RI-01 Informacin sobre pelculas
Descripcin Esta asociacin representa el hecho de que un actor es protagonista en una pelcula
Comentarios Ninguno
Roles asociacin actaEn(Actor, Pelcula)
Rol Actor juega rol protagonista en actaEn(Actor,Pelcula)
Descripcin Actor protagonista de una pelcula
Tipo OCL Set ( Actor )
Multiplicidad 0..n
Comentarios Ninguno
Rol Pelcula juega rol pelcula en actaEn(Actor,Pelcula)
Descripcin Pelculas en las que un actor es protagonista
Tipo OCL Set ( Pelcula )
Multiplicidad 0..n
Comentarios Ninguno
Asociacin contiene entre DVD y Pelcula
Descripcin asociacin contiene(DVD, Pelcula)
Asociacin Contiene entre DVD y Pelcula
Requisitos asociados
RI-01 Informacin sobre pelculas
Descripcin Esta asociacin representa el hecho de que una DVD de video contiene una pelcula
Comentarios Ninguno
Roles asociacin contiene(DVD, Pelcula)
Rol DVD juega rol DVD contiene(DVD,Pelcula)
Descripcin DVD que contiene una pelcula
Tipo OCL Set ( Pelcula )
Multiplicidad 0..n
Comentarios Ninguno
Rol Pelcula juega rol pelcula en contiene(DVD, Pelcula)
Descripcin DVD que contiene una pelcula
Tipo OCL Pelcula
Multiplicidad 0..n
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 12
Asociacin dirige entre Director y Pelcula
Descripcin asociacin dirige(Director, Pelcula)
Asociacin dirige entre Director y Pelcula
Requisitos asociados
RI-01 Informacin sobre pelculas
Descripcin Esta asociacin representa el hecho de que un director dirige una pelcula
Comentarios Ninguno
Roles asociacin dirige(Director, Pelcula)
Rol Director juega rol director en dirige(Director,Pelcula)
Descripcin Director de una pelcula
Tipo OCL Director
Multiplicidad 1
Comentarios Ninguno
Rol Pelcula juega rol pelcula en dirige(Director,Pelcula)
Descripcin Pelculas dirigidas por un director
Tipo OCL Set (Pelcula )
Multiplicidad 0..n
Comentarios Ninguno
Asociacin produce entre Productora y Pelcula
Descripcin asociacin produce(Productora, Pelcula)
Asociacin produce entre Productora y Pelcula
Requisitos asociados RI-01 Informacin sobre pelculas
Descripcin Esta asociacin representa el hecho de que una productora produce una pelcula
Comentarios Ninguno
Roles asociacin produce(Productora, Pelcula)
Rol Pelculas juega rol pelcula en produce(Productora,Pelcula)
Descripcin Pelculas producidas por una productora
Tipo OCL Set( Pelcula )
Multiplicidad 0..n
Comentarios Ninguno
Rol Director juega rol Productora en produce(Productora,Pelcula)
Descripcin Productora de una pelcula
Tipo OCL Productora
Multiplicidad 1
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 13
Asociacin tieneAlquilada entre Pelcula y DVD
Descripcin asociacin tieneAlquilada(Pelcula, DVD)
Asociacin derivada tieneAlquilada entre Pelcula y DVD
Requisitos asociados
RI-01 Informacin sobre pelculas
Descripcin Esta asociacin representa el hecho de que una pelcula tiene alquiladas DVDs
Comentarios Ver invariante, es una asociacin derivada
Roles asociacin tieneAlquilada(Pelcula, DVD)
Rol Pelcula juega rol pelcula en tieneAlquilada(Pelcula,DVD)
Descripcin DVDs alquiladas
Tipo OCL Set( DVD )
Multiplicidad 0..n
Comentarios Ninguno
Rol Pelcula juega rol pelcula en tieneAlquilada(Pelcula,DVD)
Descripcin Pelculas contenidas en una DVD
Tipo OCL Pelcula
Multiplicidad 1
Comentarios Ninguno
Invariante asociacin tieneAlquilada(Pelcula, DVD)
Invariante tieneAlquilada(Pelcula,DVD)
Descripcin Un par (pelcula,DVD) pertenece a esta asociacin si y slo si el DVD contiene una pelcula y el DVD est alquilada
Expresin Pelcula.allInstances->forAll( p | DVD.allInstances-> forAll (c | tieneAlquilada(Pelcula,DVD).allInstances-> forAll( ta | ( ta.pelcula = p and ta.alquilada = c ) = ( p.DVD->includes( c ) and c.pelcula = p and c.estAlquilada ) ) ) )
Comentarios Ninguno
Asociacin tieneDisponible entre Pelcula y DVD
Descripcin asociacin tieneDisponible(Pelcula, DVD)
Asociacin derivada tieneDisponible entre Pelcula y DVD
Requisitos asociados RI-01 Informacin sobre pelculas
Descripcin Esta asociacin representa el hecho de que una pelcula tiene disponibles DVDs para alquilar
Comentarios Ver invariante, es una asociacin derivada
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 14
Roles asociacin tieneDisponible(Pelcula, DVD)
Rol DVD juega rol disponible en tieneDisponible(Pelcula, DVD)
Descripcin DVDs disponibles para alquilar
Tipo OCL Set( DVD )
Multiplicidad 0..n
Comentarios Ninguno
Rol Pelcula juega rol pelcula en tieneDisponible(Pelcula, DVD)
Descripcin Pelculas contenidas en una DVD
Tipo OCL Pelcula
Multiplicidad 1
Comentarios Ninguno
Invariante asociacin tieneDisponible(Pelcula, DVD)
Invariante tieneDisponible(Pelcula,DVD)
Descripcin Un par (pelcula,DVD) pertenece a esta asociacin si y slo si el DVD contiene a la pelcula y el DVD no esta alquilada
Expresin Pelcula.allInstances->forAll( p | DVD.allInstances-> forAll (c | tieneAlquilada(Pelcula,DVD).allInstances->foral( td | ( td.pelcula = p and td.alquilada =c ) = ( p.DVD->includes( c ) and c.pelcula = p and not c.estAlquilada ) ) ) )
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 15
2.3. SUBSISTEMA SOCIOS Y ALQUILERES
2.3.1. ESPECIFICACIN DE CLASES
Este subsistema contiene las clases y asociaciones relacionadas con los socios
y alquileres del vdeoclub.
CLASE ALQUILER
Descripcin clase Alquiler
Tipo Alquiler Requisitos asociados RI-02 Informacin sobre socios
RI-03 Informacin sobre cuentas de socios Descripcin Este clase concreto representa los alquileres de DVDs
actuales y pasados realizados por parte de los socios del video-club
Superclases - Subclases - Componentes Nombre Tipo OCL Nombre
- -
Comentarios Este clase no se ha modelado como una asociacin como clase porque un socio puede alquilar una misma DVDs ms de una vez
Atributos tipo Alquiler
Atributo constante
Alquiler::estDevuelto
Descripcin Indica si el socio ha devuelto el DVD indicada
Tipo OCL Boolean
Valor inicial false
Comentarios Ninguno
Atributo constante
Alquiler::fechaAlquiler
Descripcin Fecha en que el socio retira el DVD
Tipo OCL Date
Comentarios Ninguno
Atributo constante
Alquiler::fechaDevolucin
Descripcin Fecha tope en que el socio debe devolver el DVD
Tipo OCL Date
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 16
Atributo constante
Alquiler::horaAlquiler
Descripcin Hora en que el socio retira el DVD
Tipo OCL Time
Comentarios Ninguno
Atributo constante
Alquiler::horaDevolucin
Descripcin Hora tope en que el socio debe devolver el DVD
Tipo OCL Time
Comentarios Ninguno
Enlaces clase Alquiler
Enlace variable Alquiler::cargoAlquiler
Descripcin Cargo correspondiente al alquiler
Tipo OCL Alquiler
Asociacin corresponde(CargoAlquiler,Alquiler)
Comentarios Ninguno
Enlace variable Alquiler::cargo,Multa
Descripcin Cargo correspondiente a la multo por devolucin tarda
Tipo OCL Set (Alquiler) o Alquiler
Asociacin motivadoPor(CargoMulta,Alquiler)
Comentarios Ninguno
Enlace variable Alquiler::DVD
Descripcin DVD es objeto de alquiler
Tipo OCL DVD
Asociacin esObjetoDe(DVD,Alquiler)
Comentarios Ninguno
Enlace variable Alquiler::socio
Descripcin DVD que es objeto de alquiler
Tipo OCL Socio que realiza el alquiler
Asociacin realiza(Socio,Alquiler)
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 17
Invariante clase Alquiler
Invariante Alquiler
Descripcin No puede haber dos alquileres de la misma DVD en la misma fecha y hora
No puede haber dos alquileres pendientes de la misma DVD
La fecha y hora de devolucin tiene que ser posteriores o iguales a las de alquiler
Expresin Alquiler.allInstances->foral (a1 ,a2 | (a1 a2)=( a1.DVD a2.DVD or a1.fechaAlquiler a2.fechaAlquiler or a1.horaAlquiler a2.horaAlquiler ) ) and self.fechaAlquiler =self.fechaDevolucin and (self.fechaAlquiler =self.fechaDevolucin ) implies (self.horaAlquiler > self.hora.Devolucin)
Comentarios Ninguno
CLASE CARGO
Descripcin clase Cargo
Clase Cargo
Requisitos asociados RI-03 Informacin sobre cuentas de socios
Descripcin Este clase abstracto representa los cargos de las cuentas de los socios del video-club
Supeclases Movimiento
Subclases CargoMulta,CargoAlquiler (disjuntas,completas)
Componentes Nombre Tipo OCL Mult.
- - -
Comentarios Ninguno
Atributos clase Cargo
Atributo variable
Cargo::estPendiente
Descripcin Indica si el cargo est pendiente de pago
Tipo OCL Boolean
Valor inicial True
Comentarios Cuando se realiza un cargo, si no hay saldo disponible para pagarlo se considera pendiente de pago hasta que haya saldo suficiente
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 18
Enlaces clase Cargo
No se han identificado enlaces para este clase.
Invariante clase Cargo
Invariante Cargo
Descripcin El importe del movimiento es negativo
Expresin self.importe
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 19
CLASE CARGOMULTA
Descripcin clase CargoMulta
Clase CargoMulta Requisitos asociados RI-03 Informacin sobre cuentas de socios Descripcin Este clase concreto representa los cargos de las
cuentas de los socios del video-club correspondientes a las multas por devoluciones tardas.
Superclases Cargo Subclases - Componentes Nombre Tipo OCL Mult.
- - -
Comentarios Ninguno
Atributos clase CargoMulta
No se han identificado atributos para este clase.
Enlaces clase CargoMulta
Enlace constante
CargoMulta::alquiler
Descripcin El alquiler con devolucin tarda que motiva el cargo por multa
Tipo OCL Alquiler
Asociacin motivadoPor(CargoMultar,Alquiler)
Comentarios Ninguno
Invariante clase CargoMulta
No se han identificado restricciones para este clase.
CLASE CUENTA
Descripcin clase Cuenta
Clase Cuenta Requisitos asociados RI-03 Informacin sobre cuentas de socios Descripcin Este clase concreto representa las cuentas de los
socios del video-club Superclases - Subclases - Componentes Nombre Tipo OCL Mult.
Movimiento Sequence (Movimiento)
0..n
Comentarios Los movimientos estn ordenados por fechas
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 20
Atributos clase Cuenta
Atributo derivado Cuenta::saldo
Descripcin Saldo actual de la cuenta
Expresin self.movimiento->collect ( importe )->sum
Comentarios Ninguno
Enlaces clase Cuenta
Enlace constante
Cuenta::socio
Descripcin El socio de la cuenta
Tipo OCL Socio
Asociacin Tiene(Socio,Cuenta)
Comentarios Ninguno
Invariante clase Cuenta
Atributo derivado Cuenta
Descripcin Los movimientos estn ordenados por fecha
Expresin self.movimiento->isOrderedBy (
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 21
CLASE MOVIMIENTO
Descripcin clase Movimiento
Clase Movimiento Requisitos asociados RI-03 Informacin sobre cuentas de socios Descripcin Este clase abstracto representa los movimientos de
las cuentas de los socios del video-club Superclases - Subclases Ingreso, Cargo (disjuntas,completas) Componentes Nombre Tipo OCL Mult.
Movimiento Sequence (Movimiento) 0..n
Comentarios Ninguno
Atributos clase Movimiento
Atributo constante Movimiento::fecha
Descripcin Fecha en la que se realiza el movimiento
Expresin Date
Comentarios Ninguno
Atributo constante Movimiento::importe
Descripcin Cantidad correspondiente al importe del movimiento
Expresin interger
Comentarios Ninguno
Enlaces clase Movimiento
No se han identificado enlaces para este clase.
Invariante clase Movimiento
No se han identificado restricciones para este clase.
CLASE SOCIO
Descripcin clase Socio
Clase Socio Requisitos asociados RI-02 Informacin sobre socios Descripcin Este clase abstracto representa los socios actuales
del video-club Superclases - Subclases - Componentes Nombre Tipo OCL Mult.
- - -
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 22
Atributos clase Socio
Atributo variable Socio::direccion
Descripcin Direccin actual del socio
Expresin String
Comentarios Ninguno
Atributo constante Socio::dni
Descripcin Nmero del Documento Nacional de Identidad del socio
Expresin String
Comentarios Ninguno
Atributo constante Socio::fechaAlta
Descripcin Fecha de alta del socio
Expresin Date
Comentarios Ninguno
Atributo constante Socio::fechaNacimiento
Descripcin Fecha de nacimiento del socio
Expresin Date
Comentarios Ninguno
Atributo constante Socio::nombre
Descripcin Nombres y apellidos del socio
Expresin String
Comentarios Ninguno
Atributo constante Socio::nmero
Descripcin Numero identificativo del socio
Expresin Interger
Comentarios Ninguno
Atributo constante Socio::sexo
Descripcin Sexo del socio
Expresin Enum {Hombre, Mujer}
Comentarios Ninguno
Atributo constante Socio::telfonos
Descripcin Telfonos del socio
Expresin Set ( Interger )
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 23
Enlaces clase Socio
Enlace variable Socio::alquiler
Descripcin Conjunto de alquileres pasados y presentes del socio
Tipo OCL Sequence (Alquiler)
Asociacin realiza(Socio,Alquiler)
Comentarios No se permiten duplicados en la secuencia de alquileres y deben estar ordenados por fecha de alquiler (ver invariante)
Enlace derivado Socio::alquilerActual
Descripcin Conjunto de alquileres actuales del socio
Tipo OCL self.alquiler->select( a | not a.estDevuelto )
Asociacin realizaActualmente(Socio,Alquiler)
Comentarios Ninguno
Enlace derivado Socio::DVD
Descripcin Conjunto de DVDs actualmente alquiladas por el socio
Tipo OCL Self.alquilerActual.DVD->asSet
Asociacin tieneAlquilada(Socio,DVD)
Comentarios Ninguno
Enlace constante Socio::cuenta
Descripcin Cuenta del socio
Tipo OCL Cuenta
Asociacin Tiene(Socio,Cuenta)
Comentarios Ninguno
Invariante clase Socio
Invariante Socio
Descripcin No puede haber dos socios con el mismo DNI ni con el mismo nmero (dni y nmero son clave)
Al menos debe tener un nmero de telfono de contacto
Los alquileres deben de estar ordenados por fecha de alquiler
No hay alquileres duplicados
Expresin Socio.allInstances=>forAll ( s1 | (s1 s2) = (s1.dni s2.dni and s1 nmero s2.nmero ) ) and not (self.telfono ->isEmpty) and self.alquiler ->isOrderedBy( size = self.alquiler->asset->size
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 24
2.3.2. ESPECIFICACIN DE ASOCIACIONES
Asociacin corresponde entre CargoAlquiler y Alquiler
Descripcin asociacin corresponde(CargoAlquiler, Alquiler)
Asociacin Corresponde entre CargoAlquiler y Alquiler
Requisitos asociados
RI-03 Informacin sobre cuentas de socios
Descripcin Esta asociacin representa el hecho de que un cargo por alquiler corresponde a un determinado alquiler
Comentarios Ninguno
Roles asociacin corresponde(CargoAlquiler, Alquiler)
Rol Alquiler juega rol alquiler corresponde(CargoAlquiler,Alquiler)
Descripcin Alquiler correspondiente al cargo
Tipo OCL Alquiler
Multiciplicidad 1
Comentarios Ninguno
Rol CargoAlquiler juega rol cargoAlquiler en correspondiente(CargoAlquiler,Alquiler)
Descripcin Cargo correspondiente al alquiler
Tipo OCL CargoAlquiler
Multiciplicidad 1
Comentarios Ninguno
Asociacin esObjetoDe entre DVD y Alquiler
Descripcin asociacin esObjetoDe(DVD, Alquiler)
Asociacin esObjetoDe entre DVD y Alquiler
Requisitos asociados
RI- 02 Informacin sobre socios
RI-03 Informacin sobre cuentas de socios
Descripcin Esta asociacin representa el hecho de que una DVD es objeto de alquileres
Comentarios Ninguno
Roles asociacin esObjetoDe(DVD, Alquiler)
Rol Alquiler juega rol alquiler en esObjetoDe(DVD,Alquiler)
Descripcin Alquileres de los que ha sido objeto una DVD
Tipo OCL Sequence( Alquiler )
Multiplicidad 0..n
Comentarios Los alquileres estn ordenados por fecha de alquiler
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 25
Rol DVD juega rol DVD en esObjetoDe(DVD,Alquiler)
Descripcin DVD que es objeto del alquiler
Tipo OCL DVD
Multiplicidad 1
Comentarios Ninguno
Asociacin esObjetoActualmenteDe entre DVD y Alquiler
Descripcin asociacin esObjetoActualmenteDe(DVD, Alquiler)
Asociacin derivada esObjetoActualmenteDe entre DVD y Alquiler)
Requisitos asociados RI- 02 Informacin sobre socios
RI-03 Informacin sobre cuentas de socios
Descripcin Esta asociacin derivada representa el hecho de que una DVD es objeto actualmente de un alquiler
Comentarios Ninguno
Roles asociacin esObjetoActualmenteDe(DVD, Alquiler)
Rol Alquiler juega rol alquilerActual en esObjetoActualmenteDe(DVD, Alquiler)
Descripcin Alquiler actual (an no devuelto) del que es objeto el DVD
Tipo OCL Alquiler o Set ( Alquiler )
Multiplicidad 0..1
Comentarios Los roles con cardinalidad 0..1 puede actuar como conjuntos o como objetos en OCL
Rol DVD juega rol DVD en esObjetoActualmenteDe(DVD, Alquiler)
Descripcin DVD que es objeto de alquiler
Tipo OCL DVD
Multiplicidad 1
Comentarios Ninguno
Invariante asociacin esObjetoActualmenteDe(DVD, Alquiler)
Invariante esObjetoActualmenteDe(DVD, Alquiler)
Descripcin Un par (DVD,alquiler) pertenece a esta asociacin si y slo existe un alquiler en el que el DVD es alquilada y dicho alquiler esta son devolver
Expresin DVD.allInstances->forall ( c | Alquiler.allInstances->forall ( a | EsObjetoActualmenteDe(DVD,Alquile).allInstances-> ForAll ( eoa | ( eoa.DVD = c and eoa.alquiler = c ) = (a.DVD =c and c.alquiler->includes ( a ) and not a.estDevuelto ) ) ) )
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 26
Asociacin motivadoPor entre CargoMulta y Alquiler
Descripcin asociacin motivadoPor(CargoMulta, Alquiler)
Asociacin motivadoPor entre CargoMulta y Alquiler
Requisitos asociados RI-03 Informacin sobre cuentas de socios
Descripcin Esta asociacin representa el hecho de que un cargo por multa por alquiler con devolucin tarda corresponde a un determinado alquiler
Comentarios Ninguno
Roles asociacin motivadoPor(CargoMulta, Alquiler)
Rol Alquiler juega rol alquiler en motivadoPor(CargoMulta, Alquiler)
Descripcin Alquiler correspondiente al cargo por multa
Tipo OCL Alquiler
Multiplicidad 1
Comentarios Ninguno
Rol CargoMulta juega rol cargoMulta en motivadoPor(CargoMulta, Alquiler)
Descripcin Cargo correspondiente a la multa por alquiler por devolucin tarda
Tipo OCL Set (CargoAlquiler) o CargoAlquiler
Multiplicidad 0..1
Comentarios Los roles con cardinalidad 0..1 puede actuar como conjuntos o como objetos en OCL
Asociacin realiza entre Socio y Alquiler
Descripcin asociacin realiza(Socio, Alquiler)
Asociacin Realiza entre Socio y Alquiler
Requisitos asociados RI-02 Informacin sobre e socios Descripcin Esta asociacin representa el hecho de que un
socio realiza alquileres de DVDs
Comentarios Ninguno
Roles asociacin realiza(Socio, Alquiler)
Rol Alquiler juega rol alquiler en realiza(Socio, Alquiler)
Descripcin Alquileres realizados por el socio
Tipo OCL Sequence ( Alquiler )
Multiplicidad 0..n
Comentarios Los alquileres estn ordenados por fecha de alquiler
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 27
Rol Socio juega rol socio en realiza(Socio, Alquiler)
Descripcin Socio que realiza el alquiler
Tipo OCL Socio
Multiplicidad 1
Comentarios Ninguno
Asociacin realizaActualmente entre Socio y Alquiler
Descripcin asociacin realizaActualmente(Socio, Alquiler)
Asociacin derivada realizaActualmente entre Socio y Alquiler
Requisitos asociados
RI-02 Informacin sobre e socios
Descripcin Esta asociacin derivada representa el hecho de que un socio realiza actualmente alquileres de DVDs
Comentarios Ninguno
Roles asociacin realizaActualmente(Socio, Alquiler)
Rol Alquiler juega rol alquilerActual en realizaActualmente(Socio, Alquiler)
Descripcin Alquileres realizados actualmente (aun no devueltos) por el socio
Tipo OCL Set ( Alquiler )
Multiplicidad 0..n
Comentarios Ninguno
Rol Socio juega rol socio en realizaActualmente (Socio, Alquiler)
Descripcin Alquileres realizados por el socio
Tipo OCL Socio
Multiplicidad 1
Comentarios Ninguno
Invariante asociacin realizaActualmente(Socio, Alquiler)
Invariante realizaActualmente (Socio, Alquiler)
Descripcin Un par (socio,alquiler) pertenece a esta asociacin si y slo si el socio tiene dicho alquiler sin devolver
Expresin Socio.allInstances->forAll ( s | Alquiler.allInstances->forall ( a | realizaActualmente(Socio,Alquiler).allInstances-> ForAll ( ra | ( ra.socio = s and ra.alquiler = a ) = (s.alquiler -> and includes ( a ) and a.socio = s and not a.estDevuelto ) ) ) )
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 28
Asociacin tiene entre Socio y Cuenta
Descripcin asociacin tiene(Socio, Cuenta)
Asociacin Tiene entre Socio y Cuenta
Requisitos asociados RI-03 Informacin sobre cuentas de socios
Descripcin Esta asociacin derivada representa el hecho de que un socio tiene una cuenta en el video-club
Comentarios Ninguno
Roles asociacin tiene(Socio, Cuenta)
Rol Cuenta juega rol cuenta en tiene(Socio,Cuenta)
Descripcin Cuenta del socio
Tipo OCL Cuenta
Multiplicidad 1
Comentarios Ninguno
Rol Socio juega rol socio en tiene(Socio,Cuenta)
Descripcin Socio titular de la cuenta
Tipo OCL Cuenta
Multiplicidad 1
Comentarios Ninguno
Asociacin tieneAlquilada entre Socio y DVD Descripcin asociacin tieneAlquilada(Socio, DVD)
Asociacin derivada tieneAlquilada entre Socio y DVD
Requisitos asociados RI-02 Informacin sobre e socios
Descripcin Esta asociacin derivada representa el hecho de que un socio tiene actualmente DVDs alquiladas (sin devolver)
Comentarios Ninguno
Roles asociacin tieneAlquilada(Socio, DVD)
Rol Cuenta juega rol cuenta en tieneAlquilada(Socio, DVD)
Descripcin DVDs alquiladas actualmente (an no devueltas) por un socio
Tipo OCL Set ( DVD )
Multiplicidad 0..n
Comentarios Ninguno
Rol Socio juega rol socio en tieneAlquilada(Socio, DVD)
Descripcin Socio que tiene alquilada el DVD
Tipo OCL Set ( DVD ) o DVD
Multiplicidad 0..1
Comentarios Los roles con cardinalidad 0..1 puede actuar como conjuntos o como objetos en OCL
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 29
Invariante asociacin tieneAlquilada(Socio, DVD)
Invariante tieneAlquilada(Socio, DVD)
Descripcin Un par (socio,DVD) pertenece a esta asociacin si y slo si un alquiler no devuelto realizado por el socio en el que el DVD es alquilada
Expresin Socio.allInstances->forAll ( s | DVD.allInstances->forall ( c | tieneAlquilada(Socio,DVD).allInstances->foral ( ta | ( ta.socio = s and ta.DVD = c ) = (s.alquilerActual.DVD -> and includes ( c ) and c.alquilerActual.socio =s ) ) ) )
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 30
3. MODELADO DEL COMPORTAMIENTO DEL SISTEMA
3.1. OPERACIONES DEL SISTEMA
OPERACIN ALTADESOCIO
Descripcin operacin AltaDeSocio
Operacin Sistema AltaDeSocio
Requisitos Asociados
UC-01 Alta de socio
Descripcin El empleado del video-club da de alta un nuevo socio
Clase resultado socio - - para imprimir el carnet
Parmetros dni :String - -DNI del nuevo socio n :String - - nombre y apellidos del nuevo socio fn :Date - -fecha nacimiento del nuevo socio sx :enum{ Hombre, Mujer } - - sexo del nuevo socio d : String - - direccin del nuevo socio t :Set( Interger ) - -telfono del nuevo socio
Precondiciones pre: No existe en el sistema un socio con el mismo nmero de DNI
Precondiciones (OCL)
pre: not Socio.allInstance->exist( a | a.dni =dni )
Postcondiciones post: Existe un nuevo socio cuyos atributos coinciden con los parmetros, que no tiene ningn alquiler y que tiene una nueva cuenta sin movimientos post: Slo se ha creado un nuevo socio y una nueva carpeta post: El sistema informa de que el proceso ha terminado con xito post: El resultado de la operacin es el nuevo socio (para imprimir carnet)
Postcondiciones (OCL)
post: Socio.new->existe (a | s.dni = dni and s.nombre = n and s.fechaNacimiento = fn and s.sexo = ax and s.fechaAlta = Date.today and s.direccin = d and s.telefonos = dni and s.alquiler->isEmp = dni and Cuenta.new->existe ( c| (s.cuenta = c ) and (c.socio =s ) and c.movimiento->isEmpty ) ) post: Socio.new->size =1 and Cuenta.new->size = 1 post: respuesta =Set {*Proceso de alta de socio terminado con xito*} post: Socio.new->includes ( resultado )
Excepciones pre: El sistema informa de que el socio ya est registrado
Excepciones (OCL) not pre: respuesta->includes (*Error: socio ya registrado*)
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 31
Diagrama de secuencia de AltaDeSocio
Figura 17: Diagrama de secuencia de AltaDeSocio
Interfaz de usuario de AltaDeSocio
En el dilogo, el empleado del vdeoclub introduce los datos del nuevo socio. El
nmero del socio y la fecha de alta son proporcionados por el sistema. Una vez que
se finaliza pulsando el botn OK el sistema imprime el carnet de socio.
Figura 18: Interfaz de usuario de AltaDeSocio
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 32
OPERACIN ALQUILARDVD
Descripcin operacin AlquilarDVD
Operacin Sistema AlquilarDVD
Requisitos Asociados
UC-06 Alquiler de DVDs de video
Descripcin Un socio alquila una DVD de video
Clase resultado Alquiler - - para imprimir el ticket
Parmetros a :Socio - -socio que realiza el alquiler c :DVD - - DVD que se alquila imp :Interger - -imprte del alquiler fd :Date - - fecha de devolucin hd : Time - - hora de devolucin fp :enum{Contado, Cuenta } - -forma de pago
Precondiciones pre: el DVD no est como registrada
Precondiciones (OCL)
pre: not c.estAlquilada@pre
Postcondiciones post: existe un nuevo alquiler no devuelto correspondiente al socio y a el DVD y existe tambin el cargo correspondiente en la cuenta del socio post: Slo se ha creado un nuevo alquiler y un nuevo cargo post: si se paga al contado se crea el ingreso oportuno en la cuenta del socio post:: El sistema informa de que el proceso ha terminado con xito post: El resultado de la operacin es el nuevo alquiler (para imprimir el ticket)
Postcondiciones (OCL)
post: Alquiler.new->existe (a | not a.estDevuelto) and a.socio = s and a.DVD = c and a.fechaAlquiler = Date.today and a.horaAlquiler = time.now and a.fechaDevolucin = fd and a.horaDevolucin = hd and CargoAlquiler.new->existe ( ca| (ca.cuenta = s.cuenta and ca.alquiler =a and ca.importe = - imp and ca.fecha = Date.today ) ) post: Alquiler.new->size =1 and CargoAlquiler.new->size = 1 post: (fp = #Contado )= Ingreso.new->exists( i | i.cuenta =s.cuenta and i.fecha = Date.today and i.importe = imp ) post: respuesta =Set {*Proceso de alta de socio terminado con xito*} post: Socio.new->includes ( resultado )
Excepciones pre: El sistema informa de que el DVD est registrada como alquilada
Excepciones (OCL) not pre: respuesta->includes (*Error: el DVD est registrada como alquilada*)
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 33
Diagrama de secuencia de AlquilarDVD
Figura 19: Diagrama de secuencia de AlquilarDVD
Interfaz de usuario de AlquilarDVD
En el dilogo, el empleado del vdeoclub introduce el nmero del socio que realiza
el alquiler y selecciona el nombre de la pelcula. El sistema le muestra el nombre y el
saldo del socio y le propone una DVD disponible (si hay) de la pelcula. El sistema
propone la fecha y hora de devolucin as como el importe del alquiler. El empleado
puede aceptar los valores propuestos o cambiarlos. Por ltimo el empleado indica la
forma de pago. Una vez que se finaliza pulsando el botn OK el sistema imprime el
ticket.
Figura 20: Interfaz de usuario de AlquilarDVD
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 34
OPERACIN CONSULTARPELCULA
Descripcin operacin ConsultarPelcula
Operacin Sistema ConsultarPelcula
Requisitos Asociados UC-10 Consulta de una pelcula
Descripcin El empleado del video-club consulta la informacin de una pelcula
Clase resultado Ttulo:String x Tema:enum {Infantil,Accin,Ciencia- Ficcin,Terror, Adultos} x Productora:String x Protagonistas: Set(String) x Disponible: Interger
Parmetros P : Pelcula - - la pelcula a consultar
Precondiciones pre: Ninguna
Precondiciones (OCL)
pre: true
Postcondiciones post: el resultado coincide con la informacin deseada post: el sistema informa de que el proceso ha terminado con xito
Postcondiciones (OCL)
post: resultado.ttulo = p.ttulo and resultado,tema =p.tema and resultado.productora =p.productora.nombre and resultado.protagonistas = p.protagonistas.nombre->asSet and resultado.disponibles = p.disponibles->size post: respuesta =Set {*Proceso de alta de socio terminado con xito*}
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 35
Interfaz de usuario operacin ConsultarPelcula
Figura 21: Interfaz de usuario del operacin ConsultarPelcula
En el dilogo, el empleado del vdeoclub introduce el nombre de la pel- cula que
quiere consultar y el sistema le muestra la informacin asociada. El empleado puede
avanzar o retroceder en orden alfabtico por la pelcu- las utilizando los botones y
. Si lo desea, puede imprimir los datos de la pelcula pulsando el botn con una
imagen de impresora. La consulta finaliza una vez que se pulsa el botn OK.
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 36
Conflictos detectados en los requisitosC
Como resultado del anlisis realizado, se deberan realizar los siguientes cambios en
los requisitosC originales:
CFL-1 Necesidad de un identificador de DVDs
Objs./Reqs. En conflicto
RI-01 Informacin sobre pelculas
UC-05 Alta de DVD de video
Descripcin Es necesario que cada DVD tenga identificar(un nmero, una combinacin de letras y nmeros,),para que el empleado del video-club las pueda las pueda localizar en las estanteras
Alternativas Crear un nuevo requisito para registrar especficamente la necesidad de que el sistema genere y conozca el identificador de cada DVD (--)
Aadir al requisito RI-01 un nuevo dato especfico que recoja la necesidad del identificador de DVD (--)
Solucin Crear un nuevo requisito RI-04 informacin sobre DVDs que recoja la necesidad del identificador
Comentarios Ninguno
CFL-2 Necesidad de especificar la informacin sobre alquileres
Objs./Reqs. En conflicto
RI-02 Informacin sobre socios
RI-03 Informacin sobre cuentas de socios
UC-06 Alquiler de DVDs de video
UC-08 Devolucin de DVDs de vidrio
Descripcin No se describe en ningn requisito la informacin que se debe almacenar sobre los alquileres(--)
Alternativas Crear un nuevo requisito de almacenamiento de informacin para registrar especficamente la informacin que se debe almacenar sobre los alquileres(--)
Solucin Crear un nuevo requisito RI-05 Informacin sobre alquileres que describa la informacin la informacin a almacenar sobre los alquileres
Comentarios Ninguno
CFL-3 Especificar que un pago en metlico es un ingreso
Objs./Reqs. En conflicto
RI-03 Informacin sobre cuentas de socios
UC-06 Alquiler de DVDs de video
Descripcin No queda claro que cuando el socio paga en metlico se considera un ingreso en su cuenta
Alternativas Modificar el requisito RI-03 para aclarar el concepto de ingreso y para cambiar el intervalo temporal a pasado y presente (--)
Solucin Modificar el requisito RI-03 y dejar tambin claro el concepto de pago pendiente, definindolo como aquellos cargos para los que no hay saldo suficiente
Comentarios Ninguno
-
Ing. Jaime Suasnbar Terrel Anlisis del Sistema
Taller de Modelamiento de Software Pgina 37
4. MATRIZ DE RASTREABILIDAD
Esta matriz contiene una relacin objetivorequisito, de forma que para cada objetivo se
pueda conocer con qu requisitos est asociado. El formato de la matriz de rastreabilidad
para el presente estudio es:
RI-01 RI-02 UC-01 UC-02 RF-01 RF-02
Clase X
Clase X
Asoc. Y
Asoc. Y
Op .Z
Op. Z
5. GLOSARIO DE TRMINOS