Philisophical Chunks

Its little world of author's intuitions.

Tuesday, September 3, 2013

Integration of Usability Engineering with Requirement Engineering Process for Software Product Development



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.

KeywordsRequirements 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]

  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.

  1. 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
  1. In initial step methodology of usability engineering is selected for a new project depending upon the limitations and constraints of the project.
  2. 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.


Thursday, August 15, 2013

Revolving around question marks!!

Sometimes it happens in our life that we stuck with such circumstances where we can not go forward and backward.

Something Random

So, after two years something forced me to write here. During last couple of months many different thought came crossed my mind - in fact there is a though war in my mind. Its more than years now that I could not trim out extras and useless items from my life.

Friday, June 10, 2011

BIRT - How to apply alternate background colors on Group Headers.

The below example is created from the Classic Models, Inc. Sample Database, and designed roughly :). Only titled question is focused.

First Way: Very easy and simple:
After applying group:
1) Select Script tab and  Set i = 0 in initiaze() method of report design.i could be any variable.


2. On the Layout tab of report select the Group header row (where you want to apply style) and then click on Script tab. Select onRender from Script drop down and write below script:

if (i==0) {
        this.getStyle().backgroundColor = "silver";
        i = 1;
    }
    else
    {
        this.getStyle().backgroundColor = "white";
        i = 0;
    }


That's all. Now run report.
For more: http://www.birt-exchange.org/org/devshare/designing-birt-reports/735-alternate-background-colors/#description

Second Way: A lengthy way:
Here is the one way to apply alternate row colors on the group headers in BIRT.
Below is the simple image of a Table having Customer Name, City, State, Order Number etc etc. Here Customers are being repeated because they have multiple Orders associated.Please note on below table (1.1) a highlight style is applied for alternate row.

Screen Shot 1.1
 Now see below image (1.2), here I grouped the data set for each Customer. Last three columns shows associated Order # with each customer, its date and Shipped Status.I also applied alternate row color for each group row, as you can see below that this alternate row color style isn't properly applied on group headers rows.
The reason of this is: Expression that is used is: if (row[0]+1)%2 = = 0 then highlight color will apply else NOT. And row[0] refers to the current row count of table,and the count of group main row and its first detail row is same, so its the reason of style disturbance.
Screen Shot 1.2
 
Below is one way to apply alternate row color style for group main rows:
Here we required to figure out the current group number. By row[0], we can not figure out group number.
Steps:
1. Double click on Data Set to Edit, then click on Computed Columns tab and then New to add a column:
Fill in the box as in the screen shot (1.3).
Screen Shot 1.3

















2. Then go in Binding Tab of Table's Property Editor. Click on Add Aggregation button and fill in box as in screen shot 1.4. Please note, select the group name from Group drop down on which you want to apply alternate color style.


Screen Shot 1.4





















3. Again click on Add Aggregation button and fill in as in Screen Shot 1.5.

Screen Shot 1.5



















4.  After step 3, select the Group Header row, and form the Property Editor click on the Highlights tab. Then click on add button.(Illustrated in 1.6)
Screen Shot 1.6
 5. In the Condition box, write this expression: row["current_group_num"]%2. Then selects Equal To form next drop down and set 0 in last field, choose background you want to set from Background Box and press OK. (Illustrated below in 1.7)
Screen Shot 1.7























6. Now run report, and see in figure 1.8 that groups are applied with proper alternate colors.



Screen Shot 1.8
P.S. If any one from readers have any better option/ way to achieve the above target, pls. do share. Any comments/suggestions/criticisms are more than welcomed.