34
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 Universidad 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 Calidad

Embed Size (px)

Citation preview

Page 1: 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 Calidad

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

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

UniversidadTecnológica

del Norte de Guanajuato

Cuarta Expo Informática

UniversidadTecnológica

del Norte de Guanajuato

Cuarta Expo Informática

Page 2: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

CalidadCalidadConjunto de cualidades (etimología Conjunto de cualidades (etimología similar) de una persona ó cosasimilar) de una persona ó cosa– Lo que hace que una persona o cosa sea Lo que hace que una persona o cosa sea

lo que eslo que es– Propiedad, carácterPropiedad, carácter– Atributo, don, virtud, modalidadAtributo, don, virtud, modalidad

Superioridad, excelencia de alguna Superioridad, excelencia de alguna cosacosaImportanciaImportanciaCalificaciónCalificación– Calidad de vidaCalidad de vida– Calidad de la educaciónCalidad de la educación– Calidad del servicioCalidad del servicio

Educación de los hijosEducación de los hijos

Page 3: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Que se esta haciendo en Que se esta haciendo en Calidad del Software? Calidad del Software?

Adopción de modelos y estándaresAdopción de modelos y estándares– CMMCMM– SPICESPICE– ISO 9001, etc.ISO 9001, etc.

Mejoramiento de procesos de Mejoramiento de procesos de software a través de técnicas y software a través de técnicas y métodos estadísticosmétodos estadísticos– PSP (Personal Software Process)PSP (Personal Software Process)– TSP (Team Software Process)TSP (Team Software Process)– Seis Sigma Software Seis Sigma Software

Desarrollo de Software (Calidad del Desarrollo de Software (Calidad del Producto)Producto)– Arquitectura de SoftwareArquitectura de Software– Líneas de Productos Líneas de Productos

Page 4: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Perspectiva GeneralPerspectiva 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.

Page 5: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

HistoriaHistoria

En sus inicios IS se enfocó a En sus inicios IS se enfocó a aspectos técnicos: aspectos técnicos: – metodologías de programación,metodologías de programación,– lenguajes de programación, lenguajes de programación, – modelos de desarrollo de softwaremodelos de desarrollo de software– herramientasherramientas

En la industria el rol importante En la industria el rol importante paso de los programadores a paso de los programadores a líderes de proyecto y líderes de proyecto y administradores empresarialesadministradores empresariales

Page 6: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

HistoriaHistoriaLos programadores requieren de Los programadores requieren de tecnologías de programación.tecnologías de programación.Los administradores y requieren de Los administradores y requieren de metodologías y estrategias.metodologías y estrategias.Los líderes de proyecto requieren de Los líderes de proyecto requieren de metodologías de calidad metodologías de calidad (aseguramiento de la calidad)(aseguramiento de la calidad)Aspectos actuales de IS:Aspectos actuales de IS:– Metodología e Infraestructura de Metodología e Infraestructura de

DesarrolloDesarrollo– OrganizaciónOrganización– AdministraciónAdministración

Page 7: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

HistoriaHistoriaLas actuales metodologías de IS son Las actuales metodologías de IS son inadecuadas.inadecuadas.

Se requiere de un proceso de Se requiere de un proceso de Ingeniería de Software.Ingeniería de Software.

Un proceso de IS incluye:Un proceso de IS incluye:– Prácticas empíricas de Desarrollo Prácticas empíricas de Desarrollo

(Métodos, Modelos, Enfoques, Etapas)(Métodos, Modelos, Enfoques, Etapas)– Modelo Abstracto de las actividades de Modelo Abstracto de las actividades de

desarrollo.desarrollo.– Metodologías de Ingeniería para el Metodologías de Ingeniería para el

desarrollo, organización y administración desarrollo, organización y administración de sistemas a gran escala.de sistemas a gran escala.

Page 8: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Modelos de Procesos de ISModelos de Procesos de IS

CMM (Capability Maturity Model)CMM (Capability Maturity Model)

ISO 9001ISO 9001

