Principios y prácticas de la ingeniería de software: ciclo de vida, metodologías y tendencias

Enviado por Chuletator online y clasificado en Diseño e Ingeniería

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

Problemas por falta de sistemática en el desarrollo de software

Los problemas del software: si no se trabaja de forma sistemática y controlada, pueden producirse fallos graves. Ejemplos conocidos incluyen: Mars Climate Orbiter (1999), Ariane 5 (1995), portaaviones (1988), aeropuerto (1994) y la máquina de radiación (1985–87).

Ingeniería

Ingeniería: conocimientos y técnicas que permiten aplicar el saber científico a la utilización de la materia y de las fuentes de energía; su aplicación posibilita la utilización racional de los materiales y recursos naturales mediante inventos.

Ingeniero

Ingeniero: persona que aplica los conocimientos de una o varias ramas de la ciencia para resolver necesidades concretas de las personas.

Características de cualquier ingeniería

  • Se requieren conocimientos avanzados para diseñar y construir el tipo de sistema que la define.
  • Primero conocer el problema y después diseñar la solución.
  • Es necesario trabajar de forma organizada.
  • La creatividad es necesaria pero no suficiente.

Resolución de sistemas

Resolver un sistema supone:

  • Análisis: capacidad para descomponer un problema complejo en problemas más simples (abstracción).
  • Síntesis: componer la solución completa a partir de las partes parciales.

Naturaleza del software

El software es: invisible, se desarrolla, es complejo y maleable.

Software vs Hardware

En los primeros años el hardware fue clave para el éxito; hoy lo supera el software, que es más complejo porque no siempre podemos comprender plenamente su comportamiento.

Definición (ISO)

Según la norma: aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software. Implica la aplicación de los principios y hábitos de la ingeniería de software.

Objetivos del SWEBOK

El SWEBOK (Software Engineering Body of Knowledge) persigue:

  • Promover una visión consistente del mundo de las ingenierías de software.
  • Clarificar el papel de las ingenierías de software en las organizaciones.
  • Caracterizar los contenidos de la disciplina.
  • Proveer acceso a los contenidos del cuerpo de conocimientos.
  • Proveer bases para desarrollar planes de estudio o materiales para certificaciones.

Sistemas de información e ingeniería de software

Un sistema de información puede comprender varios subsistemas, por ejemplo:

  • Subsistema de recursos humanos (relacionado con la plantilla).
  • Subsistema de gestión comercial (ventas).
  • Subsistema de gestión contable.
  • Subsistema de control de almacén.
  • Sistemas de automatización y sistemas de producción.

Desarrollo de software

El desarrollo de software engloba el ciclo de vida, que contiene los procesos, actividades y tareas involucradas en el desarrollo, evolución y mantenimiento del software.

Fases del desarrollo del software

Las fases principales son:

  • Requisitos: elicitar, analizar, especificar y validar los requisitos de software; identificar las necesidades y las restricciones que debe satisfacer el producto.
  • Diseño: analizar los requisitos y producir una descripción de la estructura interna; debe describir las arquitecturas, los componentes y las interfaces entre ellos.
  • Construcción: implementación del código.
  • Pruebas: evaluar y mejorar la calidad del producto; verificación dinámica del comportamiento.
  • Mantenimiento: cambios por corrección de defectos, adaptación o incorporación de nuevos requisitos.

Metodología de desarrollo

Metodología: conjunto de pasos, procedimientos, reglas, técnicas, herramientas, documentación y formación para el desarrollo de software.

Objetivos: conseguir mejores aplicaciones, mejorar el proceso de desarrollo y establecer procesos estándar en la organización.

Tipos: dirigidas por planes (plan-driven) y ágiles.

Paradigmas de desarrollo en ingeniería de software

  • Convencional (años 1950): enfoque artesanal, mucha programación manual, resultados impredecibles.
  • Estructurado (1960–1970): normas en el código, mayor abstracción y comprensión; el elemento básico es el módulo; se incorporan diagramas y gráficos.
  • Orientado a objetos (1980): identificar y organizar conceptos como objetos; se trabaja por partes con encapsulación y reutilización.

Tendencias y orientación en la ISO

Tendencias actuales: integrar sistemas y tecnologías, identificar problemas para entender mejor a los clientes, y cambios en el modelo del software:

  • El software de aplicación tradicional está cambiando o desapareciendo en algunos contextos.
  • Desarrollo dirigido por modelos (MDD).
  • Orientación a servicios (SOA), con uso de etiquetas y formatos como XML para la interoperabilidad.
  • Orientación a procesos de negocio (BPM).
Notas finales

Este documento corrige y organiza los conceptos originales, manteniendo el contenido completo y resaltando los conceptos clave para facilitar su lectura y comprensión.

Entradas relacionadas: