User-Interface-Lab-Manual
User-Interface-Lab-Manual
MCA
(TWO YEARS PATTERN)
SEMESTER - II (CBCS)
Module I
1. The UI life cycle 01
Module II
2. Requirement gathering 09
Module III
3. Analysis 14
Module IV
4. Design 42
Module V
5. Build and test the low fidelity prototype 61
Module VI
6. Implementation 100
Module VII
7. Testing 119
F.Y. MCA
SEMESTER - II(CBCS)
2. Requirement gathering: 2
Include the business purpose and user needs.
Self Learning Topics: Understand the user, types of
users, requirement gathering techniques, contextual
enquiry.
3. Analysis: 4
User analysis, Task analysis, Domain analysis
Self Learning Topics: Identifying the types of tasks,
design objects model, contextual analysis.
4. Design: 4
Scenario, Storyboard designs.
Self Learning Topics: Principles of good design,
Mental model
6. Implementation: 6
Working implementation of the chosen project. Light
weight page loading, optimal design.
Self Learning Topics: Implementation tool, user
friendly design.
7. Testing: 2
Evaluate the interface with a small user test and write a
final reflection
Self Learning Topics : Testing Techniques
Module I
1
THE UI LIFE CYCLE
The UI life cycle: Introduction to UI life cycle and UI tools. Self Learning
Topics: phases and importance of UI life cycle
EXPERIMENT NO. 1
AIM: Introduction to UI life cycle and UI tools.
OBJECTIVE: Understand the importance of User Interface Design
(UI) Process.
THEORY:
Introduction:
● A user interface, also called a "UI" or simply an "interface," is the
means in which a person controls a software application or hardware
device.
● A user interface is the point of human-computer interaction and
communication on a device, webpage, or app.
● This can include display screens, keyboards, a mouse, and the
appearance of a desktop. User interfaces enable users to effectively
control the computer or device they are interacting with.
● User interface is important to meet user expectations and support
effective functionality.
● A successful user interface should be intuitive, efficient, and user-
friendly.
● Nearly all software programs have a graphical user interface, or GUI.
This means the program includes graphical controls, which the user
can select using a mouse or keyboard.
● A typical GUI of a software program includes a menu bar, toolbar,
windows, buttons, and other controls.
● User Interface Design is the craft and process of designing what a user
interacts with when communicating with software.
Types of UI are:
1. Form-based user interface: Used to enter data into a program or
application by offering a limited selection of choices. For example, a
settings menu on a device is form-based.
1
User Interface Lab
Fig. 2 GUI
3. Menu-driven user interface: A UI that uses a list of choices to
navigate within a program or website. For example, ATMs use menu-
driven UIs and are easy for anyone to use.
2
The UI life cycle
Fig. 3 Menu-driven UI
4. Touch user interface: User interface through haptics or touch. Most
smartphones, tablets and any device that operates using a touch screen
use haptic input.
Fig. 4 Touch UI
5. Voice user interface: Interactions between humans and machines
using auditory commands. Examples include virtual assistant devices,
talk-to-text, GPS and much more.
Fig. 5 Voice UI
3
User Interface Lab UI LIFE CYCLE:
UI TOOLS:
There are multiple UI tools present such as:
a. MockFlow:
1. MockFlow WireframePro is the leading tool for designing User
Interface blueprints for Websites and Apps. It includes ready-made UI
components for iOS, Android, Web, Bootstrap, WatchOS.. etc; and also
comes with a built-in template store to quickly turn your User Interface
Ideas into designs.
Fig. 7 MockFlow
b. Balsamiq:
1. Balsamiq Wireframes is a user interface design tool for creating
wireframes (sometimes called mockups or low-fidelity prototypes).
2. You can use it to generate digital sketches of your idea or concept for
an application or website, to facilitate discussion and understanding
before any code is written. The completed wireframes can be used for
user testing, clarifying your vision, getting feedback from
stakeholders, or getting approval to start development.
5
User Interface Lab
Fig. 8 Balsamiq
c. Axure:
1. Axure is a dedicated rapid prototyping tool that allows anyone with
even a basic familiarity with the software to create simple wireframes.
It uses a ‘what you see is what you get’ (WYSIWYG) interface that
allows you to drag shapes onto a canvas and build up your design.
2. Axure is particularly well suited to low-fidelity prototyping as it has a
very short learning curve. Within a few hours, anyone can be creating
designs that are quick and cheap to change. A single click will render
your prototype in a web browser on your desktop, tablet or phone and
allow you to gain feedback from users or other stakeholders.
Fig. 9 Axure
6
d. Adobe XD: The UI life cycle
1. Adobe XD (also known as Adobe Experience Design) is a vector-based
user experience design tool for web apps and mobile apps, developed
and published by Adobe Inc.
2. Adobe XD supports website wireframing and creating click-through
prototypes.
3. Adobe XD creates user interfaces for mobile and web apps. Many
features in XD were previously either hard to use or nonexistent in other
Adobe applications like Illustrator or Photoshop.
Fig. 10 Adobe XD
e. Sketch:
1. Sketch is a vector graphics editor for macOS developed by the Dutch
company Sketch B.V.
2. It is primarily used for user interface and user experience design of
websites and mobile apps and does not include print design features.
3. Sketch has more recently added features for prototyping and
collaboration. Being only available for macOS, third party software
and handoff tools may be used to view Sketch designs on other
platforms.
7
User Interface Lab
Fig. 11 Sketch
CONCLUSION:
We successfully learnt about UI life cycle and UI Tools.
8
Module II
2
REQUIREMENT GATHERING
Requirement gathering: Include the business purpose and user needs.
EXPERIMENT NO. 2
Aim: Project Proposal Digital Wallet
Objective:
● The main objective of the project proposal is to develop a Smartphone
application that enables the users to perform any sort of transaction
securely through their bank accounts connected to the application over
the internet.
● This system is hassle free and more convenient for current modes of
transactions which are performed physically.
● Improve wallet apps with more security features like roll-backing a
transaction and reporting a transaction as fraud.
Theory:
Overview:
● The project proposal is aimed to provide the user with an option to
perform all sorts of transactions over the internet.
● Users can perform all transactions and the transactions will be done
over users bank accounts which he/she can connect with the
application.
● This will help the user to perform these transactions easily and is
hassle free.
● This application allows users to make in-store payments without
having to carry cash or physical credit cards.
Problem Statement:
● In today’s date most of the transactions are done over the internet.
● There are very few Digital Wallets available at today's date and very
less awareness.
● Normally to do any transaction one has to go to the nearest bank or
ATM to perform the transaction. Or while doing any type of shopping
one needs to carry the hard cash to buy or sell the goods. This is time
consuming and also extremely hectic.
9
User Interface Lab ● The project proposal aims to develop a new payment method for all
sorts of transactions over the Smartphone.
● You can perform bank transactions and also can do shopping and
perform transactions over the internet. This not only saves time but
also is a seamless and easy process.
● In present digital wallets there are many limitations like Number of
transactions we can make in a day are very less and for each
transaction the digital wallet deducts some extra processing fee which
is the same for different amounts.
Purpose:
● The purpose of this project is to increase the usability of digital wallets
and make transactions securely. Most of the current wallets have
difficult and complex systems designs and User Interfaces. The aim of
this project is to create a prototype of a mobile wallet app and make
the UI/UX simpler
● A background of electronic transactions and Digital wallet-
● A number of electronic commerce applications allow end-users to
purchase goods and services using digital wallets. Once a user decides
to make an online purchase, a digital wallet should guide the user
through the transaction by helping him or her choose a payment
instrument that is acceptable to both the user and the vendor, and then
hide the complexity of how the payment is executed. A number of
wallet designs have recently been proposed, but we will argue they are
typically targeted for particular financial instruments and operating
environments. In this paper, we describe a wallet architecture that
generalizes the functionality of existing wallets, and provides simple
and crisp interfaces for each of its components.
What is a Digital Wallet?
● A digital wallet is a software component that provides a client with
instrument management and protocol management services.
● It is a software-based system that securely stores users' payment
information and passwords for numerous payment methods and
websites. By using a digital wallet, users can complete purchases
easily and quickly with near-field communications technology.
● They can also create stronger passwords without worrying about
whether they will be able to remember them later. Digital wallets can
be used in conjunction with mobile payment systems, which allow
customers to pay for purchases with their smartphones.
● A digital wallet can also be used to store loyalty card information and
digital coupons.
● They are capable of executing an operation using an instrument
according to a protocol. A digital wallet presents its client with a
standard interface of functions; in the case that the client is a human
user, this standard interface of functions may be accessed through a
graphical user interface (GUI).
10
● A digital wallet is linked into an end-user, bank, or vendor application Requirement gathering
and provides the application with instrument management and protocol
management services. The digital wallets that are linked into vendor
and bank applications provide these management services in the same
way that end-user digital wallets do.
● A vendor’s digital wallet, however, may be part of a much larger
software application that is integrated with order and fulfillment
systems. Furthermore, a wallet is not limited to being a plug-in or
applet or some other extension of a web browser.
● A digital wallet with a graphical user interface may also run as an
application on its own.
● A digital wallet may also run on computers that are not connected to
the Internet such as smart cards or personal digital assistants. The user
interface to the digital wallet may vary in such
Proposed System:
● There are many applications in a smartphone which have their own e-
wallets. So when you make any purchase of goods or services through
these applications you get various options for making payment.
Generally people add money to their e-wallet and pay them. In other
words, it is handling separate wallets for different applications which
is an overhead. So if we have money in our e- wallet but we cannot use
it for other applications Therefore, money in the e-wallet of earlier
applications will be of no use until you make any payment or
transaction through it.
1. In response to this problem, we propose a technique which makes the
separate e- wallets of different applications centralized. One can use
the money on any platform without any restrictions. There are some
apps that might charge you for doing a transaction.
2. Generally, provide all the offers that are cash backs that can only be
transferred to the bank after paying a fee. In all current digital wallets
there are many limitations like Number of transactions we can make in
a day are very less and for each transaction the digital wallet deducts
some extra processing fee which is the same for different amounts
Whether we transfer a hundred or thousands of money.
3. In most wallet apps there are limitations like a fixed number of
transactions but in this system that won’t be the case. In our app, there
will be no limitations on the number of transactions.
Specifications/Modules:
1. Send/Receive Money-
This is the main task of this app. Users can send and receive money from
their contacts who’re using this application. The system will create a
transaction for each money transfer operation.
11
User Interface Lab 2. Request Money-
Users can request for money to their contacts and the receiver user will get
a message to send the requested amount or not. If yes then the requested
amount will be deducted from the user.
3. View Past Transactions-
Users can view all the passed transactions they’ve made along with the
transaction details like transaction id, timestamp, sender, amount etc.
4. Pay Later Function-
If the user is having insufficient money in his wallet and they’re making a
transaction then that transactions will be added to Pay later transactions
history and the equivalent amount will be deducted after a person adds
money in their the wallet
5. Rollback Transactions-
If the user sees some transactions that are not made by them or if they see
any malicious activities with their account (password change emails, otps
etc) they can request for a rollback transaction in the support.
6. User Profile-
User can update their profile details like email, phone number and change
their password
7. Add/Remove Bank Account-
Users can add and remove new bank accounts from the app.
System Design:
Created using Framer
12
Flowchart: Requirement gathering
13
Module III
3
ANALYSIS
Learning Objectives:
To make the learners familiar with the importance of requirement and user
analysis for a particular project and the techniques to be used.
Learning Outcomes:
The learners will acquire the knowledge to analyze a software project
using the given techniques.
14
Analysis
Flow chart Notations
15
User Interface Lab Notation
i. Level 0 DFD –
16
Analysis
iii. Level 2 DFD – Detailing of Level 1 DFD
17
User Interface Lab Example of Entity Relationship Diagram (ERD) for Shopping Cart
System
19
User Interface Lab Petri Net for Order Processing System
20
Analysis
SOLUTION
Online shopping UML use case diagram example top level use cases.
View Items use case is extended by several optional use cases customer
may search for items, browse catalog, view items recommended for
him/her, add items to shopping cart or wish list. All these use cases are
extending use cases because they provide some optional functions
allowing customer to find item. Customer Authentication use case is
included in View Recommended Items and Add to Wish List because
both require customer to be authenticated. At the same time, item could be
added to the shopping cart without user authentication.
Checkout use case includes several required uses cases. Customer on
web should be authenticated. It could be done through user login page,
user authentication cookie ("Remember me") or Single SignOn (SSO).
Web site authentication service is used in all these use cases, while SSO
also requires participation of external identity provider.
Checkout use case also includes Payment use case which could be done
either by using credit card and external credit payment service or with
PayPal.
21
User Interface Lab USE CASE SCENARIO 2
Use Case Diagram Demonstrating the Atm Transaction
22
Analysis
A teacher can check attendance, check timetable, check test scores, update
attendance and update the score. The student, on the other hand, can check
attendance, timetable, and test score. The interactions of the student and
the teacher are what sum up the student management use case diagram
example.
This use case diagram example shows the various interaction by the
inventory management UML case diagram. The main elements in these
inventory management systems are the owner, manager, inspector,
supplier, and inventory clerk.
The other use cases includes purchase stock, payment for stock, return
stock, quality control of stock, defective shipment, distribute/sell stock and
provide stock shipment. The use case has several interactions and builds
up the inventory management system.
23
User Interface Lab The owner can purchase stock and make payments for the stock. The
manager has the return stock use case. The inspector is concerned with the
quality control of stock and defective shipment. The inventory clerk
distributes/ sells the stock, and the supplier has the payment for stock and
provides stock/ shipment use cases.
b) Task Analysis
Task analysis is the process of interpreting how users accomplish their
tasks through a software system / application or other product. This type
of analysis focuses on:
● What the users' goals are
● What the users do to achieve those goals
● The workflow the users follow to accomplish their tasks
● What the users' level of experience is
● How the users are affected by their physical environment
It’s important to perform a task analysis early in your process, in particular
prior to design work. Task analysis helps support several other aspects of
the usercentred design process, including:
● Website requirements gathering
● Developing your content strategy and site structure
● Wireframing and Prototyping
● Performing usability testing
24
Analysis
Process used for Cognitive Task Analysis
● Interviewing Methods
● Team Communication Methods
● Diagramming Methods
● Verbal Report Methods
● Psychological Scaling Methods
25
User Interface Lab Cognitive Task Analysis using flow chart to determine an oral clinical
diagnosis
26
Analysis
7. Optional: Locate
7. Locate the Country field.
the Address Line 2 field.
11. Move the insertion point to 11. Move the insertion point to the
the field. field.
12. Type the town or city. 12. Type the phone number.
27
User Interface Lab Example of Hierarchical Task Analysis to borrow a Library book
WBS benefits: -
● it defines and organizes the work required
● it facilitates the quick development of a schedule by allocating effort
estimates to specific sections of the WBS
● it can be used to identify potential scope risks if it has a branch that
is not well defined
● it provides a visual of entire scope
● it can be used to identify communication points
● it provides a visual of impacts when deliverables are falling behind
● it can be used to show and assign accountabilities and
responsibilities
● it can show control points and milestones
28
Analysis
Example: Work breakdown structure-(WBS) demonstrating the
prerequisite before the software goes live
(d) Concur Task Trees for Task Analysis: is a notation for task model
specifications useful to support design of interactive applications
specifically tailored for user interface modelbased design.
29
User Interface Lab
30
Analysis
The symbols on the arcs indicate the kind of temporal operator. In the
above diagram a choice is given between booking a single or double room.
However, it is necessary to select the room type before making the
reservation. The choice of room type is an input to the reservation task.
CTT has a rich visual vocabulary for its temporal operators. The three
kinds of node symbols differentiate between tasks requiring user input,
tasks involving the user reading output presented by the application and
grouped tasks.
31
User Interface Lab Example of optional task : In the above diagram the once the task
CloseCurrentNavigation is performed then the task Select Museum is
enabled again because the parent task is iterative. This means that it can be
performed multiple times and so its first subtask is enabled once the last
one has been completed.
Optional tasks have a subtle semantics in CTT. They can be used only
with concurrent and sequential operators. Their name is closed between
squared brackets. For example, in Figure 4 Specify type of seat and
Specify smoking seat are optional tasks. This means that once the
mandatory sibling tasks (Specify departure and Specify arrival) are
performed then both the optional tasks and the task after the enabling
operator (Send request) are enabled. If the task after the enabling operator
is performed, then the optional tasks are no longer available.
In the task model, tasks inherit the temporal constraints of the ancestors.
So, for example in Figure below ShowAvailability is a subtask of
MakeReservation and since Make Reservation should be performed after
SelectRoomType then this constraint will apply also to ShowAvailability.
For editing a document, you will open the document and then edit.
Opening the document is a prerequisite for editing the document and
close document.
c) DOMAIN ANALYSIS: It refers to understanding the domain
requirements of the proposed software. It refers to understanding of the
users work environment that will be automated using the proposed system.
A domain expert is a person who has experience and knowledge of the
given domain. Domain analysis is used to identify design patterns in
software and data
32
Analysis
The “specific application domain” can be for organic, semidetached or
embedded systems which are systems that differ in terms of its
complexity. For example Domain can range from College, banking to
avionics, multimedia video games to applications within an MRI device.
The goal of domain analysis is to find or create those classes that are
broadly applicable, so that they may be reused.
Domain analysis is an ongoing umbrella software engineering activity that
is not connected to any one software project. In a way, the role of a
domain analyst is like the role of a master tool smith in a heavy
manufacturing environment. The job of the tool smith is to design and
build tools that may be used by many people doing similar but not
necessarily the same jobs. The role of the domain analyst is to design and
build reusable components that may be used by many people working on
similar but not necessarily the same applications.
Figure illustrates key inputs and outputs for the domain analysis process.
Domain Analysis methodologies include Unified modelling language
diagrams Class diagram, Component diagram, Package diagram, etc. and
Entity relationship diagrams
Examples
Entity Relationship Diagram for College Management System for
understanding the college domain
33
User Interface Lab Class diagram for Admission System
34
Analysis
Classes of Library Management System:
Student Class
Attributes –Class
35
User Interface Lab Class diagram for Library Management System
36
Analysis
Technical Domain Analysis of IPOD
37
User Interface Lab
Each physical library item book, tape cassette, CD, DVD, etc. could have
its own item number. To support it, the items may be barcoded. The
purpose of barcoding is to provide a unique and scannable identifier that
links the barcoded physical item to the electronic record in the catalogue.
Barcode must be physically attached to the item, and barcode number is
entered into the corresponding field in the electronic item record.
Barcodes on library items could be replaced by RFID tags. The RFID tag
can contain item's identifier, title, material type, etc. It is read by an RFID
reader, without the need to open a book cover or CD/DVD case to scan it
with barcode reader. Book item class is inherited from book class.
Context models provides birds eyeview of a system . They depict the
context of a business, a system, or a process. Here is a simple context
model of a catering company:
Practical Questions
1) Prepare a UML Class diagram for Online Shopping
2) Create a Work break down structure for the task of website
designing based on the following inputs
4.3 Integrate
1.Gather 2.2.3 Navigation
1.3.2 Page views back end and
Requirements layout
front end
1.1 Technical 2.3 Content 5. Create
1.3.3Session length
specifications elements Content
5.1 Create
1.1.1 Expected
2. Establish Design 2.3.1 About page content
bandwidth
summary
1.1.2 User 2.1. Design 2.3.2 Contact 5.2 Establish
registration elements page content details
5.3 Assign
1.1.3 Restricted 2.3.3 Services
2.1.1 Banner content
areas page
creation
5.4 Create
1.2 User
2.1.2 Footer 2.3.4 FAQ page detailed
requirements
content
6. Load
1.2.1 Menu 2.3.5 Photo
2.1.3 Logo Content 7. Test
navigation Gallery
Site
3. Select
1.2.2 Interactive 2.1.4 Color
Technical 7.1 Navigation
modules scheme
Framework
39
User Interface Lab
3.1 Evaluate
7.2 Interactive
1.2.3 Static pages 2.1.5 Font usage options against
elements
requirements
3.2 Evaluate cost
7.2.1 Contact
1.2.4 Flash 2.2 Overall layout and time to
form
elements develop
1.3 Reporting 2.2.1 Column 3.3 Make 7.2.2 User
requirements setup decision registration
4. Implement
1.3.1 Bandwidth & 2.2.2 Optional 7.3 Browser
Technical
usage modules compatibility
Framework
4.1 Build or 8. Roll Out
acquire back end Site
4.2 Build or
8.1 Establish
acquire front end
target date
(user interface)
8.2 Create
communication
plan
8.3 Make site
live
3) For the below given hierarchy description draw the concur task tree
model
41
Module IV
4
DESIGN
Learning Objectives: To make the learners familiar with the different
levels of designs to be created in a software project and the technique used
for designing.
Learning Outcomes: The learners would be enabled to design a software
project.
42
Design
User Interface(UI) User Experience(UX)
It is a human first approach to It is a human first approach to
designing the aesthetic experience product design
of a product.
Focus: Visual touch points that The focus is on the full experience
allows to interact with the product. from the first contact till last.
43
User Interface Lab Architectural Design Example
44
Design
46
5. Consistency: There should not be any inconsistency in the design. Design
47
User Interface Lab
48
Design
49
User Interface Lab ● What exceptions can the task encounter?
● How will the job be accomplished?
● What errors can we encounter in the process?
How many ways do we have to accomplish the task? (Basic paths and
alternative paths)
A scenario is a sequence of steps describing an interaction between a user
and a system. So, if we have a Web-based on-line store, we might have a
Buy a Product scenario that would say this:
The customer browses the catalogue and adds desired items to the
shopping basket. When the customer wishes to pay, the customer describes
the shipping and credit card information and confirms the sale. The
system checks the authorization on the credit card and confirms the sale
both immediately and with a follow-up email.
This scenario is one thing that can happen. However, the credit card
authorization might fail. This would be a separate scenario.
A use case, then, is a set of scenarios tied together by a common user goal.
In the current situation, you would have a Buy a Product use case with the
successful purchase and the authorization failure as two of the use case's
scenarios. Other, alternative paths for the use case would be further
scenarios. Often, you find that a use case has a common all-goes-well
case, and many alternatives that may include things going wrong and also
alternative ways that things go well.
A simple format for capturing a use case involves describing its primary
scenario as a sequence of numbered steps and the alternatives as variations
on that sequence, as shown below
50
Design
USER STORY/STORYBOARD
The user story is a faster and less specific tool typically used in agile
methodologies. The focus of the user story is on developing short
descriptions of user-cantered needs. User stories are simplified versions of
requirements. A user story should also focus on being valuable to the end-
user. A user story should be short, estimable, and testable. It is essential to
mention that user stories do not replace requirement documentation since
requirements deal with the product’s specifications and technical aspects.
● The user story answers questions like:
● Who will perform the task?
● What does that user need to do?
● Why does the user need to accomplish the task?
51
User Interface Lab
52
Design
53
User Interface Lab
54
Banking app User Story Example Design
The user in this user story example wants to pay their balance, so the first
thing the design team might do is start working on a solution that gives
them more or less instant access to their credit card balance. Either it
should be the first thing they see when they open the app or there should
be a clear option to see the balance of that card that’s just a tap away.
BBC Sports User Story Example
In this example, the BBC were thinking of adding a share button to their
sports articles, with the idea that readers can share sports related news and
also get their friend’s opinions. It’s complete, conveys a lot of information
and the logic is simple. It definitely justifies the need for a share button
and points at someone having done quite a bit of research into their user
base prior to penning this user story.
55
User Interface Lab
56
User Stories and Technical stories for a Banking system Design
57
User Interface Lab Use case story vs Use case vs Use case scenario
Example 1 :-
For a mobile app sign-in; the user story will be User A needs to SIGN IN
to access the application . Lets consider the (Who, What, Why) of the
same
we developed the use case: first, we need to open the app, verify
connectivity in the device, and then present the user the options that they
must accomplish the task.
The user can sign in using multiple ways. He can sign-in using our
Facebook account, Twitter account, or email. The use case is sign-in;
each of the options to sign in is a use case scenario. All the situations
lead to the same outcome, but as users, we will encounter different
interfaces depending on our choice of sign-in.
Example 2: For example, you are a carpenter planning to craft a door. The
use case for this scenario would consist of all the steps taken by the
carpenter to achieve the goal. This whole documentation would help study
the flaws and errors of the process. Collection of Use case scenarios will
make a use case for eg use case scenario to open the door, close the door,
view through the peephole. User stories would be the door must have an
easy interface to open and close, It must be secured, It must look good, It
must be durable etc.
58
Example 3 :- Use Case Scenario for warehouseOnFire Design
59
User Interface Lab “nice to have” when building the system. An example of a user story is
shown below.
As a doctor, I need to get up to medical date records so that I know how to
proceed with my patients’ treatment
Example of Use Case
Use case: Review Records
Actor: Doctor
Steps: Doctor walks into room
Doctor sees patient in bed
Doctor identifies patient in bed
Doctor sees medical charts on foot of bed
Doctor gets medical charts from foot of bed
Doctor opens medical charts
Doctor reads medical charts
Doctor changes pages to continue reading
Doctor closes medical chart
In summary, the scenarios, user stories, and user cases are not the same
thing although they are used interchangeably. While the context may help
determine which of the three approaches is best (scenarios when dealing
with researchers, stories in an agile environment, cases for developers),
make sure everyone in a design sprint and project group understands the
differences to avoid confusion around deliverables.
Practical Questions :-
1) Create a User Scenarios and User Story for Airline
Reservation/Railway Reservation system.
2) Create a Storyboard for
a) University Online Admission Management System.
b) Steps of Purchasing some items from a shopping center.
c) Steps of Installing any software on computer machine.
3) For the given list of different scenarios, draw Series of Sketches and
A story Board prototypes for each scenario on the paper by using
pen or pencil or can use any tool to accomplish the same
a) Steps of using ATM Machine for withdraw or deposit of money.
b) Steps for purchasing online
c) Architectural Design of Health App.
60
Module V
5
BUILD AND TEST THE LOW FIDELITY
PROTOTYPE
Learning Objectives:
To familiarise the learner with different levels of design and their
applications.
To introduce them to Figma tool- a tool for prototyping
Learning Outcomes:
The learners would know the applications of different levels of design and
accordingly could create it for their project.
61
User Interface Lab
62
Blockframe :- Block framing is a minimalistic approach in user interface Build and Test the Low
designing wherein design can be quickly created as block containing Fidelity Prototype
various user interface elements. It is essentially a “light wireframe.” It
doesn’t replace wireframing or other highly detailed, functional
prototypes—instead, block framing is an effective way to organize and
present ideas quickly. Rather than focusing on the details and the data
necessary to create your design, blocks and other shapes give you a quick
idea of where the data will be and how the data will flow. It follows a
minimalist approach in displaying the details.
Benefits of Wireframe
Easy to communicate. A wireframe is a good way to communicate. It can
reduce the communication barriers between you and your team members.
63
User Interface Lab Sometimes, it is also a good way to demonstrate your design ideas to
customers and other stakeholders.
Fast to build. You can easily express your ideas by drawing a wireframe
with paper and pens. For better and faster communication, you need not
pay much attention to details. It's OK to use placeholders and simple texts
to showcase everything.
Low cost. The cost of creating a wireframe with paper and pen can be
zero. Even when you use a free wireframe tool, the cost is very low.
Wireframe is used during the brainstorming session of the project to
understand the macro elements of the proposed project.
Types of Wireframes
a) Low Fidelity Wireframes
a) High Fidelity Wireframes
● Low-fi wireframes refer to paper wireframes
● At the brainstorming stage, many designers love to draw out their
web/app interfaces directly on paper, creating a paper wireframe for
discussion and interaction.
● Since these sketches usually showcase a part or major parts of a
website/app roughly, without many UI details, they are low-fidelity
wireframes.
64
Build and Test the Low
Fidelity Prototype
65
User Interface Lab
67
User Interface Lab Interface/Mockups
A mockup is a static wireframe with much more UI and visual details. If a
wireframe is considered as the blueprint of a building, a mockup is similar
to a real-life building model. It gives viewers a more realistic impression
of how the final website/app will look like, So, it is good for
communicating, discussing, collaborating and iterating projects with
your team members at a later design stage.
Briefly, unlike wireframes with gray lines, boxes and placeholders,
mockups are built with more visual details of the final web/app:
● Rich colors, styles, graphics, and typography
● Actual buttons and texts
● Content layouts and component spacing
● Navigation graphics
Mockup Benefits
1. Showcase rich project details for better communication
Mockups showcase rich project details. It is easy for you and your team to
communicate and discuss about a specific detail.
HOME PAGE
Manager
69
User Interface Lab Customer
70
Build and Test the Low
MINI STATEMENT FUNCTIONALITY FOR MANAGER/CUSTOMER
Fidelity Prototype
71
User Interface Lab Mockup for music store portal
72
● The cost of creating a specific type of waste is completely wasted because Build and Test the Low
the prototype is eventually discarded. Fidelity Prototype
Prototyping Objectives
1) To provide the user basic understanding of how the proposed system
would look and behave.
2) It triggers thinking of the end user on what more to expect from the
software . This is especially true when a user moves from a manual system
to automated. In the initial phases he does not know what to expect from
the new system.
3) To have clarity in understanding the requirements
Evolutionary Prototyping
Here, the prototype developed is incrementally refined based on
customer’s feedback until it is finally accepted. It helps you to save time
as well as effort. That’s because developing a prototype from scratch for
every interaction of the process is time consuming. This model is helpful
for a project which uses a new technology that is not well understood. It is
also used for a complex project where every functionality must be checked
once. It is helpful when the requirement is not stable or not understood
clearly at the initial stage. The same can then be used with enhancement as
an actual system.
Incremental Prototyping
In incremental Prototyping, the final product is decimated into different
small prototypes and developed individually. Eventually, the different
prototypes are merged into a single product. This method is helpful to
reduce the feedback time between the user and the application
development team.
Extreme Prototyping:
Extreme prototyping method is mostly used for web development. It is
consisting of three sequential phases.
1. Basic prototype with all the existing page is present in the HTML format.
2. You can simulate data process using a prototype services layer.
3. The services are implemented and integrated into the final prototype.
74
Paper prototype example- Describing the interaction flow in a Flight Build and Test the Low
Reservation app. Fidelity Prototype
75
User Interface Lab Wireframe vs Prototype vs Mockup
Prototypes not necessarily will be the final product — they have different
fidelity. The fidelity of a prototype refers to the level of details exhibited
in product design. Fidelity- Low or High differs in the areas of:
● Visual design
● Content
● Interactivity
The prototype’s fidelity based on the goals of prototyping, completeness
of design, and available resources.
Levels of Prototype
● Low Fidelity prototype
● High Fidelity prototype
Low-fidelity prototyping
Low-fidelity (lo-fi) prototyping is a quick and easy way to translate high-
level design concepts into tangible and testable artifacts. The first and
most important role of lo-fi prototypes is to check and test functionality
rather than the visual appearance of the product.
Here are the basic characteristics of low-fidelity prototyping:
● Visual design: Only some of the visual attributes of the final product are
presented (such as shapes of elements, basic visual hierarchy, etc.).
● Content: Only key elements of the content are included.
● Interactivity: The prototype can be simulated as required. During a
testing session, a particular person who is familiar with design acts as a
computer and manually changes the design’s state in real-time.
Interactivity can also be created from wireframes, also known as
“connected wireframes.” This type of prototype is basically wireframes
linked to each other inside an application like PowerPoint or Keynote, or
by using a special digital prototyping tool such as Adobe XD.
76
Build and Test the Low
Pros
Fidelity Prototype
● Inexpensive. The clear advantage of low-fidelity prototyping is its
extremely low cost.
● Fast. It’s possible to create a lo-fi paper prototype in just five to ten
minutes. This allows product teams to explore different ideas without too
much effort.
● Collaborative. This type of prototyping stimulates group work. Since lo-fi
prototyping doesn’t require special skills, more people can be involved in
the design process. Even non-designers can play an active part in the idea-
formulation process.
● Clarifying. Both team members and stakeholders will have a much clearer
expectation about an upcoming project.
Cons
● Uncertainty during testing. With a lo-fi prototype, it might be unclear to
test participants what is supposed to work and what isn’t. A low-fidelity
prototype requires a lot of imagination from the user, limiting the outcome
of user testing.
● Limited interactivity. It’s impossible to convey complex animations or
transitions using this type of prototype.
Low fidelity prototyping can be done through paper, or any
wireframe tool, PowerPoint slides, Adobe XD, Sketch. Paper
prototyping is popular with low fidelity prototypes.
High-fidelity prototyping: -
High-fidelity (hi-fi) prototypes appear and function as similar as possible
to the actual product that will ship. Teams usually create high-fidelity
prototypes when they have a solid understanding of what they are going to
build and they need to either test it with real users or get final-design
approval from stakeholders.
77
User Interface Lab The basic characteristics of high-fidelity prototyping include:
● Visual design_: _ Realistic and detailed design — all interface elements,
spacing, and graphics look just like a real app or website.
● Content: Designers use real or similar-to-real content. The prototype
includes most or all of the content that will appear in the final design.
● Interactivity: Prototypes are highly realistic in their interactions.
Pros
● Meaningful feedback during usability testing. High-fidelity prototypes
often look like real products to users. This means that during usability
testing sessions, test participants will be more likely to behave naturally —
as if they were interacting with the real product.
● Testability of specific UI elements or interactions. With hi-fi
interactivity, it’s possible to test graphical elements like affordance or
specific interactions, such as animated transitions and micro interactions.
● Easy buy-in from clients and stakeholders. This type of prototype is
also good for demonstrations to stakeholders. It gives clients and potential
investors a clear idea of how a product is supposed to work. An excellent
high-fidelity prototype gets people excited about your design in ways a lo-
fi, bare-bones prototype can’t.
Cons
● Higher costs. In comparison with low-fidelity prototypes, creating high-
fidelity prototypes implies higher costs, both temporal and financial.
78
Build and Test the Low
Fidelity Prototype
79
User Interface Lab 2) Select the right audience. Try taking feedback from extreme users. If you
are working on an idea related to a supermarket, for example, your
extreme users could be people who shop at supermarkets every day, and
— at the other end of the scale — people who never shop at supermarkets.
Testing your prototypes on extreme users will often help you uncover
some problems and relevant issues that affect regular users, because the
extreme users tend to be more vocal about their love (or dislike) of doing
things related to your prototype. If your product or service is cross-
regional or international, you should also test your prototypes
across regions and countries. Towards the final stages of your project,
you should also get feedback on your prototypes from stakeholders other
than your users. Internal stakeholders in your company, manufacturers,
retailers and distributors will each have their own criteria for building,
making or shipping a product or service, and can have an impact on the
success of your idea.
3) Ask the right questions :- Every prototype is created with some objective .
Frame your questions based on it For For instance, if you have built your
prototype to gather feedback about the usability of your product, then you
should gear your testing session towards teasing out how usable the
prototype is to the user. Subsequently, in a post-testing interview session
with your user, you should then focus on finding out the positive and
negative feedback relating to usability.
4) Be Neutral during testing :- Do not react to the users or defend if negative
feedback is received. Stay calm and accept all feedback.
5) Adapt testing:- When you conduct tests on your prototypes, try to adopt
a flexible mindset. For instance, when you realise that certain components
of your prototype are drawing attention away from the core functions of
the prototype, you can remove these or change them in order to bring the
focus back to the key elements of your idea. In addition, if you think that
your planned script for the testing session does not work well, feel free to
deviate from it and improvise during the testing session in order to get
the best feedback from your users.
6) Be open to ideas from stakeholders: - Stakeholders are important to us and
thus their feedback . Testers should be open to the ideas received from
stakeholders.
TESTING THE FUNCTIONALITY OF THE USER INTERFACE
ELEMENTS
User Interface Elements- Text box, Radio Button, Check Box, Drop
down list etc.
Demonstration of Test Steps, Test Scenarios and Test Cases from
User Scenarios
80
Build and Test the Low
Test Case Template
Fidelity Prototype
Test Test Case Expected Actual Pass/
Test Data
Case # Description Result Result Fail
Email:
guru99@
Check response
email.co Login
when valid email Login was
1 m should be Pass
and password is successful
Password: successful
entered
lNf9^Oti7
^2h
Examples: -
81
User Interface Lab
82
Build and Test the Low
Fidelity Prototype
83
User Interface Lab
84
Build and Test the Low
Fidelity Prototype
85
User Interface Lab
86
Build and Test the Low
2. Take a look around the Figma interface
Fidelity Prototype
The look and feel of the Figma interface is quite minimal, but it belies a
set of powerful features. Here’s an explanation of the interface’s main
areas (labelled above):
Menu:
Unlike regular desktop design apps, Figma’s menus can be found by
clicking the hamburger button in the top-left of the screen. Take a minute
to browse around these menus and see what’s there! You can also search
for the specific command you need. Start typing in “rectangle” and you’ll
quickly find the Rectangle Tool, complete with a handy reminder of its
keyboard shortcut (it’s R, by the way).
Tools:
Here you can quickly access the tools you’re likely to use most often:
frames, shapes, text, etc. (We’ll cover all these tools in the next couple of
days!)
Options:
This area shows extra options for whichever tool you have selected. When
no object is selected (as shown above), Figma displays the file name.
When an object is selected, contextual options appear here.
Layers:
Where every element in the file is listed, organized into Frames and
Groups.
Canvas:
This is where you create and review all your work.
87
User Interface Lab Inspector:
The Inspector shows contextual information and settings for whatever
object is selected. In the image above, we’re seeing options for the Canvas
itself. Note that Figma gives us separate tabs in the Inspector (Design,
Prototype, and Code)—we’ll cover these later in the week.
Frame
The frame tool is what allows you to create frames on the canvas. You can
nest frames inside each other as well. Let's start by adding a frame.
● To create a frame, either click on the Frame tool in the toolbar or press one
of the following keys - F or A
● Once you click on the frame tool, you can either choose one of the preset
devices from the Properties panel or draw a custom one on the canvas
88
Practicing zooming in and out Build and Test the Low
The standard zoom commands are accessed with + and -. Fidelity Prototype
Change the font :-With the text layer selected, you can access settings in
the Inspector to change the font, as well as font size, weight, and color.
We’ve stuck with Roboto, but switched up to bold and uppercase text.
Create a Text layer :-Click T to access the text tool.
Grids :-Grids are essential to understanding the negative spacing when
you're designing for iOS, Android and Web. For mobile, it’s common to
use an 8-point grid. For Web, it’s a little less about spacing and more
about division, like the 960 grids. It's good to have some grid in place,
like the default 10-point grid. This ensures that all the elements fall on
clean pixels, avoiding half pixels as much as possible.
Shape Tools :- You can access all the basic ones via the Shape tools in the
toolbar. The shapes available include - Rectangle, Line, Arrow, Ellipse,
Polygon and Star. To insert a shape, do the following:
89
User Interface Lab ● Here, we'll be adding a rectangle, but you can add any shape you'd like
Alignment
The top of Properties panel contains various alignment options. Provided
below is the list of all the options as well as their keyboard shortcuts:
● Align Left (Alt + A)
Resize
You can resize any layer by selecting it and then, dragging the corners.
Hold Shift to keep the same aspect ratio and hold Option to resize from
center in order to keep the same alignment. Alternatively, you can change
the 'W' (width) and 'H' (height) values in the properties panel. Make sure
to click the Constraint Proportions option so that it scales proportionately.
90
Build and Test the Low
Fidelity Prototype
Image:-
In Figma, images can be edited on the fly after importing. You can control
settings like Exposure, Contrast, Saturation and much more without
having to leave the design tool.
Color Picker
Click on the Fill to start customizing the background. As with most design
tools, you can change the color by clicking the color on the wheel or via
the eyedropper tool. Alternatively, you can input the HEX code or choose
from one of the preset colors. The opacity value can also be changed from
here.
91
User Interface Lab
Gradients
Figma also gives you the option of replacing the solid colors with
gradients. There are multiple gradient options. You can find the gradient
options in the color picker. You can play around with different
combinations of colors, the opacity as well as the direction of the gradient!
92
The blank project screen looks like the image on the left. There are 4 parts Build and Test the Low
Fidelity Prototype
“Calculator”:
1. Frame
93
User Interface Lab Select the “Frame” tool:
Create a frame for the calculator screen by dragging on the canvas to draw
a rectangle. This frame is the main background for our calculator onto
which all the elements will be placed. Don’t worry about the exact size or
position yet; we’ll set that in the next step.
(General note: if you make a mistake, control-Z (Windows) / command-Z
(macOS) works. Add a shift modifier to redo something you undid.)
3. Layer names
In the layer list (left side), double click on the frame that you created and
rename it to “Cleared”. This is the name we will use for this screen. By the
end of the tutorial, we will create several screens (frames) for different
states of the application and connect them together into a clickable
prototype, so naming the frame helps keep things straight. “Cleared”
means the initial, empty state of the calculator, before any buttons are
pressed, or else after the “C” button is pressed.
94
Build and Test the Low
4. Adding the calculator display
Fidelity Prototype
Select the Rectangle tool from the toolbar:
Drag an area on the canvas to add a rectangle. This will be the screen of
the calculator to display numbers, operations, and results. Using the
inspector, set the rectangle’s X to 0, Y to 0, width to 283, height to 135,
and color to #FFFFFF (i.e. white).
95
User Interface Lab 6. Select the text tool from the toolbar.
Click on the button you just created to add a text label, then type ‘1’ and
hit escape. Either using the inspector or the canvas, make it the same size
(width/height) and position (X/Y) as the button. Using the inspector, set
the label’s horizontal alignment to center, vertical alignment to middle,
font to Roboto, and size to 24, as shown to the right.
When done, your button and label should look like this:
7. Grouping elements
Find the button and the label in the layer list (left side). Select them both
by holding control (Windows) or command (macOS) while clicking. Right
click the selection and select “Group Selection”. Double click on the new
group in the layer list to rename it to “Button 1”.
96
Build and Test the Low
8. Duplicating elements
Fidelity Prototype
Select the group (not the button or label individually), then hit control-D
(Windows) / command-D (macOS) to duplicate the group. Move the new group
to the right by clicking and dragging the element in the canvas. Don’t worry
about getting the position just right yet, but put them roughly in a horizontal row.
Rename the group “button 2”, and change the text of the label to 2. Repeat to
create a new button 3 and a new button +.Positioning elements
You may have noticed that dragging an element in the canvas pops up
various alignment and spacing helpers. These are useful, but there are
more powerful tools to use to get things just right.
Select the 4 buttons. (Hint: use shift-click to add to the current selection.)
If they’re not vertically aligned, select “align vertical centers” under the
“arrange” menu (see the “hamburger” icon in the top-left for the menu).
Move them as a set to align the set to the center of the frame. Then use the
menu to “distribute horizontal spacing” (under “arrange”). If the buttons
feel too close or too far apart, move a button on either edge, re-align and
re-distribute. Don’t worry about matching the image here exactly; just do
what feels right to you.
97
User Interface Lab 9. Duplicating rows
Apply your learning so far to fill out the remaining 3 rows of buttons.
(Hint: group the buttons in a row in order to distribute rows vertically.)
Note: if the text doesn’t appear, you may have to move the display
rectangle element down in the layer list to be after the text element.
98
Build and Test the Low
Fidelity Prototype
Likewise, connect the “+” button in the “3” Frame to the “3+” Frame, and
likewise for the next “3” button and the following “=” button. Finally,
connect the “C” button of all but the first frame to the “Cleared” frame.
After deselecting all frames, your prototype connectionsPresent the
clickable prototype
Finally, the payoff. Click the “play” triangle icon in the upper right of the
Figma UI to see the clickable prototype in action.
PRACTICAL QUESTIONS
Create a low fidelity design for health app on android phone and list out
the questions you will ask for testing the given prototype. Also create test
cases for the same.
Create both low fidelity and high fidelity design for an ecommerce
website and also generate the test cases to test the same.
99
Module VI
6
INTRODUCTION TO IMPLEMENTATION
IMPLEMENTATION
Learning Objectives :
To make the learners aware of the different factors to be considered while
selecting and using a programming language.
To make them aware of the different code optimization techniques as well
as the web optimization.
To make them aware of the importance of UI and UX during
implementation of the project
To make them aware of the different software development tools
Learning Outcomes :-
The learner would be able to select the right programming language for
the right project and also know how to optimise the code well to achieve
better performance.
Objective
It specifies the objective for which a program is being developed. In the
event that one needs to develop commercial applications, then a business-
oriented programming language like COBOL is the best candidate. For
development of scientific applications, it is best to use a scientific oriented
language like FORTRAN.
Similarly, if one is interested in developing programs related to Artificial
Intelligence, then he or she should be comfortable using the LISP or
ProLog languages. Object oriented languages are best suited
for development of web-based applications. As for the development of
system programs, a middle level language like C should be chosen.
Programmer Experience
If several programming languages or tools available to develop a software
the programmer must select the once that he is not just familiar but have
the expertise.
101
User Interface Lab Ease of Development and Maintenance
Choose Programming language that is easy to maintain and reuse.
Program sustainability should be for longer.
Efficiency
Efficiency is an important factor which need be considered before
choosing a programming language for software development. One should
consider the language in which the programs can be developed and
executed rapidly.
Availability of an IDE
A powerful Integrated Development Environment goes a long way in
increasing the productivity of a programmer. The language with an IDE of
well supported development, debugging and compilation tools should be
selected.
CODE OPTIMIZATION
It is a technique to improve the code by eliminating unnecessary code
lines and arranging statements in such a sequence that speed up program
execution and is to occupy limited memory. The objective of code
optimization is to achieve faster execution, efficient memory usage and
yield better performance.
102
Introduction to Implementation
CODE OPTIMIZATION TECHNIQUES Implementation
Example-
pi = 3.14
radius = 10
Area of circle = pi x radius x radius
3) Code Movement : It is a technique of moving a block of code outside
loop if it won’t have any difference if it is executed outside or inside the
loop
Example
103
User Interface Lab (4) Dead code elimination: Dead code elimination includes eliminating
those code statements which are never going to get executed e.g.
I0
If(i==1)
{a=x+5;
}
Can be optimized directly to i=0;
(5) Strength Reduction: It is the replacement of expressions that we are
expensive with cheaper and simple ones
B=A*2 before optimization
B=A+A After optimization
Strength reduction means replacing the high strength operator by the low
strength.
i = 1;
while (i<10)
{
y = i * 4;
}
//After Reduction
i=1
t=4
{
while( t<40)
y = t;
t = t + 4;
}
6. Common Sub-Expression Elimination-
The expression that has been already computed before and appears again
in the code for computation
is called as Common Sub-Expression.
104
Introduction to Implementation
In this technique, Implementation
● As the name suggests, it involves eliminating the common sub
expressions.
● The redundant expressions are eliminated to avoid their re-computation.
● The already computed result is used in the further program when
required.
Example-
S1 = 4 x i
S2 = a[S1] S1 = 4 x i
S3 = 4 x j S2 = a[S1]
S4 = 4 x i // S3 = 4 x j
Redundant Expression S5 = n
S5 = n S6 = b[S1] + S5
S6 = b[S4] + S5
106
Introduction to Implementation
9. Reduce the use of web fonts Implementation
Web fonts have become very popular in website design. Unfortunately, the
use of web fonts has a negative impact on the speed of page rendering.
Web fonts add extra HTTP requests to external resources. The following
measures will help you reduce the size of web font traffic:
● Use modern formats WOFF2 for modern browsers;
● Include only those character sets that are used on the site.
● Choose only the needed styles
10. Detect 404 errors
A 404-error means that a “Page isn’t found”. This message is provided by
the hosting to browsers or search engines when the accessed content of a
page no longer exists. To detect and correct a 404 error, you can use error
detection tools to fix them.
4. Error prevention
Even better than good error messages is a careful design which prevents a
problem from occurring in the first place. Either eliminate error-prone
conditions or check for them and present users with a confirmation option
before they commit to the action.
108
Introduction to Implementation
7. Recognition rather than recall Implementation
Minimize the user's memory load by making objects, actions, and options
visible. The user should not have to remember information from one part
of the dialogue to another. Instructions for use of the system should be
visible or easily retrievable whenever appropriate.
6. Browser Consistency
Web application should have compatibility with all browsers to gain
popularity.
7. Effective Navigation
Good navigation is one of the most important aspects of website usability.
Simple HTML or JavaScript menus tend to work best and appear
consistent on all browsers and platforms.
It is equally important for the navigation to be clutter-free. Try to limit the
number of menu items as far as possible. A drop-down menu or sub-
navigation may work better on large site with many sections and pages.
DHTML, Javascript libraries such as Motols and Ajax offer innovate
navigation system.
110
Introduction to Implementation
code level ensures the website is robust and free from bugs. Displaying the Implementation
right error message improves the user experience and overall usability.
111
User Interface Lab Desirable: Image, identity, brand, and other design elements are used to
evoke emotion and appreciation
Findable: Content needs to be navigable and locatable onsite and offsite
Accessible: Content needs to be accessible to people with disabilities
Credible: Users must trust and believe what you tell them
Other Traits of UX
Equitable
If a product is equitable, it means a design is helpful to people with
diverse abilities and backgrounds. In other words, the product’s design
addresses the needs of a diverse audience and ensures a high-quality
experience is delivered to all users regardless of background, gender, race,
or ability. Equity means providing people with the tools they need to
accomplish their goals and support improved quality of life.
Enjoyable
If a product is enjoyable, it means the design delights the user. The design
reflects what the user may be thinking or feeling and creates a positive
connection with them.
Useful
If a product is useful, that means it solves user problems. In other words,
the design intentionally solves a user problem that the designer has
identified. It’s important to note that, while similar, useful and usable have
different meanings. A product that is useful isn’t always usable. The same
is true for the opposite. The distinction between the two is that usability
refers to the product working well and being easy to use, while usefulness
refers directly to the ability to solve user problems.
Designing Tools
Designing Tools help in creating a high and low architectural designs,
low and highfidelity designs, wireframes, mockups and prototypes. These
are some of the designing tools widely used
1. Star UML – A popular UML modeling tool
2. OpenText Provision – An extensive business process architecture
tool
3. Proofhub
4. Adobe Photoshop
5. Adobe Illustrator
6. Visual Paradigm – A design and management tool for business IT
development
7. FileStage
8. PicsArt
9. Desygner
10. Design Bold
11. Fotor
12. Mockplus
13. Marvel-prototyping tool
14. Figma
15. Pixelmator Pro
113
User Interface Lab Development Tools
RAD Studio
RAD Studio is a Powerful IDE For Building Native Apps on Windows,
Android, iOS, macOS and Linux. It enables you to design Beautiful
Desktop and Mobile App UIs with less coding effort. Write once, compile
everywhere.
FinanceLayer
FinanceLayer is a real-time API for finance news that uses JSON payload
to get the most dynamic financial data. You can get live finance news and
article feeds on any website or application.
Studio 3T
Studio 3T for MongoDB helps you to build queries fast, generate instant
code, import/export in multiple formats, and much more.
Linx
Linx is a low code IDE and server. IT pros use Linx to quickly create
custom automated business processes, integrate applications, expose web
services and to efficiently handle high workloads.
DbSchema
DbSchema is a visual database designer & manager for any SQL, NoSQL,
or Cloud database. The tool enables you to visually design & interact with
the database schema, design the schema in a team and deploy it on
multiple databases, generate HTML5 diagram documentation, visually
explore the data and build queries, and so much more.
NetBeans
NetBeans is a popular, Free, open-source IDE. It is one of the best
application development tools that allows developing desktop, mobile and
web applications.
Cloud9 IDE
Cloud9 IDE is an online integrated software development environment. It
is one of the best software design tools that supports many programming
languages like C, C++, PHP, Ruby, Perl, Python, JavaScript and Node.js.
Zend Studio
Zend Studio allows software developers to code faster, debug more easily.
It is next-generation PHP IDE designed to create apps for boosting
developers’ productivity.
114
Introduction to Implementation
Bootstrap Implementation
Bootstrap is a responsive framework for developing with HTML, CSS,
and JS. It is one of the best software programming tools that has many in-
builds components, which you can easily drag and drop to assemble
responsive web pages.
HTML5 Builder
HTML5 Builder is a software solution for building the web and mobile
apps. It can develop an app using a single HTML5, CSS3, JavaScript and
PHP codebase. It helps to target multiple mobile operating systems,
devices and Web browsers.
Azure
Microsoft Azure is widely used by developers to build, deploy and
manage web applications.
Github
GitHub allows developers to review code, manage projects, and build
software. It offers right tool for different development jobs.
Axure
Axure provides the capability to produce wireframes, prototypes, and
create documentation. This tool is used by business analysts, product
managers, and IT consultants around the world.
SendBird
Sendbird is used as a messaging and Chat API for Mobile Apps and
Websites. It offers scalability for a massive audience. It also prevents
spam flooding of chat rooms.
116
Introduction to Implementation
PRACTICAL QUESTIONS Implementation
a) Create an E-Commerce Website using HTML, Microsoft Publisher,
Asp.NET or any free web making tools like web builder, word press
(ii) c = a * b
x=a
till
d=x*b+4
(iii) a = 200;
while(a>0)
{
b = x + y;
if (a % b == 0}
printf(“%d”, a);
}
(iv)
1. some_list = [1, 2, 3, 4]
that_list_plus_1 = []
that_list_plus_2 = []
for i in some_list:
that_list_plus_1.append(i + 1)
for i in some_list:
that_list_plus_2.append(i + 2)
117
User Interface Lab c) Consider a website https://machpowertools.com/ or any other
website and list out the tips for improving the User Interface, User
Experience and Usability of the same.
d) On the basis of your own experience of using a typical bank cash
machine (ATM), and after learning the Jakob Nielsen’s 10 Heuristics
Principles, describe what designer should and should not do.
118
Module VII
7
INTRODUCTION TO USER INTERFACE
TESTING
Learning Objectives:
To make the learners aware of the different aspects of User Interface and
Usability Testing, different testing approaches, Test case designing, test
scripts, testing tools etc.
Purpose of UI Testing
● To check how the application handles user actions carried out using
the keyboard, mouse, and other input devices.
● To check if all visual elements are displayed and working correctly.
● Check all the GUI elements for size, position, width, length, and
acceptance of characters or numbers. For instance, you must be able to
provide inputs to the input fields.
● Check you can execute the intended functionality of the application
using the GUI
● Check Error Messages are displayed correctly
● Check for Clear demarcation of different sections on screen
● Check Font used in an application is readable
● Check the alignment of the text is proper
● Check the Colour of the font and warning messages is aesthetically
pleasing
120
● Check that the images have good clarity User Interface Testing
Steps in UI Testing
1. Define your goal. Make sure you have a solid understanding of the
problems you are trying to solve and the goals you are trying to
achieve.
2. Know your audience. This will help you ask the right questions
which leads to a design that is more focused on your users’ specific
needs.
3. Test early and often. Testing is a necessity in UX design. When
creating your web design, it’s important to run tests often so you can
validate components of your design. Prototype your design, test it with
your users, and use the feedback to improve your next design.
Approaches to UI Testing
There are three main GUI testing approaches, namely:
1. Manual Testing
In manual testing, a human tester performs a set of operations to check
whether the application is functioning correctly and that the graphical
122
elements conform to the documented requirements. Manual-based testing User Interface Testing
can be time-consuming, and the test coverage (Total no of test cases to be
executed) is extremely low. Additionally, the quality of testing in this
approach depends on the knowledge and capabilities of the testing team.
Under this approach, graphical screens are checked manually by testers in
conformance with the requirements stated in the Software requirements
Specification document.
You are initially testing it manually and while you are testing it manually
you are recording your actions. Later if there is any change and you want
123
User Interface Lab to rerun the test case to see whether the functionality works fine you will
playback what you have recorded.
124
OPEN SOURCE AUTOMATED TESTING TOOLS User Interface Testing
AutoHotkey GPL
Selenium Apache
Sikuli MIT
Water BSD
126
Scripted testing benefits User Interface Testing
Because scripted testing is pre-planned and has tangible outputs – the test
scripts and testing reports – scripted testing gives product managers and
customers confidence that an application has been rigorously tested. By
creating test scripts early in the development process, teams can uncover
missing requirements or design defects before they make it into the code.
While test scripts must be created by a more experienced tester with
knowledge of the system, less experienced/knowledgeable testers can
perform the actual testing. Finally, test scripts can be reused in the future
for regression testing and can also be automated for greater efficiency.
Exploratory testing
Rather than following pre-written test scripts, exploratory testers draw on
their knowledge and experience to learn about the AUT, design tests and
then immediately execute the tests. After analysing the results, testers may
identify additional tests to be performed and/or provide feedback to
developers.
Although exploratory testing does not use detailed test scripts, there is still
pre-planning. For example, in session-based exploratory testing, testers
create a document called a test charter to set goals for the planned tests
and set a time frame for a period of focused exploratory testing. Sessions
of exploratory testing are documented by a session report and reviewed in
a follow-up debriefing meeting.
Likewise, during scripted testing, there may be some decisions available to
testers including the ability to create new tests on the fly. For that reason,
it is helpful to think of scripted testing and exploratory testing as being
two ends of a continuum rather than being opposites.
Both scripted and exploratory testing can be completely manual, or they
can be assisted by automation. For example, an exploratory tester might
decide to use test automation to conduct a series of tests over a range of
data values.
129
User Interface Lab
130
For example, let’s assume that the password reset process does not work at User Interface Testing
all. Once a user encounters it, the frequency is “constant” and the effect is
“catastrophic” as the user is locked out of the application. Therefore,
testing the password reset process is a critical priority. If the testing team
determines that there is only enough time to inspect critical and high
priority events, then medium events could be addressed through
exploratory testing, while low priority events may not be tested at all.
UI Testing Scenarios
When performing a UI test, the QA team needs to prepare a test plan that
identifies the areas of an application that should be tested as well as the
testing resources available. With this information, testers can now define
the test scenarios, create test cases, and write the test scripts.
A test scenario is a document that highlights how the application under
test will be used in real life. A simple test scenario in most applications
would be, “users will successfully sign in with a valid username or ID and
password” In this scenario, we can have test cases for multiple GUI
events. This includes when a user:
● Provides a valid username and password combination
● Enters an invalid username
● Enters a valid username but an invalid password
● Forgets and tries to reset the password
● Tries to copy a password from the password field
● Tries to copy a password to the password field
● Hits the help button
Although scenarios are not required when creating UI test cases, they
guide their development. Basically, they serve as the base from which test
cases and test scripts are developed as shown below:
131
User Interface Lab A Practical UI Test
There are many things taken into consideration when testing a user
interface. Let’s consider this Google sign-up form as an example.
Using the above form, we identify 13 test cases, labelled TC-1 to TC-13.
At the very least, we should perform the following UI checks:
TC-1
● Check the page label, position, and font.
TC-2
● Validate whether the page heading is correct.
● Check the font used.
TC-3
● Check the cursor focus on the default field.
● Test the mandatory fields by clicking next while the form is blank.
● Check the position and alignment of the text box.
● Check the acceptance of both valid and invalid characters in the field
labels.
132
TC-4 User Interface Testing
TC-5
● Check the position and alignment of the text box.
● Check field labels, validate the acceptance of both valid and invalid
characters.
TC-6
● Test the error message by entering both permitted and prohibited
characters.
● Verify error message correctness.
TC-7
● Test pop-ups and hyperlinks.
TC-8
● Check field labels, validate the acceptance of both valid and invalid
characters.
● Check the position and alignment of the text box.
TC-9
● Save an unmatched password.
● Check field labels, validate the acceptance of both valid and invalid
characters.
● Check the position and alignment of the text box.
TC-10
● Verify icon position.
● Test the icon shows or hides the user password.
● Check the image quality.
TC-11
● Test the error message by entering both permitted and prohibited
characters.
● Verify error message correctness.
133
User Interface Lab TC-12
● Test pop-ups and hyperlinks.
TC-13
● Test form submission.
● Check button position and clarity.
Challenges in UI Testing
Software testers face a number of issues when performing UI tests. Some
of the most notable challenges include:
● Constantly changing UI – It is common to upgrade applications
constantly to accommodate new features and functionalities. When
upgrades are made frequently, performing comprehensive UI tests
becomes a challenge.
● Increasing testing complexity – Modern applications have
significantly complex features including embedded frames, complex
flowcharts, maps, diagrams, and other web elements. This makes UI
tests to become more challenging.
● UI tests can be time-consuming – creating effective UI test scripts
and executing the tests can take time especially when a tester is not
using the right tool.
● Maintaining UI test scripts – As developers make changes to the user
interface, it becomes challenging to maintain the test scripts.
● Handling multiple errors – When performing complex UI tests under
tight timelines, testers spend a lot of time creating scripts. In such
scenarios, fixing errors during the testing process becomes a challenge.
● Computing the ROI for UI test automation – Since the UI keeps
changing, so do the tests change. This increases the amount of time
spent on UI testing, thereby delaying the delivery process. In the end,
it becomes difficult to calculate the ROI for continuously performing
UI tests.
134
User Interface Testing
2. Utilize an object repository
One approach for reducing test maintenance and the associated costs is
using a shared repository. It is also a great idea to reduce the number of UI
test cases during the initial testing stages, then increase the coverage as
you move forward. This ensures a higher success rate in your test cases.
Title the title of the test script, such as “User enters a valid
username and password, maximum length.”
Data either the literal values for the tester to enter; or a link
to an external spreadsheet or database containing
combinations of usernames and passwords to test.
135
User Interface Lab
Procedure the step-by-step instructions for the tester, such as the
following example:
1. Start the AUT. The log on screen appears.
2. Click on the username field.
3. Enter the first username from the spreadsheet.
4. Enter the password from the spreadsheet.
5. Click the Log On button.
Defect Cross- if a defect is found, enter the code from the defect
Reference* tracking system here, to connect the test case with the
defect.
Here are the main difference between Test Cast and Test Script:
Test Case Test Script
Test case is a step by step The test script is a set of
procedure that is used to test an instructions to test an
application. application automatically.
Test Script is used in the
Test Cases are used for manual
automation testing
testing environment.
environment.
It is done according to the
It is done manually.
scripting format.
The test case template includes In the Test Script, we can use
Test ID, test data, test procedure, different commands to
actual and expected results, etc. develop a script.
TEST SCRIPTS CREATION TECHNIQUES
Record/playback:
In this method, the tester needs to write any code instead of just to record
the user’s actions. However, the tester will need to do coding to fix things
that go wrong or fine-tune the automation behavior.
136
This method is easier than writing a complete test script from scratch User Interface Testing
because you already have the complete code. It is mostly used in a
simplified programming language such as VBScript.
Keyword/data-driven scripting:
In this method, there is a clear separation between testers and developers.
In data-driven scripting, the tester defines the test using keywords without
knowledge of the underlying code.
Here, the developers’ job is to implement the test script code for the
keywords and update this code when needed. So in this method, the tester
need not worry about the system. However, they will highly rely upon
development resources for any new functionality you want to test
automatically.
1. Enter
valid Home page
username & displayed
Valid password after
(Example) Sign-in credential 2. Click successful
Sign-up success s required Login login
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
@Test
driver.manage().window().maximize();
driver.get("https://www.browserstack.com/users/sign_in");
WebElement username=driver.findElement(By.id("user_email_Login"));
WebElement password=driver.findElement(By.id("user_password"));
WebElement login=driver.findElement(By.name("commit"));
username.sendKeys("abc@gmail.com");
password.sendKeys("your_password");
138
User Interface Testing
login.click();
String actualUrl="https://live.browserstack.com/dashboard";
Assert.assertEquals(expectedUrl,actualUrl);
On executing the code, Selenium will navigate to the Chrome browser and
open the Browserstack login page. Then, it will log in using the relevant
credentials. It will also check the test case status using Assert and try to
match the URL
Case Study Example: Evaluating a website for its Usability and User
Interface
140
User Interface Testing
All the Usability and User Interface issues discuss above are being
overcome in the new website of sargent manufacturing company.
141
User Interface Lab HUMAN COMPUTER EVALUATION EXAMPLES
Spreadsheet package
(i) Subjects Typical users: secretaries, academics, students,
accountants, home users, schoolchildren
(ii) Technique Heuristic evaluation
(iii) Representative Sorting data, printing spreadsheet, formatting cells,
tasks adding functions, producing graphs
(iv) Measurements Speed of recognition, accuracy of recognition, user-
perceived clarity
(v) Outline plan Test the subjects with examples of each icon in
various styles, noting responses.
142
Theatre booking system User Interface Testing
143
User Interface Lab (iv) Measurements Accuracy of information presented and accessible,
veracity of audit trail of discussion, screen clutter
and confusion, confusion owing to turn-taking
protocols
(v) Outline plan Evaluate by having experts walk through the system
performing tasks, commenting as necessary.
PRACTICAL QUESTIONS
Q1. Choose an appropriate Evaluation Method for each of the following
situations. In each case suggest the answers in the given spaces below:
You have a prototype for a Admission fees payment process to be used by
potential students to reduce physical queues at college office.
144
Q4. Design an user interface for assigning a grade to students based on the User Interface Testing
subjects marks
Q5. Design an User Interface Screen for Calculator
Q6. Design an User Interface for registration of a student for admissions.
Q7. Design an User Interfaces for ATM Machine
Q8. Design an User Interfaces for for Smart Phone
Q9. Design an User Interface Screen for Online Examination
Q10. Design an User Interfaces for Booking of Movie Tickets
Q11. Design an User Interface Screen for Paintbrush.
145