Ir al contenido principal

8 Técnicas de análisis de requerimientos de software




En la Ingeniería de requisitos, el análisis de los requerimientos del software es la etapa que sigue después que estos han sido levantados y documentados en un registro o matriz de trazabilidad.

La especificación de requerimientos, es una actividad que cada vez toma mayor preponderancia en la gerencia de proyectos, dado que se ha demostrado que una causa recurrente en su fracaso se origina de una inadecuada especificación de requisitos.
Con este artículo, continuamos nuestra serie de Ingeniería de requisitos, continuando con los conceptos desarrollados en el artículo anterior de 7 Técnicas para el levantamiento de requerimientos de software.

El análisis de requerimientos consiste en aplicar una serie de técnicas para desglosar y analizar los requisitos y sus partes, algunas de estas técnicas son: Modelado de procesos, Modelado de dominio, casos de uso, inspecciones, listas de chequeo y prototipos.

8 Técnicas para analizar requerimientos de software


Las técnicas de análisis de requerimientos expuestas a continuación parten de la especificación de requisitos o matriz de trazabilidad de requerimientos del proyecto.


1.- Descomposición funcional

  • La descomposición funcional se refiere al proceso de identificar y resolver las relaciones funcionales en sus partes constituyentes, de tal forma que la función global pueda ser reconstruida a partir de sus partes.
  • Por lo general, la descomposición funcional se realiza para identificar y entender los componentes o partes que constituyen un todo (o función global).
  • En este proceso, es vital identificar las interacciones entre componentes.
  • Aplicado a la Ingeniería de requisitos, consiste en tomar los requerimientos de software, dividirlos en partes y analizarlos individualmente. De ser necesario, se pueden descomponer en más partes hasta lograr un nivel adecuado de detalle.
  • En cierto sentido, el proceso es similar al de la elaboración de una estructura de desglose de trabajo de un proyecto.
  • En Ingeniería de sistemas, la descomposición funcional consiste en definir un sistema en términos funcionales, para luego definir funciones de más bajo nivel y establecer las relaciones con estas funciones de alto nivel.
  • La intención es dividir un sistema de tal forma que cada componente se pueda describir sin necesidad de referir a otro componente.
  • De esta forma, cada parte del sistema tendrá funciones independientes, que pueden reusarse y reemplazarse.
2.- Especificación vía Sentencias Textuales
  • Es la forma tradicional de la especificación de requerimientos de software.
  • Se usan especificaciones textuales en lenguaje natural, que se documentan en matrices de trazabilidad de requerimientos o definiciones del alcance.
  • El procedimiento consiste en tomar el requerimiento producto del levantamiento de información, para desarrollar una narrativa más detallada.
  • No usa herramientas visuales como los flujogramas o estructura como los casos de uso, es simplemente una descripción más detallada del requerimiento en lenguaje natural.
3.- Modelado del proceso





  • Comprende la elaboración de diagramas de flujo de procesos (Flujogramas) a partir de los requerimientos del software.
  • Existen diversas herramientas de modelado de procesos, cada una de las cuales posee sus propios símbolos y reglas.
  • Es muy útil para entender el trabajo realizado en múltiples pasos, tareas, roles y departamentos intervinientes.
  • Los procesos son iniciados por eventos y pueden abarcar actividades automatizadas, manuales o combinación entre ambas.
  • Su naturaleza visual ayuda a la comprensión y comunicación a terceros.
  • Cuando los procesos son complejos, deben desglosarse en componentes (subprocesos).
  • La relación entre los diagramas de flujo y la gerencia de proyectos es fundamental para el éxito.
4.- Modelo de dominio

  • En Ingeniería de software, en análisis de dominio consiste en analizar sistemas o software relacionados en un dominio, con la finalidad de encontrar sus partes comunes y partes que los diferencian.
  • Produce un modelo de contexto de negocio para todo el sistema.
  • Un modelo de dominio comprende diagramas conceptuales que incluyen tanto el comportamiento de un sistema como sus datos.
  • Un tipo de modelo de dominio son los diagramas de funcionalidades (Features Diagrams), que es una representación “compacta” del sistema o aplicación en términos de sus características.
  • El análisis de dominio produce modelos orientados a objetos o modelos relacionales de datos, que pueden ser usados por los desarrolladores de software como base de arquitecturas de software y aplicaciones.

5.- Casos de Uso

  • En el Lenguaje de Modelado Unificado (UML), un caso de uso es una secuencia de interacciones entre un sistema y alguien o algo que usa alguno de sus servicios.
  • En el ámbito académico y profesional, es una de las técnicas de mayor difusión para especificar el comportamiento del Sistema.
  • Formato simple y estructurado que puede ser compartido entre usuarios y desarrolladores.
  • Además de usarse para analizar los requerimientos de software, también pueden usarse en el diseño del sistema e inclusive para definir pruebas de caja negra (Testing).
  • Son útiles en sistemas informáticos orientados a la funcionalidad (transacciones con el usuario), que se van a implementar orientados a objetos y con UML.
  • No son la mejor opción en sistemas sin usuarios, o dominados fundamentalmente por requerimientos no funcionales.





Comentarios

Entradas populares de este blog

Gestión de Proyectos: 5 tareas clave para dirigir la fase de ejecución

Independientemente del enfoque de gestión de proyectos adoptado, bien sea el predictivo tradicional, o los nuevos enfoques ágiles, el llevar a feliz término un proyecto implica más que hacer una buena planificación y medición de los avances. En este artículo exploramos algunas tareas clave que deben convertirse en hábitos para el Jefe de Proyectos durante la fase de ejecución, abarcando aspectos como asegurar que todas las partes tengan el mismo entendimiento, guiar y apoyar al equipo, eliminación de impedimentos, resolución rápida de problemas, saber reconocer las señales de alerta y tomar acciones en función a ellas.

Testing de aceptación automatizado con selenium

La comunidad de ingeniería del software, está dando cada vez más importancia a las metodologías ágiles, y estas a su vez le dan un sitial de gran importancia al Software Testing de Aceptación Automatizado. Un ejemplo de esta situación es el “Desarrollo Guiado por Pruebas ( Test Driven Development )”, método en el que el código de programa es desarrollado de acuerdo a casos de prueba previamente definidos.

Crud con C# y SQL Server

  Para los que recién empiezan a desarrollar aplicaciones de escritorio, siempre tienen dudas de como realizar un CRUD ( Create, Read, Update y Delete ) de un registro, En esta oportunidad lo haremos con C# y SQL Server. Hay muchas formas de hacer un CRUD y con distintos  elementos windows forms. Lo importante es saber hacer un INSERT y luego procederemos con el UPDATE, DELETE y el SELEC para buscar un registro.   Crearemos el siguiente formulario con sus botones para cada acción del CRUD:   Usaremos los siguientes elementos:  Creamos la Base de Datos:  create database Productos;  go use Productos;  go create table postres (  id int not null identity,  nombre varchar(50) not null,  precio decimal(6,2),  stock float,  constraint pk_postres primary key(id) );   Ahora vamos con nuestro código. En los comentarios describo lo que hago en cada bloque de código:      // Instancio las Directivas. usin...