Software Design Basics Author Jiwaji University
Software Design Basics Author Jiwaji University
Design-notations
Software Design Strategies
Software analysis and design includes all activities, which help the
transformation of requirement specification into implementation.
Requirement specifications specify all functional and non-
functional expectations from the software. These requirement
specifications come in the shape of human readable and
understandable documents, to which a computer has nothing to
do.
Software analysis and design is the intermediate stage, which
helps human-readable requirements to be transformed into
actual code.
Let us see few analysis and design tools used by software
designers:
Data Flow Diagram
Data flow diagram is graphical representation of flow of data in an
information system. It is capable of depicting incoming data flow,
outgoing data flow and stored data. The DFD does not mention
anything about how data flows through the system.
There is a prominent difference between DFD and Flowchart. The
flowchart depicts flow of control in program modules. DFDs
depict flow of data in the system at various levels. DFD does not
contain any control or branch elements.
Types of DFD
Data Flow Diagrams are either Logical or Physical.
Logical DFD - This type of DFD concentrates on the system
process, and flow of data in the system.For example in a
Banking software system, how data is moved between
different entities.
Physical DFD - This type of DFD shows how the data flow is
actually implemented in the system. It is more specific and
close to the implementation.
DFD Components
DFD can represent Source, destination, storage and flow of data
using the following set of components -
module.
Condition - It is represented by small diamond at the base
of module. It depicts that control module can select any of
sub-routine based on some condition.
Conditions/Actions Rules
Shows Connected N N N N Y Y Y Y
Opens Website Y N Y N Y N Y N
Do no action
= Composed of
{} Repetition
() Optional
+ And
[/] Or
Example
Address = House No + (Street / Area) + City + State
Course ID = Course Number + Course Name + Course Level +
Course Grades
Data Elements
Data elements consist of Name and descriptions of Data and
Control Items, Internal or External data stores etc. with the
following details:
Primary Name
Secondary Name (Alias)
Use-case (How and where to use)
Content Description (Notation etc. )
Supplementary Information (preset values, constraints etc.)
Data Store
It stores the information from where the data enters into the
system and exists out of the system. The Data Store may include -
Files
o Internal to software.
o External to software but on the same machine.
o External to software and system, located on different
machine.
Tables
o Naming convention
o Indexing property
Data Processing
There are two types of Data Processing:
Logical: As user sees it
Physical: As software sees it
Principles of Software Design & Concepts in Software
Engineering
Once the requirements document for the software to be
developed is available, the software design phase begins. While
the requirement specification activity deals entirely with the
problem domain, design is the first phase of transforming the
problem into a solution. In the design phase, the customer and
business requirements and technical considerations all come
together to formulate a product or a system.
The design process comprises a set of principles, concepts and
practices, which allow a software engineer to model the system or
product that is to be built. This model, known as design model, is
assessed for quality and reviewed before a code is generated and
tests are conducted. The design model provides details about
software data structures, architecture, interfaces and components
which are required to implement the system. This chapter
discusses the design elements that are required to develop a
software design model. It also discusses the design patterns and
various software design notations used to represent a software
design.
Basic of Software Design
Software design is a phase in software engineering, in which a
blueprint is developed to serve as a base for constructing the
software system. IEEE defines software design as 'both a process
of defining, the architecture, components, interfaces, and other
characteristics of a system or component and the result of that
process.'
In the design phase, many critical and strategic decisions are
made to achieve the desired functionality and quality of the
system. These decisions are taken into account to successfully
develop the software and carry out its maintenance in a way that
the quality of the end product is improved.
Principles of Software Design
Developing design is a cumbersome process as most expansive
errors are often introduced in this phase. Moreover, if these
errors get unnoticed till later phases, it becomes more difficult to
correct them. Therefore, a number of principles are followed
while designing the software. These principles act as a framework
for the designers to follow a good design practice.