Different approaches to software design

643 views 46 slides Jun 10, 2019
Slide 1
Slide 1 of 46
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46

About This Presentation

Detail Description of Software Design


Slide Content

E-Content
on
Software Engineering
Lesson One : Definition and Activities
Lesson Two : Software Design Principles
Lesson Three : Software Design Consideration
Lesson Four : Software Design Process
Developed by
Dr. Sandeep Kumar Nayak

The business process engineering hierarchy:

Software DesignSoftware Design:
•Software Design is a transformation of user requirement with
reference to the SRS document into design documents which
are appropriate for implementation using programming
language.

Software DesignSoftware Design:
•Two activities are performed in software design:
•Preliminary Design
Identification various modules
Relationship among modules
Various interface designing
Output is software architecture using notational diagram
•Detailed Design.
Data structure designing
Algorithms designing
Output is the module specification document

Software DesignSoftware Design:
•It is of two types:
•Function Oriented
•Problem can be viewed as a set of function.
•Most of the functions share global data.
•Object Oriented
•Problem can be viewed as a collection of objects
•Data is hidden and can not be accessed by external functions.

Software DesignSoftware Design:
Characteristics of good software design:
•Correctness
•Understandability
•Efficiency
•Maintainability

Software Design Tool: Software Design Tool: Data Flow Diagram (DFD) Data Flow Diagram (DFD) ::
•Types of DFD
•Logical DFD
•Physical DFD
•DFD Components

Software Design Tool: Data Flow Diagram (DFD) :
•Levels of DFD
•Level 0
Show entire system in one diagram with high level
abstraction.
•Level 1
Show the basic modules of the system with data
flow among them.
•Level 2
elaborate all the modules with data flow between,
inside the modules and data store.

Software Design Tool: Structure Charts
•It derived from the DFD and it more elaborative at lower level
module

Software Design Tool: HIPO Diagram
•It shows the modules hierarchy of system.
•It shows the flow of data and control in a module.

Software Design Tool: Entity-Relationship Model
•It shows the entities and their relationship.

•Modularization
•It follows divide and conquer rule.
•Software system divides into various independent
module.
•Advantage of modularization:
•Modules can be reused.
•Easy maintenance.
•Abstraction can be achieved easily.
•Concurrent processing of module can possible.

•Concurrency
•Ability to execute more than one module in parallel
to each other
•Identify modules which can be executed in parallel.
•Design Verification
•Detection of mistake and missing.
•Structured verification approach for verification

•Software Design Complexity
•Halstead's Complexity Measures
•Cyclomatic Complexity Measures
•Function Point

Object Oriented Design : Process Flow :

Object Oriented Design : UML diagrams :
•This diagram captures the five view of a system.
User’s View
Use case Diagram
Structural View
Class Diagram
Object Diagram
Behavioral View
Sequence Diagram
Collaboration Diagram
State Chart Diagram
Activity Diagram
Implementation View
Component Diagram
Employment View
Deployment Diagram

•Class Diagram
•Object Diagram

•Sequence
Diagram
•Collaboration
Diagram

•State Chart
Diagram
•Activity
Diagram

•Component
Diagram
•Deployment
Diagram

•Alternative approaches should be considered to avoid
tunnel vision.
•Design should be mapped with the requirements.
•The gap between design and problem should be
minimum.
•Uniformity should be exist in the design.
•Changes can be accommodate by the design
whenever required.

•To avoid inconsistency, ambiguity and omissions,
design should be reviewed.
•Quality of design should be exist and maintain after
development.
•Design is not a coding.
•For occurring any unexpected situation, design
should be structured to degrade gently

•Translating the analysis model into a software design

•Translating the Object Oriented analysis model into a
software design

•Abstraction:
procedural abstraction, data abstraction and Control
abstraction
•Refinement:
process of elaboration
•Modularity:
Modular decomposability, Modular composability,
Modular understandability, Modular continuity and Modular
protection

•Software Architecture;
Structural properties, Extra-functional properties and
Families of related systems
•Control Hierarchy:
Levels of control (depth) , overall span of control (width),
Fan-out, Fan-in, superordinate, subordinate, visibility and
connectivity
•Structural Partitioning
Horizontal partitioning and Vertical partitioning

•Data Structure
logical relationship among individual elements of data
•Software Procedure
Details (data organization, structure, repetitive operation,
sequence of events, and exact decision points) of processing of
procured should be defined correctly.
•Information Hiding
Non relevant information should not be accessible among the
modules

•functional independence
Error isolation, Scope of reuse, Understandability

Cohesion:
•Coincidental cohesion: performs a set of tasks that relate to
each other very loosely
•Logical cohesion: elements of the module perform similar
operations
•Temporal cohesion: all the functions must be executed in the
same time span
•Procedural cohesion: set of functions of the module are all part
of a procedure

Cohesion:
•Communicational cohesion: all functions of the module refer to
or update the same data structure
•Sequential cohesion: elements of a module form the parts of
sequence
•Functional cohesion: different elements of a module cooperate
to achieve a single function

Coupling
•Data coupling: two modules are communicated using
parameters.
•Stamp coupling: two module are communicated using
composite data items
•Control coupling: execution of second module depend on the
data of one module
•Common coupling: share global data between two modules
•Content coupling: share code between two modules

•Data Design
Transformation of information model into data
structures which are essential in the implementation.
•Architectural design
Describes the design patterns, relationship between
elements and the rules.
•Interface design
Defines the communication between humans and the
software.
•Component-level design
Defines the procedural description of elements of the
software architecture.

Data Design:
•Data Modeling,
•Data Structures,
•Databases,
•Data Warehouse

Architectural Design Patterns
•Data-centered architectures

Architectural Design Patterns
•Data-flow architectures

Architectural Design Patterns
•Layered architectures

USER INTERFACE DESIGN : Characteristics of good user interface
design
•Speed of learning
•Speed of use
•Speed of recall
•Error prevention
•Attractiveness
•Consistency
•Feedback
•Support for multiple skill levels
•Error recovery (undo facility)
•User guidance and on-line help

Types of User Interface Design:
It can be designed into the following three categories:
• Command language based interfaces
A command language-based interface is designed unique
names to the different commands.
• Menu-based interfaces
A menu-based interface is designed using menu selection through
pointing device with least typing effort
• Direct manipulation interfaces
Direct manipulation interface is designed in the form of visual
models.

User Interface Design: Evaluation

User Interface Design: Process
•User, task, and environment analysis and modeling
•Interface design
•Interface construction
•Interface validation

COMPONENT-LEVEL DESIGN : Flow Chart

Component-level design : Box diagram

Component-level design : Decision table

Component-level design :Resultant Decision table

Thank You