Software Modules in Software Design

Slides:



Advertisements
Similar presentations
Lecture 6: Software Design (Part I)
Advertisements

Software Design Fundamentals
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Partitioning and Divide-and-Conquer Strategies Data partitioning (or Domain decomposition) Functional decomposition.
Structured Design. 2 Design Quality – Simplicity “There are two ways of constructing a software design: One is to make it so simple that there are obviously.
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
1 SOFTWARE DESIGN QUALITY COHESION and COUPLING (Part II)
Lesson 4 McManus COP  Pointers  Modules & Functions  Cohesion & Coupling  Local & Global Variables  Parameters  Variable Names & Data Dictionaries.
Slide 7A.1 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
What is Software Design?  Introduction  Software design consists of two components, modular design and packaging.  Modular design is the decomposition.
Copyright Irwin/McGraw-Hill Software Design Prepared by Kevin C. Dittman for Systems Analysis & Design Methods 4ed by J. L. Whitten & L. D. Bentley.
Concepts of Systems Theory
COMS W3156: Software Engineering, Fall 2001 Lecture #12: Design, Distributed Objects Janak J Parekh
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.
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
Introduction to Systems CSCI102 - Systems ITCS905 - Systems MCS Systems.
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
What Is Object-Oriented Design? (Chapter 1). Software Development Life Cycle 1. Problem statement and requirements 2. Solution specification 3. Code design.
Supplement 02 (a)Systems Theory1 Supplement 02 (a) Systems Theory And Franchise Colleges By MANSHA NAWAZ.
System Design Decomposing the System. Sequence diagram changes UML 2.x specifications tells that Sequence diagrams now support if-conditions, loops and.
System Analysis & Design
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Engineering Design Resolution & Design Principles.
Systems Analysis and Design in a Changing World, Fifth Edition
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
04 - Structured DesignCSC4071 Structured Design –Fundamentals of a Discipline of Computer Program and Systems Design Edward Yourdon / Larry L. Constantine.
SOFTWARE DESIGN.
SYSTEM ANALYSIS AND DESIGN 1. Topics to include.. WHAT IS SAD? NEED FOR SAD ROLE OF THE SYSTEM ANALYST QUALITIES OF SYSTEM CHARACTERISTICS FEASIBILITY.
SOFTWARE DESIGN Design Concepts Design is a meaningful engineering representation of something that is to be built It can be traced to a customer’s requirements.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Software Design Process A solution to satisfy the requirements ◦ Design process and methods ◦ Design strategies including object-oriented design and functional.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
System Implementation
Chapter 13 Design Concepts and Principles Software Engineering: A Practitioner's Approach, 5/e.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
Computing and SE II Chapter 9: Design Methods and Design Models Er-Yu Ding Software Institute, NJU.
CS540 Software Design Lecture 3 & 4 1 Lecture 3 & 4: Modularity, Coupling, Cohesion and Abstraction Anita S. Malik Adapted from Schach.
1 CMPT 275 High Level Design Phase Modularization.
Learners Support Publications Object Oriented Programming.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Internet and Intranet Protocols and Applications Lecture 5a: HTTP Client-Server Design and Implementation February 15, 2005 Arthur Goldberg Computer Science.
Design and Planning Or: What’s the next thing we should do for our project?
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Or how to work smarter when building solutions.  2:30 – 3:30 Mondays – focus on problem solving (with some terminology thrown in upon occasion)  All.
How Are Computers Programmed? CPS120: Introduction to Computer Science Lecture 5.
The Software Development Life Cycle: An Overview
Systems Design.  Application Design  User Interface Design  Database Design.
ANU comp2110 Software Design lecture 10 COMP2110 Software Design in 2004 lecture 10 Software Architecture 2 of 2 design lecture 5 of 6 Goal of this small.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Key Principles of Software Architecture and Design (II) adapted from Dave Penny’s.
1-1 © Prentice Hall, 2004 Chapter 1: The Object-Oriented Systems Development Environment Object-Oriented Systems Analysis and Design Joey F. George, Dinesh.
Unit 1 Object-Oriented Design Concepts. Key Concepts Development methodologies Classes and objects Attributes and methods Inheritance and polymorphism.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
11 Systems Analysis and Design in a Changing World, Fifth Edition.
Software Design.
CompSci 280 S Introduction to Software Development
Coupling and Cohesion Rajni Bhalla.
Lecture 9- Design Concepts and Principles
SDC – SDLC integration.
Software Design Mr. Manoj Kumar Kar.
SOFTWARE DESIGN AND ARCHITECTURE
The Object Oriented Approach to Design
CIS 375 Bruce R. Maxim UM-Dearborn
CS223: Software Engineering
Lecture 9- Design Concepts and Principles
Software Design Lecture : 8
John D. McGregor Module 6 Session 1 More Design
What Is Good Software(Program)?
Software Design Lecture : 6
DESIGN CONCEPTS AND PRINCIPLES
Presentation transcript:

Software Modules in Software Design

What is a Module? “A set of one or more contiguous program statements having a name by which other parts of the system can invoke it, and preferably having its own distinct set of variable names.” [Stevens, Myers…74]

“A module is a lexically contiguous sequence of program statements, bounded by boundary elements, having an aggregate identifier.” [Yourdon, Constantine 79]

Avantages Decomposition into easily dealt with pieces can abstract call by descriptive naming break up program into system “architecture” reduce complexity that one inspector needs to view when considering a design concept debug by following trail of destruction through interfaces to independent module for repair what properties does a module need to accomplish all this?

Conservation of Complexity Move complexity of singular program module to interfaces between less complex modules hierarchy and decomposition, “divide and conquer” Net complexity is conserved, but it is divided so as to give programmers some leverage?

Cohesion and Coupling (a “system” concept!) the degree of interaction within a module Coupling the degree of interaction between modules

Module Cohesion Informational Functional