Calidad y Reutilización de Software - CIMAT
Transcript of Calidad y Reutilización de Software - CIMAT
Calidad y Reutilización de Software
Dr. Cuauhtémoc Lemus Olalde
Centro de Investigación en Matemáticas
(CIMAT)
Febrero, 2003
IV Ciclo de
Conferencias
Sistemasde
Caraal
Futuro
CalidadCalidad
Conjunto 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 Lo que hace que una persona o cosa sea lo
que esque 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
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
ReutilizaciónReutilización
Acción de volver a emplear Acción de volver a emplear útilmente (una persona o útilmente (una persona o cosa).cosa).
Uso repetido de un recurso.Uso repetido de un recurso.–– Reutilización de Software: Uso Reutilización de Software: Uso
repetido de productos, repetido de productos, procesos, conocimiento, etc.procesos, conocimiento, etc.
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
HistoriaHistoria
60’s: Reutilización de software 60’s: Reutilización de software existente a través de components existente a través de components (McIlroy, 1969)(McIlroy, 1969)
70’s: Programación en base a 70’s: Programación en base a módulos (tal cual)módulos (tal cual)–– Readaptación de módulos se tenía Readaptación de módulos se tenía
que editar códigoque editar código
–– Importar componente y cambiar Importar componente y cambiar aspectos no compatibles con el aspectos no compatibles con el sistemasistema
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
HistoriaHistoria
80’s: Lenguajes OO 80’s: Lenguajes OO –– Aumento en la reutilización a través Aumento en la reutilización a través
de adaptación de código por de adaptación de código por herenciaherencia
90’s: 90’s: –– Arquitecturas de SoftwareArquitecturas de Software
–– Líneas de ProductosLíneas de Productos
–– Componentes ReutilizablesComponentes Reutilizables
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
Que se esta haciendo en Que se esta haciendo en Calidad del Software?Calidad del Software?
Adopción de modelos y Adopción de modelos y estándaresestá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 PSP (Personal Software ProcessProcess))–– TSP (Team Software TSP (Team Software ProcessProcess))–– Seis Sigma Software Seis Sigma Software
Desarrollo de Software con base Desarrollo de Software con base en Arquitectura de Softwareen Arquitectura de Software
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
Desarrollo TradicionalDesarrollo Tradicional
Requerimientos
Diseño
Codificación e Integración
Prueba y Aceptación
Mantenimiento
CaracterizaciónCaracterización
Desarrollo de Software– Un sistema a la vez
– Cumplir con fecha de entrega (time-to-market)
– Evolución de sistema no es considerado
Objetivos (McIlroy 69)– Reducir costo
– Mejorar calidad producto
– Tiempo de entrega (time-to-market)
– Reducir costos de Mantenimiento
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
AS en Desarrollo de SoftwareAS en Desarrollo de Software
Requerimientos
Diseño
Codificación e Integración
Prueba y Aceptación
ProcesoAS
Mantenimiento
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
Definición (Definición (Bass 98)
La arquitectura de software de un programa ó de un sistema computacional es la estructura del sistema, queabarca componentes de software, las característicasexternamente visibles de esos componentes, y lasrelaciones entre ellas.
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
Conocidos…Conocidos…
Pipe and Filter
Organización por Capas
Arquitectura de 3 niveles
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
PipePipe andand FilterFilter
Tokens Sintáxis Código
Pipes
Filters
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
Análisis: Análisis: PipePipe andand FilterFilter
Ejecución concurrente
Facilidad de Mantenimiento
Soporte de Reutilización
No soporta aplicaciones interactivas ( Base de Datos)
El Filtro más lento dicta la operación global del sistema
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
CapasCapas
Núcleo
Utilerías
Usuarios
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
Análisis: Capas Análisis: Capas
Portabilidad
Reduce complejidad del Sistema
Fácil de Mantener
No todos los sistemas se pueden representar por medio de capas
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
DATOS
LOGICANEGOCIO
PRESENTACION
Arquitectura de 3 NivelesArquitectura de 3 NivelesIntroducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
Base de DatosRelacional
EJBs, Servlets
JSPs
Análisis: 3 NivelesAnálisis: 3 Niveles
Cada nivel puede correr en una maquina diferente ó en ambiente multiprocesamiento, mejorando desempeño.
Eficiente distribución de la aplicación.
Promueve crecimiento.
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
AS en Desarrollo de SoftwareAS en Desarrollo de Software
Requerimientos
Diseño
Codificación e Integración
Prueba y Aceptación
ProcesoAS
Mantenimiento
AS en Desarrollo de SoftwareAS en Desarrollo de Software
Requerimientos
Diseño
Codificación e Integración
Prueba y Aceptación
ProcesoAS
Mantenimiento
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
ImportanciaImportancia
Medio de comunicación entre programadores, arquitectos, clientes usuarios, etc.
Decisiones de desempeño, seguridad, mantenimiento, costos, etc.
Promueve reutilización.
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
ImpactoImpacto
Arquitectura del Sistema es la base en la toma de decisiones de diseño.
La arquitectura deberá de satisfacer todos los requerimientos funcionales y no funcionales (calidad), así como anticipar los cambios de requerimientos y crecimientos.
Detección de oportunidades de reutilización para: reducir costos (inversión, mantenimiento), mejorar calidad, mejorar tiempo de entrega (time-to-market).
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
Proceso de ArquitecturaProceso de ArquitecturaIntroducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
Clientes Mercadotecnia Ingeniería
Requerimientos
Selección
Procesode AS
Producto
Completo?Implementación
Proceso de ArquitecturaProceso de Arquitectura(Reverse (Reverse EngineeringEngineering))
SistemaActual
ArquitecturaSistema
ArquitecturaDominio
NuevoDiseño
Librería de ComponentesReutilizables
Extracción
Generalización
Reutilización
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
Proceso de ArquitecturaProceso de Arquitectura((ForwardForward EngineeringEngineering))
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
DiseñoFuncional
Especificaciones de Requerimientos
Arquitecturade Aplicación
Estimar Atributosde Calidad
TransformarArquitectura
Soluciones deOptimización
QAArquitectura del Sistema
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
1. Es un proceso que involucra una metodología, principios, guías.
2. AS tiene como beneficios, reutilización, mejorar calidad, reducir costos, reducir tiempos de entrega (time-to-market).
3. Arquitectura de Software tiene como principal motivación el desarrollo de nuevos sistemas mediante componentes reutilizables.
Proceso de ArquitecturaProceso de Arquitectura
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
El proceso de desarrollo de El proceso de desarrollo de componentescomponentes
Diseño de la Arquitectura
Análisis deVariabilidad
Diseño deComponentes
Implementación deComponentes
Restricciones yReglas
CódigoLegado
Requerimientosde
Componentes
Grupo de Ingeniería de SoftwareGrupo de Ingeniería de Softwarewww.cimat.mxwww.cimat.mx//ingsoftingsoft
Proyecto ProCIS (Promoviendo Calidad en la Industria del Software)
– Cultura de Calidad: Universidades e Industria (PSP, TSP)
– InvestigaciónArquitecturas de Software (Líneas de Productos)Proceso de IS (CMMi, SPICE, PSP, TSP, Seis-Sigma Software)
– Maestría en Ingeniería de Software (MIS)
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
LiteraturaLiteraturaBosch, J. Design and Use of Software Architectures. Addison-Wesley. ACM Press. 2000Bass, L.; Clements, P.; Kazman, R.
Software Archictecture in Practice. Reading, MA: Addison-Wesley, 1998.McIlroy, M. D. Mass Produced Software Components. Software Engineering Report on a Conference Sponsored by the NATO Science Committee.
Introducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
Fondo Mixto de Fomento a la Investigación Fondo Mixto de Fomento a la Investigación Científica y Tecnológica Científica y Tecnológica CONACYTCONACYT--Gobierno del Gobierno del Estado de Guanajuato Estado de Guanajuato Programa para el desarrollo Programa para el desarrollo de la Industria de Software de la Industria de Software httphttp://://www.conacyt.mxwww.conacyt.mx/fondos//fondos/guanajuatoguanajuato/guanajuat/guanajuato2002o2002--01.01.htmlhtml
Software Engineering Institute (SEI-CMU) [COTS, Architecture, Reuse, Process, Product Lines]: www.sei.cmu.edu
Encuesta de Herramientas de Proceso de Arquitectura de Software http://www.incose.org/tools/tooltaxs.html
Software Reuse Tools: http://frakes.cs.vt.edu/reusetools.html
Reuse of Software Assets: http://www.dacs.dtic.mil/databases/url/key.hts?keycode=15
InternetInternetIntroducción
Que es una AS?
Ejemplos de AS
AS enDesarrollo SW
Proceso de AS
Conclusiones
IngSoft
Referencias
Preguntas?Preguntas?
Dr. Cuauhtémoc Lemus Olalde
www.cimat.mx/ingsoft
Febrero, 2003