Fundamentos de la Ingeniería de Software: Evolución, Crisis y Gestión de Requerimientos
Clasificado en Informática
Escrito el en
español con un tamaño de 7,27 KB
Fundamentos y Evolución Histórica del Software
Evolución del Software (1950-1990)
La historia del software se caracteriza por hitos clave que definieron su distribución y complejidad:
- 1950: Distribución limitada de software a la medida.
- 1970: Sistemas multiusuario, tiempo real y bases de datos.
- 1980: Sistemas distribuidos, inteligencia integrada y hardware de bajo costo.
- 1990: Sistemas de escritorio, tecnología Orientada a Objetos (O.O.), sistemas expertos y redes neuronales.
Problemas y Características del Software
Problemas Comunes del Software
- Incompatibilidad
- Costo elevado
- Desconfianza
- Mantenimiento complejo
Características de los Productos de Software
Los productos de software deben ser mantenibles y confiables.
Componentes Esenciales del Software
- Planeación
- Especificación de requerimientos
- Diseño
- Estructura de datos
- Reportes
- Especificación de pruebas
- Programa
La Crisis del Software y sus Soluciones
Definición de Ingeniería de Software
Disciplina de la informática que ofrece métodos y técnicas para desarrollar y mantener un software de calidad que resuelva problemas de todo tipo.
Anatomía de la Crisis del Software
- Síntomas:
- Funcionalidad incorrecta.
- Desarrollo y mantenimiento inadecuado.
- Insatisfacción de la demanda.
- Problemas:
- Carencia de información.
- Insatisfacción cliente/usuario.
- Mantenimiento difícil y costoso.
- Calidad sospechosa.
- Causas:
- Naturaleza del sistema.
- Formación profesional.
- Capacitación y actualización insuficientes.
- Resistencia al cambio.
- Solución:
- Enfoque ingenieril.
- Enfoque formal de resolución de problemas.
- Análisis = Enfoque de sistemas.
- Implementación = Enfoque de ingeniería.
Objetivos y Dificultades de la Producción de Software
Objetivos de la Ingeniería de Software
- Maximizar la calidad.
- Maximizar la productividad.
- Minimizar riesgos.
Dificultades de la Producción de Software
- Esenciales: Complejidad, conformidad, necesidad de cambio, invisibilidad.
- Accidentales: Metodologías.
Mitos y Factores Contractuales
Mitos Comunes del Software
- Basta con tener estándares y procedimientos.
- Basta con tecnología de punta.
- Meter más gente acelera el proyecto.
- Hay que empezar a programar inmediatamente.
- Los cambios se acomodan fácilmente.
- El código es lo único que vale.
Factores Contractuales y Contextuales
Impulsores del cambio en la industria:
- Time to market (Tiempo de salida al mercado).
- Cambios en la relación de costo entre hardware y software.
- Acceso a computadoras, redes, tecnología Orientada a Objetos (O.O.).
- Interfaces gráficas.
Principios y Enfoques de la Ingeniería de Software
Enfoque para una Disciplina Sólida
Elementos clave para establecer una disciplina robusta:
- Abstracción.
- Notación y métodos de diseño.
- Prototipo e interfaces usuarias.
- Arquitectura del sistema (proceso de desarrollo, reuso, mediciones, herramientas y ambiente integrados).
Principios Fundamentales de la Ingeniería de Software
- Rigor y Formalidad: Enfocados en el producto y el tiempo.
- Separación de Aspectos: Distinción entre necesidades, procesos y desarrollo.
- Modularidad: Descomposición estructurada del sistema.
- Abstracción: Identificar lo más importante.
- Anticipación al Cambio: Ver más allá de los requerimientos actuales.
- Generalidad: Visualizar elementos reutilizables.
- Incrementalidad: Conseguir el objetivo a través de incrementos.
Ingeniería de Requerimientos
Concepto y Tipos de Requerimientos
La Ingeniería de Requerimientos consiste en establecer lo que el cliente requiere.
Un requerimiento es la especificación de una actividad o función que debe cumplir el sistema.
Tipos de Requerimientos
- Funcionales: Describen servicios o funciones específicas.
- No Funcionales: Son un límite o restricción en el sistema o en el proceso de desarrollo (ej. rendimiento, seguridad).
Definición, Especificación y Lectores
Fases de los Requerimientos
El proceso incluye la definición de un requerimiento, las especificaciones de un requerimiento y las especificaciones del software.
Lectores del Documento de Requerimientos (Audiencias)
Los lectores se segmentan según su nivel de detalle requerido:
- Nivel 1 (Alto Nivel): Gerencia cliente, usuarios finales, ingenieros de clientes, gerencia contratista, arquitectos de sistema.
- Nivel 2 (Intermedio): Usuarios finales, ingenieros clientes, arquitectos del sistema, desarrolladores de software.
- Nivel 3 (Detalle Técnico): Ingenieros clientes, arquitectos del sistema, desarrolladores de software.
Problemas y Proceso
Problemas en la Definición de Requerimientos
- Problemas complejos.
- Requerimientos incompletos.
- Requerimientos inconsistentes.
Razones de Inconsistencia
Generalmente se deben a prioridades diferentes o requerimientos diferentes entre stakeholders. La solución recomendada es el prototipado para clarificar requerimientos.
Proceso de la Ingeniería de Requerimientos
- Estudio de factibilidad.
- Análisis de requerimientos.
- Definiciones de requerimientos.
- Especificación de requerimientos.
El Documento de Requerimientos (DR)
Propósito del DR
Es la declaración oficial de los requerimientos del sistema. Incluye la definición y la especificación. Describe lo que es el sistema y cómo lo hará.
Requerimientos del Documento
El DR debe cumplir con los siguientes puntos:
- Especificaciones de la conducta externa del sistema.
- Especificaciones de los límites de la implementación.
- Recordar el ciclo de vida del sistema.
- Proporcionar respuestas a un evento no esperado.
Estructura del Documento de Requerimientos
- Introducción: Describe las necesidades de crear el sistema y sus objetivos.
- Glosario: Define términos usados.
- Modelos del Sistema: Define modelos que muestran los componentes del sistema y sus relaciones.
- Definición de Requerimientos Funcionales: Define los servicios proporcionados.