2.4.- Planteamiento del problema. 2.4.1.- Analizar el enunciado del problema. El problema La parte más difícil en el desarrollo de un sistema es comprender, con suficiente grado de detalle, el problema a resolver. La descripción inicial del problema, generalmente, suele ser incierta e insuficiente para realizar un análisis adecuado de los requisitos de los usuarios. El análisis de requisitos es complejo, principalmente porque: Diferentes usuarios tienen distintas prioridades, a veces en conflicto. Los usuarios no suelen tener una visión clara y fácilmente expresable de lo que quieren. Por ejemplo, les resulta difícil distinguir entre lo que hace un sistema existente y lo que tiene que hacer un sistema adecuado. Es difícil imaginar un sistema del cual sólo se ha visto su descripción, por lo que los usuarios pueden pensar que la descripción es correcta cuando en realidad falta algo vital. Los encargados de hablar con los desarrolladores pueden no tener experiencia directa en el trabajo que realizan los usuarios del sistema. Como un primer intento, se puede redactar una narrativa que describa el problema a resolver. Ejemplo: "El Tecnológico X nos ha contratado para desarrollar un sistema de software para administrar su biblioteca. La biblioteca utiliza un programa que data de 1960, escrito en un lenguaje obsoleto. Con ese programa se llevan a cabo algunas tareas sencillas de gestión de libros y la búsqueda de usuarios por medio de un índice de credenciales. Se requiere construir un sistema que mantenga estos dos aspectos en línea" . Debido a que la información que arroja la narrativa anterior es muy escasa, se hace una investigación más detallada para averiguar hechos que ayuden a desarrollar un mejor sistema. Libros, Revistas y Periódicos. La biblioteca tiene libros, revistas y periódicos. Puede haber uno o más ejemplares de un libro. El primer ejemplar se marca como "reserva". Los ejemplares de libros se pueden prestar a domicilio, excepto los marcados como "reserva". El período de préstamo a domicilio puede variar de 1 a 3 días. Un usuario puede tener en préstamo a domicilio hasta tres libros simultáneamente. Las revistas y los periódicos no se prestan a domicilio. Consulta. Los usuarios pueden tomar los libros directamente de los anaqueles y leerlos dentro de la biblioteca. Al final, deberán depositarlos en los carritos dispuestos para tal efecto. Los empleados de la biblioteca se encargan de acomodar los libros que se encuentren en los carritos. Los usuarios leen las revistas y los periódicos en una sala especial. Préstamos. Es muy importante que el sistema lleve un control de las fechas de préstamo y devolución de los libros, de acuerdo al procedimiento reglamentado. El sistema deberá informar si hay ejemplares disponibles de un libro para préstamo a domicilio. Esto está mejor, pero todavía no queda claro cuáles son las diferentes tareas y quién necesita qué. 2.4.2.- Identificar la funcionalidad del sistema. Para que un sistema sea de alta calidad debe cubrir las necesidades de sus usuarios, por lo que el análisis de los sistemas debe hacerse con una fuerte orientación al usuario. Hay que identificar a los usuarios del sistema y a las tareas que deben realizar con el sistema. También hay que determinar cuáles tareas son las más importantes, para tomarlas como base en la planificación del desarrollo. Casos de uso Un caso de uso es una tarea que un actor ejecuta con ayuda del sistema. Un actor es un usuario del sistema que tiene un rol particular. En este caso, un usuario puede ser una persona o un sistema externo; lo importante es que no forma parte del sistema que se está desarrollando. El manejo de los casos de uso se facilita utilizando los diagramas de casos de uso de UML, donde un caso de uso se representa con un óvalo, y un actor con un monigote. Una línea une al actor con el caso de uso. Ejemplo: El detalle de cada caso de uso debería estar documentado en tercera persona y en voz activa. Ejemplo: Tomar prestado ejemplar de libro. Un usuario presenta un libro. El sistema verifica la identidad del usuario y que no tenga agotada su cuota de libros a préstamo. Si ambas verificaciones son positivas, el sistema registra la clave de identidad del usuario, la clave del ejemplar, la fecha actual y la fecha de devolución; en caso contrario, rechaza la solicitud de préstamo. En la siguiente figura se muestra el sistema de biblioteca con algunos casos de uso y algunos actores.