Procesos del Ciclo de Vida del Software
Adquisición
Acto por el cual una persona adquiere un producto de software.
Suministro
Acto del suministrador de un producto de software.
Desarrollo
Actividades a realizar durante el desarrollo del software.
Operación
Actividades relacionadas con el uso del sistema de software y el apoyo a los usuarios del mismo.
Mantenimiento
Actividades relacionadas con la realización de modificaciones al software y a la documentación asociada como consecuencia de errores detectados, mejoras o adaptaciones a cambios.
Procesos de Soporte
Documentación
Proceso para registrar y gestionar la documentación generada por un proceso o actividad del ciclo de vida.
Gestión de la Configuración
Proceso para gestionar los cambios en los requisitos del sistema y su incorporación en nuevas versiones del sistema.
Gestión de la Calidad
Utilización de procedimientos y estándares organizacionales para obtener software de calidad.
Verificación
Proceso para comprobar que el software satisface los requisitos funcionales y no funcionales del sistema.
Validación
Proceso para comprobar que el software satisface las expectativas del cliente.
Revisión Conjunta
Actividad para evaluar el estado del proyecto.
Auditoría
Proceso para determinar el cumplimiento de los requisitos, planes y contratos.
Resolución de Problemas
Proceso para analizar y resolver los problemas que se detecten durante el proceso de desarrollo, operación, mantenimiento, etc.
Procesos Organizacionales
Gestión
Actividades para gestionar los procesos: planificación y seguimiento del proceso, gestión de personal, estimación de costes, etc.
Infraestructura
Proceso para establecer y mantener la infraestructura que necesitan el resto de los procesos.
Mejora
Proceso para establecer, evaluar, medir, controlar y mejorar un proceso del ciclo de vida del software.
Formación
Proceso para formar tanto a las personas del equipo de desarrollo del sistema como a los usuarios finales del mismo.
Conceptos Clave en Ingeniería de Software
Marco Común de Referencia (MCR)
Marco de referencia que contiene los procesos, actividades y tareas involucradas en el desarrollo, explotación y mantenimiento de un producto de software.
Metodología de Desarrollo (MD)
Conjunto de pasos, procedimientos, herramientas, técnicas y un soporte documental que posibilita el desarrollo sistemático de software.
Acoplamientos
Tipos de acoplamiento: por datos, por estampado, por control, por variables globales, por base de datos, por contenido.
Cohesiones
Relación funcional de los elementos de un módulo. Tipos de cohesión: funcional, secuencial, comunicacional, procedural, temporal, lógica, coincidental.
Regla del Balanceo
El contenido de todos los flujos de entrada y salida de un proceso debe coincidir con el contenido de todos los flujos que entran y salen del diagrama del nivel inmediatamente superior.
Redes Desconectadas
Subconjunto de procesos que no tienen ninguna relación entre sí. La funcionalidad de cada una de las redes no tiene relación con las otras y, por tanto, se ha descompuesto mal el proceso de nivel superior.
Modelos de Desarrollo de Software
- Lineal Secuencial: Para controlar bien el desarrollo, la fecha de entrega y los costes.
- Construcción de Prototipos: Aconsejable desecharlo.
- Incremental: Para alta incertidumbre, se pueden ampliar requisitos.
- Espiral: Para análisis de riesgo (analizar diferentes alternativas que existen).
Métrica V3
Es la última versión de la metodología de desarrollo de sistemas de información que ha sido desarrollada por la administración pública española. Ofrece un instrumento útil para la sistematización de las actividades que dan soporte al ciclo de vida del software.
Herramientas CASE
Objetivos de las herramientas CASE:
- Automatizar actividades manuales.
- Mejorar el proceso de ingeniería.
- Garantizar la calidad.
Entornos Integrados
Base de datos que contiene un conjunto de mecanismos y estructuras de datos para integrar los datos y las herramientas.
Influye en:
- Especificaciones de análisis y diseño para comprobar su corrección y aumentar la dedicación al análisis y diseño.
- Generadores automáticos de código para disminuir el tiempo de codificación y pruebas.
- Prototipos rápidos e iterativos.
- Simplifica el mantenimiento del software.
Pruebas de Software
Caja Blanca
Tipos de coberturas: de sentencias, de decisiones, de condiciones, decisión/condición, condición múltiple.
Caja Negra
Técnicas: clases de equivalencias, conjetura de errores, pruebas aleatorias.
Tipos de Pruebas
Pruebas de unidad, integración, del sistema y de aceptación.
Ingeniería del Software: Definición y Etapas
La ingeniería del software es una disciplina de la ingeniería que está relacionada con todos los aspectos de la producción de software, desde la etapa inicial hasta el mantenimiento. Está basada en capas: herramientas, métodos, procesos y calidad.
Estudio de Viabilidad
Se realiza antes del proceso de desarrollo para dar soporte a la decisión de llevar a cabo, desarrollar o comprar software.
Análisis del Sistema
Estudio de las necesidades de los usuarios y realización de una especificación de requisitos.
Desarrollo del Sistema
Diseño de la arquitectura del sistema y diseño del software.
Implementación
Escribir los programas en un lenguaje de programación y documentarlos.
Pruebas
Pruebas de código y pruebas del sistema.