Links: University

Contextualización

Definiciones

Ingeniría del Software

Aplicación sistemática de conocimientos técnicos y científicos, metodologías y experiencia al diseño, implementación, pruebas y documentación de productos software.

Ciclo de Vida (SDLC)

lo que hay que obtener
Un ciclo de vida software en ingeniería de software es el proceso de creación o modificación de los sistemas, modelos y metodologías que la gente usa para desarrollar los productos software, un SDLC sostiene muchos tipos de Metodologías de Desarrollo de software.

Metodología del Desarrollo

cómo lo hay que obtener
Conjunto ordenado y bien esctructurado que contemple todos, o algunos, de los siguentes tipos de elementos:
planteamientos, filosofías, políticas, procesos, fases, etapas, iteraciones, procedimientos, reglas, técnicas, herramientas, documentación, formación y que asegura a los desarrolladores la realización oportuna y en tiempo y forma de un software de calidad adecuado a las necesidades.

Un Metodología de Desarollo software (también llamada Proceso de Desarrollo software) es una forma de dividir y organizar las distintas fases o etapas del desarrolo del producto, así como la definición y estructuración de las actividades a realizar dentro de cada una de dichas etapas, con el objetivo de conseguir una mejor planificación, ejecución y gestión del proyecto.

Procedimiento

Definición y regulación del comportamiento con el objetivo de lograr una organización y ejecución eficiente de las actividades que posibilitan la resolución de una operación general, o trámite, para el logro de un objetivo concreto.

Actividad

Unidad compleja funcionalmente consistente en la que se dividen los procedimientos para facilitar la organización del trabajo, la asignación de los recursos y fijar la responsabilidad sobre los resultados.

Tarea

Unidad elemental en la que se dividen las actividades, y que suelen ser afectuadas por un agente concreto o actor singular.

Proceso

Trabajo realizado y que se espera de la ejecución de uno o varios componentes del software, lógicamente relacionados.

Unidad de Tratamiento

Pasos elementales en los que se dividen los procesos y que han de completarse para considerar su validez. A veces se relacionan de manera biunívoca con las tareas, en sus consideración funcional.

Técnica

Forma y/o herramienta utilizada para aplicar una Unidad del Tratamiento, un conjuto de ellas, un componente software o un conjunto de ellos.

Herramienta

Sistema software o aplicación, que automatiza y soporta las técnicas. Por extensión también se relaciona con los conceptos de Entorno, Plataforma y Marco.

Producto/Entregable

Resultado software válido y utilizable de cada etapa, fase, iteración o ajuste, objenido por la evolución continua o por verisones, de un proyecto desarrollado metódicamente para la construcción y desarrollo de sistemas y aplicaciones.

Ciclos de Vida

La vida de un proyecto comienza en el momento en el que surge la idea y termina cuando el producto poerde completamente susutilidad y no puede sufrir más actualizaciones.

Indentificación ¿Qué?

Preparación y Diseño ¿Cómo?

Ejecución

Evaluación

Manifiesto Ágil

  • Valorar más a los individuos y su interacción que a los procesos y las herramientas
  • Valorar más el software que funciona que la documentación exhaustiva
  • Valorar más la colaboración con el cliente que la negociación contractual
  • Valorar más la respuesta al cambio que el seguimiento de un plan

Extreme programming

Scrum

Kanban

Metodologías Clásicas

Generaciones

Desarrollo Convencional

  • Los cambios en la organización, la gestión, la estrategia y los objetivos afectan muy negativametne al proceso de desarrollo.
  • La continuidad, evolución y adaptación del software depende de individualidades.
  • No es posible establecer un control suficiente del proyecto ni determinar una planificación.
  • La documentación es escasa y singular.
  • Los resultados finales son impredecibles.

Desarrollo Estructurado

En estas metodologías se representan los procesos y flujos de procesos, la estructura de datos, y su combinación

Desarrollo Orientado a Objetos

Es el origen de múliples herramientas y metodologías que responden a diversas filosofías y orientaciones
RUP, SCRUM, XP etc.

Clasificación

Estructuradas

  • Orientadas a Procesos

    Se fundan en la abstracción de modelado básica, de entrada, proceso y salida de un sistema
    Se apoya en técnicas gráficas y diagramas que respetan la estructura jerárquica
    Todo ello da lugar al concepto de Espacificación Estructurada, que se describe como un modelo fraccionado y descendente.

    • Modelo Conceptual
    • Modelo Lógico
    • Modelo Físico
  • Orientadas a Datos

    Aplica el modelo básico de Input-Process-Output, por lo que se orienta a la estructuración de las entrada salida

    • Etapas

      • Planificación
      • Análisis
      • Diseño
      • Construcción
    • Jerárquicas
    • No jerárquicas

Orientadas a Objetos

  • Las metodologías anteriores, estudian los sistemas desde el marco funcional, determinando las tareas que han de soportar, y se avanza en la definición descomponiendo sucesivamente estas tareas para determinar los módulos del sistema, las aplicaciones y componentes de las mismas
  • Las metodologías OO tienen la pretensión esencial de capturar la realidad entendiendo los objetos del dominio del problema, y desarrollar los modelos basándose en la conexión e interactuación o colaboración, de tales objetos.
  • Iniciales (Puras)

    • Modelo estático
    • Modelo dinámico
    • Modelo de procesos
  • Evolutivas

    • Basadas en UP
    • Ágiles
    • Extremas

Sistemas en tiempo real

Sistemas globales

Proceso Unificado