Fundamentos de Ingeniería de Software: Crisis, Modelos, Evolución y Tipos
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 6,57 KB
¿Qué es la Crisis del Software?
La denominada Crisis del Software surgió debido a la creciente complejidad de los programas. Los primeros sistemas grandes, a menudo denominados "programas puente", contenían miles de instrucciones. El mantenimiento de este tipo de software (SW) se volvió extremadamente difícil, lo que generó importantes problemas en costes, plazos y calidad, dando lugar a esta primera crisis.
El Modelo Espiral
El Modelo Espiral fue desarrollado para integrar las características más ventajosas del ciclo de vida clásico (o modelo en cascada) y de la creación de prototipos, añadiendo un componente fundamental: el análisis de riesgo.
Define cuatro actividades principales, representadas generalmente en cuatro cuadrantes:
- Planificación: Determinación de objetivos, alternativas y restricciones del proyecto.
- Análisis de Riesgo: Análisis de las alternativas e identificación y resolución de los riesgos asociados.
- Ingeniería: Desarrollo del producto correspondiente al siguiente nivel o iteración.
- Evaluación del Cliente: Valoración por parte del cliente (o usuario) de los resultados obtenidos en la fase de ingeniería.
Con cada iteración alrededor de la espiral, se construyen sucesivas versiones del software, cada vez más completas y refinadas.
Comparativa: Primera y Cuarta Era del Software
Primera Era del Software (hasta los años 60)
- Procesamiento de datos principalmente por lotes (batch).
- Software desarrollado a medida (personalizado) para cada cliente.
- El Hardware (HW) era considerado más importante o crítico que el Software (SW).
- Distribución limitada del software.
- Existían pocos métodos sistemáticos para el desarrollo de software.
Cuarta Era del Software (hasta hoy)
- Predominio de la tecnología orientada a objetos.
- Desarrollo de Sistemas Expertos, Redes Neuronales y aplicaciones de Inteligencia Artificial.
- Gran avance tanto en el Hardware (HW) como en las aplicaciones de software.
- Uso extensivo de redes a nivel mundial (Internet).
- Adopción de metodologías avanzadas y cálculo paralelo.
Elementos de un Proyecto de Software
Actividades
Son las tareas que deben realizarse o ejecutarse para alcanzar, en conjunto, un fin preestablecido. Ejemplos incluyen: recopilar información, realizar un diagnóstico, confeccionar un diseño global, programar, escribir manuales de procedimiento, etc.
Un aspecto fundamental en todo proyecto es el orden en el cual se realizan las actividades. Para determinar la secuencia lógica, se debe establecer el método, el tiempo y el costo estimado para cada operación.
Recursos
Son los elementos necesarios para poder ejecutar cada una de las tareas. Algunos ejemplos son:
- Recursos humanos (personal)
- Hardware (HW)
- Software (SW) de base (Sistemas Operativos, gestores de bases de datos)
- Software (SW) de aplicación
- Medios de almacenamiento (discos)
- Infraestructura (energía, servicios)
- Inversiones de capital
- Información
- Dinero
- Tiempo
El fin primario al planificar un proyecto debe ser producir un programa o calendario en el cual los recursos, que siempre son limitados, se asignen a cada una de las actividades de la forma más económicamente óptima posible.
Tipos de Sistemas de Software y su Función
Software de Sistema
Es una colección de programas cuyo objetivo principal es servir a otros programas, facilitando la interacción con el hardware y gestionando los recursos del sistema. El software de sistema interacciona fuertemente con el Hardware (HW) a nivel básico, debe gestionar tareas concurrentes y compartir recursos eficientemente.
Ejemplos: Sistemas Operativos (S.O.), controladores (drivers), rutinas de comunicación, compiladores, enlazadores.
Software de Tiempo Real
Software que monitoriza, analiza y controla eventos que ocurren en el mundo real, debiendo proporcionar respuestas y tomar decisiones dentro de estrictos límites de tiempo (en tiempo real).
Ejemplos: Sistemas de control de procesos industriales, sistemas de adquisición de datos, sistemas de seguridad críticos (airbags, ABS), controladores de vuelo.
Software de Gestión
Son aquellos sistemas que procesan información económica y de negocios, a menudo gestionando grandes bases de datos. Suelen reestructurar esta información para ofrecer el soporte necesario en la toma de decisiones empresariales.
Ejemplos: Sistemas de procesamiento de transacciones bancarias, sistemas de nóminas, gestión de inventarios, sistemas de pago electrónico, CRM, ERP.
Software de Ingeniería o Científico
Tradicionalmente, este tipo de software se ha centrado en la gestión y procesamiento de datos numéricos (computación numérica intensiva). Se utiliza ampliamente en todas las áreas de la ingeniería y de la ciencia.
Ejemplos: Software de simulación (astronomía, física de partículas, dinámica de fluidos), CAD/CAM, análisis estructural, bioinformática.
Software Embebido (Incorporado)
Reside dentro de un producto o sistema más grande y se utiliza para implementar y controlar características y funciones para el usuario final y para el propio sistema. Son sistemas con características a menudo limitadas, destinados a realizar tareas específicas, incorporados en equipos de uso doméstico o industrial.
Ejemplos: Firmware en un horno microondas, control de un sistema GPS, software en teléfonos móviles, sistemas de control en automóviles.