Integration
of Usability Engineering with Requirement Engineering Process for Software Product
Development
Afsheen Nawaz, Durr-e-Najaf,
Osama Khalid
University
of Computer and Emerging Sciences Lahore
Abstract— Requirements
engineering is the first step of software development activity in which the
requirements from the stakeholders are obtain and documented. Since requirement is a major
factor contributing to the success or failure of a project in a software
industry, thus requirements should be carefully gathered and managed to
perfectly define the goals of targeted product. With the passage of time most
of the products development is web based and nonstop transformation of the user interface due to rapid
iterative plan may conflict with user expectations and learnability, incite
inconsistency and possibly lead to user dissatisfaction. Usability is
not only related to user interface but it describes how well a product should
work for the intended users and classify target user satisfaction goals. Hence we can say that usability become
an increasingly important prospective in development environment. In
this term paper we identified methodology within requirements engineering
(RE) and how we can enhance our product by using usability engineering
requirement elicitation techniques.
Keywords—Requirements
engineering, usability engineering, Software development life cycle models, human computer
interaction, user interface
I.
Introduction
Requirements engineering (RE) is mechanism of
articulating, documenting and maintaining software requirements. The main and
major part in requirement engineering phase focuses on the functional
requirement. This is common observation that requirement specification does not
deal with the ease of system whereas usability or ease-of-use is main concern
of many applications. Usability
requirements narrates the how easy the system must be to use. Usability is a
non-functional requirement because in its essence it does not specify the parts
of system functionality. [1]
Usefulness sub
features are Functionality and
usability, and these both are critical factor of the system acceptance.
Usability covers the easiness which
software application provides user to fulfil a task and allow user to functions
easily and appropriately. [2]
Usability is considered to be a critical
factor in the success of software system in term of interactive system
development but on the other hand discovering and specify usability requirement
is not as simple due to behaviours and cognitive processes of human Psychology.
It is even more complex due to multiple goals of usability. In this paper we
will present the some approached used by Deborah J Mayhew in his book “The
usability engineering life cycle model” for elicit and analyse usability
requirements [10].
There
are several requirements engineering elicitation techniques already used in
industry like Interviews, Scenarios, Prototypes, Facilitated meetings and
Observation to gain domain knowledge and achieve business goals. In general
requirements are a way that provides a unifying context for a project that
defines expectations for the end product. The main task in requirement
engineering process is often address only functional specifications that how
our requirement for product development are focused, measurable, and testable
and how they provide knowledge communicated to the entire project team
throughout the project life cycle. On the other hand usability engineering
requirements are exclusively related to expected and desired user reaction to a
system and define how well a product should work for the intended users and achieve target user satisfaction goals.
Both functional and usability requirement
are crucial for the successful product. Therefore a need arises to evaluate the
available techniques in order to make a well-founded requirement engineering
process that not only fulfil business goals but cover all the usability issues.
In this paper, we are not supposed to
invent any new technique related to usability engineering but to present a
structured comparison of usability elicitation and analysis approaches that is
designed to help the stakeholders of a project, e.g., project coordinators,
managers, and developers, decide on a methodology to use for usability requirements
elicitation and analysis. We define a framework for extracting precise
characteristics of user profiling defined in Usability engineering life cycle
by Mayhew [3] and requirement engineering process and techniques.
According to the data of an Assurance
Company about $3 million development project simply failed due to lack of
usability, Their users flatly refused to use the application, saying it was too
difficult to learn and unusable. Another market survey indicated that ease of
learning and efficiency of use was crucial criteria in their potential
customers’ buy decisions. [3]
II.
Background Study
In this section we will cover the already
done researched on requirement and usability engineering and identify data
related to usability engineering.
Meeting users’ requirements and
expectations is the major factor of a project success. It is stated that a
match should be between the perception of project key personnel and the
expectations of the users with respect to usability, behaviour and functionality
of system. An analysis of most of the current projects comes to the conclusion
that all projects contains requirement analysis process and this is very
initial phase before kicking of design and development phase of project.
The requirements analysis phase is composed
of a series of activities that relate to the gathering and analysis of
requirements from the customer. [2]
A. The
Software Requirements Generation process:
The normal and conventional requirement generation
process comprise of activities: Requirement elicitation, analysis,
specification, verification & validation and management. These activities
come under the umbrella of coarse grain activity model.
B. Putting
the Usability First (PUF) Methodology :
Putting Usability First (PUF) methodology was evolved
from the Multi Oriented Task Oriented. This technique has been applied to
multiple applications including educational multimedia and e-commerce. In ISO
9241-11 guideline usability is defined as “the extent to which a product can be
used by specified users to achieve specified goals with effectiveness,
efficiency and satisfaction in a specified context of use”. [7]
Usability can be defined as the extent to which software
or a piece of software helps user to perform a task through the input device
i.e. keyboard, mouse or any other scanning device.
Usability is critical for user system acceptance. If
users of the systems don’t find system helpful to perform their desire tasks
then there are fewer chances that user will accept that system. There are chances that user will completely
reject the application or they will inefficiently use it. If application does
not well performed the intended user tasks then it means we are not fulfilling
the customer needs and we are lacking in accomplish the core objective of the
software application. [1]
- Usability goals
Usability has some
specific but broader goals; which are listed below:
·
Efficiency
·
Effectiveness
·
Having
good utility
·
Safety
·
Easy
to remember how to use
·
Easy
to learn
Efficiency: This term depicts that how a product or application
accommodates users to perform their desired tasks in application.
Effectiveness: this is very generic objective. This depicts that to
what extent the application is performing the behaviour which it supposed to
carry out.
Safety: This term refers to protect user from hazardous, dangerous and
undesirable situations.
Utility: this term means the extent to which application, production or
software provide the right functionality i.e. is the application allows users
to perform tasks as per their need.
Learnability: Learnability means how easy a system is to learn to
use.
Memorability: This term means that how easy a system to learn to
use in future, [8]
Above listed are
objectives which are keys to access of an application and improve the usability
of the application.
- User Experience Goals of Usability
There are loads of
benefits generated by usability in the words of Karat and Dayton (1995) "A
useable software system is one that supports the effective and efficient
completion of tasks in a given work context.”
The bottom line benefits of more usable or
user friendly products to a user include:
- Improved productivity and efficiency
- Lessening time of user training and cost
- Reduction in user errors
- Improved accuracy of input and interpretation of data
- Lessening need of continuous technical support from
The bottom line benefits of usability to
development organizations (including internal development organizations, vendor
of commercial products and contract development organizations) include
- Excessive profits due to more competitive services and product.
- Lessened overall maintenance and development cost
- Decreased cost for customer support
- More businesses because of satisfied customer [3]
Literature review also reveals that intermingling of
usability engineering is limited to the requirement engineering and software
design phase. A very few companies in Pakistan properly practice the usability
engineering. Moreover, usability should be incorporated in SDLC phases to get
the high quality products. User
interaction and involvement is quite necessary in all SDLC phases to exercise
the utility.
Integration of usability with software development
lifecycle is not easy, however, because several problems have been reported for
this integration. First and foremost; it is a huge problem and known issue that
introducing a new mythology in organizations which are working on software
development because the software engineers and managers are reluctant to the
change in their procedures. It is study that software engineers are provided
contradictory, ambiguous and incomplete instructions/statements to work on.
Developers are also not provided with the complete background knowledge and
they are enforced to make very substantial decisions regarding user experience;
whereas in real developers do not have an idea about the users of the
application.
So, ultimately the quality of such products and
applications are poor as they failed to meet end user needs, Wilson and
colleagues narrated that for software developers and engineers the term
usability is very much confusing. Most of the folks think that usability is the
thing which is related to the look and feel, GUI and colour scheme of the
screen and nothing more than this and this leads to the problems. [9]
There is a
processor model UEMP presented by Toni Granollers. He proposes in his model
that for each and every activity of software engineering; assessment and appraisal
should be done by the actual end users. Protection undertakings should be
present like risk management, software quality management and configuration
management which guarantees the existence of usability process in Software
Development Life Cycle.
There is an approach, called Adoption- Centric
Usability Engineering (ACUE) which is used to smooth the process of adoption of
UE methods by software engineering companies and specialists. And this improves
the integration into existing methodologies and practices of software
developments. This process has three phases
- In initial step methodology of usability engineering is selected for a new project depending upon the limitations and constraints of the project.
- After that in next step the project team is supported in selected methodology deployment in their project. 3. In the third and final step the assessment of the deployed methodology is done by the project. As per the literature this technique is also accomplished and practiced successfully as a sample in many companies. [9]
If we put a look on all the application which is
widely used in the world, Microsoft is a picture-perfect example of practicing
usability engineering tasks.
Microsoft is perfectly following the usability in
their product life cycle. At Microsoft there are designated Usability engineers
who work at multiple levels on design, user experience, task flows, conceptual
organization and detailed design. Usability evaluation in Microsoft products
begins very early on an as-required basis.
Usability staff and engineers regularly visit client sites,
sometimes in association with other product-team members. Usability engineers
and staff may produce specification for usability which are further
incorporated and combined into the overall product specification. [9]
In the end of literature
review it can easily be concluded that except Microsoft there is not a single organization
that is following the usability engineering in software development life cycle
model.
III.
Research Methodology
We conducted surveys from different
software organization located in Pakistan to learn about their contribution to
usability engineering integration with requirement engineering process. This
survey was conducted from all sized organizations. The main focus in the survey
was the incorporation of usability engineering, how important organizations
think of usability and what strategies they adopt to enhance the usability
factor of their applications.
IV.
Research Analysis
We conducted survey from 35
organizations located in Pakistan metro cities like Lahore, Karachi and
Islamabad. Almost half of the organizations following CMMI standard and rest
are not. For Karachi and Islamabad based organizations survey was conducted
online. Among these 30 organization most of the organizations are working on
enterprise application development so that indicate that they have to concern a
lot regarding usability.
Concluding the survey
results we found that almost 49% of the organizations focus in both user
interface, screens navigation, application ease of use and on the actual
functionality of the system; 37% organizations focus only in the internal functionality
of the application. Rest of the almost 14% organization focuses on user
interfaces and UI layout of the application and such software organizations
work on the mobile games, mobile application
and on website development. The
organizations which also focus on the usability with requirement
engineering use the ‘Prototyping/mock-ups’
technique more than 90% than other techniques to gather usability requirements.
Heuristic/expert advice and Style guide and template techniques are not much
widely used. These both techniques are mostly used in organization along with
the prototyping/mock-ups techniques.
77% of the software
companies do provide the demos to client (not to actual end user) to show the
actual work and progress of the application. Among these 77% of the companies
who give the demo to client stated that around 85% of their client asks them to
change the UI and layout of the application during demo.
Survey represents that 71%
of the companies do provide the training to their client to use the application
and they have to provide the training to user multiple times for such module
and component which are less likely to use in the application system.
A Project Manager from a software company of
250+ employees stated that: “Although we gather the usability requirements
during requirement engineering phase but later-on we have to change them after we
give demos to client. And even when the application goes live and started by
using end users awe have to make some tweaks on the client requests. Offcourse
all these incur separate cost from client but the usability mechanism should be
better to avoid these tweaks and changes in UI of application on frequent basis
and I think end user involvement should be in early phases of software
development life cycle.”
Most of the organizations
partially or fully depend on their client for the UI layouts and navigation for
the application which means that they are not following the standards and rules
guideline for User Interface.
Among the organization who
develops their own products tells that around 38% of the products and/or a
component/module of the application are rejected by our potential clients due
to the user interface, layout and navigation issues. In rare cases client asks
the software company to redesign the UI of the application and/or module.
Then product based companies
described that the issue we faced for our products is usability because we do
not have an entity or live client to get feedback whereas, in projects this
issue is less common so, we are in process to get interact with the actual end
user of our product which is definitely a difficult thing.
More than 75% of
organization does provide the user manual along with the software application
but a very few users bother to read that out, so, for any concern, query or
inquiry client contact with software vendor to provide the quick response.
Our second target in the
survey is to get to know that either our industry has knowledge about ‘User
Profiling’ or not. In general, user profiling is the mechanism to get interacts
with the end user of the application. This interact does include the interviews
with observations of end user behaviour, ability to learn and keep remember a
thing, their education level etc. In our survey what we got is only 23% of the
organization does user profiling. They actually meet with their end user and
study their behaviour. On the question that whether they found user profiling
useful or not; 98% said that they found it useful. Although this is a time
consuming activity but only on the initial stages – usually it takes 1 to 3
weeks [11]; once you done with it you can save the user profiling
data and can use that for future references for other applications.