[go: up one dir, main page]

0% found this document useful (0 votes)
81 views15 pages

Unit - (Iii) PDF

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 15

UNIT – III

Data Engineering: Design Process and Design Quality

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.

Objectives of Software Design


Following are the purposes of Software design:

The modern view of a quality associated with a software product


several quality methods such as the following:

1. Correctness:Software design should be correct as per requirement.


2. Completeness:The design should have all components like data
structures, modules, and external interfaces, etc.
3. Efficiency:Resources should be used efficiently by the program.
4. Flexibility:Able to modify on changing needs.
5. Consistency:There should not be any inconsistency in the design.
6. Maintainability: The design should be so simple so that it can be
easily maintainable by other designers.

Data Flow Diagram


Data-flow design is concerned with designing a series of functional
transformations that convert system inputs into the required outputs. The
design is described as data-flow diagrams. These diagrams show how
data flows through a system and how the output is derived from the input
through a series of functional transformations.
2
The notation which is used is based on the following symbols:

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:

The set of fundamental software design concepts are as follows:

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.

Cohesion and coupling.


Cohesion
 Cohesion is an extension of the information hiding concept.

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.

Importance of software architecture


Following are the reasons for the importance of software architecture.
1. The representation of software architecture allows the communication
between all stakeholder and the developer.
2. The architecture focuses on the early design decisions that impact on all
software engineering work and it is the ultimate success of the system.

The design categories of architectural styles includes:


1. A set of components such as database, computational modules which
perform the function required by the system.
2. A set of connectors that allows the communication, coordination and
cooperation between the components.

We can segregate Software Architecture and Design into two distinct


phases: Software Architecture and Software Design. In Architecture,

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).

5. INFORMATION HIDING Modules should be specified and designed


so that information (procedure and data) contained within a module is
inaccessible to other modules that have no need for such information.

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.

2. Data flow architectures:


 This kind of architecture is used when input data to be
transformed into output data through a series of computational
manipulative components.
 The figure represents pipe-and-filter architecture since it uses
both pipe and filter and it has a set of components called filters
connected by pipes.
9
 Pipes are used to transmit data from one component to the next.
 Each filter will work independently and is designed to take data
input of a certain form and produces data output to the next filter
of a specified form. The filters don’t require any knowledge of the
working of neighboring filters.
 If the data flow degenerates into a single line of transforms, then
it is termed as batch sequential. This structure accepts the batch of
data and then applies a series of sequential components to
transform it.

3.Call and Return architectures: It is used to create a program that is


easy to scale and modify. Many sub-styles exist within this category.
Two of them are explained below.
 Remote procedure call architecture: This components is used
to present in a main program or sub program architecture
distributed among multiple computers on a network.
 Main program or Subprogram architectures: The main
program structure decomposes into number of subprograms or
function into a control hierarchy. Main program contains number
of subprograms that can invoke other components.

10
Mapping Data Flow into Software Architecture

Data Flow Diagrams


It shows how data enters and leaves the system, what changes the
information, and where data is stored.
The DFD is also called as a data flow graph or bubble chart.

The following observations about DFDs are essential:


1.All names should be unique. This makes it easier to refer to elements in
the DFD.
2.Remember that DFD is not a flow chart. Arrows is a flow chart that
represents the order of events; arrows in DFD represents flowing data. A
DFD does not involve any order of events.
3.Do not become bogged down with details. Defer error conditions and
error handling until the end of the analysis.
Standard symbols for DFDs are derived from the electric circuit diagram
analysis and are shown in fig:

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 user analysis


User interface (UI) design analysis is the study of how users use a
particular product or system to achieve goals by performing tasks. ... A
swimlane diagram illustrates how various users interact with each other
using a system.

GUI Task Analysis


The purpose of task analysis is to map user requirements and to logically
organize and distribute the GUI objects across the application. The
challenge is to determine how far to go. On one hand, there is a potential to
miss important objects and actions if there is a lack of detail in
the analysis.

GUI Design and Implementation


1.Graphical user interfaces (GUIs)—Users interact with visual
representations on digital control panels. A computer’s desktop is a GUI.
2.Voice-controlled interfaces (VUIs)—Users interact with these through
their voices. Most smart assistants—e.g., Siri on iPhone and Alexa on
Amazon devices—are VUIs.
3.Gesture-based interfaces—Users engage with 3D design spaces through
bodily motions: e.g., in virtual reality (VR) games.

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

You might also like