You are on page 1of 7

FEATURE: NONFUNCTIONAL REQUIREMENTS

Using Guidelines projected lifetime to nonfunctional at-


tributes (NFAs), which include security,
availability, performance, usability, and

to Improve
maintainability.4
The quality level defines how to
implement a system.5 For example,

Quality
manufacturing a basic car requires
fulfilling functional requirements
such as forward and backward pro-
pulsion at different speeds. We can

in Software design and construct a car simply to


achieve its functional requirements,
but this wouldnt guarantee the qual-

Nonfunctional
ity that manifests in features such as
anti-theft security systems, fuel effi-
ciency, and interior comfort in hot and

Attributes
cold weather. Satisfying such nonfunc-
tional requirements affect a cars design
and construction to produce a higher-
quality car.
The same applies to software de-
Malik Hneif and Sai Peck Lee, University of Malaya velopment. There are many ways to
develop a software system, but the re-
quired quality level restricts the ways
of implementing it. Weve developed an
// A step-by-step approach to ensuring software
approach for improving NFA quality
quality uses prioritized design guidelines to manage by identifying guidelines to help soft-
nonfunctional attributes and their interrelationships. // ware engineers better meet nonfunc-
tional requirements during system de-
sign, implementation, and deployment.
(See the sidebar for related work.)

A Guideline-Based
Approach
Our approach to achieving NFA qual-
ity is preventive, as opposed to cura-
tivethat is, it focuses on preventing
defects associated with NFAs during
the software development life cycle,
rather than identifying and correcting
defects after testing. 6 The approach is
SOFTWARE ENGINEERING INI- not only to fulfi ll its functionalities but heuristic, based on a framework for
TIALLY focused on fulfi lling a systems to do so effectively, safely, and produc- nonfunctional requirements defi ned
functional requirements. As attention to tively while also giving users a certain by Bill Andreopoulos. 5,7 Its practi-
industrial and business considerations level of satisfaction.2,3 Software qual- cal implementation is through an op-
increased, the focus gradually shifted ity has therefore come to encompass timal set of prioritized guidelines that
toward achieving quality requirements system aspects ranging from business software engineers can identify and
as well.1 These requirements reflect a considerations such as integration with apply efficiently throughout system
systems total behavior and capability legacy systems, time to market, and development.

72 I E E E S O F T W A R E | P U B L I S H E D B Y T H E I E E E C O M P U T E R S O C I E T Y 0 74 0 -74 5 9 / 11 / $ 2 6 . 0 0 2 0 11 I E E E
RELATED WORK
IN NONFUNCTIONAL ATTRIBUTE QUALITY
The research literature includes several approaches to ensure achieve a specific quality level. This implies the need to quantify
nonfunctional attribute (NFA) quality in software systems.15 the required quality. Tom Glib and and Lindsey Brodie established
However, most approaches focus on individual NFAs, whereas a way of doing this using Planguage, a keyword-driven language
systems usually involve multiple NFAs. Bill Andreopoulos for writing measurable quality requirements.10
introduced a methodology for evaluating and improving software
quality by defining soft goals in a nonfunctional requirements
References
framework.6 Our work is based on Andreopouloss heuristic 1. L. Bass, P. Clements, and R. Kazman, Software Architecture in Practice,
methodology by rejecting candidate guidelines that negatively 2nd ed., Addison-Wesley Professional, 2003.
affect higher-priority nonfunctional quality requirements. 2. B. Andreopoulos, Satisficing the Conflicting Software Qualities of
Maintainability and Performance at the Source Code Level, Proc.
David Budgen categorized software engineering guidelines into Workshop em Engenharia de Requisitos (WER 04), 2004; http://wer.inf.
three main categories, which we use in our approach: architectural puc-rio.br/WERpapers/artigos/artigos_WER04/Bill_Andreopoulos.pdf.
styles, design patterns, and best practices.7 An architectural style 3. D.G. Rosado et al., Security Patterns and Requirements for Internet-
Based Applications, Internet Research, vol. 16, no. 5, 2006, pp. 519
can have positive and negative effects on one or more NFAs. For 536.
example, a layered-systems style increases modularity, which 4. S. Bode et al., Software Architectural Design Meets Security
Engineering, Proc. 16th Ann. IEEE Intl Conf. and Workshop on Eng.
improves a systems maintainability, but it negatively affects Computer Based Systems (ECBS 09), IEEE CS Press, 2009, pp. 109118.
performance by slowing the data and control flow.8 The same 5. N. Yoshioka, H. Washizaki, and K. Maruyama, A Survey on Security
applies to other guideline categories: secure pipe and message Patterns, Progress in Informatics, vol. 5, no. 5, 2008, pp. 3547.
interceptor are design patterns that improve security;3 an undo 6. B. Andreopoulos, Achieving Software Quality Using the NFR Framework:
Maintainability and Performance, Proc. 3rd Intl Conf. Computer
feature is a best practice that improves the usability. Science, Software Eng., Information Technology, e-Business, and
A software systems quality is specified in the requirements Applications (CSITeA 04), 2004; www.cse.yorku.ca/~billa/MULIC/
AndreopoulosCSITeA.pdf.
phase and implemented in the design phase. However, the
7. D. Budgen, Software Design, 2nd ed., Addison-Wesley, 2003.
implementation and deployment phases must preserve the 8. M. Shaw and D. Garlan, Software Architecture: Perspectives on an
systems quality, so the effort to achieve and preserve NFA quality Emerging Discipline, Prentice Hall, 1996.
should span the design, implementation, and deployment phases.1,9 9. B. Meyer, Practice to Perfect: The Quality First Model, IEEE Software,
vol. 30, 1997, pp. 102103.
Software system stakeholders usually aim for a satisfactory 10. T. Gilb and L. Brodie, Competitive Engineering, Butterworth-Heinemann,
NFA quality level. However, they sometimes require each NFA to 2005.

Selecting Guidelines analysis systems give priority to reli- example, the secure-pipe pattern has a
Two properties characterize an optimal ability, followed by performance and positive effect on security, whereas the
guideline set. First, the selected guide- usability. layered-architecture style affects system
lines should have positive effects on the Prioritizing NFAs helps choose performance negatively, and the proxy
required NFAs. Second, they should guidelines that improve the quality of design pattern has no effect on usability.
be homogeneousthat is, they should higher-priority attributes and reject
have no negative effects on each other. 8 guidelines that affect those attributes Guideline interrelationships. Because guide-
Three main factors affect the selection negatively. lines have different effects on each
of an optimal guideline set. other, our approach identifies the rela-
Guideline effects on NFAs. NFAs are inter- tionship between them. There are four
NFA priorities. Different software systems related, so achieving one attribute can possibilities:
can have different NFA priorities. For positively or negatively affect the quality
example, a banking system prioritizes of others. In our approach, we catego- Complementary. One guideline
security first, followed by availability rize the effects of guidelines on NFAs positively affects another, recom-
and performance, whereas statistical as positive, negative, or neutral. For mending their use together. For

N OV E M B E R / D E C E M B E R 2 0 11 | IEEE S O F T W A R E  73
FEATURE: NONFUNCTIONAL REQUIREMENTS

Effects of guidelines on nonfunctional software attributes.


TABLE 1

Nonfunctional attributes

Guideline Guideline type Availability Security Performance

G1: Layered security Architectural style Positive Positive Negative

G2: Packet filter firewall Design pattern Neutral Positive Neutral

G3: Single access point Design pattern Negative Positive Positive

G4: Active redundancy Best practice Positive Neutral Neutral

G5: Checkpoint/rollback Best practice Positive Neutral Neutral

G6: Dynamic scheduling Best practice Neutral Neutral Positive

G7: Lazy initialization Design pattern Negative Neutral Positive

Relationship matrix between example guidelines.


TABLE 2

Guidelines

G1: Layered G2: Packet G3: Single G4: Active G5: Check- G6: Dynamic G7: Lazy
security filter firewall access point redundancy point/rollback scheduling initialization

G1

G2 Overlaps

G3 Complements Overlaps

G4 Independent Independent Conflicts

G5 Independent Independent Independent Complements

