scieee Open visual document viewer

Systematic formulation of non-functional characteristics of software

Franch Gutiérrez, Javier

Abstract

This paper presents NoFun, a notation aimed at dealing with non-functional aspects of software systems at the product level in the component programming framework. NoFun can be used to define hierarchies of non-functional attributes, which can be bound to individual software components, libraries of components or (sets of) software systems. Non-functional attributes can be defined in several ways, being possible to choose a particular definition in a concrete context. Also, NoFun allows to state the values of the attributes in component implementations, and to formulate non-functional requirements over component implementations. The notation is complemented with an algorithm able to select the best implementation of components (with respect to their non-functional characteristics) in their context of use.

Full text

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.