Ingeniería de Requisitos y UML: Conceptos Clave

Clasificado en Informática

Escrito el en español con un tamaño de 3,57 KB

Ingeniería de Requisitos

¿Qué es un Requisito?

Un requisito es un flujo de trabajo fundamental cuyo propósito esencial es orientar el desarrollo hacia el sistema correcto. Esto se logra mediante la descripción de los requisitos del sistema de forma tal que se pueda llegar a un acuerdo entre el cliente (usuario) y los desarrolladores del sistema sobre lo que el sistema debe hacer y no hacer (alcance, límite o frontera). De esta manera, entendemos en forma clara la necesidad del usuario. El conjunto de todos los requisitos forma la base para el desarrollo del sistema o componente del sistema.

¿Qué es un Requisito de Software?

Un requisito de software puede ser:

  • Una capacidad del software necesaria por el usuario para resolver un problema o alcanzar un objetivo, que sirva para la toma de decisiones.
  • Una capacidad del software que debe ser reunida o poseída por un sistema o componente del sistema para satisfacer un contrato, especificación, estándar u otra documentación formal.
  • Es una descripción completa del comportamiento del sistema que se va a desarrollar.

Tipos de Requisitos:

  • De usuario: Necesidades que los usuarios expresan verbalmente.
  • Del sistema: Componentes que debe tener para realizar determinadas tareas.
  • Funcionales: Servicios que el sistema debe proporcionar.
  • No funcionales: Restricciones que afectan al sistema (rendimiento, plataforma, fiabilidad, hardware y redes).

Gestión de Requisitos

La gestión de requisitos se encarga de gestionar los cambios en los requisitos de un sistema y se integra en la gestión del proyecto. Los requisitos de un sistema evolucionan, no son estables.

Para su gestión hay que tener en cuenta algunos aspectos: requisitos estables y volátiles (mutables, emergentes, organizacionales y de compatibilidad), identificación y almacenamiento, gestión del cambio, trazabilidad, gestión de riesgos.

Beneficios de la Gestión de Requisitos:

  • Mejor control de proyectos complejos.
  • Mejora en la calidad del software y satisfacción del cliente.
  • Reducción en los retrasos y en los costos del proyecto.
  • Mejora en la comunicación del equipo.
  • Facilita la conformidad con estándares y regulaciones.

Conceptos de UML

Clases Abstractas

Las clases abstractas son clases que no pueden ser instanciadas. Se utilizan en jerarquías de generalización y tienen al menos una operación abstracta que debe ser implementada por algún método en un nivel más bajo de abstracción. (Las clases abstractas son las primitivas o las padre, por ejemplo, Figura, y como objetos, Cuadrado y Triángulo).

Asociación por Composición

La asociación por composición es una forma de agregación con una fuerte relación de pertenencia y vidas coincidentes de la parte con el todo. Existe una dependencia existencial: el elemento dependiente desaparece al destruirse el que lo contiene. (Ejemplo: Fernet con coca). Se puede decir que el objeto contenido es parte constitutiva y vital del que lo contiene.

Generalización

La generalización es una relación entre un elemento general (superclase o padre) y un tipo más específico de ese elemento (subclase o hijo). El hijo puede agregar nueva estructura y comportamiento o modificar el comportamiento del padre. Es factorizar los elementos comunes de un conjunto de clases en una clase más general.

Entradas relacionadas: