Metodologías y Requerimientos en Ingeniería de Software: Conceptos Clave y Procesos


Conceptos Fundamentales

Metodología.- Es la manera como se perciben y conocen los objetos y el conjunto de supuestos teóricos que respaldan al método.

Método.- Es un camino ordenado lógicamente, un conjunto de módulos o de pasos conducentes hacia un objetivo determinado, el cual debe ser adecuado al objetivo y se rechazará, aceptará o modificará en cuanto permita o no alcanzarlo. Enfoque estructurado para el desarrollo de software incluye notaciones, reglas, sugerencias de diseño y guías de procesos.

Procedimientos.– Conjunto de instrucciones que tienen la finalidad de ejecutar una tarea específica, organizados para obtener un resultado (es la manera en la que se llevan a cabo los métodos).

Modelo.- Es una estructura conceptual que sugiere un marco de ideas para un conjunto de descripciones, que de otra manera no podrían ser sistematizadas. Representación gráfica y/o textual de la información, ya sea de la Empresa o del Software (Sistema).

Herramientas de Modelado.- Permiten crear un «simulacro» del sistema, a bajo costo y riesgo mínimo. A bajo costo porque, al fin y al cabo, es un conjunto de gráficos y textos que representan el sistema, pero no son el sistema físico real (el cual es más costoso).

Ingeniería de Sistemas.- Se refiere a todos los aspectos relacionados con desarrollo de sistemas incluyendo hardware y software.

Ingeniería de software.- Es una disciplina de ingeniería que comprende todos los aspectos de la producción del software.

Principales Metodologías de Desarrollo de Software

1.- Ciclo de Vida Clásico (CVC)

Llamado modelo lineal secuencial o modelo en cascada. Sugiere un enfoque sistemático y secuencial del desarrollo del software.

a. Ingeniería del Sistema

Establece los requisitos de todos los elementos del sistema (hardware, software, recursos humanos), establece la planeación y evalúa la viabilidad del proyecto.

b. Análisis

Es el proceso de reunión de todos los requisitos y se centra especialmente en el software. Ayuda a comprender el dominio de la información para entender el comportamiento y rendimiento del software.

c. Diseño

Se centra en la estructura de datos y la arquitectura del software. Se especifica el ¿Cómo?

d. Codificación

Traducción del diseño a código.

e. Prueba

Implantación del código y pruebas al mismo.

f. Mantenimiento

Cambios que se realizan al software después de la entrega.

2.- Proceso Unificado Racional (RUP)

El RUP es un conjunto de metodologías adaptables al contexto y necesidades de cada organización. RUP divide el proceso de desarrollo en ciclos, teniendo un producto final al término de cada uno.

a. Concepción

Se hace un plan de fases, se identifican los principales casos de uso y se identifican los riesgos.

b. Elaboración

Se hace un plan de proyecto, se completan los casos de uso y se eliminan los riesgos.

c. Construcción

Se concentra en la elaboración de un producto totalmente operativo y eficiente, así como con el manual de usuario.

d. Transición

Se instala el producto en el cliente y se entrena a los usuarios. Como consecuencia de esto, suelen surgir nuevos requisitos a ser analizados.

3.- Desarrollo Iterativo

Se basa en el agrandamiento y perfección secuencial de un sistema a través de múltiples ciclos de desarrollo de análisis, diseño, implementación y pruebas.

En cada ciclo se aborda un conjunto pequeño de requerimientos, pasando por el análisis, diseño, implementación y pruebas.

Ventajas

  • La complejidad no es abrumadora
  • Se produce retroalimentación en una etapa temprana, ya que la implementación se realiza rápido con pequeñas partes del sistema.

