Como hemos visto en la parte introductoria a este trabajo, el primer paso a seguir durante el desarrollo de una aplicación es, antes que sentarse a ‘teclear’, el comprender de la manera mas completa posible las peticiones del usuario respecto a las características del producto que desea. Es evidente que durante esta etapa de desarrollo, la interacción con el cliente es obligatoria, ya que él y las personas que harán uso futuro del producto son los que comprenden realmente las situaciones que pueden presentarse durante la utilización. Primeramente vamos a citar los requerimientos que se nos presentaron, para ello se realizó una pequeña entrevista con el futuro usuario que expuso de manera global cuales eran sus interéses.
3.1- Requerimientos iniciales.
La obtención de requerimientos se facilita si se tiene un pizarrón disponible, y es recomendable que el cliente realice diagramas y exprese sus ideas de forma 'natural' es decir intentando enunciar con frases sencillas sus necesidades.
Se nos pidió:
Las situaciones potenciales, o principales que van a ocurrir al utilizar el sistema también se obtienen a partir de la entrevista con el cliente, simplemente se hace una 'recopilación de ideas', es decir, el cliente puede ir diciendo que cosas piensa que pueden suceder, estas se anotan, y posteriormente se reagruparán para el análisis de casos de uso.
Entre las situaciones más importantes que potencialmente se pueden
presentar, encontramos:
El paso siguiente en el análisis de requerimientos de una aplicación es la creación del modelo CRC. De acuerdo con Ambler, el modelo CRC es una colección de tarjetas CRC (Clase – Responsabilidad - Colaborador). Estas tarjetas se dividen en tres secciones que contienen la información del nombre de la clase, sus responsabilidades y sus colaboradores. A continuación se muestra cómo se distribuye esta información.
Una clase es cualquier persona, cosa, evento, concepto, pantalla o reporte. Las responsabilidades de una clase son las cosas que conoce y las que realiza, sus atributos y métodos. Los colaboradores de una clase son las demás clases con las que trabaja en conjunto para llevar a cabo sus responsabilidades.
En la práctica conviene tener pequeñas tarjetas de cartón por ejemplo, que se llenarán y que se mostrarán al cliente, de manera que se pueda llegar a un acuerdo sobre la válidez de las abstracciones propuestas.
Los pasos a seguir para llenar las tarjetas son los siguientes:
Para el proyecto que estamos analizando, las tarjetas CRC que se propusieron inicialmente fueron las siguientes:
Esta colección de tarjetas representan un intento inicial de encontrar abstacciones útiles para la resolución del problema. Podemos ver que entre otras cosas se busco una abstracción a la Vista Gráfica, esto aparentemente podría no ser tán relevante desde un principio, pero es una buena costumbre separar las cuestiones dependientes de la plataforma (despues veremos esto con más detalle), aparte de que esta abstracción engloba la generalidad de las ventanas que podrán aparecer posteriormente.
La definición de casos de uso implica el estudiar qué tanta posibilidad hay de realizar las situaciones potenciales que el cliente propone mediante las responsabilidades definidas en las tarjetas. Por ejemplo, si una de las situaciones potenciales es la de cargar datos, podemos ver que la abstracción StackDeImagenes tiene prevista esa posibilidad. Esto se debe realizar para las diversas situaciones potenciales.
Se menciona que el último paso a seguir es el de la disposición de las tarjetas, efectivamente, ya que las tarjetas se pueden ordenar de diversas maneras, se debe de aprovechar esto para tratar de encontrar una estructura lógica. Por ejemplo, en el caso anterior nos podemos dar cuenta que el Stack de Imágenes ocupa una posición importante dentro del arreglo, mientras que el histograma no tanto. Esto nos ayudara posteriormente durante la representación del diagrama de clases para encontrar similitudes entre clases o relaciones entre ellas.