Language selection

Search

Patent 2477919 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 2477919
(54) English Title: A NEURO-FUZZY SYSTEM FOR ESTIMATION
(54) French Title: SYSTEME D'ESTIMATION LOGICIELLE NEURONAL A LOGIQUE FLOUE
Status: Granted
Bibliographic Data
(51) International Patent Classification (IPC):
  • G06F 8/77 (2018.01)
  • G06N 3/04 (2006.01)
  • G06N 5/04 (2006.01)
(72) Inventors :
  • HUANG, XISHI (Canada)
  • HO, DANNY SIU KAU (Canada)
  • REN, JING (Canada)
  • CAPRETZ, LUIZ F. (Canada)
(73) Owners :
  • HUANG, XISHI (Canada)
  • HO, DANNY SIU KAU (Canada)
  • REN, JING (Canada)
  • CAPRETZ, LUIZ F. (Canada)
(71) Applicants :
  • HUANG, XISHI (Canada)
  • HO, DANNY SIU KAU (Canada)
  • REN, JING (Canada)
  • CAPRETZ, LUIZ F. (Canada)
(74) Agent: BERESKIN & PARR LLP/S.E.N.C.R.L.,S.R.L.
(74) Associate agent:
(45) Issued: 2013-01-08
(22) Filed Date: 2004-08-18
(41) Open to Public Inspection: 2006-02-18
Examination requested: 2009-07-21
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data: None

Abstracts

English Abstract

A system and method for software estimation. In one embodiment, the software estimation system comprises a pre-processing neuro-fuzzy inference system used to resolve the effect of dependencies among contributing factors to produce adjusted rating values for the contributing factors, a neuro-fuzzy bank used to calibrate the contributing factors by mapping the adjusted rating values for the contributing factors to generate corresponding numerical parameter values, and a module that applies an algorithmic model (e.g. COCOMO) to produce one or more software output metrics.


French Abstract

Système et méthode d'estimation logicielle. Dans un mode de réalisation, le système d'estimation logicielle comprend un système d'inférence neuronal à logique floue de prétraitement, utilisé pour résoudre l'effet de dépendances parmi des facteurs contributifs, afin de produire des valeurs de classification révisées pour les facteurs contributifs, une banque neuronale à logique floue utilisée pour étalonner les facteurs contributifs en mappant les valeurs de classification révisées pour les facteurs contributifs afin de produire des valeurs de paramètre numérique correspondantes, et un module appliquant un modèle algorithmique (par exemple, COCOMO) pour produire une ou plusieurs mesures de sortie logicielle.

Claims

Note: Claims are shown in the official language in which they were submitted.



-19-
Claims:

1. A computer-implemented software estimation system for use in software
engineering, comprising a processor and a memory for storing components
comprising:
a) at least one neuro-fuzzy component, wherein each neuro-fuzzy component
has the learning capability of a neural network and implements a plurality of
fuzzy
rules, wherein said at least one neuro-fuzzy component takes as input a
plurality of
contributing factor ratings and processes said contributing factor ratings in
accordance
with said fuzzy rules to compute numerical parameter values for an algorithmic
model,
and wherein said at least one neuro-fuzzy component comprises:
i) a neuro-fuzzy inference system for resolving the effect of
dependencies among a plurality of contributing factors associated with
said plurality of contributing factor ratings, wherein said neuro-fuzzy
inference system implements a first subset of said plurality of fuzzy rules,
and wherein said neuro-fuzzy inference system takes as input said
plurality of contributing factor ratings and processes each of said plurality
of contributing factor ratings in accordance with said first subset to
compute a plurality of adjusted ratings; and
ii) a neuro-fuzzy bank coupled to said neuro-fuzzy inference system,
wherein said neuro-fuzzy bank implements a second subset of said
plurality of fuzzy rules, and wherein said neuro-fuzzy bank takes as input
said plurality of adjusted ratings and processes each of said plurality of
adjusted ratings in accordance with said second subset to compute said
numerical parameter values; and
b) an algorithmic model module coupled to said at least one neuro-fuzzy
component, wherein said module takes as input said numerical parameter values
and
processes said numerical parameter values in accordance with said algorithmic
model
to compute at least one output metric; wherein each output metric provides an
estimate
of a characteristic associated with a software development project, said at
least one
output metric for use in analyzing the feasibility of the software development
project;


-20-
wherein said first subset of said plurality of fuzzy rules is defined by

Fuzzy Rule (i,k): IF (RF1 is A1jik) AND (RF2 is A2jik) AND ... AND (RF N is A
Njik)
THEN ARF i = PFP ik . RF I, i= 1,2,...,N, k= 1,2,...,M i

where RF i is a rating of contributing factor i, ARF i is an adjusted rating
of contributing
factor i, M i is a number of fuzzy rules with contributing factor i as a
consequent, PFP ik is
an adjustable parameter associated with the fuzzy rule (i,k), and A sjik is a
fuzzy set
associated with a jik-th rating level of contributing factor s for fuzzy rule
(i,k);

wherein said plurality of adjusted ratings computed by said neuro-fuzzy
inference
system satisfy:

Image
where ARF i is the adjusted rating of contributing factor i, RF i is the
rating of contributing
factor i, PFP ik is the adjustable parameter associated with the fuzzy rule
(i,k), and
µsjik(RF s) is a membership function of the fuzzy set A sjik associated
with the jik-th rating
level of contributing factor s;

wherein said second subset of said plurality of fuzzy rules is defined by
Fuzzy Rule (i,k): IF (ARF I is A ik)

THEN FM i = FMP ik, i= 1,2,...N, k= 1,2,...,N I

where ARF i is the adjusted rating of contributing factor i, FM i is a
numerical parameter
value for contributing factor i, N i is a number of rating levels for
contributing factor i, A ik
is a fuzzy set associated with a k-th rating level of contributing factor i,
and FMP ik is an
adjustable parameter associated with the k-th rating level of contributing
factor i; and



-21-


wherein said plurality of numerical parameter values computed by said neuro-
fuzzy bank satisfy:

Image
where FM i is the numerical parameter value for contributing factor i, ARF i
is the adjusted
rating of contributing factor i, FMP ik is a corresponding parameter value
associated with
the k-th rating level of contributing factor i, and µik(ARF i) is a
membership function of the
fuzzy set A ik associated with the k-th rating level of contributing factor i.

2. The software estimation system of claim 1, wherein said membership function
of the
fuzzy set A sjik is a triangular membership function.

3. The software estimation system of claim 1, wherein said membership function
of the
fuzzy set A ik is a triangular membership function.

4. The software estimation system of claim 1, wherein said numerical parameter
values
are subject to the following monotonic constraints:
FMP i1 <= FMP i2 <= ... <= FMP iNi , i .EPSILON. I INC(F)
FMP i1 >= FMP i2 >= ... >= FMP iNi , i .EPSILON. I DEC(F)

where I INC(F) is the index set of increasing contributing factors whose
higher rating
value corresponds to the higher values of said at least one output metric, and
I DEC(F) is
the index set of decreasing contributing factors whose higher rating value
corresponds
to the lower value of said at least one output metric.

5. The software estimation system of claim 1, wherein said algorithmic model
is the
constructive cost model COCOMO.

6. The software estimation system of claim 5, wherein said at least one output
metric is
an estimate of development effort associated with said software development
project.



-22-

7. The software estimation system of claim 1, wherein each of said at least
one output
metric is an estimate of one of the elements selected from the following
group: software
development cost, software maintenance cost, software quality, software
development
productivity, software size, scheduling, staffing, and defect prediction.

8. A software estimation method comprising the steps of:
a) computing numerical parameter values for an algorithmic model in at least
one neuro-fuzzy component, wherein each neuro-fuzzy component has the learning

capability of a neural network and implements a plurality of fuzzy rules,
wherein said at
least one neuro-fuzzy component takes as input a plurality of contributing
factor ratings
and processes said contributing factor ratings in accordance with said fuzzy
rules, and
wherein said at least one neuro-fuzzy component comprises:
i) a neuro-fuzzy inference system for resolving the effect of dependencies
among a plurality of contributing factors associated with said plurality of
contributing factor ratings, wherein said neuro-fuzzy inference system
implements a first subset of said plurality of fuzzy rules, and wherein said
neuro-fuzzy inference system takes as input said plurality of contributing
factor ratings and processes each of said plurality of contributing factor
ratings in accordance with said first subset to compute a plurality of
adjusted
ratings; and
ii) a neuro-fuzzy bank coupled to said neuro-fuzzy inference system, wherein
said neuro-fuzzy bank implements a second subset of said plurality of fuzzy
rules, and wherein said neuro-fuzzy bank takes as input said plurality of
adjusted ratings and processes each of said plurality of adjusted ratings in
accordance with said second subset to compute said numerical parameter
values; and
b) computing at least one output metric in an algorithmic model module,
wherein said module takes as input said numerical parameter values and
processes
said numerical parameter values in accordance with said algorithmic model, and

wherein each output metric provides an estimate of a characteristic associated
with
a software development project, said at least one output metric for use in
analyzing
the feasibility of the software development project;



-23-

wherein said first subset of said plurality of fuzzy rules is defined by

Fuzzy Rule (i,k): IF (RF1 is A1jik) AND (RF2 is A2jik) AND ... AND (RF N is A
Njik)
THEN ARF i, = PFP ik .cndot. RF i, i = 1,2,...,N, k = 1,2,...,M i

where RF i is a rating of contributing factor i, ARF i is an adjusted rating
of contributing
factor i, M i is a number of fuzzy rules with contributing factor i as a
consequent, PFP ik is
an adjustable parameter associated with the fuzzy rule (i,k), and A sjik is a
fuzzy set
associated with a j ik-th rating level of contributing factor s for fuzzy rule
(i,k);

wherein said plurality of adjusted ratings computed by said neuro-fuzzy
inference
system satisfy:

Image
where ARF i is the adjusted rating of contributing factor i, RF i is the
rating of contributing
factor i, PFP ik is the adjustable parameter associated with the fuzzy rule
(i,k), and
µsjik(RF s) is a membership function of the fuzzy set A sjik associated
with the j ik-th rating
level of contributing factor s;

wherein said second subset of said plurality of fuzzy rules is defined by
Fuzzy Rule (i,k): IF (ARF i is A ik)

THEN FM i = FMP ik, i = 1,2,...N, k = 1,2,...,N i

where ARF i is the adjusted rating of contributing factor i, FM i is a
numerical parameter
value for contributing factor i, N i is a number of rating levels for
contributing factor i, A ik
is a fuzzy set associated with a k-th rating level of contributing factor i,
and FMP ik is an
adjustable parameter associated with the k-th rating level of contributing
factor i; and



-24-

wherein said plurality of numerical parameter values computed by said neuro-
fuzzy bank satisfy:

Image
where FM i is the numerical parameter value for contributing factor i, ARF i
is the
adjusted rating of contributing factor i, FMP ik is a corresponding parameter
value
associated with the k-th rating level of contributing factor i, and µik(ARF
i) is a
membership function of the fuzzy set A ik associated with the k-th rating
level of
contributing factor i.

9. The software estimation method of claim 8, wherein said membership function
of the
fuzzy set A sjik is a triangular membership function.

10. The software estimation method of claim 8, wherein said membership
function of the
fuzzy set A ik is a triangular membership function.

11. The software estimation method of claim 8, wherein said numerical
parameter
values are subject to the following monotonic constraints:
FMP i1 <= FMP i2 <= ... <= FMP iNi , i .EPSILON. I INC(F)
FMP i1 >= FMP i2 >= ... >= FMP iNi , i .EPSILON. I DEC(F)

where I INC(F) is the index set of increasing contributing factors whose
higher rating
value corresponds to the higher values of said at least one output metric, and
I DEC(F) is
the index set of decreasing contributing factors whose higher rating value
corresponds
to the lower value of said at least one output metric.

12. The software estimation method of claim 8, wherein said algorithmic model
is the
constructive cost model COCOMO.

13. The software estimation method of claim 12, wherein said at least one
output metric
is an estimate of development effort associated with said software development
project.



-25-

14. The software estimation method of claim 8, wherein each of said at least
one output
metric is an estimate of one of the elements selected from the following
group: software
development cost, software maintenance cost, software quality, software
development
productivity, software size, scheduling, staffing, and defect prediction.

Description

Note: Descriptions are shown in the official language in which they were submitted.



CA 02477919 2012-03-14

-1-
Title: A Neuro-Fuzzy System for Estimation
Field of the Invention
[0001] The invention relates generally to software estimation techniques.
More specifically, the invention is directed to a novel and inventive system
and
method for computing output metrics indicative of the cost, quality, size, or
other
characteristic of a software development project.

Background of the Invention
[0002] Software estimation, which can include cost estimation, quality
estimation, size estimation, or investment risk estimation, for example, is a
major
issue in software project management faced by many organizations. In this
regard, there is a need for software estimation models that will facilitate
effective
monitoring, control, and assessment of software development projects.

[0003] However, achieving accurate software estimation is inherently a
daunting task. The software estimation problem is highly complex, particularly
since the relationships between software output metrics and contributing
factors
generally exhibit strong, complex, non-linear characteristics. Accurate
software
estimation also typically requires the consideration of many factors, some of
which can be difficult to quantify. Prior art approaches used to solve this
problem
have not been widely successful in effectively and consistently predicting
software output metrics.

[0004] One example of a well-known software cost estimation model is the
Constructive Cost Model (COCOMO), which integrates expert knowledge. This
model is considered to be generally simple, in that it does not require the
use of
complex mathematics in the estimation process. However, it is also one example
of several known models that rely heavily on the availability of sufficient
historical
project data to be effectively employed, which is not always readily
available.


CA 02477919 2004-08-18

-2-
[0005] More recently, techniques based on artificial neural networks have
been applied to solve the software estimation problem. However, such
techniques have not been widely accepted by software engineering
practitioners.
While artificial neural networks (ANNs) have the ability to model complex, non-

linear relationships, and are capable of approximating measurable functions
through learning, ANNs generally operate as "black boxes". Accordingly, known
ANN-based models do not provide an explicit explanation of how results are
obtained. This lack of transparency may be one of the primary reasons that
such
techniques have not gained wide acceptance among software engineering
practitioners.

[0006] Fuzzy logic techniques have been applied to software estimation
problems to a limited extent. Fuzzy logic can be a powerful technique used to
solve real world applications with imprecise and uncertain information, and in
dealing with semantic knowledge. It is also generally easily understood and
interpreted. However, fuzzy-logic based models traditionally do not have
learning ability, and the quality of the results obtained when applied to
software
estimation problems have not, in general, compared favorably to results
obtained
from applications of more conventional models, such as COCOMO.

Summary of the Invention
[0007] Embodiments of the invention relate generally to a novel and
inventive software estimation model and framework that address at least some
of
the disadvantages of known techniques. In particular, at least some
embodiments of the invention are directed to a system and method for software
estimation that makes improved use of both numerical project data and
available
expert knowledge, by uniquely combining certain aspects of relatively newer
software estimation techniques (e.g., neural networks and fuzzy logic) with
certain aspects of more conventional software estimation models (e.g.
COCOMO), to produce more accurate estimation results.


CA 02477919 2004-08-18

-3-
[0008] Furthermore, the software estimation model provides a good
degree of interpretability. For example, in one embodiment of the invention,
fuzzy rules are used, in order to better simulate a software engineering
practitioner's line of thought when performing software estimation.

[0009] In one broad aspect of the invention, there is provided a software
estimation system for use in software engineering, comprising: at least one
neuro-fuzzy component, wherein each neuro-fuzzy component implements a
plurality of fuzzy rules, and wherein the at least one neuro-fuzzy component
takes as input a plurality of contributing factor ratings and processes the
contributing factor ratings in accordance with the fuzzy rules to compute
numerical parameters for an algorithmic model; and an algorithmic model module
coupled to the at least one neuro-fuzzy component, wherein the module takes as
input the numerical parameters and processes the numerical parameters in
accordance with the algorithmic model to compute one or more software output
metrics; wherein each output metric provides an estimate of a characteristic
associated with a software development project.

[0010] In another broad aspect of the invention, the at least one neuro-
fuzzy component of the software estimation system comprises: a neuro-fuzzy
inference system for resolving the effect of dependencies among a plurality of
contributing factors associated with the plurality of contributing factor
ratings,
wherein the neuro-fuzzy inference system implements a first subset of the
plurality of fuzzy rules, and wherein the neuro-fuzzy inference system takes
as
input the plurality of contributing factor ratings and processes the
contributing
factor ratings in accordance with the first subset to compute a plurality of
adjusted ratings; and a neuro-fuzzy bank coupled to the neuro-fuzzy inference
system, wherein the neuro-fuzzy bank implements a second subset of the
plurality of fuzzy rules, and wherein the neuro-fuzzy bank takes as input the
plurality of adjusted ratings and processes the adjusted ratings in accordance
with the second subset to compute the numerical parameters.


CA 02477919 2004-08-18

-4-
Brief Description of the Drawings
[0011] For a better understanding of various embodiments described
herein by way of example, reference will be made to the accompanying drawings
in which:

FIG. 1 is a schematic diagram illustrating components in a software estimation
system in an embodiment of the invention;

FIG. 2 is a schematic diagram that illustrates the logical structure of the
Pre-
processing Neuro-Fuzzy Inference System (PNFIS) of FIG. 1;

FIG. 3 is a schematic diagram that illustrates the logical structure of the
Neuro-
Fuzzy Bank (NFB) of FIG. 1;

FIG. 4 is a flowchart illustrating the steps in a software estimation method
in an
embodiment of the invention;

FIG. 5 is a flowchart illustrating the steps in a method of computing adjusted
ratings of contributing factors performed by the PNFIS of FIG. 1; and

FIG. 6 is a flowchart illustrating the steps in a method of computing
numerical
parameter values for use in an algorithmic model performed by elements of the
NFB of FIG. 1.

Detailed Description of the Invention
[0012] Embodiments of the invention relate generally to a novel and
inventive software estimation model and framework, applicable to various
applications such as cost estimation, quality estimation, risk analysis, size
estimation, effort estimation, and other estimation problems. Validated
results
have shown that this framework can greatly improve estimation accuracy. In
addition, embodiments of the invention generally provide learning ability,
integration capability of expert knowledge and project data, good
interpretability,
and robustness to imprecise and uncertain inputs.


CA 02477919 2004-08-18

