html5-img
1 / 31

SEA Side Software Engineering Annotations

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 . Patterns.

kylemore
Download Presentation

SEA Side Software Engineering Annotations

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Patterns Pattern: A representation of a proven solution. Problem Applicable Forces Solution Consequences Benefits

  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. 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. 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. 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. Presentation Architectural Patterns • Presentation interactions with the user • No Client • Thick Client (rich client) • Thin Client

  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. 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. 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

  11. Application Controller

  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. Front Controller

  14. Page Controller

  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. Template View

  17. Transform View

  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. Example

  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. 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. Table Data Gateway

  23. Row Data Gateway

  24. Row Data Gateway (2)

  25. Active Record

  26. Data Mapper

  27. Distribution Patterns • Remote Façade • Data Transfer Object

  28. Remote Facade

  29. Data Transfer Object

  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. 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

More Related