Conceptos Clave y Ciclo de Vida en Ingeniería del Software

Conceptos Fundamentales en Ingeniería del Software

  • Software: Conjunto de programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación.
  • Ingeniería del Software: Aplicación de un enfoque sistemático, disciplinado y cuantificable para el desarrollo, operación y mantenimiento del software, además de la investigación de dichos enfoques.
  • Sistema: Conjunto de elementos interrelacionados que contribuyen a un objetivo determinado.
  • Modelo: Representación de un sistema en un lenguaje comprensible (lenguaje de modelado).
  • Principios Metodológicos: Elementos o axiomas adquiridos mediante el conocimiento que definen las características que debe poseer un modelo para ser una representación adecuada de un sistema.
  • Heurísticas: Conjunto de reglas empíricas que, al ser aplicadas, producen modelos que se adecúan a los principios.
  • Herramientas: Instrumentos que permiten la representación de modelos. Proporcionan el soporte automático o semiautomático para la aplicación de métodos.
  • Método: Secuencia de actividades para la obtención de un producto (modelo), que describe cómo usar las herramientas y las heurísticas.
  • Ciclo de Vida: Conjunto de fases o etapas, procesos y actividades requeridas para llevar a cabo el proceso de producción de software.
  • Metodología: Conjunto de filosofías, fases, procedimientos, reglas, técnicas, herramientas, documentación y aspectos de formación para los desarrolladores de sistemas de información.

Ciclo de Vida del Software: Modelos

  • Modelo en Cascada: Cada fase comienza cuando se han completado los objetivos de la anterior. Ayuda a prevenir que se excedan las fechas y los costes. Se revisa al final de cada fase. La desventaja es que no refleja el proceso real.
  • Modelo de Construcción de Prototipos: Se realiza un diseño rápido que se centra en una representación de los aspectos del software que serán visibles para el cliente. Esto lleva a la construcción de un prototipo que evalúa el cliente.
  • Modelo Evolutivo: El software cambia conforme se lleva a cabo el desarrollo hasta que se llega al producto final.
  • Modelo Incremental: El desarrollo del software se va incrementando por líneas. El primer incremento es a menudo el producto esencial. Es parecido al prototipo.

Aspectos Clave en la Ingeniería del Software

  1. Modelos de Proceso Software: Investigación y aplicación de los ciclos de vida y de las metodologías.
  2. Especificación de Requisitos del Sistema: Se deben estudiar los sistemas donde se integran estos software para garantizar que contribuyan al logro de los objetivos globales del sistema.
  3. Especificación de Requisitos del Software: Especificar las funciones, exigencias y lo que debe cumplir el proceso de producción.
  4. Diseño de Software: Hay dos etapas: diseño arquitectónico, que lleva a cabo una visión general del software, y diseño detallado, que es más específico, con una visión más modular.
  5. Implementación: Comprende la elaboración del código del programa y la creación de las estructuras de datos persistentes.
  6. Verificación y Validación: La validación tiene como objetivo garantizar la corrección. La verificación tiene como objetivo garantizar que se satisfacen los requerimientos acordados.
  7. Mantenimiento: Se intenta eliminar fallos de los productos software, prevenirlos, mejorarlos o adaptarlos a los cambios.
  8. Gestión del Proceso de Desarrollo: Todo lo referente a la implantación, organización y control.
  9. Evaluación del Software: Es necesario establecer métricas que permitan valorar las cualidades de los productos software y de los procesos de software.
  10. Control y Mejora de la Calidad: Está presente de forma transversal a lo largo de cualquier actividad de la ingeniería del software.

Ciclos de Vida del Software: Definición, Funciones y Ventajas

Las funciones principales de un ciclo de vida son:

  • Determinar el orden de las fases y procesos involucrados en el desarrollo del proceso software y su evolución.
  • Establecer los criterios de transición para pasar de una fase a la siguiente.

Ventajas:

  • Sirve como guía para el personal de desarrollo, marcando las tareas a realizar en cada momento.
  • Asegura un desarrollo progresivo, con controles sistemáticos, lo que permite detectar los defectos.
  • Se controla el sobrepasar los plazos de entrega y los costes excesivos.
  • La documentación se realiza de manera formal y estandarizada simultáneamente al desarrollo, lo que facilita la comunicación interna entre el equipo de desarrollo y de este con los usuarios.
  • Minimiza la necesidad de rehacer trabajo y los problemas de puesta a punto.

Metodologías del Software

Las metodologías de desarrollo se elaboran a partir del marco definido por uno o varios ciclos de vida. Primero se establece un ciclo de vida y luego la metodología es el conjunto de pasos y procedimientos que deben seguirse para el desarrollo del software. Es la manera de llevar a cabo un ciclo de vida correcto.

Distintas metodologías:

  • Metodología Convencional (1950-1970): Existía un jefe de proyecto que trataba de controlar el proceso de creación de software, pero no había forma de controlar el estado y coste del mismo, por lo que los resultados finales eran impredecibles.
  • Metodología Estructurada (1970-?): Se pasa de la construcción de programas de una forma artesanal a una que sigue métodos de ingeniería, sentando las bases para un desarrollo sistematizado.
  • Metodología Orientada a Objetos (1985-?): Tiene su base en el concepto de objeto, de manera que todas las técnicas, procedimientos y herramientas que se utilizaban en la metodología estructurada se vuelven a pensar y elaborar bajo el paradigma de la orientación a objetos.
  • Metodología Orientada a Componentes (2000-?): Se basa en el concepto de componente. Aún no se ha extendido el uso de este paradigma pese a que ya existen metodologías, pero no está muy lejana la fecha en la que se implante definitivamente.

Definición y Objetivos de las Metodologías del Software

Objetivos:

  • Proporcionar un método sistemático de desarrollo que pueda controlar su progreso.
  • Construir un sistema de información para el equipo de desarrollo dentro de un tiempo apropiado y unos costes aceptables.
  • Proporcionar una manera de trabajar que satisfaga a todas las personas que conforman el sistema de información y que les permita realizar las tareas siguiendo los mismos procedimientos.
  • Ayudar a identificar cualquier cambio que sea necesario realizar dentro del proceso de desarrollo.

La metodología realiza una descomposición de cada fase hasta el nivel de tareas o actividades elementales. Para cada tarea se identifica un procedimiento que define la forma de ejecutarla, y es el vehículo de comunicación entre usuarios y desarrolladores, ya que cuando se termine se obtendrá el producto final. Para aplicar un procedimiento se pueden utilizar diferentes tácticas. Para la realización de una táctica podemos apoyarnos en las herramientas que automatizarán en mayor o menor grado su aplicación.

Características Deseables de una Metodología del Software

  1. Existencia de reglas predefinidas.
  2. Cobertura total del ciclo de desarrollo.
  3. Verificaciones intermedias.
  4. Enlace con procesos de gestión.
  5. Comunicación efectiva.
  6. Utilización sobre un abanico amplio de proyectos.
  7. Fácil formación.
  8. Herramientas.
  9. La metodología debe contener actividades que mejoren el proceso de desarrollo.
  10. Soporte al mantenimiento.
  11. Soporte de la reutilización de software.

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.