SOFTWARE DESIGN
By
Chowdhury Mohammad Ashikur Rahman
WELCOME
TO
THE PRESENTATION ON
1
OVERVIEW
SOFTWARE DESIGN
FUNDAMENTALS
KEY ISSUES IN
SOFTWARE DESIGN
SOFTWARE STRUCTURE &
ARCHITECTURE
USER INTERFACE DESIGN
SOFTWARE DESIGN QUALITY
ANALYSIS & EVALUATION
SOFTWARE DESIGN NOTATIONS
SOFTWARE DESIGN STRATEGIES
& METHODS
SOFTWARE DESIGN TOOLS
2
1.SOFTWARE
DESIGN
FUNDAMENTALS
A Design can be considered
as a form of solving
problems
General Design And Concepts
of
Software Design
Software Design ProcessSoftware Design Principles
3 [swebokv3]
General Design And Concepts of
Software Design
Software Design Process
Architectural design
Detailed design describes the desired
behaviour of these components
Software design principles
Goals, Constraints, Alternatives,
Representation etc.
Coupling & Cohesion;
Decomposition & modularization;
Encapsulation;
Sufficiency, completeness & primitiveness;
Separation of concerns etc.
4 [BUD03][SOM11][PAG99]
2.KEY ISSUES IN
SOFTWARE
DESIGN
RELIABILITY
USABILITY
5 [SWEBOKV3]
OTHER ISSUES
CONCURRENCY
Interaction,
Presentation &
Distribution of
components
Decomposing software into design,
task & deals with efficiency, Atomicity,
scheduling etc.
Concerned with how to handle long-lived data.
Structure & organize interactions with users
along with the Presentation of information.
How to prevent, tolerate, and process errors &
deals with Exceptional conditions.
6 [SOM11][BRO08][ALL08]
3.SOFTWARE STRUCTURE
&
ARCHITECTUE
The set of structures needed
to reason about the system
7[CLE10]
Creational patterns, Structural patterns &
Behavioural patterns.
Creative process. A number of fundamental
Decisions are required during the design.
Logical view vs. process view vs.
physical view vs. development view
General Structures;
Distributed Systems;
Interactive systems;
Adaptable Systems etc.
Reuse of software design &
Components By identifying
the commonalities8
[SOM11][CLE10][GAM94]
4.USER INTERFACE
DESIGN
The user interface should be
Designed to match the skills,
Experience and expectations
Of its anticipated users.
9[SWEBOKV3]
General User Interface
Design principles
User Interface Design
Issues
The design of User
Interaction Modalities
design of information
presentation
User Interface design
process
Localization &
Internationalization
Metaphors & conceptual
Models
There also belong....
10 [SOM11][NIE93]
5. Software Design
Quality Analysis &
Evaluation
Quality attributes
Quality analysis &
evaluation techniques
Measures
Maintainability, Portability, Usability,
Testability etc.
Software design reviews;
Static analysis;
Simulation & prototyping.
Function based & object oriented
11 [BUD03][SOM11]
6.SOFTWARE DESIGN
NOTATIONS
Software design is often
accomplished Using multiple
Notations...
12[SWEBOKV3]
Few words on software design notations....
Notations represent software design artefacts. Some are used to describe
The structural organization of a design & rest others to represent the
Software behaviour. Certain notations are used mostly during architectural
Design. For instance, a email class diagram:
MAIL SYSTEM
AUDIO/
VIDEOCOMMUNICATION
13
[BUD03][SOM11][PAG99][BRO08][CLE10]
7.SOFTWARE
DESIGN
STRATEGIES
&
METHODSGeneral strategies
Function oriented
structured design
Object-oriented design
Data-structured centred
design
Component based design
14 [BUD03][SOM11][BRO08]
8.SOFTWARE DESIGN
TOOLS
15[cle10]
Software designing tools support the part
or whole of the following activities:
To translate the requirements model
Into a design representation.
To provide support for representing
Functional components and their
Interfaces.
To implement heuristics refinement and
Partitioning.
To provide guidelines for quality
Assessment.
16[CLE10]
SUMMARY
Among many software development steps software design is almost the
foremost requirement of Further software construction.
Software design does not ensure or measure the success or failure of A
software but it delivers the whole instruction set to the developers.
It provides the nifty idea of a Complete software construction.
Finally, knowledge of software design might be beneficiary during The
software development which would end up with a successful and
complete software.
17
1. T. DeMarco,”The Paradox of Software Architecture and
Design”, Stevens Prize Lecture, 19902. D. Budgen, Software Design, 2nd ed., Addison-Wesley, 2003
3. I. Sommerville, Software Engineering, 9th ed., Addison-
Wesley, 2011
4. M. Page-Jones, Fundamentals of Object-Oriented Design in
UML, 1st ed., Addision-Wesley, 1990.
5. J.G. Brookshear, Computer Science: An Overview, 10th ed.,
Addison-Wesley, 2008
18
6. J.H. Allen et al., Software Security Engineering: A Guide
for Project Managers, Addison-Wesley, 2008
7. P. Clements et al., Documenting Software Architectures:
Views and Beyond, 2nd ed., Pearson Education, 2010.
8. J. Nielsen, Usability Engineering, Morgon Kaufmann, 1993.
9. Email class diagram: (slide 13)
http://creately.com/diagram/example/h0qvwe791/Class+
Diagram+of+Email+System
10. luiscastellanos.files.wordpress.com/2007/03/swebokv3.pdf
19
THANKS
20