0% found this document useful (0 votes)
12 views

SE Unit_III

The document outlines the software design process, which includes three levels: Interface Design, Architectural Design, and Detailed Design. It also discusses software quality factors such as portability, usability, and maintainability, and introduces key software design concepts like abstraction and modularity. Additionally, it emphasizes the importance of user interface design and provides guidelines for effective GUI design.
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)
12 views

SE Unit_III

The document outlines the software design process, which includes three levels: Interface Design, Architectural Design, and Detailed Design. It also discusses software quality factors such as portability, usability, and maintainability, and introduces key software design concepts like abstraction and modularity. Additionally, it emphasizes the importance of user interface design and provides guidelines for effective GUI design.
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/ 9

UNIT-III

Software Design Process


The design phase of software development deals with transforming the customer requirements as described
in the SRS documents into a form implementable using a programming language.
The software design process can be divided into the following three levels of phases of design:
1. Interface Design
2. Architectural Design
3. Detailed Design

Interface Design:
Interface design is the specification of the interaction between a system and its environment. this phase
proceeds at a high level of abstraction with respect to the inner workings of the system.
The design problem statement produced during the problem analysis step should identify the people,
other systems, and devices which are collectively called agents.
Interface design should include the following details:
 Precise description of events in the environment, or messages from agents to which the system must
respond.
 Precise description of the events or messages that the system must produce.
 Specification on the data, and the formats of the data coming into and going out of the system.
 Specification of the ordering and timing relationships between incoming events or messages, and outgoing
events or outputs.

Architectural Design:
Architectural design is the specification of the major components of a system, their responsibilities,
properties, interfaces, and the relationships and interactions between them. In architectural design, the overall
structure of the system is chosen, but the internal details of major components are ignored.
An issue in architectural design includes:
 Gross decomposition of the systems into major components.
 Allocation of functional responsibilities to components.
 Component Interfaces
 Component scaling and performance properties, resource consumption properties, reliability properties, and
so forth.
 Communication and interaction between components.

The architectural design adds important details ignored during the interface design. Design of the internals
of the major components is ignored until the last phase of the design.
Detailed Design:
Detailed Design is the specification of the internal elements of all major system components, their
properties, relationships, processing, and often their algorithms and the data structures.
The detailed design may include:
 Decomposition of major system components into program units.
 Allocation of functional responsibilities to units.
 User interfaces
 Unit states and state changes
 Data and control interaction between units
 Data packaging and implementation, including issues of scope and visibility of program elements
 Algorithms and data structures

Software Quality
The construct of software quality as “fitness of purpose” for code products isn’t totally satisfactory. Quality
associates with software are involving many quality factors like the following:

 Portability:
Software is claimed to be transportable, if it may be simply created to figure in several package
environments, in several machines, with alternative code merchandise, etc.

 Usability:
Software has smart usability if completely different classes of users (i.e. each knowledgeable and
novice users) will simply invoke the functions of the merchandise.

 Reusability:
Software has smart reusability if completely different modules of the merchandise will simply be
reused to develop new merchandise.

 Correctness:
Software is correct if completely different needs as laid out in the SRS document are properly enforced.

 Maintainability:
Software is reparable, if errors may be simply corrected as and once they show up, new functions may
be simply added to the merchandise, and therefore the functionalities of the merchandise may be simply
changed, etc
Software Design Concepts:
The software design concept simply means the idea or principle behind the design. It describes how you
plan to solve the problem of designing software, the logic, or thinking behind how you will design software.
The software design concept provides a supporting and essential structure or model for developing the right
software. There are many concepts of software design and some of them are given below:

The following points should be considered while designing Software:

1. Abstraction- hide Irrelevant data


Abstraction simply means to hide the details to reduce complexity and increases efficiency or quality.
2. Modularity- subdivides the system
Modularity simply means dividing the system or project into smaller parts to reduce the complexity of
the system or project.
3. Architecture- design a structure of something
Architecture simply means a technique to design a structure of something.
4. Refinement- removes impurities
Refinement simply means to refine something to remove any impurities if present and increase the
quality.
5. Pattern- a repeated form
The pattern simply means a repeated form or design in which the same shape is repeated several times
to form a pattern.
6. Information Hiding- hide the information
Information hiding simply means to hide the information so that it cannot be accessed by an
unwanted party.
7. Refactoring- reconstruct something
Refactoring simply means reconstructing something in such a way that it does not affect the behavior
of any other features. Refactoring defined as “the process of changing a software system in a way that it
won’t affect the behavior of the design and improves the internal structure”.
Architectural Design
The software needs the architectural design to represents the design of software.
Each style will describe a system category that consists of:
 A set of components (eg: a database, computational modules) that will perform a function required by the
