Conceptos Esenciales de Ingeniería del Software: Procesos, Diseño y Ciclo de Vida

Enviado por Programa Chuletas y clasificado en Diseño e Ingeniería

Escrito el en español con un tamaño de 4,64 KB

Fundamentos de la Ingeniería del Software y el Proceso de Desarrollo

Definiciones Clave

  • Ingeniería del Software: Es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software.
  • Proceso del Software: Es un marco de referencia que contiene procesos, actividades y tareas involucradas en el desarrollo de un producto de software.
  • Proceso de Desarrollo del Software: Se lleva a cabo antes del proceso de desarrollo principal para dar soporte a la decisión de realizarlo.

Actividades del Proceso de Desarrollo del Software

Las actividades principales son:

  1. Estudio de viabilidad.
  2. Análisis de sistemas.
  3. Diseño del sistema.
  4. Implementación y pruebas.

Documentación y Requisitos

  • ERS (Especificación de Requisitos del Software): Documentación de los requisitos del software (funciones, prestaciones, restricciones de diseño y atributos) y de sus interfaces externas. Evoluciona conforme lo hace el proceso de desarrollo.

Modelado y Diseño del Sistema

Diagrama de Flujo de Datos (DFD)

  • Diagrama de Flujo de Datos: Es un diagrama en forma de red que se utiliza para modelar a distintos niveles de abstracción las funciones del sistema y los datos que fluyen entre ellas.
  • DC (Diagrama de Contexto): Establece los límites del sistema con el entorno y define sus flujos de datos de entrada/salida del sistema.
  • DS (Diagrama de Sistema): Representa las funciones principales del sistema y las relaciones que existen entre ellas.

Principios de Diseño Estructural

  • Regla de Balanceo: El contenido de todos los flujos de entrada/salida de un proceso debe coincidir con el contenido de todos los flujos que entran y salen del diagrama del nivel inmediatamente inferior que lo describe.
  • Redes Desconectadas: Subconjuntos de procesos que no tienen ninguna relación entre sí.
  • Datos Vagabundos: Aquellos datos que pasan por muchos módulos del sistema sin que estos los utilicen.

Acoplamiento (Grado de Interdependencia)

Mide el grado de interdependencia entre los módulos de un sistema. Debe minimizarse.

Tipos de Acoplamiento:

  • Normal (por datos, estampado, control - ascendente/descendente)
  • Común
  • Por variables globales
  • Por bases de datos
  • Por contenido

Cohesión (Grado de Relación Interna)

Tipos de Cohesión (de mayor a menor deseabilidad):

  • Secuencial
  • Comunicacional
  • Procedural
  • Temporal
  • Lógica
  • Coincidental

Estrategias de Pruebas de Software

  • Caja Blanca (o Enfoque Estructural): Se centra en la estructura interna del programa para elegir los casos de prueba. Prueba todos los caminos posibles de ejecución.
  • Caja Negra (o Enfoque Funcional): Estudia la especificación de las funciones, entrada y salida para definir los casos de prueba. Prueba todas las posibles entradas/salidas (E/S).

Modelos de Ciclo de Vida y Metodologías

  • Modelo de Ciclo de Vida: Marco de referencia que contiene los procesos, actividades y tareas involucradas en el desarrollo, explotación y mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su uso.

Modelos Específicos

  • Modelo Incremental: Se crean sucesivas versiones del software hasta obtener el producto final. En cada versión se añaden funciones o requisitos.
  • Modelo Espiral: El número de actividades que hay que realizar en la región de ingeniería aumenta a medida que se incrementa el número de iteraciones alrededor de la espiral. Permanece hasta que se retira el software.
  • Modelo de Construcción de Prototipos: Se basa en construir un prototipo con la finalidad de utilizarlo como un mecanismo de definición de los requisitos del software.

Metodología y Herramientas

  • Metodología de Desarrollo: Conjunto de pasos y procedimientos que deben seguirse para desarrollar un producto de software.
  • CASE (Computer-Aided Software Engineering): Herramientas que ayudan a garantizar que los principios de calidad se apliquen a todas las fases de los procesos de desarrollo.

Entradas relacionadas: