Copyright © Craig Larman. 2000 All Rights Reserved Large-Scale System Partitioning.

Slides:



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

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 CHAPTERS 12-14: INTRODUCTION TO DESIGN 1.
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…
NJIT From Inception to Elaboration Chapter 8 Applying UML and Patterns Craig Larman.
CSCI 639 Topics in Software Engineering Assignment #5 Fall 2008.
From Inception to Elaboration Chapter 8 Applying UML and Patterns -Craig Larman.
COMP 350: Object Oriented Analysis and Design Lecture 2
October 20, 2005Architectural Design, ECEN Architectural Design Architecture Business Cycle Design for Maintainability ECEN 5543 / CSCI 5548 SW Eng.
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.
Object Oriented Analysis and Design Using the UML
Objectives Design Class Diagrams Issues in system design Generalization Review UML papers.
Principles of Object Technology Module 1: Principles of Modeling.
Copyright © Craig Larman All Rights Reserved Requirements.
The Design Discipline.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Logical Architecture and UML Package Diagrams 徐迎晓 复旦大学软件学院.
RUP Fundamentals - Instructor Notes
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Craig Larman’s Applying UML and Patterns: Hands-on Mastery of OOA/D.
Rational Unified Process Fundamentals Module 4: Disciplines II.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 11 Subsystem Design.
1 SAD2 - UML 4 th Lecture Class Diagram in Construction Phase Patterns Case Study Lecturer: Dr Dimitrios Makris
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Chapter 7 Applying UML and Patterns Craig Larman
Copyright © Craig Larman All Rights Reserved Responsibility-Driven Design with the GRASP Patterns.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 13 Logical Architecture and UML Package Diagrams 1CS6359 Fall 2012 John Cole.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 12-5 Software Engineering Design Goals.
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
Copyright © Craig Larman All Rights Reserved The Domain Model.
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)
1 On To Object Design Chapter 14 Applying UML and Patterns -Craig Larman.
Introduction to Design Patterns Part 1. © Lethbridge/Laganière 2001 Chapter 6: Using design patterns2 Patterns - Architectural Architectural Patterns:
Software Engineering 1 Object-oriented Analysis and Design Chap 24 Iteration 2 More Patterns.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
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.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Computer Science 340 Software Design & Testing Software Architecture.
TK2023 Object-Oriented Software Engineering CHAPTER 8 LOGICAL ARCHITECTURE.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Copyright © Craig Larman All Rights Reserved COMP-350 Object-Oriented Analysis and Design GRASP: Designing Objects with Responsibilities Reference:
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
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 and Class Structuring Chapter 9 Part of Analysis Modeling Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
BTS430 Systems Analysis and Design using UML
Gerhard Dueck -- CS3013Architecture 1 Architecture-Centric Process  There is more to software development then going blindly through the workflows driven.
Basic Characteristics of Object-Oriented Systems
1 The Law of Demeter By Rick Mercer with help from Object-Oriented Design Heuristics, Arthur Riel Addison-Wesley, 1996, ISBN X and Applying.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
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,
Design Concepts ch-8
GRASP – Designing Objects with Responsibilities
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.
COMP 350: Object Oriented Analysis and Design Lecture 2
Chapter 13 Logical Architecture.
Figure 30.2 Layers in NextGen
Introduction to Design Patterns Part 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.
Starting Design: Logical Architecture and UML Package Diagrams
Chapter 13 Logical Architecture.
Chapter 13 Logical Architecture.
Logical Architecture & UML Package Diagrams
Presentation transcript:

Copyright © Craig Larman All Rights Reserved Large-Scale System Partitioning

Copyright © Craig Larman All Rights Reserved 2 System Partitioning n The logical view of the architecture emphasizes large-scale elements (LSEs): – Layers, subsystems, modules, frameworks. n Before considering detailed object design, it is recommended to start with a draft design partitioning the system into LSEs. – 1. The elements – 2. Their interfaces – 3. The inter-element collaborations – These will change and evolve through the Elaboration phase iterations.

Copyright © Craig Larman All Rights Reserved 3 Large-Scale Element Collaboration n It is Good Thing to achieve early clarification of the interfaces of LSEs, and their collaborations. – Of course, mutable in the spirit of iterative development. – This effort helps to partition parallel design and implementation by workers. “Stubs” can be defined for incomplete LSEs. n Define the operations and parameters in detail. n Be mindful of coupling and cohesion.

Copyright © Craig Larman All Rights Reserved 4 Inter-LSE Coupling n Follow the Don’t Talk to Strangers (Law of Demeter, Whole-Part) pattern. – Avoid coupling into the internals of an LSE, or across several LSEs.

Copyright © Craig Larman All Rights Reserved 5 Large-Scale Element Collaboration n It is a common experience to “reasonably” design the static partitioning into LSEs without “too much” trouble or error, during early design. n However, the early design of the LSE interfaces and collaborations (dynamics) is usually quite speculative, and unstable. – These will change dramatically during the elaboration phase. – They will become more detailed and correct during the detailed object design of individual LSEs. – Since this is important, the Elaboration phase should focus on their clarification, via iterations that focus on “connecting the dots” between LSEs and on stress/load/evolution evaluation.

Copyright © Craig Larman All Rights Reserved 6 Logical Architecture Design n Part of the Analysis & Design workflow. n Identify the macro-level logical partitioning into layers and subsystems.

Copyright © Craig Larman All Rights Reserved 7 Advice: Multi-Tier Layered Architectures n Separate presentation and application logic, and other areas of concern. UI Layer “Domain” or “Application Logic” Layer Services Layer Persistence Subsystem Logging Subsystem...

Copyright © Craig Larman All Rights Reserved 8 A Simple Logical Architecture n In the UML, the logical partitioning is illustrated with package diagrams.

Copyright © Craig Larman All Rights Reserved 9 Advice: An Application Coordination Layer n Consider an “application coordination layer” whose objects represent use cases. They may also hold session state.

Copyright © Craig Larman All Rights Reserved 10 Package Dependencies n It is useful to show the coupling with UML dependency lines. n A CASE tool can reverse engineer these diagrams.

Copyright © Craig Larman All Rights Reserved 11 Ordering Work n What can we start with? n What can we do in parallel? – How?

Copyright © Craig Larman All Rights Reserved 12 Advice: Early Load Testing n In the Elaboration phase, “connect the dots” between the LSEs, application servers, ORBs, databases, and so forth, and do early realistic load testing against this skeleton architecture. – i.e., Load test the core architecture early, before filling in functionality. n The UP philosophy of the Elaboration phase: – Get the correct core architectural design early, before investing in operational-oriented functionality.