SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Advertisements

Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
Object-Oriented Analysis and Design CHAPTERS 12-14: INTRODUCTION TO DESIGN 1.
Systems Analysis and Design in a Changing World, Fourth Edition
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:
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.
Graphical User Interface (GUI) Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
Overview of Swing’s MVC Architecture By Geoffrey Steffens (BCSi), Socket Software, Australia Copyright © Socket Software, 2002.
February Ron McFadyen1 From the Merriam-Webster’s online dictionary ( Main Entry: an·thro·po·mor·phism Pronunciation: -"fi-z&m.
Graphical User Interface (GUI) Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
GRASP : Designing Objects with Responsibilities
Object-Oriented Analysis and Design
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
Fall 2009ACS-3913 Ron McFadyen1 From the Merriam-Webster’s online dictionary ( Main Entry: an·thro·po·mor·phism Date: 1753 an interpretation.
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.
CSSE 374: More GRASP’ing and Use Case Realization Steve Chenoweth Office: Moench Room F220 Phone: (812) These.
The Design Discipline.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
MVC pattern and implementation in java
Systems Analysis and Design in a Changing World, Fifth Edition
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
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
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.
Systems Analysis and Design in a Changing World, 6th Edition
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.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
1 ITEC 3010 “Systems Analysis and Design, I” LECTURE 10: Use Case Realizations [Prof. Peter Khaiter]
BTS430 Systems Analysis and Design using UML Design Patterns.
GRASP: Designing Objects With Responsibilities
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
(c) University of Washington08-1 CSC 143 Models and Views Reading: Ch. 18.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Chapter 6 – Architectural Design CSE-411, Dr. Shamim H Ripon.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Systems Analysis and Design in a Changing World, 3rd Edition
GRASP: Designing Objects with Responsibilities
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
Object-Oriented Software Engineering Practical Software Development using UML and Java Design Patterns – Part 2 Sources: Chapter 6: Using Design Patterns,
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)
Course Instructor: Kashif Ihsan 1. Chapter # 3 2.
Object Oriented Design Jerry KotubaSYST Object Oriented Methodologies1.
TK2023 Object-Oriented Software Engineering CHAPTER 12 Introduction to Responsibility-Driven Design.
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
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:
Chapter 17 Designing with Responsibilities. Fig
OO Methodology Elaboration Phase Iteration 1- Part 3.
11. Chapter 11: The Object-Oriented Approach to Design: Use Case Realization Systems Analysis and Design in a Changing World, Fourth Edition.
General Principles in Assigning Responsibilities Responsibilities Responsibility-Driven Design CRC Cards GRASP.
Programming Paradigms, Software Architectural Patterns, and MVC CS 378 – Mobile Computing for iOS Dr. William C. Bulko.
TK2023 Object-Oriented Software Engineering
Conception OBJET GRASP Patterns
DESIGN MODEL: USE-CASE REALIZATIONS WITH GRASP PATTERNS
Apply Expert, Creator, Controller, Low Coupling, High Cohesion
BTS530: Major Project Planning and Design
The Object Oriented Approach to Design
GRASP : Designing Objects with Responsibilities
Starting Design: Logical Architecture and UML Package Diagrams
Chapter 13 Logical Architecture.
Presentation transcript:

SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler

Outline Importance of domain model, use cases, operation contracts for design Layers MVC Use case realization, Jacobson robustness analysis, traceability GRASP Controller principle (Larman 17.13) Design for visibility (Larman ch 19)

Design Model

Logical Architecture – Simple Layers

Logical Architecture – Layers

Logical Architecture – Layers & Partitions

Domain Model and Domain Layer Low representational gap

SSDs, System Operations & Layers

Model-View Separation Principle (MVC) UI layer has views Domain layer has model

Model-View-Control Architecture (MVC) MVC is an acronym for Model View Controller It represents a software design pattern developed at Xerox PARC in 1978 (!) It explains a method of separating the visual, interaction and data components. Very popular, used extensively in Java and other languages

Model-View-Control Architecture (MVC) Model maintains the state and data of the application - the XML document View A rendering of the XML document Controller The user interface presented to the user to manipulate the application

Why use MVC Makes it very easy to have multiple different displays of the same information. For example: a graph and a table could both display and edit the same data. Essentially provides greater control over the UI and it’s behaviour.

MVC Model The “Model” contains the data Has methods to access and possibly update it’s contents. Often, it implements an interface which defines the allowed model interactions. Implementing an interface enables models to be pulled out and replaced without programming changes.

MVC Controller Users interact with the controller. It interprets mouse movement, clicks, keystrokes, etc Communicates those activities to the model – eg: delete row, insert row, etc It’s interaction with the model indirectly causes the View(s) to update

MVC View The View provides a visual representation of the model. There can be multiple views displaying the model at any one time. For example, a companies finances over time could be represented as a table and a graph. These are just two different views of the same data. When the model is updated, all Views are informed and given a chance to update themselves.

14.4 Design Objects Spend plenty of time on dynamic models (see notation chapter 15)

Jacobson’s Objectory Design Objects

Robustness model has Entity objects Boundary (interface objects) Control objects Essentially UML collaboration (communication) diagram

Jacobson’s Robustness Analysis Bridges Analysis-Design Gap

What are the users doing? (Jacobson) What are the objects in the real world? (Rumbaugh) What objects are needed for each use case? (Jacobson) How do the objects collaborate with each other? (Jacobson and Booch) How will we implement real-time control? (state models) How are we really going to build this system? (Booch)

Traceability

PATTERN: Controller What object in the domain (or application coordination layer) receives requests for work from the UI layer?

PATTERN: Controller (Larman 17.13) Problem: What object in the domain (or application coordination layer) receives requests for work from the UI layer? System operations (see SSD): major input events to the system The controller is the first object beyond the UI layer that is responsible for receiving or handling a system operations message. Note that UI objects delegate system operation request to a controller.

PATTERN: Controller (Larman 17.13) Solution: Assign the responsibility to a class representing one of the following choices: A façade controller, which represents 1.the overall system 2.A root object 3.A device that the software is running within, or 4.A major subsystem A use case or session controller which represents a use case scenario in which the system operation occurs

Fig

Fig Controller choices

Fig Desirable coupling

Fig Controller delegating work

Designing for Visibility Fact: To send a message to B, A must have visibility to B. It doesn’t happen by “magic.” Kinds of visibility: –Attribute –Parameter –Local –Global Larman ch 19

Attribute Visibility

Parameter Visibility

Local Visibility