130 likes | 298 Views
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
E N D
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 • Baldwin & Clark’s Theory • DSM • NOV • Contribution of the Paper • Conclusion
General Terms • Modularity: the characteristic of a system that has been divided into smaller subsystems which interact with eachother • Information Hiding: hiding details of an object or function so that each module has the information just needed by it • Parnas introduced information hiding in 1972 • case 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
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)
Proto-modules Design Structure Matrix (DSM) Design space to be searched for valuable designs Design Parameters: A, B, C Design Parameters: Data structures Algorithms User interface look-and-feel Security aspects Power Usage … For modularity, dependencies across proto-modules must be broken by splitting B depends on A Other operators: Substitution Augmentation Exclusion Inversion Porting
NOVs of the Individual Modules 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 NOV of the ith Module Cost incurred in ki experiments Redesign Cost Value of the Unmodularized System Visibility Cost of Replacing the ith Module Expected Benefit Complexity of the jth module all j modules that see the ith module
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 study • DSM-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)
EDSM for strawman modularization EDSM for proto-modular design EDSM for information-hiding modularization
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
Conclusion • EDSMs have the potential to • model 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
My Opinion • The process of splitting modules so that they do not affect each other makes sense • Case study: KWIC • It 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