clase7 unidad1

of 35 /35
octubre de 2007 Arquitectura de Software

Author: zurda21

Post on 04-Aug-2015

238 views

Category:

Documents


0 download

Embed Size (px)

TRANSCRIPT

1. Arquitectura de Softwareoctubre de 2007 2. Seis mejores Prcticas Desarrollo Iterativo Administrar Requerimientos Usar Arquitecturas basadas enComponentes Modelado Visual (UML) Verificar Continuamente la Calidad Administrar el Cambio 3. Centrado en la Arquitectura Proyeccin de la organizacin y estructura de un sistema enfocndose en aspectos particularesQu es la Arquitectura de un Sistema? La descripcin del Sistema a travs de vistasutilizando diagramas y modelosCon qu notacin? 4. Centrado en la ArquitecturaPor qu es importante? Permite una comunicacin efectiva entre laspersonas involucradas (diseador, desarrollador). Promueve el reuso del software. Permite la prueba individual e integracingradual de los componentes. Permite crear sistemas flexibles y tolerantesa cambios. 5. Arquitectura : Vistas Proceso Unificado 1999 Vista de Modelo de Casos de Uso Vista de Modelo de Anlisis Vista de Modelo de Diseo Vista de Modelo de Despliegue Vista de Modelo de Implementacin 6. Arquitectura : Vistas(RUP)Krutchen 2000 Vista de los Casos de Uso Vista Lgica Vista de Procesos Vista de Implementacin Vista de Entrega. 7. Arquitectura de Software: Modelo de las 4+1 VistasVista LgicaVista deImplementacin ProgramadoresAnalistas/DiseadoresUsuario FinalAdministradoresEstructura Funcionalidadde SoftwareVista de Casos de UsoVista de ProcesosVista de DespliegueIntegradores del Sistema Ingeniera del SistemaRendimiento Topologa del SistemaEscalabilidad Entrega, InstalacinThroughput 8. Arquitectura: VistasPara modelar un sistema desde diferentesvistas se debe responder: Qu vistas se requiere?Para cada vista:Qu artefactos producir? 9. Arquitectura: Vistas Vista de los Casos de Uso: Esta vista contiene los escenarios o casos de uso claves, para cada uno de los cuales se describen las secuencias de interaccin entre objetos y procesos. Diagramas de Casos de UsoSe complementa con vistas del rea DinmicaDiagramas de Actividad,Diagramas de Interaccin,Diagramas de Estado. 10. Review: Analysis and Design is Use-Case Driven Los Casos de Uso definidos para un sistema son la base para el proceso entero de desarrollo. Beneficio de los Casos de Uso: Concisos, simples y comprensibles para la gran variedad de involucrados. Ayudan a sincronizar el contenido de los diferentes modelos. Verificar Balance Cliente Depositar 11. Concepto: Realizacin de Casos de Uso Modelo de Casos de UsoModelo de DiseoCaso de Uso Realizacin de Caso de Uso Diagramas deDiagramas deSecuenciaColaboracinCaso de UsoDiagramas de Clase 12. Arquitectura: Vistas Vista Lgica o de Diseo: Es una abstraccin del modelo de diseo e identificacin a gran escala del diseo de paquetes, subsistemas y clasesDiagramas de Clases y Objetos Diagramas ER Se complementa con vistas del rea DinmicaDiagramas de Actividad,Diagramas de Interaccin,Diagramas de Estado. 13. Arquitectura: Vista LgicaDiagramade Clases 14. Arquitectura: Vista Lgica 15. Arquitectura: Vistas Vista de Procesos: Toma en cuenta algunos requerimientosno-funcionales: Rendimiento,disponibilidad, integridad del sistema,tolerancia a fallas. Captura aspectos de Sincronizacin yConcurrencia del diseo. Control de los procesos concurrentes. 16. Arquitectura: Vista de Procesos 17. Arquitectura: Vistas Vista de Implementacin o Desarrollo: La vista de Implementacin se enfoca en la organizacin de los mdulos del software actual en el ambiente de desarrollo de software. Diagramas de Componentes Se complementa con vistas del rea Dinmica Diagramas de Actividad, Diagramas de Interaccin, Diagramas de Estado. 18. Arquitectura: Vistas de Implementacin Diagrama de componentes 19. Arquitectura: Vistas Vista Fsica o de Despliegue: Describe mapping del SW al HW y reflejasu aspecto distribuido. Diagramas de Despliegue Se complementa con vistas del rea Dinmica Diagramas de Actividad, Diagramas de Interaccin, Diagramas de Estado. 20. Arquitectura: Vista deDespliegue Diagrama de Despliegue 21. Arquitectura de Software Es la organizacin o estructura de loscomponentes significativos dentro delsistema, lo cuales interactan, a travs deaninterfaces. Los componentes pueden serusados para formar componentes msgrandes Cules son las partes principales? Cmo colaboran? Se tiene un marco en el cual el resto de loscomponentes puede ser agregado?. 22. Arquitectura de Software La Arquitectura del Software es laorganizacin fundamental de un sistemaformada por sus componentes, lasrelaciones entre ellos y el contexto en elque se implantarn, y los principios queorientan su diseo y evolucin. IEEEStd 1471-2000 23. Arquitectura de SoftwareCmo disearla?A partir de los escenarios significativos del proyectoConsiderando la plataforma sobre la cual se construirel sistema:sistema operativo, Una secuenciamanejador de bases de datos,especfica desistemas existentes,acciones queetcUna solucin ailustra losun problemacomportamientosUtilizando la experienciacomn en unarquitecturas previascontexto dadopatrones de diseo. 24. Arquitectura de Software Cmo especificarla? En dos etapas: Nivel General: se especifican los aspectos generales del sistema a construir (middleware, sistemas existentes, etc.) Nivel Especfico: a travs de diferentes vistas de los modelos: casos de uso clases y componentes subsistemas colaboraciones interfaces nodos 25. Arquitectura de Software deconjunto subsistemasque compartenel mismo gradoNivel general (arquitectura por niveles)de generalidad El sistema es descrito en trminos de varios niveles,niveles donde los subsistemas pertenecientes a un nivel dado, slo pueden referenciar a los componentes del nivel inmediatamente inferior Los subsistemas de los niveles superiores son construidos a partir de los subsistemas de los niveles inferiores. 26. Evolucin de Arquitecturas Aplicaciones Arquitectura Cliente-MonolticasServidor Interfaces grficas de usuario Clientes pesados, no estndar(GUI). Conexiones dedicadas a BD Servicios de presentacin, Protocolos pesadosnegocios y persistencia en la Ejecucin remota de SQLsmisma mquina. No hay concurrencia de usuarios. Alta administracin Alto acoplamiento entre tiers. Bajo rendimiento Alto trfico de red Baja accesibilidad 27. Evolucin de Arquitecturas Arquitectura C/S Arquitectura de 3 nivelesMejorada Reutilizacin de lgica de negocio Lgica de negocios en BD para diferentes clientes o sistemas. Clientes pesados, no estndar. Mejora la escalabilidad. Conexiones dedicadas a la BD. Mejora la flexibilidad. Mejora en rendimiento Independencia de la base de datos. Alta administracin Baja escalabilidad Baja flexibilidad Baja portabilidad 28. Arquitecto de Software Arquitecto es un rol en un proyecto dedesarrollo de software el cual esresponsable de: Liderar el proceso de arquitectura. Producir los artefactos necesarios:Documento de descripcin de arquitectura Modelos y prototipos de arquitectura. 29. La Arquitectura de Software abarca lasdecisiones ms significativas acerca de laorganizacin de un sistema de software La seleccin de los elementos estructuralesque componen un sistema y sus interfaces El comportamiento expresado en trminos decolaboracin entre estos elementos La composicin de estos elementos ensubsistemas El estilo arquitectnico que gua suorganizacin, sus elementos e interfaces y sucomposicinGrady Booch, Philippe Kruchten, Rich Reitman, Kurt Bittner; Rational Software(derived from Mary Shaw) 30. Arquitectura Vs. Diseo La arquitectura y el diseo difieren en tres reas:Arquitectura Diseo Nivel deAlto nivelBajo nivel. Enfoque Abstraccin especfico en detalles Entregables Planear subsistemas, interfaces Diseo detallado con sistemas externos,componentes. servicios horizontales, frameworks, componentes Especificaciones de reutilizables, prototipocodificacin arquitectnico reas deSeleccin de tecnologas, Requerimientos Enfoque Requerimientos no funcionales funcionales (QoS), Manejo de riesgos 31. Arquitectura Vs. Diseo La arquitectura envuelve un conjunto de decisionesestratgicas de diseo, lineamientos, reglas ypatrones que restringen el diseo y laimplementacin de un software. Las decisiones de arquitecturaCdigo causan un altoImplementacin impacto en los proyectos de ITDiseo Arquitectura 32. Definicin de Arquitectura enRUPFase de Inicio Con respecto a laarquitectura, en la fase deinicio de los proyectos seestablece: Requerimientos no-funcionales Lista de riesgos yrestricciones Arquitectura inicial 33. Definicin de Arquitectura enRUPFase de Elaboracin Con respecto a la arquitectura,en la fase de elaboracin seestablece: Arquitectura lnea base. Entregables: Documento de Definicin deArquitectura. Prototipo evolutivo de arquitectura. Guas y Estndares de Diseo. 34. RUP en 10 PasosRushton Prince. Implementing RUP in 10steps . (2005):Definir un Caso de Desarrollo para el proyecto.Identificar los casos de uso o funcionalidades parael proyecto.Clasificar los casos de uso segn los niveles deriesgo. Clasificar los artefactos por disciplinas. Iterar a travs de las disciplinas de RUP para crear los artefactos necesarios para recopilar la informacin necesaria para el desarrollo del proyecto. 35. RUP en 10 PasosRushton Prince. Implementing RUP in 10steps . (2005): Iterar a travs de las disciplinas de RUP para detallar cada uno de estos artefactos.Cumplir el objetivo de la Fase de Inicio: Alcance delproyecto.Cumplir el objetivo de la Fase de Elaboracin: LneaBase de la Arquitectura. Cumplir el objetivo de la Fase de Construccin: Primer release del Producto. Cumplir el objetivo de la Fase de Transicin: Integrar el producto a la realidad del negocio.