La ingeniería del software es una tecnología multicapa, y que se apoya sobre un enfoque de calidad.




Dichas capas se describen a continuación:

  • Cualquier disciplina de ingeniería (incluida la ingeniería del software) debe descansar sobre un esfuerzo de organización de calidad. La gestión total de la calidad y las filosofías similares fomentan una cultura continua de mejoras de procesos que conduce al desarrollo de enfoques cada vez más robustos para la ingeniería del software.
  • El fundamento de la ingeniería de software es la capa proceso. El proceso define un marco de trabajo para un conjunto de áreas clave, las cuales forman la base del control de gestión de proyectos de software y establecen el contexto en el cual: se aplican los métodos técnicos, se producen resultados de trabajo, se establecen hitos, se asegura la calidad y el cambio se gestiona adecuadamente.
  • Los métodos de la ingeniería de software indican cómo construir técnicamente el software. Los métodos abarcan una gran gama de tareas que incluyen análisis de requisitos, diseño, construcción de programas, pruebas y mantenimiento. Estos métodos dependen de un conjunto de principios básicos que gobiernan cada área de la tecnología e incluyen actividades de modelado y otras técnicas descriptivas.
  • Las herramientas de la ingeniería del software proporcionan un soporte automático o semi-automático para el proceso y los métodos, a estas herramientas se les llama herramientas CASE (Computer-Aided Software Engineering).

Dado lo anterior, el objetivo de la ingeniería de software es lograr productos de software de calidad (tanto en su forma final como durante su elaboración), mediante un proceso apoyado por métodos y herramientas.

 Pressman, R, Ingeniería del Software: Un enfoque práctico, McGraw Hill 1997.

 

Visión general de la Ingeniería del software

La ingeniería es el análisis, diseño, construcción, verificación y gestión de entidades técnicas.

El trabajo que se asocia a la ingeniería del software se puede dividir en tres fases, con independencia del área de aplicación, tamaño o complejidad del proyecto.

Fase de definición

Se centra sobre el qué. Identificar qué información ha de ser procesada, que función y rendimiento se desea, qué comportamiento del sistema, qué interfaces van a ser establecidas, qué restricciones de diseño existen, y qué criterios de validación se necesitan para definir un sistema correcto.

Identificar los requisitos del sistema y del software.

Las tareas específicas de esta fase son:

  • Ingeniería de Sistemas o de información
  • Planificación del proyecto software
  • Análisis de requerimientos

 

Fase de desarrollo

Se centra en el cómo. Definir cómo han de diseñarse las estructuras de datos, cómo ha de implementarse la función dentro de una arquitectura de software, cómo ha de implementarse los detalles procedimentales, cómo han de caracterizarse interfaces, cómo ha de traducirse el diseño en un lenguaje de programación y cómo ha de realizarse la prueba.

Las tareas específicas de esta fase son:

  • Diseño del software
  • Generación de código
  • Prueba del software

 

Fase de mantenimiento

Se centra en el cambio.

  • Corrección de errores
  • Adaptaciones requeridas a medida que evoluciona el entorno del software
  • Cambios debidos a las mejoras producidas por los requisitos cambiantes del cliente

Se encuentran cuatro tipos de cambios:

  • Corrección
  • Adaptación
  • Mejora
  • Prevención