the structure and value of modularity in software design

12
The Structure and Value of Modularity in Software Design Written by Kevin J. Sullivan, William G. Griswold, Yuanfang Cai Presented by Meltem Yıldırım CmpE-550 / 7.12.2005

Upload: cicada

Post on 14-Jan-2016

36 views

Category:

Documents


0 download

DESCRIPTION

The Structure and Value of Modularity in Software Design. Written by Kevin J. Sullivan, William G. Griswold, Yuanfang Cai Presented by Meltem Yıldırım. CmpE-550 / 7.12.2005. Outline. General Terms Modularity Information Hiding Value of Modularity Motivation of the Paper - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: The Structure and Value of Modularity in Software Design

The Structure and Value of Modularity in Software Design

Written by Kevin J. Sullivan, William G. Griswold, Yuanfang Cai

Presented byMeltem Yıldırım

CmpE-550 / 7.12.2005

Page 2: The Structure and Value of Modularity in Software Design

Outline

General TermsModularityInformation HidingValue of Modularity

Motivation of the PaperBaldwin & Clark’s Theory

DSMNOV

Contribution of the PaperConclusion

Page 3: The Structure and Value of Modularity in Software Design

General Terms

Modularity: the characteristic of a system that has been divided into smaller subsystems which interact with eachotherInformation Hiding: hiding details of an object or function so that each module has the information just needed by it

Parnas introduced information hiding in 1972case study comparing the changeability of two versions of KWIC (Key Words in Context)Hide the design decisions, which are most likely to change, from other parts of the system

Value of Modularization: the benefits obtained by exercising a specific modularization solution

Page 4: The Structure and Value of Modularity in Software Design

Motivation

We need a model to assess the relative values of alternative modularizations for the same system

Which of the available modularizations is the best for a given system?

Augment Parnas’s work

Explore the potential of Baldwin & Clark’s Theory (2000)

“Design is a value seeking process”

DSM (Design Structure Matrix)

NOV (Net Options Value)

Page 5: The Structure and Value of Modularity in Software Design

Design Structure Matrix (DSM)

A B C

A

B X X

C X

Design space to be searched for valuable designs

Design Parameters: A, B, C

For modularity, dependencies across proto-modules must be broken by splitting

Other operators:SubstitutionAugmentationExclusionInversionPorting

Proto-modules

I A B C

I

A X

B X X

C X

B depends on A

Design Parameters:Data structuresAlgorithmsUser interface look-and-feelSecurity aspectsPower Usage…

Page 6: The Structure and Value of Modularity in Software Design

Net Options Value (NOV)

Mathematical model for evaluating designs

General expression for NOV of a modular design:

V = S0 + NOV1 + NOV2 + … + NOVn (1)

NOVi = maxki {σini1/2 Q(ki) – Ci(ni)ki - Zi} (2)

Zi = Σj-sees-icinj (3)

Total Value of the

System

Value of the Unmodularized

System

NOVs of the Individual ModulesNOV of the ith

Module Cost incurred in ki experiments

Expected Benefit

Visibility Cost of Replacing the ith Module

Redesign Cost

all j modules that see the ith module

Complexity of the jth module

Page 7: The Structure and Value of Modularity in Software Design

Contribution

Evaluate the applicability of Baldwin & Clark’s theory to inform software design

EDSM: extended DSM to also model environment variables which cannot be controlled by the designer

Case studyDSM-based analysis of KWIC

EDSM-based analysis of KWIC

NOV-based analysis of KWIC

Computer Configuration (device capacity, speed)

Corpus Properties (input size, language)

User Profile (experienced or not, interactive or offline)

Page 8: The Structure and Value of Modularity in Software Design

EDSM for strawman modularization

X Y Z A D G J B E H K C F I L M

X – Computer .

Y – Corpus X . X

Z – User X .

A – Input Type .

D – Circ Type .

G – Alph Type .

J – Out Type .

B – Input Data X X . X X

E – Circ Data X X X . X

H – Alph Data X X X X .

K – Out Data X X .

C – Input Alg X X X X .

F – Circ Alg X X X X X .

I – Alph Alg X X X X X X X .

L – Out Alg X X X X X X .

M - Master X X X X X .

EDSM for proto-modular design

X Y Z A B C D E F G H I J K L M

X – Computer .

Y – Corpus X . X

Z – User X .

A – Input Type . X

B – Input Data X X X . X X X X X X

C – Input Alg X X X X .

D – Circ Type . X

E – Circ Data X X X X . X X X

F – Circ Alg X X X X X .

G – Alph Type . X

H – Alph Data X X X X X . X X

I – Alph Alg X X X X X X X .

J – Out Type . X

K – Out Data X X X . X

L – Out Alg X X X X X X .

M - Master X X X X X .

EDSM for information-hiding modularization

X Y Z N A D G J O P B C E F H I K L M

X – Computer .

Y – Corpus X . X

Z – User X .

N – Line Type .

A – Input Type .

D – Circ Type .

G – Alph Type .

J – Out Type .

O – Line Data X X X . X

P – Line Alg X X X X .

B – Input Data X X X . X

C – Input Alg X X X X X .

E – Circ Data X X X X . X

F – Circ Alg X X X X X .

H – Alph Data X X X X . X

I – Alph Alg X X X X X X .

K – Out Data X X X . X

L – Out Alg X X X X X .

M - Master X X X X X X .

Page 9: The Structure and Value of Modularity in Software Design

NOV Analysis of KWIC

V for strawman design = 0.26

V for proto-modular design = 1

V for information-hiding design = 1.56

x 6

Page 10: The Structure and Value of Modularity in Software Design

Conclusion

EDSMs have the potential tomodel the software and its environment

capture Parnas’ information hiding criterion

Compare different modularizations

NOV formula provides a quantitative value for good modular design

Information-hiding design is superior to strawman design

Page 11: The Structure and Value of Modularity in Software Design

Questions?

Page 12: The Structure and Value of Modularity in Software Design

My Opinion

The process of splitting modules so that they do not affect each other makes sense

Case study: KWICIt is not clear what the modules are, how they are chosen and how they are manipulated

Scalability is questionable, may be hard to utilize in practice because commercial applications are far more complex than KWIC

The use of “Hierarchy Diagrams” in designing large systems may be beneficial