Date post: | 04-Jan-2016 |
Category: |
Documents |
Upload: | andrew-john-lyons |
View: | 248 times |
Download: | 1 times |
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
View
Application Controller
Domain Layer
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.