Calidad en Software:
Proceso de Ingeniería de Software
Universidad
Tecnológica
del Norte
de Guanajuato
Cuarta Expo
Informática
Dr. Cuauhtémoc Lemus Olalde
Centro de Investigación
en Matemáticas A. C.
(CIMAT)
Febrero, 2003
Calidad
Conjunto de cualidades (etimología
similar) de una persona ó cosa
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
– 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
Que se esta haciendo en
Calidad del Software?
Adopción de modelos y estándares
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
– 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
Perspectiva General
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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.
Historia
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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
Historia
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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
Historia
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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.
Modelos de Procesos de IS
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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)
Modelos de Procesos de IS
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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.
Definición IS (1969)
Ingeniería de Software
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
– 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
Definición IS (1991)
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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.
Definición (1998)
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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.
Comparando Definiciones
de IS
Def. Naturaleza
Significado
Objetivo
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
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
Atributos
Productos de Software vs.
Productos Físicos
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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.
Metodologías de
Programación
Principios
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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)
Modelos de
Desarrollo de Software
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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)
Automatización de IS
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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
Clasificación de
Herramientas de IS
Categoría
Subcategoría
Análisis de
Sistemas
Análisis de requerimientos, adquisición,
especificación, prototipos, modelación,
generación de interfases, etc.
Introducción
Perspectiva
Ingeniería de
Software (IS)
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.
Proceso de IS
IngSoft
CASE
Comentarios
UML, ClearCase, Analystsw Toolkit,
Automate+, BachmanSet, Excelerator, IEW,
LBMS, Maestro, Oracle CASE, Select,
System Architect, Top CASE, Unis SCCS,
Yourdon ADT, Rational, etc.
Enfoques de IS
Enfoque
Descripció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
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
Técnica Organización Administración
Comentarios
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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
El Proceso de IS
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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)
El Proceso de IS
Nueva disciplina de Proceso de
Ingeniería de Software
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
– Desarrollo de CMM
– ISO 9000
Proceso de IS
–
–
–
–
–
–
Fundamentos
Modelo
Establecimiento
Evaluación
Mejoramiento
Estandarización
… de procesos de software
Definición de Proceso de IS
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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.
Historia
Proceso de IS
Ingeniería de Software & Ciencia
de la Administración
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
– 60s:Ingenierí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.
Historia
Proceso de IS
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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)
Historia
Proceso de IS
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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)
Métodos y Procesos
de IS Actuales
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
TickIT
ISO 9001 (1)
CMM (2)
BOOTSTRAP
ISO/IEC 12207
ISO/IEC TR 15504 (SPICE) (3)
BSI
Trillium
Taxonomía y Dominios en
los Modelos Actuales
Nivel
CMM
Bootstrap
SPICE
ISO 9001
SEPRM
Sistema
CMM
Bootstrap
SPICE
ISO 9001
SEPRM
Perspectiva
Ingeniería de
Software (IS)
Subsistema
-
Areas de
Proceso [3]
-
Sub-sistemas
[3]
Subsistemas [3]
Proceso de IS
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]
Introducción
IngSoft
Modelo de
Calidad ISO 9126
Característica
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.
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
Atributo
Modelo Genérico del
Desarrollo de Software
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
Procesos de
Desarrollo
Desarrolladores
Procesos de
Administración
Administradores
Clientes
Proceso de Organización
Implementación del
Modelo Genérico
Proceso de
Organización
Introducción
Perspectiva
Ingeniería de
Software (IS)
Modelo de
Referencia
organización
proceso
Proceso de IS
IngSoft
Proceso
Derivado
del
Modelo
de
Referencia
Proceso de
Administración
Proceso de
Desarrollo
Proyecto 1
Proceso
Derivado
del
Modelo
de
Referencia
…
Proceso de
Administración
Proceso de
Desarrollo
Proyecto n
[email protected]
Proyecto ProCIS (Promoviendo
Calidad en la Industria del Software)
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
– Cultura de Calidad: Universidades e
Industria (PSP, TSP)
– Investigación
Arquitecturas de Software (Líneas de
Productos)
Proceso de IS (CMMi, SPICE, PSP, TSP, SeisSigma Software)
– Maestría en Ingeniería de Software (MIS)
Literatura
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
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 (SQM’96), MEP Press, London 1996, pp. 3749.
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 Practitioner’s 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
Preguntas?
Dr. Cuauhtémoc Lemus Olalde
Introducción
Perspectiva
Ingeniería de
Software (IS)
Proceso de IS
IngSoft
[email protected]
www.cimat.mx/ingsoft
Febrero, 2003
Descargar

Slide 1