Sys ema ic Fo mula ion o Non-Func ional
Cha ac e is ics o So wa e1
Xa ie F anch
[email p o ec ed]
Dep . Llengua ges i Sis emes In o mà ics (LSI)
Uni e si a Poli ècnica de Ca alunya (UPC)
c/Jo di Gi ona 1-3 (Campus No d, C6), 08034 Ba celona, Ca alonia (Spain)
FAX: 34-3-4017014. Phone: 34-3-4016965
Abs ac
This pape p esen s NoFun, a no a ion aimed a dealing
wi h non- unc ional aspec s o so wa e sys ems a he
p oduc le el in he componen p og amming amewo k.
NoFun can be used o de ine hie a chies o non- unc ional
a ibu es, which can be bound o indi idual so wa e
componen s, lib a ies o componen s o (se s o ) so wa e
sys ems. Non- unc ional a ibu es can be de ined in
se e al ways, being possible o choose a pa icula
de ini ion in a conc e e con ex . Also, NoFun allows o
s a e he alues o he a ibu es in componen
implemen a ions, and o o mula e non- unc ional
equi emen s o e componen implemen a ions. The
no a ion is complemen ed wi h an algo i hm able o selec
he bes implemen a ion o componen s (wi h espec o
hei non- unc ional cha ac e is ics) in hei con ex o use.
Key wo ds: componen p og amming, non- unc ional
equi emen s.
1. In oduc ion
1.1. Mo i a ion
So wa e sys ems can be cha ac e ised bo h by hei
unc ionali y (wha he sys em does) and by hei
non- unc ionali y o quali y1 (how he sys em beha es
wi h espec o some obse able a ibu es like pe o -
mance, eusabili y, eliabili y, e c.). Bo h aspec s a e
ele an o so wa e de elopmen ; in his pape , we a e
going o ocus on he s udy o non- unc ionali y.
1 This wo k is pa ially suppo ed by he spanish p ojec TIC97-1158
( om he CICYT p og am).
2 We ha e ejec ed he wo d "quali y" because he e a e some non-
unc ional cha ac e is ics o so wa e which a e no ela ed wi h he
quali y i sel ; o ins ance, he kind o use -in e ace o a sys em.
App oaches o non- unc ionali y can be classi ied as
p ocess-o ien ed o p oduc -o ien ed. P ocess-o ien ed ones
use non- unc ional in o ma ion o guide he de elopmen
o so wa e sys ems. The e a e some widesp ead
app oaches in he in o ma ion sys ems a ea [3, 14] as well
as in knowledge-based sys ems [13]. On he o he hand,
p oduc -o ien ed app oaches deal wi h non- unc ional
issues om he e alua ion poin o iew: so wa e
p oduc s may be examined o check i hey all wi hin
hei cons ain s o non- unc ionali y. As s a ed in [14], i
is impo an o ema k ha p oduc -o ien ed and p ocess-
o ien ed echniques should be seen no as al e na i e bu as
complemen a y, bo h con ibu ing o a comp ehensi e
amewo k o dealing wi h non- unc ionali y.
A na u al way o acili a e he p oduc -o ien ed app oach
is o de ine a no a ion aimed a s a ing non- unc ional
equi emen s o so wa e in he so wa e i sel . Al hough
many esea che s ha e poin ed ou he con enience o his
no a ion [2, 11, 16, 18, 21], he e seem only o be semi
o mal (e en in o mal) o limi ed (wi h espec o he kind
o non- unc ional in o ma ion managed) p oposals in he
so wa e communi y. The lack o such a comp ehensi e
and o mally de ined language has some nega i e e ec s on
many so wa e de elopmen asks:
• Speci ica ion. Non- unc ional cha ac e is ics o
so wa e emain hidden o he use and hey only
appea in so wa e documen a ion. Thei absence leads
o unbalanced speci ica ions, whe e unc ional aspec s
a e well co e ed wi h usual speci ica ion languages
while non- unc ional ones do no exis .
• Implemen a ion. The selec ion and/o de elopmen o
he mos app op ia e (wi h espec o non- unc ional
equi emen s) implemen a ion o so wa e modules
canno be au oma ed a all because o lack o p ecise
in o ma ion. As a esul , he decisions o be aken
du ing his p ocess may be di icul and e en inco ec .
• Main enance. Changes in he sys em en i onmen ,
modi ica ions o exis ing so wa e module implemen-
a ions and c ea ion o new implemen a ions equi e a
new (by-hand) e iew o p e iously aken implemen-
a ion decisions, wi hou ha ing a ailable he
non- unc ional in o ma ion o he sys em, which is
a ec ed by hese changes.
• Reusabili y. So wa e euse canno ake non-
unc ional issues in o accoun . Thus, modules selec ed
by any unc ional-o ien ed euse s a egy may no i
in o he non- unc ional equi emen s o he
en i onmen , hinde ing o e en p e en ing hei ac ual
in eg a ion in o he sys em.
1.2. The amewo k
In his pape , we ocus on he componen p og amming
ield as de ined in [11, 19], which is cha ac e ised by he
exis ence o so wa e componen s wi h: 1) a speci ica ion
in oducing he public symbols o he componen oge he
wi h he s a emen o hei beha iou ; and 2) many
implemen a ions, each o hem designed o i a pa icula
con ex o use, depending on i s non- unc ional
cha ac e is ics (e iciency o ope a ions, eliabili y, e c.).
We conside ha e e y componen implemen a ion is kep
in a sepa a ed module, as well as i s speci ica ion.
Beside so wa e componen s, we conside also o he
kinds o uni s ha will be o in e es o s a ing non-
unc ionali y:
• Lib a ies o eusable so wa e componen s. G ouping
some subjec - ela ed componen s.
• So wa e sys ems. Combina ion o so wa e
componen s, using also some lib a ies.
• Clus e s. Se s o so wa e sys ems which a e ela ed
by some c i e ia (subjec , so wa e eam, e c.).
The physical implemen a ion o hese uni s (i.e., hei
mapping o concep s like iles, di ec o ies, and use
wo king space) is no o in e es o ou wo k, al hough i
should be conside ed when adop ing ou p oposal o a
pa icula en i onmen .
1.3. The p oposal
We p esen a no a ion called NoFun aimed a binding non-
unc ional in o ma ion o so wa e modules in he
componen p og amming ield. This in o ma ion is
classi ied in o h ee kinds:
•Non- unc ional a ibu e (sho , NF-a ibu e): any
a ibu e o so wa e which se es as a way o desc ibe
i and possibly o e alua e i . Among he mos widely
accep ed [9, 10] we can men ion: ime and space
e iciency, eusabili y, main ainabili y, eliabili y and
usabili y. In ou app oach, we allow a bi a y
iden i ica ion and de ini ion o NF-a ibu es.
•Non- unc ional beha iou o a componen imple-
men a ion (sho , NF-beha iou ): any assignmen o
alues o he NF-a ibu es ha a e in use in he
implemen ed componen .
•Non- unc ional equi emen on a so wa e componen
(sho , NF- equi emen ): any cons ain e e ed o a
subse o he NF-a ibu es ha a e in use in he
componen .
In he es o he pape , we a e going o p esen he
cons uc s o NoFun o s a ing hese h ee kinds o
in o ma ion, and hei o ganisa ion in modules.
2. Non-Func ional A ibu es
In addi ion o hei name, NF-a ibu es ha e he ollowing
cha ac e is ics in NoFun:
• They belong o a domain, which ixes he se o alid
alues and ope a ions.
• Thei a e classi ied o one o wo kinds, basic o
de i ed.
• They ha e a scope, which de e mines he componen s
in which hey a e in use.
• They can be bound ei he o whole componen s o o
indi idual ope a ions.
• They can ha e mul iple de ini ions.
Excep o he scope, hese cha ac e is ics appea when
he NF-a ibu e is de ined inside a NF-a ibu e module; a
single module may de ine mo e han one NF-a ibu e. In
case o mul iple de ini ions, each o hem will appea a
di e en modules, see 2.5.
NF-a ibu e modules may impo o he s; as a pa icula
case, lib a ies o NF-a ibu es may be simula ed by a
NF-a ibu e module impo ing hose ones o in e es .
2.1. Domains
We ha e iden i ied he ollowing s anda d domains:
• Boolean. To ep esen so wa e a ibu es which jus
hold o ail, such as e o eco e y. Usual boolean
ope a ions may be used.
• In ege , eal. To in oduce so wa e a ibu es which
can be measu ed, such as he deg ee o usabili y o a
componen (wi h an in ege numbe ), o he
maximum esponse ime o an ope a ion (wi h a eal
numbe ). Lowe and uppe limi s o hese a ibu es
may be decla ed. Usual a i hme ic ope a ions may be
used.
• Enume a ion. To deal wi h so wa e a ibu es which
can be classi ied in o a ious ca ego ies, such as kind
o use in e ace (icons, command language, e c.). The
se o alid alues should be decla ed. The alues may
be decla ed as o de ed ( om le o igh ), and so some
ope a o s (<, >, <=, >=, max and min) become
a ailable. In any case, compa ison o alues is
possible.
• S ing. To decla e so wa e a ibu es which can be
labelled, such as he name o he p og amming
language used o implemen he componen . S ings
can be compa ed.
• Mapping. To de ine so wa e a ibu es which alue
depend on o he s. Fo ins ance, we can decla e a
a ibu e o ull po abili y o implemen a ions as a
mapping om an enume a ion a ibu e ( he pla o m:
UNIX, Windows-95, e c.) o booleans. The basic
ope a ion on mappings is applica ion o some alue.
Also, we ha e added a speci ic domain, he domain o
e iciency, o measu e he cos o indi idual ope a ions and
ype ep esen a ions. The NF-a ibu es conce ning
e iciency need no be explici ly decla ed; hei exis ence is
in e ed om he co esponding so wa e componen
de ini ion. Mo e p ecisely, he e a e wo implici
NF-a ibu es, ime(op) and space(op), o e e y public
ope a ion op, and an implici NF-a ibu e space( ) o
e e y public ype . Values o his kind o NF-a ibu es
a e gi en in e ms o some measu emen uni s, which
ep esen p oblem domain sizes. The eason o keeping
apa his domain om he a i hme ic ones is ha he
beha iou o ope a ions is di e en . So, he e iciency
exp ession powe (n, 2) + 5
*
n equals o powe (n, 2), and
also he equali y 5
*
n = 12
*
n + log(n) holds; in bo h cases,
n is a measu emen uni .
2.2. Kinds
NF-a ibu es may be classi ied as basic o de i ed,
depending on whe he hei alue can be compu ed om
o he s o no . Fo ins ance, in 3.1 we will de ine he
eliabili y o a componen as a de i ed NF-a ibu e, i s
alue depending (among o he s) on a basic NF-a ibu e
s a ing i he componen has e o eco e y o no . In he
case o basic NF-a ibu es, implemen a ion o compo-
nen s will assign alues o hem; in he case o de i ed
ones, alues will be compu ed au oma ically.
A de i ed NF-a ibu e P includes he ollowing pa s:
• The lis L o o he NF-a ibu es (which may also be
de i ed) ha de e mine P's alue.
• A lis o gua ded o mulae o he o m Ci => P = Ei,
1 ≤ i ≤ n, Ci being a boolean exp ession and Ei an
exp ession yielding a alue in P's domain; i n = 1,
hen Ci is op ional. The meaning o a o mula is: P
equals Ei i he condi ion Ci holds. As a co ec ness
condi ion, he union o he Ci mus co e all possible
cases and hei pai wise conjunc ion mus yield alse.
2.3. Scope
Conce ning i s scope, NF-a ibu es may be in use in
hose kind o uni s iden i ied in 1.2:
• Indi idual componen s. Fo ins ance, he NF-a ibu e
"kind o use in e ace" should be de ined jus o hose
componen s in e ac ing wi h he en i onmen .
• Lib a ies o eusable componen s. Fo ins ance,
( loa ing poin ) accu acy is a NF-a ibu e o in e es
in ma hema ical lib a ies.
• So wa e sys ems. Fo ins ance, a p ojec in ol ing
hea y ne wo k communica ion o access o emo e,
la ge da abases may de ine a NF-a ibu e o
eliabili y o physical media.
• Clus e s. This is he way ha can be used by a
company o by a so wa e eam o de ine he se o
NF-a ibu es ha hey conside ele an in all hei
p ojec s.
The scope is ixed by w i ing he name o he
NF-a ibu e module in he co esponding so wa e uni
(componen , lib a y, sys em o clus e ); in o he wo ds,
we need o anno a e hese uni s. No e ha he scope o all
he NF-a ibu es in oduced in his module is he same.
All he NF-a ibu es impo ed in a NF-a ibu e module
M mus be known in he scopes which M is bound o; i
no , hey a e implici ly added o he scopes ha miss
hem.
2.4. Bindings
Al hough we usually hink o NF-a ibu es as bound o
whole componen s, i may be he case o ha ing o he s
e e ing o indi idual ope a ions; his is he case o he
e iciency NF-a ibu es as de ined in 2.1. This is why
NF-a ibu es should be bound o componen s o (subse s
o ) ope a ions, being he i s case he de aul (excep o
he e iciency case).
As a special case, a NF-a ibu e could be bound bo h o
a componen and o some ope a ions; hen, he
componen -bound NF-a ibu e should be de ined as
de i ed, in e ms o he ope a ion-bound ones. Fo
ins ance, eliabili y o a componen could be de ined in
e ms o he eliabili y o i s ope a ions.
Some ema ks mus be made conce ning bindings and
de i ed NF-a ibu es. Le P be a de i ed NF-a ibu e and
le Q1, ..., Qn be he NF-a ibu es upon which P
depends:
• I P is bound o a componen C, hen all o Q1, ...,
Qn mus also be bound o C.
• I P is bound o an ope a ion op, hen all o Q1, ...,
Qn mus be bound o ei he op o he componen
de ining op. In o he wo ds, a NF-a ibu e bound o a
componen may be used as bound o an ope a ion i
he con ex equi es i .
2.5. Mul iple de ini ions
I is a ac ha he e does no cu en ly exis a uni e sal
eposi o y o NF-a ibu es ecognised as such in he
equi emen s enginee ing communi y. Fu he mo e, o
hose ones ha could be admi ed as such, we can ind
di e en de ini ions in di e en pape s, s anda ds o
p ojec s. This is why we ha e decided o allow mul iple
de ini ions o NF-a ibu es. When using a mul iple-
de ined NF-a ibu e, a pa icula de ini ion should be
chosen in e e y scope whe e he NF-a ibu e is in use.
Mul iple de ini ions yield he ollowing modula
s uc u e:
• The e mus be a common NF-a ibu e module
con aining he name, domain and binding o he
mul iple de ined NF-a ibu e(s). Also, i he e a e
mo e NF-a ibu es o be pu in he module wi h a
single de ini ion, hey can be included in his module.
• The e mus be a di e en NF-a ibu e module o
e e y di e en combina ion o de ini ions o he
mul iple-de ined NF-a ibu es3.
I ollows om his desc ip ion ha , ega dless o he
pa icula de ini ion, he domain and binding o mul iple-
de ined NF-a ibu es mus be he same. This seems
na u al o assume because we hink ha use s o a
NF-a ibu e should be able o eason abou i
independen ly o he chosen de ini ion; his independence
would no be possible i , say, eliabili y we e de ined wi h
di e en domains a di e en modules (e.g., as an in ege
and by enume a ion wi h alues {high, medium, low}).
3. Examples
We gi e he e an example o de ini ion o wo pa icula
NF-a ibu es: eliabili y and eusabili y. We a e going o
de elop in de ail he i s case, while he second one will
be jus ou lined.
3.1. Reliabili y
We p esen he e a simple and naï e ( o he sake o
b e i y) de ini ion o eliabili y o implemen a ions. In
despi e o his simplici y, i should emain clea ha
NoFun is able o handle mo e complica ed and p ecise
3 This is why i seems na u al o include jus one mul iple-de ined NF-
a ibu e in a module.
de ini ions wi h i s cons uc s, close o he ones p esen ed
in he example.
We s uc u e he de ini ion in a ious modules. Fi s o
all, we in oduce a NF-a ibu e o s a e i an
implemen a ion p esen s some kind o e o eco e y o
no . We de ine his componen -bound a ibu e in e ms o
ano he NF-a ibu e wi h he same name, bound o all he
ope a ions o he componen : we s a e ha a componen
implemen a ion has an e o eco e y mechanism i and
only i all i s ope a ions ha e e o eco e y. No e he use
o some buil -in symbols (all_ops) and p edica es ( o all),
wi h an ob ious meaning.
a ibu e module ERROR_RECOVERY
a ibu es
boolean e o _ eco e y bound o all_ops
boolean e o _ eco e y
bound o componen s de i ed
depends on e o _ eco e y(all_ops)
de ined as
e o _ eco e y =
o all op in all_ops i holds
e o _ eco e y(op)
end ERROR_RECOVERY
Fig. 1: A de ini ion o a NF-a ibu e o e o eco e y.
Nex , we in oduce ano he NF-a ibu e o es . We
decide o measu e es ing o indi idual ope a ions wi h an
in ege om ze o o i e. Then, we in oduce a de i ed,
componen -bound NF-a ibu e o es ing o imple-
men a ions. We p o ide wo di e en de ini ions o his
a ibu e, each one de ined in a di e en module; bo h
modules a e linked o he one in oducing he NF-a ibu e
wi h a " e ines" cons uc . The de ini ions use some buil -
in unc ions, which ha e been included in NoFun due o
hei use ulness in de ining a ious NF-a ibu es. The
i s module, he pessimis ic one, de ines he es ing alue
o he implemen a ions as he minimum o he es ing
alues o i s ope a ions; he second de ini ion compu es as
esul he a i hme ic mean o he es ing alues o he
ope a ions.
No e ha , in any case, i is no ob ious how do we ge
he alue o he es ing NF-a ibu es bound o
ope a ions. In spi e o i s impo ance, his is no a subjec
co e ed by ou wo k; ou goal is p o iding a mean o
ep esen hese alues wha e e he way o ge ing hem
is.
Finally, we in oduce he NF-a ibu e o in e es ,
eliabili y, de ined in e ms o e o eco e y, es and a
new NF-a ibu e, ully_po able, which will be ue when
an implemen a ion uses jus s anda d cons uc ions o he
co esponding p og amming language. The las ou lines
a e an abb e ia ion: he condi ion in line (*) mus be
and'ed wi h he condi ions in he las h ee lines.
a ibu e module TEST
a ibu es
in ege es [0..5] bound o all_ops
(* 0 o 5: inc easing deg ee o es ing *)
in ege es [0..5] bound o componen s
de i ed
end TEST
a ibu e module TEST_BY_MIN
e ines TEST
a ibu es
in ege es [0..5]
depends on es (all_ops)
de ined as es = min( es , all_ops)
end TEST_BY_MIN
a ibu e module TEST_BY_MEAN
e ines TEST
a ibu es
in ege es [0..5]
depends on es (all_ops)
de ined as
es = sum( es , all_ops) di #all_ops
end TEST_BY_MEAN
Fig. 2: Mul iple de ini ions o es ing.
a ibu e module RELIABILITY
impo s ERROR_RECOVERY, TEST
a ibu es
boolean ully_po able
enume a ed o de ed
eliabili y [none, low, medium, high] de i ed
depends on e o _ eco e y, ully_po able, es
de ined as
no e o _ eco e y and no ully_po able =>
eliabili y = none
e o _ eco e y and no ully_po able =>
eliabili y = low
no e o _ eco e y and ully_po able =>
eliabili y = low
(*) e o _ eco e y and ully_po able =>
es in [0..1] => eliabili y = low
es in [2..3] => eliabili y = medium
es in [4..5] => eliabili y = high
end RELIABILITY
Fig. 3: A de ini ion o eliabili y.
3.2. Reusabili y
The pu pose o his example is o s udy he sui abili y o
ou app oach o a mo e ealis ic and de ailed p oposal o
NF-a ibu e, eusabili y, as done by Caldie a and Basili in
[1].
Caldie a and Basili iden i y ou ac o s ha ha e
in luence on eusabili y: olume, cycloma ic complexi y,
egula i y and euse equency, and hen hey p o ide a
o mula o each o hem. We could encapsula e each o
he ou ac o s, oge he wi h he a oms ha appea in i s
o mula, in an indi idual NF-a ibu e module (each a om
yielding a basic NF-a ibu e); as a as olume and
egula i y sha e some common a oms ( alues coming
om he Hals ead So wa e Science Indica o s), we can
encapsula e hem in ano he module. Finally, we need a
six h module o he NF-a ibu e o in e es , eusabili y.
In ac , we could decide o gi e mul iple de ini ions o
eusabili y combining he ou ac o s in di e en ways,
depending in he con ex ; he numbe o NF-a ibu e
modules will hen inc ease acco dingly, as i happened
wi h he es a ibu e in 3.1.
cycloma ic
complexi y
basic
NF-a ibu es
eusabili y
olume egula i y euse
equence
Fig. 4: Hie a chy o NF-a ibu e modules o eusabili y.
We show he e he de ini ion o he i s wo ac o s:
• Volume = (N1 + N2)
*
log(η1 + η2), being N1 and
N2 he o al coun o all usage o ope a o s and
ope ands in he implemen a ion, and η1 and η2 he
o al numbe o di e en ope a o s and ope ands used
in he implemen a ion.
• Cycloma ic complexi y = e - n + 2, being e and n he
numbe o edges and nodes o he con ol- low g aph
o an ope a ion. In ac , his o mula e e o he
cycloma ic complexi y o jus one ope a ion, and hen
we should compu e he alue o he componen wi h
he exp ession sum(cycloma ic_complexi y, all_ops),
o be assigned o a componen -bound NF-a ibu e ( he
one o in e es ).
We ema k ha , excep o he use o G eek le e s and
subindexes, he o mulae a e alid exp essions in NoFun.
Also, i is impo an o no e ha he basic NF-a ibu es
ha appea in he o mula can be compu ed in an
au oma ic manne om code.
4. Non-Func ional Beha iou
Once a componen speci ica ion has been buil , imple-
men a ions o i may be w i en. Each implemen a ion V
o a gi en so wa e componen D should s a e i s
NF-beha iou wi h espec o he basic NF-a ibu es ha
a e in use in D; alues o de i ed NF-a ibu es a e
au oma ically compu ed. To keep non- unc ional in o ma-
ion apa om code, his assignmen o alues is
encapsula ed in wha we call a NF-beha iou module.
In he gene al case, a componen will be used in
di e en so wa e sys ems. In hese sys ems, he a ibu es
ha a e in use in he componen could be di e en , and all
o hem should appea in he NF-beha iou module.
Fo ins ance, he beha iou o an implemen a ion
IMP_LIBRARY_1 o a LIBRARY componen in a
LIBRARY_MANAGEMENT so wa e sys em may look
like he module in ig. 5. We a e assuming ha , in his
sys em, LIBRARY is in he scope o he RELIABILITY
NF-a ibu e module; so, i is necessa y o gi e alues o
he basic NF-a ibu es in oduced in his module, as well
as o he implici e iciency NF-a ibu es (as explained in
2.1). Conce ning he i s ones, we s a e ha : all he
ope a ions o he componen ha e e o eco e y; he
implemen a ion does no use non-s anda d language
ea u es; and i s ope a ions ha e a es ing alue o 4 excep
o he check_ou ope a ion. Conce ning e iciency, we
ema k he use o a i hme ic-like ope a o s and
measu emen uni s ( o ins ance, n_membe s, o ep esen
he numbe o membe s o he lib a y). Wi h his
assignmen , and assuming ha we ha e chosen he
TEST_BY_MIN de ini ion o TEST, he alue o he
(componen -bound) de i ed p ope ies a e: e o _ eco e y =
ue, es = 2 and eliabili y = medium.
beha iou module o IMP_LIBRARY_1
beha iou
e o _ eco e y(ops(LIBRARY)); ully_po able
es (ops(LIBRARY)) = 4
excep o es (check_ou ) = 2
ime(lis _all_membe s) = n_membe s
ime(check_ou ) = log(n_books)
...
end IMP_LIBRARY_1
Fig. 5: Non- unc ional beha iou o an implemen a ion
o a LIBRARY componen .
5. Non-Func ional Requi emen s
Implemen a ions o so wa e componen s will usually
impo o he componen s ( o ep esen some ypes and/o
o code he ope a ions). To conside an implemen a ion M
comple e, i is necessa y o choose pa icula imple-
men a ions o hese impo ed componen s. We ad oca e
he e ha he selec ion o he implemen a ion o a
componen C impo ed in M should be done by compa ing
he NF-beha iou o C implemen a ions wi h he
NF- equi emen s s a ed o e C; hese NF- equi emen s
modelise he con ex o use o C and will be exp essed
using NoFun oo.
NF- equi emen s will be in ac o ganised as a lis such
ha hey a e conside ed in o de o appea ance (which
co esponds o he usual case o ha ing equi emen s wi h
di e en deg ees o impo ance). As an al e na i e o he
lis , an implemen a ion o a pa icula so wa e
componen may be ixed di ec ly by i s name.
Fo ins ance, le us suppose ha LIBRARY uses wo
componen s LIST and SET o compose lis s and se s o
books, membe s, e c. Then, he implemen a ion
IMP_LIBRARY_1 could s a e as NF- equi emen o e
SET he ollowing one: i s , implemen a ion mus be as
eliable as possible; nex , he cos o inse ions and
emo als mus be cons an ; las , se in e sec ion should be
as as as possible. Conce ning LIST, he pa icula
implemen a ion ORDERED_LIST is di ec ly selec ed.
beha iou module o IMP_LIBRARY_1
beha iou
... as be o e
equi emen s on SET: max( eliabili y)
ime(pu , emo e) = 1
min( ime(in e sec ))
on LIST: implemen ed wi h
ORDERED_LIST
end IMP_LIBRARY_1
Fig. 6: Non- unc ional equi emen s o e impo ed
componen s appea ing in a LIBRARY implemen a ion.
In his example, he NF- equi emen s ha e been s a ed
locally in a componen implemen a ion. Also, i is
possible o s a e NF- equi emen s bound o lib a ies,
so wa e sys ems o clus e s. So, a company may
ep esen i s p e e ences in clus e -bound NF- equi emen s
( o ins ance, equi ing maximum eliabili y and ull
po abili y o UNIX pla o ms), which can be u he
cons ained in sys ems and lib a ies, and being
NF-beha iou modules he place o s a e local cons ain s,
as in he example. We conside ha NF- equi emen s in
clus e s ha e p ecedence o e he ones in indi idual
so wa e sys ems, and hese ones a e also mo e p io i a y
han he o he wo.
As an al e na i e o he s a emen o NF- equi emen s
o pa icula componen s, global NF- equi emen s can be
o mula ed, a ec ing all he componen s in a clus e ,
lib a y o sys em, o all he impo ed componen s in a
componen implemen a ion. An example could be
equi ing a ce ain deg ee o eliabili y o all he
componen s in a so wa e sys em. Global NF- equi emen s
ake p ecedence o e pa icula ones.
No e ha using he ull capabili ies o NoFun, a single
so wa e componen may be equi ed in di e en ways a
di e en places in he sys em due o he exis ence o
di e en NF- equi emen s o i . E en ually, his will
cause di e en implemen a ions o he same componen o
coexis ; his si ua ion is suppo ed by many p og amming
languages ( o ins ance, he O.-O. amily using inhe i ance
o ep esen he implemen a ion ela ionship), al hough
ee in e ac ion is usually es ic ed (see [7, 17] o
di e en p oposals o a oid such es ic ions).
6. Conclusions
We ha e p esen ed NoFun, a language o s a e non-
unc ional issues o so wa e sys ems a he p oduc le el
in he componen p og amming amewo k. The language
allows o decla e non- unc ional a ibu es o so wa e, o
gi e alues o hese a ibu es in componen implemen-
a ions, and o o mula e non- unc ional equi emen s in
e ms o hese a ibu es. Non- unc ional in o ma ion may
be bound o a ious kinds o so wa e uni s (componen s,
lib a ies, sys ems and clus e s) by means o anno a ions
and special modules. In his pape , ou goal has been o
gi e an exhaus i e p esen a ion o he language
capabili ies, elega ing he o mal aspec s, in o de o
con ince he eade o he use ulness o he p oposal.
We conside ha he salien ea u es o ou app oach
a e:
• The language p o ides a mean o o mula e non-
unc ionali y in a p ecise way, di e en om he usual
case (na u al language). The e is a lo o wo k done in
s udying non- unc ional a ibu es, de ining me ics,
and so on, bu we hink he e is a lack o no a ions o
exp ess he concep s a ising in he ield. A no a ion
such as NoFun p o ides hen a common amewo k in
which people can o mula e, analyse and compa e hei
p oposals abou non- unc ionali y. We ha e
ep esen ed in his pape a measu e o eusabili y as
o mula ed in [1], and we ha e de eloped also o he
p oposals [5, 12].
• As a as NoFun has a well-de ined syn ax and
seman ics (no de ailed he e), we ha e been able o use
i as a basis o building an algo i hm o selec
componen implemen a ions in an au oma ic way, by
e alua ing hem wi h espec o some non- unc ional
equi emen s ha modelise hei con ex o use. We
hink ha his pa icula poin dis inguishes ou
app oach om o he s.
• The combina ion o bo h NoFun and he
implemen a ion selec ion algo i hm can be an aid o
so wa e speci ica ion, design, eusabili y and
main enance. Conce ning speci ica ion, we can
complemen usual unc ional speci ica ions wi h non-
unc ional aspec s. Design is enhanced by ha ing
mo e de ailed in o ma ion a ailable, and by using he
algo i hm o choose implemen a ions. Reusabili y
me hods can be e ined using non- unc ional
cha ac e is ics o choose be ween unc ional-equi alen
componen s ob ained by e ie al in lib a ies o
eusable componen s. Las , main enance due o
changes on non- unc ional aspec s o sys ems can also
bene i by au oma ing he change o implemen a ions
as o he s become mo e app op ia e [6].
• Conce ning he powe o he language, we would like
o ema k ha i p esen s many ea u es which a e
necessa y o modelise non- unc ionali y in a p ope
way: 1) non- unc ional a ibu es may be de ined in
mo e han one way; 2) hey can be bound ei he o
componen s o o ope a ions4 (o bo h); 3) hey can
ha e di e en scopes; 4) non- unc ional equi emen s
may be o de ed wi h espec o hei ela i e
impo ance.
• Ou p oposal can be adap ed o classical modula
p og amming languages [8]. We jus equi e hem o
encapsula e componen s in modules. Also, we equi e
e e y so wa e componen o ha e a single
speci ica ion (a leas , decla a ion o i s public
symbols: ype o class name, p ocedu es, a ibu es,
me hods o unc ions wi h hei in e ace, e c.) and
possibly many implemen a ions, each in a sepa a e
module. These equi emen s a e sa is ied by a huge
class o languages.
As u u e wo k, we a e cu en ly add essing o
au oma ic syn hesis o alues o NF-a ibu es in
implemen a ions. This is o say, we ha e p o ided no
means in ou p oposal o compu e he alue o a speci ic
basic NF-a ibu e om he code o he implemen a ion;
we a e only able o calcula e he alue o de i ed NF-
a ibu es om he co esponding o mula. No e ha i ull
au oma ic syn hesis we e ca ied ou , NF-beha iou
modules could disappea . Howe e , i mus emain clea
ha he e a e many NF-a ibu es whose alues do no
seem o be easily compu able om code; an example is
he es p ope y used in his pape .
The e a e many app oaches o de ining a language o
s a e non- unc ionali y, bu as a as we know hey a e
limi ed in scope. They mainly add ess o many ace s o
e iciency: asymp o ic e iciency [20], e iciency o que ies
in ela ional s uc u es [2], igh e iciency [18] and eal-
ime e iciency [15]. The las wo app oaches esemble
ou s in he sense ha hey de ine a g amma o o mula e
e iciency. Also, [18] in oduces modules o encapsula e
some kind o non- unc ional in o ma ion.
Conce ning au oma ic selec ion o implemen a ions, we
men ion [4] as an app oach close o ou s, p o iding a
amewo k o e alua e he design o so wa e sys ems, he
measu emen c i e ion being he adequacy o
4 We a e cu en ly conside ing he possibili y o allow bindings o
lib a ies, sys ems and clus e s.
implemen a ions wi h espec o some non- unc ional
equi emen s s a ed o e a se o a ibu es. The
equi emen s a e s a ed as an a ay o weigh s o e he
p ope ies and e e y a ibu e has a weigh oo; hen, he
e alua ion o implemen a ions esul s in a numbe and
compa ison is possible. Again, he no a ion p oposed in
his wo k is e y es ic ed compa ed o ou s; also, he
p oposal is no in eg a ed in o he so wa e i sel losing
some o he ad an ages we ha e men ioned.
Re e ences
[1] G. Caldie a, V.R. Basili. "Iden i ying and Quali ying
Reusable So wa e Componen s". IEEE Compu e , 24(2),
1991.
[2] D. Cohen, N. Goldman, K. Na ayanaswamy. "Adding
Pe o mance In o ma ion o ADT In e aces". In P oceedings
o he In e ace De ini ion Languages Wo kshop, ACM
SIGPLAN No ices 29(8), 1994.
[3] L. Chung, B.A. Nixon, E. Yu. "Using Non-Func ional
Requi emen s o Sys ema ically Suppo Change". In
P oceedings o Second In e na ional Symposium on
Requi emen s Enginee ing (ISRE), Yo k (England), 1995.
[4] S. Cá denas, M.V. Zelkowi z. "E alua ion C i e ia o
Func ional Speci ica ions". In P oceedings o Twel h
In e na ional Con e ence on So wa e Enginee ing (ICSE),
Nice (F ance), 1990.
[5] R.G. D omey. "A Model o So wa e P oduc Quali y.
IEEE T ansac ions on So wa e Enginee ing, 21(2), 1995.
[6] X. F anch, P. Bo ella. "Suppo ing So wa e
Main enance wi h Non-Func ional In o ma ion". In
P oceedings Fi s EUROMICRO Con e ence on So wa e
Main enance and Reenginee ing (CSMR), Be lin (Ge many),
1997.
[7] X. F anch. "Combining Di e en Implemen a ions o
Types in a P og am". In P oceedings Join o Modula
Languages Con e ence, Ulm (Ge many), 1994.
[8] X. F anch. "Including Non-Func ional Issues in
Anna/Ada P og ams o Au oma ic Implemen a ion
Selec ion". P oceedings o Ada-Eu ope'97. In e na ional
Con e ence on Reliable So wa e Technologies, London
(U.K.), LNCS 1251, 1997.
[9] IEEE Compu e Socie y. IEEE S anda d o a So wa e
Quali y Me ics Me hodology. IEEE S d. 1061-1992, Ins i u e
o Elec ical and Elec onical Enginee s, New Yo k, 1992.
[10] In e na ional S anda ds O ganiza ion. So wa e
P oduc E alua ion - Quali y Cha ac e is ics and Guidelines o
hei Use. ISO/IEC S anda d ISO-9126, 1991.
[11] M. Jazaye i. "Componen P og amming - a F esh
Look a So wa e Componen s". In P oceedings o Fi h
Eu opean So wa e Enginee ing Con e ence (ESEC),
Ba celona (Ca alunya, Spain), LNCS 989, Sp inge -Ve lag,
1995.
[12] S.E. Kelle , L.G. Kahn, R.B. Pana a. "Speci ying
So wa e Quali y Requi emen s wi h Me ics". IEEE Compu e ,
1990.
[13] D. Landes, R. S ude . "The T ea men o Non-
Func ional Requi emen s in MIKE". In P oceedings o Fi h
Eu opean So wa e Enginee ing Con e ence (ESEC),
Ba celona (Ca alunya, Spain), LNCS 989, Sp inge -Ve lag,
1995.
[14] J. Mylopoulos, L. Chung, B.A. Nixon.
"Rep esen ing and Using Non unc ional Requi emen s: A
P ocess-O ien ed App oach". IEEE T ans. on So wa e
Enginee ing, 18(6), 1992.
[15] R.H. Pie ce e al. "Cap u ing and e i ying
pe o mance equi emen s o ha d eal- ime sys ems". In
P oceedings In e na ional Con e ence on So wa e Reliable
Technologies, London (England), LNCS 1251, Sp inge -
Ve lag, 1997.
[16] M. Shaw. "Abs ac ion Techniques in Mode n
P og amming Languages". IEEE So wa e, 1(10), 1984.
[17] M. Si a aman. "A class o p og amming language
mechanisms o acili a e mul iple implemen a ions o he
same speci ica ion". In P oceedings Fou h In e na ional
Con e ence on Compu e Languages, IEEE Compu e Socie y
P ess, 1992.
[18] M. Si a aman. "On Tigh Pe o mance Speci ica ion o
Objec -O ien ed Componen s". In P oceedings Thi d
In e na ional Con e ence on So wa e Reuse (ICSR), IEEE
Compu e Socie y P ess, 1994.
[19] M. Si a aman (coo dina o ) e al. "Special Fea u e:
Componen -Based So wa e Using RESOLVE". ACM So wa e
Enginee ing No es, 19(4), Oc . 1994.
[20] P.C-Y. Sheu, S. Yoo. "A Knowledge-Based P og am
T ans o ma ion Sys em". In P oceedings Six h CAiSE,
U ech (Holland), LNCS 811, 1994.
[21] J.M. Wing. "A Speci ie 's In oduc ion o Fo mal
Me hods". IEEE Compu e 23(9), 1990.