G6 Independent Complements Independent Independent Independent

G7 Independent Independent Independent Independent Independent Independent

example, with the service-locator Conflicting. One guideline nega- nal set that has no overlapping or con-
and singleton design patterns, the tively affects another one. For exam- flicting relationships.
service-locator pattern uses the sin- ple, the single-access-point design
gleton pattern. pattern and the provide multiple- Using Guidelines to Prevent NFA Defects
Overlapping. One guideline intro- access guideline introduce opposite The many factors affecting guideline
duces the same effect as another, effects. selection complicate the formulation of
so they can replace each other. For Independent. One guideline has no a homogeneous guideline set. Our ap-
example, the dependency-injection effect on another, as with imple- proach addresses these complications in
and service-locator design patterns menting the undo feature and using two stages.
overlap. They each solve the same the faade design pattern.
design problema class that has Preparation stage. During this stage, the
dependencies on multiple services Consideration of these relationships software engineer collects and catego-
although in different ways. while selecting guidelines ensures a fi- rizes guidelines and then defines their

74 I E E E S O F T W A R E | W W W. C O M P U T E R . O R G / S O F T W A R E
function get_guidelines (prioritized_NFA_list) set of guidelines
declare guidelines_result_set : set of guidelines
// include the guidelines for each attribute, and accumulate them in guidelines_result_set.
For each attribute in prioritized_NFA_list
effects on the NFAs and relationships Declare attribute_guidelines : set of guidelines
with each other. attribute_guidelines = Get_guidelines_with_positive_relation (attribute)
while priority (attribute) = priority (attribute + 1) // for multiple attributes with the same priority
Guideline sources include journal
// include the guidelines with positive effects on all the attributes with the same priority
articles, conference papers, books, soft-
Append (attribute_guidelines, Get_guidelines_with_positive_relation (attribute+1))
ware company brochures, and websites. attribute = attribute + 1
Because the number of guidelines can end while
be huge, we categorize them according
to their type and the development phase // remove duplicates between guidelines fetched previously,
to which they apply. We use three cate- and the guidelines for the current attribute.
gory types: architectural styles, design // for the first attribute, this loop is not executed, since guidelines_result_set is still empty.
patterns, and best practices.9 An archi- for each g1 in attribute_guidelines
for each g2 in guidelines_result_set
tectural style applies early in the devel-
if g1 = g2
opment life cycle, as do design patterns. Remove (attribute_guidelines, g1)
On the other hand, the industry has end if
developed many best practices that are end for
useful throughout the development. end for
Next, we consider the effects each
guideline has on NFAs. Table 1 catego- // remove guidelines that have negative effect on higher-priority attributes.
rizes the effects of seven guidelines on for each guideline in attribute_guidelines
for each other_attribute in prioritized_NFA_list with higher priority than attribute
three NFAs in terms of positive, nega-
if Relation (guideline, other_attribute) = negative
tive, or neutral. Remove (attribute_guidelines, guideline)
Finally, we specify the relationships end if
between every two guidelines as com- end for
plementary, contradictory, overlapping, end for
or nonexisting. Table 2 illustrates the
output of this step for the seven guide- // remove conflicting/overlapping guidelines with the previously fetched guidelines.
lines listed in Table 1. // for the first attribute, this loop is not executed, since guidelines_result_set is still empty.
for each g1 in attribute_guidelines
for each g2 in guidelines_result_set
Application stage. With a complete data-
if (Relation (g1, g2) = conflicts) or (Relation (g1, g2) = overlaps)
set of guidelines, effects, and relation- Remove (attribute_guidelines, g1)
ships, software engineers can apply our end if
approach to new system development end for
projects. The approachs fundamental end for
idea of pairwise comparisons is similar
to Tom Glib and Lindsey Brodies im- // resolve overlapping/conflicting guidelines.
pact estimation.10 for each g1 in attribute_guidelines
To obtain a homogeneous guideline for each g2 in attribute_guidelines
if Relation ( g1 , g2) = overlaps or Relation ( g1 , g2) = conflicts
set, the software engineer must apply
declare user_choice from input dialog
the following steps to each prioritized if user_choice = g1
NFA: Remove (attribute_guidelines, g2)
else
1. Retrieve the guidelines that posi- Remove (attribute_guidelines, g1)
tively affect that NFA. end if
end if
end for
FIGURE 1. Pseudocode implementing the
end for
// add the new set of guidelines to the result set of guidelines
algorithm for establishing an optimal guideline
Append (guidelines_result_set, attribute_guidelines)
set for achieving nonfunctional attributes. end for
Applying this algorithm in a software tool return guidelines_result_set
helps in using this approach for building high- end function
quality software systems.

