Sign In to Follow Application
View All Documents & Correspondence

Method And System For Measuring Software Quality Attributes

Abstract: A method and a system for measuring quality attributes for software  includes receiving selected quality attributes  selected sub-attributes associated with the selected quality attributes and selected rules associated with the selected sub-attributes. The selected rules are language independent. A source code of the software is analyzed to build an intermediate representation of a plurality of components of the software. The intermediate representation of the plurality of components is checked for non-conformance against the selected rules Based on the non-conformance of the selected rules for each of the plurality of components  software quality attribute values for the software is computed.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
23 November 2012
Publication Number
22/2014
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application
Patent Number
Legal Status
Grant Date
2021-06-18
Renewal Date

Applicants

TATA CONSULTANCY SERVICES LIMITED
Nirmal Building  9th Floor  Nariman Point  Mumbai-400021  Maharashtra

Inventors

1. RAMASAMY  Sangeetha
415/21-24  KUMARAN NAGAR SHOLINGANALLUR OLD MAHABALIPURAM  CHENNAI
2. MEHALINGAM  Tamildurai
415/21-24  KUMARAN NAGAR SHOLINGANALLUR OLD MAHABALIPURAM  CHENNAI

Specification

PD006030IN-SC
FORM 2
THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENTS RULES, 2003
COMPLETE SPECIFICATION
(See section 10, rule 13)
1. Title of the invention: METHOD AND SYSTEM FOR MEASURING SOFTWARE
QUALITY ATTRIBUTES
2. Applicant(s)
NAME NATIONALITY ADDRESS
TATA CONSULTANCY
SERVICES LIMITED
Indian Nirmal Building, 9th Floor, Nariman
Point,
Mumbai-400021,Maharashtra
India
3. Preamble to the description
COMPLETE SPECIFICATION
The following specification particularly describes the invention and the manner in which it
is to be performed.
1
2
TECHNICAL FIELD
[0001] The present subject matter relates, in general, to assessing quality of software and,
in particular, to a computer-implemented method and a system for measuring software quality
attributes.
BACKGROUND
[0002] Typically, software is tested for functionality before release. The quality of such
software is determined based on quality indicators or non-functional attributes of the software
itself. Examples of quality attributes include reliability, reusability, maintainability, mean time to
failure, testability, usability, efficiency, understandability, complexity, modularity, portability,
and so on. However, these quality attributes are not always measured for the software while
development or during testing, as these quality attributes are measurable after the software is
operational. Thus, due to the non-measurement of these quality attributes before the release, the
software can reach a stage where it becomes very difficult to maintain and make changes to
sustain the software.
[0003] Presently, different software quality measurement tools are available to measure
the quality attributes of software such as CAST, SONAR, and so on. However, such tools are
language specific. For example, CAST Application Intelligence Platform is an automated system
for measuring the quality and size of business software. CAST inspects a source code of the
business software, identifies and tracks quality issues, and provides data to monitor development
performance. However, the rules configured to identify and track quality issues are specific to
the type of language supported by the CAST. Similarly, SONAR is an open source software
quality platform. SONAR uses various static code analysis tools, such as Checkstyle, PMD, and
FindBugs to extract software metrics, which then can be used to measure software quality.
However, the set of rules used for performing analysis are limited to the rules available in open
source tools.
SUMMARY
[0004] This summary is provided to introduce concepts related to measuring software
quality attributes. These concepts are further described below in the detailed description. This
3
summary is not intended to identify essential features of the claimed subject matter nor is it
intended for use in determining or limiting the scope of the claimed subject matter.
[0005] A method and a system for measuring software quality attributes of software
includes receiving selected quality attributes and selected sub-attributes for each of the selected
quality attributes. Thereafter, rules associated with the above selected sub-attributes are selected
and parameters for the rules are set. The rules are language independent, such that software
written in any language can be assessed for software quality. A source code of the software is
analyzed and an intermediate representation of a plurality of components of the software is built.
Each of the plurality of components is then checked based on the intermediate representation for
non-conformance against the selected rules. Based on the non-conformance of the selected rules,
a software quality attribute value of the software as a whole is calculated
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The detailed description is described with reference to the accompanying figure(s).
In the figure(s), the left-most digit(s) of a reference number identifies the figure in which the
reference number first appears. The same numbers are used throughout the figure(s) to reference
like features and components. Some embodiments of systems and/or methods in accordance with
embodiments of the present subject matter are now described, by way of example only, and with
reference to the accompanying figure(s), in which:
[0007] Fig. 1 illustrates a network environment implementing a software quality attribute
measurement system, according to an embodiment of the present subject matter.
[0008] Fig. 2a illustrates components of the software quality attribute measurement
system, according to an embodiment of the present subject matter.
[0009] Figs. 2b-2f illustrate an exemplary data set for measuring quality attributes of
software by the software quality attribute system.
[0010] Fig. 3 illustrates a method for measuring quality attributes of the software
according to an embodiment of the present subject matter.
4
DETAILED DESCRIPTION
[0011] Typically, software is tested for both functional quality and structural quality.
Functional quality relates to functional requirements of the software and is tested prior to the
release of the software. Structural quality of software relates to non-functional requirements that
support the software for proper functioning over a period of time. Structural quality is
determined based on quality indicators or non-functional attributes, hereinafter referred to as
quality attributes, of the software itself. Examples of quality attributes include reliability,
reusability, maintainability, mean time to failure, testability, usability, efficiency,
understandability, complexity, modularity, portability, and so on. Based on the international
standard models, five major quality attributes are defined which are needed for the software to
provide business value, namely, reliability, efficiency, security, maintainability and adequate
size.
[0012] However, these quality attributes are not always measured for the software before
release. Thus, due to the non-measurement of these quality attributes after the software has been
developed, the software reaches a stage where it becomes very difficult to maintain and make
changes to sustain the software. Even in case software is evaluated for quality, generally, an
aggregated measure of software quality is computed through a qualitative or a quantitative
scoring scheme or a mix of both for all of the quality attributes and then the scoring is prioritized
according to a weighting system. However, such scoring schemes and weighting systems are
non-configurable. Moreover, the effort, time and cost required to identify and measure these
quality attributes are very high. Due to reduced software development cycle time, the quality
attributes are not measured in systematic manner, resulting in low maintainability. Furthermore,
while different software quality measurement tools are available to measure the quality attributes
of software such as CAST, SONAR, and so on, however, such tools are language specific and
therefore, a single tool is not able to cater to large spectrum of languages, which range from
legacy software to distributed software and Microsoft developed software such as Cobol, Java,
C#, and so on.
[0013] The method and system, in accordance with the present subject matter, involves
measuring quality attributes of software such that a plurality of software written in different
languages can be assessed for software quality. The measurement of quality attributes of the
5
software by the present system and method increases the useful life of the software by regularly
monitoring the quality attributes of software and taking necessary actions to ensure its quality.
[0014] According to the present subject matter, the measurement of software quality
attributes is automated in a systematic and configurable manner such that the software quality
assessment can be performed for any technology landscape. To this end, a required set of quality
attributes and a required set of sub-attributes is selected, corresponding to each of the selected
quality attributes from a predefined set of quality attributes and a predefined set of associated
sub-attributes. Further, a percentage impact of the selected sub-attributes on the corresponding
quality attribute is selected. After selecting the sub-attributes, a set of rules corresponding to each
of the selected sub-attributes is selected. Each of the rules is further associated with a predefined
weightage and calculation parameter type. Thus, each of the quality attributes, the sub-attributes,
and the rules can be selected or ignored based on the requirement of software quality assessment,
thereby providing flexibility in performing software quality assessment.
[0015] A source code of a software application or a version of software, hereinafter
referred to as software, is analyzed syntactically and semantically for building an intermediate
representation of a plurality of components of the software. Based on the intermediate
representation, the plurality of components is checked for non-conformance against the selected
rules. The intermediate representation is language independent and therefore the set of rules are
configured to be language independent. The same set of rules can be used across different
technologies or languages. The set of rules are classified as common, procedural, object oriented,
and language specific. The rules classified as common can be applicable to all languages.
Similarly, the rules classified as procedural can be applied to languages based on procedural
programming concepts. Similarly, the rules classified as object oriented are applicable to
languages based on object oriented programming concepts. Thus, a non-dependency of rules on a
specific language ensures that a wide variety of rules are available for performing software
quality assessment. Further, the non dependency of rules ensures that any software written in any
language or technology can be assessed for software quality.
[0016] A non-conformance report including the details of the non-conformance such as a
list of non-conformed rules for each of the components is generated based on the checking and
the non-conformance report is stored in a repository. For each of the plurality of components, a
6
rule value for each of the non-conformed rules is calculated based on the calculation parameter
type of the rule and the predefined weightage of the rule. Based on the calculated rule values,
sub-attribute value for each of the selected sub-attributes is calculated for each of the
components. Based on the calculated sub-attribute values of the selected sub-attributes and
selected percentage of impact of the sub-attributes, quality attribute value for each of the quality
attributes is calculated for each of the components. Subsequent to the calculation of quality
attribute values for each of the plurality of components, a software quality attribute value for
each of the selected quality attributes is calculated for the software as a whole. The software
quality attribute value for each of the selected quality attributes is calculated based on the
calculated quality attribute values of the quality attributes for each of the plurality of
components.
[0017] Thus, in the present subject matter, the measurement of software quality attributes
is performed in a systematic and configurable manner thereby allowing a greater flexibility
according to the requirements for software quality assessment. Further, the rules required for
measurement of software quality attributes are language independent thereby providing
flexibility of software quality assessment of software written in any language. Also, necessary
actions can be taken based on the regularly monitored quality attributes of the software and
longevity of the software can be increased. Further, the non-conformances affecting the quality
attributes of the software can be identified and fixed at an early stage. Furthermore, inputs on the
quality metrics of the software are provided for making decisions about the transformation or
retirement of the software.
[0018] The following disclosure describes system and method of measuring software
quality attributes of software. While aspects of the described system and method can be
implemented in any number of different computing systems, environments, and/or
configurations, embodiments for the information extraction system are described in the context
of the following exemplary system(s) and method(s).
[0019] Fig. 1 illustrates a network environment 100 implementing a software quality
attribute measurement system 102, in accordance with an embodiment of the present subject
matter. In one implementation, the network environment 100 can be a public network
environment, including thousands of personal computers, laptops, various servers, such as blade
7
servers, and other computing devices. In another implementation, the network environment 100
can be a private network environment with a limited number of computing devices, such as
personal computers, servers, laptops, and/or communication devices, such as mobile phones and
smart phones.
[0020] The software quality attribute measurement system 102 is communicatively
connected to a plurality of user devices 104-1, 104-2, 104-3...104-N, collectively referred to as
user devices 104 and individually referred to as a user device 104, through a network 106. In one
implementation, a plurality of users, such as system administrator may use the user devices 104
to communicate with the software quality attribute measurement system 102.
[0021] The software quality attribute measurement system 102 and the user devices 104
may be implemented in a variety of computing devices, including, servers, a desktop personal
computer, a notebook or portable computer, a workstation, and a laptop. Further, in one
implementation, the software quality attribute measurement system 102 may be a distributed or
centralized network system in which different computing devices may host one or more of the
hardware or software components of the software quality attribute measurement system 102.
[0022] The software quality attribute measurement system 102 may be connected to the
user devices 104 over the network 106 through one or more communication links. The
communication links between the software quality attribute measurement system 102 and the
user devices 104 are enabled through a desired form of communication, for example, via dial-up
modem connections, cable links, digital subscriber lines (DSL), wireless, or satellite links, or any
other suitable form of communication.
[0023] The network 106 may be a wireless network, a wired network, or a combination
thereof. The network 106 can also be an individual network or a collection of many such
individual networks, interconnected with each other and functioning as a single large network,
e.g., the Internet or an intranet. The network 106 can be implemented as one of the different
types of networks, such as intranet, local area network (LAN), wide area network (WAN), the
internet, and such. The network 106 may either be a dedicated network or a shared network,
which represents an association of the different types of networks that use a variety of protocols,
for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet
Protocol (TCP/IP), etc., to communicate with each other. Further, the network 106 may include
8
network devices, such as network switches, hubs, routers, for providing a link between the
software quality attribute measurement system 102 and the user devices 104. The network
devices within the network 106 may interact with the software quality attribute measurement
system 102, and the user devices 104 through the communication links.
[0024] The network environment 100 further comprises a database 108 communicatively
coupled to the software quality attribute measurement system 102. The database 108 may store
all data inclusive of data associated with the software and relate quality attribute measurement.
For example, the database 108 may store a non-conformance report 110, a rule value 112, a subattribute
(SA) value 114, a component quality attribute value (CQA) 116, and a software quality
attribute (SQA) value 118. As indicated previously, the rule value 112, the sub-attribute value
114, the component quality attribute value 116, is calculated for each of the non-conformed
rules, associated sub-attributes, and associated quality attributes respectively.
[0025] Although the database 108 is shown external to the software quality attribute
measurement system 102, it will be appreciated by a person skilled in the art that the database
108 can also be implemented internal to the software quality attribute measurement system 102,
wherein the non-conformance report 110, the rule value 112, the sub-attribute value 114,
component quality attribute value 116, and the software quality attribute value 118 may be stored
within a memory component of the software quality attribute measurement system 102.
[0026] According to an implementation of the present subject matter, the software quality
attribute measurement system 102 includes a quality attributes measurement module 120 which
calculates software quality attributes values 118 based on the non-conformance details of rules,
predefined weightage of the rules, calculation parameter type of the rules, and impact of the subattributes
on the quality attributes. The manner in which the software quality attribute
measurement system 102 evaluates the quality of the software is explained in greater detail
according to the Fig. 2a.
[0027] Fig. 2a illustrates various components of the software quality attribute
measurement system 102, according to an embodiment of the present subject matter.
[0028] In said embodiment, the software quality attribute measurement system 102
includes one or more processor(s) 202, a memory 206 coupled to the processor(s) 202, and
interface(s) 204. The processor(s) 202 may be implemented as one or more microprocessors,
9
microcomputers, microcontrollers, digital signal processors, central processing units, state
machines, logic circuitries, and/or any devices that manipulate signals based on operational
instructions. Among other capabilities, the processor(s) 202 are configured to fetch and execute
computer-readable instructions and data stored in the memory 206.
[0029] The interface(s) 204 may include a variety of software and hardware interfaces,
for example, the interface(s) 204 may enable the software quality attribute measurement system
102 to communicate over the network 106, and may include one or more interface for peripheral
device(s), such as a keyboard, a mouse, an external memory, a printer, etc. Further, the
interface(s) 204 may include ports for connecting the software quality attribute measurement
system 102 with other computing devices, such as web servers and external databases. The
interface(s) 204 may facilitate multiple communications within a wide variety of protocols and
networks, such as a network, including wired networks, e.g., LAN, cable, etc., and wireless
networks, e.g., WLAN, satellite, etc.
[0030] The memory 206 may include any computer-readable medium known in the art
including, for example, volatile memory, such as static random access memory (SRAM) and
dynamic random access memory (DRAM), and/or non-volatile memory, such as read only
memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and
magnetic tapes. The memory 206 also includes modules 208 and data 210. The module(s) 208
include routines, programs, objects, components, data structures, etc., which perform particular
tasks or implement particular abstract data types. The module(s) 208 further includes a rules
configuration module 212, an application analysis module 214, a rule conformance module 216,
and other module(s) 218 along with the quality attributes measurement module 120.
[0031] The data 210 serves, amongst other things, as a repository for storing data
processed, received and generated by one or more of the modules 208. The data 210 includes the
non-conformance report 110, the rule value 112, the sub-attribute value 114, component quality
attribute value 116, and the software quality attribute value 118. The data 210 also includes a
source code of a version of software for assessing quality and components of the source code of
the version of software, not shown in the figure. The other data 226 includes data generated as a
result of the execution of one or more other modules 218.
10
[0032] In the present embodiment, the non-conformance report 110, the rule value 112,
the sub-attribute value 114, the component quality attribute value 116, and the software quality
attribute value 118 are depicted to be stored within the data 210, which is a repository internal to
the software quality attribute measurement system 102. However, as described in the previous
embodiment, the non-conformance report 110, the rule value 112, the sub-attribute value 114,
component quality attribute value 116, and the software quality attribute value 118 may also be
stored in the database 108 that is external to the software quality attribute measurement system
102.
[0033] According to the present subject matter, a set of quality attributes to be measured
for software are predefined in the software quality attribute measurement system 102 to measure
quality of the software in operation. In one implementation, the predefined set of quality
attributes includes maintainability, reliability, complexity, security, and performance. For each of
the predefined set of quality attributes, a set of sub-attributes is predefined along with a
percentage impact of the sub-attribute on a corresponding quality attribute. It would be
appreciated by those skilled in the art that the sub-attributes of a corresponding quality attribute
are the technical components of the corresponding quality attribute. Fig 2b illustrates an
exemplary data set mapping the set of sub-attributes and their percentage impact with
corresponding quality attributes. Column 228 provides list of sub-attributes and column 230
provides a definition of each of the sub-attributes. Columns 232, 234, 236, and 238 correspond to
quality attributes, namely maintainability, reliability, security, and performance respectively. For
each of the sub-attributes under column 228, a percentage impact of the sub-attribute on the
corresponding quality attributes is provided. For instance in row 1, under column 232, subattribute
‘code computation’ is having 20% impact on quality attribute ‘maintainability’.
[0034] Each of the sub-attributes is associated with a predefined set of rules. For each of
the predefined set of rules, a plurality of calculation parameter types are defined. As would be
appreciated by those skilled in the art, the plurality of calculation parameter types may include
number of methods, number of lines of codes, number of instances, and so on. The predefined set
of rules is associated with a corresponding weightage to arrive at the final quality attribute value.
Based on the calculation parameter type selected and the weightage of the rule, a value of the
rule is calculated. Fig 2c illustrates an exemplary data set mapping the rules with corresponding
sub-attributes. Column 240 provides the sub-attributes and column 242 provides the rules.
11
Column 244 provides exemplary values of weightage associated with each of the rules identified
in column 242. For instance in row 1, under column 244, weightage of 3 is provided for subattribute
‘code documentation’ associated with a sample rule ‘every program should have
comment in beginning’.
[0035] Further, the predefined set of rules is categorized based on a language type such
as common, procedural, object oriented, and language specific. This categorization ensures that
the predefined set of rules can be mapped to software written in different software languages.
Further, the categorization of the predefined set of rules is done such that the implementation of
rules can be re-used across similar type of software languages and sub-set of software languages.
This ensures that a rich set of rules is made available quickly for any new software language
being added to the software quality attribute measurement system 102. For example, set of rules
for Java language, which is a mature software language, may be re-used for C# language, which
is a new software language. Thus, a rich set of rules for selection is available. Fig 2d illustrates
an exemplary data set of the categorization of rules. Columns 246, 248, and 250 provide the type
of categorization, description of categorization, and total number of predefined rules
respectively. For instance in row 1, type of categorization ‘common’ under column 246 is
described as ‘rules that are applicable to all languages’ under column 248 and ‘n’ number of
rules are predefined under column 250.
[0036] As would be appreciated by those skilled in the art, the software quality attributes
is measured using software measures as an input. The software quality attribute measurement
provides a single numerical value for each of the quality attributes that can be interpreted as the
degree to which software possesses the quality attributes affecting the software quality.
[0037] To measure software quality attributes of the software, a required set of quality
attributes and a required set of sub-attributes corresponding to each of the quality attributes is
selected from the predefined set of quality attributes. In one implementation, the selection of
quality attributes and the sub-attributes is made through the rules configuration module 212. In
another implementation, one of the other modules 218 may be configured to enable the selection
of the required set of quality attributes and the required set of sub-attributes. After selecting the
sub-attributes, rules corresponding to each of the selected sub-attributes from the predefined set
of rules are selected. Through the rules configuration module 212, the rules applicable for the
12
software are selected, enabled and the parameter values are set for the selected rules. Further,
percentage impact of the selected sub-attributes on the corresponding quality attribute may be
changed as desired through the rules configuration module 212. Thus, the quality attributes, subattributes,
and the rules can be configured based on the requirements for software quality
assessment, thereby providing a greater flexibility to the user. In one implementation, the rules
configuration module 212 provides an option for a user to view all the predefined set of rules,
predefined set of quality attributes, predefined set of sub-attributes, predefined weightage of
rules, calculation parameter type of the rules, and predefined percentage impact of sub-attributes.
In such implementation, the user may select all the values as desired and required for measuring
the quality of the software.
[0038] A source code of the version of software is provided as an input to the application
analysis module 214. The source code is analyzed syntactically and semantically and the
intermediate representation of the plurality of components of the software is built by the
application analysis module 214. The selected rules are then accessed and their corresponding
parameter values are retrieved by the rules conformance module 216. Based on the intermediate
representation, the plurality of components is then checked for non-conformance against the
selected rules by the rule conformance module 216. As described earlier, the rules are classified
as common, procedural, object oriented and language specific, thereby ensuring the rules are
language independent. Thus, non-dependency of rules on a specific language ensures that a wide
variety of rules are available for performing software quality measurement. Further, the non
dependency of rules ensures that any software written in any language or technology can be
tested for software quality, and thus making the present subject matter a language independent
software quality analysis tool. Based on the analysis for non-conformance, a list of violated or
non-conformed rules is generated for each of the plurality of component. In one implementation,
the list of non-conformed rules may contain at least one non-conformed rule. The list of nonconformed
rules along with exact location of non-conformance is compiled and generated into
the non-conformance report 110 by the rules conformance module 216. The non-conformance
report 110 also includes other details such as number of violations, number of occurrences of
violation, and so on for each of the components of the version of the software. The nonconformance
report 110 is stored in a repository, such as the database 108, for further processing.
13
[0039] After the non-conformance report 110 is stored in the repository, an event for
measurement of quality attributes is triggered and the non-conformance report 110 is processed
by the quality attributes measurement module 120. As indicated previously the measurement of
quality attributes is made first at the component level and then at the software level. At first, the
rule value 112 for each of the non-conformed rules is calculated by the quality attribute
measurement module 120. As described earlier, a plurality of calculation parameter types are
defined for each of the rules. The plurality of calculation parameter types may include number of
methods, number of lines of codes, number of instances, and so on. The plurality of calculation
parameter types can be configured based on the requirement of software quality measurement. In
one implementation, for each unique rule that is non-conformed, the rule value 112 of the nonconformed
rule is calculated by the quality attribute measurement module 120 based on the
equation (1) provided below:
[No of violations / No of occurrences of the type] * Rule Weightage Value …(1)
wherein rule weightage value is the weightage value associated with each rule for arriving at the
value of quality attribute.
[0040] After calculating the rule value 112 for each of the non-conformed rules, the subattribute
value 114 of the corresponding selected sub-attributes associated with the nonconformed
rules is calculated by the quality attribute measurement module 120. In one
implementation, the sub-attribute value 114 for each of the selected sub-attributes is calculated
by the quality attribute measurement module 120 based on the standard equation (2) provided
below:
5 - [Sum of {Value of all non-conformed rules}] / [Sum of {weightage for all selected rules}]
…(2)
[0041] After calculating the sub-attribute value 114 for each of the selected subattributes,
the component quality attribute value 116 of the corresponding selected quality
attributes associated with the set of sub-attributes is calculated by the quality attribute
measurement module 120 based on the calculated sub-attribute value 114 and the percentage
impact of each of the selected sub-attributes. In one implementation, the component quality
attribute value 116 of the corresponding selected quality attribute is calculated by the quality
attribute measurement module 120 based on the standard equation (3) provided below:
[Sum of (Value of sub-attributes * Percentage impact of the sub-attributes)] / 100 …(3)
14
[0042] Figs 2e and 2f illustrate an exemplary data set of the calculated component quality
attribute values 116 of the selected quality attributes, namely maintainability and reliability
respectively. The calculated component quality attributes values 116 of selected quality
attributes, namely maintainability and reliability are based on the calculated sub-attribute values
114 of corresponding sub-attributes and the percentage impact of the sub-attributes illustrated in
Figs 2b, 2c, and 2d. In Fig 2e, column 252 provides the list of selected sub-attributes for quality
attribute ‘maintainability’, column 254 provides the list of percentage impact defined for the subattributes
in column 252, column 256 provides the calculated sub-attribute value based on
equation (2), and column 258 provides the calculated component quality attribute value for each
of the sub-attribute. After component quality attribute value is calculated for each of subattributes,
the component quality attribute value 116 is calculated according to equation (3).
[0043] After calculating the component quality attribute value 116 for each quality
attributes for each of the plurality of components, the software quality attribute value 118 of the
quality attributes for the software as a whole is calculated by the quality attribute measurement
module 120. In one implementation, the software quality attribute value 118 for each of the
quality attributes for the version of software as a whole is calculated by the quality attribute
measurement module 120 based on an average of the calculated component quality attribute
values 116 for each of the components. Thus, the values of quality attributes for the software are
calculated at a higher lever, i.e., at software level and at a lower level, i.e., at component level. It
would be appreciated by those skilled in the art that method of computation of software quality
attribute value can be based on any method known in the art.
[0044] In one implementation, the calculated values of the selected quality attributes for
the software and for the components of the software may be provided to the user through the user
interface. Further, the user may be able to drill down from the quality attributes of the software
as a whole to the quality attributes of the software at component level and corresponding subattributes
of the components. Furthermore, after analyzing one version of the software, another
version of the software can be analyzed and difference between the quality attributes of both
versions can be viewed. Also, a trend of the quality attributes of the software as a whole for both
versions can be viewed.
15
[0045] Fig. 3 illustrates a method 300 for measurement quality attributes of a version of
software, in accordance to an embodiment of the present subject matter. The method 300 is
implemented in a computing device, such as the software quality attribute measurement system
102. The method may be described in the general context of computer executable instructions.
Generally, computer executable instructions can include routines, programs, objects,
components, data structures, procedures, modules, functions, etc., that perform particular
functions or implement particular abstract data types. The method may also be practiced in a
distributed computing environment where functions are performed by remote processing devices
that are linked through a communications network.
[0046] The order in which the method is described is not intended to be construed as a
limitation, and any number of the described method blocks can be combined in any order to
implement the method, or an alternative method. Furthermore, the method can be implemented
in any suitable hardware, software, firmware or combination thereof.
[0047] At block 302, the method 300 includes receiving selected rules from a set of rules
and a percentage impact of sub-attributes for software quality measurement. The set of rules are
language independent such that software written in any language can be assessed for software
quality measurement. As described above, the rules are classified as common, procedural, object
oriented, and language specific, thereby catering to a large spectrum of software languages. In
one implementation, selected quality attributes from the set of quality attributes, selected subattributes
from the set of sub-attributes are received prior to receiving the selected rules. In such
implementation, the set of sub-attributes are associated with the set of quality attributes, and the
set of rules are associated with the set of sub-attributes for measuring software quality attributes
of the software. For each of the set of rules associated with the sub-attributes, a weightage is predefined.
In such implementation, the set of quality attributes include maintainability, reliability,
complexity, security, and performance.
[0048] At block 304, the method 300 includes analyzing a source code of the software.
The source code of the version of the software is syntactically and semantically analyzed to build
an intermediate representation of the plurality components of the software. Thus, the
intermediate representation of the plurality of components is built to allow the selected rules to
be applied to source codes written in different languages. .
16
[0049] At block 306, the method 300 includes applying the selected rules to each
intermediate representation of the plurality of components to detect non-conformance of the
selected rules. A non-conformance report 110 including non-conformed rules is generated for
each of the plurality of components.
[0050] At block 308, the method 300 includes computing the rule value 112 for each of
non-conformed rules for each of the plurality of components based on the calculation parameter
type and predefined weightage of the rules and on the equation (1) described in the previous
section.
[0051] At block 310, the method 300 includes computing the sub-attribute value 114 for
each of the sub-attributes associated with non-conformed rules for each of the plurality of
components. The sub-attribute value 114 is computed based on the computed rule value for each
of the non-conformed rules and on the equation (2) described in the previous section.
[0052] At block 312, the method 300 includes computing the component quality attribute
value 116 for each of the quality attributes associated with the set of sub-attributes. The
component quality attributes values 116 are computed for each of the plurality of components.
The component quality attribute value 116 is computed based on the computed sub-attribute
value 114 for each of the sub-attributes and on the equation (3) described in the previous section.
[0053] At block 314, the method 300 includes computing the software quality attribute
value 118 for each of the quality attributes for the software. The software quality attribute value
118 is computed based on an average of the computed component quality attribute values 116 for
each of the plurality of components.
[0054] It would be appreciated by those skilled in the art that method of computation of
software quality attribute value can be based on any method known in the art. Although
embodiments for methods and systems for measuring software quality attributes have been
described in a language specific to structural features and/or methods, it is to be understood that
the invention is not necessarily limited to the specific features or methods described. Rather, the
specific features and methods are disclosed as exemplary embodiments for measurement of
software quality attributes.
17
I/We claim:
1. A method for measuring quality attributes for a software, the method comprising:
receiving at least one quality attribute from a set of quality attributes, at least one
sub-attribute from a set of sub-attributes, a percentage impact of the at least one subattributes,
and at least one rule from a set of rules, wherein the set of rules are language
independent;
generating an intermediate representation of a plurality of components of the
software based on analysis of a source code of the software;
applying the at least one rule to the intermediate representation of the plurality of
components to detect non-conformance of the at least one rule for each of the plurality of
components; and
computing a software quality attribute value (118) for the at least one quality
attribute for the software based on the non-conformance by the at least one rule.
2. The method as claimed in claim 1, wherein the computing the software quality attribute
value (118) further comprises:
computing a rule value (112) for the at least one rule based on the nonconformance;
computing a sub-attribute value (114) for the at least one sub-attribute
associated with the at least one rule based on the computed rule value (112);
computing a component quality attribute value (116) for the at least one
quality attribute associated with the at least one sub-attribute based on the computed
sub-attribute values (114) and the percentage impact of the at least one sub-attribute;
and
computing the software quality attribute value (118) based on the computed
component quality attribute value (116).
3. The method as claimed in claim 1 further comprising defining the set of quality attributes
and the set of sub- attributes for the software, wherein the set of sub-attributes are defined
for each of the quality attributes.
18
4. The method as claimed in claim 3, wherein the quality attributes of the software are
defined from one of maintainability, reliability, security, performance, and complexity.
5. The method as claimed in claim 3 further comprising:
associating the set of rules with the each of the sub-attribute from the set of subattributes;
and
pre-defining a weightage for each of the rules from the set of rules.
6. The method as claimed in claim 5, wherein the associating the set of rules with each of
the sub-attributes further comprising classifying the set of rules as one of common,
procedural, object-oriented, and language specific.
7. The method as claimed in claim 6, wherein the associating the set of rules associated with
the each of the sub-attributes further comprising configuring parameters for the set of
rules.
8. A computer-readable medium having embodied thereon a computer program for
executing a method comprising:
receiving at least one quality attribute from a set of quality attribute, at least one
sub-attribute from a set of sub-attributes, a percentage impact of the at least one subattribute,
and at least one rule from a set of rules, wherein the set of rules are language
independent;
generating an intermediate representation of a plurality of components of a
software based on analysis of a source code of the software ;
applying the at least one rule to the plurality of components based on the
intermediate representation to detect non-conformance by the at least one rule for each of
the plurality of components; and
computing hierarchically a software quality attribute value (118) for the at least
one quality attribute for the software based on the non-conformance by the at least one
rule.
19
9. A software quality attribute measurement system (102) for evaluating quality of a
software, the software quality attribute measurement system (102) comprising:
a processor (202) ; and
a memory (206) coupled to the processor (202), the memory (206)comprising:
a rules configuration module (212) configured to,
receive a percentage impact of a set of sub-attributes on a
corresponding quality attribute from a set of quality attribute associated
with the set of sub-attributes for the software; and
receive selected rules from a set of rules having a pre-defined
weightage associated with the set of sub-attributes, wherein the set of rules
are language independent;
a rule conformance module (216) configured to,
apply the selected rules to an intermediate representation of a
plurality of components of the software to detect non-conformance of the
selected rules; and
a quality attribute measurement module (120) configured to,
compute hierarchically a software quality attribute value (118)
for the software based on the non-conformance of the selected rules for
each of the plurality of components.
10. The software quality attribute measurement system (102) as claimed in claim 9 further
comprising an application analysis module (214) configured to generate the intermediate
representation of a plurality of components of the software by analyzing a source code of
the software.
11. The software quality attribute measurement system(102) as claimed in claim 9, wherein
the set of rules are classified as one of common, procedural, object-oriented, and
language specific.

