UNIT IV
UNIT IV
Interface Design
Data/Class Design
11
Goals of a Good Design
• The design must implement all of the explicit
requirements contained in the analysis model
It must also accommodate all of the implicit
requirements desired by the customer
• The design must be a readable and understandable
guide for those who generate code, and for those
who test and support the software
• The design should provide a complete picture of the
software, addressing the data, functional, and
behavioral domains from an implementation
perspective
12
Design Quality Guidelines
1) A design should display an architecture that
● has been created using recognizable architectural styles or
pattern
● is composed of components that exhibit good design
characteristic
● can be implemented in evolutionary fashion thereby
facilitating implementation and testing
2) Design should be modular. ( software should be logically
partitioned into elements and subsystems)
3) A design should contain distinct representations of data,
architecture, interfaces, & components.
4) A design should lead to data structures that are appropriate for the
objects to be implemented.
5) A design should lead to components that exhibit independent
functional characteristics
6) A design should lead to interfaces that reduce the complexity of
connections between modules & external environment.
7) A design should be derived using a repeatable method , driven by
information obtained during SW requirement analysis.
8) A design should be represented using a notation that effectively
communicates its meaning.
Quality Attributes of design-FURPS
Hewlett-Packard developed a set of software quality attributes that has
been given the acronym FURPS—functionality, usability, reliability,
performance, and supportability for all software design.
● Functionality :is assessed by evaluating the feature set and
capabilities of the program, the generality of the functions that are
delivered, and the security of the overall system.
● Usability: is assessed by considering human factors , overall
aesthetics, consistency, and documentation.
● Reliability: is evaluated by measuring the frequency and severity of
failure, the accuracy of output results, the mean-time-to-failure
(MTTF), the ability to recover from failure, and the predictability of
the program.
● Performance :is measured by considering processing speed,
response time, resource consumption, throughput, and efficiency.
● Supportability :combines the ability to extend the program
(extensibility), adaptability, serviceability—these three attributes
represent a more common term, maintainability—and in addition,
testability, compatibility, configurability (the ability to organize and
control elements of the software configuration, ), the ease with
which a system can be installed, and the ease with which problems
can be localized.
Design Principles :
Procedural abstraction:
Data abstraction:
Control abstraction
• Procedural abstraction –
A named sequence of instructions that has a specific & limited function
– The word open for a door.- walk to the door, reach out and grasp knob, turn
knob and pull door, step away from moving door, etc.
S1
S1
S2
S2 S4 S5
S3
S4 S3
S5
Control architecture
•Superordinate module,
subordinate module
•Depth, width
•Fan-in, Fan-out
25
FAN In FAN Out
• The fan-out of a module is the number of its immediately subordinate
modules. As a rule of thumb, the optimum fan-out is seven, plus or
minus 2.
• The fan-in of a module is the number of its immediately superordinate
(i.e., parent or boss) modules. The designer should strive for high fan-in
at the lower levels of the hierarchy. This simply means that normally there
are common low-level functions that exist that should be identified and
made into common modules to reduce redundant code and increase
maintainability. High fan-in can also increase portability if, for example, all
I/O handling is done in common modules.
Object-Oriented Considerations
● In object-oriented systems, fan-in and fan-out relate to interactions
between objects. In object-oriented design, high fan-in generally
contributes to a better design of the overall system. High fan-in shows
that an object is being used extensively by other objects, and is
indicative of re-use.
26
● High fan-out in object-oriented design is indicated when an object must
deal directly with a large number of other objects. This is indicative of a
high degree of class interdependency. In general, the higher the fan-out
of an object, the poorer is the overall system design.
Advantages Of FAN-In
● High fan-in reduces redundancy in coding.
● It also makes maintenance easier. Modules developed for fan-in must
have good cohesion, preferably functional. Each interface to a fan-in
module must have the same number and types of parameters.
Designing Modules That Consider Fan-In/Fan-Out
● The designer should strive for software structure with moderate fan-out
in the upper levels of the hierarchy and high fan-in in the lower levels of
the hierarchy.
● Some examples of common modules which result in high fan-in are: I/O
modules, edit modules, modules simulating a high level command (such
as calculating the number of days between two dates). Use factoring to
solve the problem of excessive fan-out. Create an intermediate module
to factor out modules with strong cohesion
Cohesion is a measure of the degree to which the elements of the module
are functionally related. It is the degree to which all elements directed
towards performing a single task are contained in the component. Basically,
cohesion is the internal glue that keeps the module together. A good
software design will have high cohesion. )and loose coupling(Coupling is the
measure of the degree of interdependence between the modules.)
Structural Partitioning
If the system is having hierarchical architecture, the program structure can
easily be partitioned both horizontally and vertically, represents this view.
Program structure partitioned into
• Horizontal partitioning:
• Vertical partitioning (factoring)
• In given figure (a), horizontal division defines the individual branches of
the modular hierarchy for every major program function. Control
modular (shown by rectangles) are used to coordinate communication
between tasks. The three partitions are done in simple horizontal
partitions i.e., input, data transformation (processing) and output.
● It considers the architectural style that the system will take, the
structure and properties of the components that constitute the
system, and the interrelationships that occur among all
architectural components of a system.
Work product of UI design is user scenarios are created and screen layouts
are generated. An interface prototype is developed and modified in a
iterative fashion
Golden Rules of UI
Three Golden Rules by Theo Mandel are:
1.Place the user in control
2.Reduce the user’s memory load
3.Make the interface consistent
● Allow the user to put the current task into a meaningful context: Many
interfaces have dozens of screens. So it is important to provide indicators
consistently so that the user know about the doing work.
The user should also know from which page has navigated to the
current page and from the current page where can navigate.
● Maintain consistency across a family of applications: The
development of some set of applications all should follow and
implement the same design, rules so that consistency is
maintained among applications.
● If past interactive models have created user expectations do not
make changes unless there is a compelling reason. eg alt S for
saving
Interface Analysis
Interface design analysis means understanding:
(1) The people (end-users) who will interact with the system through the
interface;
(2) The tasks that end-users must perform to do their work,
(3) The content that is presented as part of the interface,
(4) The environment in which these tasks will be conducted.
The only way that a designer can get the mental image and the design model to
converge is to work to understand the users themselves as well as how these
people will use the system.
This can be accomplished by:
User Interviews: The software team meets with the end-users to better
understand their needs, motivations, work culture, and a myriad of other issues.
Sales Input: Sales people meet with customers and users to help developers
categorize users and better understand their requirements.
Marketing Input: Market analysis can be invaluable in the definition of market segments
while providing an understanding of how each segment might use the software in
different ways.
Support Input: Support staff talks with users on a daily basis, making them the most likely
source of information on what works and what doesn’t, and what they like and what they
don’t.
The following set of questions help the interface designer better understand the
users of a system:
· Are users trained professionals, technician, clerical, or manufacturing
workers?
· What level of formal education does the average user have?
· Are the users capable of learning from written materials or have they
expressed a desire for classroom training?
· Are users’ expert typists or keyboard phobic?
· What are the consequences if a user makes a mistake using the system?
Is the software to be an integral part of the work users do or will it be
used only occasionally?
The answers to these and similar questions will allow the designer to
understand who the end-users are, what is likely to motivate and please
them, how they can be grouped into different user classes or profiles, what
their mental models of the system are and how the user interface must be
characterized to meet their needs.
Task Analysis and Modeling
The goal of task analysis is to answer the following questions:
What work will the user perform in specific circumstances?
● What tasks and subtasks will be performed as the user does the work?
● What specific problem domain objects will the user manipulate as
work is performed?
● What is the sequence of work tasks—the workflow?
● What is the hierarchy of tasks?
The techniques below are applied to the user interface:
● The complete UI
● Page layout
● Forms and input
● Tables
● Direct data manipulation
● Navigation
● Searching
● Page elements
● e-Commerce
Design Issues
As the design of the system evolves following issues need to be addressed in design
steps
· Response time: System response time has two important characteristics:
length ( should not be too long) and variability. Variability refers to the deviation
from average response time.
· Help facilities: Help must be available for all system functions. Include help
menus, print documents.
· Error handling: Describe the problem in a language the user can understand.
Never blame the user for the error that occurred.
· Menu and command labeling: Menu options should have corresponding
commands. Use control sequences for commands.
· Application accessibility: Especially for the physically challenged.
· Internationalization: The Unicode standard has been developed to address
the daunting challenge of managing dozens of natural languages with hundred of
characters and symbols.
Design Evaluation
Once an operational UI prototype has been created , it must be evaluated to
determine whether it meets with the needs of the user.
Evaluation can be your informal “test drive “ in which user provides promptu
feedback to a formally designed study that uses statistical methods for the
evaluation of questionnaires by end users.
After the design model has been completed a first level prototype is created
Two interface design evaluation techniques are mentioned in this section, usability
questionnaires and usability testing. The process of learning how to design good
user interfaces often begins with learning to identify the weaknesses in existing
products.
Once the first prototype is built, the designer can collect a variety of qualitative
and quantitative data that will assess in evaluating the interface. Questions can be
a simple Y/N response, numeric response, scaled response, Likert scale (strongly
agree, etc.), percentage response, and open-ended ones
EXTRA SLIDES END