Dr. Raj Singh
Dr. Raj Singh
Raj Singh
What is Software Design concepts Design Software Software
design? considerations Modeling development
challenges
2
A process of implementing software
solutions to one or more set of problems.
3
A process of converting the software requirements analysis (SRA) to list of
specifications used for software development to solve problem/s.
flow chart
Specifications could be as simple as UML diagram
The main difference between software analysis and design is that the
output of a software analysis consist of smaller problems to solve.
4
Similar action but different output
5
The design concepts are a foundation from which more sophisticated
methods can be applied.
6
Modularity Software Architecture
Software architecture is divided into Overall structure of the software.
components called modules. A good architecture will yield to good
quality product.
Effectiveness is measured in terms of
performance, quality, schedule and cost.
7
Hierarchy Structural Partitioning
A program structure that represents the The program structure can be divided both
organization of a program component. horizontally and vertically.
Horizontal partitions define separate
branches of modular hierarchy.
Vertical partitioning suggests that control
and work should be distributed top down.
8
Data Structure Software Procedure Information Hiding
It is a representation of the It focuses on the processing of Hide the implementation
logical relationship among each modules individually details.
individual elements of data.
9
There are many aspects to consider in the design of a piece of software
based on the goals the software. Some of these aspects are:
10
A measure of how easily bug fixes or functional
modifications can be accomplished. High
Maintainability maintainability can be the product of
modularity and extensibility.
11
It can be reused in other application
Reusability and can be extended easily.
12
User friendly and self explanatory.
Usability Default values for the parameters.
13
Software models are used to represent software design.
15
Software is
16
Requirements change
• Users needs and expectations change over the time
• Software use reveals limitations and flaws
• Desire for increased convenience, functionality
• Desire for increased performance
Environment change
• Hardware, OS, software packages (“software rot”)
• Need to interact with clients, parent org., etc.
• Law and regulations change
• Ways of doing business
• Style, “cool” factor, new trends
17
Resources Organizational changes Technology constraints
Time, budget, expertise People, goals, mergers and Operating system, software
acquisitions language, framework, database,
security, ever changing
technology, innovations
18
You write code based on what you know
deadline?
19
Change is inevitable
No surprises
Feedback is critical
20
A good design leads to a good product.
21
Review class notes. Research software Start a discussion on Google
development methodologies Groups to clarify your doubts.
and practices.
22