BOOTSTRAPBOOTSTRAP

ISO/IEC 15504 (SPICE – Software ISO/IEC 15504 (SPICE – Software Process Improvemente ?)Process Improvemente ?)

Modelo vs. Ciclo de VidaModelo vs. Ciclo de Vida– El modelo consiste de fases o etapas y El modelo consiste de fases o etapas y

esta orientado al desarrollo de software, y esta orientado al desarrollo de software, y el modelo consiste de procesos cubriendo el modelo consiste de procesos cubriendo todas las practicas en un proyecto de todas las practicas en un proyecto de software (organización, administración y software (organización, administración y desarrollo)desarrollo)

Page 9: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Modelos de Procesos de ISModelos de Procesos de IS

Esfuerzos de investigación (Humprey Esfuerzos de investigación (Humprey 95, Kugler & Rementeria 95, Pfleeger 95, Kugler & Rementeria 95, Pfleeger 98) indican un cambio de enfoque:98) indican un cambio de enfoque:– En lugar de controlar la calidad en el En lugar de controlar la calidad en el

producto final de software, se optimizará producto final de software, se optimizará el proceso del cual se produce el el proceso del cual se produce el software.software.

Actualmente el desarrollo de Actualmente el desarrollo de aplicaciones de software son aplicaciones de software son proyectos de software (un solo proyectos de software (un solo sistema), pero el proceso podría sistema), pero el proceso podría definirse, estabilizarse, reutilizarse y definirse, estabilizarse, reutilizarse y estandarizarse.estandarizarse.

Page 10: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Definición IS (1969)Definición IS (1969)Ingeniería de SoftwareIngeniería de Software– Establecimiento y uso de principios de ingeniería para Establecimiento y uso de principios de ingeniería para

obtener software económico que es confiable y funciona obtener software económico que es confiable y funciona eficientemente (Naur & Randell 69)eficientemente (Naur & Randell 69)

CaracterísticasCaracterísticas– Complejidad y diversidadComplejidad y diversidad– Dificultad en establecer y estabilizar los requerimientosDificultad en establecer y estabilizar los requerimientos– Software es cambiante (maleable)Software es cambiante (maleable)– Abstracción e intangibilidad de los productos de Abstracción e intangibilidad de los productos de

softwaresoftware– Requisito de variar conocimiento del dominio del Requisito de variar conocimiento del dominio del

problemaproblema– Diseño no-determinístico y con soluciones múltiplesDiseño no-determinístico y con soluciones múltiples– Uso de varios lenguajes y polimorfismo en la Uso de varios lenguajes y polimorfismo en la

implementaciónimplementación– Dependencia en las interacciones entre software, Dependencia en las interacciones entre software,

hardware y el usuariohardware y el usuario

Page 11: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Definición IS (1991)Definición IS (1991)Ingeniería de Software es la ciencia y Ingeniería de Software es la ciencia y arte de especificar, diseñar, arte de especificar, diseñar, implementar y evolucionar, en forma implementar y evolucionar, en forma económica, a tiempo y elegante, económica, a tiempo y elegante, programas, documentación, y programas, documentación, y procedimientos operativos para que procedimientos operativos para que las computadores puedan ser útiles las computadores puedan ser útiles (McDermid 91)(McDermid 91)

IS-69: es un método para el desarrollo IS-69: es un método para el desarrollo de softwarede software

IS-91: una ciencia y arte de IS-91: una ciencia y arte de programación.programación.

Page 12: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Definición (1998)Definición (1998)Ingeniería de Software es una Ingeniería de Software es una disciplina que adopta enfoques tales disciplina que adopta enfoques tales comocomo– MetodologíasMetodologías– ProcesosProcesos– HerramientasHerramientas– EstándaresEstándares– Métodos de OrganizaciónMétodos de Organización– Métodos de AdministraciónMétodos de Administración– Sistemas de aseguramiento de calidadSistemas de aseguramiento de calidad

