La Ingeniería del Software
Enviado por Javi y clasificado en Informática
Escrito el en español con un tamaño de 8,4 KB
Gestión de la calidad del Software
Los elementos que forman parte de la calidad del software son:
- Las metodologías que controlan todo el proceso y permiten analizarlo y mejorarlo
- Herramientas y técnicas, como casos de uso o diagramas UML
- Las personas, son los elementos clave como creadores y ejecutores de Software
- Las medidas que nos permiten evaluar el estado actual de desarrollo y mejorar los fallos.
Aspectos de la calidad
- Interna: medible a partir de características internas, como el código fuente.
- Externa: medible según el comportamiento del producto.
- En uso: observada por el usuario con su utilización.
Propiedades del software de calidad
- Mantenible: Debe escribir de forma que pueda evolucionar para satisfacer nuevas necesidades.
- Confiable: el software debe ser fiable, seguro, sin fallos que puedan causar daños físicos o económicos.
- Eficiente: realiza un uso adecuado de los recursos.
- Usable: debe ser fácil de usar, con interfaz y documentación adecuadas.
Procesos y modelos del software
Un proceso de software es un conjunto de actividades para desarrollar, mantener y gestionar la producción del software.
La calidad de un producto está determinada en gran medida por la calidad de los procesos empleados en su desarrollo y mantenimiento.
Un modelo de procesos es una colección estructurada de prácticas que han demostrado ser eficaces. Dicen QUÉ hacer, como CÓMO hacerlo.
CMMI
Es un modelo para la mejora y evaluación de procesos que proporciona los elementos esenciales para llegar a procesos más eficaces. Se compone de varios niveles, según el grado de madurez en los procesos de desarrollo:
- Inicial: no hay control sobre el estado del proyecto, el desarrollo es opaco.
- Repetible: el proyecto es gestionado y controlado durante el desarrollo del mismo.
- Definido: además de ser un proceso gestionado se ajusta a la política de procesos que existe en la organización.
- Cuantitativamente gestionado: además de ser un proceso definido se controla utilizando técnicas cuantitativas.
- Optimizando: de forma sistemática se revisa y modifica o cambia para adaptarlo a los objetivos del negocio. Mejora continua.
Algunos principios del software
- Abstracción: olvidar aspectos irrelevantes, centrarse en la funcionalidad.
- Encapsulamiento: ocultar los detalles que no afectan a otros módulos.
- Modularidad: división de la solución en módulos independientes.
- Localización: los elementos similares o relacionados deben estar agrupados.
- Uniformidad: los módulos deben tener una notación similar.
- Completitud: deben estar desarrollados todos los aspectos del sistema
- Validación: comprobar que el desarrollo es correcto.
Ciclo de Vida del Software
Definición o análisis: se planifica el proyecto, se analizan su viabilidad y riesgos y se gestionan los requisitos que éste debe tener.
Desarrollo: se diseñan las estructuras de datos y la interfaz, se codifica y prueba el sistema.
Mantenimiento: se corrigen errores, añaden nuevos requisitos y funcionalidades.
Tipos de ciclos de vida
En cascada: se pasa de una fase a otra de manera secuencial, por lo que a pesar de ser simple, es poco realista y conlleva a que los errores se propaguen.
En V: se divide el desarrollo en capas que se verifican y prueban, por lo que los errores se detectan en etapas tempranas sin esperar a un producto acabado.
Manifiesto de las Metodologías ágiles
- Se centran en el equipo de desarrollo y sus interacciones.
- Buscan un software funcional más que una documentación extensa.
- Una estrecha colaboración con el cliente.
- Responder a los cambios aunque impliquen cambiar el plan.
Algunas metodologías ágiles
- RUP
- XP (eXtremme Programing): diseñada para entornos dinámicos y equipos pequeños.
- Enfatiza la comunicación verbal.
- Diseño simple.
- Entregas pequeñas (2-3 semanas).
- Uso de estándares.
- Cliente muy implicado.
Requisitos del Software
Una de las principales causas que llevan un proceso al fracaso es debido a no comprender correctamente a los usuarios y sus necesidades.
Un requisito es una funcionalidad del software que el usuario necesita para resolver un problema o cumplir su objetivo.
La administración de requisitos es el descubrimiento, organización y documentación de dichas necesidades del usuario.
Técnicas de recogida de información
- Entrevistas: su objetivo es extraer información a partir de un usuario.
- Observación: examinar a los usuarios mientras realizan sus tareas cotidianas.
- Taller de Requerimientos: consiste en reunir a múltiples usuarios para diseñar conjuntamente los requisitos de la aplicación.
- Tormenta de ideas
- Cuestionarios
- Juegos de rol: enfrentar al equipo de desarrollo a ocupar las tareas de los usuarios.
- Prototipos
Pasos
Paso 1: Definir el problema
El primer paso en la elaboración de un proyecto es definir, consensuar y comprender el problema.
Paso 2: Identificar a los interesados
Un interesado es cualquiera que puede verse afectado por la implementación del sistema.
Paso 3: Definir los límites del sistema
Definir la frontera entre el software que va a ser construido y otros elementos a su alrededor que interactúan con él.
Paso 4: Las necesidades
El descubrimiento de requerimientos suele comenzar estudiando las necesidades de la aplicación. Estas necesidades deben ser genéricas, dan una visión global del problema a resolver.
Paso 5: Las Características
Son las propiedades y funcionalidades específicas que debe tener un sistema, expresadas con frases sencillas y breves, obtenidas de los usuarios.
Paso 6: Los Requisitos
A partir de las características, se van precisando cada vez más, hasta llegar a los requisitos.
- Requisitos funcionales: describen la funcionalidad que se espera del sistema, sus entradas y salidas, excepciones, etc.
- Requisitos no funcionales: no se refieren a funciones ofrecidas al usuario, sino que son propiedades del sistema como usabilidad, fiabilidad, rendimiento, etc. (UFRM)