Unit - (Iii) PDF
Unit - (Iii) PDF
Unit - (Iii) PDF
Design Process
Software design is a process to transform user requirements into some
suitable form, which helps the programmer in software coding and
implementation. ... The output of this process can directly be used into
implementation in programming languages.
Quality attributes
The attributes of design name as 'FURPS' are as follows:
Functionality:
It evaluates the feature set and capabilities of the program.
Usability:
It is accessed by considering the factors such as human factor, overall
aesthetics, consistency and documentation.
Reliability:
It is evaluated by measuring parameters like frequency and security of
failure, output result accuracy, the mean-time-to-failure(MTTF), recovery
from failure and the the program predictability.
Performance:
It is measured by considering processing speed, response time, resource
consumption, throughput and efficiency.
Supportability:
It combines the ability to extend the program, adaptability,
serviceability. These three term defines the maintainability.
1
Software Quality or design quallity
Software design is a mechanism to transform user requirements into some
suitable form, which helps the programmer in software coding and
implementation.
Design concepts
Definition
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. ... The design model provides details about software data
structures, architecture, interfaces and components which are required to
implement the system.
3
There are many concepts of software design and some of them are given
below:
1. Abstraction
A collection of data that describes a data object is a data abstraction.
2. Architecture
The complete structure of the software is known as software
architecture.
The aim of the software design is to obtain an architectural
framework of a system.
3. Patterns
A design pattern describes a design structure and that structure solves a
particular design problem in a specified content.
4
4. Modularity
A software is separately divided into name and addressable
components. Sometime they are called as modules which integrate to
satisfy the problem requirements.
5. Information hiding
Modules must be specified and designed so that the information like
algorithm and data presented in a module is not accessible for other
modules not requiring that information.
6. Functional independence
The functional independence is the concept of separation and related
to the concept of modularity, abstraction and information hiding.
Coupling
Coupling is an indication of interconnection between modules in a structure
of software.
7. Refinement
Refinement is a top-down design approach.
8. Refactoring
It is a reorganization technique which simplifies the design of
components without changing its function behaviour.
9. Design classes
The model of software is defined as a set of design classes.
Software Architecture
The concept of software architecture is similar to the architecture of
building.
5
The architecture is not an operational software.
The architecture design extended and it consists of the database and
the middleware that allows the configuration of a network of clients and
servers.
6
nonfunctional decisions are cast and separated by the functional
requirements. In Design, functional requirements are accomplished.
DATA DESIGN
What is design data?
Database design is the organization of data according to a database model.
The designer determines what data must be stored and how
the data elements interrelate. ... Database design involves
classifying data and identifying interrelationships. This theoretical
representation of the data is called an ontology.
DESIGN CONCEPT
1. Abstraction
2. Refinement
3. Architecture
4. Modularity
5. Information hiding
6. Refactoring
7. Structural Partitioning
1. ABSTRACTION
Abstraction allows designers to focus on solving a problem without
being concerned about irrelevant lower level details.
2. REFINEMENT
Refinement is actually a process of elaboration. We begin with a
statement of function (or description of information) that is defined at
a high level of abstraction and reach at the lower level of abstraction.
3. ARCHITECTURE
The overall structure of the software and the ways in which the
structure provides conceptual integrity for a system. Consists of
components, connectors, and the relationship between them.
7
4. MODULARITY Software is divided into separately named and
addressable components, often called modules, that are integrated to
satisfy problem requirements.(divide and conquer principle).
6. REFACTORING
Refactoring is a reorganization technique that simplifies the design
(or internal code structure) of a component without changing its
function or external behavior
7. STRUCTURAL PARTITIONING
If the architectural style of a system is hierarchical, the program
structure can be partitioned both horizontally and vertically.
Horizontal Partitioning: It defines separate branches of the modular
hierarchy for each major program function.
Architectural Design
Definitions
• Software architectural design represents the structure of the data and
program components that are required to build a computer-based system
• An architectural design model is transferable
– It can be applied to the design of other systems
– It represents a set of abstractions that enable software engineers to
describe architecture in predictable ways
Why Architecture?
(1) analyze the effectiveness of the design in meeting its stated
requirements,
(2) consider architectural alternatives at a stage when making design
changes is still relatively easy, and
(3) reduce the risks associated with the construction of the software.
8
Taxonomy of Architectural styles:
1. Data centred architectures:
A data store will reside at the center of this architecture and is
accessed frequently by the other components that update, add,
delete or modify the data present within the store.
This data-centered architecture will promote integrability. This
means that the existing components can be changed and new client
components can be added to the architecture without the
permission or concern of other clients.
Data can be passed among clients using blackboard mechanism.
10
Mapping Data Flow into Software Architecture
11
Levels in Data Flow Diagrams (DFD)
Here, we will see primarily three levels in the data flow diagram, which
are: 0-level DFD, 1-level DFD, and 2-level DFD.
0-level DFDM
It is also known as fundamental system model, or context diagram
represents the entire software requirement as a single bubble with input and
output data denoted by incoming and outgoing arrows.
It is essential to preserve the number of inputs and outputs between levels,
this concept is called leveling by DeMacro. Thus, if bubble "A" has two
inputs x1 and x2 and one output y, then the expanded DFD, that represents
"A" should have exactly two external inputs and one external output as
shown in fig:
12
1-level DFD
In 1-level DFD, a context diagram is decomposed into multiple
bubbles/processes. In this level, we highlight the main objectives of the
system and breakdown the high-level process of 0-level DFD into
subprocesses.
2-Level DFD
2-level DFD goes one process deeper into parts of 1-level DFD. It can be
used to project or record the specific/necessary detail about the system's
functioning.
13
Golden rules
14
GUI Requirements specification
A user interface specification (UI specification) is a document that
captures the details of the software user interface into a written document.
The specification covers all possible actions that an end user may perform
and all visual, auditory and other interaction elements.
GUI Testing
Consequently, GUI testing refers to testing the functions of an application
that are visible to a user. In the example of a calculator application, this
would include verifying that the application responds correctly to events
such as clicking on the number and function buttons.
15