The document discusses various aspects of the software development life cycle and human-computer interaction design rules. It describes the typical phases of software development like requirements specification, architectural design, detailed design, coding, testing, and maintenance. It also discusses design principles, standards, guidelines, heuristics and patterns that can improve usability. Iterative design and prototyping approaches are presented as methods to refine requirements and designs. The importance of documenting design rationale is highlighted.
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
Human Computer Interaction Chapter 3 HCI in the Software Process and Design Rules - Dr. J. VijiPriya
1. Chapter 3
HCI in the Software Process
Design Rules
26 May 20161
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
Human Computer Interaction
2. The software life cycle
Software engineering
provides the structure for applying techniques to develop software
systems
The software life cycle
An attempt to identify the activities that occur in software
development
These activities must be ordered in time in any development
project and appropriate techniques must be adopted to carry them.
In the development of a software product,
consider two main parties: the customer who requires the use of
the product and the designer who must provide the product
26 May 20162
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
3. The software life cycle con…
26 May 20163
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
4. The software life cycle con…
Requirements specification
begins at the start of product development
eliciting information from the customer about the work
environment, or domain, in which the final product will function.
It concentrates on what the system is supposed to do.
Architectural design
concentrate on how the system provides the services expected
from the requirement specification.
performs high-level decomposition of the system into components.
I
determining which components provide which services. I
describe the interdependencies between separate components
and the sharing of resources that will arise between components.
26 May 20164
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
5. The software life cycle con…
Detailed design
For immediate integration, the designer must provide a sufficiently
detailed description so that they may be implemented in some
programming language.
A refinement of the component description provided by the
architectural design.
Coding and unit testing
The detailed design for a component of the system should be
implemented in some executable programming language.
After coding, the component can be tested to verify that it performs
correctly, according to some test criteria.
26 May 20165
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
6. The software life cycle con…
Integration and accepting testing
Once enough components have been implemented and
individually tested, they must be integrated as described in
the architectural design.
Further testing is done to ensure correct behavior and
acceptable use of any shared resources.
perform some acceptance testing with the customers to
ensure that the system meets their requirements.
after acceptance of the integrated system that the product is
finally released to the customer.
Maintenance
Maintenance involves the correction of errors in the
system which is discovered after release and the revision
of the system services to satisfy requirements that were
not realized during previous development.
Therefore, maintenance provides feedback to all of the
other activities in the life cycle. 26 May 20166
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
7. Usability Engineering
knowing exactly what criteria will be used to judge a product for its
usability Examples of usability metrics from ISO 9241
26 May 20167
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
8. Iterative Design and Prototyping
The essence of iterative design
a purposeful design process which tries to overcome the
inherent problems of incomplete requirements specification
by cycling through several designs, incrementally improving
upon the final product with each pass.
On the technical side, iterative design is described by the use
of prototypes, artifacts that simulate or animate some but not
all features of the intended system.
There are three main approaches to prototyping:
1. Throw-away The prototype is built and tested. The design knowledge
gained from this exercise is used to build the final product, but the
actual prototype is discarded.
2. Incremental The final product is partitioned into independent and
smaller components. The final product is then released as a series of
products, each subsequent release including one more component.
3. Evolutionary Here the prototype is not discarded and serves as the
basis for the next iteration of design.
26 May 20168
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
9. Design rationale
The information that explains why a computer system is the way
it is, including its structural or architectural description and its
functional or behavioral description.
relates to an activity of both reflection (doing design rationale) and
documentation (creating a design rationale) that occurs throughout
the entire life cycle.
It is beneficial to have access to the design rationale for several
reasons:
In an explicit form, a design rationale provides a communication
mechanism among the members of a design team. so that this
can help avoid incorrect assumptions later.
Accumulated knowledge in the form of design rationales for a set
of products can be reused to transfer what has worked in one
situation to another situation which has similar needs.
The process of deliberation can be assisted by the design
rationale technique.
26 May 20169
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
10. Design Rules
rules a designer can follow in order to increase the usability of the
eventual software product.
different types of design rules.
Principles
Standards
Guidelines
Abstract principles offer a way of understanding usability
Design rules in the form of standards and guidelines provide
direction for design, in both general and more concrete terms, in
order to enhance the interactive properties of the system.
The essential characteristics of good design are often
summarized through ‘golden rules’ or heuristics.
Design patterns provide a potentially generative approach to
capturing and reusing design knowledge.
26 May 201610
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
11. Principles to support usability
applied to the design of an interactive system in order to promote
its usability.
The principles divided into three main categories:
1. Learnability – the ease with which new users can begin effective
interaction and achieve maximal performance.
2. Flexibility – the multiplicity of ways in which the user and system
exchange information.
3. Robustness – the level of support provided to the user in
determining successful achievement and assessment of goals.
26 May 201611
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
12. Principles of Learnability
26 May 201612
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
13. Principles of flexibility
26 May 201613
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
14. Principles of robustness
26 May 201614
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
15. Standards for interactive system
design
set by national or international bodies to ensure compliance
with a set of design rules by a large community.
Standards can apply specifically to either the hardware or the
software used to build the interactive system.
British Standards Institution (BSI) or the International
Organization for Standardization (ISO) or a national military
agency, has had standards for hardware in place before any for
software.
hardware standards more common than software high authority
and low level of detail
ISO 9241 defines usability as effectiveness, efficiency and
satisfaction with which users accomplish tasks
26 May 201615
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
16. Guidelines
The majority of design rules for interactive systems are suggestive
and more general guidelines.
Several books and technical reports contain huge catalogs of
guidelines.
Abstract guidelines (principles) applicable during early life cycle
activities
The detailed guidelines (style guides) applicable during later life
cycle activities
The basic categories of the Smith and Mosier guidelines are:
1. Data Entry
2. Data Display
3. Sequence Control
4. User Guidance
5. Data Transmission
6. Data Protection
26 May 201616
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
17. Golden rules and heuristics
The sets of ‘golden rules’ or heuristics are ‘broad-brush’ design
rules, which may not be always be applicable to every situation,
They do provide a useful checklist or summary of the essence of
design advice.
Any designer following even these simple rules will produce a better
system than one who ignores them.
Sets of heuristics, are Nielsen’s ten heuristics, Shneiderman’s eight
golden rules and Norman’s seven principles.
Nielsen’s heuristics are intended to be used in evaluation.
Shneiderman’s 8 Golden Rules
1. Strive for consistency
2. Enable frequent users to use shortcuts
3. Offer informative feedback
4. Design dialogs to yield closure
5. Offer error prevention and simple error handling
6. Permit easy reversal of actions
7. Support internal locus of control
8. Reduce short-term memory load
26 May 201617
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
18. Golden rules and heuristics con…
Norman’s 7 Principles
Norman’s seven principles provide a useful summary of his user-
centered design philosophy
1. Use both knowledge in the world and knowledge in the head.
2. Simplify the structure of tasks.
3. Make things visible: bridge the gulfs of Execution and Evaluation.
4. Get the mappings right.
5. Exploit the power of constraints, both natural and artificial.
6. Design for error.
7. When all else fails, standardize.
26 May 201618
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia
19. HCI Design Patterns
An approach to reusing knowledge about successful design
solutions
Originated in architecture: Alexander
A pattern is an invariant solution to a recurrent problem within a
specific context.
Patterns do not exist in isolation but are linked to other patterns
in languages which enable complete designs to be generated
Characteristics of patterns
capture design practice not theory
capture the essential common properties of good examples of
design
represent design knowledge at varying levels: social,
organisational, conceptual, detailed
embody values and can express what is humane in interface
design
are intuitive and readable and can therefore be used for
communication between all stakeholders
a pattern language should be generative and assist in the
development of complete designs.
26 May 201619
Presented by Dr. J. VijiPriya,
Assistant Professor, Hawassa University,
Ethiopia