310 likes | 536 Views
This presentation covers software architecture patterns, layers, and architectural specifications with a focus on presentation structures and data storage patterns for effective system design. Learn about architectural layers, distribution patterns, and more.
E N D
Support Lecture Architectural Patterns
Software Architecture • Architecture is OVERLOADED • System architecture • Application architecture • Architecture for this presentation is • The modules, processes, interconnections, and protocols which constitute the deployed software system. • Different from the behavioral architecture which describes how the business classes execute the business processes.
Architecture Specification • Document which defines in text and diagrams the design, flow and technologies of the design. • Shows how persistence, communication, and behavior are to be implemented in the system.
Architectural Layers - Patterns • Presentation • interactions with the user – HTML, thick client, MVC, web services • Domain (Logic) • Business rules, validations, calculations, verifications • Data Storage • database • Environmental • Session management, messaging
Presentation Architectural Patterns • Presentation interactions with the user • No Client • Thick Client (rich client) • Thin Client
Presentation Architectural Patterns • Model View Controller • Application Controller • Input Controller • Page Controller • Front Controller • View Controller • Template View • Transform View • Two Step View
Model View Controller Separation of Presentation (View/Controller) from Domain (Model) Separation of View and Controller Model – Domain object View – Presentation object Controller – Controller object to handle user request/response
Application Controller A centralized point for handling screen navigation and flow of an application. Application Controller – determines which type of input is needed or which screen. Input Controller Application Controller Domain Layer View
Application Controller • A single point of control to change program flow and navigation • May be in mediating layer between the presentation and the domain • May be reusable across various presentations • Testable outside the UI framework.
Front vs Page Controller • Front Controller • Single point for adding behavior • Can add behavior dynamically (filter pattern) • Use with more complex applications • Page Controller • Simple - Input controller per page • Don’t put controller logic into scriplets – use separate classes • More prone to duplicate code with this controller
Data Storage • Need mechanisms to allow RDBMS to communicate in the OO world. • With OO databases none of these patterns necessary. • Useful even if non-OO language wants to communicate with RDBMS to make the DB flexible to change in type and to make the data representation protected.
Data Storage Patterns • Table Data Gateway • Row Data Gateway • Active Record • Data Mapper • Structural Patterns • Foreign Key Mapping, Identify Field Association, Table Mapping, Single Table Inheritance.
Distribution Patterns • Remote Façade • Data Transfer Object
Summary • No one patterns is an end all • Patterns are mechanisms to help decompose applications into reusable, maintainable, modules. • The layers of development help to define the needed patterns • No pattern is always correct -- fit the application.