Para desarrollar software a gran Para desarrollar software a gran escala con una alta productividad, escala con una alta productividad, bajo costo, calidad controlada, y bajo costo, calidad controlada, y agendas de desarrollo mensurables.agendas de desarrollo mensurables.

Page 13: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Comparando Definiciones Comparando Definiciones de ISde IS

Def.Def. NaturalezaNaturaleza SignificadoSignificado ObjetivoObjetivo AtributosAtributos

19691969 Un métodoUn método Principios Principios genéricos de ISgenéricos de IS

SoftwareSoftware EconómicoEconómico

ConfiableConfiable

EficienteEficiente

19911991 Ciencia y arteCiencia y arte Ciclo de vida:Ciclo de vida:

EspecificaciónEspecificación

DiseñoDiseño

ImplementaciónImplementación

EvoluciónEvolución

Programas y Programas y documentosdocumentos

EconómicoEconómico

OportunoOportuno

EleganteElegante

19981998 Una disciplina Una disciplina de Ingenieríade Ingeniería

Enfoques:Enfoques:

MetodologíasMetodologías

ProcesosProcesos

HerramientasHerramientas

EstándaresEstándares

OrganizaciónOrganización

AdministraciónAdministración

CalidadCalidad

Software a Software a gran escalagran escala

ProductividadProductividad

CalidadCalidad

CostoCosto

TiempoTiempo

Page 14: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Productos de Software vs. Productos de Software vs. Productos FísicosProductos Físicos

La revolución industrial se oriento La revolución industrial se oriento a la producción en masa a través a la producción en masa a través de maquinaria y procesos de maquinaria y procesos estándares y componentes estándares y componentes (Marshall 38)(Marshall 38)

El desarrollo de sistemas de El desarrollo de sistemas de software es una revolución que software es una revolución que transforma el procesamiento de transforma el procesamiento de información y partes de un información y partes de un producto físico en software.producto físico en software.

Page 15: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Metodologías de Metodologías de ProgramaciónProgramación

PrincipiosPrincipiosAbstracciónAbstracción

Esconder InformaciónEsconder Información

Descomposición Funcional (50s)Descomposición Funcional (50s)

ModularizaciónModularización

ReutilizaciónReutilización

Programación Estructurada (70s)Programación Estructurada (70s)

Abstract Data Types (74)Abstract Data Types (74)

Lenguajes Orientados a Objetos (80s)Lenguajes Orientados a Objetos (80s)

Component Base Programming (COTS Component Base Programming (COTS – Components of the Shelf)– Components of the Shelf)

Page 16: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Modelos de Modelos de Desarrollo de SoftwareDesarrollo de Software

El modelo intenta proveer un El modelo intenta proveer un conjunto de guías para el diseño conjunto de guías para el diseño e implementación del sistema.e implementación del sistema.– Modelo de Cascada (Royce 70)Modelo de Cascada (Royce 70)– Prototipos (Curtis y colegas 87)Prototipos (Curtis y colegas 87)– Espiral (Boehm 88)Espiral (Boehm 88)– V (GMOD 92)V (GMOD 92)– Evolucionario (Lehman 85, Gilb 88, Evolucionario (Lehman 85, Gilb 88,

Gustavsson 89)Gustavsson 89)– Incremental (Mills y colegas 80)Incremental (Mills y colegas 80)

Page 17: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Automatización de ISAutomatización de ISAplicación de inteligencia artificial y técnicas Aplicación de inteligencia artificial y técnicas de basadas en el conocimiento.de basadas en el conocimiento.Categorías de Herramientas:Categorías de Herramientas:– CASE (Computer Aided Software Engineering)CASE (Computer Aided Software Engineering)– Unified Modeling LanguageUnified Modeling Language

Facilitan la automatización de las etapas de diseño Facilitan la automatización de las etapas de diseño y generación de código.y generación de código.

Problemas PrincipalesProblemas Principales– Adquisición y especificación de requerimientosAdquisición y especificación de requerimientos– Representación del conocimiento de una Representación del conocimiento de una

aplicaciónaplicación– Pruebas de corrección de una implementaciónPruebas de corrección de una implementación

