Arquitectura de Software, mucho más que un diagrama ...clemola/Ponencias/CECIC-UAAgs.pdf · mucho...
Transcript of Arquitectura de Software, mucho más que un diagrama ...clemola/Ponencias/CECIC-UAAgs.pdf · mucho...
Arquitectura de Software, mucho más que
un diagrama tradicional
Dr. Cuauhtémoc Lemus Olalde
Centro de Investigación en Matemáticas
(CIMAT)
Marzo, 2004
Arquitectura de Software, mucho más que
un diagrama tradicional
Dr. Cuauhtémoc Lemus Olalde
Centro de Investigación en Matemáticas
(CIMAT)
Marzo, 2004
Congreso
Estatal de
Ciencias de la
Computación
UniversidadAutónoma de
Aguascalientes
Congreso
Estatal de
Ciencias de la
Computación
UniversidadAutónoma de
Aguascalientes
TerminologíaTerminología(ISO 9000:2000)(ISO 9000:2000)
Proceso: conjunto de actividades mutuamente conjunto de actividades mutuamente relacionadas o que interactúan, que transforman relacionadas o que interactúan, que transforman entradas en salidasentradas en salidas– Las entradas de un proceso son generalmente
salidas de otros procesosProducto: Resultado de un proceso
– Servicio– Software– Hardware– Materiales procesados
Cliente: organización ó persona que recibe un productoCalidad: Grado en el que un conjunto de características inherentes cumple con los requisitos
– Inherente es que existe como una característica permanente
– Pobre, buena, excelente calidadCaracterística de Calidad: característica inherente de un producto, proceso ó sistema relacionada con un requisito
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Desarrollo TradicionalDesarrollo Tradicional
RequerimientosRequerimientos
DiseñoDiseño
Codificación e IntegraciónCodificación e Integración
Prueba y AceptaciónPrueba y Aceptación
MantenimientoMantenimiento
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Diseño TradicionalDiseño Tradicional
Requerimientos funcionalesRequerimientos funcionales–– Diagramas de contextoDiagramas de contexto
((http://www.inei.gob.pe/biblioineipub/bancopub/Inf/Lib5008/caphttp://www.inei.gob.pe/biblioineipub/bancopub/Inf/Lib5008/cap--33--
1.htm1.htm))–– Diagrama de flujo de datosDiagrama de flujo de datos
((http://milugar.homeip.net:8080/archivos/actweb/Documentacion/Acthttp://milugar.homeip.net:8080/archivos/actweb/Documentacion/ActWeb_DocuWeb_Docu
mentacion_Impresa/outmentacion_Impresa/out--htmls/dfd.htmlhtmls/dfd.html))–– Diagrama estructurado Diagrama estructurado
((http://acha.museo.uta.cl/cc402/Aseguramiento_de_la_calidad/aseguhttp://acha.museo.uta.cl/cc402/Aseguramiento_de_la_calidad/aseguramiento_dramiento_d
e_la_calidad.htme_la_calidad.htm))Requerimientos de calidad (noRequerimientos de calidad (no--funcionales, extrafuncionales, extra--funcionales)?funcionales)?
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Desarrollo TradicionalDesarrollo Tradicional
Actualmente...– Un sistema a la vez
– Cumplir con fecha de entrega (a diferencia de time-to-market)
– Evolución de sistema no es considerado
Lo deseable...– Reducir costo– Mejorar calidad producto– Tiempo de entrega (time-to-market)– Reducir costos de Mantenimiento
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Qué se está haciendo en Qué se está 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 software Mejoramiento de procesos de software a través de técnicas y métodos a través de técnicas y métodos estadísticosestadísticos–– PSP (Personal Software Process)PSP (Personal Software Process)–– TSP (Team Software Process)TSP (Team Software Process)–– Seis Sigma Software (Disciplina Seis Sigma Software (Disciplina
emergente)emergente)Desarrollo de Software con base en Desarrollo de Software con base en Arquitectura de SoftwareArquitectura de Software
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Calidad en el Desarrollo Calidad en el Desarrollo de Softwarede Software
Cualidades del sistema que Cualidades del sistema que son relevantes desde el punto son relevantes desde el punto de vista de Ingeniería de de vista de Ingeniería de SoftwareSoftware–– Fácil de incorporar nuevos Fácil de incorporar nuevos
requerimientosrequerimientos–– ReutilizableReutilizable–– FlexibleFlexible–– Facilitar pruebas de confiabilidadFacilitar pruebas de confiabilidad
Difíciles de localizar en la Difíciles de localizar en la aplicaciónaplicación
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Calidad del Software en Calidad del Software en OperaciónOperación
Cualidades del sistema en Cualidades del sistema en operaciónoperación–– DesempeñoDesempeño–– ConfiableConfiable–– RobustoRobusto–– Tolerante a fallasTolerante a fallas
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
AS en Desarrollo de SoftwareAS en Desarrollo de Software
RequerimientosProceso
ASIntroducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Diseño
Codificación e Integración
Prueba y Aceptación
Mantenimiento
Diseño de ArquitecturasDiseño de Arquitecturasde Softwarede Software
Ejemplos: Ejemplos: A1A1, , A2A2, , A3A3Es complejo plasmar las Es complejo plasmar las especificaciones de requerimientos en especificaciones de requerimientos en la arquitecturala arquitecturaEl proceso de arquitectura de software El proceso de arquitectura de software no se encuentra debidamente no se encuentra debidamente formalizado y no hay una metodología formalizado y no hay una metodología madura disponible.madura disponible.El diseño de una arquitectura de El diseño de una arquitectura de software todavía es considerado un software todavía es considerado un arte.
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
arte.
Pipe & FilterPipe & Filter
Tokens Sintáxis Código
FiltersIntroducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Pipes
CapasCapas
Núcleo
Utilerías
Usuarios
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Tres nivelesTres niveles
PRESENTACION JSPsIntroducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
ReferenciasLOGICA
NEGOCIO EJBs, Servlets
Base de DatosRelacionalDATOS
Diseño de ArquitecturasDiseño de Arquitecturasde Softwarede Software
Es importante especificar, Es importante especificar, analizar y diseñar la arquitectura.analizar y diseñar la arquitectura.Requerimientos de calidad tienen Requerimientos de calidad tienen un gran impacto en la un gran impacto en la arquitectura del sistema.arquitectura del sistema.El diseño de la arquitectura es El diseño de la arquitectura es parte del proceso de desarrollo y parte del proceso de desarrollo y evolución de los productos de evolución de los productos de software.
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
software.
Proceso de ArquitecturaProceso de Arquitectura
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.
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Arquitectura de Arquitectura de SoftwareSoftware
Se enfoca en el análisis y la Se enfoca en el análisis y la descomposición de alto nivel de descomposición de alto nivel de un sistema en sus principales un sistema en sus principales componentes, así como el componentes, así como el proceso de diseño utilizado en proceso de diseño utilizado en dicha descomposición.dicha descomposición.–– Diseño de Arquitecturas de Diseño de Arquitecturas de
Software con enfoque en atributos Software con enfoque en atributos de calidad: desempeño, confiable, de calidad: desempeño, confiable, fácil de mantener, flexible a cambios
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
fácil de mantener, flexible a cambios
Proceso de ArquitecturaProceso de Arquitectura
Clientes Mercadotecnia Ingeniería
Requerimientos
Selección
Procesode AS
Completo?Implementación
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Producto
Proceso de ArquitecturaProceso de Arquitectura(Reverse Engineering)(Reverse Engineering)
SistemaActual
ArquitecturaSistema
ArquitecturaDominio
NuevoDiseño
Librería de ComponentesReutilizables
Extracción
Generalización
ReutilizaciónIntroducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Proceso de ArquitecturaProceso de Arquitectura(Forward Engineering)(Forward Engineering)
DiseñoFuncional
Especificaciones de Requerimientos
Arquitecturade Aplicación
Estimar Atributosde Calidad
TransformarArquitectura
Soluciones deOptimización
QAArquitectura del Sistema
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
LiteraturaLiteraturaFondo Mixto de Fomento a la Investigación Científica y TecnológiFondo Mixto de Fomento a la Investigación Científica y Tecnológica ca CONACYTCONACYT--Gobierno del Estado de Guanajuato Programa para el Gobierno del Estado de Guanajuato Programa para el desarrollo de la Industria de Softwaredesarrollo de la Industria de SoftwareBosch, J. Design and Use of Software Architectures. AddisonBosch, J. Design and Use of Software Architectures. Addison--Wesley. ACM Press. 2000Wesley. ACM Press. 2000Sharon A. White, CuauhtémocSharon A. White, Cuauhtémoc Lemus OlaldeLemus Olalde, ", "The Software The Software Architecture ProcessArchitecture Process", Proceedings of ASME", Proceedings of ASME--ETCE 97, The Energy ETCE 97, The Energy Engineering Symposium of Energy Week' 97, pp. 170Engineering Symposium of Energy Week' 97, pp. 170--175, Houston 175, Houston TX., Jan. 29 TX., Jan. 29 –– Feb 2, 1997.Feb 2, 1997.Software Engineering Institute (SEI-CMU) [COTS, Architecture, Reuse, Process, Product Lines]: www.sei.cmu.eduEncuesta de Herramientas de Proceso de Arquitectura de Software www.incose.org/tools/tooltaxs.htmlSoftware Reuse Tools: frakes.cs.vt.edu/reusetools.htmlReuse of Software Assets: www.dacs.dtic.mil/databases/url/key.hts?keycode=15
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Introducción
DesarrolloTradicional
Calidad del Software
Arquitecturas SW
Referencias
Preguntas?Preguntas?
Dr. Cuauhtémoc Lemus Olalde
www.cimat.mx/ingsoft
Marzo, 2004
Dr. Cuauhtémoc Lemus Olalde
www.cimat.mx/ingsoft
Marzo, 2004