N OV E M B E R / D E C E M B E R 2 0 11 | IEEE S O F T W A R E 75
FEATURE: NONFUNCTIONAL REQUIREMENTS

according to the software engineers


Prioritized list of required preference.
nonfunctional attributes
Priority Attribute An engineers preferences in steps 3
1 Security
and 4 would likely reflect his or her
2 Availability
experience.
3 Performance
Because applying these steps manu-
ally can be difficult and error prone,
4 8 we developed an algorithm as a basis
1
Security Availability Performance for a software tool that can assist the
G1 Duplicate G1 (remove) 5 Duplicate G3 (remove) 9 process. Figure 1 presents a pseudocode
Overlap = user
choice: G1 G2 (remove) 2 Conflicts G4 (remove) 6 G6 implementation of the algorithm.
with G3 Has negative
G3 G5 effect on G7 (remove) 10

7
security Example Application
To demonstrate our approach, we
3
Final set of guidelines 11 describe how it applies to a banking
G1: Layered security software system. Figure 2 illustrates the
G3: Single access point process, which begins with a prioritized
G5: Checkpoint/rollback list of NFAs and adopts the guidelines,
G6: Dynamic scheduling
effects, and relationships illustrated in
Tables 1 and 2.

FIGURE 2. Example application of the approach to a banking software system. The 1. The fi rst NFA is security. Three
numbers show the sequence of pairwise comparisons to identify a homogeneous guideline set guidelines {G1, G2, G3} have posi-
for implementing NFA quality requirements. tive effects on security, but G1 and
G2 overlap, so the software engi-
neer must choose between them.
G1 G1 2. In this case, the engineer prefers G1.
G2 3. As a result, the fi nal guideline set
G7 G7
includes {G1, G3} and excludes G2.
4. The second NFA is availability.
G6 G6
G3 G3 Again, three guidelines {G1, G4, G5}
G5 G5 have positive effects on availability.
G4 G4 5. G1 is already in the fi nal guideline
set.
(a) (b) 6. G4 confl icts with G3, which is also
already in the fi nal set, so G4 is
FIGURE 3. Graph proof of guideline set homogeneity. (a) Seven nodes represent the rejected.
guidelines in Table 2, and lines between nodes indicate an overlap or conflict relationship 7. Consequently, only {G5} is added to
between two guidelines. (b) The magenta nodes resulted from the application of our approach the fi nal guideline set.
in the banking system example. None of these four guidelines are connected directly to 8. Performance has three supporting
another. guidelines: {G3, G6, G7}.
9. G3 is already in the fi nal set.
10. G7 has a negative effect on secu-
2. Reject any guideline that has a that supports the lower-priority at- rity, which has higher priority than
negative effect on NFAs with higher tribute; and when the two attributes performance.
priority. have the same priority, reject one 11. Only {G6} is added to the fi nal
3. For two overlapping or conflict- according to software engineers set.
ing guidelines between two NFAs, preference.
when the two attributes have dif- 4. For two overlapping guidelines for The fi nal guideline set for the bank-
ferent priorities, reject the guideline the same NFA, reject one of them ing system is {G1, G3, G5, G6}.

76 I E E E S O F T W A R E | W W W. C O M P U T E R . O R G / S O F T W A R E
We can use graph theory to prove

ABOUT THE AUTHORS