-5-
[00131 In accordance with one broad aspect of the invention, there is
provided a system and method for software estimation that combines a neuro-
fuzzy technique with at least one algorithmic model. The general architecture
of
the framework is inherently independent of the choice of algorithmic model and
the nature of the estimation problem being considered, and can be applied to a
wide variety of estimation problems.

[0014] In one embodiment of the invention, the software estimation system
comprises a pre-processing neuro-fuzzy inference system used to resolve the
effect of dependencies among contributing factors to produce adjusted rating
values for the contributing factors, a neuro-fuzzy bank used to calibrate the
contributing factors by mapping the adjusted rating values for the
contributing
factors to generate corresponding numerical parameter values, and a module
that takes the numerical parameter values as input and applies an algorithmic
model to produce one or more software output metrics.

[0015] A software output metric produced by the software estimation
system will be indicative of the cost, quality, size, or other characteristic
of a
software development project, depending on the particular algorithmic model
employed. For instance, in one example implementation, COCOMO, a model for
cost estimation, may be used as the algorithmic model. Software output metrics
computed in accordance with embodiments of the invention may be useful for
more effectively managing software development projects and significantly
reducing associated investment risk, as embodiments of the invention serve to
more effectively analyze the feasibility of such projects in comparison to
known
methods.

[0016] Referring now to FIG. 1, a schematic diagram illustrating
components in a software estimation system in an embodiment of the invention
is
shown generally as 10. In this embodiment of the invention, software
estimation
system 10 is a computer-implemented system that comprises three primary data


CA 02477919 2004-08-18

-6-
processing components: a pre-processing neuro-fuzzy inference system 20
("PNFIS"), a neuro-fuzzy bank 30 ("NFB"), and an algorithmic model module 40.
[0017] As will be described in greater detail herein, in FIG. 1, N is the
number of contributing factors, M is the number of other variables (e.g. size)
in
the algorithmic model, RF is a contributing factor rating, ARF is an adjusted
contributing factor rating, NFB is a neuro-fuzzy bank, FM is a numerical
parameter value generated by the neuro-fuzzy bank for input to the algorithmic
model, V is an input to the algorithmic model, and MO is at least one output
metric.

[0018] A contributing factor may be broadly defined as any factor that
contributes to software output metrics. Contributing factors may include
product,
computer, project, and personnel attributes, for example. The specific
contributing factors employed in generating a given software output metric
will
generally depend on the specific algorithmic model used. To evaluate the
contribution to the software development project of a particular contributing
factor, a rating value can be associated with that contributing factor. In
this
regard, the rating value can be a numerical value defined on a continuous
scale,
or a qualitative rating level expressed in linguistic terms. Not all rating
levels
need be valid for each contributing factor.

[0019] In many model-based software estimation approaches, it is
assumed that the effects of contributing factors on an estimated software
output
metric are independent, as between contributing factors. However, this
assumption does not hold true for all models in all situations. Accordingly,
PNFIS
20 not only encodes expert knowledge into fuzzy if-then rules, but also
resolves
the effect of dependencies between contributing factors in producing adjusted
rating values for the contributing factors. More specifically, PNFIS 20 takes
a set
of contributing factor ratings RF; as input, and produces a set of
corresponding
adjusted ratings for the contributing factors ARF; as output, which take into
account the effect of interdependencies between contributing factors.


CA 02477919 2004-08-18

-7-
[0020] The logical structure of PNFIS 20 in one embodiment of the
invention is depicted schematically in FIG. 2. In one implementation of PNFIS
20, fuzzy rules take the form of:

Fuzzy Rule (i.k): IF (RF1 is Aijk) AND (RF2 is A2jk) AND ... AND (RFN is
ANjik)
THEN ARF; = PFP;k = RF;, i = 1,2,...,N, k = 1,2,...,M1

where M; is the number of fuzzy rules with contributing factor i as the
consequent,
PFP;k is an adjustable parameter associated with the fuzzy rule (i,k), and
ASJ,k is a
fuzzy set associated with the jk-th rating level of factor s for fuzzy rule
(i,k).

[0021] The form of the fuzzy rules used may differ in variant
implementations of PFNIS 20. For example, the fuzzy rules may change
depending on the estimation problem being considered, and/or on the specific
algorithmic model applied in algorithmic model module 40.

[0022] Further details with respect to the processing performed by PNFIS
will be discussed with reference to FIG. 5.

15 [0023] NFB 30 is used to calibrate each contributing factor i by mapping
the adjusted rating values ARF; for the respective contributing factor
produced by
PNFIS 20 into corresponding numerical parameter values FM;, to be used as
input for the algorithmic model embodied in algorithmic model module 40. In
NFB 30, the i-th element is a neuro-fuzzy subsystem 32 (NFB;), which is
20 associated with contributing factor i. In one embodiment of the invention,
each
contributing factor is associated with one of several qualitative rating
levels,
which may be expressed in linguistic terms. For example, the COCOMO II
model uses six such rating levels: Very Low (VL), Low (L), Nominal (N), High
(H), Very High (VH) and Extra High (XH).

[0024] In a software estimation system, each contributing factor and the
corresponding rating criteria for each rating level are typically defined. For
instance, where "PCAP" denotes the contributing factor of programmers'


CA 02477919 2004-08-18
-8-

capability, if rating level "H" has been associated with "PCAP", then the
capability
of the programmers is considered "high". However, for the algorithmic model
used to estimate software output metrics in this embodiment of the invention,
a
numerical value corresponding to the rating value of each contributing factor,
which can be used in a mathematical formula associated with the algorithmic
model, needs to be determined. Put another way, for every contributing factor,
each rating level needs to relate to a quantitative numerical value, namely a
numerical parameter value, for use in the algorithmic model. Accordingly,
mappings from adjusted rating values for the contributing factors to numerical
parameter values are made by NFB 30.

[0025] The logical structure of each NFB; 32 of NFB 30 in one embodiment
of the invention is depicted schematically in FIG. 3. In each NFB; 32, fuzzy
rules
take the form of:

Fuzzy Rule (i, k): IF (ARFi is Aik)

THEN FMi = FMPik, i = 1,2.,,, N, k = 1,2,...,Ni

where Ni is the number of rating levels for contributing factor i, Aik is a
fuzzy set
associated with the k-th rating level of contributing factor i, and FMPik is
an
adjustable parameter associated with the k-th rating level of contributing
factor i.
[0026] The number of elements NFB; 32 in NFB 30 is equal to the number
of contributing factors, and the number of fuzzy rules equals the number of
rating
levels associated with the corresponding contributing factor. For example, if
contributing factor i has six rating levels, each NFB; 32 is composed of the
following six fuzzy if-then rules:

Fuzzy Rule (i. 1): IF ARF; is Ail (Very Low), THEN FM, = FMPil
Fuzzy Rule (42): IF ARF; is Ail (Low), THEN FMi = FMPi2
Fuzzy Rule (i,3): IF ARF; is A!3 (Nominal), THEN FMi = FMPi3
Fuzzy Rule (i,4): IF ARF; is Ai4 (High), THEN FMi = FMPi4


CA 02477919 2004-08-18

9-
Fuzzy Rule (i,5): IF ARF/ is Ai5 (Very High), THEN FM1= FMP15
Fuzzy Rule (i,61: IF ARF; is A16 (Extra High), THEN FM; = FMP16

[0027] For any particular software estimation problem, once the number of
contributing factors are determined and the number of rating levels for each
contributing factor is determined, the structure and fuzzy rules of NFB 30 are
determined. Only the fuzzy rule parameters (e.g. PFPIk, k=1,2,...,M1 of FIG.
2,
FMPIk, k=1,2,...,N1 of FIG. 3) need to be fine-tuned by the learning process
from
numerical project data. Different learning processes and algorithms may be
employed for this purpose in variant implementations.

[0028] In a variant embodiment of the invention, the fuzzy rules for each
NFB, 32 are subject to a monotonic constraint on the corresponding
contributing
factor i to ensure that the calibrated results generated by NFB 30 are
reasonable,
and not counter-intuitive. Monotonic constraints reflect the expert knowledge
about the effects of contributing factors on an estimated software output
metric.
For most contributing factors, when the rating value of a contributing factor
goes
high, the estimated software output metric should change monotonically; in
other
words, it should increase or decrease along only one direction. For example,
in
one implementation of this embodiment, the following monotonic constraints may
be applied:

FMP115 FMP,2 <_ ... <_ FMP1N; , I E IINC(F)
FMPi1 Z FMPI2 z ... Z FMPiNI , I E IDEC(F)

where IINC(F) is the index set of increasing contributing factors whose higher
rating value corresponds to the higher values of the estimated software output
metric, and IDEC(F) is the index set of decreasing contributing factors whose
higher rating value corresponds to the lower value of the estimated software
output metric. Monotonic constraints may be formulated for other variables and
parameters in variant implementations.


CA 02477919 2004-08-18

-10-
[0029] The functionality of NFB; 32 (and similarly, PNFIS 20) can be
looked at from two perspectives. From the learning perspective, we can treat
it
as a neural network, so that we can use available learning algorithms for
neural
networks to calibrate the corresponding parameters. Therefore, NFB; 32 has
learning capability. From the reasoning perspective, NFB; 32 can be considered
as a fuzzy logic system. Its output is derived using fuzzy if-then rules, and
the
reasoning process is transparent and is similar to the decision-making process
of
human beings. Therefore, NFB; 32 is not a black box. The entire reasoning
process is clear to users of the software estimation system, and can be traced
and validated by users and experts, thereby making the framework more easily
accepted for application in project management.

[0030] Further details with respect to the processing performed by each
NFB; 32 will be discussed with reference to FIG. 6 below.

[0031] Algorithmic model module 40 performs further processing in
software estimation system 10, by computing software output metric(s) Mo from
numerical parameter values FM1 generated by NFB 30 and other variables V;, in
accordance with a selected algorithmic model. Software estimation system 10 is
flexible, in that different algorithmic models can be selected for use in
software
estimation system 10 in variant implementations of the invention. Depending on
the application, the algorithmic model may take a different form.

[0032] An algorithmic model can be built by analyzing software output
metrics and attributes of completed projects, and used to predict software
output
metrics based on the attributes of the software development product and
development process under consideration. Many algorithmic models have been
proposed to estimate different software output metrics, such as software
development cost, software maintenance cost, software quality, software
development productivity, software size, scheduling, staffing, and defect
prediction, for example. Algorithmic model module 40 may be adapted to use
any of these known algorithmic models to compute associated software output


CA 02477919 2004-08-18

-11-
metric(s). Specific known algorithmic models may include models employed in a
Quantitative Software Management (QSM) Software Life cycle Management
model (SLIM) tool, models employed in a Software Productivity Research (SPR)
KnowledgePLAN tool, models employed in Computer Associate's CA-Estimacs
package, SEER estimating models developed by GA SEER Technologies, and
models used in CostXpert tools developed by Cost Xpert Group, Inc., for
example.

[0033] Another example of an algorithmic model that may be used is the
COCOMO 11 post architecture model, used to predict software development
effort, which takes as input the software size and ratings of 22 cost drivers
as
contributing factors, including five scale factors and 17 effort multipliers.
This
model takes the form of:

s 17
B'F~.~~JC $Ft
Effort = A x (Size x
y fl EM;

where A and B are constants, Size refers to the size of software product,
scale
factors SF; and effort multipliers EM; are software product, platform,
personnel,
and project attributes. In one implementation of an embodiment of the
invention,
the value of Effort computed upon applying this algorithmic model would be
provided as a software output metric (e.g. as an output metric MO of software
estimation system 10 of FIG. 1).

[0034] Referring now to FIG. 4, a flowchart illustrating the steps in a
software estimation method in an embodiment of the invention is shown
generally as 100. In this embodiment, method 100 is computer-implemented,
wherein the steps of method 100 are implemented in software instructions of a
computing application for execution by computer.

[0035] At step 110, adjusted ratings of contributing factors are computed
by a pre-processing neuro-fuzzy inference system (e.g. PNFIS 20 of FIG. 1). At
step 112, the adjusted ratings computed at step 110 are used by a neuro-fuzzy


CA 02477919 2004-08-18

-12-
bank (e.g. NFB 30 of FIG. 1) to compute numerical parameter values for the
algorithmic model to be employed (e.g. as implemented by algorithmic model
module 40 of FIG. 1). At step 114, an algorithmic model (e.g. COCOMO) is
applied in computing at least one output metric from the numerical parameter
values computed at step 112. Steps 110 and 112 of method 100 will now be
described in further detail with reference to FIGS. 5 and 6.

[0036] Referring now to FIG. 5, a flowchart illustrating the steps in a
method of computing adjusted ratings of contributing factors performed by the
PNFIS of FIG. 1 is shown. This method corresponds to step 110 of FIG. 4.

[0037] The structure of the PNFIS used in this embodiment of the
invention was depicted schematically in FIG. 2. The function of the PNFIS can
be described by layer as follows.

[0038] First, at step 120, contributing factor ratings RF;, i = 1,2,...,N,
where
N is the total number of contributing factors, are received as input to be
processed.

[0039] With respect to the first layer, at step 122 (layer 1), the membership
value for rating level j of contributing factor i is calculated. The
activation function
of a node in this layer is defined as the corresponding membership function:

0!1i . = u;.- (RF,) , i = 1,2,...,N, j = 1,2,...,N;

where Ni is the number of rating levels for contributing factor i, RF; is the
rating of
contributing factor i, and p#(RF,) is the membership function of a fuzzy set
Aid
associated with the j-th rating level of factor i.

[0040] In a variant embodiment of the invention, the membership function
may be a triangular function. Other membership functions may be employed in
variant embodiments.

[0041] With respect to the second layer, at step 124 (layer 2), the firing
strength wik for fuzzy rule (i,k) is calculated. The inputs are the membership


CA 02477919 2004-08-18

-13-
values in the premise of the fuzzy rule. The output is the product of all
input
membership values, which is called the firing strength of the corresponding
fuzzy
rule. The firing strength can be calculated as follows:

N
wik = HO';,,, i = 1,2,L N,k = 1,2,L ,Mi
s=1

where M; is the number of fuzzy rules with contributing factor i as the
consequent.
[0042] Moreover, at step 126, the sum of firing strength Si, associated with
contributing factor i as the consequent in all fuzzy rules within the PNFIS is
then
calculated:

M.
Si" = wik, i = 1,2,.=., N
k=1

[0043] With respect to the third layer, at step 128, the firing strength for
fuzzy rule (i,k) is normalized. The output of the k-th node is called the
normalized
firing strength, which is defined as follows:

Ti, = xLik , i =1,2,...,N,k =1,2,...,Mi
Si.

[0044] With respect to the fourth layer, at step 130, the reasoning result for
fuzzy rule (i,k) is calculated as follows:

O,k =wik =PFP,.k =RF, i=1,2,...,N,k=1,2,...,Mi

where PFP;k is an adjustable parameter associated with fuzzy rule (i,k). This
adjustable parameter may be obtained initially from an algorithmic model or
based on expert knowledge. It can subsequently be changed by learning.

[0045] With respect to the fifth layer, at step 132, all reasoning results
calculated at step 130 are summed as follows to obtain adjusted rating values
for
contributing factor r.


CA 02477919 2004-08-18

-14-
M
ARF = Ok, i=1,2,===,N
k=1

[0046] In summary, the overall output of the PNFIS, namely the i-th
adjusted contributing factor rating can be defined as follows:

F,)
M
ftPsjk(R
ARF,. N = PFP,.k = RF,, , i=1,2,.--,N
k=1
j=4fl/4(RF)J
s=1

[0047] Referring to FIG. 6, a flowchart illustrating the steps in a method of
computing numerical parameter values for use in an algorithmic model performed
by elements of the NFB of FIG. 1 is shown. This method corresponds to step
112 of FIG. 4.

[0048] The structure of each subsystem of the NFB used in this
embodiment of the invention is depicted schematically in FIG. 3. The function
of
the NFB; can be described by layer as follows.

[0049] First, at step 140, adjusted contributing factor ratings ARF;,
i=1,2,...,N, where N is the total number of contributing factors, are received
as
input to be processed.

[0050] With respect to the first layer, at step 142 (layer 1), the membership
value for each fuzzy rule (i,k) is calculated. The activation function of a
node in
this layer is defined as the corresponding membership function:

Oik = Pik (ARF;) , k= 1, 2, ... , N1

where Ni is the number of rating levels for contributing factor i, ARF is the
adjusted rating value of contributing factor i, and pk(ARF) is the membership
function of a fuzzy set A;k associated with the k-th rating level of
contributing
factor i.


CA 02477919 2004-08-18

-15-
[0051] In this embodiment, the membership function is the same as that
described with reference to FIG. 5. In a variant embodiment of the invention,
the
membership function may be a triangular function. Other membership functions
may be employed in variant embodiments.

[0052] With respect to the second layer, at step 144 (layer 2), the firing
strength wik for each fuzzy rule (i,k) is calculated. The inputs are the
membership
values in the premise of the fuzzy rule. The output is the product of all
input
membership values, which is called the firing strength of the corresponding
fuzzy
rule. In this case, because there is only one condition in the premise of each
fuzzy rule, the firing strength is the same as the membership value obtained
in
layer 1, namely:

Wik = OIk

[0053] Moreover, at step 146, the sum of firing strength S1 associated with
contributing factor i as the consequent in the Ni fuzzy rules for contributing
factor
i is then calculated:

Ni
Sx, =I%

[0054] With respect to the third layer, at step 148, the firing strength for
each fuzzy rule is normalized. The output of the k-th node is called the
normalized firing strength, which is defined as follows:

Wik = H'k , k =1,2,... , Ni
Siw

[0055] With respect to the fourth layer, at step 150, the reasoning result of
a fuzzy rule is calculated as follows:

Ok =WikFMPik


CA 02477919 2004-08-18

-16-
where FMP;k is an adjustable parameter associated with the k-th rating level
of
contributing factor i. This adjustable parameter may be obtained initially
from an
algorithmic model or based on expert knowledge. It can subsequently be
changed by learning.

[0056] With respect to the fifth layer, at step 152, all reasoning results
calculated at step 150 are summed as follows, to obtain numerical parameter
values to be further processed by the algorithmic model:

N
FM, _ ~Ok
k=1

[0057] In summary, the overall output of the i-th element NFB; in the NFB
is:

N N;
FM, _ w;kFMP,.k =Z /tk(ARF,.) FMPk , i=1,2,...,N
k=1 k=1
U,;(ARF)
1=1

[0058] Industrial project data was used to validate an implementation of an
embodiment of the invention. For example, one case study utilized data from 69
projects. The results of the study as summarized in Table 1 below illustrate
that
the software estimation system in this embodiment of the invention facilitated
a
significant improvement in cost estimation accuracy as compared to a standard
COCOMO model.

Table 1. Cost Estimation for 69 Project Data Points
ARE COCOMO An implementation of an embodiment of the
Model Software Estimation System
Case I Case II Case III
PERC PERC IMPRV PERC IMPRV PERC IMPRV
20% 71% 86% 15% 88% 17% 88% 17%
30% 81% 92% 11% 92% 11% 92% 11%
ARE - absolute relative error
PERC - percent of projects
IMPRV - improvement provided by the implementation of an embodiment of the
software estimation system over COCOMO


CA 02477919 2004-08-18

-17-
Case I. Learning with all project data
Case II. Learning with part of project data
Case III. Use larger weights for local project data

[0059] It will be understood by persons skilled in the art that the software
estimation systems and methods described herein may be applied to a variety of
software estimation applications, as well as other types of estimation more
generally (e.g. predicting stock performance, predicting the medical condition
of
patients). Applications of the framework may also be extended to applications
in
a wide variety of industries, including aerospace applications, communication
systems applications, consumer appliance applications, electric power systems
applications, manufacturing automation and robotics applications, power
electronics and motion control applications, industrial process engineering
applications, and transportation applications, for example.

[0060] Furthermore, in variant implementations, an embodiment of the
invention may be employed as an element in a larger framework, working in
conjunction with other systems, models, or tools to produce output metrics.

[0061] It will be understood by persons skilled in the art that the specific
configuration of the PNFIS and NFB described in the foregoing description is
provided by way of example only, and that other configurations may be employed
without departing from the scope of the invention. For example, in variant
embodiments of the invention, each of the PNFIS and NFB may have a fewer
number or a greater number of layers than that shown in the Figures.
Additional
layers may be added and certain layers may be deleted, for example. As a
further example, in variant embodiments of the invention, the functions of the
PNFIS and NFB may be merged in a particular module or component.

[0062] The steps of the methods described herein with respect to one or
more embodiments of the invention may be provided as executable software
instructions stored on computer-readable media, which may include
transmission-type media.


CA 02477919 2004-08-18

-18
[0063] The invention has been described with regard to a number of
embodiments. However, it will be understood by persons skilled in the art that
other variants and modifications may be made without departing from the scope
of the invention as defined in the claims appended hereto.


Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date 2013-01-08
(22) Filed 2004-08-18
(41) Open to Public Inspection 2006-02-18
Examination Requested 2009-07-21
(45) Issued 2013-01-08

Abandonment History

There is no abandonment history.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee $400.00 2004-08-18
Maintenance Fee - Application - New Act 2 2006-08-18 $100.00 2006-07-05
Maintenance Fee - Application - New Act 3 2007-08-20 $100.00 2007-06-26
Maintenance Fee - Application - New Act 4 2008-08-18 $100.00 2008-08-13
Maintenance Fee - Application - New Act 5 2009-08-18 $200.00 2009-07-14
Request for Examination $800.00 2009-07-21
Maintenance Fee - Application - New Act 6 2010-08-18 $200.00 2010-06-08
Maintenance Fee - Application - New Act 7 2011-08-18 $200.00 2011-07-13
Maintenance Fee - Application - New Act 8 2012-08-20 $200.00 2012-05-24
Final Fee $300.00 2012-10-11
Maintenance Fee - Patent - New Act 9 2013-08-19 $200.00 2013-07-18
Maintenance Fee - Patent - New Act 10 2014-08-18 $250.00 2014-07-29
Maintenance Fee - Patent - New Act 11 2015-08-18 $250.00 2015-07-22
Maintenance Fee - Patent - New Act 12 2016-08-18 $250.00 2016-07-07
Maintenance Fee - Patent - New Act 13 2017-08-18 $250.00 2017-08-08
Maintenance Fee - Patent - New Act 14 2018-08-20 $250.00 2018-06-27
Maintenance Fee - Patent - New Act 15 2019-08-19 $450.00 2019-05-13
Maintenance Fee - Patent - New Act 16 2020-08-18 $450.00 2020-07-16
Maintenance Fee - Patent - New Act 17 2021-08-18 $459.00 2021-05-21
Maintenance Fee - Patent - New Act 18 2022-08-18 $458.08 2022-06-27
Maintenance Fee - Patent - New Act 19 2023-08-18 $473.65 2023-08-02
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
HUANG, XISHI
HO, DANNY SIU KAU
REN, JING
CAPRETZ, LUIZ F.
Past Owners on Record
None
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Maintenance Fee Payment 2020-07-16 1 33
Drawings 2004-08-18 6 75
Claims 2004-08-18 7 285
Description 2004-08-18 18 826
Abstract 2004-08-18 1 19
Cover Page 2006-01-26 1 36
Representative Drawing 2006-01-23 1 7
Claims 2012-02-16 7 259
Description 2012-03-14 18 819
Cover Page 2012-12-11 1 37
Assignment 2004-08-18 3 90
Maintenance Fee Payment 2017-08-08 1 33
Fees 2006-07-05 1 39
Fees 2007-06-26 1 39
Prosecution-Amendment 2009-07-13 2 35
Prosecution-Amendment 2009-07-21 1 40
Prosecution-Amendment 2011-08-26 3 137
Prosecution-Amendment 2012-02-16 15 586
Prosecution-Amendment 2012-02-28 1 16
Prosecution-Amendment 2012-03-14 3 77
Correspondence 2012-10-11 1 42