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.