0 évaluation0% ont trouvé ce document utile (0 vote)
19 vues20 pages
El documento discute los conceptos de arquitectura lógica y diagramas de paquetes UML. Explica que la arquitectura lógica organiza las clases de software en paquetes y capas a gran escala, y que comúnmente se basa en estilos arquitectónicos como capas o cliente-servidor. También describe cómo los diagramas de paquetes UML pueden usarse para ilustrar la arquitectura lógica mediante la representación de capas y paquetes, y la modelación de dependencias entre ellos.
El documento discute los conceptos de arquitectura lógica y diagramas de paquetes UML. Explica que la arquitectura lógica organiza las clases de software en paquetes y capas a gran escala, y que comúnmente se basa en estilos arquitectónicos como capas o cliente-servidor. También describe cómo los diagramas de paquetes UML pueden usarse para ilustrar la arquitectura lógica mediante la representación de capas y paquetes, y la modelación de dependencias entre ellos.
El documento discute los conceptos de arquitectura lógica y diagramas de paquetes UML. Explica que la arquitectura lógica organiza las clases de software en paquetes y capas a gran escala, y que comúnmente se basa en estilos arquitectónicos como capas o cliente-servidor. También describe cómo los diagramas de paquetes UML pueden usarse para ilustrar la arquitectura lógica mediante la representación de capas y paquetes, y la modelación de dependencias entre ellos.
Objetos Dr. Ricardo R. Quintero Meza (De los Requisitos al diseo -la Arquitectura Lgica-)
2 De los Requisitos al Diseo- iterativamente 3 Iterativamente haz lo que debe ser y hazlo bien Los requisitos y el anlisis orientado a objetos se han enfocado en aprender a hacer del sistema lo que debe ser (do the right thing).
El siguiente paso en contraste- se deber enfocar en hacerlo bien (do the thing right).
En las primeras iteraciones debera enfocarse ms en do the right thing (entender el problema), en las ltimas en do the thing right (disearlo bien). 4 Arquitectura Lgica y los diagramas de paquetes UML 5 Introduccin Al pasar del anlisis al diseo se debera empezar primero con el diseo a gran escala. En este nivel, el diseo de un sistema OO tpico debera fundamentarse en varios estilos arquitectnicos. 6 Influencia de artefactos : Register enterItem (itemID, quantity) : ProductCatalog spec = getProductSpec( itemID ) Require- ments Business Modeling Design Sample UP Artifact Relationships Vision Glossary The logical architecture is influenced by the constraints and non-functional requirements captured in the Supp. Spec. Domain Model * * Supplementary Specification Use-Case Model Register ... makeNewSale() enterItem(...) ... ProductCatalog ... getProductSpec(...) ... 1 1 class diagrams (a static view) interaction diagrams (a dynamic view) UI package diagrams of the logical architecture (a static view) Domain Tech Services Design Model 7 Arquitectura lgica La Arquitectura lgica es la organizacin a gran-escala de las clases software en paquetes (o namespaces), subsistemas y capas. La Arquitectura Lgica se recomienda est basada en algn estilo arquitectnico: Capas Repositorio Cliente-Servidor Pipe & Filter, etc.
8 Ejemplo de Arquitectura Lgica Domain UI Swing not the Java Swing libraries, but our GUI classes based on Swing Web Sales Payments Taxes Technical Services Persistence Logging RulesEngine 9 Qu es una capa? Una capa (layer) es un agrupamiento de grano-grueso de clases, paquetes o subsistemas que tienen un conjunto cohesivo de responsabilidades con relacin a un aspecto del sistema. Las capas suelen ser organizadas en capas de alto nivel (capa UI) que llaman a los servicios de capas de bajo nivel (normalmente no a la inversa). 10 Qu es una capa? En una Arquitectura estricta de capas, una capa solamente llama a servicios de la capa directa inferior (suele tenerse en protocolos de red, no en sistemas de informacin). En una Arquitectura relajada de capas, las capas de alto nivel llaman a varias capas de nivel inferior (ms comn en sistemas de informacin). 11 Qu es una capa? Las capas tpicas en un sistema OO incluyen: User Interface. Application Logic and Domain Objects: objetos software que representan objetos del dominio (tal como el objeto Sale) que satisfacen los requisitos de la aplicacin (tal como calcular el total de una venta). Technical Services: objetos de propsito general y subsistemas que proveen servicios de soporte tcnico (tal como la interfaz a una base de datos). Estos servicios suelen ser independientes de la aplicacin y reutilizables a travs de varios sistemas.
12 Capas comunes en un Sistema de Informacin UI (AKA Presentation, View) Application (AKA Workflow, Process, Mediation, App Controller) Domain (AKA Business, Application Logic, Model) Technical Services (AKA Technical Infrastructure, High-level Technical Services) Foundation (AKA Core Services, Base Services, Low-level Technical Services/Infrastructure) width implies range of applicability GUI windows reports speech interface HTML, XML, XSLT, JSP, Javascript, ... handles presentation layer requests workflow session state window/page transitions consolidation/transformation of disparate data for presentation handles application layer requests implementation of domain rules domain services (POS, Inventory) - services may be used by just one application, but there is also the possibility of multi-application services (relatively) high-level technical services and frameworks Persistence, Security low-level technical services, utilities, and frameworks data structures, threads, math, file, DB, and network I/O more app specific d e p e n d e n c y Business Infrastructure (AKA Low-level Business Services) very general low-level business services used in many business domains CurrencyConverter 13 Aplicando UML:Diagramas de Paquetes Los Diagramas de Paquetes suelen utilizarse para ilustrar la Arquitectura Lgica de un sistema (capas, subsistemas, paquetes, etc.). Una capa puede modelarse como un paquete UML. Un paquete UML ofrece una forma de agrupar elementos (puede agrupar lo que sea: clases, paquetes, UC, etc.) Es comn mostrar dependencias o acoplamientos entre paquetes de tal forma que los desarrolladores pueden ver el acoplamiento a gran escala del sistema. Las asociaciones de dependencia UML se utiliza para ello. Un paquete UML representa un namespace. El nombre cualificado del elemento contenido incluye sus paquetes. Ej.- java::util::Date 14 Notaciones alternativas para paquetes anidados Domain::Sales UI::Web UI::Swing Sales Web Swing UI Domain Domain UI Swing Sales Web 15 Cdigo: mapeando la organizacin del cdigo a capas y paquetes UML Muchos lenguajes OO (Java, C#) ofrecen soporte para paquetes (llamados namespaces en C#). Ej.- Java:
// third party org.apache.log4j org.apache.soap.rpc
// --- FOUNDATION Layer // foundation packages that our team creates com.mycompany.util
17 Definicin: Tiers, capas, particiones Persistence Security Logging Technical Services POS Inventory Tax Domain Vertical Layers Horizontal Partitions 18 Lnea gua: el principio de Separacin Model-View Qu tipo de visibilidad deberan tener otros paquetes a la capa UI? Cmo deberan las clases no-windows comunicarse con las ventanas? 19 Lnea gua: el principio de Separacin Model-View Principio de Separacin Model-View: 1. No conectes o acoples objetos no-UI directamente a objetos UI. 2. No pongas lgica de aplicacin en los mtodos de los objetos UI. Los objetos UI deberan solamente inicializar elementos UI, recibir eventos UI y delegar solicitudes para lgica de aplicacin a objetos no-UI (como los objetos de dominio). 20 Cul es la conexin entre SSD, Operaciones de Sistema y Capas? Los eventos de sistema se corresponden con operaciones de sistema. Los SSDs ilustran las operaciones de sistema, pero ocultan los objetos UI especficos. Sin embargo, normalmente existirn objetos en la capa UI que capturan estas solicitudes de operaciones de sistema. Los objetos UI entonces delegan la solicitud de la capa UI a la capa de dominio para su manejo. 21 Cul es la conexin entre SSD, Operaciones de Sistema y Capas? Domain UI Swing ProcessSale Frame ... ... Register makeNewSale() enterItem() ... : Cashier makeNewSale() enterItem() endSale() makeNewSale() enterItem() endSale() enterItem(id, quantity) :System : Cashier endSale() description, total makeNewSale() the system operations handled by the system in an SSD represent the operation calls on the Application or Domain layer from the UI layer