Design Rules: The Power of Modularity Bill Griswold Carliss Y. Baldwin & Kim B. Clark Elucidated with examples from the “common” program and asides about.

Slides:



Advertisements
Similar presentations
ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Advertisements

Exact Inference. Inference Basic task for inference: – Compute a posterior distribution for some query variables given some observed evidence – Sum out.
Design Concepts and Principles
Slide 1 © Carliss Y. Baldwin and Kim B. Clark, 2004 Design Architecture — Is What Links Knowledge to the Economy Carliss Y. Baldwin Advancing Knowledge.
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
Chapter 5 Distributed Systems: The Overall Architecture Presented by: Matt Carver Amber Martin Jon Tucker.
Software Evolution Managing the processes of software system change
The Architecture Design Process
Designing Software for Ease of Extension and Contraction
1 Learning Entity Specific Models Stefan Niculescu Carnegie Mellon University November, 2003.
DoD Software Summit,2001 Strategic Software Design Kevin Sullivan University of Virginia Department of Computer Science.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Chapter 1 Program Design
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Chapter 13 & 14 Software Testing Strategies and Techniques
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology High-level Specification and Efficient Implementation.
Be Conference 2008 Innovating Substation Design Leveraging 3D Technology.
Simple Program Design Third Edition A Step-by-Step Approach
IAY 0600 Digital Systems Design
CPSC 872 John D. McGregor Session 16 Design operators.
Machine Learning1 Machine Learning: Summary Greg Grudic CSCI-4830.
Computer Aided Software Architecture Design Genevieve Queen of Table Manipulation Bartlett Abigail Princess of GUI Gray (Insram Nice Guy Shah)
Design Rules: How Modularity Affects the Value of Complex Engineering Systems Carliss Y. Baldwin Harvard Business School International Conference on Complex.
CPSC 875 John D. McGregor C9 - Tactics. Everything is a plugin.
Using Data Groups to Specify and Check Side Effects K. Rustan M. Leino, Arnd Poetzsch- Heffter, and Yunhong Zhou Presented by Jonathan Aldrich.
10/3/2012ISC329 Isabelle Bichindaritz1 Logical Design.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
David Weiss Software Product-Line Engineering: A Family-Based Software Development Process: Designing The Family David Weiss
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
Design Concepts and Principles Instructor: Dr. Jerry Gao.
HNDBM – 12. Organization Structure
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
Carliss Y. Baldwin Harvard Business School Presented at MIT Media Lab
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Hossain Shahriar Announcement and reminder! Tentative date for final exam need to be fixed! We have agreed so far that it can.
Slides for “Data Mining” by I. H. Witten and E. Frank.
Introduction to Java Chapter 7 - Classes & Object-oriented Programming1 Chapter 7 Classes and Object-Oriented Programming.
1 CS 552/652 Speech Recognition with Hidden Markov Models Winter 2011 Oregon Health & Science University Center for Spoken Language Understanding John-Paul.
An Analysis Of Modularity In Aspect Oriented Design by Cristina Videira Lopes and Sushil Krishna Bajracharya Presented by Chris DeCelles For SE 510.
Basic Scheme February 8, 2007 Compound expressions Rules of evaluation Creating procedures by capturing common patterns.
1 Software Maintenance The process of changing the system after it has been delivered and in operation Software change is inevitable –New requirements.
CS223: Software Engineering Lecture 13: Software Architecture.
Systems Development Lifecycle
Logical Design 12/10/2009GAK1. Learning Objectives How to remove features from a local conceptual model that are not compatible with the relational model.
CPSC 872 John D. McGregor Session 31 This is it..
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
CPSC 875 John D. McGregor C8 - Tactics. Everything is a plugin.
Structural style Modular design and hierarchy Part 1
Sections Inheritance and Abstract Classes
Design by Contract Jim Fawcett CSE784 – Software Studio
Design by Contract Jim Fawcett CSE784 – Software Studio
Software Testing Techniques
Lecture 9- Design Concepts and Principles
Structural style Modular design and hierarchy Part 1
Chapter 13 & 14 Software Testing Strategies and Techniques
HND – 12. Organization Structure
Machine Learning Basics
Designing Software for Ease of Extension and Contraction
John D. McGregor C8 - Tactics
CSc4730/6730 Scientific Visualization
Chapter 5: Software effort estimation- part 2
Lecture 9- Design Concepts and Principles
Software Design Lecture : 9.
United States Joint Forces Command
The Structure and Value of Modularity in Software Design
Chapter 10 – Software Testing
Software metrics.
Implementation of Relational Operations
Presentation transcript:

Design Rules: The Power of Modularity Bill Griswold Carliss Y. Baldwin & Kim B. Clark Elucidated with examples from the “common” program and asides about Parnas.

2 The Modularity Conundrum Powerful systems are built of many elements Power comes from elements’ interplay This interplay results in essential interdependences and reduces ability to –reuse element w/o others –change element w/o changing others AB Edges mean “knows about”

3 Common’s Design Structure Design params unique wds.xx 2. count wdsx.x 3. word parse.x 4. input.x 5. top wordsxx. 6. result formatxx.x 7. outputxx. 8. files. Authors observe that these dependences and their grouping into modules are derived through experience with previous instances of the system. SE design methods are meant to bootstrap this process. count words impacts top words

4 Design Rules Idea: have components depend on design parameters guaranteed not to change, called Design Rules Design rule may be a convention, interface, representation, programming language, etc. Design rules are the global, unhidden assumptions; they are the architecture Chosen properly, elements depend on design rules rather than on each other, becoming true modules A’B’ D. R.

5 Common’s Modularized DSM Icon strings. 2. Icon integers. 3. words IFx. 4. word parse IFx. 5. input words IFx. 6. entry output IFx. 7. top words IF. 8. top IFx. 9. unique wordsxx.xx 10. count wordsxxxx.x 11. word parsexx.x 12. input wordsxxx.x 13. top wordsxxxxxx. 14. result formatxxxxxx.x 15. outputxxxx. 16. files.x 17. mainxxxxxx. 18. topxx.

6 Common’s Design Hierarchy Icon Strings & Integers “Common” Interfaces Top WordsParseInput Top WordsFormatOutputMain/Files Visible Modules Hidden Modules Top IF

7 The Modular Operators Modular operators restructure a design, presumably into a more modular form –inversion: lift local decision to visible module independence via duplication --> design rule –substitution: replace one module impl w/ improved classic Parnas motivation for modularity –split: break a module into two sub-modules –augmentation: add a new module to system also exclusion: remove module from system –port: move module to another system generalize and build system-specific adapters “Top” created by all except exlcusion!

8 The Value of Modularity Modularity not only accommodates change It encourages innovation by decentralizing decision making on hidden modules Technically, it creates the option for third parties to innovate on a module –Parties compete to create a better module –A few “experiments” likely to create superior module whose value to users exceeds cost of experiments; downside minimal because can keep old Cluster of innovators emerge around architecture, resulting in new industry

9 The Value of Splitting Where j is number of modules: V j = S 0 +  i E(X + i ) under normal distribution: E(X + i ) =.3989  (N/j) 1/2 Collect terms, set S 0 to 0: V j = j 1/2 V 1 A system of 25 modules likely has 5 times the value of a monolithic system

10 The Value of Substitution Where k is number of “experiments”: V k = Q(k) V 1 Assuming a normal distribution: Q(k) = k   z[N(z)] k-1 n(z)dz “Simplifying”, we get: V k = ck 1/2 V 1 Combining with splitting: V j,k = c j 1/2 k 1/2 V 1,1 Computing the Net Option Value of a module requires incorporating the costs of experimentation and picking the best module. Cost effectiveness depends on holding right number of experiments and on local module tests (e.g., size, speed, cost of module) as opposed to system tests. Computing the Net Option Value of a module requires incorporating the costs of experimentation and picking the best module. Cost effectiveness depends on holding right number of experiments and on local module tests (e.g., size, speed, cost of module) as opposed to system tests.

11 main Common’s Extension Hierarchy words mgmt IconOutputInput count output-entry parse next-wordtop-words top stringsintegers files Extension hierarchy reveals what augmentations and exclusions will be affordable