Académique Documents
Professionnel Documents
Culture Documents
Captura de Requisitos
Ejemplo: Videoclub Automtico El sistema a desarrollar es un sistema software que hay que incorporar dentro de un dispensador automtico de pelculas, un videoclub automtico, como los que hay en gasolineras y tiendas abiertas 24h. Este videoclub tiene las facilidades usuales, como sacar pelculas, devolverlas, etc., y tambin otras como que se puede reservar una pelcula notificando al usuario que ya esta disponible mediante un mensaje SMS o enviar recordatorios a los clientes que no han devuelto pelculas va SMS. El pago ha de hacerse con tarjeta de crdito. El videoclub reporta a la central de la empresa va Internet.
1. Captura de requisitos
Actividades
1 Encontrar Actores y casos de uso 1.1 Identificar actores 1.2 Identificar casos de uso 1.3 Describir modelo de casos de uso 2 Detallar los casos de uso 2.1 Disear diagramas de estados 2.2 Descripcin textual casos de uso 3 Definir prototipo de interfaz
Captura de Requisitos:
1.1) Identificar Actores
Ejemplo: Actores del Sistema de Videoclub Usuario Un Usuario es la persona que utilizar el sistema para buscar pelculas, solicitarlas, pagarlas y obtenerlas del dispensador. Operario Un Operario es la persona que realizar las tareas de mantenimiento del dispensador de pelculas, es decir, sustituir viejas pelculas por nuevas. Para ello utilizar el sistema para dar de alta y baja las pelculas. Banco El Banco representa a la entidad externa con la que el sistema debe contactar para admitir y realizar los pagos con tarjeta de los clientes. Dispensador El Dispensador representa al dispositivo mecnico donde estn almacenadas las pelculas que el sistema debe controlar para dar la pelcula alquilada al cliente o que ste la pueda devolver. Operador Telefnico El Operador Telefnico representa la entidad externa con la que el sistema debe contactar para enviar mensajes SMS a los clientes. Sistema Contable El Sistema Contable representa el sistema informtico externo de la empresa con el que el sistema videoclub debe contactar para notificar los pagos realizados en cada momento.
1.2) Identificar Casos de Uso Algunos Casos de Uso identificados: Alquilar Pelcula El Usuario utiliza este caso de uso para mirar qu pelculas hay, seleccionar una, pagarla y retirarla del dispensador. Debe obtener un recibo. Devolver Pelcula El Usuario inicia este caso cuando devuelve la pelcula. Recibe una notificacin confirmndole la devolucin. Si ha tenido retraso deber abonar una penalizacin. Dar de Alta El Operario inicia este caso cuando introduce una nueva pelcula en el dispensador. Dar de baja El Operario inicia este caso cuando retira una pelcula del dispensador. Mandar Recordatorio El Operario inicia este caso cuando fija en el sistema el tiempo mximo permitido por el alquiler de cada pelcula. ....................
Captura de Requisitos:
Captura de Requisitos:
Alquilar Pelcula
Dispensador
Iniciador Iniciador
Devolver Pelcula
Banco
Usuario
Iniciador
Alta Pelcula
Sistema Contable
Iniciador
Operario
Iniciador
Baja Pelcula
Operador Telefnico
Mandar Recordatorio
Captura de Requisitos:
2) Detallar Casos de Uso 2.1) Disear Diagrama de Estados por caso de uso Camino Bsico y Caminos Alternativos
1 Buscar Pelcula
2 Gestionar Pago
Rechazar Pago Reservar Pelcula
4 Pago Rechazado
Aceptar Pago
Captura de Requisitos:
2) Detallar Casos de Uso
2.2) Descripcin del Caso de Uso "Alquilar Pelcula" del Videoclub Precondicin El usuario ha pulsado en el videoclub Alquilar Pelcula Flujo de Eventos Camino Bsico 1. El Usuario inicia el caso de uso buscando en la pantalla la pelcula que ms le gusta. El sistema le muestra la informacin de cada pelcula, por orden alfabtico, as como si est prestada, reservada o disponible. 2. El usuario selecciona una pelcula en la pantalla. El sistema le pide los datos de su tarjeta de crdito y gestiona el pago con la entidad bancaria adecuada. 3. El banco emite una verificacin y el pago es aceptado. El sistema ordena al dispensador que proporcione la pelcula elegida y que le genere un recibo. Asimismo notifica al sistema contable la transaccin bancaria realizada. Finalmente actualiza los datos histricos del usuario y marca la pelcula como alquilada y no disponible si no hay ms copias. Caminos Alternativos 1. En 2 puede que el pago no sea aceptado por el banco o que el usuario haya alcanzado el tope de sus alquileres por da. Hay que notificrselo al usuario y terminar. 2. En 1 puede que la pelcula est alquilada y el usuario quiera reservarla. En este caso hay que emitir una notificacin de reserva. Poscondicin El caso acaba cuando el usuario tiene la pelcula y un recib, o sin pelcula y una notificacin de pago rechazado, o sin pelcula pero con la reserva hecha, o sin pelcula por que no le gustara ninguna. Atributos del Caso de Uso Pelcula: prestada, reservada o disponible Cliente (Usuario): datos tarjeta de crdito, nmero de pelculas alquiladas Informacin a mostrar: Sobre pelculas, sobre peticin de datos, sobre resultado del alquiler realizado.
Captura de Requisitos:
3) Definir prototipo IU
O tra P e lc u la
B uscar
S a lir
V o lv e r D a to s P e lc u la
C o n tin u a r [c o rre c to ]
A lq u ila r
2.1 Anlisis
El objetivo final del anlisis es analizar los requisitos utilizando el lenguaje de los desarrolladores y producir una vista interna del sistema
Modelo de Casos de Uso Se describe con el lenguaje del cliente. Presenta una vista externa del sistema. Est estructurado por los casos Est de uso. Se utiliza como contrato entre el cliente y los desarrolladores sobre lo que debera o no deber hacer el sistema. Captura la funcionalidad del sistema. Define casos de uso. Modelo de Anlisis An Se describe con el lenguaje del desarrollador. Presenta una vista interna del sistema. Est estructurado por las clases Est de anlisis. an Seala cmo incorporar esa Se c funcionalidad en el sistema Define realizaciones de casos de uso, y cada una de ellas representa el anlisis de un caso an de uso.
Actividades:
1. Analizar los Casos de Uso (identificar clases y describir interacciones) 2. Analizar cada Clase de Anlisis (identificar responsabilidades, atributos y relaciones)
a) Clases Entidad: Informacin que se manipula en la realizacin del casos de Entidad uso. Ejemplo: Clases Entidad del Caso de Uso Alquilar Pelcula: Ficha Pelcula y Ficha Cliente. b) Clases Interfaz: Identificar una clase interfaz por cada: 1) Actor humano. Si dicho actor tiene ya una clase interfaz habra que estudiar la posibilidad de reutilizarla para minimizar el nmero de ventanas con las que interacta el actor. 2) Clase entidad encontrada que represente informacin con la que el usuario humano va a interactuar. 3) Sistema externo, y hacer que esa clase interfaz sea el canal de comunicacin con l. (Ej. I.Usuario; I. Banco; I. Pelculas; I. Sistema. Contable; I.Dispensador). c) Clases Control: Identificar una clase de control responsable de la coordinacin del caso de uso. Una clase de control puede actuar para varios casos de uso y se puede encapsular en una clase interfaz, especialmente si el actor maneja gran parte del control
Anlisis: 1)
Diagrama de Colaboraciones:
1: Buscar Pelculas 2 :Mostrar Pelcula 3: Coger Informacin 4: Seleccionar 5: Pelcula Seleccionada 6: Confirma 7: Ordenar Pelcula 8: Solicitar Datos de Pago 9: Enviar Datos de Pago 10: Ordenar Pago y Verificar 11: Proporcionar Pelcula 12: Proporcionar Recibo 13: Actualizar F. Clientes 14: Actualizar F. Pelculas 15: Actualizar S. Contable
:I. Banco
Banco
10
1, 6, 9
:Usuario
:I. Usuario 2 5
:Gestor 13
15
Sistema Contable
Anlisis: 2) Analizar cada Clase de Anlisis (identificar responsab., atributos y relaciones) responsab.
Responsabilidades de la clase Gestor
La responsabilidad de esta clase en el Caso de Uso "Alquilar Pelcula" es Ordenar Pelcula, que implica: Solicitar Datos de Pago mediante la tarjeta de crdito. Ordenar al banco el pago y su verificacin. Ordenar al recibo. Actualizar Actualizar Actualizar dispensador la entrega al usuario de la pelcula y del la informacin sobre el cliente la informacin sobre las pelculas el balance de la empresa
Otras responsabilidades provenientes de otros casos de uso: Gestionar el envo de recordatorios Gestionar la devolucin de la Pelcula Gestionar la carga y descarga de pelculas ...
CU: Alquilar pelcula
Anlisis: 2) Analizar cada Clase de Anlisis (identificar responsab., atributos y relaciones) responsab.,
- El nombre de un atributo debera ser un sustantivo - Los tipos de los atributos deben ser conceptuales y, a ser posible, no restringidos por el entorno de programacin. - Hay que reutilizar los tipos ya existentes. - Una instancia de un atributo no puede ser compartida por varios objetos de anlisis.
- Si el nmero de atributos hace que una clase sea difcil de entender, ser mejor crear clases que los separen. - Los atributos de las clases entidad deben ser obvios. - Los atributos de clases interfaz que interactan con actores humanos a menudo son componentes grficos que el actor debe manipular. - Los atributos de clases interfaz que interactan con actores que son sistemas externos, a menudo representan propiedades del protocolo o interfaz de comunicacin. - Las clases de control no suelen tener atributos, salvo para representar valores que deben mantenerse durante la ejecucin de un caso de uso.
Anlisis: 2) Analizar cada Clase de Anlisis (identificar responsab., atributos y relaciones) responsab., relaciones)
Ficha
I. Pelculas 1
Ficha Pelcula
Generalizacin
Agregacin
2.2 Diseo
El objetivo final es producir un Modelo Lgico del sistema a implementar Modelo de Anlisis An Modelo de Diseo Dise
Es un modelo conceptual y genrico, es una abstraccin gen abstracci del sistema. Es menos formal. Es un bosquejo del diseo dise del sistema. Puede no mantenerse durante todo el ciclo de vida del software. Define una estructura para modelar el sistema.
Es un modelo fsico y f concreto, es un plano de la implementacin. implementaci Es ms formal. m Es una realizacin del diseo realizaci dise del sistema. Debe ser mantenido durante todo el ciclo de vida del software. Da forma al sistema.
2.2 Diseo
Actividades
1. Disear la Arquitectura (identificar nodos y configuraciones, clases relevantes) 2. Disear Casos de Uso (identificar clases de diseo, interacciones entre objetos) 3. Disear Clases de Diseo (identificar operaciones, atributos, relaciones)
Diseo: 1)
Modelo de Despliegue. Todos los actores del caso de uso interactuarn con el sistema en el mismo sitio fsico? Qu requerimientos de computacin necesito en cada nodo? Qu tipo de conexiones o red existe entre los nodos? Qu protocolos manejan? Cules son sus caractersticas? Tengo requisitos del tipo Copias Redundantes para caso de fallos? Copia de seguridad de BBDD?
Banco
* Internet *
Sistema Local
1
Sistema Central
Sistema Contable
Usuario
Internet
Dispensador
Diseo: 1)
Clases Activas, que necesiten estar ejecutndose concurrentemente. Se suelen identificar observando la distribucin del sistema en nodos. Debe existir al menos un objeto activo por cada nodo. Clases relacionadas con las comunicaciones entre nodos
Clases de Anlisis
Internet
10
Diseo: 2)
Disear Casos de Uso (identificar clases de diseo, (identificar diseo, interacciones entre objetos)
Identificar Clases de Diseo: Diseo Identificar clases de diseo que permitan implementar las clases de anlisis (tener en cuenta el modelo de despliegue). Estudiar los requisitos especiales (de rendimiento, de memoria, de diseo) de las clases de anlisis, e identificar clases de diseo necesarias.
Diseo: 2) Diseo:
Disear Casos de Uso (identificar clases de diseo, (identificar diseo, interacciones entre objetos)
Requisito especial sobre las Clases de Anlisis Ficha de Pelcula y Ficha de Cliente del caso de uso Alquilar Pelcula. Ficha de pelcula y Ficha de Cliente que se generalizaron en el Anlisis a la clase Ficha deben poder manejarse de una manera organizada y eficiente, por lo que es necesario crear Clases de Diseos que manejen Listas de cada tipo de Ficha. Requisito especial sobre la Clase de Anlisis I. Usuario I. Usuario debe ser una clase activa ya que debe estar lista para responder a cualquier peticin del usuario en cualquier momento (como cancelar un alquilar mientras se procesa o salir del sistema mientras ste busca la informacin de una pelcula). Unificacin de las Clases de Anlisis I. Usuario e I. Pelculas I. Pelculas se absorbe en la clase de diseo I. Usuario con objeto de reunir en una sola clase todas las interfaces grficas.
11
Diseo: 2)
Disear Casos de Uso (identificar clases de diseo, (identificar diseo, interacciones entre objetos)
Absorbida en I. Usuario Lista Fichas Clientes Lista Fichas Pelculas Pel Incluida para manejar Clientes Incluida para manejar Pelculas Pel
Ficha Pelcula Pel Ficha Cliente I. Dispensador I. Sistema Contable (1) I. Sistema Contable (2) I. Banco
Ficha Pelcula Pel Ficha Cliente I. Dispensador I. SC. Local I. SC. Central I. Banco Del Modelo de Despliegue Del Modelo de Despliegue. Activa
Diseo: 2)
Disear Casos de Uso (identificar clases de diseo, (identificar diseo, interacciones entre objetos)
* 1
I. Usuario
Usuario
Gestor
I. SC. Local
I. SC. Central
Sistema Contable
1 *
Ficha pelculas
1
I. Dispensador
*
Ficha Cliente
Dispensador
12
Diseo: 2)
Disear Casos de Uso (identificar clases de diseo, interacciones entre objetos) objetos)
Diagramas de Secuencia: Incorpora instancias de los actores participantes, objetos de diseo y la transmisin de mensajes entre ellos. Ejemplo de Diagrama de Secuencia para la primera parte de la realizacin del Caso de Uso Alquilar Pelcula
:U s u a r io B uscar
: I. U s u a r io
:L is ta d e F ic h a s
:F ic h a P e lc u la
:G e s to r
: I. B a n c o
:B a n c o
B u sc a r() O b te n e r In f o () S e le c c io n a r
O r d e n a r P e li( )
O rd e na r P a g o () O rd e n a rP a g o ()
Diseo: 3)
Identificar las Operaciones Identificando los mensajes a los que debe responder en el Diagrama de Secuencia. Analizando las responsabilidades de la clase de anlisis de la que deriva. A menudo implican una o varias operaciones. Contemplando los requisitos especiales de la clase de anlisis de la que deriva, por ejemplo el acceso a un gestor de BBDD. Aadir la visibilidad de cada operacin. Usar la sintaxis del lenguaje de implementacin a utilizar. Las operaciones de la clase de diseo necesitan soportar todos los roles que la clase desempea en las diferentes realizaciones de casos de uso .
G e sto r
I. B a nco
+s olic itarD atosP ag o(): D atos TC + ord en arP eli(): R etorn oO p er aci n + entreg arP elculaR ecib o() + ac tualizarB alanc e() + ac tualizarC liente() + ac tualizarP elc ulas () +rec ord atorios () +d evolv er P elcula(): R etorn oO p er ac ion +c arg arP elc ula() +d esc arg arP elcula
13
Diseo: 3)
Identificar Atributo Los atributos deben ser los requeridos para realizar sus operaciones. Hay que tener en cuenta los atributos obtenidos en la fase de Anlisis. Los tipos de atributos se restringen a los tipos disponibles en el lenguaje de programacin a usar. Hay que reutilizar tipos de atributos. Si una clase de diseo resulta compleja por culpa de sus atributos, se pueden agrupa atributos en clases independientes .
FichaCliente
-DatosTarjetaCredito: TarjetaCredito -NombreApellidos: String -NumeroAlquiladas: int
TarjetaCredito
-NombreApellidos: String -NumeroTarjeta: int[10] -FechaCaducidad: Date
Diseo: 3)
Identificar Asociaciones, Agregaciones y Generalizaciones. Estudiar el diagrama de secuencias y ver qu asociaciones o agregaciones son necesarias. Agrupar objetos en agregaciones para mandarles mensajes a todos ellos. Estudiar asociaciones creadas en la fase de anlisis. Si el lenguaje de programacin no soporta el mecanismo de generalizacin o herencia se deben emplear los mecanismos de asociacin y agregacin.
+solicitarDatosPago(): DatosTC +ordenarPeli(): RetornoOperacin +entregarPelculaRecibo() +actualizarBalance() +actualizarCliente() +actualizarPelculas() +recordatorios() +devolverPelcula(): RetornoOperacion +cargarPelcula() +descargarPelcula
* *
Ficha Clientes
En la operacin devolverPelicula() se ha estimado que es mejor que exista esta agregacin entre las clases Ficha Pelcula y Ficha Cliente, para evitar el tener que recorrer las dos listas buscando primero la pelcula y despus al cliente.
14
Diseo: 3)
Sin Pelcula
+Devuelve() [nmero =1] +Alquila() +Devuelve() [nmero>1]
Con Pelcula
+Alquila() [nmero < n] +Devuelve() +Alquila() [nmero = n]
Mximo Alcanzado
Descripcin del Mtodo ActualizarPelcula de la clase Gestor /* En el diagrama de colaboraciones del caso de uso AlquilarPelcula, se observa que la operacin Actualizar F. Pelculas se realiza despus de Acualizar F. Cliente, por lo que se puede pasar al mtodo el cliente que la ha alquilado */ void ActualizarPelicula(Cliente, codigoPeli){ Pelcula = BuscaPelicula en listaFichaPelculas (codigoPeli); Pelcula <- es alquilada por Cliente; Pelcula <- es alquilada en esta fecha y Hora }
3. Implementacin
Codificar los resultados del Diseo en trminos de componentes tales como ficheros fuente, ejecutables, scripts, etc. Los objetivos de la implementacin son: Implementar las clases encontradas durante el diseo. En concreto, se implementan dentro de componentes (ficheros) que contienen cdigo fuente. Asignar los componentes ejecutables a los nodos del diagrama de despliegue. Probar los componentes individualmente e integrarlos en uno o ms ejecutables. Integrar los componentes en el sistema siguiendo un enfoque incremental
15
3. Implementacin
Actividades
1. Implementar Arquitectura (Identificar Componentes y Asignarlos a los nodos) 2. Implementar las Clases de Diseo ( Generar Cdigo, Implementar Operaciones, Realizar Pruebas de unidad e Integrar el Sistema)
A)
Identificar Componentes e Incorporarlos al Modelo. Agrupar clases por tipos en un componente (ficheros .h y .cpp en el lenguaje C++) A cada clase activa se le asignar un componente ejecutable.
Ficha
FichaPelculas
FichaCliente
Diagrama de componentes: Las cajas representan mdulos y las flechas indican una relacin de utilizacin (el mdulo que es origen de la flecha utiliza al mdulo que es destinatario de la misma). B) Asignar Componentes a los nodos: De acuerdo con el Modelo de Despliegue. Clases activas asignadas a nodos independientes.
ListaFichaPelculas
ListaFichaCliente
ListaFicha
Diagrama de Componentes para las clases Ficha, ListaFichas, FichaPeliculas y Ficha Clientes
16
Implementacin: 2)
A)
Implementacin: 2)
17
Implementacin: 2)
C) Realizar Pruebas de Unidad (de los Componentes Individuales) Pruebas de especificacin (pruebas de caja negra), que verifican el comportamiento de la unidad observable externamente. Pruebas de estructura (prueba de caja blanca), que verifica la implementacin interna de la unidad. Para cada componente se estudiar su implementacin interna y se tratar de verificar su correcto comportamiento algortmico. D) Integrar el Sistema Los objetivos de la integracin del sistema son dos: Crear un plan de integracin de los componentes en el sistema. Integrar cada componente antes de que sea sometido a las pruebas de integracin. Ser necesario incluir algunos componentes como stubs para poder desarrollar las pruebas de integracin. Es importante implementar casos de uso completos y a ser posible los ms importantes. Probablemente la implementacin de cada caso de uso podr requerir varios componentes.
4. Pruebas
El objetivo de esta fase es realizar pruebas sobre la estructura del sistema que se va formando con los mdulos implementados. Las pruebas que deben hacerse son de dos tipos: de integracin y del sistema.
Artefactos:
A) Casos de Prueba. Un caso de prueba indica una manera de probar el sistema. Incluye qu probar junto con su entrada o salida y bajo qu condiciones probar. Los casos de prueba pueden ser: Parecidos o Similares, diferencindose nicamente en algn dato de entrada y/o salida. De Instalacin en una plataforma: verifican que el sistema puede ser instalado en la plataforma del cliente. De Configuracin, sobre distintas plataformas: verifican que el sistema funciona correctamente en diferentes configuraciones. Negativos, intentando que el sistema falle, por ejemplo utilizando datos no esperados. De Tensin o Stress, probando el sistema cuando los recursos son insuficientes o hay competencias por ellos. B) Procedimientos de Prueba.. Un procedimiento de prueba especifica cmo realizar uno o varios casos de prueba. Son las instrucciones que los probadores deben seguir para realizar las pruebas. C) Modelo de Pruebas. Es la coleccin formada por los casos de prueba y procedimientos de prueba. D) Evaluacin de Prueba. Es una evaluacin de los resultados de la prueba realzada.
18
4. Pruebas
El objetivo de esta fase es realizar pruebas sobre la estructura del sistema que se va formando con los mdulos implementados. Las pruebas que deben hacerse son de dos tipos: de integracin y del sistema.
Actividades
1. Planificar y Disear las Pruebas de Integracin y de Sistema. 2. Realizar las Pruebas de Integracin y de Sistema
Principios generales: 1) Disear las pruebas de Integracin de Componentes. Se utilizan para verificar que los componentes interaccionan entre s de un modo apropiado despus de haber sido integrados en el sistema. Se toman como Casos de Prueba los casos de uso del diseo. Para ello se utiliza el Diagrama de Secuencia correspondiente y se disean combinaciones de entrada y salida del sistema que lleven a distintas utilizaciones de las clases, y en consecuencia de los componentes, que participan en el diagrama. Disear las pruebas del Sistema. Se usa para probar que el sistema funciona globalmente de forma correcta. Cada prueba del sistema prueba combinaciones de casos de uso bajo condiciones diferentes. Se prueba el sistema como un todo probando casos de uso unos detrs de otros y, si es posible, en paralelo. Se trata de ver que cada caso de uso funciona adecuadamente en distintas configuraciones hardware, de carga, con varios actores a la vez, en distinto orden, etc.
1)
19
Diseo de Prueba 32 de Caso de uso Alquilar Pelcula] Pelcula] Precondicin: el sistema tiene todas las pelculas cargadas, ninguna alquilada 1. Introducir usuario Fulanito Prueba32 (usuario admitido por el banco sin limite de crdito) 2. Seleccionar segunda pelcula (hay 3 copias) 3. Alquilarla 4. Recoger Pelcula y Recibo 5. Salir del sistema 6. Introducir usuario Fulanito Prueba32 7. Seleccionar segunda pelcula (hay 2 copias) 8. Alquilarla 9. Recoger Pelcula y Recibo 10.Salir del sistema 10.Salir 11.Introducir usuario Fulanito Prueba32 11.Introducir 12.Seleccionar segunda pelcula (hay 1 copias) 12.Seleccionar 13.Alquilarla 13.Alquilarla 14.Recoger Pelcula y Recibo 14.Recoger 15.Salir del sistema 15.Salir 16.Introducir usuario Fulanito Prueba32 16.Introducir 17.Seleccionar segunda pelcula (no debe haber copias) 17.Seleccionar 18.El sistema debe ofrecer la posibilidad de reservar 18.El 19.Reservar 19.Reservar 20.Salir del sistema 20.Salir
20