Paradigmas y Metodologías de la Ingeniería del Software

Clasificado en Economía

Escrito el en español con un tamaño de 6,24 KB

Paradigmas de la Ingeniería del Software

Modelo Primitivo

Inconvenientes:

  • Código pobremente estructurado tras varias iteraciones: código espagueti.
  • Caro de desarrollar por las numerosas recodificaciones.
  • Posible rechazo del usuario al no existir análisis de requisitos.
  • Caro de depurar por la falta de planificación.
  • Caro de mantener por la falta de estructura y documentación.

Modelo Clásico (Cascada)

La versión original del modelo en cascada del ciclo de vida fue propuesta por Royce, apareciendo después numerosos refinamientos.

Generalidades:

  • Fases secuenciales.
  • Permite la iteración de fases consecutivas.
  • Obtención de documentos como criterio de finalización de fase.
  • Distintas configuraciones.

Características:

  • Comienzo de una fase con el término de la anterior.
  • Paso de fase al conseguir los objetivos.
  • Apoyo a los gestores.
  • El final de una fase puede suponer un punto de revisión.

Investigación Preliminar o Fase de Exploración:

  • Definición del problema.
  • Determinación de los recursos necesarios.
  • Análisis coste/beneficio.
  • Estudio de viabilidad:
    • Técnica.
    • Económica.
    • Operacional.
  • Análisis.
  • Diseño.
  • Codificación.
  • Prueba:
    • Verificación.
    • Validación.
  • Mantenimiento.

Inconvenientes:

  • Progresión secuencial.
  • Rigidez.
  • Monolítico.

Consideraciones Finales:

  • Tiene un lugar destacado en la Ingeniería del Software.
  • Plantilla para adecuar los métodos.
  • Similar al ciclo de vida genérico.
  • Muy utilizado.
  • Tiene problemas, pero es mejor que desarrollar sin guías.

Modelo de Prototipos

Solución parcial que describe la interacción entre el hombre y la máquina, mostrando parte de su funcionalidad no optimizada.

  • Proceso iterativo.
  • Idea del software en líneas generales desde el punto de vista del usuario.
  • Especificación de requisitos de forma concreta.
  • Construcción rápida y a bajo coste.
  • Desecho del prototipo.
  • Introduce cierta flexibilidad en la introducción de requisitos.

Modelo Evolutivo

El software, al igual que todos los sistemas complejos, evoluciona con el tiempo. Se caracterizan porque permite desarrollar con el tiempo versiones cada vez más complejas. Presenta la filosofía de poner el producto en explotación cuanto antes. Están muy ligados a la idea del prototipo evolutivo (trabajar sobre un prototipo). Los modelos evolutivos son iterativos e incrementales.

Modelo en Espiral

Las actividades de este modelo se conforman en una espiral, cada bucle representa un conjunto de actividades. Las actividades no están fijadas a priori, sino que las siguientes se eligen en función del análisis de riesgo, comenzando por el bucle interior. En cada vuelta o iteración hay que tener en cuenta:

Determinar Objetivos:

  • Fijar las restricciones.
  • Identificar los riesgos del proyecto y estrategias alternativas para evitarlos.
  • Fijar objetivos.

Planificación:

De acuerdo con el cliente se obtienen los requisitos, objetivos a conseguir, restricciones a aplicar...

Análisis de Riesgos:

Se estudian todos los riesgos potenciales y se seleccionan una o varias alternativas propuestas para reducir o eliminar los riesgos.

Desarrollar y Probar:

Es el proceso de producción propiamente dicho. Implica en sí mismo un proceso en el que se puede utilizar un ciclo clásico, incremental, prototipo u otro.

Se planificarán los siguientes pasos y se comienza un nuevo ciclo de la espiral. La espiral tiene una forma de caracola y se dice que mantiene sus dimensiones:

  • Angular: Indica el avance del proyecto software dentro de un ciclo.
  • Radial: Indica el aumento del coste del proyecto, ya que con cada nueva iteración se pasa más tiempo desarrollando.

Ventajas:

  • Reduce riesgos del proyecto.
  • Incorpora objetivos de calidad.
  • Integra el desarrollo con el mantenimiento.

Inconvenientes:

  • Es complicado establecer objetivos, limitaciones y alternativas.
  • Puede ser más flexible que lo conveniente para la mayoría de explicaciones.
  • La pericia en la tasación del riesgo no es fácil, se requiere mucha experiencia.

Metodologías

Conjunto de procedimientos, técnicas, herramientas y un soporte documental que ayuda a los desarrolladores a realizar nuevo software. Una metodología sirve para que el equipo pueda realizar de una manera formal y uniforme lo siguiente:

  • Cómo se divide el proyecto en distintas fases o etapas.
  • Qué tareas hay que realizar en cada fase o etapas.
  • Qué salidas deben producirse después de cada tarea.
  • Qué restricciones se aplican (económicas, tecnológicas, legales, temporales, etc.).
  • Qué herramientas se van a utilizar.
  • Qué técnicas se van a utilizar.
  • Cómo se planifica y gestiona el proyecto.

Clasificación

  • Estructuradas:
    • Orientadas a procesos.
    • Orientadas a datos:
      • Orientadas a estructuras de datos jerárquicas.
      • Orientadas a estructuras de datos no jerárquicas.
    • Mixtas.
  • Orientadas a objeto.
  • Orientadas a procesos:
    • Centradas en el proceso.
    • Descomposición funcional descendente.
    • Técnicas gráficas.
  • Orientadas a estructuras de datos jerárquicas:
    • Centradas en la entrada/salida.
    • La estructura de control del programa debe ser jerárquica y se debe derivar de la estructura de datos del programa.
    • El proceso de diseño consiste en definir en primer lugar las estructuras de datos de entrada y salida, mezclarlas todas en la estructura jerárquica de programa y después ordenar detalladamente la lógica procedimental para que se ajuste a esta estructura.
    • El diseño lógico debe preceder y estar separado del diseño físico.

Entradas relacionadas: