0% found this document useful (0 votes)
62 views35 pages

Software Design PDF

Uploaded by

nagarajuvcc123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views35 pages

Software Design PDF

Uploaded by

nagarajuvcc123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

Nature of Software Design

What is design?
The role of design activity
Design as a problem solving activity
Design as a wicked problem

What is design
Design is a set of activities that need to be
performed by the designer in deriving and
specifying a solution to a problem
Design is a set of activities that need to be
performed by the designer to produce a
workable solution
There is an order or sequence to these actions
There may be more than one possible solution
for a given problem
The fitness of the solution is measured by the
correctness or appropriateness of that solution

A model of the design process


Clarify
Nature of
Requirements

Req
Specific
ation

External
Require
ments

Build a black box


Model of
problem
Functional
specification

Postullate
White box
Design
solution

Functional
specification

List of
mismatches

White box
model

Validate
Solution
By
prototype

Implementation
Of design plan
Using a s/w

The design process consists mainly 4 activities

Postulate a solution
Build a model of the solution
Evaluate the model against original requirements
Elaborate the model to produce to produce a detailed
specification of the solution

The nature of the design process


The design process will not be implemented in a single
precise sequence
The design process is iterative in nature
The design process contains the extensive
backtracking

Moving House Example


The following parameters will be considered while
moving to a new house

Plan
Initial model
Strategies
Constraints
Modularity
Quality
Reuse

Even the same set of parameters will be considered for


designing a solution to a problem

The Role of Design Activity


The main task of design activity is to produce the plans
necessary for s/w production to proceed
The form and extent of the plans will be determined by the
design practices, means of implementation and size of the
system being developed
The plans will be concerned with describing

Structure of the system including sub programs


Data objects to be used in the system
The algorithms to be used
Packaging of the system
Interactions between the components
Designing process
Viewpoints (E-R,DFD,STD)

The plan should even specify how the final product is to be


assembled by making use of components

Channels of Communication of Designer


Designer derives plans by making use of 3 resources
Requirements
specification
Designer

Plans for
Realization of the
design
Constraints

Domain knowledge

Design as a Problem Solving Process


The purpose of the design is simply to produce a
solution to a problem
The final solution should fulfill the ultimate
requirement i.e. it should work and do the required
job apart from the other factors like size, speed, ease
of adoption, look &feel
Designer gets help from number of tools like design
methods ,design patterns, representations while
designing the solution
Even abstraction plays very important role while
developing the solutions for large and complex systems

Design as a Wicked Problem


A wicked problem can be considered to be
symptom of another problem
Every wicked problem is essentially unique
Wicked problems do not have an enumerable set of
potential solutions
Wicked problem have no stopping rule
Solutions to wicked problems are not true or false, but
good or bad

Even the same strategy will be applicable to the


s/w design

The Software Design Process


Designer Formulates and Develops an Abstract
Design Model Representative of the Solution
Why is This Process Not Understood as Well as
Other Forms of Design?
The Complexity of Software
The Problem of Conformity
The (Apparent) Ease of Changeability
The Invisibility of Software

Phases of software design process


Requirements
Specification
Architectural
design decisions

Logical design
details
Detailed
design
decisions

Physical design
details

Transferring Design Knowledge


Codifying and exchanging experiences about the processes involved in
design and resulting design features that have proved effectively gaining
design knowledge.

The characteristics of an exceptional designer:


Familiarity with application domain
1)Familiarity with the application domain
2)Skill in communicating technical vision to other project
members.
3)Identification with project performance
Skill in communicating
Technical vision to others

Identification with
Project performance

Other Parameters In Gaining Design Knowledge

Design methods
Design patterns
The process part
The representation part
Heuristics
Verification and validation operations
Quality measures
Identification of certain constraints

Design Constraints
Designing Software is Rarely an Unconstrained
Process
Examples of Constraints
Programming Language to be Used
Execution Environment or Operating System
Performance Expectations
User Interface Needs

Recording design decisions


The need to record the design decisions from the
viewpoint of design and maintenance tasks
The design and maintenance can be extended and
modified by making use of design decisions
Quality control is the main intension to record the
design decisions
Benefits to the new members of design and
maintenance teams
Generally design decisions are represented through
the diagrams or other notation

Designing with others


We need to consider some parameters while
designing a solution to problem
Social
Organizational
Economical
Political

Role of Software Design


Question
What exactly is the purpose of Design?

Answer
To produce a workable (implementable) solution
to a given problem.

Fitness for Purpose


The Key Measure of the Appropriateness of Any
Solution

Design Problem-solving Approach


Is There Only One Solution to a Problem?
RarelyAlmost Never
Moving House Example

Is There a Systematic Approach to Design?


No, a Designer Must Create Each System
Identify the Properties Required
Stake Holders (Customer, Users, etc.)

Devise a Structure That Possesses the Properties

What Can a Designer Use in This Effort?

Design Main Characteristics


Main Characteristics Found in Almost All
Design Problems
No Single Right Solution
Many Factors and Constraints to be Balanced in
Choosing a Solution
No One Measure of Quality
No Particular Process That Can Ensure That We
Can Even Identify an Acceptable Solution

Software Design Process


Designer Formulates and Develops an Abstract
Design Model Representative of the Solution
Why is This Process Not Understood as Well as
Other Forms of Design?
The Complexity of Software
The Problem of Conformity
The (Apparent) Ease of Changeability
The Invisibility of Software

Gaps in Domain Knowledge


Software Design Method
Used When a Designer Lacks Experience or is
Unfamiliar With the Problem to be Solved
Limited to Forms of Design Practice That Can be
Prescribed in a Procedural Manner

These Methods Provide


A Representation Part
A Process Part
A Set of Heuristics

Design Constraints
Designing Software is Rarely an Unconstrained
Process
Examples of Constraints
Programming Language to be Used
Execution Environment or Operating System
Performance Expectations
User Interface Needs

Design in the Software Development Cycle


Constraints Affect the Design Process and the
Form of the Product
Set of User Needs to be Met
Fitness of Purpose
Requirements Elicitation and Analysis
Leads to Identifying Inconsistencies Between the
Requirements and the Solution

Designer Must Think Ahead


Short Term Use, Long Maintenance Effort, Stability
of the Solution Space, etc.

Design Qualities
Fitness of Purpose Doesnt Provide an
Absolute Measure of Quality
Correct and Within Constraints May Not be
Enough to Achieve Fitness of Purpose

Quality Factor ilities


Reliability
Efficiency
Maintainability
Usability

Assessing Design Quality


A Systematic Form of Measurement is Difficult
to Achieve
Favorable Assessment Techniques
Design Walk-through Meetings
Reviews
Refactoring (XP)

How Often?

Representing abstract ideas


Abstraction plays an important role in the design process
The designer needs ways to represent abstract ideas
about the problem models, design objects and about the
various relationships that will exist between these
A representation is used for mainly 3 purposes
To capture the designers ideas for a solution
Explaining the designer ideas to others
Checking for consistency

Representations can be associated with the problem


models ,solution forms and process forms

Viewpoints
Viewpoint is defined as a projection of the design model
Different viewpoints encompass design model
A representation ca be used to represent the attributes
or characteristics of the viewpoints
Basically 4 viewpoints are available

Constructional forms
Behavioral forms
Functional forms
Data modeling forms

Constructional forms
Concerned with static aspects of the system ,Files of data,
header files, data in the form of HTML&XML threads, and
packaging constructs.
Concerned with relationships and dependencies among
elements

Behavioral forms
Concerned with the causal links between events and
system responses during execution
Example is finite state machine

Functional forms
Concerned with description of functionality
Behavior of program elements i.e. subprograms

Data modeling forms


Modeling of data structures
These include Type ,sequence, and form
Concerned with data objects within the system and
relationships among them

Describing Designs
Recording the Design Model: Design
Viewpoints
Design Representation Forms
Some Examples of Design Representations

Design Viewpoints
Behavior
Describing the Causal Links Between External Events and
System Activities During Execution

Functional
Describing What the System Does

Structural
Describing the Interdependencies of the Constructional
Components

Data Modelling
Describing the Relationships that Exist Between the Data
Objects Used

Design Representation
Forms of Design Representation
Textual
Diagrammatical
Mathematical

Examples
State Charts
Data Flow Diagram (DFD)
Entity Relationship Diagram (ERD)

Current Design Representations


UML Diagrams
Class
Use Case
Collaboration
Sequence
State chart
Component
Activity
* http://atlas.kennesaw.edu/~dbraun/csis4650/A&D/UML_tutorial/index.htm

Software Design Practices and Design


Methods
Major Problem with Teaching Software Design is Scale
Roles for Software Design Methods
Establishing Common Goals and Styles
Generating Consistent Documentation
Assist With Future Maintenance
Recapture the Original Design Model

Helping Make Some Features of a Problem More Explicit

Constraints That Limit Their Usefulness


The Process Part of a Method Provides Relatively Little Detailed
Guidance as to How a Problem Should be Solved
The Need to Use a Procedural Form Leads to Practices That Conflict
with the Behavior Observed in Experienced Designers

Design Strategies
Top-down
Separate a Large Problem into Smaller Ones

Compositional
Identifies a Set of Entities That Can be Modeled and
Then Assembled to Create a Model for the Complete
Solution

Organizational
Use Where Development Organization and Management
Structures Impose Constraints Upon the Design Process

Template
Used Where Some General Paradigm Describes a
Reasonably Large Domain of Problems

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy