SE Unit_III
SE Unit_III
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:
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.
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.
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.
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,
In order to perform the mapping, the type of information flow must be determined. It is called transform flow and
exhibits a linear quality.
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.
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?