Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
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 Universidad Autónoma de Aguascalientes Congreso Estatal de Ciencias de la Computación Universidad Autó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 procesos Producto: Resultado de un proceso – Servicio – Software – Hardware – Materiales procesados Cliente: organización ó persona que recibe un producto Calidad: 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 calidad Característica de Calidad: característica inherente de un producto, proceso ó sistema relacionada con un requisito Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional 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 Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional 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 Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional 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 Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional 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 Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional 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 Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional 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 Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias AS en Desarrollo de SoftwareAS en Desarrollo de Software Requerimientos Proceso AS Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Diseño Codificación e Integración Prueba y Aceptación Mantenimiento Diseño de ArquitecturasDiseño de Arquitecturas de Softwarede Software Ejemplos: Ejemplos: A1A1, , A2A2, , A3A3 Es complejo plasmar las Es complejo plasmar las especificaciones de requerimientos en especificaciones de requerimientos en la arquitecturala arquitectura El 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 Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias arte. http://www.agilis-sw.com/arch.htm http://www.back-end.org/Developers_Guide/SystemArchitecture.html http://www.cedcc.psu.edu/ee497i/rassp_29/sld128.htm Pipe & FilterPipe & Filter Tokens Sintáxis Código Filters Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Pipes CapasCapas Núcleo Utilerías Usuarios Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Tres nivelesTres niveles PRESENTACION JSPsIntroducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias LOGICA NEGOCIO EJBs, Servlets Base de Datos RelacionalDATOS Diseño de ArquitecturasDiseño de Arquitecturas de 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ñode 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 Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional 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 Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional 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 Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional 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 Proceso de AS Completo?Implementación Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Producto Proceso de ArquitecturaProceso de Arquitectura (Reverse Engineering)(Reverse Engineering) Sistema Actual Arquitectura Sistema Arquitectura Dominio Nuevo Diseño Librería de Componentes Reutilizables Extracción Generalización ReutilizaciónIntroducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Proceso de ArquitecturaProceso de Arquitectura (Forward Engineering)(Forward Engineering) Diseño Funcional Especificaciones de Requerimientos Arquitectura de Aplicación Estimar Atributos de Calidad Transformar Arquitectura Soluciones de Optimización QA Arquitectura del Sistema Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias LiteraturaLiteratura Fondo 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 Software Bosch, J. Design and Use of Software Architectures. AddisonBosch, J. Design and Use of Software Architectures. Addison-- Wesley. ACM Press. 2000Wesley. ACM Press. 2000 Sharon 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.edu Encuesta de Herramientas de Proceso de Arquitectura de Software www.incose.org/tools/tooltaxs.html Software Reuse Tools: frakes.cs.vt.edu/reusetools.html Reuse of Software Assets: www.dacs.dtic.mil/databases/url/key.hts?keycode=15 Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias Introducción Desarrollo Tradicional Calidad del Software Arquitecturas SW Referencias http://www.conacyt.mx/fondos/guanajuato/guanajuato2002-01.html http://www.conacyt.mx/fondos/guanajuato/guanajuato2002-01.html http://www.conacyt.mx/fondos/guanajuato/guanajuato2002-01.html http://www.conacyt.mx/fondos/guanajuato/guanajuato2002-01.html http://www.conacyt.mx/fondos/guanajuato/guanajuato2002-01.html http://www.conacyt.mx/fondos/guanajuato/guanajuato2002-01.html http://nas.cl.uh.edu/whites/webpapers.dir/ETCE97pap.pdf http://nas.cl.uh.edu/whites/webpapers.dir/ETCE97pap.pdf http://nas.cl.uh.edu/whites/webpapers.dir/ETCE97pap.pdf http://nas.cl.uh.edu/whites/webpapers.dir/ETCE97pap.pdf http://www.sei.cmu.edu/ http://www.incose.org/tools/tooltaxs.html http://frakes.cs.vt.edu/reusetools.html http://www.dacs.dtic.mil/databases/url/key.hts?keycode=15 http://www.dacs.dtic.mil/databases/url/key.hts?keycode=15 Preguntas?Preguntas? Dr. Cuauhtémoc Lemus Olalde clemola@cimat.mx www.cimat.mx/ingsoft Marzo, 2004 Dr. Cuauhtémoc Lemus Olalde clemola@cimat.mx www.cimat.mx/ingsoft Marzo, 2004 Terminología(ISO 9000:2000) Diseño Tradicional Qué se está haciendo en Calidad del Software? Calidad en el Desarrollo de Software Calidad del Software en Operación Arquitectura de Software
Compartir