COSC 409 SUMMARY
HCI: is a multidisciplinary field that focuses on the design, evaluation, and
implementation of interactive computing systems for human use. It encompasses the
processes, dialogues, and actions through which humans interact with computers and
other forms of information technology.
HCI: is the study of how people use computers and how to design computer systems that
are easy and enjoyable to use. It focuses on making sure that technology fits well with
how humans think and work, ensuring that interactions with computers are effective and
user-friendly.
HISTORY OF HCI
Human-Computer Interaction (HCI), previously known as Man-Machine Studies,
emerged in the 1980s with the advent of personal computing devices like the Apple
Macintosh and IBM PC. As computers became widely available to the general public for
various applications, the need for user-friendly interfaces grew. Initially focused on
desktop computers, HCI expanded to include multiple disciplines such as computer
science, cognitive science, and human-factors engineering. It evolved to address not only
usability but also the broader context of mobile technology, social and organizational
computing, accessibility, and diverse applications like gaming, education, healthcare, and
emergency response. HCI now encompasses a wide range of interaction techniques and
devices, moving beyond traditional graphical interfaces to include multimodal and
context-aware interactions.
GOALS OF HCI
1. Safety: Safety of users as in Air Traffic Control Applications, Hospitals, Intensive
care, Nuclear Power Stations etc.
Minimizing the risk of user errors and ensuring that systems are safe to
use. This includes designing for error recovery and preventing potential
hazards.
2. Utility: The services a system provides for example Ability to print documents
utility refers to the extent to which a system provides the necessary
functionalities that users need to complete their tasks. A system with
high utility provides real value to its users by enabling them to perform
their tasks in a way that is effective, efficient, and satisfying.
3. Effectiveness: User ability to achieve goals. For example.
Effectiveness: is Developing systems that help users accomplish their
tasks accurately and completely.
4. Efficiency: A measure of how quickly users can accomplish their goals and finish
the work using the system.
Efficiency: Optimizing the speed and resource use of interactions
between humans and computers.
Efficiency: Enhancing the productivity of users by designing systems
that help them complete their tasks quickly and with minimal effort.
5. Usability: is a measure of the ease with which a system ca be learned and used.
Usability: Designing systems that are easy to learn and efficient to use.
Usability: Making systems easy to use, efficient, and satisfying. This
includes ensuring that users can achieve their goals with minimal effort and
errors.
REASONS WHY USER INTERFACES ARE POOR TODAY
1. Inadequate training of people developing interfaces
2. Diversity of knowledge required to design good interface
3. Rapid technological advancement
4. Reluctant of companies to commit resources
5. User Interface specialists rarely involved
6. The “bricklayers” (programmers) are left to design the user interface by default.
7. Poor management- programmers do not talk to design team and vice versa
GOOD AND BAD DESIGN
GOOD DESIGN: A design that is intuitive, efficient, visually pleasing, accessible,
provides clear feedback, minimizes user errors, and maintains consistency throughout the
user experience.
Increase productivity
Increase competitive Advantage
Increase User satisfaction
Reducing development and maintenance cost
Lower support cost
BAD DESIGN: A design that is confusing, inefficient, unattractive, exclusive, lacks
clear feedback, is prone to user errors, and is inconsistent in its visual and functional
elements.
It is frustrating.
It leads to waste of time.
It can lead to loss of lives and properties.
Decrease in productivity.
Increase cost of training.
SOFWARE ENGINEERING
Software: is a set of instructions, data, or programs used to operate computers and
execute specific tasks.
Engineering: is the application of scientific principles and technical knowledge to
design, build, and maintain structures, machines, devices, systems, materials, and
processes.
Software engineering: is the systematic application of engineering approaches to the
development, operation, and maintenance of software. It involves designing, building,
testing, and managing software products in a structured and disciplined manner.
SOFTWARE DEVELOPMENT LIFE CYCLE MODELS
Software Development Life Cycle Model (SDLCM) is a structured framework
that outlines the sequence of activities, methods, and deliverables required to
develop and maintain a software product throughout its entire lifecycle, from
inception to retirement.
Software Development Life Cycle Model (SDLCM): represents the
comprehensive set of methods required for a software product to transition
through its life cycle stages, from inception to retirement. It defines the structure
and sequence of activities to be undertaken during development, capturing all
essential activities, although they may be carried out in different orders across
various models.
THE NEED FOR SDLC
Ensures systematic and disciplined software development.
Provides a clear understanding among team members about what to do and when
to do it.
Prevents chaos and project failure by avoiding uncoordinated individual efforts.
Defines entry and exit criteria for each phase of the project.
Ensures that a phase begins only if its entry criteria are met.
Helps software project managers monitor the progress of the project effectively.
Helps in organizing and directing the overall development effort
Prevents inconsistent or conflicting approaches within the same project
MODELS OF SDLC
Waterfall Model: is a linear and sequential SDLC model where each phase must
be completed before the next phase begins. It consists of distinct stages:
requirements analysis, system design, implementation, integration and testing,
deployment, and maintenance. Progress flows in one direction, like a waterfall,
ensuring a structured and disciplined approach to software development.
- Model, like the waterfall are termed as traditional model because they are
deficient in keeping with trends in software development today.
Spiral Model: is an iterative SDLC model that combines elements of both design
and prototyping. It emphasizes risk assessment and mitigation through repeated
cycles, or spirals, of development. Each cycle involves four main phases:
planning, risk analysis, engineering, and evaluation. This model allows for
incremental improvements and refinements, making it suitable for complex and
high-risk projects
Incremental Model: is an SDLC model where the software is developed and
delivered in small, manageable increments or modules. Each increment adds
functional components to the system until the complete product is finished.
Iterative Model is an SDLC model where the software is developed through
repeated cycles (iterations) rather than a single pass. Each iteration involves
planning, design, implementation, and testing.
Agile Model is an SDLC approach that emphasizes flexibility, collaboration, and
customer feedback. It involves iterative development through small, frequent
releases, allowing for rapid adjustments based on user feedback.
Big Bang Model is an SDLC approach where all activities, including planning,
design, coding, and testing, are performed simultaneously without much initial
planning. Development starts with the resources and efforts available, and the
product is built based on the available understanding.
SOFTWARE REQUIREMENT
Requirement: is a clear descriptions or explanation of what a system will do in a step by
step precise and detail manner. Requirements can be developed using diagrams such as
flowchart, use case diagram, ER diagram and word descriptions.
PERSONAS: A TOOL FOR CAPTURING REQUIREMENT
Personas are fictional characters, which you create based upon your research in order to
represent the different user types that might use your service, product, site, or brand in a
similar way. Creating personas helps the designer to understand users' needs, experiences,
behaviors and goals.
Purpose and Benefits:
Personas help designers visualize and understand the users who will use the
system.
They provide a detailed picture of the user’s education, lifestyle, interests, values,
goals, needs, limitations, desires, attitudes, and behavior patterns.
They assist in maintaining a user-centered perspective during the design process,
aiding in idea generation.
Implementation in Design:
Design team members use persona descriptions to keep the user's perspective in
focus.
Personas should be created at the beginning of the design process to clearly
capture the designer's understanding of the user.
Usage and Impact:
Personas are heavily used by companies like Microsoft in developing products
such as Windows and Internet Explorer.
They serve as a usability evaluation method that can be applied at various design
stages.
By creating personas, designers can better understand users’ needs, experiences,
behaviors, and goals, making the design task less complex and guiding ideation
processes.
They help designers step out of their own perspectives and recognize the diverse
needs and expectations of different users.
Role in Design Process:
Personas are fictional stories about imagined characters and their interactions with
the product to be developed (website, device, app, etc.).
They are defined early in the design process and guide the project team throughout
the product development cycle.
Overall, the personas are a crucial tool for user-centered design, helping to ensure that the
final product meets the needs and expectations of its intended users.
WHY PERSONAS ARE SO IMPORTANT IN DESIGN PROCESS.
User-Centered Design
Clear Understanding of Users
Consistency in Design
Improved Usability
Efficiency in Design Process
FOUR PERSPECTIVES THAT A PERSONA CAN ADD VALUE TO A
DESIGN
1. Goal-directed Personas: focusses on What does my typical user want to do with
my product?”. The objective of a goal-directed persona is to examine the process
and workflow that your user would prefer to utilize in order to achieve their
objectives in interacting with your product or service.
Goals perspective: Focuses on what the user wants to achieve, their
motivations, and end objectives when using the product or service.
2. Role-Based Personas: focusses on behavior. The role-based perspective focusses
on the user’s role in the organization. In some cases, our designs need to reflect
upon the part that our users play in their organizations or wider lives.
Behavior perspective: Examines how users typically interact with similar
products or services, their habits, and patterns of use.
3. Engaging Personas: are vivid and realistic descriptions of fictitious people
created to produce involvement and insight among designers. They move
designers from seeing users as stereotypes to actively involving themselves in the
personas' lives.
Attitude perspective: Considers the user's mindset, opinions, and emotional
responses towards the product or related experiences.
4. Fictional Personas: emerges from the UX design team's experience rather than
user research. It is based on assumptions from past interactions with the user base
to create a picture of typical users, useful for early involvement in the UX design
process but not reliable for guiding product development.
Looks at the environment and circumstances in which the user interacts
with the product, including physical, social, and cultural contexts.
USE OF COLORS IN DESIGN
The use of colors in design is very crucial because color affect people and evoke certain
ideas/attributes. How to build and apply color to interface design is important in order to
create usable applications. Designers should learn how to match color combinations to
interface to avoid color riot. The following guidelines should be used:
Use single neutral color for the background.
Black color is commonly use for the text.
It is better to use no color than multiple colors
Do not use white for background and soft yellow for the text, the text will fade
into the background
Best background colors are White, Red, Orange, Green, Blue, purple and pink.
White is the best for background color.
ACCESSIBILITY
Accessibility is a word used to describe whether a product/software can be used by
people with a wide range of abilities and disabilities. It aims to provide equal access to
information for all users, regardless of their abilities.
LAWS AND REGULATIONS REGARDING ACCESSIBILITY.
it must be suitable for the task.
it provides feedback on performance.
it conforms to the principles of software ergonomics.
it is easy to use and where appropriate adaptable to the user’s knowledge and
experiences.
STRATEGIES TO HELP THOSE WITH DISABILITIES USE THE
WEB.
i. Screen Reader
ii. Screen Magnifier
iii. Braille Display
iv. Sip & Puff switch
v. Foot mouse
vi. Voice Recognition
vii. Caption/ Subtitles
viii. High Contrast Layout
ix. Keyboard control
x. Spell Checker
AJAX
AJAX is short for Asynchronous JavaScript. Is a programming concept that uses various
web technologies to create asynchronous web applications. It is a technique that allows
for:
Asynchronous communication: updating parts of a web page without requiring a
full page reload.
JavaScript: executing scripts on the clients-side (in the browser) to dynamically
update contents.
It enables a more responsive and interactive user experience (UX) as users can interact
with a page without waiting for a full page to reload.
WEB 2.0
Refers to websites that emphasize user-generated content, ease of use, participatory
culture and interoperability. Web 2.0 websites allow users to interact and collaborate with
each other through social media dialogue as creators of user-generated content.
METAPHOR
The notion of metaphor in interaction design is the translation of physical to digital.
When you borrow concepts and rules so that users can apply their knowledge of the
physical world.
Metaphor is a design element that uses a familiar concept or object to represent an
abstract idea or function, making it easier for users to understand and interact with
a system.
WCAG (WEB CONTENT ACCESSIBILITY GUIDELINES)
WCAG are guidelines created by WAI (Web Accessibility Initiative). The purpose of
WCAG is to guide developers understands what they should be doing to make the web
accessible.
UX DESIGN (USER EXPERIENCE DESIGN)
UX Stands for User Experience. It refers to the overall experience a user has when
interacting with a product or service in a given environment. Depending on how the
product or service is designed.
UX is the way a person feels when using a software/product. It is all about how
easy, enjoyable and useful it is, to interact with the software. In short, it is about
making designs/things user-friendly, intuitive and delightful.
PRICIPLES/GUIDELINES/RULES FOR DESIGNIND USER
INTERFACE BY:
1. BEN SHNEIDERMAN an American Computer Scientist came up with the
following eight (8) guidelines about designing interactive system/User interface.
They are listed below:
Strive for Consistency.
Cater for Universal Usability.
Offer Informative Feedback.
Design Dialogs to yield closure.
Prevent errors.
Permit easy reversal of actions.
Support internal locus control.
Reduce short term memory load.
2. DONALD NORMAN. Donald in 1998 proposed seven principles to be used as a
guide in designing interactive systems. They are listed below:
Use both knowledge in the world and knowledge in the head.
Simplify task structures.
Make things visible.
Get the Mapping right.
Convert constraints into advantage.
Design for errors.
When all fails- Standardize.
3. JECOB NEILSEN comes up with the principles below to be used as a guide to
evaluate User Interface in order for the interface to be learned and use easily (to be
usable):
Visibility of System status
Match between the system and the real world
User control and freedom
Consistency and standards
Error prevention
Recognition rather than recall
Flexibility and efficiency of use
Aesthetic and minimalistic design
Help, diagnosis and recovery from errors
Documentation and Help
COGNITIVE WALKTHROUGHS
Is another evaluation technique that allows an evaluator to predicts the sort of difficulties
real users will encounter when interacting with the system under development. Cognitive
walkthroughs are a technique for imagining the user’s thoughts and actions when they
use an interface for the first time.
HTML VALIDATORS.
HTML Validators are software or tools used to evaluate websites and ensure they
conform with the Web Content Accessibility guidelines. They rated websites run through
them and give them ratings, e.g. A or AA or AAA. Examples of some HTML Validators
are:
A checker (www.achecker.ca)
Total Validator(www.totalvalidator.com)
W3C Markup Validator
W3C link checker
MULTI MODAL INTERFACE
Multimodal Interface enable a more free and natural interaction, interfacing users with
automated systems in both input and output
BRAIN-COMPUTER INTERFACES
brain-computer interfaces are new communication systems connecting the brain to an
external device. They enable two-way communication between the brain and the device
as well. Potential applications for this technology include communication devices,
cognitive enhancement technology, assistive technology, and medical apps, as well as
gaming and entertainment.
HAPTIC FEEDBACK SYSTEMS
Haptic feedback systems already allow users to experience AR and VR. In the future, this
technology will advance further to process various sensations and movements.