Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Analisis y diseo La mayora de proyectos de software son complejos, y la estrategia primaria para superar la complejidad, es la descomposicin (divide y vencers). La estrategia es dividir el problema en unidades ms pequeas que sean manejables. Un enfoque tradicional para realizar esto fue el anlisis y diseo estructurados, donde se trata de descomponer el problema en funciones o procesos. Este mtodo origina una divisin jerrquica de procesos constituidos por sub-procesos. Por ejemplo, una descomposicin por funciones o procesos en anlisis y diseo estructurados, de un Sistema de Informacin de Biblioteca podra ser el siguiente: Otra forma de realizar la descomposicin, es usando un esquema de anlisis y diseo orientado a objetos. En este esquema, se busca descomponer el problema en objetos, y no en funciones. Por ejemplo, una descomposicin orientada a objetos del Sistema de Informacin de Biblioteca podra ser la siguiente: Algunas de las tareas a realizarse en la etapa de anlisis son las siguientes: 1. Definir los requerimientos. 2. Definir los casos esenciales de uso. 3. Crear y perfeccionar los diagramas de casos de uso. 4. Crear y perfeccionar el modelo conceptual. 5. Crear y perfeccionar el glosario. 6. Definir los diagramas de secuencia de los sistemas. 7. Definir los contratos de operaciones. Algunas de las tareas a realizarse en la etapa de diseo son las siguientes: 1. Definir los casos reales de uso. 2. Definir los reportes, la interfaz de usuario y la secuencia de las pantallas.
3. Perfeccionar la arquitectura del sistema. 4. Definir los diagramas de interaccin. 5. Definir los diagramas de diseo de clases. 6. Definir el esquema de la base de datos. Caso de estudio: el punto de venta Supongamos como caso de estudio el sistema de una terminal de punto de venta. Esta terminal es un sistema automatizado con el que se registran las ventas y se realizan los pagos. Por lo general este tipo de sistemas comprenden hardware (un computador y un lector de cdigo barras) y software (el sistema que se ejecuta en la terminal). Suponga que se nos ha contratado para crear este software. Los requerimientos Los requerimientos son una descripcin de las necesidades o deseos de un producto. La meta principal en esta etapa es identificar y documentar lo que en realidad se necesita, en una forma en que pueda fcilmente ser transmitido al cliente y al equipo de desarrollo. Se recomienda aqu definir al menos los siguientes puntos: Panorama general Metas Funciones del sistema Atributos del sistema a) Panorama general Este proyecto tiene por objeto crear un sistema de terminal para el punto de venta que se utilizar en las ventas al menudeo. b) Metas
En trminos generales, la meta es una mayor automatizacin del pago en las cajas registradoras, y dar soporte a servicios ms rpidos, ms baratos y mejores. Ms concretamente, la meta incluye: Pago rpido de los clientes. Anlisis rpido y exacto de las ventas. Control automtico del inventario. c) Funciones del sistema Las funciones del sistema son lo que ste deber de hacer. Hay que identificar estas funciones y listarlas en grupos lgicos. Para verificar que X es en verdad una funcin del sistema, la siguiente frase deber tener sentido: El sistema deber hacer X. Por ejemplo: el sistema deber autorizar pagos a crdito. Las funciones pueden clasificarse en tres categoras: evidentes, ocultas y superfluas. Las evidentes deben realizarse, y el usuario debe saber que se han realizado. Las ocultas tambin deben realizarse, y puede que no sean visibles para el usuario. Muchas de estas funciones se omiten (errneamente) durante el proceso de obtencin de requerimientos. Las superfluas son opcionales, y su inclusin no repercute significativamente en el costo ni en otras funciones. Las siguientes son algunas de las funciones ms representativas del sistema de punto de venta: Funciones bsicas: Referencia Funcin Categora R1.1 Registra la venta en proceso (actual): los productos comprados. evidente R1.2 Calcula el total de la venta actual; se incluye el impuesto. evidente R1.3 Captura la informacin sobre el objeto comprado usando su cdigo de barras y un lector, o usando una captura manual de un cdigo de producto. evidente R1.4 Reduce las cantidades del inventario cuando se realiza una venta. oculta R1.5 Se registran las ventas efectuadas. oculta
R1.6 El cajero debe introducir una identificacin y una contrasea para poder utilizar el sistema. evidente R1.7 Ofrece un mecanismo de almacenamiento persistente. oculta R1.8 Ofrece mecanismos de comunicacin entre los procesos y entre los sistemas. oculta R1.9 Muestra la descripcin y el precio del producto registrado. evidente Funciones de pago: Referencia Funcin Categora R2.1 Maneja los pagos en efectivo, capturando la cantidad ofrecida y calculando el saldo deudor. evidente R2.2 Maneja los pagos a crdito, capturando la informacin crediticia a partir de una lectora de tarjetas, o mediante captura manual, y autorizando los pagos con el servicio de autorizacin (externa) de crditos de la tienda a travs de una conexin por modem. evidente R2.3 Maneja los pagos con cheque, capturando el nmero de RUT y telfono mediante captura manual, y autorizando los pagos con el servicio de autorizacin (externo) de cheques de la tienda a travs de consulta telefnica. evidente R2.4 Registra los pagos en el sistema de cuentas por cobrar, pues el servicio de autorizacin de crdito debe a la tienda el monto del pago. oculta d) Atributos del sistema Los atributos del sistema son cualidades no funcionales que a menudo se confunden con las funciones. Por ejemplo: facilidad de uso, tolerancia a fallas, tiempo de respuesta, metfora de interfaz, plataformas. Los atributos tienen un posible conjunto de detalles de atributos, los cuales tienden a ser valores discretos, confusos o simblicos. Por ejemplo: tiempo de respuesta = (psicolgicamente correcto) metfora de interfaz = (grfico, colorido, basado en formularios)
Algunos atributos del sistema tambin pueden tener restricciones de frontera del atributo, que son condiciones obligatorias de frontera, generalmente en un rango numrico de valores de un atributo. Por ejemplo: tiempo de respuesta = (dos segundos como mximo) Algunos atributos del sistema de punto de venta son: Atributo Detalles y restricciones de frontera tiempo de respuesta (restriccin de frontera) Cuando se registre un producto vendido, la descripcin y el precio aparecern en un segundo. metfora de interfaz (detalle) Ventanas orientadas a la metfora de un formulario y cuadros de dilogo. (detalle) Maximiza una navegacin fcil con teclado y no con mouse. tolerancia a fallas (restriccin de frontera) Debe registrar los pagos a crdito autorizados que se hagan a las cuentas por cobrar en un plazo de 24 horas, aun cuando se produzcan fallas de energa o del equipo. plataformas del sistema operativo (detalle) Microsoft Windows 95, 98, 2000 y NT. Finalmente, es conveniente describir todos los atributos del sistema que se relacionen claramente con las funciones especificadas. Adems, los detalles de los atributos y las restricciones de frontera pueden catalogarse como obligatorios u opcionales. Por ejemplo: Ref. Funcin Categora Atributo Detalles y restricciones Categora R1.9 Mostrar la descripcin y el precio del producto registrado. evidente tiempo de respuesta 1 segundo como mximo obligatorio
metfora de interfaz obligatorio Pantallas basadas en formularios. Con colores.
R2.4 Registrar los pagos a crdito en el sistema de cuentas por cobrar, pues el servicio de autorizacin de crdito debe a la tienda el importe del pago. oculto tolerancia a fallas Debe registrar en las cuentas por cobrar en un plazo de 24 horas, aun cuando se produzcan fallas de energa o del equipo. obligatorio
tiempo de respuesta 10 segundos como mximo obligatorio
A pesar de las diferentes interpretaciones que cada desarrollador tenga sobre el conjunto de actividades mostradas en la tabla anterior, podemos identificar y extraer cinco actividades principales que son:
Tabla 1. Actividades de la IR para diferentes modelos de procesos de Ingeniera de Software MODELO Oliver and Steiner 1996 EIA / IS-632 IEEE Std 1220- 1994 CMM nivel Repetitivo RUP (2)
Anlisis de requerimientos
Anlisis de Requerimientos
Identificacin de requerimientos
Anlisis funcional
Actividades
Identificacin de Comprender las restricciones del necesidades de los sistema a desarrollar involucrados Anlisis de los requerimientos Definir el sistema
Sntesis
Validacin de requerimientos
Anlisis funcional
Evaluacin y estudio Comunicacin de los Modificar la de funciones requerimientos definicin del sistema Verificacin de funciones Validacin de requerimientos Administrar los cambios de requerimientos
Introduccin al UML
El Unified Modelling Languaje (UML) provee a los analistas y arquitectos de sistemas que trabajan en el diseo y anlisis de objetos de un lenguaje consistente para especificar, visualizar, construir y documentar los artefactos de un sistema de software, as tambin es til para hacer modelos de negocios. Esta especificacin es la evolucin del las tres anteriores tecnologas orientadas a objetos lideres (Booch, OMT y OOSE). El UML es la unin de estos lenguajes de modelos y an mas ya que incluye expresiones adicionales para manejar problemas de modelaje que los mtodos anteriores no cubran plenamente. El desarrollo de el UML empez en octubre de 1994 cuando Grady Booch y Jim Rumbaugh de Rational Software Corporation iniciaron su trabajo para unificar los mtodos de Booch y OMT. Debido a que los mtodos Booch y OMT ya haban madurado independientemente y eran reconocidos como mtodos lderes en el desarrollo orientado a objetos, Booch y Rumbaugh unieron fuerzas para forjar una unificacin completa de los dos mtodos. Una versin preliminar 0.8 de el mtodo unificado fue dad a conocer en octubre de 1995. Poco despus, Ivar Jacobson y su compaa Objectory se unieron a Rational y a su trabajo de unificacin, uniendo el mtodo OOSE (Object Oriented software engineering). El Nombre de Objectory es ahora dado mayormente para describir a el Proceso que acompaa al UML el Rational unified process Los objetivos de la unificacin fueron: el mantenerlo simple, el quitar elementos de los lenguajes de Booch, OMT y OOSE que no funcionaran en la prctica, el aadir elementos de otros mtodos que fueran mas efectivos y el inventar nuevas construcciones solamente cuando la solucin existente no estuviera disponible. Varios nuevos conceptos existen en UML, incluyendo:
Distribucin y concurrencia Patrones y colaboracin Diagramas de actividad Refinamiento (para manejar las relaciones entre los niveles de abstraccin) Interfaces y componentes y Un lenguaje para restricciones Aunque el UML define un leguaje preciso, no es una barrera para el desarrollo futuro en los conceptos de modelaje. Se han incorporado muchas tcnicas lderes, pero se espera que tcnicas adicionales influyan las versiones futuras del UML. Muchas tcnicas avanzadas pueden ser definidas usando el UML como base. El UML puede ser extendido sin redefinir su ncleo. UML para el manejo de requerimientos En este trabajo nos enfocaremos principalmente a la notacin usada para el manejo de requerimientos. Una descripcin completa de la notacin UML se encuentra en el documento [A4]. El UML posee varios tipos de diagramas y construcciones que pueden ser usadas para el diseo de sistemas, el artefacto especfico para el manejo de requerimientos es el Use Case y los Actores.
Un Punto de extensin es una referencia a un punto dentro del use case en el que las secuencias de acciones de otros use cases pueden ser insertadas. Cada punto de insercin tiene un nombre nico dentro de el use case y adems cuenta con una descripcin de el punto de insercin dentro de el comportamiento de el use case.
Notacin
Un diagrama de use case es una grfica de actores, un conjunto de use cases, posiblemente algunas interfaces y las relaciones entre estos elementos. Las relaciones son asociaciones entre los actores y los use cases generalizaciones entre los actores y generalizaciones, extensiones e inclusiones entre los use cases.
Inclusin una relacin de inclusin de el use Case A hacia el Use case B indica que una instancia de el use case A tambin contendr el comportamiento especificado por B. El comportamiento es incluido en el punto definido en A
Restricciones de diseo Una norma oficial o el uso de cierto tipo de estructura de sistema puede ser especificado en el use case o en los diagramas de colaboracin que realizan dicho use case.
Materiales El material que debe de ser usado puede ser definido como un atributo de el use case. Pero no de desempeo, ni no funcionales, ni de entrenamiento.
El Tiempo fuera de servicio (Ejemplo: "No mas de 6 minutos por ao por mquina")
La Independencia ("Las fallas de software y hardware sern restablecidas sin intervencin humana")
Si queremos modelar estos requerimientos en Use Cases nos encontraremos con varios obstculos: Quien es el actor? Si el requerimiento se enfoca a fallas de software o hardware, Quien Genera la falla?. Una falla de un sistema es prcticamente impredecible, por lo que sealar a una entidad como la provocadora de una falla es imposible. Mas aun el especificar las acciones que esta entidad realiza con el use case para provocar la falla son ilimitadas. Como realizamos el use case? Si un use case se realiza con la colaboracin de clases, que clase genero la falla?. Para realizar correctamente este use case deberamos modelar el sistema entero y especificar para
cada componente las acciones que podran llevar a una falla. Esto definitivamente no es un trabajo muy prctico que digamos.
Conclusiones
El hecho de poder manejar un requerimiento como un Objeto hace de los use cases una herramienta sumamente poderosa en el manejo y especificacin de requerimientos. Sin embargo aun le falta evolucionar para cubrir en su totalidad toda la extensa gama de requerimientos que pueden ser aplicables a un sistema. Este tema de investigacin es precisamente el que ha dado nacimiento al proyecto de tesis que alimenta el contenido de esta pagina web. Esperamos que los resultados que obtengamos sean satisfactorios (los cuales sern publicados en esta pgina a finales de ao).
Referencias
[A4] OMG Unified Modeling Language Specification Version 1.3, June 1999