TK2023 Object-Oriented Software Engineering CHAPTER 8 LOGICAL ARCHITECTURE.

Slides:



Advertisements
Similar presentations
Chapter 13 Review Questions
Advertisements

Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
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
March R McFadyen1 Architecture Architecture involves the set of significant decisions about the organization of a software system, decisions.
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…
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 5: Restaurant.
© 2005 Prentice Hall12-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
CMPT 370: Information Systems Design Instructor: Curtis Cartmill, Simon Fraser University – Summer 2003 Lecture Topic: Layered Architecture Class Exercise:
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.
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 徐迎晓 复旦大学软件学院.
Systems Analysis and Design in a Changing World, Fifth Edition
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
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
Object-Oriented Analysis and Design Feb 4, 2009.
12 Systems Analysis and Design in a Changing World, Fifth Edition.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
1 ITEC 3010 “Systems Analysis and Design, I” LECTURE 10: Use Case Realizations [Prof. Peter Khaiter]
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
TK2023 Object-Oriented Software Engineering CHAPTER 3 CASE STUDY: POS SYSTEM.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
Design Patterns. Patterns “Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Systems Analysis and Design in a Changing World, 3rd Edition
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.
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)
Patterns Roberto Damiani Mendes. Roteiro Definition; Definition; Architecture Patterns; Architecture Patterns; Design Patterns; Design Patterns; GRASP.
TK2023 Object-Oriented Software Engineering CHAPTER 12 Introduction to Responsibility-Driven Design.
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.
OO Design Roshan Chitrakar. Analysis to Design Do the RIGHT thing Do the RIGHT thing Requirement Analysis Requirement Analysis Domain Modeling with addition.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
TK2023 Object-Oriented Software Engineering CHAPTER 9 INTRODUCTION TO OBJECT DESIGN.
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.
Design. 2 The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary but not sufficient in order.
Oct 3, Ron McFadyen1 GRASP Patterns 1.Expert 2.Creator 3.Controller 4.Low Coupling 5.High Cohesion.
11 Systems Analysis and Design in a Changing World, Fifth Edition.
Elaboration: Iteration 2. Elaboration: Iteration 2 Basics Iteration 1 ends with : All the software has been tested: The idea in the UP is to do early,
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
Object Design Examples with GRASP
TK2023 Object-Oriented Software Engineering
Conception OBJET GRASP Patterns
OO Methodology OO Architecture.
Software Quality Engineering
Apply Expert, Creator, Controller, Low Coupling, High Cohesion
BTS530: Major Project Planning and Design
The Object Oriented Approach to Design
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
Design Yaodong Bi.
Chapter 13 Logical Architecture.
Logical Architecture & UML Package Diagrams
Presentation transcript:

TK2023 Object-Oriented Software Engineering CHAPTER 8 LOGICAL ARCHITECTURE

INTRODUCTION We have transitioned from analysis-oriented work to software design. Before going on to object design, we will first look at logical layered architecture and the related UML notation.

LOGICAL ARCHITECTURE AND LAYERS The logical architecture is the large-scale organization of the software classes into packages, subsystems, and layers. A layer is a very coarse-grained grouping of classes, packages, or subsystems that has cohesive responsibility for a major aspect of the system.

EXAMPLE Domain UI Swing not the Java Swing libraries,but our GUI classes based on Swing Web SalesPaymentsTaxes Technical Services PersistenceLoggingRulesEngine HIGHER LAYERS LOWER LAYERS

Layers are organized such that "higher" layers call upon services of "lower" layers, but not normally vice versa. Typical layers in an OO system include:  User Interface (UI Layer)  Application Logic and Domain Objects contains software objects representing domain concepts that fulfill application requirements e.g. calculating a sale total  Technical Services consists of general purpose objects and subsystems that provide supporting technical services e.g. interfacing with databases. A logical architecture doesn't have to be layered but it's very common.

PACKAGE DIAGRAMS UML package diagrams are often used to illustrate the logical architecture of a system. A layer can be modeled as a UML package. In UML, a package can group anything: classes, other packages, use cases, etc. Technical Services PersistenceLogging Sales

Dependency between packages can be shown using a dashed arrowed line. Domain UI SwingWeb SalesPaymentsTaxes Technical Services PersistenceLoggingRulesEngine

GUIDELINE: DESIGN WITH LAYERS Organize the large-scale logical structure of a system into discrete layers of distinct, related responsibilities, with a clean, cohesive separation of concerns. "Lower" layers should be low-level and general services whereas the "higher" layers are more application specific. Collaboration and coupling is from higher to lower layers; lower-to-higher layer coupling should be avoided.

Using layers helps address several problems:  Source code changes ripple throughout the system  Application logic is tied to the user interface, making it difficult to be reused with a different interface.  Potentially general technical services or business logic is tied to application-specific logic, making it difficult to be reused or easily replaced with a different implementation.  There is high coupling across different areas of concern, making it difficult to divide the work along clear boundaries for different developers.

GUIDELINE: COHESIVE RESPONSIBILITIES The responsibilities of the objects in a layer should be strongly related to each other and should not be mixed with responsibilities of other layers. For example,  UI objects should not do application logic.  Application logic classes should not trap UI events.

DOMAIN OBJECTS AND THE DOMAIN LAYER How do we design application logic with objects? The recommended approach is to create software objects with names and information similar to the real-world domain, and assign application logic responsibilities to them.  Example: Assign the logic for adding new SaleLineItem objects to Sale.

Such software objects are referred to as domain objects. The application logic layer is sometimes referred to as the domain layer of the architecture as it contains domain objects to handle application logic work.

DOMAIN LAYER AND DOMAIN MODEL It is important to understand that the domain layer is part of the software whereas the domain model is part of analysis. We refer to the domain model for inspiration for the names of classes in the domain layer. Doing this creates a lower representational gap between the real-world domain and our software design.

GUIDELINE: THE MODEL-VIEW SEPARATION PRINCIPLE What kind of visibility should other packages have to the UI layer? The Model-View Separation principle:  Do not connect or couple non-UI objects directly to UI objects.  Do not put application logic in the UI object methods. UI objects should only initialize UI elements, receive UI events, and delegate requests for application logic to non-UI objects.  Information and behaviour related to application logic should be encapsulated within the domain classes.

Motivation for Model-View Separation includes:  To allow separate development of the model (domain layer) and the user interface layer.  To minimize the impact of requirements changes in the interface upon the domain layer.  To allow multiple simultaneous views on the same model object.  To allow execution of the model layer independent of the user interface layer, such as in a batch- mode system.

SSDs, SYSTEM OPERATIONS AND LAYERS An SSD shows the events generated by the actor/s on the system. It shows the system operations but it does not show the specific UI objects involved. System operations involve application logic so they should not be operations of the UI layer. Thus, system operation requests should be forwarded by the UI layer to the domain layer for handling.

System makeNewSale() enterItem(id, quantity) endSale()