On the Criteria To Be Used in Decomposing Systems into Modules

Slides:



Advertisements
Similar presentations
The Modular Structure of Complex Systems Team 3 Nupur Choudhary Aparna Nanjappa Mark Zeits.
Advertisements

Chapter 3: Modules, Hierarchy Charts, and Documentation
Communication between modules, cohesion and coupling
CIT 590 Intro to Programming Lecture 2. Agenda ints, floats, strings, booleans Conditionals Loops Functions Testing The concept of scope.
What is Software Design?  Introduction  Software design consists of two components, modular design and packaging.  Modular design is the decomposition.
Contributions of Dr. David Parnas to the Development of Software Engineering Background History of Computer Technology Career of David Parnas Areas of.
On the Criteria to Be Used in Decomposing Systems into Modules Written by D.L. Parnas Presented by Conner Hansen.
Designing Software for Ease of Extension and Contraction
1 SOFTWARE DESIGN QUALITY COHESION and COUPLING (Part I)
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
Lecture 6: Modularization
On the Criteria to Be Used in Decomposing Systems into Modules Group 1: Lisa Anthony, Erik Hayes, Luiza Helena da Silva, and Diana Tetelman.
The Modular Structure of Complex Systems D.L. Parnas, P.C. Clement, and D.M. Weiss Published in IEEE Transactions on Software Engineering, March 1985 Presented.
03 - ParnasCSC4071 A Sketchy Evolution of Software Design 1960s –Structured Programming (“Goto Considered Harmful”, E.W.Dijkstra) Emerged from considerations.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system design 1 what is systems design? preparation of the system’s specifications with.
1 On the Criteria To Be Used in Decomposing Systems into Modules by D.L.Parnas Dec presented by Yuanhua Qu for spring 2003 CS5391.
On the Criteria to Be Used in Decomposing Systems into Modules Team 3 Nupur Choudhary Aparna Nanjappa Mark Zeits.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
SOFTWARE DESIGN.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Key Principles of Software Architecture and Design (I) adapted from Dave Penny’s.
Some Software Engineering Principles by D. L. Parnas Presented by Team 7: Amitkumar Dhameja Cincy Francis Rong Gu CS575 - Software Design, Team 7.
SE: CHAPTER 7 Writing The Program
Subprograms CE 311 K - Introduction to Computer Methods Daene C. McKinney.
Systems analysis and design, 6th edition Dennis, wixom, and roth
Design Concepts By Deepika Chaudhary.
INF 212 Modularity Instructors: Crista Lopes Copyright © Instructors.
Sanchez and Mahoney (1996). Modularity, flexibility, and knowledge management in product and organization design. SMJ.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Designing Abstract Interfaces for Device Independency Designing Abstract Interfaces for Device Independency Review of A Procedure for Designing Abstract.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
“Architecture” The outcome of top-level design, reflecting principal design decisions Can (and should) be modified and updated Analogous to architecture.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
Presentation on Database management Submitted To: Prof: Rutvi Sarang Submitted By: Dharmishtha A. Baria Roll:No:1(sem-3)
CIT 590 Intro to Programming Lecture 2. Agenda ‘import’ Abstraction Functions Testing The concept of scope.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
SOFTWARE DESIGN & SOFTWARE ENGINEERING Software design is a process in which data, program structure, interface and their details are represented by well.
Further Modularization, Cohesion, and Coupling. Simple Program Design, Fourth Edition Chapter 9 2 Objectives In this chapter you will be able to: Further.
CIS 365: Visual Application Development Introduction to Computers and Programming.
7. Modular and structured design
On the Criteria to Be Used in Decomposing Systems into Modules
System Design and Modeling
System Design.
Basic Concepts in Software Design
Prepared by Charlie Meyer, May 2009
Unit# 9: Computer Program Development
Problem Solving Techniques
(Course Introduction)
Qbasic Modular Programming.
CSE 403: Notkin #2 of 3 on software change
Chapter 14 Sorting and Merging.
Global Challenge Night Sensor Lesson 2.
Global Challenge Night Sensor Lesson 2.
On the Criteria To Be Used in Decomposing Systems into Modules D. L
Global Challenge Night Sensor Lesson 2.
Global Challenge Night Sensor Lesson 2.
Software Fundamentals
Global Challenge Night Sensor Lesson 2.
Authors: Barry Smyth, Mark T. Keane, Padraig Cunningham
Global Challenge Night Sensor Lesson 2.
Modules Programmers break programming problems down into smaller, reasonable units called modules, subroutines, procedures, functions, or methods When.
Global Challenge Night Sensor Lesson 2.
Global Challenge Night Sensor Lesson 2.
What Is Good Software(Program)?
IT323 Project Phase#2.
Communication between modules, cohesion and coupling
Global Challenge Night Sensor Lesson 2.
Global Challenge Night Sensor Lesson 2.
Module Structure David Parnas Discusses “modularization”
Presentation transcript:

On the Criteria To Be Used in Decomposing Systems into Modules D.L. Parnas Carnegie-Mellon University

MODULARIZATION What is modularization ? Decomposing a system into smaller independent segments that have their own well defined inputs and outputs. These segments are generally called as Modules and the process of this segmentation is called Modularization. Why is it required ? Managerial Product flexibility Comprehension

CRITERIA Based on every major step in the program Flowchart Suitable for small systems Based on Information hiding Design decisions Hides knowledge from others Independent from each other

SPECIFIC CRITERIAS Few examples of specific modules that are advisable Data structures, its access and modifying procedures The call to a routine and the routine itself Formats of control blocks Character codes, alphabetic orderings and similar data The sequence in which certain items will be processed Note: Decomposition is not the same as hierarchical structure.

CONCLUSION The criteria for decomposing a program must be based on information hiding and design decisions rather than flow of procedure and major actions. This enables the programmers to change the functionality of the program by changing the respective module and not rewriting parts of modules that rely on that functionality. The processes of integration, testing and maintainability are simplified

Discussion Do you agree with the author ? Any other criteria for decomposition ? Importance of hierarchy while decomposing Examples of bad decomposition