Documents

Orders

Section Controller Decision Date

Application Documents

# Name Date
1 3355-MUM-2012-FORM 18(29-11-2012).pdf 2012-11-29
1 3355-MUM-2012-RELEVANT DOCUMENTS [26-09-2023(online)].pdf 2023-09-26
2 3355-MUM-2012-US(14)-HearingNotice-(HearingDate-11-12-2020).pdf 2021-10-03
2 3355-MUM-2012-CORRESPONDENCE(29-11-2012).pdf 2012-11-29
3 ABSTRACT1.jpg 2018-08-11
3 3355-MUM-2012-IntimationOfGrant18-06-2021.pdf 2021-06-18
4 3355-MUM-2012-POWER OF ATTORNEY(23-1-2013).pdf 2018-08-11
4 3355-MUM-2012-PatentCertificate18-06-2021.pdf 2021-06-18
5 3355-MUM-2012-Written submissions and relevant documents [22-12-2020(online)].pdf 2020-12-22
5 3355-MUM-2012-PETITION UNDER RULE-138(4-6-2013).pdf 2018-08-11
6 3355-MUM-2012-FORM 1(4-6-2013).pdf 2018-08-11
6 3355-MUM-2012-Correspondence to notify the Controller [24-11-2020(online)].pdf 2020-11-24
7 3355-MUM-2012-CORRESPONDENCE(4-6-2013).pdf 2018-08-11
7 3355-MUM-2012-CLAIMS [28-03-2019(online)].pdf 2019-03-28
8 3355-MUM-2012-CORRESPONDENCE(23-1-2013).pdf 2018-08-11
8 3355-MUM-2012-COMPLETE SPECIFICATION [28-03-2019(online)].pdf 2019-03-28
9 3355-MUM-2012-FORM 5 .pdf 2018-09-28
9 3355-MUM-2012-DRAWING [28-03-2019(online)].pdf 2019-03-28
10 3355-MUM-2012-FER_SER_REPLY [28-03-2019(online)].pdf 2019-03-28
10 3355-MUM-2012-FORM 3 .pdf 2018-09-28
11 3355-MUM-2012-FORM 2 .pdf 2018-09-28
11 3355-MUM-2012-OTHERS [28-03-2019(online)].pdf 2019-03-28
12 3355-MUM-2012-FER.pdf 2018-09-28
13 3355-MUM-2012-FORM 2 .pdf 2018-09-28
13 3355-MUM-2012-OTHERS [28-03-2019(online)].pdf 2019-03-28
14 3355-MUM-2012-FER_SER_REPLY [28-03-2019(online)].pdf 2019-03-28
14 3355-MUM-2012-FORM 3 .pdf 2018-09-28
15 3355-MUM-2012-DRAWING [28-03-2019(online)].pdf 2019-03-28
15 3355-MUM-2012-FORM 5 .pdf 2018-09-28
16 3355-MUM-2012-COMPLETE SPECIFICATION [28-03-2019(online)].pdf 2019-03-28
16 3355-MUM-2012-CORRESPONDENCE(23-1-2013).pdf 2018-08-11
17 3355-MUM-2012-CLAIMS [28-03-2019(online)].pdf 2019-03-28
17 3355-MUM-2012-CORRESPONDENCE(4-6-2013).pdf 2018-08-11
18 3355-MUM-2012-Correspondence to notify the Controller [24-11-2020(online)].pdf 2020-11-24
18 3355-MUM-2012-FORM 1(4-6-2013).pdf 2018-08-11
19 3355-MUM-2012-PETITION UNDER RULE-138(4-6-2013).pdf 2018-08-11
19 3355-MUM-2012-Written submissions and relevant documents [22-12-2020(online)].pdf 2020-12-22
20 3355-MUM-2012-POWER OF ATTORNEY(23-1-2013).pdf 2018-08-11
20 3355-MUM-2012-PatentCertificate18-06-2021.pdf 2021-06-18
21 ABSTRACT1.jpg 2018-08-11
21 3355-MUM-2012-IntimationOfGrant18-06-2021.pdf 2021-06-18
22 3355-MUM-2012-US(14)-HearingNotice-(HearingDate-11-12-2020).pdf 2021-10-03
22 3355-MUM-2012-CORRESPONDENCE(29-11-2012).pdf 2012-11-29
23 3355-MUM-2012-RELEVANT DOCUMENTS [26-09-2023(online)].pdf 2023-09-26
23 3355-MUM-2012-FORM 18(29-11-2012).pdf 2012-11-29

Search Strategy

1 search_28-09-2018.pdf

ERegister / Renewals

3rd: 30 Jun 2021

From 23/11/2014 - To 23/11/2015

4th: 30 Jun 2021

From 23/11/2015 - To 23/11/2016

5th: 30 Jun 2021

From 23/11/2016 - To 23/11/2017

6th: 30 Jun 2021

From 23/11/2017 - To 23/11/2018

7th: 30 Jun 2021

From 23/11/2018 - To 23/11/2019

8th: 30 Jun 2021

From 23/11/2019 - To 23/11/2020

9th: 30 Jun 2021

From 23/11/2020 - To 23/11/2021

10th: 30 Jun 2021

From 23/11/2021 - To 23/11/2022

11th: 14 Nov 2022

From 23/11/2022 - To 23/11/2023

12th: 06 Nov 2023

From 23/11/2023 - To 23/11/2024

13th: 19 Nov 2024

From 23/11/2024 - To 23/11/2025

14th: 11 Nov 2025

From 23/11/2025 - To 23/11/2026