Fundamentos de Ingeniería de Software: Conceptos Esenciales para el Desarrollo Eficaz
Enviado por Programa Chuletas y clasificado en Diseño e Ingeniería
Escrito el en español con un tamaño de 8,36 KB
Ingeniería de Software: Fundamentos y Conceptos Clave
La Ingeniería del Software es una disciplina que busca el desarrollo costeable de sistemas confiables y eficientes. Comprende todos los aspectos del software, desde su concepción hasta su mantenimiento.
El Software es el producto que los ingenieros del software construyen y después mantienen a largo plazo. Se compone de programas y documentación. Sus Elementos principales son:
- Las instrucciones (programas de computadora).
- Las estructuras de datos que permiten a los programas manipular la información de forma adecuada.
- La documentación que describe la operación y el uso de los programas.
El software puede ser visto de dos maneras:
- Como producto: Ofrece la potencia de cómputo presentada como hardware de una computadora.
- Como vehículo: Actúa como la base para el control de la computadora (Sistemas Operativos), la comunicación de información (redes), y la creación y el control de otros programas (utilerías).
El software se construye con la aplicación de un proceso que conduzca a un resultado de alta calidad que satisfaga las necesidades del cliente.
Características y Atributos Esenciales del Software
Características Fundamentales del Software
- El software se desarrolla o construye; no se manufactura en el sentido clásico.
- El software no se “desgasta” en el mismo sentido que el hardware; sin embargo, puede deteriorarse funcionalmente con el tiempo debido a cambios y adiciones.
- La mayoría del software aún se construye a la medida para satisfacer necesidades específicas.
Atributos Esenciales de Calidad del Software
Para que el software sea considerado de alta calidad, debe poseer los siguientes atributos:
- Mantenibilidad: Facilidad con la que el software puede ser modificado para corregir errores, mejorar el rendimiento u otras características.
- Confiabilidad: Capacidad del software para funcionar sin fallos durante un período de tiempo específico en un entorno determinado.
- Eficiencia: Grado en que el software utiliza los recursos del sistema (tiempo de CPU, memoria, etc.) de manera óptima.
- Usabilidad: Facilidad con la que los usuarios pueden aprender a operar el software y utilizarlo para lograr sus objetivos.
Conceptos Clave en el Desarrollo de Software
La Ley de las Consecuencias Imprevistas se refiere a los efectos no anticipados de la tecnología en otras áreas y en la cultura.
Los Mitos en ingeniería de software son creencias erróneas que pueden afectar negativamente la percepción y el desarrollo del software, comunes entre administradores, clientes y desarrolladores.
Las Capas de la Ingeniería de Software representan los diferentes niveles de abstracción y soporte para el desarrollo de software:
- Herramientas: Software que automatiza o apoya el proceso de desarrollo.
- Métodos: Técnicas para realizar tareas específicas de desarrollo.
- Procesos: Marco de trabajo que define cómo se aplican los métodos y herramientas.
- Calidad: Un enfoque continuo (como Seis Sigma) para asegurar la excelencia del producto.
El Triángulo del Éxito en el desarrollo de software se compone de tres elementos interdependientes:
- Una notación adecuada para representar el diseño.
- Un proceso bien definido para guiar el desarrollo.
- Una herramienta que soporte la notación y el proceso.
Un Producto de Trabajo es un artefacto que se produce durante el desarrollo del software, como un documento (especificación, diseño) o un fragmento de software, útil para desarrolladores o clientes.
La Notación es una representación simbólica que utiliza reglas gráficas o textuales para la representación de modelos de software.
Procesos y Modelos en la Ingeniería de Software
UML y Marcos de Trabajo
UML (Lenguaje Unificado de Modelado) es un lenguaje gráfico estándar para visualizar, especificar, construir y documentar los productos de trabajo de un sistema de software.
Un Marco de Trabajo (o framework) proporciona la base para un proceso del software, identificando las actividades del marco de trabajo esenciales.
Un Sistema se refiere a la realidad subyacente o al conjunto de componentes interrelacionados que forman una entidad unificada.
Un Método es una técnica repetible para resolver un problema específico en el desarrollo de software.
El Proceso del Software es el conjunto de actividades necesarias para la elaboración del software, desde la concepción hasta la entrega y el mantenimiento.
El Marco de Trabajo del proceso de software típicamente incluye las siguientes actividades genéricas:
- Comunicación: Entender los requisitos del cliente.
- Planeación: Definir el plan del proyecto.
- Modelado: Crear representaciones del software.
- Construcción: Codificar y probar el software.
- Despliegue: Entregar el software al cliente y obtener retroalimentación.
Actividades Sombrilla y Modelado
Las Actividades Sombrilla son actividades que se aplican a lo largo de todo el proceso de software y aseguran su éxito. Estas incluyen:
- Seguimiento y control del proyecto de software.
- Gestión del riesgo.
- Aseguramiento de la calidad del software.
- Revisiones técnicas formales.
- Medición.
- Gestión de la configuración del software.
- Gestión de la reutilización.
- Preparación y producción de los productos de trabajo.
Estas actividades se enfocan en gestionar, rastrear y controlar el proyecto de software.
El Modelado de Análisis y el Modelado de Diseño son fases cruciales que implican la especificación de requisitos y la especificación de diseño, respectivamente.
CMMI: Modelo de Madurez de Capacidad
CMMI (Integración del Modelo de Capacidad de Madurez) es un modelo que evalúa qué tan capaz es un proyecto o una organización en su proceso de desarrollo de software. Define los siguientes niveles de madurez:
- Nivel 0: Incompleto – El proceso no se realiza o no logra sus objetivos.
- Nivel 1: Realizado – El proceso se realiza y logra sus objetivos.
- Nivel 2: Administrado – El proceso se planifica, ejecuta, mide y controla.
- Nivel 3: Definido – El proceso está bien caracterizado y entendido, y se describe en estándares, procedimientos, herramientas y métodos.
- Nivel 4: Administrado en forma cuantitativa – El proceso se controla utilizando técnicas estadísticas y cuantitativas.
- Nivel 5: Optimizado – El proceso se mejora continuamente basándose en una comprensión cuantitativa de sus causas comunes de variación.
Las Áreas del Proceso que Evalúa CMMI incluyen, entre otras:
- Desarrollo de requisitos.
- Solución técnica.
- Integración del producto.
- Verificación.
- Validación.
- Gestión integrada del proyecto.
- Gestión del riesgo.
- Ambiente organizacional.
Los Niveles de Proceso (en un contexto más general de evaluación de procesos, aunque relacionados con CMMI) pueden ser vistos como:
- De optimización.
- Gestionado de modo cuantitativo.
- Definido.
- Gestionado.
- Ejecutado.
Evaluar un Proceso del Software es fundamental para asegurarse de que cumpla una serie de criterios básicos del proceso que han demostrado ser esenciales para la ingeniería del software exitosa.