Title: Seminario CC60I Calidad de Software Captulo : Introduccin
1Seminario CC60I - Calidad de Software
Capítulo Introducción
Relator Cecilia Casanova
23. Mejoramiento de Procesos como corriente
tecnológica
3Enfoques para mejorar
- Reingeniería de Procesos
- Cambio radical
- Busca avances decisivos
- Mejoramiento de Procesos
- Cambios pequeños e incrementales
- Se mejora lo que ya se está haciendo
4Historia del Mejoramiento de Procesos de Software
(SPI)
CMM(Modelo de Capacidades para software )
Humphrey(SEI) Modelo de Capacidades para Software
Crosby(ITT) Radice(IBM) Gestión de
Calidad Niveles de Madurez 1 - 5
Deming y Juran Extendieron trabajo de Shewart
Shewart(ATT Bell Labs) Principios de Control
Estadístico
5Beneficios esperados del SPI
- Reducir costos por rework
- Reducir desperdicios( basura )
- Reducir defectos en los productos
- Reducir tiempo del ciclo de vida
- Reducir riesgos
- Aumentar la productividad
- Aumentar la calidad de los productos y servicios
64. Ingeniería y Calidad de Software Una
perspectiva industrial
7Temario
- Desarrollo de productos
- Crisis del Desarrollo de Software
- Perspectivas para el desarrollo de software
- Definición de Ingeniería de Software
- Proceso de Desarrollo de Software
- Marcos de Trabajo para las fábricas de software
- Industria de Software en Chile ?
8Desarrollo de Productos
- Cuáles son los conceptos básicos ?
- Cuáles son las Planificaciones esenciales ?
- Cuáles son las mejoras necesarias ?
9Fases de Desarrollo de un Producto
- Fase de Concepción y viabilidad
- Fase de Diseño
- Fase de Prototipo
- Fase de Pre-producción
- Fase de Producción a escala
- Fase de Cambio en los diseños( en base a la
experiencia de fabricación,comercialización y uso
del producto) - Fase de utilización por el consumidor (hasta que
es eliminado, vendido o reemplazado)
10Planificaciones necesarias en el Desarrollo de un
producto
- Planificación de los Requisitos Funcionales
- Planificación de la Fiabilidad
- Planificación para la Mantenibilidad
- Planificación para la Seguridad
- Planificación de los Factores Humanos(ergonomía)
- Planificación para la Fabricación del transporte
- Planificación para minimizar riesgos y costos
- Planificación de la Configuración
- Planificación de la Calidad
Planificación del Mejoramiento
11 Qué sucedió con el software ?Datos Estadísticos
12Más datos Estadísticos
13Otros Datos Estadísticos
14La crisis del software en 1989
Fuente Software Engineering Risk
Analysis and Management Robert
Charette, Mc Graw Hill
15La crisis del software en 1994
Fuente CHAOS report, Standish Group, 1995 (
8350 aplicaciones estudiadas )
16Perspectivas para el Desarrollo de Software
- Perspectiva Industrial
- El Software como PRODUCTO
- Lograr un grado de REPETICION y MEDICION
- Basado en métodos,procesos y productos bien
definidos.
- Perspectiva Socio-cultural
- Considera el software como un fenómeno
socio-cultural y no técnico. - El software como producto es tal, solamente en
el contexto de su aptitud de USO.
17 Qué es un producto de Software ?
- Sistema de Software entregado a un cliente o
usuario con la documentación que describe como
instalarlo y usarlo
18Componentes de un Sistema de Software
- Documentos ( archivos word,planillas
excel,imágenes ) - Programas ( código fuente )
- Bibliotecas de funciones/objetos
- Modelos de Datos, de Interfaz
- Procedimientos de instalación u operación
- Plataforma de implementación
- Nota Cada uno de ellos se compone de otros
más.
Importante para la matriz de certificación
194.1 Definición de Ingeniería de Software
20Ingeniería de Software
- Primera definición
- El establecimiento y uso de principios de
ingeniería robustos, orientados a obtener
software económico que sea fiable y funcione de
manera eficiente sobre máquinas reales. - Fritz Bauer ( 1969 )
21Ingeniería
- Aplicar conocimiento científico, para crear
soluciones costo-efectivas a problemas prácticos.
22 Cuáles son las técnicas de la Ingeniería
clásica ?
- Modelamiento
- Construir modelos que simplifique el mundo real
- División del Producto
- Dividir el producto de un proyecto en componentes
rastreables - División del Proceso
- Dividir el desarrollo de un producto en etapas
(especificación, diseño y fabricación )
23Ingeniería de Software
- Segunda definición
- La meta principal de la Ingeniería de Software
es producir software de alta calidad.
Específicamente, esto significa que el software
es apropiadamente compatible,correcto,correctible,
eficiente,extensible, mantenible,modificable,porta
ble,confiable,reusable, robusto,seguro,probable,
entendible,amigable, validable y verificable - (Meyer,Ross,Goodenough and
Irvine -1975)
24Ingeniería de Software
- Otra definición
- Una disciplina de ingeniería donde los
ingenieros de software usan métodos, técnicas y
teorías de la ciencia de la computación, y los
aplican bajo restriciones de tiempo y costo en la
solución de problemas -
- Software Engineering - Ian
Sommerville
254.2 Proceso de Desarrollo de Software
26Proceso de Desarrollo de Software
- Ejemplo de proceso industrial Fabricación
de plásticos
Piezas defectuosas y resina sobrante
Resina
Calor y vapor
Energía
Ruido
PROCESO
Productos terminados
Personal
Partes deterioradas y aceites desperdiciados
INPUTS
OUTPUTS
27Proceso de Desarrollo de Software
- Es el proceso de desarrollo de software, un
proceso industrial ?
?
?
PROCESO
INPUTS
OUTPUTS
28Proceso de Desarrollo de Software
- Porqué es difícil hablar de Industria de
Software?, - Cuáles son las características diferenciadoras
más importantes del Software, en relación a otros
productos ? - El software es maleable.
- El software es abstracto, no tiene forma
física.. -
29Proceso de Negocios
Quality Assurance Plan
Software Project Plan (SPP)
ISR-APP
ISR-APP
CRS-APP
Requirements Definition
INPUTS
OUTPUTS
PROCESS
30Proceso de Análisis de Requerimientos
CRS-APP
GUI Prototype
CRS-APP
Analysis Requirements
Software Requirements Specification (SRS)
Unified Modeling Language (UML )
INPUTS
OUTPUTS
PROCESS
31Proceso de Diseño
SRS
Architectural model
Data model
Software Requirements Specification
Design
User interface model
Unified Modeling Language (UML )
Software Design Specification (SDS)
INPUTS
OUTPUTS
PROCESS
32Proceso de Implementación
SDS
CODE
CODE
Software Design Specification
CODE
Code generation
Pieces of code (components )
Unified Modeling Language (UML )
INPUTS
OUTPUTS
PROCESS
33Proceso de Prueba
CODE
CODE
CODE
Testing
Test Cases
Tests Reports
INPUTS
OUTPUTS
PROCESS
344.3 Marcos de Trabajo para las Fábricas de
Software
35Las capas del desarrollo de Software
Herramientas
Métodos
Procesos
Foco en la Calidad
36Infraestructura Empresarial
Personas
Infraestructura Tecnológica
Procesos
Tecnología
37Modelos para usar la Infraestructura Tecnológica
Modelo de Equipo de Trabajo
Modelos de Productos
Modelo de Procesos
38Modelos de Equipos de Desarrollo
Desarrollador
Líder de Proyecto
VerificadorValidador
Arquitecto de Software
Ingeniero de Pruebas
Diseñador
39Modelo de Comunicación de Equipos para la
obtención de un producto de software
Delivered System
Test team leader
System Architect
Customer
Requirements
System Engineer
Development Team Leader
Domain Expert
Customer
System Architect
System Architect
Project Manager
Testing Team
Project Manager
Test team leader
Development Team Leader
Requirements Team
Project Manager
Design and Implementation Team
Integrated System
40Roles del Grupo de Trabajo MSF(Microsoft
Solutions Framework)
Testing
Program Management
Logistic Management
41Modelos internacionales de Calidad
- Modelos de Calidad
- ISO-9000 (ISO 1987 )
- Reglas básicas de calidad, independientes del
producto o servicio de que se trate - Se han Interpretado las ISO-9001para software
Diseño,Desarrollo,Producción,Instalación y
Servicios - CMM Capability Maturity Model ( SEI 1987 )
- Para el mejoramiento del proceso de Software
- Propone un paradigma de desarrollo conducido por
procesos ( y no por crisis )
42Caótico
43Areas de Proceso Claves CMM - Nivel 2 (
Repetible )
REPETIBLE -Gestión de Requerimientos -
Planificación de Proyectos - Seguimiento de
Proyectos - Garantía de Calidad de Software -
Gestión de Sub-contratistas - Gestión de
Configuración
44ISO-9001
- 4.1 Responsabilidad Gerencial
- 4.2 Principios del Sistema de Calidad
- 4.3 Revisión contractual
- 4.4 Control de Diseño
- 4.5 Control de Documentos
- 4.6 Calidad de Compras
- 4.7 Productos sumistrados por el proveedor
- 4.8 Identificación del producto
- 4.9 Control de Procesos
- 4.10 Inspección y Control
- 4.11 Control de mediciones y equipos
- 4.12 Inspección y estado de control
Claúsulas de la normativa
45ISO-9001
4.13 Control de productos no conformes 4.14
Acción correctiva 4.15 Funciones
post-producción 4.16 Registros de Calidad 4.17
Auditorías Internas de Calidad 4.18 Entrenamiento
del Personal 4.19 Servicios 4.20 Técnicas
estadísticas
Claúsulas de la normativa
46Modelo Genérico de una Organización de Software
(CMM Nivel 2 )
Ingeniería de Procesos
PROCESO DE PRODUCCION DE SOFTWARE
Proceso de Ingeniería de Software
Diseño
Requerimientos
Gestión de Requerimientos
Construcción
Prueba
Planificación y Seguimiento de Proyectos
Aseguramiento de Calidad
Administración de Configuración
474.5 Industria de Software en Chile ?
48Industria Nacional de Software Tipos de actividad
Gentileza INTEC-CHILE
49Historia de la Calidad de Software en Chile
1994 1995 1996 1997 1998
Iniciativas de Certificación ISO-9000
Modelo de Madurez SQA Doc(UTFSM)
Proyecto INTEC-CHILE (SPIN-CHILE)
Evaluaciones SPRIME ( INTEC-CHILE)
Primeras 2 Casas de Software certifica- das
ISO-9000
Primeros resultados