2. Primero hablemos de Calidad
• La Ingeniería de Software tiene como
objetivo principal:
“La producción de software de alta
calidad.”
• Pero qué es la calidad del software?
3. Calidad del Software
• Calidad del PRODUCTO
• Calidad del PROCESO
– Ambos están relacionados
– “Sin un buen proceso de desarrollo es casi
imposible obtener un buen producto”
5. Definiciones de “calidad”
– “Conformidad con los requisitos y
confianza en el funcionamiento”, Deming
– “Adecuación para su uso”, Juran
– “Hacerlo bien a la primera”, Crosby
6. Definiciones - Calidad
• Según estándares internacionales:
– “La calidad es la suma de todos aquellos aspectos
o características de un producto o servicio que
influyen en su capacidad para satisfacer las
necesidades, expresadas o implícitas” (ISO 8402)
– “Grado con el cual el cliente o usuario percibe que
el software satisface sus expectativas” (IEEE 72983)
– “Capacidad del producto software para satisfacer
los requisitos establecidos” (DoD 2168)
7. Calidad del Software
• La calidad es algo relativo:
– Siempre dependerá de los requisitos o
necesidades que se deseen satisfacer.
– La evaluación de la calidad de un producto
siempre implicará una comparación entre los
requisitos preestablecidos y el producto
desarrollado
8. Calidad del Software
• Diferentes visiones de la calidad:
- Necesaria o requerida: la que quiere el cliente.
- Programada o especificada: la que se ha
especificado explícitamente y se intenta
conseguir.
- Realizada: la que se ha conseguido.
• El objetivo es conseguir que las tres visiones
coincidan
9. Modelos de Calidad de SW
• Nos ayudan a definir la calidad del software de una
forma más precisa y útil.
• Un modelo de calidad es definido jerárquicamente.
Calidad del Software
Factores de Calidad
Punto de vista del producto
software, también llamados
Atributos de Calidad Internos
Punto de vista del usuario,
también llamados Atributos de
Calidad Externos
Criterios de
Calidad del Producto
Métricas del Producto
Medidas cuantitativas del
producto
11. Importancia
• Según su uso:
–
–
–
–
–
Mejoramiento del producto
Protección al comprador
Protección al negocio
Incrementa la disciplina profesional
Introducción de tecnología
12. Mejoramiento del Producto
• Estándares IEEE son voluntarios.
• La organización que los adoptan lo hace para
mejorar sus productos o mejora la percepción
de sus productos en el mercado
• Los estándares pueden mejorar los procesos
de negocios permitiendo desarrollar sus
productos con costos mas apropiados.
13. Protección al comprador
• Con muchos productos disponibles el comprador
toma decisiones basadas en propaganda, folletos,
experiencias anteriores con el vendedor o
examinación directa.
• La creciente complejidad de productos tecnológicos
causa inevitablemente la imposibilidad de examinar
muchos aspectos que se mantiene ocultos hasta
después de ser adquiridos.
• Los estándares pueden jugar un rol cuando proveen
información precisa acerca de la adecuación de los
productos para usos específicos.
14. Protección al negocio
• Litigios
– Estándares pueden respaldar la defensa en casos
en que se pretende demostrar negligencia.
• Respaldo
– El adherirse voluntariamente a estándares
respalda la seriedad y confiabilidad de la empresa
que así lo hace.
• Contratos
– En situaciones contractuales la aplicación
adecuada de estándares protegen a ambas partes
divide responsabilidades, clarifica terminología y
define procedimientos esperados.
15. Incrementa la Disciplina Profesional
• La existencia de estándares y uso de los
mismo es un paso importante en la
formalización de la Ingeniería de Software.
• Define los métodos esperados en la practica
responsable de la ingeniería de software.
17. Estandares IEEE SESC
(Software Engineering Standards Comitee)
• Alrededor de 50
• 4 volúmenes, 2,300 paginas
• Cada uno de estos estándares toma de 2 a 4
años en ser elaborados.
• Costo 2,000 a 10,000 US$ por página
• Precio de venta 300-400 US$, para miembros
de IEEE
18. Objetivos Organizacionales
• Diferentes motivos por los cuales una
organización adopta estos estándares:
– Mejorar y evaluar su capacidad tomado en cuanta
estos aspectos:
•
•
•
•
•
Calidad
Satisfacción del Cliente
Productividad
Madurez de los procesos
Tecnología
19. Objetivos Organizacionales
– Proveer el marco y terminología para un contrato
de dos partes.
•
•
•
•
Proceso de adquisición
Proceso de provisión
Proceso de ciclo de vida
Documentos (entregas) durante el ciclo de vida
– Evaluar los productos de la Ingeniería de SW
• Mediciones externas (producto final)
• Mediciones internas (productos incompletos,
intermedios)
21. Organización
• Organización orientada a objetos de la IS
ayuda
transforma
Proceso
desempeña
Cliente
interactúa
con
Proyecto
produce
Agente
Producto
usa
se aplican a
Recurso
22. Estándares IEEE
•
610.12-1990 Standard Glossary of Software
Engineering Terminology
•
1012a-1998, Supplement to Standard for
Software Verification and Validation
730-2002, Standard for Software Quality
Assurance Plans
1016-1998, Recommended Practice for
Software Design Descriptions
828-1998, Standard for Software
Configuration Management Plans
1028-1997, Standard for Software
Reviews
829-1998, Standard for Software Test
Documentation
1044-1993, Standard Classification for
Software Anomalies
830-1998, Recommended Practice for
Software Requirements Specifications
1045-1992, Standard for Software
Productivity Metrics
982.1-1988, Standard Dictionary of Measures to
Produce Reliable Software
1058-1998, Standard for Software
Project Management Plans
1008-1987 (R1993), Standard for Software
Unit Testing
1061-1998, Standard for a Software
Quality Metrics Methodology
1012-1998, Standard for Software Verification
and Validation
1062-1998, Recommended Practice for
Software Acquisition
IEEE/EIA 12207.0-1996, Industry
Implementation of International Standard
ISO/IEC 12207: 1995
IEEE/EIA 12207.1-1996,
IEEE/EIA 12207.2-1997,
1063-2001, Standard for Software User
Documentation
1074-1997, Standard for Developing
Software Life Cycle Processes
23. Estándares IEEE (cont.)
•
1175.1-2002, Guide for CASE Tool
Interconnections - Classification and
Description
1219-1998, Standard for Software
Maintenance
1220-1998, Standard for the Application and
Management of the Systems Engineering
1228-1994, Standard for Software Safety
Plans
1233-1998, Guide for Developing System
Requirements Specifications
1320.1-1998, Standard for Functional
Modeling Language-Syntax and Semantics for
IDEF0
•
1420.1a-1996, Supplement to Standard for
Information Technology-Software Reuse-Data
1420.1b-1999, IEEE Trial-Use Supplement to
Standard for Information
1462-1998, Standard - Adoption of
International Standard ISO/IEC 14102: 1995;
1465-1998, Standard - Adoption of
International Standard ISO/IEC 12119:
1994(E)
1471-2000, Recommended Practice for
Architectural Description of Software Intensive
1490-1998, Guide - Adoption of PMI
Standard - A Guide to the Project
Management Body of Knowledge
1320.2-1998, Standard for Conceptual
Modeling Language Syntax and Semantics...
1517-1999, IEEE Standard for Information
Technology-Software Life Cycle ProcessesReuse
1362-1998, Guide for Information TechnologySystem Definition-Concept of Operations
1540-2001, Standard for Software Life Cycle
Processes- Risk Management
1420.1-1995, Standard for Information
Technology-Software Reuse-Data Model for
Reuse
2001-2002, Recommended Practice for
Internet Practices - Web Page Engineering
14143.1-2000, Adoption of ISO/IEC 141431:1998 Information Technology-Software
24. IEEE/EIA 12207
Tecnología de la Información
Procesos del Ciclo de Vida del Software
• Establece un marco común para el software a través de sus
ciclo de vida, desde la concepción hasta el retiro del mismo.
• Enfoca los procesos del software desde el punto de vista
técnico del sistema y desde el punto de vista comercial de la
empresa.
• Es considerado ampliamente como base para el comercio
mundial de software.
• Su adopción es completa o en camino de serla en los países
mas desarrollados.
25. Estructura del IEEE/EIA 12207
Procesos Primarios del Ciclo de Vida
Procesos de Soporte al Ciclo de Vida
Adquisición
Documentación
Gestión de la Configuración
Suministro
Aseguramiento de la Calidad
Verificación
Operación
Validación
Revisión Conjunta
Desarrollo
Auditoría
Mantenimiento
Resolución de Problemas
Procesos Organizacionales del Ciclo de Vida
Administración/Gestión
Infraestructura
Mejoramiento
Capacitación
27. IEEE/EIA 12207 - Procesos Primarios
• Adquisición
– Iniciación
• Análisis de requerimientos (int. - ext.)
• Elección de software (empaquetado, desarrollo int. - ext. ,etc)
• Plan de adquisición
– Requisitos - Uso planeado del sistema - Tipo de contrato
– Responsabilidades - Soporte a emplearse - Riesgos y metodos
– Pliego de especificaciones y condiciones
•
•
•
•
•
•
•
Requisitos del sistema
Alcance
Instrucciones para los ofertantes
Lista de los productos software
Términos y condiciones
Control de subcontratos
Restricciones técnicas
28. IEEE/EIA 12207 - Procesos Primarios
•
Adquisición (cont.)
• Preparación y actualización de contrato
–
–
–
–
Establecer procedimientos de selección
Elección del proveedor
Preparación y negociación del contrato
Control y negociación de cambios al contrato
• Supervisión del proveedor
– Se supervisara al proveedor de acuerdo a un “Procesos de Revisión
Conjunta” y a un “Proceso de Auditoría” preestablecidos, suplementando a
los procesos de “Verificación”y “Validación”
• Aceptación y finalización
– Preparación para la aceptación del sistema de acuerdo a la estrategia
definida inicialmente. Preparación de casos para las pruebas, datos,
procedimientos y ambientes deben ser incluidos.
29. IEEE/EIA 12207 - Procesos Primarios
• Suministro
– Iniciación
• Revisión de los requisitos tomando en cuenta las reglas de la
organización
• Tomar la decisión de proponer o aceptar contrato
– Preparación de la propuesta
• El ofertante debe definir y preparar la oferta incluyendo la adecuación
de este estándar al proyecto.
– Contrato
• El ofertante negociará y firmará contrato
• El ofertante podrá solicitar cambios al contrato
30. IEEE/EIA 12207 - Procesos Primarios
• Suministro (cont.)
– Planificación
• Establecer marco de administración del proyecto
• Selección del ciclo de vida (si no fue estipulado)
• Establecer requisitos para el plan (recursos y participación del
cliente)
• Considerar opciones de desarrollo y prestación de servicios
–
–
–
–
Recursos internos
Sub-contratación
Empaquetados de procedencia interna o externa
Combinación de los puntos anteriores
31. IEEE/EIA 12207 - Procesos Primarios
• Suministro (cont.)
– Planificación (cont.)
• Desarrollo del plan considerando:
–
–
–
–
–
–
–
–
–
–
–
–
–
–
Organización del proyecto
Ambiente de ingeniería
Actividades del ciclo de vida y su sub-división
Gestión de la Calidad de los productos o servicios
Gestión de la Seguridad
Supervisión y administración de sub-contratistas
Aseguramiento de la Calidad
Verificación y validación
Involucramiento del cliente
Involucramiento del usuario
Gestión de Riesgos
Seguridad
Medios para planificar tiempos, controlar y reportar
Capacitación del personal
32. IEEE/EIA 12207 - Procesos Primarios
• Suministro (cont.)
– Ejecución y control
– Revisiones y evaluación
– Entrega y finalización
33. IEEE/EIA 12207 - Proceso de Desarrollo
1 - Selección e Implementación de un proceso de ciclo de vida
2 - Análisis de requisitos del sistema
3 - Diseño arquitectónico del sistema
4 - Análisis de requisitos del software
5 - Diseño detallado del software
6 - Codificación y pruebas del software
7 - Integración del software
8 - Pruebas de calificación del software
9 - Integración del sistema
10 - Pruebas de calificación del sistema
11 - Instalación del software
12 - Soporte al software
34. Ciclo de Vida
“CASCADA”
Pruebas de
calificación del
Software
Integración del
Software
Codificación y
pruebas del
Software
Diseño detallado
del software
Componente del
Software 1
Diseño
arquitectónico
del sistema
Análisis de
requisitos del
sistema
Diseño
arquitectónico
del software
Instalación
del Software
Pruebas de
calificación del
Sistema
Integración
del Sistema
Análisis de
requisitos del
software
Componente del
Software n ...
Componentes de
Hardware
Aplicación del IEEE/EIA 12207.0 a la estrategia de desarrollo denominada “Cascada”
Soporte al
Software
35.
36.
37. IEEE/EIA 12207 - Procesos de Gestión
• Administración/Gestión
–
–
–
–
–
Iniciación y definición de alcances.
Planificación
Ejecución y control
Revisión y evaluación
Conclusión / Finalización
• Infraestructura
– Implantación de procesos
– Establecimiento de la infraestructura
– Mantenimiento de la infraestructura
38. IEEE/EIA 12207 - Procesos de Gestión
• Mejoramiento
– Establecimiento de procesos
– Valoración de procesos
– Mejoramiento de procesos
• Capacitación
– Implantación del Proceso
– Desarrollo de materiales de capacitación
– Implantación del plan de capacitación.