SLM-2 ITEP 101 HCI SLM 2-Lesson 2.6 HCI in Software Process Usability Engineering March 202024
SLM-2 ITEP 101 HCI SLM 2-Lesson 2.6 HCI in Software Process Usability Engineering March 202024
SLM-2 ITEP 101 HCI SLM 2-Lesson 2.6 HCI in Software Process Usability Engineering March 202024
Introduction
HCI is used in software process to interact product with user and give them a
simple and comfortable interface.
Software developers check the environment that it is simple and interactive for
selected environment and it is only possible human interaction.
In addition, cultural and national differences play a part.
Another consideration in studying or designing HCI is that user interface
technology changes rapidly, offering new interaction possibilities.
Human-factors knowledge will particularly help us design HCI in the following ways.
1. Task/Interaction Modeling
Formulate the steps for how humans might interact to solve and carry out a given
task/problem and derive the interaction model.
The HCI Principle of task/interaction modeling was helpful understanding the tasks
required to accomplish the ultimate goal of the interactive system.
For a smaller problem of “fixing the font,” the action could be a “menu item
selection” applied to a “highlighted text.” There are several “human problem
solving” models that are put forth by number of researchers, but most of them can
be collectively summarized as depicted in Figure 2.1.
This
problem-
solving
process epitomizes the overall
information-processing model.
6. Maintenance all the work on the system after the system is released.
Validation and Verification
Verification (designing the thing right) will most often occur within a single life
cycle activity or between two adjacent activities. Validation of a design (designing
the right thing) demonstrates that within the various activities the customers'
requirements are satisfied. Because verification proofs are between rather formal
languages, the proofs are rather formal too. The validation proof, however, is not.
There is a gap between the real world and structured design known as the
formality gap. The consequence is that there is always a certain subjectivity
involved with validation.
Management and Contractual Issues
The software life cycle is sometime insufficient. A much wider perspective must be
adopted which takes into account the marketability of a system. IT training needs,
the availability of skilled personnel or possible subcontractors, and other topics
outside the activities for the development if the isolated system.
The life cycle for development described above presents the process of design in a
somewhat pipeline order. In reality, the actual process is iterative: work in one
design activity affects work in any other activity both before or after it in the life
cycle. All of the requirements for an interactive system cannot be determined from
the start. During the design process, the system is made more usable by having the
potential user test the prototypes and observe his behavior. In order to do this,
clear understanding of human task performance and cognitive processes is very
important.
Usability Engineering
In relation to the software life cycle, one of the important features of usability
engineering is the inclusion of a usability specification, forming part of the
requirement specification, that concentrates on features of the user-system
interaction which contribute to the usability of the product.
For each attribute, six items are defined to form the usability specification of that
attibute:
1. Now level indicates the value for the measurement with the existing
system. 2. Worse case the lowest acceptable measurement for the task.
3. Planned level the target for the design.
4. Best case the level which is agreed to be the best possible measurement given
the current state of development tools and technology.
Iterative design: a purposeful design process which tries to overcome the inherent
problems of incomplete requirement specification by cycling through several
designs, incrementally improving upon the final product with each pass. On the
technical side, this is described by the use of prototypes.
1. Throw-away
The knowledge gained from the prototype is used in the final design but the
prototype is discarded.
2. Incremental
The final product is released as a series of components that have been prototyped
separately.
3. Evolutionary
The prototype is not discarded but serves as a basis for the next iteration of the
design.
The quick list of example questions asked above should be a good indicator of why
good usability is so important.
It can make the difference between a successful software install or an unwanted
hard drive “cleaning”.
A safe plane ride or a disaster.
A perfect piece of plain white toast or a char-broiled square of something that used
to be wonder bread.
It’s the difference between effectively helping users to accurately complete their
tasks and frustrating them because they can’t do what they need to do.
It affects users, developers, and managers – if you don’t take care of usability,
people won’t buy your software, fly your plane, use your product, or surf your
website.
Software engineers are well versed in the software development process.
They need input from IT leader regarding software requirements and what the end
result needs to be.
Regardless of formal education, all software engineers should work within a
specific set of best practices for software engineering so that others can do some
of this work at the same time.
Several barriers block the adoption of HCI practices into today’s software
development processes:
Developers often perceive usability as applying only in UI interface design, whereas
it actually covers all interaction between the user and the system.
Table 1. HCI practices, benefits, and implications in the software development process.
HCI practice Description Examples Project phase Person in charge Benefits
HCI interface Patterns used Color-coded At any time, The UI Improve
patterns to capture divisions, but preferably designer or system
best titled during the interface
practices for sections, interface programmer, appearance
solving scrolling design. if no UI and
particular menu, icon designer navigation;
user-interface menu, participates improve
design shopping in the access to
scenarios carts, small development system
groups of team. functionalities
related (such as
things, chart menus).
or graph,
map
of navigable
spaces,
thumbnail,
collapsible
panels
HCI practice Description Examples Project phase Person in charge Benefits
Usability Usability Undo/cancel During The Enrich user
functionalities requirements commands, requirements requirements interaction
that ease the predict a task elicitation to analyst capabilities
use of any duration, capture the must be with new
software aggregate usability conscious usability
system and commands, functionalitie about the functionalitie
facilitate check for s as any need to s that the
daily user tasks. errors, other incorporate user is not
present system Requirement. usability aware of a
state, provide functionaliti priori.
good help, es in the
minimize system; the
user project
recovery manager
work must
due to estimate
systems the cost and
errors. resources
Needed.
Source: Moreno, Ana M., et al. “HCI Practices for Building Usable Software.” Computer 46.4 (2013): 100-102.
Design rationale is information that explains why a computer system is the way it
is.
Benefits of Design Rationale:
1. Communication throughout life cycle
2. Reuse of design knowledge across products
3. Enforces design discipline
4. Presents arguments for design trade-offs
5. Organizes potentially large design
space 6. Capturing contextual
information
7. Case study related to topic
Bornoe, Nis, and Jan Stage. “Usability engineering in the wild: How do practitioners
integrate usability engineering in software development?” International
Conference on Human-Centered Software Engineering. Springer, Berlin,
Heidelberg, 2014.
In this study the practitioners shows the usability of engineering in software
development. Reaching this goal has shown not to be straightforward because
usability engineering not is an exact discipline. Recently more qualities have been
added to user-centered design.