Abstract
Software quality is one of the pivotal aspects of the software development industry which ensures product compliance to the requirement specification and standards. Conventional software development was mostly related with building desktop applications. The past decade has seen a proliferation of architectures, frameworks, and languages in software development. Software methodologies have shifted from building monolithic standalone applications to service-oriented, metric-driven, collaborative agile-based development of Web-based software. The work presented in this paper expounds the evident shift of quality models for conventional software to web-based software. It further suggests a
Introduction
As one of the core software project management concepts, the Iron Triangle or the Project Triangle, as shown in Fig. 1, represents the triple constraints of Time-Cost-Quality must be managed to ensure an on schedule, within budget and fit to purpose project delivery [1]. It is generally accepted that it’s only possible to attain two elements at the same time, that is, you can have a high quality build and can get it done quickly but it will be done at a higher cost. Similarly, developing a high quality build at a low cost will take a longer time.
It has been established across pertinent literature that a well balancing act between these constraints along with an added scope and sustainability dimensions can lead to a successful software development and delivery. Over time software products have become more complex and for successful businesses that develop this software, software quality cannot be an exception – it must be a requirement. The software quality determines the conformance of requirements and thus reflects how acceptable and successful a software product could be. Good quality software is the one which is developed using systematic procedures and follows standards to produce a software product that works efficiently and meets business needs and is delivered on time and within budget. Formally, IEEE defined software quality as “the degree to which a system, component or process meets specified requirements and customer needs” [2].
Conventional software development is mostly related with building desktop applications. The past decade has seen a proliferation of architectures, frameworks, and languages in software development. Software methodologies have shifted from building monolithic standalone applications to service-oriented, metric-driven, collaborative agile-based development. Further, with the phenomenal growth of the Internet and Web, the World Wide Web has become a key reservoir of information and has progressed into an environment for delivery of varied kinds of applications. The exceptional spread of Web applications into areas of communication and commerce makes it one of the leading, rapidly growing and prime branch of the software industry. Web engineering has been described as a distinct line of research for development of Web-based software. It is the use of scientific, engineering, and management principles and systematic approaches with the aim of successfully developing, deploying and maintaining high quality Web-based systems and applications [3]. Web development and software development differ in a number of areas but the key parameters which define this difference are the people involved in development, the intrinsic characteristics of Web applications and the audience for which they are developed. Mendes [4] grouped the differences between Web and software development into 12 areas, namely, Application characteristics, Primary technologies used, Approach to quality delivered, Development process drivers, Availability of the application, Customers (stakeholders), Update rate (maintenance cycles), People involved in development, Architecture and network, Disciplines involved, Legal, social and ethical issues and Information structuring and design.
Project triangle.
Current generation websites are more like software as these store data/interact with a database on the back end, execute some business logic and process information in a more convoluted way. They have a web interface but web development here is just not limited to developing an alluring interface but creating a web-based software. Thus, the web based software development primarily consists of three ingredients, namely the development of websites, web application development and development of web services. These are defined as:
Websites are the collection of static or dynamic web pages and are accessed using a browser. Websites generally provide information about some organization, service, a product, blog etc. Web application (or WebApp) is a client server software application in which client runs on a web browser and it is dedicated to perform a particular function or used for an intended purpose [5]. It is similar to the traditional desktop software applications with a slight difference that web applications have everything online. Web Service is a technology which uses the collection of protocols and standards so that two or more web apps can interact with each other and can exchange data between them.
The Web-based software is thus a hybrid between a website and a standard application. Conventional software mainly assesses quality to determine the functional features of the software whereas Web-based applications are primarily focusing on the non-functional features such as quality aspects of Web application. The Web-data is typically multimedia, unstructured, hyperlinked, dynamic, noisy and duplicate [6]. Predicting the usefulness and quality of the hypermedia based web applications is essential. Although scientific literature identifies several parameters, or criteria, of quality for conventional software but it is not a “one size fit all” model. Further, the web quality models have been defined too with their roots to these conventional models, but the paradigm shift can be observed owing to special quality assessment parameters pertinent to Web- Apps. High quality applications and services should be provided so that the organization remains competitive and customers return to do repeat business. Quality assessment criteria for web-based development have to be defined with the help of comprehensive indicators. Moreover the degree of importance of quality parameters for both conventional and web-based models is different too because of lack of disciplined development of WebApps, which are characterized by short time-to-market and resource constraints.
Comparison of conventional software and web based software
The work presented in this paper expounds a study on this evident shift of quality models for conventional software to web-based software and suggests a
The rest of the paper is organized as follows: Section 2 briefly represents the background and related work done in this area. Section 3 discusses five key conventional software quality models followed by an illustration of WebApp quality, its attributes and the various quality models for Web based Applications in Section 4. Section 5 depicts the
Conventional software such as desktop applications are the various kinds of programs used to operate on computers, whereas a web-based software is a program that is stored on a server and is delivered through a browser interface over the Internet. The basic difference between the conventional software and web-based software is given in the Table 1.
Various software quality attributes.
In software engineering literature, there are many software quality models that evaluate general and specific type of software products based on a number of quality attributes. These quality attributes quantify and reflect the quality of the software product. Some of the vital software quality attributes are Maintainability, Efficiency, Reliability, Usability, Portability, Functionality, Flexibility, Testability, Correctness, Integrity and Interoperability as shown in Fig. 2.
Earlier literature surveys reported have either focused on the reviews of software quality models [7, 8, 9, 10, 11, 12, 13, 14, 15] and their comparison or simply web-based software (web) quality models. A systematic literature review of open source software quality assessment models has been recently presented in 2017 by Adewumi et al. [8] for helping developers in formulating newer models and practitioners (software evaluators) for selecting suitable OSS in the midst of alternatives. In 2015, Sheoran and Sangwan proffered a comparative analysis software quality models applied in predicting software quality attributes [9]. In 2014, Suman and Wadhwa [10] presented a comparison of 17 software quality models based on 28 attributes. In the same year, Miguel et al. [7] reviewed various software quality models for the evaluation of software products categorizing them as basic and tailored quality models. Previously, Al-Baradeen [11, 12], Al-Qutaish [13], Samarthyam [14] and Ghayathri [15] have also conducted comparative studies of basic quality models. Looking across work available in the literature, we found that none of the work has focused on discussing the obvious paradigm shift from conventional software products to the web-based software products. The work presented here thus reports a comparison of the conventional software quality with the web based quality and presents a pi model depicting the paradigm shift from conventional software products to the web-based software products.
There are number of software quality models based on various quality characteristics. We will discuss about the prominent five software quality models namely, McCall’s quality model, Boehm’s quality model, Dromey’s quality model, FURPS quality model and ISO 9126 quality model.
McCall’s quality model
McCall’s quality model is the one of the most prominent software quality model. Jim McCall proposed this model in 1977 and tried to bridge the gap between the consumers and developers by mapping the consumer’s view with the developer’s priority [13, 16]. He identified three major perspectives to define the quality of a software product. The three major quality perspective has a set of quality factors which in turn consists of a number of quality criteria, which are reflected by one or more metrics.
The major perspectives are Product Revision, Product Operations and Product Transition that have 11 quality factors to elucidate the external view of the software and 23 quality criteria to discuss the internal view of the software. To provide the scope and method of measurement McCall Model has a set of Metrics [16].
The 11 quality factors that are considered in this model are maintainability, flexibility, correctness, integrity, reliability, efficiency, usability, testability, reusability, portability and interoperability.
Comparison of the five conventional software quality models
Comparison of the five conventional software quality models
Boehm presented its model in 1976 to define the software quality by a set of attributes and metrics. It has hierarchy of attributes and metrics. The top level characteristics represent the basic top level requirements of actual use [17, 18]. The three characteristics in its top level are:
As-is-utility to define how reliably, effortlessly and efficiently a software product can be used. Maintainability to define how easily the software product can be understood, modified and retested. Portability to describe how the software product can be operated when the environment has been transformed.
The intermediate level characteristic represents the qualities expected from the software product. The seven quality characteristics are portability, reliability, understandability, usability, testability, efficiency and flexibility. The 15 primal characteristics provide the basis for defining quality metrics.
Dromey introduced his quality model in 1995. He developed a quality assessment framework that analyses and evaluates the quality of a software product and its components and recognizes that it differs for each product. Dromey’s quality model comprises of four software product properties and each property incorporates some quality attributes. For the implementation, the four product properties are correctness, internal, contextual and descriptive [19, 20]. They are further classified into quality attributes such as functionality, reliability, maintainability, efficiency, reusability, portability and usability.
FURPS quality model
Robert Grady presented his model in 1992. FURPS stands for the five characteristics on which the model is based upon. The five characteristics are functionality, usability, reliability, performance and supportability. These characteristics are further classified into various quality characteristics such as security, human factors, frequency and severity of failure, recoverability and installability [13].
ISO 9126 quality model
ISO in 1991 gave a standard for the evaluation of quality characteristics of software product. The initial ISO 9126 series quality model contains two parts quality model for software quality product. The first part of this model is the internal and external quality model that determines the six characteristics which are further subdivided into twenty seven sub-characteristics. The six characteristics are functionality, reliability, usability, efficiency, maintainability and portability. The second part of the model is the quality in use model that consists of four quality characteristics which are effectiveness, productivity, safety and satisfaction [21, 22, 23, 24, 25].
Comparative study of software quality models
A comparison of quality characteristics that the five quality model considers is presented in Table 2. From this table, we infer that out of the 17 characteristics, only one of the characteristic is common to all the 5 software quality models. The quality characteristic which is considered in all the five model is reliability which is defined as the system’s ability to perform its intended function satisfactorily. Moreover, it can be noted that there are three characteristics that belongs to four of the quality models. These characteristics are efficiency, usability and portability. Two characteristics i.e. testability and reusability are considered in two quality models whereas rest nine of the characteristics belong only to one software quality model.
A general model of Web components and quality actors, and the Quality model of Polillo.
It was observed that the ISO 9126 quality model is by far the best quality model as it has been build based on an international consensus and agreement from all the country members of the ISO organization [13, 21, 22, 23, 24, 25].
Web quality is defined as the degree to which the web based software meets the specified requirements, is accessible, provides the reliable information and meets the user needs and expectations [26]. A good web based software is the one which provides reliable content, has good design and user interface and can address the global audience. It is a good practice to successfully deliver the web based software on time, within budget, having high level of quality and which is easy to use and maintain. Some of the quality attributes that are generally used to measure the quality of a web based software are Functionality, Reliability, Usability, Efficiency, Maintainability, Portability, Suitability, Installability, Adaptability, Learnability, Interoperability, Safety, Security, Correctness, Testability, Flexibility, Reusability, Architecture, Communication, Content, Community, Platform, Accessibility, Software Code and Compatibility.
Web based software quality models
To measure the quality aspects of web based software, there are several web quality models. The web quality model is used to define and measure the quality of web based software. A web quality model is the set of defined characteristics and relationships between them, which provides a framework to specify quality requirements of web based software product and evaluate it [7]. A number of web quality models have been proposed over the years. Here we will discuss a few of them.
ISO 9126
ISO/IEC 9126 is issued as an International Standard quality model in 1991. It provides a very general model and consists a set of six quality characteristics and 27 sub-characteristics [21, 27]. It was the best known model but it has been recently canceled and a new updated standard has been released.
ISO/IEC 25010
ISO/IEC 25010 is the updated standard issued by the International Standard. It defines the two quality models. The first one is the Product Quality Model that consists of internal and external qualities of the system. It defines 8 quality characteristics and 31 sub-characteristics [28, 29]. The quality characteristics defined by the model are functional suitability, performance efficiency, compatibility, usability, reliability, security, maintainability and portability. The second model described by the ISO/IEC 25010 is the quality in use model that defines the impact the product has on stakeholders. It is composed of 5 characteristics and 9 sub-characteristics. These characteristics and sub-characteristics are measurable through a set of associated measurable properties. The internal properties defines the internal qualities of the product, the external properties contributes to the external qualities of the product and the quality in use properties describe the properties that influence the quality of the product when used in different contexts [29].
Roberto Polillo quality model
According to Roberto Polillo, the web based soft- ware can be modeled as a set of associated attributes like architecture, platform, Graphics and content. Each of these quality component is linked with an actor that interacts with these attributes. Figure 3 shows the 9 main quality characteristics of the Polillo quality model: Architecture, Communication, Functionality, Content, Community, Platform, Accessibility, Usability and Coding.
Comparison of the web based quality models
Comparison of the web based quality models
Comparison of various web performance tools
A general framework of the 
Architecture refers to the information architecture and not the internal software architecture. It includes the web based software navigation facilities. Communication defines the web-style guide, multimedia and style usage. Functionality refers to the extent to which the web based software performs the intended functions and meets the needs under specific conditions. Content refers to the data content of the web software which is generated by the company’s content editors. Community contains the actors that are associated with it like web software users and website managers and the content generated by them. Platform refers to the hardware and software of the server. Software code refers to the software which is developed specifically for the web based software. The quality characteristics of this model are both static and dynamic. Once the top-level characteristics are well understood, then the lower level features can be adapted and improved over the time and with experience according to the project specifications [28]. Roberto Polillo proposed a model based on 30 sub-characteristics. The sub-characteristics are information architecture, navigation, brand identity, visual design, typography, multimedia usage, functional adequacy, functional correctness, security, categorization, conformity to style guide, information quality, content timeliness, content localization, user relations, community management, platform adequacy, site availability, site performances, access monitoring, findability, band requirements, client independence, users ability requirements, effectiveness, efficiency, user satisfaction, reliability, maintainability and compliance to standards [28, 30].
Luis Olsina proposed a quality model for web based software where the content of the web software is considered very peculiar to determine the software product quality. In this model, the web content is given great emphasis. It is considered that the quality content of a web software promises lower bounce rates as users find that content helpful and stay for a longer time thus contributing to high quality web software [31]. In this model, the seven characteristics define the quality of a web based software. These characteristics are functionality, reliability, usability, efficiency, maintainability, portability and content.
Fitzpatric quality model
Fitzpatrick et al. defined a web based software quality model with 12 external and 5 internal factors of quality. The external quality factors include suitability, installability, functionality, adaptability, ease of use, learnability, interoperability, reliability, safety, security, correctness and efficiency. The internal attributes of quality includes maintainability, testability, flexibility, reusability and portability. Later he identified 5 more web-site specific attributes and added these to his model. The five additional website specific characteristics were visibility, intelligibility, credibility, engagibility and differentiation [32].
Quint 2 model
The Quint 2 model is the extension of ISO 9126 model with 4 major quality characteristics and 11 sub-characteristics. Reliability, functionality, usability and maintainability are the four main quality attributes which are further sub-grouped as availability, degradability, traceability, explicitness, customizability, attractiveness, clarity, helpfulness, user-friendliness, manageability and reusability [27].
Comparison of web based software quality models
A comparison of quality characteristics within the six web based quality model discussed is presented in Table 3. Twenty-five quality attributes, namely, functionality, reliability, usability, efficiency, maintainability, portability, suitability, installability, adaptability, learnability, interoperability, safety, security, correctness, testability, flexibility, reusability, architecture, communication, functionality, content, community, platform, accessibility, software code and com- patibility are identified and defined in the table.
From this table, we infer that out of the 25 characteristics, two of the quality characteristic i.e. functionality and usability are common to all 6 web based software quality models. Moreover, it can also be noted that reliability and maintainability are two characteristics that belongs to five out of the six quality models. Some additional quality attributes like content, communication and security, which are not considered in software quality models are taken in consideration in web software quality models.
Web performance testing tools
Performance is the key to a great user experience and is helpful in determining the quality of the web products. Thus to assure that the users have great experience, the most frequent flows of web products must be tested and the performance of the browser and server must be understood. Performance Testing is helpful in providing the accurate information about the readiness and performance of a web product. It is done by simulating the load similar to the real conditions to evaluate whether the web application will be able to manage the expected load. It helps in identifying and fixing possible issues and provides helpful advice about how to fix problems. Some of the most prominent, free and open source web product performance tools [33, 34, 35, 36, 37] are as follows:
Apache Bench Apache Bench is a command line open source tool used for benchmarking any HTTP server by sending arbitrary number of concurrent requests. Siege Siege is a performance testing tool written on GNU/Linux and it allows testing against multiple URLs in three different modes of operation i.e. regression, internet simulation and brute force. Locust.io It is a small and hackable event based tool that enables complex transactions and generates high level of concurrency. Bees with machine guns It creates many bees (micro EC2 instances) to load test the targeted web apps. Multi mechanize This tool is used for web performance and scalability testing by running concurrent python scripts to generate the load at a remote site. Httperf It measures the webserver performance by providing an open ended facility to generate arbitrary HTTP workloads. JMeter JMeter is a performance testing tool, written in Java that can test both static and dynamic resources. GooglePageInsights It analyzes the content of a web page of mobile and desktop devices, measures its performance and generates suggestions so that the web page can improve conversion rates and reduce the page load time. SiteSpeed.io It evaluates the website speed and performance of client side from real browsers on the basis of the performance best practices and timing metrics. WebPageTest.org It is a tool which tests a web page in any browser, from any geographical location and over any network connection.
Table 4 describes the tools against the various parameters the user of the web product consider for the evaluation of the web product’s performance.
The shift of the quality attributes from the conventional software quality model to the web based quality model can be represented by a model called the pi model (
The first vertical pillar considers vital quality attributes of the conventional software quality models that are not taken into account in web based quality models. Integrity which can be defined as the process of ensuring that the data is accurate and safeguarded from unauthorized access can be mapped to the quality parameter safety and security of the web based quality models. Human engineering is the characteristic usability that the code possess to the extent that it can be human engineered. Thus it can be indirectly mapped to the usability attribute of the quality models. Supportability measures the parameters such as serviceability, sustainability, localizability, extensibility, configurability of the software based models. The quality parameter “performance” evaluate attributes like speed, resource consumption, throughput, capacity, scalability and response time of the conventional software. The web based quality models does not examine the performance attribute of the web based software. Performance attribute is one of the principal quality attribute that one should consider while evaluating the quality of any web based software. Thus there is a need of a quality model that can evaluate the quality of the web based software by assessing all the vital quality aspects specifically the performance attribute.
Footnotes
Acknowledgments
We would like to thank Arunima Jaiswal, PhD Scholar, Saurabh Raj Sangwan and Dhiraj Gupta, Graduate students, Web Research Group, Department of Computer Science and Engineering, Delhi Technological University for their constant support during the preparation of this manuscript.