Page 18: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Clasificación de Clasificación de Herramientas de ISHerramientas de IS

CategoríaCategoría SubcategoríaSubcategoría ComentariosComentarios

Análisis de Análisis de SistemasSistemas

Análisis de requerimientos, adquisición, Análisis de requerimientos, adquisición, especificación, prototipos, modelación, especificación, prototipos, modelación, generación de interfases, etc.generación de interfases, etc.

Desarrollo de Desarrollo de SoftwareSoftware

Análisis y Análisis y Especificación de Especificación de RequerimientosRequerimientos

Análisis de Requerimientos, Representación Análisis de Requerimientos, Representación del conocimiento de un dominio, del conocimiento de un dominio, especificación, etc.especificación, etc.

ProgramaciónProgramación Compiladores, Debuggers, generadores de Compiladores, Debuggers, generadores de código, sistemas de reutilización, ambientes código, sistemas de reutilización, ambientes de programación, etc.de programación, etc.

PruebaPrueba Modular, Integración, sistema, aceptación, Modular, Integración, sistema, aceptación, prototipos, objetos, interfase, etc.prototipos, objetos, interfase, etc.

MantenimientoMantenimiento Reverse Engineering, Re-ingeniería, librería Reverse Engineering, Re-ingeniería, librería de reutilización, análisis estático y dinámico, de reutilización, análisis estático y dinámico, etc.etc.

CASECASE UML, ClearCase, Analystsw Toolkit, UML, ClearCase, Analystsw Toolkit, Automate+, BachmanSet, Excelerator, IEW, Automate+, BachmanSet, Excelerator, IEW, LBMS, Maestro, Oracle CASE, Select, LBMS, Maestro, Oracle CASE, Select, System Architect, Top CASE, Unis SCCS, System Architect, Top CASE, Unis SCCS, Yourdon ADT, Rational, etc.Yourdon ADT, Rational, etc.

Page 19: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Enfoques de ISEnfoques de ISEnfoqueEnfoque DescripciónDescripción TécnicaTécnica OrganizaciónOrganización AdministraciónAdministración

ProgramaciónProgramación D. FuncionalD. Funcional

P. P. EstructuradaEstructurada

OOPOOP

CBPCBP

HH LL LL

Modelos deModelos de

Desarrollo Desarrollo

CascadaCascada

EspiralEspiral

PrototiposPrototipos

HH MM LL

Automatizar Automatizar ISIS

CASECASE

UMLUMLHH LL LL

Métodos Métodos FormalesFormales

CSPCSP

SDLSDL

ZZ

Clean RoomClean Room

HH LL LL

Procesos de Procesos de ISIS

CMMCMM

TrilliumTrillium

BOOTSTRAPBOOTSTRAP

ISO/IEC 15504ISO/IEC 15504

HH HH HH

Page 20: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

ComentariosComentariosLas áreas de organización y Las áreas de organización y administración no han recibido mucha administración no han recibido mucha atención en cada uno de los atención en cada uno de los enfoques.enfoques.Los procesos de IS consideran Los procesos de IS consideran infraestructurasinfraestructuras– SistemáticasSistemáticas– OrganizacionalesOrganizacionales– AdministrativasAdministrativas

El software es cada vez más El software es cada vez más complejo, de gran tamaño, y de mejor complejo, de gran tamaño, y de mejor calidadcalidad

Page 21: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

El Proceso de ISEl Proceso de ISUn proceso se describe como un Un proceso se describe como un conjunto de actividades que conjunto de actividades que transforman una entrada para crear transforman una entrada para crear una salida.una salida.El proceso de IS transforma El proceso de IS transforma requerimientos parea crear un requerimientos parea crear un producto de software.producto de software.Proceso de SoftwareProceso de Software– Método de Administración de Software Método de Administración de Software

( Gilb 88, Humphrey 89)( Gilb 88, Humphrey 89)– Enfoque de aseguramiento de calidad Enfoque de aseguramiento de calidad

