Article Preview
TopIntroduction
The software industry aims to develop high quality software for its clients under various development constraints. Huge expenditure is involved in undertaking a software project with likely failure risks threatening potential expected benefits.
The ability of a software to satisfy the customer results in an enhanced customer base, implying higher software sales and a good turnover. The reverse of this situation negates the justification of investment in huge development costs. Failure not only results in a monetary loss in the current project but may also impact company’s reputation thereby decreasing the customer base for future projects to be undertaken by the firm. Customer satisfaction is detrimental to the company’s future.
Satisfaction comes from the ability of the software to meet the expectation of its customers/users. These customers are mainly concerned with the functionality of the software, i.e. functional requirements of the software and hence non-functional ones are unseen initially. However, if the same non-functional requirement (NFR) remains unimplemented, the functional requirements may become obsolete as they may be unable to deliver without non-functional areas or may be unusable till nonfunctional components are implemented. Thus, the neglecting non-functional requirements may lead to complete the rejection of the software amongst the stakeholders/ customers although they were never called for directly.
In case of mobile software development, various challenges get mapped to various non-functional requirements like GUI, interactions with a large number of other apps, location awareness services, security, hardware and software independence apart from other traditional challenges like usability, performance, reliability, etc. The software developer must consider these issues in the form of non-functional requirements during the development of the mobile apps. These issues can never be predefined and infact depend on the level of expertise of the software developer.
For example, a software developer must consider the issue of database consistency as mobile networks usually suffers handoffs. In case of availability of high speed network, it is possible to increase the data transfer speed during transaction execution, thereby making consistency issues one of the more important non-functional requirements. The successful implementation of the mobile app depends on the ability of software developer to implement not only functional, but also non-functional requirements by anticipating future events lead by technological changes, environmental changes etc.
Numerous techniques are available to elicit software requirements and to prioritize these requirements. The available techniques focus mainly on functional requirement available in the literature and very little work is available that handles non-functional requirements separately or at least relative to functional requirements.
Keeping in view the importance of non-functional requirement in successful implementation of projects, especially mobile apps, the need was felt to undertake the survey of existing mobile apps developments from the viewpoint of non-functional requirement contributions.
An effort is made to analyse the contribution of non-functional requirements to the success/ failure rates of the product, analyse the status of non-functional requirements, implementation and its contributions to the cost and time of overall development. Efforts are made to analyse the variation with increase in size of organization and complexity of the projects.
Motivation
The challenges in mobile app development can be mapped to different NFR’s. NFR’s determine the success or failure of projects. It is interesting to analyse from the historical data, ongoing live projects and industrial experience of mobile software developers, the contribution of NFR’s in the overall project. The outcome of the screening will motivate the researchers to consider NFR’s equivalent to functional requirements.
TopResearch Aim, Objective, Outcomes
The aim of this research is to explore the relationship of non-functional requirements with the undertaken mobile software project metrics, especially the cost, time, success rates and failure rates. The study also aims to identify and explain the various process models employed in software organizations in prioritizing the non-functional requirements.
The objective was achieved through the following steps: