Professional Documents
Culture Documents
Introduction
Many firms rely on software to gain a competitive advantage, and it is gradually becoming an es-
sential component of corporate operations, products, and services. The excellence of software
products is increasingly seen as an imperative factor in success of a company (Veenendaal &
McMullan, 1997). Furthermore, software product quality is critical for instance, in some sensit-
ive structures - such as real-time systems, control systems, and so on - poor quality can result in
monetary damage, mission failing, eternal harm, or even fatalities. The quality of a software
product is determined by features such as maintainability, simplicity of eliminating and locating
flaws or errors, sufficient documentation, and the use of appropriate design patterns and design
principles. It should be simple to add new functionalities to software. The criteria that character-
ize software quality are as follows:
Accessibility and Usability: Software that is useful for people should also provide several
accessibility types of control for people with disabilities.
Adaptability and Extensibility: The ability of software quality management to incorpor-
ate, update, or remove functionality during software development without causing harm
to the existing system is known as adaptability. Extensibility can be considered a subset
of adaptability since it refers to the ability to add features without degrading the system.
Correctness and Functionality: The congruence of software for quality management sys-
tems with actual requirements and specifications is referred as functionality or correct-
ness. When talking about broken software, quality management and control of the devel-
opment process are not significant.
Readability and Maintainability: Maintainability focuses on adjustments related to fault
fixes and modest capacity improvements. Appropriate interface definitions, documenta-
tion, and self-recording code can all be used to facilitate it. The higher maintainability is
possible when more accurate and useful documentation is conserved.
Testability: Testability determines how the product framework is tested, as well as how it
functions. It includes automated diagnostics carried out by the quality system manage-
ment software as well as specified deliverables.
Portability: The system should be capable to continue using the same crucial software un-
der different conditions.
Interoperability: The main focus of interoperability requirements is creating connections
with several other software frameworks or other hardware firmware.
Security: No access points should be left open in the development and application of an
effective security plan. This might include authorization and verification procedures, or-
ganized assault insurances, data encryption, etc. Every potential security flaw should be
taken into consideration since otherwise, someone might exploit and wreck the program.
Figure 5: ISO 9126 Software Quality Model (Al-Obthani & Ameen, 2017)
2. Literature Review
2.1 Software Extensibility
Extensibility is a metric for a technology's ability to add new components and functionalities to
its current framework. When add-ons and plugins may enhance the functionality of a software
program, for instance, such program is said to be extensible. Programming languages that are
extensible can specify new features and add additional capabilities to them (Techopedia, 2021). It
is the software system's capacity to support extensions that add new functionality and features
while having the least possible negative effects on the present system (Breivold, Crnkovic, &
Eriksson, 2007). The capacity of a piece of software to expand in terms of enactment and
capability and to rapidly and effectively add fresh features when they are required (or financed)
without having to redesign the core infrastructure is known as extensibility (Papke, Brock, &
Graybeal, 2000). Then, Papke and colleagues add that extensibility also requires modifiability
and expandability. They define expandability as the capacity to add new types of scientific
equipment, and modifiability as the capacity to add functionality. The capacity for development
teams to expand a system's functionality or its quality attributes in known, planned ways by
using extension points that have been integrated into its design is referred to as extensibility.
Exploring extensibility from the perspectives of the system owner who wants to provide such
mechanisms and the analyst who wants to confirm that the extensibility features built into the
architecture are sufficient for achieving the desired results with reasonable cost, schedule, and
personnel implications and without compromising other crucial system components.
According to the aforementioned definitions, extensibility is the capacity to quickly include new
features, functions, or capabilities. They also stress that this addition should be made using a
design strategy in which the existing system's core is not altered to accommodate the extensions
but rather, certain design elements—extension mechanisms or extension points—provide this as
an organic capability that significantly reduces the time, risk, and effort of extending the system.
Some well-known examples are browser add-ons and plugins for Chrome, Firefox, and Edge;
audio editing software plug-ins for music processing; and IDE plugins that comprehend the
syntax of certain programming languages (Kazman, Echeverría, & Ivers, 2022).