330 likes | 549 Views
Architectural Patterns. Another group of Patterns. Patterns. Pattern: A representation of a proven solution. Problem. Applicable Forces. Solution. Consequences. Benefits. Software Architecture. Architecture is OVERLOADED System architecture Application architecture
E N D
Architectural Patterns Another group of Patterns
Patterns Pattern: A representation of a proven solution. Problem Applicable Forces Solution Consequences Benefits
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.
Types of Patterns • Lowest Level – Programming Patterns • Iterator, if, while • Design Level – Design Patterns • Factory, builder, --- gang of 4 • Before Design – Architectural Patterns • Martin Fowler- presentation, domain, data storage, environment • Analysis Patterns – • used in requirements analysis
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
Template vs Transform vs Two Step • Template View • Follows natural editing notions • Supports non=programmer editors of HTML • Needs discipline to avoid scriplets • Transform View • Can test without server • Works well with XML • Two Step View • Easy to make global appearance changes • Easy to support multiple appearances • Complex
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.
Computing Degrees at FSU-Panama City Information System Degrees Scientific Degrees Computer Science (MS, Web-BS) Management Information Systems (BS) . Advisor Jeanne Dexter – jdexter@mail.pc.fsu.edu . Advisor Sara Stoecklin stoeckli@cs.fsu.edu • Systems Analysis • IT Management • Computer Consulting • Application Programming • Operating Systems • Systems Programming • Applications Programming • Database Administration • Systems Administration Math&Science Business General Math&EE Information Studies (Web – BS,MS) Computer Engineering (BS, Web-MS) . Advisor Alan Stromberg sdytomnrty@mail.pc.fsu.edu . Advisor Kamran Imen kimen@mail.pc.fsu.edu • Embedded Systems • Image Processing • Electronics and Electromagnetics • Signals and Systems • Communications • Microprocessors • Computer Architecture • Web Development • Network Management • Information Systems • Management of Information Services • Social Informatics • Information and Communication Technologies . Degree Programs http://www.pc.fsu.edu/degreeplansheets/default.asp