Transcript

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

top related