Download presentation
Presentation is loading. Please wait.
Published byAlbert Stewart Modified over 8 years ago
1
SEA Side – Extreme Programming 1 SEA Side Software Engineering Annotations Architectural Patterns Professor Sara Stoecklin Director of Software Engineering- Panama City sstoecklin@mail.pc.fsu.edu stoeckli@cs.fsu.edu 850-522-2091 850-522-2023 Ex 182 Florida State University Computer Science
2
SEA Side – Extreme Programming 2 Patterns Pattern: A representation of a proven solution. Problem Applicable Forces Solution Consequences Benefits
3
SEA Side – Extreme Programming 3 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.
4
SEA Side – Extreme Programming 4 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.
5
SEA Side – Extreme Programming 5 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
6
SEA Side – Extreme Programming 6 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
7
SEA Side – Extreme Programming 7 Presentation Architectural Patterns Presentation interactions with the user No Client Thick Client (rich client) Thin Client
8
SEA Side – Extreme Programming 8 Presentation Architectural Patterns Model View Controller Application Controller Input Controller –Page Controller –Front Controller View Controller –Template View –Transform View –Two Step View
9
SEA Side – Extreme Programming 9 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
10
SEA Side – Extreme Programming 10 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
11
SEA Side – Extreme Programming 11 Application Controller
12
SEA Side – Extreme Programming 12 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.
13
SEA Side – Extreme Programming 13 Front Controller
14
SEA Side – Extreme Programming 14 Page Controller
15
SEA Side – Extreme Programming 15 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
16
SEA Side – Extreme Programming 16 Template View
17
SEA Side – Extreme Programming 17 Transform View
18
SEA Side – Extreme Programming 18 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
19
SEA Side – Extreme Programming 19 Example
20
SEA Side – Extreme Programming 20 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.
21
SEA Side – Extreme Programming 21 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.
22
SEA Side – Extreme Programming 22 Table Data Gateway
23
SEA Side – Extreme Programming 23 Row Data Gateway
24
SEA Side – Extreme Programming 24 Row Data Gateway (2)
25
SEA Side – Extreme Programming 25 Active Record
26
SEA Side – Extreme Programming 26 Data Mapper
27
SEA Side – Extreme Programming 27 Distribution Patterns Remote Façade Data Transfer Object
28
SEA Side – Extreme Programming 28 Remote Facade
29
SEA Side – Extreme Programming 29 Data Transfer Object
30
SEA Side – Extreme Programming 30 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.
31
SEA Side – Extreme Programming 31 Computing Degrees at FSU-Panama City Math&Science Business Math&EE General Information System Degrees Scientific Degrees Management Information Systems (BS) Information Studies (Web – BS,MS) Computer Science (MS, Web-BS) Computer Engineering (BS, Web-MS) Systems Analysis IT Management Computer Consulting Application Programming Web Development Network Management Information Systems Management of Information Services Social Informatics Information and Communication Technologies Embedded Systems Image Processing Electronics and Electromagnetics Signals and Systems Communications Microprocessors Computer Architecture Operating Systems Systems Programming Applications Programming Database Administration Systems Administration. Degree Programs http://www.pc.fsu.edu/degreeplansheets/default.asphttp://www.pc.fsu.edu/degreeplansheets/default.asp. Advisor Jeanne Dexter – jdexter@mail.pc.fsu.edu. Advisor Alan Stromberg sdytomnrty@mail.pc.fsu.edu. Advisor Kamran Imen kimen@mail.pc.fsu.edu. Advisor Sara Stoecklin stoeckli@cs.fsu.edu
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.