(Evans & Marciniak 87, ISO 91)(Evans & Marciniak 87, ISO 91)– Técnicas de desarrollo de software Técnicas de desarrollo de software

(Curtis 87, Fayad 97)(Curtis 87, Fayad 97)

Page 22: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

El Proceso de ISEl Proceso de ISNueva disciplina de Proceso de Nueva disciplina de Proceso de Ingeniería de SoftwareIngeniería de Software– Desarrollo de CMMDesarrollo de CMM– ISO 9000ISO 9000

Proceso de ISProceso de IS– FundamentosFundamentos– ModeloModelo– EstablecimientoEstablecimiento– EvaluaciónEvaluación– MejoramientoMejoramiento– EstandarizaciónEstandarización

… … de procesos de de procesos de softwaresoftware

Page 23: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Definición de Proceso de ISDefinición de Proceso de IS

Conjunto de prácticas Conjunto de prácticas secuenciales que son secuenciales que son funcionalmente coherentes y funcionalmente coherentes y reutilizables en la organización, reutilizables en la organización, implementación y administración implementación y administración de la ingeniería de software.de la ingeniería de software.

Page 24: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

HistoriaHistoriaProceso de ISProceso de IS

Ingeniería de Software & Ciencia Ingeniería de Software & Ciencia de la Administraciónde la Administración– 60s:Ingeniería de Procesos y 60s:Ingeniería de Procesos y

principios de administración en principios de administración en Ciencia de la Administración Ciencia de la Administración (Simon 60, Schein 61, Ellis & FRed (Simon 60, Schein 61, Ellis & FRed 62, Juran 62, Anthony 65, 62, Juran 62, Anthony 65, Richardson 66, Hall 67)Richardson 66, Hall 67)

– 70s & 80s: Establecimiento de 70s & 80s: Establecimiento de Ciencia de la Administración de Ciencia de la Administración de acuerdo a la tabla de de acuerdo a la tabla de de Fundamentos Fundamentos AdministrativosAdministrativos..

Page 25: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

HistoriaHistoriaProceso de ISProceso de IS

Conformidad de la calidad a los Conformidad de la calidad a los requisitos y a las especificaciones requisitos y a las especificaciones (Crosby 79, Juran 80, Deming 82)(Crosby 79, Juran 80, Deming 82)– Círculo de Deming (Plan-Do-Check-Act Círculo de Deming (Plan-Do-Check-Act

PDCA) propuesto en Ciencia de la PDCA) propuesto en Ciencia de la Administración: Modelación y Análisis de Administración: Modelación y Análisis de Procesos de Software.Procesos de Software.

Proyecto ISO TC176 para desarrollar Proyecto ISO TC176 para desarrollar un estándar internacional de sistemas un estándar internacional de sistemas de calidad (ISO 9000 91,93,94) de calidad (ISO 9000 91,93,94) aplicable ingeniería e implementado aplicable ingeniería e implementado en IS (IS0 9001 89,94)en IS (IS0 9001 89,94)

Page 26: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

HistoriaHistoriaProceso de ISProceso de IS

70s: Crisis de Software (Naur & Randell 69, 70s: Crisis de Software (Naur & Randell 69, Baker 72, Brooks 75, Hoare 75)Baker 72, Brooks 75, Hoare 75)80s: Proceso de Software se reconoce como 80s: Proceso de Software se reconoce como un arma de la Ingeniería de Software (Basili un arma de la Ingeniería de Software (Basili 80, Aron 83, Agresti 86, Evans 87, Boehm 80, Aron 83, Agresti 86, Evans 87, Boehm 81,86,87, Gilb 88, Humphrey 87, 88, 89)81,86,87, Gilb 88, Humphrey 87, 88, 89)Desarrollo del Modelo CMM (Humphrey 87, Desarrollo del Modelo CMM (Humphrey 87, Paulk 93)Paulk 93)80s: Otros Modelos:80s: Otros Modelos:– IEEE Software Engineering Standard (IEEE 83)IEEE Software Engineering Standard (IEEE 83)– British Standard BS 5750 (BSI 87) British Standard BS 5750 (BSI 87)