system.
 The set of connectors will help in coordination, communication, and cooperation between the components.
 Conditions that how components can be integrated to form the system.
 Semantic models that help the designer to understand the overall properties of the system.

Classification of Architectural styles:

1. Data centered architectures:

 This data-centered architecture will promote reliability. 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.
 Pipes are used to transmit data from one component to the next.

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.

Software Architecture
Architecture serves as a blueprint for a system. It provides an abstraction to manage the system complexity
and establish a communication and coordination mechanism among components.
 It defines a structured solution to meet all the technical and operational requirements, while optimizing
the common quality attributes like performance and security.
 Further, it involves a set of significant decisions about the organization related to software development
and each of these decisions can have a considerable impact on quality, maintainability, performance, and
the overall success of the final product. These decisions comprise of −
o Selection of structural elements and their interfaces by which the system is composed.
o Behavior as specified in collaborations among those elements.
o Composition of these structural and behavioral elements into large subsystem.
o Architectural decisions align with business objectives.
o Architectural styles guide the organization.
Software Design
Software design provides a design plan that describes the elements of a system, how they fit, and work
together to fulfill the requirement of the system. The objectives of having a design plan are as follows −
 To negotiate system requirements, and to set expectations with customers, marketing, and management
personnel.
 Act as a blueprint during the development process.
 Guide the implementation tasks, including detailed design, coding, integration, and testing.
It comes before the detailed design, coding, integration, and testing and after the domain analysis,
requirements analysis, and risk analysis.
Data design
Data design is the first design activity, which results in less complex, modular and efficient program structure.
During the data design process, data types are specified along with the integrity rules required for the data. For
specifying and designing efficient data structures, some principles should be followed.
These principles are listed below.

 The data structures needed for implementing the software as well-as the operations that can be applied on
them should be identified.
 A data dictionary should be developed to depict how different data objects interact with each other and
what constraints are to be imposed on the elements of data structure.
 Stepwise refinement should be used in data design process and detailed design decisions should be made
later in the process.
 Only those modules that need to access data stored in a data structure directly should be aware of the
representation of the data structure.
 A library containing the set of useful data structures along with the operations that can be performed on
them should be maintained.
 Language used for developing the system should support abstract data types.

The structure of data can be viewed at three levels, namely,


 Program component level, - At the program component level, the design of data structures and the
algorithms required to manipulate them is necessary, if high-quality software is desired.
 Application level, - At the application level, it is crucial to convert the data model into a database so that
the specific business objectives of a system could be achieved.
 Business level. - At the business level, the collection of information stored in different databases should
be reorganized into data warehouse, which enables data mining that has an influential impact on the
business.

Architectural Mapping Using Data Flow

A mapping technique, called structured design, is often characterized as a data flow-oriented design
method because it provides a convenient transition from a data flow diagram to software architecture.

The transition from information flow to program structure is accomplished as part of a six step process:
(1) The type of information flow is established,

(2) Flow boundaries are indicated,

(3) The DFD is mapped into the program structure,

(4) Control hierarchy is defined,

(5) The resultant structure is refined using design measures.

(6) The architectural description is refined and elaborated.

Example of data flow mapping is Home security function.

In order to perform the mapping, the type of information flow must be determined. It is called transform flow and
exhibits a linear quality.

Software User Interface Design


User interface is the front-end application view to which user interacts in order to use the software. User
can manipulate and control the software as well as hardware by means of user interface.
User interface is part of software and is designed such a way that it is expected to provide the user insight
of the software. UI provides fundamental platform for human-computer interaction.
UI can be graphical, text-based, audio-video based, depending upon the underlying hardware and
software combination. UI can be hardware or software or a combination of both.
The software becomes more popular if its user interface is:

 Attractive
 Simple to use
 Responsive in short time
 Clear to understand
 Consistent on all interfacing screens
UI is broadly divided into two categories:
 Command Line Interface: Command Line Interface provides a command prompt, where the user
types the command and feeds to the system. The user needs to remember the syntax of the command
and its use.
 Graphical User Interface: Graphical User Interface provides the simple interactive interface to
interact with the system. GUI can be a combination of both hardware and software. Using GUI, user
interprets the software.
 Command line interface elements:
 Command Prompt - It is text-based notifier that is mostly shows the context in which the user is
working. It is generated by the software system.
 Cursor - It is a small horizontal line or a vertical bar of the height of line, to represent position of
character while typing. Cursor is mostly found in blinking state. It moves as the user writes or deletes
something.
 Command - A command is an executable instruction. It may have one or more parameters. Output on
