Paper Title (use style: paper title)

advertisement
Journal of Computer and Communications, 2013, *, **-**
doi:10.4236/jcc.2013.***** Published Online *** 2013 (http://www.scirp.org/journal/jcc)
An Analysis Method for Refinement and Decomposition of
Software Non-Functional Requirement*
Rui Yang, Yanhui Zhou
College of Computer Science and Information Technology, Southwest University, China, Chongqing
Email: covererlking@hotmail.com
Received Month Day, Year (2013).
ABSTRACT
With the development trend of information and software consumption, compared with the correct considerations of
software capabilities, consumer pay more attention to the software quality, especially the non-functional characteristics
such as security, safety, usability and performance etc. Because of the lack of method and practice, the developers
always feel difficult and confused to realize the non-functional characteristic in the software analysis and design
process. This study based on the research of Aspect-Oriented non-functional requirements analysis method from Chung.
An analysis method for refinement and decomposition of software non-functional requirement has been proposed in this
research. This method can separated the design and analysis, analyzed the non-functional requirements according to the
top-down levels. Finally, the design result can be used for a quantify evaluation. The assessment result can help
developer select one based on the client’s needs. This method provides a solution to analysis and design of
non-functional requirements, and an extend of the non-functional requirements framework.
Keywords: non-functional requirements; software quality; requirements decomposition; requirements refinement
1. Introduction
With the software development, people have more
profound understanding and requirement of software
quality[1]. People are not only concerned about the
function of the software, but also paid more attention to
software application quality[2] feature. Software
application quality feature is demonstrated usability,
security, performance, and other such features. The
software non-functional[9] feature has a great effect on
the software quality. In most of the traditional software
design, the business processes are regarded as the main
concern. Software non-functional characteristic cannot
have a good expression and implementation by
Architecture. As the complexity of description[3] of
software non-functional requirements, it is difficult to
analyze, design and verify the non-functional feature.
Besides that, by the lack of a effective analysis method,
the software analysis and design cannot be effective
converged and integrated with software functional
requirements.
In order to solve the above questions, the software
non-functional requirements can be isolated in the initial
* This paper is supported by the project 2012BAH77F05 of National
Technology Support Program and project cstc2012ggB004.
Copyright © 2013 SciRes.
of software lifecycle to analyzed and managed. It will be
able to make a better quality and reduce the possibility of
failure of this project. However, due to the feature of the
non-functional requirements, it does not have a
comprehensive method to help the designers to have
more comprehensive on non-functional requirement
analysis and decomposition. This study presents a
refined decomposition analysis method of software
non-functional requirement, based on the Soft goals
Independence Graph (SIGs)[4]. This method can refined
decompose the non-functional requirement to the
practical operable particles which combined with the
functional requirement, and have a quantitative measure
of design based on the decomposition results. And the
symbol system of Soft goals Independence Graph is
developed, which can express the relationships between
the targets more comprehensive.
2. Related Research
2.1. Home and Aboard Standards
As the software quality is becoming more and more
attention, both at home and abroad successively
formulated a series of standards. According to the
ISO/IEC 25000 “Software engineering - Software
JCC
2
An Analysis Method for Refinement and Decomposition of Software Non-Functional Requirement
product Quality Requirements and Evaluation (SQuaRE)
- Guide to SQuaRE”, which formulated by the
International Standards Organization and International
Electrotechnical Commission , the content and related
definitions of software quality requirement and
evaluation are given. ISO/IEC 14958[5] series standards
provides a method for the software product quality
measurement, assessment and evaluation. The external
and internal quality model is defined in the ISO/IEC
9126[2]. The software quality attributes are divided into
six sub features: functional, reliability, usability,
efficiency, maintainability and portability. A use of
quality model based on customer point of view is also
defined, which contains four features: functional,
productivity, security and satisfaction. The above
standards have a high significance of software quality
evaluation.
Figure 1. Legend of SIGs
2.2. Aspect-Oriented Programming
Aspect-oriented is proposed for the first time in 1997 by
Gregor[7] and some researchers. The core of
aspect-oriented is concern decomposition. The so-called
concern is a specific area we interested in. It is a basic
processing module in software system development. In
the design phase and abstract level of software
architecture, the research and application of
aspect-oriented technology is very important to modeling
the research of concern. First of all, the software
architecture can reduce mixed design problems, track
and clear reflect the concern by using aspect-oriented
design method. It can also improve the understandability
and maintainability of the software architecture, and
conductive to the reconstruction and reuse of software.
Secondly, using aspect-oriented design method can more
smoothly link up to the coding phase in the software
development [8].
2.3. Non-functional
Frame
Requirements
and
NFR
Software requirements are usually constitute by the
functional
and
non-functional
requirements[7].
Functional requirements describe a series of functions
which must be completed by the software.
Non-functional requirements demonstrate the binding
requirement to the functional requirement, for example,
the safety, reliability, usability, etc. Compared with the
accurate description and inherent form of functional
requirement, non-functional requirements are more
abstract, difficult to determine, objective and difficult to
formalized expression.
In 1992, L.Chuang explored the representation and
description of NFRs for the first time, and proposed NFR
Copyright © 2013 SciRes.
Figure 2. Typical SIGs
framework [11]. It is able to capture early NFRs, and use
a custom set of graphical elements, describing the
soft-targets and relationship between them. NFRs plans
to put forward the qualitative description method of
non-functional requirements, but cannot quantitative
analysis and validation.
3. E-SIGs
3.1. SIGs
Chung’s SIGs figure usually used to represent the quality
attributes[12] and architectural decisions[13]. But the
SIGs figure only for qualitative analysis has restricted
the use of it. Figure 1 shows the representation meaning
of SIG graph. Figure 2 is a typical SIGs figure,
expressed the ‘security’ and ‘usability’ of the system.
3.2. The Disadvantage of SIGs
Use The existing SIGs figure can decompose NFR, but
there are still some problems limits its application. 1.
With the NFR decomposition, the increasing number of
targets, a large number of SIGs figure are formatted. 2.
There is no path symbol. 3. The decomposition
relationship on NFR only limits at and / or. With the
decomposition running, it is not enough to describe the
relationship in the decomposition process. 4. Only
‘Good’, ‘Satisfy’ and other identification symbol can
JCC
An Analysis Method for Refinement and Decomposition of Software Non-Functional Requirement
pass in SIGs figure. There is no quantitative description.
3.3. Modification and Extension of SIGs
As the description is not sufficient for SIGs on the sub
target relationship, the following modifications and
extensions is necessary on symbol system.
 Use ‘direction arrow’ to describe the decomposition
path from parent goals to child goals.
 Discard the "arc" means "and", meet all child goals
can be met with a layer parent goals
 Consistently use "dual-arc + symbols + digital"
represents a relationship between all child goals.
"Multiple choice" (or), and "all selected" (and) are a
special case. Only need meet N out of M (where
M≥N)child goals which are decomposed from parent
goals, the parent goal would achieve.
 Abandon to use positive and negative correlation for
influence degree. Using a quantitative way to
describe the influence between child goals in
evaluation part.
3.4. E-SIGs
After modifications and extensions to the E-SIGs figure,
it has unified the symbols between child goals relation.
In this way, it is facilitate to read, convenient to convert
design diagram to evaluation tree and split it. It also
enriched the expression of sub-goals relationship for a
better representation of NFRs. Abandon to use positive
and negative correlation can reduces the symbols on the
design. It makes more concise in the design. The design
process should be focused on the design stage. The
expression of relationship for the influence between
sub-goals should use quantitative measure method in the
evaluation stage. Table 1 shows the differents between
E-SIGs and SIGs.
4. An Analysis Method for Refinement and
Decomposition of Software Non-Functional
Requirement
3
feature of NFRs considered as an aspect. The realization
of concern can meet NFRs from the client. This method
consists of two parts-analysis and evaluation. In the
analysis part, it will design the content of NFRs. The
results from analysis part will have a quantitative
evaluation and assess it.
4.1. The Separation Strategy of NFRs
Generally speaking, the FRs and NFRs from the users is
mixed together. It is necessary to carry out
decomposition to the software requirements. The
following examples would show the typical requirement
description:
 System needs to be able to have an information query
function; the query can be completed in 2S. (query
function & efficiency)
 System needs to be able to record the user's
operation. (functional requirements)
 System meets the relevant provisions of the state.
(laws and regulations)
From the above examples, it can be found that the first
one is mixed description. The second is the functional
requirements description. The third is a relatively single
description of NFRs. The main NFRs often involve the
efficiency, safety, ease of use, portability, reliability and
maintainability etc. All this are the software using quality
feature.
The interweaving of FRs and NFRs will cause
confusion and omissions in the design analysis. By using
the separate-compound method in design, it can reduce
the omission and conflict to improve the software
quality. The decomposition of NFRs means the
recognition of NFRs. Designers need to identify the
dominant and recessive NFRs, and match those
requirements with the features. Figure 3 would show the
main NFRs of software. It is based on the external and
internal models, and software application quality model
from ISO/IEC 9126.
In general, the requirement that, by through some
steps, the user expectation would be reached is functional
In this research, it presents an extension of the NFR
framework, as a quantitative evaluation method of
software NFRs. This method focus on a series of
sub-goals which are decomposed from NFRs, and the
Table 1. Advantages of E-SIGs.
spoliation possible
Quantitative
evaluation
Child node selection
control
Copyright © 2013 SciRes.
SIGs
×
×
E-SIGs
√
√
weak
strong
Figure 3. Use Quality Model.
JCC
An Analysis Method for Refinement and Decomposition of Software Non-Functional Requirement
4
description. And modified part of these functional
descriptions is NFRs description. Table 2 would help us
to identify the NFRS and FRs.
Table 2. Advantages of E-SIGs.
NFR
Efficiency
Availability
Definition
Under
prescribed
conditions, related to
the used resources, the
capability of adequate
performance supplied
by the software.
With
guaranteed
external
resources
supply, the capability
that the product can
meet the executable
requirement in the
stipulated
conditions
and time.
Reliability
Under
specified
conditions, the ability
that the software can
maintain at a prescribed
level of performance.
Security
confidentiality
The ability of software
that can protect the
information and data.
Unauthorized person or
system cannot read or
modify
these
information and data,
but able to access to
them.
Maintainability
The ability that the
software product can be
modified. Changes may
include
correcting,
improving and the
adaption of software
for the changing of
environment,
requirement
and
functional
specifications.
Usability
Under
specified
conditions, the ability
Copyright © 2013 SciRes.
Typical Description
It has a characteristic of
time in the description.
It often described as the
user expectation can be
achieved in a rated
time. Bandwidth and
hardware requirements
are commonly used in
the description
Emphasis on users can
quickly learn to use the
software function with
an entire instruction
function. Clients will
be able to focus on
their business rather
than on the software
structure.
The
requirement
description
would
emphasize
on
the
normal use duration of
the software, and the
consequences of the
failure. It would shows
the importance that no
failure or crash can be
occurred. Also needs
that the software is able
to
rapid
response
against under crash,
failure or under attack.
In
the
software
description, it will be
involved in ‘security’,
‘confidential’ and other
similar words. It will
emphasize
the
important
of
data
security, and require
multiple
security
methods,
such
as
authentication,
data
encryption and special
network equipment.
The
features
of
software
that
maintenance personnel
can quickly and easily
maintain the software.
(For example, easy test
and changes, good code
readability
and
complete
software
document,
etc.)
Compared with other
software
features,
maintainability is more
related to technical
person.
The description should
involve
the
that the software can be
understood,
learned,
used and attract users.
Portability
The ability that the
software
can
be
migrated from one
environment to another.
Others
Software products need
to comply with the
stipulation of files.
requirements
that
simple operation of
installation
and
software interface.
Description
would
involve more than one
type/version of system;
more
than
one
hardware device (e.g.,
PC and mobile phone).
Description
may
involve national laws,
industry
standard
regulations
files,
national customs taboo,
etc.
4.2. NFRs Top-down Decomposition
The decomposition of NFRs is an iterative top-down
decomposition process. Complete NFRs (NFF) would
consist of some aspects (nffi), expressed as 𝑁𝐹𝐹 =
{𝑛𝑓𝑓1 , 𝑛𝑓𝑓2 , 𝑛𝑓𝑓3 , … , 𝑛𝑓𝑓𝑖 , … , 𝑛𝑓𝑓𝑛 } , nffi is composed
by a set of concern (si) which decomposed according to
the sub-goals feature. Each decomposition will produce a
set of corresponding concern (si).
The results of decomposition and separation can be
shown as 𝑆 = {𝑠1 , 𝑠2 , 𝑠3 , … , 𝑠𝑖 , … , 𝑠𝑛 }, S stands as the
set of NFRs concern. For si which can be continuing
decomposed concern, it also includes the identified
NFRs set 𝑛𝑓𝑓𝑖 ⊆ 𝑁𝐹𝐹 and corresponding decomposed
concern (Sn). it can be achieved the final decomposition
result 𝐶 ⊆ 𝑆, and NFRs decomposition diagrams.
The time of the decomposition process stop
depends on the start time of requirement refinement.
It would have 3 to 5 times to complete the
decomposition for general scale software. The first
decomposition started on a whole system need and
the non-functional feature would be identified from
it. The NFRs would separate from FRs and
correspond to the non-functional feature in the
second decomposition. The third and fourth
decomposition is subdivided on the defined NFRs.
This method is just a suggestion not a regulation.
Because of the changing of number of
decomposition based on the complexity of the
system, the number of decomposition is not
necessarily same in each path. The end of
decomposition is determined by the start of
refinement process.
The
algorithm
description
(NFR_REFINEDECOMPOSE) shows in follows.
Step1: identify NFF decompose , NFF top =NFF;
Step2: NFF top →{s 1 ,……,s i }(i≥1, num = i);
Step3: if (i ≤ num & s i cannot_decompose)
JCC
5
An Analysis Method for Refinement and Decomposition of Software Non-Functional Requirement
then {s i →{s num+1 ,……,s num+j }; num =
num+j;}
else if(s i need_refine)
then {i =i+1;goto step3;}
else if (i>num)
then goto step4;
Step4: Stop
that effect the parent nodes, and 0<v≤1. k represents
the evaluation value to this node, and 0<k≤1. When the
set P is empty, this node is root node. When set B is
empty, this node is operation element.
For the operation element, v are equal to k. For the
4.3. NFRs Refinement
d j are child-node. For the design evaluation tree, each
The refinement of NFRs is a continuation of NFR
decomposition. It is a more elaborate analysis and design
for the decomposition result. The refinement process is
similar with the top-down decomposition process. The
final decomposition with design nodes (oi) which are
associated with FRs appear in the leaf nodes of the tree
structure. These operational nodes are the connection
between software non-functional and functional. The
result of NFRs refinement is a refinement selection
diagram which contains a finite number of possible
selections for design. The node on the branch called
operation element (oi). These nodes is described as some
measures, technologies etc, which can realize the FRs.
The NFRs refinement result can be described as 𝑂 =
{𝑜1 , 𝑜2 , 𝑜3 , … , 𝑜𝑖 , … , 𝑜𝑛 }, O stands for the set of operation
elements. For oi, the related parameters also comprise the
corresponding
concerns
𝑠𝑖 ∈ 𝐶
and
related
non-functional properties 𝑛𝑓𝑓𝑖 ⊆ 𝑁𝐹𝐹.
The refine process is similar with the
decomposition process, the algorithm description
(NFR_REFINE) shows in follows.
Step1: identify s refine , s top =s;
Step2: s top →{o 1 ,……,o i }(i≥1, num = i);
Step3: if (i≤ num & s i cannot_refine)
then {o i →{o num+1 ,……,o num+j };
num = num+j;}
else if (o i donotneed_refine)
then {I = i+1;goto step3;}
else if (i > num)
then goto step4;
Step4:Stop
sub-tree can be calculated independently. When the
content of design is complex, the whole design can be
divided into sub-trees which are easy to calculate, and
finally integrate them.
Quantitative evaluation process is a bottom-up
evaluation calculation process. The final evaluation
results depend on the affect weight of the chosen
operation element c ,called as evaluation value k . On
SIG figure, it has abandoned the graph which stands for
the content of influence each other. Instead of using the
evaluation value k from the quantitative evaluation part
4.4. Quantitative Evaluation
Quantitative evaluation of process is a bottom-up
evaluation calculation process. The final evaluation
results depend on the chosen of operation element. The
refinement selection diagram has a tree structure, similar
with node structure on the picture. The analysis tree is
defined as a 5-tuple model
𝐷 = ⟨𝑃, 𝐵, 𝑟, 𝑣, 𝑘⟩ .
where set P is the predecessor, called parent node set. Set
B is the node post-set, called child-node set. r stands for
the relationship between child-node. v means the value
Copyright © 2013 SciRes.
parent node, K d j 

di Bd j
(vd j *kdi ) ,where d i and
show it. Any k ci is composed by the evaluation value
knffi of operation element and the operation element to
the effects of nonfunctional characteristics value xnff .
Then,
kci  knffi 

nff j NFF
j
xnff j
When
j i ,
,
xnff j  0 .
5. Instance Analysis
5.1. Requirement Decomposition
First of all, NFRs and FRs would decompose from the
user description. This management system mainly
includes the following FRs.
 User management
a) The system administrator: add warehouse
administrator account, reset the password of the
warehouse administrator account.
b) Warehouse administrator: modify the personal
passwords, modify personal information.
 Warehouse information management