Page 27: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Métodos y Procesos Métodos y Procesos de IS Actualesde IS Actuales

TickITTickIT

ISO 9001 (1)ISO 9001 (1)

CMM (2)CMM (2)

BOOTSTRAPBOOTSTRAP

ISO/IEC 12207ISO/IEC 12207

ISO/IEC TR 15504 (SPICE) (3)ISO/IEC TR 15504 (SPICE) (3)

BSIBSI

TrilliumTrillium

Page 28: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Taxonomía y Dominios en Taxonomía y Dominios en los Modelos Actualeslos Modelos Actuales

NivelNivel CMMCMM BootstrapBootstrap SPICESPICE ISO 9001ISO 9001 SEPRMSEPRM

SistemaSistema CMMCMM BootstrapBootstrap SPICESPICE ISO 9001ISO 9001 SEPRMSEPRM

Sub-Sub-sistemasistema

-- Areas de Areas de Proceso [3]Proceso [3]

-- Sub-sistemas Sub-sistemas [3][3]

Sub-Sub-sistemas [3]sistemas [3]

CategoríCategoríaa

Niveles Niveles [5][5]

Categorías Categorías [9][9]

CategoríasCategorías

(PCs)(PCs)

[5][5]

-- Categorías Categorías {12]{12]

ProcesoProceso Areas Areas Prácticas Prácticas (KPAs) (KPAs)

[18][18]

Procesos Procesos [32][32]

Procesos Procesos (PRs) [35](PRs) [35]

Tópicos Tópicos Principales Principales de Areas de Areas

(MTAs) [20](MTAs) [20]

Procesos Procesos [51][51]

PrácticaPráctica Prácticas Prácticas (KPs) (KPs) [150][150]

Atributos de Atributos de Calidad Calidad (QSAs) (QSAs) [201][201]

Prácticas Prácticas Base Base (BPs) (BPs) [201][201]

Aspectos de Aspectos de Admon. (MIs)Admon. (MIs)

[177][177]

Actividades Actividades de Procesos de Procesos (BPAs) [444](BPAs) [444]

Page 29: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Modelo de Modelo de Calidad ISO 9126Calidad ISO 9126

CaracterísticaCaracterística AtributoAtributoFuncionalidadFuncionalidad Conveniente, exactitud, Conveniente, exactitud,

interoperabilidad, seguridad interoperabilidad, seguridad

ConfiabilidadConfiabilidad Maduro, tolerancia a fallas, Maduro, tolerancia a fallas, recuperabilidad recuperabilidad

UtilidadUtilidad Fácil de entender, aprender, Fácil de entender, aprender, operaroperar

EficienciaEficiencia Comportamiento en el tiempo, Comportamiento en el tiempo, Comportamiento de los Comportamiento de los recursosrecursos

Fácil de MantenerFácil de Mantener Fácil de analizar, modificar, Fácil de analizar, modificar, probar; estabilidadprobar; estabilidad

PortabilidadPortabilidad Fácil de adaptarse, instalarse, Fácil de adaptarse, instalarse, adecuarse, reemplazarse.adecuarse, reemplazarse.

Page 30: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Modelo Genérico del Modelo Genérico del Desarrollo de SoftwareDesarrollo de Software

Clientes

Procesos de Desarrollo

Procesos deAdministración

Desarrolladores

Administradores

Proceso de Organización

Page 31: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Implementación del Implementación del Modelo GenéricoModelo Genérico

Proceso deOrganización

Modelo deReferencia

ProcesoDerivado

del Modelo

deReferencia

Proceso deAdministración

Proceso deDesarrollo

Proyecto 1

ProcesoDerivado

del Modelo

deReferencia

Proceso deAdministración

Proceso deDesarrollo

Proyecto n…

organización

proceso

Page 32: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

IngSoft@CIMATIngSoft@CIMATProyecto 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)

Page 33: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

