Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Design.

Similar presentations


Presentation on theme: "Software Design."— Presentation transcript:

1 Software Design

2 Software design Deals with transforming the customer requirements, as described in the SRS document, into a form that is implementable using a programming language The following items must be designed during design phase: Different modules required to implement the design solution Control relationship among the identified modules Interface among different modules Data structures of the individual modules Algorithms required to implement the individual modules

3 Two design activities Preliminary (or high level) design
Identification of different modules, the control relationships and the definitions of the interfaces among them Outcome of this activity is called program structure or s/w architecture Structure chart Detailed design The data structure and algorithms of the different modules are designed Outcome of the detailed design stage is known as module specification document

4 How to distinguish a good s/w design from a bad one?
Goodness is dependent on the targeted application The notion of good design varies Desirable characteristics: Correctness Understandability Efficiency maintainablility

5 Modularity Decomposition of a problem into modules facilitates design
If different modules are independent of each other, then each module can be understood separately Reduces complexity of the design solution Modules should be cleanly decomposed They should be arranged in a neat hierarchy

6 Clean decomposition Modules should display high cohesion and low coupling Modules are more or less independent of each other

7 Neat arrangement Characterized by: Layered solution Low fan-out and
Abstraction

8 Cohesion & Coupling Primary characteristics of a neat module decomposition are high cohesion and low coupling- then it is functionally independent of other modules Cohesion: measure of the functional strength of a module Coupling between two modules: measure of the degree of interdependence or interaction between them

9 Functional independence
A module having high cohesion and low coupling is said to be functionally independent of other modules Functional independence means that a cohesive module performs a single task or function A functionally independent module has minimal interaction with other modules.

10 Functional independence
FI is key to any good design due to: Error isolation Scope for reuse Understandability


Download ppt "Software Design."

Similar presentations


Ads by Google