Title: A1262591135DTiIA
1Universidad Tecnológica del Norte de
Guanajuato Cuarta Expo Informática
Calidad en Software Proceso de Ingeniería de
Software Dr. Cuauhtémoc Lemus Olalde Centro de
Investigación en Matemáticas A. C. (CIMAT)
Febrero, 2003
2Calidad
- Conjunto de cualidades (etimología similar) de
una persona ó cosa - Lo que hace que una persona o cosa sea lo que es
- Propiedad, carácter
- Atributo, don, virtud, modalidad
- Superioridad, excelencia de alguna cosa
- Importancia
- Calificación
- Calidad de vida
- Calidad de la educación
- Calidad del servicio
- Educación de los hijos
3Que se esta haciendo en Calidad del Software?
- Adopción de modelos y estándares
- CMM
- SPICE
- ISO 9001, etc.
- Mejoramiento de procesos de software a través de
técnicas y métodos estadísticos - PSP (Personal Software Process)
- TSP (Team Software Process)
- Seis Sigma Software
- Desarrollo de Software (Calidad del Producto)
- Arquitectura de Software
- Líneas de Productos
4Perspectiva General
- La Ingeniería de Software es una disciplina que
estudia metodologías y enfoques de desarrollo de
sistemas a gran escala. - Integrar a IS metodologías de organización y
administración para formar una ambiente de IS
basada en procesos.
5Historia
- En sus inicios IS se enfocó a aspectos técnicos
- metodologías de programación,
- lenguajes de programación,
- modelos de desarrollo de software
- herramientas
- En la industria el rol importante paso de los
programadores a líderes de proyecto y
administradores empresariales
6Historia
- Los programadores requieren de tecnologías de
programación. - Los administradores y requieren de metodologías y
estrategias. - Los líderes de proyecto requieren de metodologías
de calidad (aseguramiento de la calidad) - Aspectos actuales de IS
- Metodología e Infraestructura de Desarrollo
- Organización
- Administración
7Historia
- Las actuales metodologías de IS son inadecuadas.
- Se requiere de un proceso de Ingeniería de
Software. - Un proceso de IS incluye
- Prácticas empíricas de Desarrollo (Métodos,
Modelos, Enfoques, Etapas) - Modelo Abstracto de las actividades de
desarrollo. - Metodologías de Ingeniería para el desarrollo,
organización y administración de sistemas a gran
escala.
8Modelos de Procesos de IS
- CMM (Capability Maturity Model)
- ISO 9001
- BOOTSTRAP
- ISO/IEC 15504 (SPICE Software Process
Improvemente ?) - Modelo vs. Ciclo de Vida
- El modelo consiste de fases o etapas y esta
orientado al desarrollo de software, y el modelo
consiste de procesos cubriendo todas las
practicas en un proyecto de software
(organización, administración y desarrollo)
9Modelos de Procesos de IS
- Esfuerzos de investigación (Humprey 95, Kugler
Rementeria 95, Pfleeger 98) indican un cambio de
enfoque - En lugar de controlar la calidad en el producto
final de software, se optimizará el proceso del
cual se produce el software. - Actualmente el desarrollo de aplicaciones de
software son proyectos de software (un solo
sistema), pero el proceso podría definirse,
estabilizarse, reutilizarse y estandarizarse.
10Definición IS (1969)
- Ingeniería de Software
- Establecimiento y uso de principios de ingeniería
para obtener software económico que es confiable
y funciona eficientemente (Naur Randell 69) - Características
- Complejidad y diversidad
- Dificultad en establecer y estabilizar los
requerimientos - Software es cambiante (maleable)
- Abstracción e intangibilidad de los productos de
software - Requisito de variar conocimiento del dominio del
problema - Diseño no-determinístico y con soluciones
múltiples - Uso de varios lenguajes y polimorfismo en la
implementación - Dependencia en las interacciones entre software,
hardware y el usuario
11Definición IS (1991)
- Ingeniería de Software es la ciencia y arte de
especificar, diseñar, implementar y evolucionar,
en forma económica, a tiempo y elegante,
programas, documentación, y procedimientos
operativos para que las computadores puedan ser
útiles (McDermid 91) - IS-69 es un método para el desarrollo de
software - IS-91 una ciencia y arte de programación.
12Definición (1998)
- Ingeniería de Software es una disciplina que
adopta enfoques tales como - Metodologías
- Procesos
- Herramientas
- Estándares
- Métodos de Organización
- Métodos de Administración
- Sistemas de aseguramiento de calidad
- Para desarrollar software a gran escala con una
alta productividad, bajo costo, calidad
controlada, y agendas de desarrollo mensurables.
13Comparando Definiciones de IS
Def. Naturaleza Significado Objetivo Atributos
1969 Un método Principios genéricos de IS Software Económico Confiable Eficiente
1991 Ciencia y arte Ciclo de vida Especificación Diseño Implementación Evolución Programas y documentos Económico Oportuno Elegante
1998 Una disciplina de Ingeniería Enfoques Metodologías Procesos Herramientas Estándares Organización Administración Calidad Software a gran escala Productividad Calidad Costo Tiempo
14Productos de Software vs. Productos Físicos
- La revolución industrial se oriento a la
producción en masa a través de maquinaria y
procesos estándares y componentes (Marshall 38) - El desarrollo de sistemas de software es una
revolución que transforma el procesamiento de
información y partes de un producto físico en
software.
15Metodologías de Programación
- Principios
- Abstracción
- Esconder Información
- Descomposición Funcional (50s)
- Modularización
- Reutilización
- Programación Estructurada (70s)
- Abstract Data Types (74)
- Lenguajes Orientados a Objetos (80s)
- Component Base Programming (COTS Components of
the Shelf)
16Modelos de Desarrollo de Software
- El modelo intenta proveer un conjunto de guías
para el diseño e implementación del sistema. - Modelo de Cascada (Royce 70)
- Prototipos (Curtis y colegas 87)
- Espiral (Boehm 88)
- V (GMOD 92)
- Evolucionario (Lehman 85, Gilb 88, Gustavsson 89)
- Incremental (Mills y colegas 80)
17Automatización de IS
- Aplicación de inteligencia artificial y técnicas
de basadas en el conocimiento. - Categorías de Herramientas
- CASE (Computer Aided Software Engineering)
- Unified Modeling Language
- Facilitan la automatización de las etapas de
diseño y generación de código. - Problemas Principales
- Adquisición y especificación de requerimientos
- Representación del conocimiento de una aplicación
- Pruebas de corrección de una implementación
18Clasificación de Herramientas de IS
Categoría Subcategoría Comentarios
Análisis de Sistemas Análisis de requerimientos, adquisición, especificación, prototipos, modelación, generación de interfases, etc.
Desarrollo de Software Análisis y Especificación de Requerimientos Análisis de Requerimientos, Representación del conocimiento de un dominio, especificación, etc.
Programación Compiladores, Debuggers, generadores de código, sistemas de reutilización, ambientes de programación, etc.
Prueba Modular, Integración, sistema, aceptación, prototipos, objetos, interfase, etc.
Mantenimiento Reverse Engineering, Re-ingeniería, librería de reutilización, análisis estático y dinámico, etc.
CASE UML, ClearCase, Analystsw Toolkit, Automate, BachmanSet, Excelerator, IEW, LBMS, Maestro, Oracle CASE, Select, System Architect, Top CASE, Unis SCCS, Yourdon ADT, Rational, etc.
19Enfoques de IS
Enfoque Descripción Técnica Organización Administración
Programación D. Funcional P. Estructurada OOP CBP H L L
Modelos de Desarrollo Cascada Espiral Prototipos H M L
Automatizar IS CASE UML H L L
Métodos Formales CSP SDL Z Clean Room H L L
Procesos de IS CMM Trillium BOOTSTRAP ISO/IEC 15504 H H H
20Comentarios
- Las áreas de organización y administración no han
recibido mucha atención en cada uno de los
enfoques. - Los procesos de IS consideran infraestructuras
- Sistemáticas
- Organizacionales
- Administrativas
- El software es cada vez más complejo, de gran
tamaño, y de mejor calidad
21El Proceso de IS
- Un proceso se describe como un conjunto de
actividades que transforman una entrada para
crear una salida. - El proceso de IS transforma requerimientos parea
crear un producto de software. - Proceso de Software
- Método de Administración de Software ( Gilb 88,
Humphrey 89) - Enfoque de aseguramiento de calidad (Evans
Marciniak 87, ISO 91) - Técnicas de desarrollo de software (Curtis 87,
Fayad 97)
22El Proceso de IS
- Nueva disciplina de Proceso de Ingeniería de
Software - Desarrollo de CMM
- ISO 9000
- Proceso de IS
- Fundamentos
- Modelo
- Establecimiento
- Evaluación
- Mejoramiento
- Estandarización
- de procesos de software
23Definición de Proceso de IS
- Conjunto de prácticas secuenciales que son
funcionalmente coherentes y reutilizables en la
organización, implementación y administración de
la ingeniería de software.
24HistoriaProceso de IS
- Ingeniería de Software Ciencia de la
Administración - 60sIngeniería de Procesos y principios de
administración en Ciencia de la Administración
(Simon 60, Schein 61, Ellis FRed 62, Juran 62,
Anthony 65, Richardson 66, Hall 67) - 70s 80s Establecimiento de Ciencia de la
Administración de acuerdo a la tabla de de
Fundamentos Administrativos.
25HistoriaProceso de IS
- Conformidad de la calidad a los requisitos y a
las especificaciones (Crosby 79, Juran 80, Deming
82) - Círculo de Deming (Plan-Do-Check-Act PDCA)
propuesto en Ciencia de la Administración
Modelación y Análisis de Procesos de Software. - Proyecto ISO TC176 para desarrollar un estándar
internacional de sistemas de calidad (ISO 9000
91,93,94) aplicable ingeniería e implementado en
IS (IS0 9001 89,94)
26HistoriaProceso de IS
- 70s Crisis de Software (Naur Randell 69, Baker
72, Brooks 75, Hoare 75) - 80s Proceso de Software se reconoce como un arma
de la Ingeniería de Software (Basili 80, Aron 83,
Agresti 86, Evans 87, Boehm 81,86,87, Gilb 88,
Humphrey 87, 88, 89) - Desarrollo del Modelo CMM (Humphrey 87, Paulk 93)
- 80s Otros Modelos
- IEEE Software Engineering Standard (IEEE 83)
- British Standard BS 5750 (BSI 87)
27Métodos y Procesos de IS Actuales
- TickIT
- ISO 9001 (1)
- CMM (2)
- BOOTSTRAP
- ISO/IEC 12207
- ISO/IEC TR 15504 (SPICE) (3)
- BSI
- Trillium
28Taxonomía y Dominios en los Modelos Actuales
Nivel CMM Bootstrap SPICE ISO 9001 SEPRM
Sistema CMM Bootstrap SPICE ISO 9001 SEPRM
Sub-sistema - Areas de Proceso 3 - Sub-sistemas 3 Sub-sistemas 3
Categoría Niveles 5 Categorías 9 Categorías (PCs) 5 - Categorías 12
Proceso Areas Prácticas (KPAs) 18 Procesos 32 Procesos (PRs) 35 Tópicos Principales de Areas (MTAs) 20 Procesos 51
Práctica Prácticas (KPs) 150 Atributos de Calidad (QSAs) 201 Prácticas Base (BPs) 201 Aspectos de Admon. (MIs) 177 Actividades de Procesos (BPAs) 444
29Modelo de Calidad ISO 9126
Característica Atributo
Funcionalidad Conveniente, exactitud, interoperabilidad, seguridad
Confiabilidad Maduro, tolerancia a fallas, recuperabilidad
Utilidad Fácil de entender, aprender, operar
Eficiencia Comportamiento en el tiempo, Comportamiento de los recursos
Fácil de Mantener Fácil de analizar, modificar, probar estabilidad
Portabilidad Fácil de adaptarse, instalarse, adecuarse, reemplazarse.
30Modelo Genérico del Desarrollo de Software
Procesos de Desarrollo
Desarrolladores
Clientes
Procesos de Administración
Administradores
Proceso de Organización
31Implementación del Modelo Genérico
Proceso de Organización
Modelo de Referencia
organización
proceso
Proceso Derivado del Modelo de Referencia
Proceso de Administración
Proceso Derivado del Modelo de Referencia
Proceso de Administración
Proceso de Desarrollo
Proceso de Desarrollo
Proyecto 1
Proyecto n
32IngSoft_at_CIMAT
- Proyecto ProCIS (Promoviendo Calidad en la
Industria del Software) - Cultura de Calidad Universidades e Industria
(PSP, TSP) - Investigación
- Arquitecturas de Software (Líneas de Productos)
- Proceso de IS (CMMi, SPICE, PSP, TSP, Seis-Sigma
Software) - Maestría en Ingeniería de Software (MIS)
33Literatura
- Yingxu Wang, Software Engineering Processes
Principles and Applications, Boca Raton, CRC
Press 2000. - Paulk, M. C., y colegas, CMM Versus SPICE
Architectures, Software Process Newsletters,
Spring 1994, pp. 7-11. - Paulk, M. C., How ISO 9001 Compares with the
CMM, IEEE Software, January 1995, pp. 74-83. - Jarvinen, J., On Comparing Process Assessment
Results BOOTSTRAP and CMM, Software Quality
Management, pp. 247-262, 1994. - Kugler, H. J., y colegas, From the Software
Process to Software Quality BOOTSTRAP and ISO
9000, Proceedings of the First Asia-Pacific
Software Engineering Conference, Tokyo, Japan,
IEEE Computer Society Press, pp. 174-182.1994. - Kitson , D. H., Relating the SPICE Framework
and SEI Approach to Software Process Assessment
Proceedings of International Conference on
Software Quality Management (SQM96), MEP Press,
London 1996, pp. 37-49. - Hoare, C. A. R., Communicating Sequential
Processes, Prentice-Hall International, Englewood
Cliffs, NJ., 1985. - Milner, R., Communicating and Concurrency,
Prentice-Hall, Englewood Cliffs, NJ., 1989. - Humphrey, W. S., A Discipline for Software
Engineering, SEI Series in Software Engineering,
Addison-Wesley, Reading, MA., 1995. - Pressman, R. S., Software Engineering A
Practitioners Approach (3rd ed.), MacGraw-Hill
International Editions, New York 1992. - Fondo Mixto de Fomento a la Investigación
Científica y Tecnológica CONACYT-Gobierno del
Estado de Guanajuato Programa para el desarrollo
de la Industria de Software http//www.conacyt.mx/
fondos/guanajuato/guanajuato2002-01.html
34Preguntas?
Dr. Cuauhtémoc Lemus Olalde clemola_at_cimat.mx www
.cimat.mx/ingsoft Febrero, 2003