the fi nal sets homogeneity. The nodes
in Figure 3a represent the seven guide- MALIK HNEIF is a postgraduate student at the University of Malaya,
lines in Table 2, and the lines indicate currently serving as a research assistant on a project to improve the
quality of nonfunctional software attributes. His research interests in-
an overlapping or confl icting relation-
clude software development methodologies and quality. Hneif received
ship. We want to fi nd a set that includes his masters degree in software engineering from University of Malaya.
neither of these relationships. With this Hes a member of IEEE. Contact him at malik.hneif@gmail.com.
condition, a valid set comprises the
nodes that arent directly connected to
each other.
Figure 3b highlights the guideline SAI PECK LEE is a professor in the Department of Software Engineer-
set resulting from the banking example. ing at the University of Malaya. Her research interests include object-
oriented techniques, computer-aided software engineering tools,
None of these four guidelines is con-
software reuse, requirements engineering, and software quality. Lee
nected directly to another. The fi nal set received her PhD in computer science from Universit Panthon-
is therefore homogeneous. Sorbonne (Paris I). Shes a member of IEEE and a founding member of
Informing Science Institute. Contact her at saipeck@um.edu.my.

O ur approach manages the po-


tential overlaps and confl icts
in applying multiple guide-
lines to improve NFA quality. It leads
software engineers step by step in se-
lecting a suitable guideline set to apply such as those developed by Glib and 7. B. Andreopoulos, Achieving Software Qual-
throughout system development, en- Brodie,10 could enable achievement of a ity Using the NFR Framework: Maintain-
ability and Performance, Proc. 3rd Intl
abling a preventive approach to quality targeted NFA quality levelthough not Conf. Computer Science, Software Eng.,
improvement. Because NFAs are one necessarily the highest level. In formation Technology, e-Business,
and Ap plications (CSITeA 04), 2004;
aspect of software quality, improving www.cse.yorku.ca/~billa/MULIC/
their achievement likewise improves the AndreopoulosCSITeA.pdf.
systems overall quality. 8. M. Hneif and S.P. Lee, Guideline-Based
References Approach for Achieving Non-functional
Our approachs effectiveness de- Attributes of Software, Proc. Intl Conf.
1. S.H. Kan, Metrics and Models in Software
pends on the strength and validity Quality Engineering, 2nd ed., Addison-
Computer Eng. and Technology (ICCET 10),
IEEE Press, 2010, pp. 305308.
of the dataset used. Collecting more Wesley, 2002.
9. D. Budgen, Software Design, 2nd ed.,
guidelines during the preparation stage 2. ISO/IEC TR 9126, Software Engineer-
Addison-Wesley, 2003.
ingProduct Quality, Intl Organization for
generates more opportunities for ap- Standardization, 2000. 10. T. Gilb and L. Brodie, Competitive Engi-
plying them. Correctly determining a neering, Butterworth-Heinemann, 2005.
3. G.M. Weinberg, Quality Software Manage-
guidelines effect on NFAs and its rela- ment: Anticipating Change, Dorset House,
1997.
tionship to other guidelines is essential 4. L. Bass, P. Clements, and R.
to success. Kazman, Software Archi-
The software engineers experience tecture in Practice, 2nd ed.,
Addison-Wesley Professional,
also affects the approachs effective- 2003.
ness. Having a field expert assign a 5. B. Andreopoulos, Satisfic-
ing the Confl icting Software
weight to each guideline relative to each Qualities of Maintainabil-
NFA might help guarantee an optimal ity and Performance at the
Source Code Level, Proc.
Our experts.
decision between overlapping guide-
lines during the application stage, but
Workshop em Engenharia de
Requisitos (WER 04), 2004;
Your future.
its cost might be high. http://wer.inf.puc-rio.br/
WERpapers/artigos/artigos_
By default, our approach aims to WER04/Bill_Andreopoulos.
achieve the highest quality NFAs ac- pdf.
cording to their priority. However, 6. R.G. Dromey, Software
QualityPrevention versus
some NFAs might require a specific Cure? Software Quality J., www.computer.org/byc
quality level. Quantification techniques, vol. 11, 2003, pp. 197210.

N OV E M B E R / D E C E M B E R 2 0 11 | IEEE S O F T W A R E 77
Reproduced with permission of the copyright owner. Further reproduction prohibited without permission.

You might also like