a) The system administrator: add commodity
classification information, read logs, documents of
all output commodity.
 Warehouse management.
a) Warehouse administrator: commodity warehousing,
outbound, inventory physical count, product scrap.
 Query
a) Warehouse administrator: query the commodity
JCC
6
An Analysis Method for Refinement and Decomposition of Software Non-Functional Requirement
information.
After identify the FRs, there are many NFRs limit and
constraint the FRs. These NFRs are equally important.
The NFRs of this system mainly include: safety,
efficacy, reliability, efficiency, maintainability.
5.2. System Use Case
According to the requirement description, it would use
case model to represent the functional requirements. The
following Figure 4 shows the system use case diagram.
5.3. The NFRs Decomposition and Refinement
Decompose and refine the identified non-functional
feature. The non-functional feature is the root node of the
system. The analysis process shows in Figure 5.
Use ‘security’ as an example to have a simple
description of decomposition and refinement process:
1. Decompose the ‘security’ into ‘application
security’, ‘data security’, based on the domain
Figure 4. The use case diagram.
knowledge and system requirements.
2. Decompose the ‘application security’ into ‘log’,
‘access control’, based on the domain knowledge and
system description.
3. Refine the ‘data security’ into two operation
elements- ‘data encryption’, ‘firewall’, based on the
domain knowledge and system description.
4. Decompose and refine the ‘access control’ ‘log’
node.
5. Decompose the ‘log’, if it does not need,
decompose the next child node. There are no node has to
be decomposed or refinement.
Stop decomposition process and get the system
refinement alternative graph.
5.4. Quantitative Evaluation and Select Scheme
This step would build a tree structure evaluation graph
with the decomposition and refinement result. Each
evaluation value of node is defined by the investigation
from user and experts score.
Use ‘reliability’ as an example to show the quantitative
evaluation process.
Step1: It converts the refinement selection figure to
evaluation figure. Describe the relationship between
elements by using algebraic representation on each node.
The influence value and evaluation value of each node
would achieved by the experts score. Then, ‘reliability’
evaluation chart got as Figure 6.
Step2: Calculate the evaluation value. Use the
calculation of D3 element as an example. The value of
KD3 is the sum of set K.
𝐾𝐷3 = 𝑣𝐷3 ∗ 𝐾𝐷6 + 𝑣𝐷3 ∗ 𝐾𝐷7 ,
the after set of node D6 has a choice relation. So:
𝑣 ∗ 𝐾𝐷8 , 𝑐ℎ𝑜𝑜𝑠𝑒 𝐷8
𝐾𝐷6 = { 𝐷6
,
𝑣𝐷6 ∗ 𝐾𝐷9 , 𝑐ℎ𝑜𝑜𝑠𝑒 𝐷9
Calculated
𝐾𝐷6 = {0.42, 0.28} ,
then
𝐾𝐷3 = {0.288,0.232} ,
Figure 5. The diagram of refinement and
decomposition.
Copyright © 2013 SciRes.
The evaluation value of node D3 is set KD3.
Step3: Select the design scheme. Through quantitative
evaluation, the evaluation value set of the D3 node is
obtained. When the value of D8 is higher than the
evaluation value of the D9 node, without considering the
cost of the equipment, manpower and other
circumstances, it can draw that the maneuverability of
node D8 is superior to the node D9.
Step4: Comprehensive customer requirement. By
using color in the evaluation graph and alternative design
graph, it shows the selected operation element. Output
the evaluation value and marked design graph.
JCC
An Analysis Method for Refinement and Decomposition of Software Non-Functional Requirement
[4]
[5]
[6]
[7]
Figure 6.
The Assessment Diagram.
[8]
6. Conclusion
This method can decompose and refine the requirement
obtained from users, and in-depth analysis of the user’s
need. Eventually it changes into an analysis evaluation
model based on the analysis tree. It can improve the
quality of the product by a strict quality control from the
initial software life cycle. The method is lack of
decomposition standard and refinement guide. It is not
able to deal with the conflict software requirement. It
also needs a more formalized expression for the
evaluation model. It needs to continue to explore and
research in the future work.
[9]
[10]
[11]
REFERENCES
[1]
[2]
[3]
Chen Huowang , Wang Ji , Dong Wei,“High
confidence software engineering technologies”,
Acta
Electronica
Sinica , Vol.41 ,
No.5,2003,pp.1933—1938(in Chinese)
ISO/IECJTC1/SC7/WG6.ISO/IEC9126-1.Informati
onTechnology-Software Quality Characteristics and
Metrics Part 1: Quality Model.
YANG Fang-chun,LONG Xiang-ming, “An
Overview on Software Non-Functional Properties
Research”. Journal of Beijing University of Posts
Copyright © 2013 SciRes.
[12]
[13]
7
and Telecommunications.Vol.27, No.3, 2004
Chung L, et al. Non-functional requirements in
software engineering. Kluwer Academic, 2000.
ISO/IECJTC1/SC7/WG6,
ISO/IEC14598
Part1~Part 6, Information Technology-Evaluation
of Software Product
郑旭飞,“ One Aspect—Oriented Non—Functional
Requirement Framework(AONFRF) Modeling
Method”,
Southwest
China
Normal
University,2005.
Liu Xiaomei , Liu Shuhn , Zheng Xiaojun,“
Adapting the NFR Framework to Aspectual Use
case Driven Approach”, 2009 Seventh ACIS
International Conference on Software Engineering
Research, Management and Applications ,2009,
USA, pp.209-214.
Wen Jing, Wang Huaimin, Ying Shi, Ni Youcong,
Wang Tao,“ Toward a Software Architectural
Design Approach for Trusted Software Based on
Monitoring”, Chinese Journal of Computers,
Vol.33, No12, 2010, pp.2320-2334
Sun
LS.Huang
G.Sun
YC.Chen
HJ.Mei
H,“Towards
Modeling
Non-Functional
Requirements in Feature Models”,Computer
Engineering and Science,VOL.28,No.z2,2006,
pp.139—141
ZHANG Yan, MEI Hong,“UML Non-Functional
Attributes Oriented Description and Verification in
UML Class Diagrams”, Journal of Software,
Vol.20,No.6,2009,pp. 1457-1469
CHUNG L , MYLOPOULOS J , NIXON
B,“Representing and Using Non-Functional
Requirements
:
A
Process-Oriented
Approach”,IEEE Transactions on Software
Engineering,Vol.18, No.6,1992,pp.483—497
Cysneiros L.etal,“Nonfunctional requirements:
from elicitation to conceptual models”, IEEE
Transactions on Software Engineering, Vol.30,
No.5, pp.328~350
Cooper K, et al,“ Integrating Visual Goal Models
into The Rational Unified Process”, Journal of
Visual Languages and Computing, Vol.17, 2006,
pp.551~583
JCC
Download