Etapas

  1. Modelación del negocio: Objetivos, necesidades, alternativas, recursos, riesgos, etc.
  2. Requerimientos: Funciones del sistema, procesos, datos, etc.
  3. Análisis: Modelo casos de uso (diseño preliminar).
  4. Modelo conceptual inicial: Arquitectura del sistema.
  5. Diseño: Iteraciones para refinar diagrama de clase y pasar a implementación.
  6. Implementación: Obtener software (codificar, probar).

Requerimientos en Ingeniería de Software

Requerimientos no funcionales: Definen las propiedades y restricciones del sistema a construir o sobre el proceso que lo construirá. Los requerimientos no funcionales suelen ser más críticos que los funcionales, dado que su incumplimiento puede hacer inútil el sistema.

Clasificación de los requerimientos no funcionales

  • Requerimientos del Producto: Requerimientos que especifican que el producto debe comportarse de una determinada manera.
  • Requerimientos Organizacionales: Requerimientos que surgen de políticas y procedimientos de la organización (creadora o usuaria).
  • Requerimientos Externos: Requerimientos surgidos por factores externos al proyecto de desarrollo como tal.

1. Ingeniería de Requerimientos

Comprende todas las tareas relacionadas con la determinación de las necesidades o de las condiciones a satisfacer para un software. Esta facilita el mecanismo apropiado para comprender lo que quiere el cliente, analizando la solución, validando la especificación y gestión de los requerimientos para que se transformen en un sistema operacional.

1.1 Requerimientos de proceso (sistema)

Son las necesidades para determinar las acciones relacionadas con las operaciones que realiza el sistema. Las operaciones de un sistema se conocen como funciones, que son las actividades que se realizan en la empresa.

Tipos de requerimientos
  • Requerimientos funcionales: Son declaraciones de los servicios que proveerá el sistema, la manera en que reaccionará ante entradas particulares y de cómo se comportará en situaciones particulares.
  • Requerimientos del dominio: Son los que provienen del dominio de aplicación del sistema y que reflejan las características y restricciones de ese dominio. Pueden ser requerimientos funcionales nuevos, restringir los existentes o establecer cómo se deben ejecutar cálculos particulares.

1.2 Requerimientos de los usuarios (actores involucrados)

Son declaraciones, en lenguaje natural y en diagramas, de los servicios que se espera que el sistema provea y de las restricciones bajo las cuales debe operar. Representa lo que el usuario requiere ver (pantallas).

1.3 Requerimientos para el análisis y negociación

Una vez recopilados los requisitos, el producto obtenido configura la base del análisis de requisitos. Los requisitos se agrupan por categorías y se organizan en subconjuntos, se estudia cada requisito en relación con el resto, se examinan los requisitos en su consistencia, completitud y ambigüedad, y se clasifican en base a las necesidades de los clientes/usuarios.

1.4 Requerimientos para la gestión

Son los utilizados para la administración de los recursos necesarios para el desarrollo del sistema, como hardware, software, documentación, manuales, entre otros.

Procesos de la ingeniería de Requerimientos

A. Identificar las necesidades del cliente.

B. Evaluar la viabilidad del sistema.

C. Realizar un análisis técnico y económico.

D. Asignar funciones al software, hardware, gente y bases de datos.

E. Establecer restricciones de costo y tiempo.

F. Crear definición del sistema (base para trabajo posterior).

G. Generar documento con la definición del problema

H. La validación de los requerimientos.

Factibilidad del proyecto

Se determina si es posible desarrollar el proyecto en función de las necesidades, esto es si se tiene el equipo, la gente, la papelería y demás necesario para su desarrollo.

La factibilidad puede dividirse en:

Operativa (Técnica).- Equipo, Software y Recursos Humanos.

Económica.- Si cuenta con los recursos monetarios para el desarrollo.

Legal.- Determinar contratos y licencias del Software (obligaciones y derechos).

Especificación de los requerimientos

Documento donde se presenta la información de manera formal.

 Validación de los requerimientos

Se debe buscar la manera en que el cliente vea la información obtenida y valide lo que se ha analizado.

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *