Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
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.
Object-Oriented Analysis and Design
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.
© Lethbridge/Laganière 2001 Chapter 9: Architecting and designing software1 Layers Data from IBM-Rational and Craig Larman…
Object Oriented Analysis and Design
NJIT Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman Presented By :Satish Khanna.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
From Inception to Elaboration Chapter 8 Applying UML and Patterns -Craig Larman.
COMP 350: Object Oriented Analysis and Design Lecture 2
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
SE-565 Software System Requirements More UML Diagrams.
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.
System Design Decomposing the System. Sequence diagram changes UML 2.x specifications tells that Sequence diagrams now support if-conditions, loops and.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
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.
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.
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
Chapter 7 Applying UML and Patterns Craig Larman
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.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
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
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
What to remember from Chap 13 (Logical architecture)
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
Introduction to Design Patterns Part 1. © Lethbridge/Laganière 2001 Chapter 6: Using design patterns2 Patterns - Architectural Architectural Patterns:
Chapter 10 Drawing System Sequence Diagrams
DOMAIN MODEL: ADDING ATTRIBUTES Identify attributes in a domain model. Distinguish between correct and incorrect attributes.
Patterns Roberto Damiani Mendes. Roteiro Definition; Definition; Architecture Patterns; Architecture Patterns; Design Patterns; Design Patterns; GRASP.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
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
Computer Science 340 Software Design & Testing Software Architecture.
TK2023 Object-Oriented Software Engineering CHAPTER 8 LOGICAL ARCHITECTURE.
Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Copyright © Craig Larman All Rights Reserved COMP-350 Object-Oriented Analysis and Design GRASP: Designing Objects with Responsibilities Reference:
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Object Oriented Analysis & Design By Rashid Mahmood.
11 Systems Analysis and Design in a Changing World, Fifth Edition.
Copyright © Craig Larman All Rights Reserved Large-Scale System Partitioning.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Logical Architecture and UML Package Diagrams. The logical architecture is the large-scale organization of the software classes into packages, subsystems,
Design Concepts ch-8
GRASP – Designing Objects with Responsibilities
OO Methodology OO Architecture.
The Object Oriented Approach to Design
Chapter 13 Logical Architecture.
Figure 30.2 Layers in NextGen
Object oriented analysis and design
Starting Design: Logical Architecture and UML Package Diagrams
Chapter 13 Logical Architecture.
The Islamia University Bahawalpur
Design Yaodong Bi.
Chapter 13 Logical Architecture.
Logical Architecture & UML Package Diagrams
Presentation transcript:

Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman

Introduction A transition from primarily a requirements focus to primarily a design and implementation focus will occur in each iteration. Actual modeling that has been explored so far is realistically done in just a few days. Other activities such as proof-of-concept programming, planning, setting up the environment could take weeks

Objectives During Transition Motivate the transition to design activities Shift emphasis to designing a solution for iteration as collaborating software objects Contrast the importance of object design skill versus UML notation knowledge

On to Object Design During object design, a logical solution based on the object-oriented paradigm is developed. Interaction diagrams illustrate how objects collaborate to fulfill the requirements. In practice, after or in parallel with drawing interaction diagrams, (design) class diagram can be synergistically drawn

Object Design vs UML Notation Drawing UML interaction diagrams is the result of making decisions about the object design.  The object design skills are what really matter Fundamental object design requires knowing:  Principles of responsibility assignment  Design patterns

6 Logical Architecture and UML Package Diagrams Chapter 13 Applying UML and Patterns

7 Architectural Dimension and Views The common system descriptions are: logical architecture--the system as a conceptual organization in layers, packages, classes, interfaces and subsystems. deployment architecture--the system as an allocation of processes to processing unit and network configurations

8 Layers “A coarse-grained grouping of classes packages or subsystems that has cohesive responsibility for a major aspect of the system.” Higher layers call upon services of lower layers Typical layers in OO systems: User Interface Application Logic and Domain Objects Technical Services (e.g. database interface support or error logging objects) – typically independent and reuseable

9 Architectural Patterns and Pattern Categories Architectural patterns: Relates to large- scale design and typically applied during the early iterations Design patterns: Relates to small and medium-scale design of objects and frameworks Idioms: Relates to language or implementation-oriented low-level design solutions.

10 Inter-Layer and Inter-Package Coupling It is informative to include a diagram in the logical view that shows the coupling between the layers and packages. Emphasizes the dynamics of how objects across the layers connect and communicate. The interaction diagram focuses on the logical view and on the collaborations between the layers and package boundaries.

11 Partial coupling between Packages

12 Package Diagrams UML Package Diagrams are often used to show the contents of components, which are often packages in the Java sense. Packages, as components, can be nested inside other packages.

13 Package Diagram UIDomain SwingWebSales

14 Designing Application Logic with Objects Possible Alternative: create one class and put all logic in it Violates the spirit of object orientation Better Alternative: create software objects with names drawn from the real world Assign application logic responsibilities to them. Skill and experience required to do good job of choosing objects and assigning responsibilities.

15 Domain Layer and Domain Model These are not the same thing Domain model shows the real world Domain layer shows the software architecture Domain model inspires the Domain layer, and is the source of many of the concepts, especially class names.

16 Information Systems Layers A three-tier (layer) architecture has interface, Application logic and storage layers Separates the application logic into distinct logical middle tier of software. The interface tier is relatively free of application processing The middle tier communicates with the back- end storage layer.

17 Example:

18 Alternative Two-tier Design In this design, the application logic is placed within window definitions, which read and writes directly to database. There is no middle tier that separates out the application logic.

19 The Model-View Separation Principle Do not connect or couple non-UI objects directly to UI objects Model (domain) objects should not have direct knowledge of view (UI) objects Do not put application logic in the UI object methods Only model (domain) classes should encapsulate the behavior of application logic UI objects should only receive UI events, delegate application logic requests, and initialize UI elements

20 Model-View Separation Advantages Supports cohesive model definitions that focuses on the domain process, rather than on interfaces Allows separate development of the model and user interface layers. Minimizes impact of requirements changes in the interface upon the domain layer Allow new views to be easily connected to an existing domain layer, without affecting the domain layer

21 Model-View Separation Advantages Allow multiple simultaneous views on the same model object Allow execution of the model layer independent of the user interface layer Allow easy porting of the model layer to another user interface framework