March 200391.3913 R McFadyen1 Architecture Architecture involves the set of significant decisions about the organization of a software system, decisions.

Slides:



Advertisements
Similar presentations
1 Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Advertisements

Object-Oriented Analysis and Design CHAPTERS 12-14: INTRODUCTION TO DESIGN 1.
October 23, 2001 Software Design-Layering and Packaging1 Architecture: Layers and Packages.
GRASP Patterns M Taimoor Khan
Oct 2, Ron McFadyen1 From the Merriam-Webster’s online dictionary ( Main Entry: an·thro·po·mor·phism Pronunciation: -"fi-z&m Function:
March R McFadyen1 Architecture Architecture involves the set of significant decisions about the organization of a software system, decisions.
Oct R McFadyen1 Recall UML Class Diagram BusRoute BusStopList BusStop BusList BusPersonList Person passengers buses busStops waiting 0..*
Feb R. McFadyen1 From the Merriam-Webster’s online dictionary ( Main Entry: an·thro·po·mor·phism Pronunciation: -"fi-z&m Function:
© Lethbridge/Laganière 2001 Chapter 9: Architecting and designing software1 Layers Data from IBM-Rational and Craig Larman…
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
System Architecture Lecture 3 CSE 111 Spring /22/20151Copyright William E. Howden.
February Ron McFadyen1 From the Merriam-Webster’s online dictionary ( Main Entry: an·thro·po·mor·phism Pronunciation: -"fi-z&m.
March R McFadyen1 GoF (Gang of Four): Gamma, Johnson, Helm & Vlissides Book: Design Patterns: Elements of Reusable Object-Oriented Software.
CMPT 370: Information Systems Design Instructor: Curtis Cartmill, Simon Fraser University – Summer 2003 Lecture Topic: Layered Architecture Class Exercise:
Fall 2009ACS-3913 Ron McFadyen1 From the Merriam-Webster’s online dictionary ( Main Entry: an·thro·po·mor·phism Date: 1753 an interpretation.
Logical Architecture and UML Package Diagrams
March R McFadyen1 Figure 30.2 Layers in NextGen They only have three layers in this architecture Each layer is shown as a UML Package No separate.
Feb 4, Ron McFadyen1 founded on principles of good OO design idea was first put forth by Christopher Alexander (1977) in their work concerning.
Chapter 26 Applying Gang of Four Design Patterns 1CS6359 Fall 2012 John Cole.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Objectives Design Class Diagrams Issues in system design Generalization Review UML papers.
The Design Discipline.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Systems Analysis and Design in a Changing World, Fifth Edition
Logical Architecture and UML Package Diagrams 徐迎晓 复旦大学软件学院.
MVC and MVP. References enter.html enter.html
GRASP Principles. How to Design Objects The hard step: moving from analysis to design How to do it? –Design principles (Larman: “patterns”) – an attempt.
An Introduction to Software Architecture
Chapter 17. GRASP General Responsibility Assignment Software Patterns (Principles) OOD: after identifying requirements, create domain model, define responsiblities.
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
12 Systems Analysis and Design in a Changing World, Fifth Edition.
Architecture GRASP Realization of use cases in interaction diagrams Design class diagram Design ( how )
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Chapter 26 GoF Design Patterns. The Adapter Design Pattern.
GoF Design Patterns (Ch. 26). GoF Design Patterns Adapter Factory Singleton Strategy Composite Façade Observer (Publish-Subscribe)
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
Copyright © Craig Larman All Rights Reserved Responsibility-Driven Design with the GRASP Patterns.
Architectural Design Identifying system components and their interfaces.
Chapter 13 Logical Architecture and UML Package Diagrams 1CS6359 Fall 2012 John Cole.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
GRASP: Designing Objects with Responsibilities
Chapter 16 Applying UML and Patterns Craig Larman
© 2005 Prentice Hall9-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Oct R McFadyen1 Facade P Problem: There are a set of classes, a subsystem, that you need to interact with for some purpose, but you don’t.
NJIT UML Class Diagrams Chapter 16 Applying UML and Patterns Craig Larman.
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Object Design and Use- Case Realizations with GRASP Patterns.
What to remember from Chap 13 (Logical architecture)
Part VII: Design Continuous
Introduction to Design Patterns Part 1. © Lethbridge/Laganière 2001 Chapter 6: Using design patterns2 Patterns - Architectural Architectural Patterns:
Patterns Roberto Damiani Mendes. Roteiro Definition; Definition; Architecture Patterns; Architecture Patterns; Design Patterns; Design Patterns; GRASP.
UML Package Diagrams. Package Diagrams UML Package Diagrams are often used to show the contents of components, which are often packages in the Java sense.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
TK2023 Object-Oriented Software Engineering CHAPTER 8 LOGICAL ARCHITECTURE.
Copyright © Craig Larman All Rights Reserved COMP-350 Object-Oriented Analysis and Design GRASP: Designing Objects with Responsibilities Reference:
OO Methodology Elaboration Phase Iteration 1- Part 3.
BTS430 Systems Analysis and Design using UML
Oct 3, Ron McFadyen1 GRASP Patterns 1.Expert 2.Creator 3.Controller 4.Low Coupling 5.High Cohesion.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
OO Methodology OO Architecture.
Apply Expert, Creator, Controller, Low Coupling, High Cohesion
BTS530: Major Project Planning and Design
Use Case Realization Describes a collaboration among analysis classes that shows how a specific use case is realized Consists of flow-of-events analysis,
Chapter 13 Logical Architecture.
Figure 30.2 Layers in NextGen
Starting Design: Logical Architecture and UML Package Diagrams
Chapter 13 Logical Architecture.
An Introduction to Software Architecture
The Islamia University Bahawalpur
Chapter 13 Logical Architecture.
Logical Architecture & UML Package Diagrams
Presentation transcript:

March R McFadyen1 Architecture Architecture involves the set of significant decisions about the organization of a software system, decisions concerning: its structural elements and their interfaces its behaviour as specified in the collaborations its composition into progressively larger subsystems

March R McFadyen2 Layers Pattern The Layers Pattern organizes the large-scale logical/conceptual structure of a system into discrete layers with distinct, but related responsibilities. Each layer exhibits high cohesion. Lower layers are low-level providing general services; higher levels are more application specific. Collaboration and coupling is from higher to lower layers Layers defines an N-tier model Page 450-1

March R McFadyen3 Layers Pattern Benefits/goals: strong cohesion within layers clean/clear definition of interface between layers promotes re-usability, replaceability

March R McFadyen4 Typical Layers in an Information System - Fig 30.1, P. 451 Layers is a pattern where the structure of a system is organized into discrete layers where each layer is highly cohesive, and where higher layers are more application specific, lower layers are more low-level and service oriented.

March R McFadyen5 Figure 30.2 Layers in NextGen They only have three layers in this architecture Each layer is shown as a UML Package No separate Application Layer is shown - Register manages the UI not all Classes are shown - the big picture is illustrated

March R McFadyen6 Figure 30.3 Architecture drawing showing noteworthy coupling Dependency lines depict coupling Figure 30.4 reinforces the idea that you show the level of detail appropriate for the audience

March R McFadyen7 Figure 30.5 An architecturally significant interaction diagram Illustrates inter- package and inter-layer connections shows a subsystem as an object

March R McFadyen8 The Domain layer is only exposing one object (Register) to the UI - the above represents an application of Controller or Façade As the system grows to handle many Use Cases, an Application Layer is likely Use of Façade in POS - Fig 30.7, p 459

March R McFadyen9 Figure 30.8 The system evolves... Application Layer Collaboration via Façade is usually from a higher level to a lower level - downward collaboration

March R McFadyen10 Figure Upward communication in case of Observer pattern When the application layer needs to communicate with the presentation layer it is usually via the Observer Pattern the lower layer objects send messages to the higher layer objects, but the coupling is not to direct classes, but rather to any class implementing an interface such as PropertyListener

March R McFadyen11 Classic View of 3-Tier Architecture - Fig 30.14, P tier architectures appeared in the 90s its prominence was partly due to its promotion by the Gartner Group

March R McFadyen12 Different Deployments of 3-Tier - Fig 30.15, p 471 Thick ClientThin Client There are many ways of slicing the 3-tier architecture across one or more hardware components

March R McFadyen13 Model-View Separation Principle - P Concept originated with SmallTalk development (MVC) The general concern is: what kind of visibility should other packages have to the Presentation Layer? Model is synonymous with Domain Layer View is synonymous with Presentation Layer The Model-View Separation principle states that model objects should not have direct knowledge of View objects Window classes are relatively thin; they are responsible for input/output, catching GUI events, but do not maintain data or provide application functionality e.g. Register or Sale objects should not send messages directly to a GUI window object (Note Observer does not involve direct coupling)

March R McFadyen14 Model-View Separation Principle - P How do windows obtain information to display? Two approaches: Polling/Pull-from-above Push-from-below needed when polling is too inefficient two solutions: Observer Presentation Façade object One is deciding how two layers are going to interact - this is a big decision, an architectural decision

March R McFadyen15 Figure Presentation Facade