LiteraturaLiteraturaYingxu Wang, Software Engineering Processes: Principles and Applications, Yingxu Wang, Software Engineering Processes: Principles and Applications, Boca Raton, CRC Press 2000.Boca Raton, CRC Press 2000.Paulk, M. C., y colegas, “CMM Versus SPICE Architectures”, Software Paulk, M. C., y colegas, “CMM Versus SPICE Architectures”, Software Process Newsletters, Spring 1994, pp. 7-11.Process Newsletters, Spring 1994, pp. 7-11.Paulk, M. C., “How ISO 9001 Compares with the CMM”, IEEE Software, Paulk, M. C., “How ISO 9001 Compares with the CMM”, IEEE Software, January 1995, pp. 74-83.January 1995, pp. 74-83.Jarvinen, J., “On Comparing Process Assessment Results: BOOTSTRAP Jarvinen, J., “On Comparing Process Assessment Results: BOOTSTRAP and CMM”, Software Quality Management, pp. 247-262, 1994.and CMM”, Software Quality Management, pp. 247-262, 1994.Kugler, H. J., y colegas, “From the Software Process to Software Quality: Kugler, H. J., y colegas, “From the Software Process to Software Quality: BOOTSTRAP and ISO 9000”, Proceedings of the First Asia-Pacific Software BOOTSTRAP and ISO 9000”, Proceedings of the First Asia-Pacific Software Engineering Conference, Tokyo, Japan, IEEE Computer Society Press, pp. Engineering Conference, Tokyo, Japan, IEEE Computer Society Press, pp. 174-182.1994.174-182.1994.Kitson , D. H., “” Relating the SPICE Framework and SEI Approach to Kitson , D. H., “” Relating the SPICE Framework and SEI Approach to Software Process Assessment” Proceedings of International Conference on Software Process Assessment” Proceedings of International Conference on Software Quality Management (SQM’96), MEP Press, London 1996, pp. 37-Software Quality Management (SQM’96), MEP Press, London 1996, pp. 37-49.49.Hoare, C. A. R., Communicating Sequential Processes, Prentice-Hall Hoare, C. A. R., Communicating Sequential Processes, Prentice-Hall International, Englewood Cliffs, NJ., 1985.International, Englewood Cliffs, NJ., 1985.Milner, R., Communicating and Concurrency, Prentice-Hall, Englewood Milner, R., Communicating and Concurrency, Prentice-Hall, Englewood Cliffs, NJ., 1989.Cliffs, NJ., 1989.Humphrey, W. S., A Discipline for Software Engineering, SEI Series in Humphrey, W. S., A Discipline for Software Engineering, SEI Series in Software Engineering, Addison-Wesley, Reading, MA., 1995.Software Engineering, Addison-Wesley, Reading, MA., 1995.Pressman, R. S., Software Engineering: A Practitioner’s Approach (3Pressman, R. S., Software Engineering: A Practitioner’s Approach (3 rdrd ed.), ed.), MacGraw-Hill International Editions, New York 1992.MacGraw-Hill International Editions, New York 1992.Fondo Mixto de Fomento a la Investigación Científica y Tecnológica Fondo Mixto de Fomento a la Investigación Científica y Tecnológica CONACYT-Gobierno del Estado de Guanajuato Programa para el desarrollo CONACYT-Gobierno del Estado de Guanajuato Programa para el desarrollo de la Industria de Software de la Industria de Software httphttp://://www.conacyt.mxwww.conacyt.mx/fondos//fondos/guanajuatoguanajuato/guanajuato2002-01./guanajuato2002-01.htmlhtml

Page 34: 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 Calidad

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Introducción

PerspectivaIngeniería de Software (IS)

Proceso de IS

IngSoft

Preguntas?Preguntas?

Dr. Cuauhtémoc Lemus Olalde

[email protected]

www.cimat.mx/ingsoft

Febrero, 2003

Dr. Cuauhtémoc Lemus Olalde

[email protected]

www.cimat.mx/ingsoft

Febrero, 2003