command execution is shown inline on the screen. When output is produced, command prompt is
displayed on the next line.
 GUI Elements
GUI provides a set of components to interact with software or hardware. Every graphical component provides
a way to work with the system.
A GUI system has following elements such as:
 Window - An area where contents of application are displayed. Contents in a window can be displayed in
the form of icons or lists, if the window represents file structure. Windows can be minimized, resized or
maximized to the size of screen. A window may contain another window of the same application, called
child window.
 Tabs - If an application allows executing multiple instances of itself, they appear on the screen as
separate windows. Tabbed Document Interface has come up to open multiple documents in the same
window. This interface also helps in viewing preference panel in application. All modern web-browsers
use this feature.
 Menu - Menu is an array of standard commands, grouped together and placed at a visible place inside the
application window.
 Icon - An icon is small picture representing an associated application. When these icons are clicked or
double clicked, the application window is opened. Icon displays application and programs installed on a
system in the form of small pictures.
 Cursor - Interacting devices such as mouse, touch pad, digital pen are represented in GUI as cursors. On
screen cursor follows the instructions from hardware in almost real-time. Cursors are also named pointers
in GUI systems. They are used to select menus, windows and other application features.

User Interface Design Activities


There are a number of activities performed for designing user interface. The process of GUI design and
implementation is alike SDLC. Any model can be used for GUI implementation among Waterfall, Iterative or
Spiral Model.
A model used for GUI design and development should fulfill these GUI specific steps.
 GUI Requirement Gathering - The designers may like to have list of all functional and non-functional
requirements of GUI. This can be taken from user and their existing software solution.
 User Analysis - The designer studies who is going to use the software GUI. The target audience matters
as the design details change according to the knowledge and competency level of the user. If user is
technical savvy, advanced and complex GUI can be incorporated. For a novice user, more information is
included on how-to of software.
 Task Analysis - Designers have to analyze what task is to be done by the software solution. Here in GUI,
it does not matter how it will be done. Tasks can be represented in hierarchical manner taking one major
task and dividing it further into smaller sub-tasks. Tasks provide goals for GUI presentation. Flow of
information among sub-tasks determines the flow of GUI contents in the software.
 GUI Design & implementation - Designers after having information about requirements, tasks and user
environment, design the GUI and implements into code and embed the GUI with working or dummy
software in the background. It is then self-tested by the developers.
 Testing - GUI testing can be done in various ways. Organization can have in-house inspection, direct
involvement of users and release of beta version are few of them. Testing may include usability,
compatibility, user acceptance etc.
User Interface Golden rules
The following rules are mentioned to be the golden rules for GUI design,
 Strive for consistency - Consistent sequences of actions should be required in similar situations.
Identical terminology should be used in prompts, menus, and help screens. Consistent commands should
be employed throughout.

 Enable frequent users to use short-cuts - The user’s desire to reduce the number of interactions
increases with the frequency of use.

 Offer informative feedback - For every operator action, there should be some system feedback. For
frequent and minor actions, the response must be modest, while for infrequent and major actions, the
response must be more substantial.

 Offer simple error handling - As much as possible, design the system so the user will not make a
serious error. If an error is made, the system should be able to detect it and offer simple, comprehensible
mechanisms for handling the error.

 Permit easy reversal of actions - This feature relieves anxiety, since the user knows that errors can be
undone. Easy reversal of actions encourages exploration of unfamiliar options. The units of reversibility
may be a single action, a data entry, or a complete group of actions.

 Reduce short-term memory load - The limitation of human information processing in short-term
memory requires the displays to be kept simple, multiple page displays be consolidated, window-motion
frequency be reduced, and sufficient training time be allotted for codes, mnemonics, and sequences of
actions.

 Support internal locus of control - Experienced operators strongly desire the sense that they are in
charge of the system and that the system responds to their actions. Design the system to make users the
initiators of actions rather than the responders.

Department of ISM…
Two marks:
1. Write the three levels of phases in Design process?
2. Define interface design
3. What is architectural design
4. Define software quality
5. What is software design?
6. What is software architecture?
7. Define data design
8. Write the structure of data levels?
9. Define mapping
10. What is software user interface?
11. State CLI
12. State GUI
13. Write the elements of CLI & GUI
14. Write the activities involve in UI design
15. What is detailed design?
Five marks:
1. Write short note about s/w design concept?
2. Write short note on architectural design & classification of styles
3. Write about the data design in short note
4. Write the process steps of architectural mapping
5. Write short note about the GUI elements
6. Write about the rules of UI
7. Write about the s/w quality
Ten marks:
1. Explain about the s/w design process?
2. Explain in detailed about software user interface design?

You might also like