El documento trata sobre varios temas relacionados con el desarrollo y mantenimiento de software de calidad. Explica el diseño orientado a objetos, la garantía de calidad del software, las revisiones de software, las pruebas de errores, los estándares de calidad ISO 9001 y problemas y facilidades del mantenimiento de sistemas.
2. DISEÑO ORIENTADO A OBJETOS
• El diseño de software es el proceso por el que un agente crea
una especificación de un artefacto de software, pensado para
cumplir unos objetivos, utilizando un conjunto de componentes
primitivos y sujeto a restricciones. El diseño de software se
puede referir a "toda la actividad implicada en conceptualizar,
enmarcar, implementar, poner en funcionamiento y,
finalmente, modificar sistemas complejos" o "la actividad que
sigue a la especificación de requisitos y precede a la
programación, como en un proceso de ingeniería de software
estilizado.
3. GARANTÍA DE LA CALIDAD DEL SOFTWARE
• Es una actividad de protección, que se aplica a lo largo de todo
el proceso del software (Control de procesos), en definitiva
abarca todo el desarrollo de software, análisis, diseño, control
de código fuente, revisiones de código etc… La garantía de la
calidad del software (SQA) es un patrón de acciones planificado
y sistemático que se requieren para asegurar la calidad del
software.
• La garantía de la calidad del software comprende una gran
variedad de tares, los ingenieros de software que realiza
trabajo técnico y un grupo de SQA que tiene la responsabilidad
de la planificación de garantía de calidad, supervisión
mantenimiento de registro, análisis e informe
4. REVISIONES DE SOFTWARE
• Es un filtro la cual permite detectar errores y fallas para que
puedan ser así eliminados, se reúne una persona o un equipo
de trabajo la cual se examina el software profundamente.
5. VARIEDADES DE REVISIÓN DEL SOFTWARE
• Revisiones de par de software: son conducidos por el autor del producto o algunos
colegas para evaluar el producto
• Revisiones de la gerencia de Software: Son conducidos por los representantes de la
gerencia para evaluar el estado del trabajo.
• Revisiones de la intervención del software: Son conducidos por el personal externo al
proyecto de software para evaluar conformidad con especificaciones y estándares.
Diversos tipos de Revisiones.
• Revisión de código
• Programación de grupo par.
• Inspección
• Revisión Técnica
6. PRUEBA DE ERRORES PARA EL SOFTWARE
• En los años 60, un ingeniero industrial japonés desarrollo una técnica de garantía de la
calidad, en la que su objetivo era la prevención y/o corrección de errores en el proceso de
fabricación. Fue denominado poku yoke, estos son dispositivos que conducen a la
prevención de un problema potencial antes de que ocurra y a la rápida detección de
problemas de calidad si ya se han producido.
• Un dispositivo Poku Yoke presenta un conjunto de características comunes,
• Es simple y barato
• Es parte del proceso
• Esta localizado cerca de la tarea del proceso donde están ocurriendo los errores.
• En fin esta técnica (Poka yoke) puede ser implementado en el uso de la Ingeniería del
Software, a través de pequeños Scripts en el cual se ejecuta sobre las aplicaciones para
detectar fallos, esta técnica puede aplicarse a los niveles de diseño, codificación y pruebas y
proporciona un filtro efectivo de garantía de la calidad.
7. EL ESTÁNDAR DE CALIDAD ISO 9001
Es un conjunto de normas para la calidad y gestión, es cada vez el más
importante estándar internacional, ha sido adoptado por más de 130
países alrededor del mundo, en la cual los usuarios pueden juzgar la
competencia de un desarrollo de software.
La desventaja es que el ISO 9001 no es un estándar específico para el
desarrollo de software, pero define principios generales que pueden
aplicarse al software, el estándar ISO 9001 no define los procesos de
calidad que deben usarse.
Para la industria del software los estándares relevantes son:
• ISO 9001 desarrollo de un producto que implique diseño
• ISO 9000-3 es un documento específico que interpreta el ISO 9001 para
el desarrollo de software
• ISO 9004-2 proporciona directrices para el servicio de facilidades del
software como soporte de usuario.
8. MANTENIMIENTO DE UN SISTEMAS
• Es el proceso general de cambiar un sistema después de que
este ha sido implantado. La estructura de organización necesita
flexibilidad para apoyar el mantenimiento de los sistemas
existentes concurrentemente con la ejecución de nuevas
tecnologías.
• El mantenimiento del software existente es mas del 60% de las
inversiones efectuadas por una organización de desarrollo. El
20% de nuestros esfuerzos se dedica al mantenimiento y el 80%
a adaptar los sistemas existentes a los cambios externos.
9. MEJORAMIENTO DE UN SISTEMAS
• “EL mantenimiento del Software es la modificación de un
producto Software después de su entrega al cliente o usuario
para corregir los defectos, para mejorar el rendimiento u otras
propiedades deseables, o para adaptarlo a un cambio de
entorno” (IEEE 1219:1993).
• El cambio es inevitable en la vida del software. Por ello,
debemos desarrollar mecanismos de evaluación, control e
implementación de modificaciones.
10. PROBLEMAS DEL MANTENIMIENTO DE SISTEMAS
Dificultad para seguir la evolución del software a través de varias
versiones al no existir documentación sobre los cambios.
Dificultad para seguir el proceso por el que se construyó el
software. Dificultad para comprender un programa ajeno.
Dificultad para contactar con los desarrolladores. La
documentación apropiada no existe. No se prevé el cambio
cuando se diseña. El mantenimiento no se considera un trabajo
atractivo. ...todos tienen su origen en las deficiencias del
desarrollo.
11. FACILIDADES DEL MANTENIMIENTO DE SISTEMAS
EVALUACIÓN DE LA FACILIDAD DE MANTENIMIENTO (CONT.)
También se puede evaluar indirectamente considerando medidas
de la complejidad del software y de la estructura del diseño.
REVISIÓN :
La facilidad de mantenimiento debe considerarse en el proceso
de revisión.
12. Los factores clave que distinguen el desarrollo y el
mantenimiento, y que conducen a costos de mantenimiento más
elevados son:
Estabilidad del equipo.
Responsabilidad contractual.
Habilidades del personal.
Edad y estructura del programa.
13. Mantenimiento para mejoras (añadir o modificar las
funcionalidades del sistema):
• Se trata de la extensión o el mejoramiento del desempeño del
sistema, ya sea mediante el agregado de nuevas características,
o el cambio de las existentes.
* Un ejemplo de este tipo de mantenimiento es la
conversión de los sistemas de texto a GUI (interfaz
gráfica de usuarios).
• Es necesario cuando los requerimientos del sistema cambian
como respuesta a cambios organizacionales .