scieee Open visual document viewer

Software process modelling as relationships between tasks

Franch Gutiérrez, Javier,Ribó Balust, Josep Maria

Abstract

Systematic formulation of software process models is currently a challenging problem in software engineering. We present an approach to define models covering the phases of specification, design, implementation and testing of software systems in the component programming framework, taking into account non-functional aspects of software (efficiency, etc.), automatic reusability of implementations in systems and also prototyping techniques involving both specifications and implementations. Our proposal relies on the identification of a catalogue of tasks that appear during these phases which satisfy some relationships concerning their order of execution. A software process model can be defined as the addition of more relationships over these tasks using a simple, modular process language. We have developed also a formal definition of correctness of a software development with respect to a software process model, based on the formulation of models as graphs.

Full text

So wa e P ocess Modelling as Rela ionships be ween Tasks Xa ie F anch [email p o ec ed] Uni e si a Poli kcnica de Ca alunya Jo di Gi ona 1-3,08034 Ba celona Ca alonia (Spain) FAX: 34-3-4017014. Phone: 34-3-4016965 Abs ac Sys ema ic o mula ion o so wa e p ocess models is cu en ly a challenging p oblem in so wa e enginee ing. We p esen he e an app oach o de ine models co e ing he phases o speci ica ion, design, implemen a ion and es ing o so wa e sys ems in he componen p og amming amewo k, aking in o accoun non- unc ional aspec s o so wa e (e iciency, e c.}, au oma ic eusabili y o implemen a ions in sys ems and also p o o yping echniques in ol ing bo h speci ica ions and implemen a ions. Ou p oposal elies on he iden i ica ion o a ca alogue o asks ha appea du ing hese phases which sa is y some ela ionships conce ning hei o de o execu ion. A so wa e p ocess model can be de ined as he addi ion o mo e ela ionships o e hese asks using a simple, modula p ocess language. We ha e de eloped also a o mal de ini ion o co ec ness o a sojiwa e de elopmen wi h espec o a so wa e p ocess model, based on he o mula ion o models as g aphs. 1. In oduc ion I is widely ecognised ha one o he mos challenging p oblems in he ield o so wa e enginee ing is he sys ema ic o mula ion o so wa e p ocess models in a such a way ha i can be said ha so wa e p ocesses a e so wa e oo [13]. A lo o esea ch has been done in his ield and, as a esul , some p oposals ha e been de ined, which can be cha ac e ised by he kind o language o o malism used o ep esen he model: impe a i e p og ams [ 18, 21, ans o ma ion ules o e speci ica ions and p og ams [ 121, composi ion o in e ence ules [ 141, mul i iew app oaches [17] and so on; [7] gi es a p esen a ion o many p ojec s ecen ly de eloped (including exhaus i e e e ence lis s). Some me hods add ess o he whole so wa e p ocess, while o he s ocus on a subse o phases o he li e-cycle (usually, speci ica ion and design); anyway, he exis ence o hose p oposals is a s ep beyond he uni o m ea men o 1089-6503197 $10.00 0 1997 IEEE 199 Josep M. Rib6 j osepma @ eup.udl .es Uni e si a de Lleida P. Vic o Siu ana 1,25003 Lleida Ca alonia (Spain) FAX: 34-73-702 162. Phone: 34-73-702000 p oduc s (so wa e) and p ocesses (de elopmen s) in so wa e enginee ing, as we hink i should be. In his pape , we a e going o p esen a amewo k o o mula e so wa e p ocess models o componen p og amming [lo, 151, assigning a p ominen ole o he managemen o ope a ional aspec s o so wa e (as e iciency o eliabili y); we also emphasise p o o yping and eusabili y o (implemen a ion o ) componen s. Mo e p ecisely, we conside a subse o he whole so wa e p ocess composed by speci ica ion, design, implemen a ion and es ing phases, and we iden i y a ca alogue o asks ha a ise du ing hese ac i i ies, s a ing some p ecedence ela ionships be ween hem. We de ine hen a p ocess language cha ac e ised by he s a emen o new ela ionships be ween asks; he language has been designed wi h he goal o simplici y and modula i y in mind and, so, i seems o be easy o lea n and use. Also, we p o ide a o mal de ini ion o he concep o co ec ness o a so wa e de elopmen wi h espec o a p ocess model de ined wi h his language. 2. The amewo k We a e in e es ed in so wa e sys ems as a hie a chy o so wa e componen s. A componen is de ined by means o a speci ica ion, which includes wo pa s: he unc ional one, s a ing how does he componen beha e, and he non- unc ional one, ha decla es addi ional equi emen s e e ed o some ope a ional a ibu es (as e iciency); hese a ibu es a e de ined in p ope y modules, impo ed in non- unc ional speci ica ions. Once he speci ica ion is comple e, many implemen a ions may be buil o his componen , all o hem sa is ying he p ope ies s a ed in bo h pa s o he speci ica ion; implemen a ions include a desc ip ion o hei non- unc ional beha iou , which de e mines he alues ha he ope a ional a ibu es decla ed in he non- unc ional speci ica ion ake in he implemen a ion, possibly s a ing some addi ional cons ains on implemen a ions o impo ed componen s. Up o now, ou me hod has been de ined o e an ad hoc language called Me li. Me li includes ea u es o build unc ional and non- unc ional speci ica ions and implemen a ions. The eason o wo king wi h Me li is wo old. On he one hand, i will be no necessa y o de elop new ools when conside ing conc e e speci ica ion and implemen a ion languages, excep om a ansla o om hem o Me li. On he o he hand, we ha e de ined an execu ion ool o e Me li [l] able o p o o ype sys ems ha combine speci ica ions and p og ams p o ided ha some condi ions hold. Howe e , i mus emain clea ha he me hodology we a e going o p opose does no depend o he languages used o speci y componen s and o implemen hem (p o ided ha hey ha e simila cha ac e is ics o he ones adop ed in Me li); so, we a e no equi ing o lea n Me li o adop ou p oposal. A mo e de ailed desc ip ion o Me li may be ound a [4, 61; we gi e he e jus he highligh s o unde s and he amewo k o ou p oposal. 2.1. Func ional speci ica ions We conside wo kinds o unc ional speci ica ions: Model-o ien ed speci ica ions. As in Z [16] o VDM [ 1 11, whe e a model o he componen is s a ed and he speci ica ion is exp essed mainly by means o p e and pos condi ions o e he model. Algeb aic speci ica ions. As in La ch [8] o OBJ3 [9], he speci ica ion consis s o a se o equa ions. We a e pa icula ly in e es ed in he possibili y o using di e en seman ics (ini ial and beha iou al, as La ch does) o in e p e he equa ions. 2.2. Non- unc ional speci ica ions Non- unc ional speci ica ions decla e which ope a ional a ibu es (wha we call NF-p ope ies) a e ele an o he componen being speci ied. NF-p ope ies a e eally in oduced in p ope g modules and hey may be o many di e en kinds, depending o he domain o hei alues: boolean (e.g., ull po abili y), nume ical (e.g., deg ee o eliabili y), eal (e.g., esponse ime), by enume a ion o alues (e.g., kind o use in e ace -icons, menu, command language, ...-) and s ing (e.g., p og amme name)l, and hey can be a ached o single ope a ions o o whole modules (so, we can alk abou esponse ime o indi idual ope a ions o abou ull po abili y o a whole module). I is possible o decla e wha we call measu emen uni s, which ep esen p oblem domain sizes (e.g., numbe o books in a lib a y) and ha may be used as cons an alues, mainly when s a ing e iciency. Once NF-p ope ies ha e been selec ed, non- unc ional speci ica ions s a e es ic ions (NF- equi emen s) o e he implemen a ions o he componen . So, i is possible o o mula e NF- equi emen s such as "implemen a ions mus be ully po able and use in e ace mus be by means o icons" o "ope a ions mus ha e a esponse ime no exceeding one second". 2.3. Implemen a ions As i has become usual in he componen p og amming ield, we ha e chosen he objec -o ien ed p og amming pa adigm o code he implemen a ions. Conce ning non- unc ional beha iou , i includes: on he one hand, assignmen o all he NF-p ope ies decla ed in he non- unc ional speci ica ion; on he o he hand, equi emen s s a ed o e he implemen a ions o impo ed componen s o make su e ha he assigned alues eally hold. So, i is possible o s a e hings as: " he esponse ime o he ope a ion lis -books will no exceed one minu e p o ided ha he so ing algo i hm o he se o books is no quad a ic o e he size o his se ". 2.4. An example We p esen in he nex page ou igu es ha show he modules o a NETWORK componen , which ep esen s opological ne wo ks (di ec ed g aphs) wi h na numbe s as nodes, and unlabelled connec ions (edges) be ween hem. In ig. 1, we ou line bo h model-o ien ed and algeb aic speci ica ions (one o hem should be chosen); in he second case, he keywo d "beha iou al" be o e op-so b eaks he de aul ule o in e p e ing he las equa ion wi h ini ial seman ics. Fig. 2 gi es a non- unc ional speci ica ion, which a ach he NF-p ope ies decla ed in some p ope y modules appea ing in ig. 4 o modules and ope a ions, and adds some addi ional p ope ies; he measu emen uni s s and o he numbe o nodes and connec ions in he ne wo k. Las , ig. 3 gi es a beha iou module o an implemen a ion IMPL-NETWORK o NETWORK; he NF- equi emen o e LIST-NAT mus be sa is ied by he implemen a ion selec ed o his componen inside IMPL-NETWORK. 3. Ca alogue o p ocess asks We desc ibe in his sec ion a se o p ocess asks aimed a suppo ing componen p og amming wi h p o o yping, and allowing he au oma ic selec ion o implemen a ions om hei non- unc ional cha ac e is ics. In he gene al case, p o o yping could in ol e bo h unc ional speci ica ions and implemen a ions; we ha e explo ed in p e ious wo ks [l, 3, 41 he condi ions ha should be ul illed in o de o ha e success ul p o o yping. As we said in he in oduc ion, he asks iden i ied in his ca alogue ac as p imi i es o ou p ocess language, in oduced in sec ion 4. We ha e also a special kind o domain o measu ing e iciency, he domain o he asymp o ic no a ions, ha we do no in oduce he e o he sake o b e i y. 200 unc ional speci ica ion module NETWORK impo s LIST-NAT ype ne wo k = V: se -o (na ) x E: se -o (na x na ) in a ian g: ne wo k; , w: na no ( , ) in g.E ( , w) in g.E => ( in g.V) and (w in g.V) -- no e lexi e edges ope a ions ... add, emo e (ne wo k, na , na ) e u ns ne wo k .. beha iou ... p e and pos condi ions o he ope a ions { m <> n and m in g.V and n in g.V) { g'.E = union(g.E, single on((m, n)))} g' := add(g, m, n) ... end ' module unc ional speci ica ion module NETWORK impo s LIST-NAT ype ne wo k ope a ions ... beha iou al op-so (ne wo k) e u ns lis -na equa ions ... equa ions o he componen [belongs(succ(d, m), n)] => be o e( op-so (d), m, n) = ue end module Fig. 1: Two al e na i e unc ional speci ica ions o a NETWORK componen . non- unc ional speci ica ion module NETWORK impo s PORTABILITY, EFFICIENCY, PROGRAMMER, RELIABILITY module le el ully-po able, p og amme -name, ope a ion le el ime, space, eliabili y measu emen uni s nbnodes, nbconns equi emen s ex e nal-p og amme , nbconns <= pow(nbnodes, 2) no ully-po able => ex emal-p og amme and no ully-po able => eliabili y(ops(NETW0RK)) <> high eliabili y(ops(NETW0RK)) = low end module Fig. 2: Non- unc ional speci ica ion o NETWORK. beha iou module o IMPL-NETWORK ully-po able; no ex e nal-p og amme p og amme -name = "Smi h" ime(succ) = nbnodes; ... eliabili y(ops(NETW0RK)) = high,.. equi emen s on LIST-NAT: ully-po able end module Fig. 3: Beha iou module o a NETWORK implemen a ion p ope y module PORTABILITY boolean ully-po able p ope ies end module p ope y module PROGRAMMER boolean ex e nal-p og amme s ing p og amme -name p ope ies end module p ope y module EFFICIENCY nume ical ime, space end module p ope y module RELIABILITY p ope ies p ope ies enume eliabili y = (high, medium, low) end module Fig. 4: Some p ope y modules decla ing NF-p ope ies. Tasks a e module-o ien ed; his is o say, all o hem a e e e ed o one o mo e modules om all kinds: unc ional speci ica ion, non- unc ional speci ica ion, implemen a ion, beha iou and p ope y modules. The asks p esen ed below may be le empo ally incomple e while execu ing o he ones, o some o hem may be execu ed simul aneously, p o ided ha ela ionships be ween asks a e no iola ed (see 3.2). Also, some o he asks may be pe o med jus by doing no hing ( o ins ance, an implemen a ion may be le un es ed). 3.1. The asks Tasks o building modules. We ha e iden i ied: de ine(M), o decla e he in e ace o a so wa e componen ; decla e(P), o in oduce he name and ype o one o mo e NF-p ope ies in a p ope y module, and op ionally some NF- equi emen s o e hem; Fspeci y(M), o build he unc ional speci ica ion o a componen M; FNspeci y(M, Mn ), o build a non- unc ional speci ica ion Mn o a componen M; implemen (M, I), o build an implemen a ion I o a componen M; and s a e-beha iou (1, In , o s a e he beha iou In o an implemen a ion 1. These asks may euse modules om he lib a y wi h he asks in oduced below. Lib a y managemen asks. We conside he exis ence o lib a ies o s o e speci ica ions, implemen a ions and p ope y modules. Then, we ha e de ined he ollowing asks: 0 Reusing a componen speci ica ion composed by M and Mn ( unc ional and non- unc ional pa s) om he lib a y L in a componen speci ica ion M'. This kind o euse may be o h ee di e en kinds: 201 i impo (M’, L, M, Mn : o euse he module M wi hou any modi ica ion excep some op ional enaming. ii ins an ia e(M’, L, M, Mn ): o ob ain a conc e e componen om a gene ic one (e.g., se s o books om gene ic se s), wi h op ional enaming. iii inhe i (M‘, L, M, MnJ ...) : o ob ain a new componen by (possibly mul iple) inhe i ance om o he ones. 0 Reusing a componen implemen a ion composed by I and I (code and beha iou module) om he lib a y L in a componen implemen a ion I‘. In his case, only impo and ins an ia e a e allowed. 0 Impo ing a p ope y module P om he lib a y L in ano he p ope y module P’: impo (P’, L, P). 0 Impo ing a p ope y module P om he lib a y L inside a non- unc ional speci ica ion Mn : a ach(MnJ L, P). 0 S o ing a module X in o he co esponding lib a y L: s o e(L, X). In he case o speci ica ions and implemen a ions, X include bo h he unc ional and he non- unc ional pa s. Ope a ional asks. We include he e p o o yping asks, implemen a ion selec ion asks and alida ion asks. 0 P o o yping a unc ional speci ica ion M: es -spec(M). Also, he e exis s es -impl(l), o p o o ype an implemen a ion I. Bo h asks may e en ually in ol e mixed execu ion (combining speci ica ions and code) as explained in [ 1,4]. 0 Tes ing i he beha iou module In a ached o an implemen a ion sa is ies he NF- equi emen s s a ed in he co esponding non- unc ional speci ica ion Mn : NF alida e(Inj Mn ). The success o his ask is necessa y o conside he implemen a ion co ec . 0 Tes ing i an implemen a ion I o a componen M, wi h NF-beha iou In , sa is ies he NF- equi emen s s a ed o e M inside ano he beha iou module In ’: NF es (ln , M, In ). The success o his ask is necessa y o conside I as a alid implemen a ion o M in he con ex ep esen ed by In . 0 Selec ing manually an implemen a ion I o a componen M, wi h NF-beha iou In , inside ano he implemen a ion I’: NFmanselec (l’, I, In . 0 Selec ing au oma ically an implemen a ion o a componen M which sa is ies he NF- equi emen s s a ed o e M inside ano he implemen a ion I’ wi h NF-beha iou In : NFau oselec (In ’, M). 3.2. P ecedence g aphs I is clea ha he asks iden i ied abo e sa is y some p ecedence ela ionships ha mus be ollowed in o de o de elop a co ec design o a so wa e sys em. To modelise hese ela ionships, we ha e de ined h ee di e en kind o g aphs, ha we call p ecedence g aphs, e e ed o speci ica ions, implemen a ions and p ope y modules. Each g aph is bound o conc e e modules o he app op ia e ype; so, ela ionships a e module-o ien ed, as well as asks. Fig. 5 p esen s he p ecedence g aph o a speci ica ion wi h unc ional pa M and non- unc ional pa Mn , SpecG aph(M, Mn ). In e ace de ini ion should p ecede bo h unc ional and non- unc ional speci ica ions o he module. To ca y ou p o o yping, unc ional speci ica ion should be comple e. Once he speci ica ion is comple e, i may be s o ed in he lib a y in o de o be e ie ed o i s u u e use in o he componen s. Fig. 7 shows he p ecedence g aph o an implemen a ion I wi h NF-beha iou In , ImplG aph(I, In ). I is s a ed ha an implemen a ion (i s code) should be buil once i s speci ica ion is comple e, and a e wa ds i s NF-beha iou should be s a ed, and also p o o yping o he code may be ca ied ou . F om he non- unc ional speci ica ion and he NF-beha iou , implemen a ion alida ion is possible and i mus p ecede s o age in he lib a y. Las , ig. 6 shows he g aph o a p ope y module P, P opG aph(P). As he ones be o e, i is s a ed ha a module should be comple ed be o e s o ing i in he lib a y, and hen i may be impo ed by o he p ope y modules o i may be a ached o a pa icula non- unc ional speci ica ion. Fspeci y(M) NFspeci y(M, Mn ) es -spec(M) s o e(SpecLib, M, Mn ) impo /ins an ia e/inhe i (M’, SpecLib, M, Mn ) Fig. 5: P ecedence g aph a he specijica ion le el. decla e(P) s o e(P opLib, P) impo (P, P opLib, P) Fig. 6: P ecedence g aph a he p ope y le el. a ach(Mn , P opLib, P) 202 NFspeci y(M, Mn ) Fspeci y(M) implemen (M, I) s a e-beha iou (I', In ) NF es (In , M, In ) es jmpl(1) s a e-beha iou (1, In ) NFau oselec (In , M) s o e(ImplLib, I, In ) NF alida e(In , J Mn ) NFmanselec (I', I, Inn euse/ins an ia e(I', ImplLib, I, In ) Fig. 7: P ecedence g aph a he implemen a ion le el. 4. So wa e p ocess models Once we ha e de ined he ca alogue o exis ing asks and he ela ionships hey should ollow in sys em de elopmen , we ocus in he p oblem o how o de ine conc c e so wa e p ocess modcls. As said in he in oduc ion, we ocus in ou pa icula phases o so wa e p ocess: speci ica ion, design, implemen a ion and es ing; howe e , we will con inue using he e m "so wa e p ocess" as a sho hand o hese phases. Gi en he modelisa ion o p ecedence ela ionships using g aphs, we can conside a de elopmen s a egy as a se o new edges binding nodes o hese g aphs. Some imes, edges will ela e asks (nodes) in he same g aph, o say hings like " he unc ional speci ica ion o a componen mus be de eloped be o e he non- unc ional one"; howe e , in he gene al case, edges will in ol e asks appea ing in g aphs bound o di e en modules, as in "i is necessa y o speci y all he componen s impo ed by a componen M be o e any implemen a ion o M is buil ". Also, we de ine a kind o g ouping mechanism o allow he s a emen o ac s as " unc ional and non- unc ional speci ica ion o a componen mus ake place as a whole". As a esul , we iden i y wo di e en elemen s o o mula e de elopmen s a egies: ules and g oupings, which a e in oduced in 4.1 and 4.2. 4.1. Rules o p ecedence A so wa e p ocess model is mainly cha ac e ised by some pa icula p ecedence ela ionships be ween asks. We de ine hese ela ionships as a pai (called ule he ea e ) le -> igh , whe e le and igh a e se s o asks. The meaning o he ule is: i he asks appea ing in le ha e been comple ed, hen all he asks appea ing in igh can s a o be execu ed; in o he wo ds, he ule is adding an edge om e e y ask (node) appea ing in le o e e y ask appea ing in igh . Once again, le 's ema k ha asks a e de ined a module le el; as a esul , ules will be pa ame e ised by he modules appea ing in asks. We de ine he ollowing elemen s o w i e ules: Iden i ie s o ep esen module names. A quan i ie o he o m: meaning ha he ule holds jus o he speci ied se o modules. Some buil -in unc ions o ob ain se s o modules ela ed somehow wi h a gi en one. Fig. 8 shows an example. So wa e p ocess models a e encapsula ed in s a egy modules. I is possible o combine exis ing s a egy modules o o m new ones, adding op ionally new ules and g oupings. This p ope y suppo s inc emen al de elopmen o s a egies as combina ion o simple ones, and imp o es unde s andabili y and eusabili y o he modules. The i s s a egy module o ces unc ional speci ica ion o componen s o be ca ied ou be o e non- unc ional one. This is a ule ha add edges in single g aphs, he ones o componen speci ica ions, as we show in he i s g aph o ig. 8. The second s a egy de e mines a kind o bo om-up speci ica ion s a egy: be o e speci ying a module M, i is necessa y o speci y all he modules used by M; so, many g aphs a e in ol ed, and we show in ig. 8 he speci ica ion g aphs o a sys em wi h h ee speci ica ions (including unc ional and non- unc ional pa s) (A, Anj), (B, Bnj) and (C, Cnj) such ha (A, Anj) uses he o he ones. Las , he hi d s a egy module combines he p e ious ones, yielding o a kind o bo om-up speci ica ion de elopmen s a egy ha gi es p ecedence o he unc ional pa . We omi a iable decla a ions. Tasks, pa ame e ised by modules. o all x in se o modules: ule(x) 203 s a egy FUNCTIONAL-BEFORE-NON-FUNCTIONAL end module Fspeci y(M) -> NFspeci y(M) s a egy BOTTOM-UP-SPECIFICATION o all Z in used-in()(): Fspeci y(Z) -> Fspeci y(X), NFspeci y(X, Xn ) NFspeci y(Z, Zn ) -> NFspeci y(X, Xn ) end module s a egy BOTTOM-UP-WITH-FUNCTIONAL-BEFORE combines FUNCTION AL-BEFORE-NON-FUNCTIONAL, BOTTOM-U€-SPECIFICATION end module de ine(M) Fspeci y(M) + NFspeci y(M, Mn ) es -spec(M) s o e(SpecLib, M, Mn ) J. impo /ins an ia e/inhe i (M', SpecLib, M, Mn ) SpecG aph(B, Bn ) SpecG aph(C, Cn ) de ine(C) Fspeci y (C) NFspeci y(C, Cn ) Fspeci y( A) NFspeci y(A, An ) I I ... ... SpecG aph(A, An ) Fig. 8: Th ee s a egy modules and he speci ica ion g aph esul ing om he i s wo o hem. 4.2. G ouping o asks We in oduce he e some no a ion o co e he need o g ouping some ela ed asks, all o hem usually e e ed o he same module. This g ouping is exp essed by enclosing he se o asks be ween pa en hesis, ( askl, ..., askn). The meaning o his g ouping is: once a ask om askl, ..., askn is s a ed, de elopmen mus comple e all o hem be o e s a ing any o he ask. Tasks in a g ouping may e e o a subse o modules, using he same quan i ie as ules. No e ha g ouping does no s a e no hing abou o de o execu ion o hese asks ( his is done using ules); also, no e ha g ouping does no oblige nei he o comple e a ask be o e s a ing o he s o he g oup no he o he way ound ( o ins ance, he n asks may be simul aneously in execu ion i ules allow his si ua ion). Las , we ema k ha g oupings can be o mula ed in e ms o asks: a g ouping ( askl, ..., askn) adds an edge om e e y p edecesso o e e y ask in askl, ..., askn o e e y successo o e e y ask in askl, ..., askn; so, he n asks mus in allibly be ca ied ou as a whole. Fig. 9 shows wo examples o g ouping and i s combina ion wi h ules. The i s s a egy module o ces unc ional and non- unc ional speci ica ion o a componen o be pe o med as a whole. As he speci ica ion g aph o he componen does no include any p ecedence ela ionship be ween hese wo asks, any o de o execu ion and s a e o comple ion is possible. Bu i we conside a de elopmen s a egy combining his g ouping 204 and he FUNCTIONALBEFORE-NON-FUNCTIONAL s a egy (see ig. S), he esul is a new s a egy ha equi es, when speci ying e e y componen in he sys em, o comple e he unc ional pa and immedia ely he non- unc ional one; no e he di e ence wi h he s a egy FUNCTIONAL-BEFORE-NON-FUNCTIONAL alone, ha allows o ca y ou o he asks be ween unc ional and non- unc ional speci ica ions. Las , he s a egy SPECIFICATION-OF-USED-MOD ULES shows he use o quan i ie s in g ouping; he module s a es ha all unc ional speci ica ions o impo ed componen s mus ake place indi isibly; his module could combine wi h BOTTOM-UP-SPECIFICATION o o m a new s a egy. s a egy WHOLE-SPECIFICATION end module (Fspeci y(M), NFspeci y(M, Mn )) s a egy WHOLE-SPECIFICATION-FUNCTIONAL- 1 ST combines FUNCTIONAI-BEFORE-NONJU"ONAL, WHOLE-SPECIFICATION end module s a egy SPECIFICATION-OF-USED_MODULES end module ( o all Z in used-in(M): Fspeci y(Z)) Fig. 9: Two new s a egy modules wi h g ouping. 5. Co ec ness o so wa e de elopmen s In his sec ion, we a e going o de ine o mally he no ion o co ec ness o a sys em so wa e de elopmen wi h espec o a so wa e p ocess model2. Fi s , we p opose a model o sys em so wa e de elopmen s as a sequence o asks. A so wa e sys em de elopmen is a sequence o asks such ha he e a e no epea ed asks: i # j whe e " i j" means ha i and j canno be he same ask applied o he same module(s). 0 Nex , we o malise he no ion o so wa e p ocess model as a pai o se s, a se o ules and a se o g oupings. Then, we de ine he g aph bound o a so wa e sys em de elopmen as a g aph including as many subg aphs as modules appea in s (see 3.2) and inco po a ing di ec ed edges be ween nodes gi en bo h he se o ules and he se o g oupings o he p ocess model, as explained in sec ion 4. Las , we o mula e he no ion o De ini ion 1. So wa e sys em de elopmen . SSde = ( ask)* / V's~SSde : s = i ... k: i #j We do no ocus he e on unc ional and non- unc ional co ec ness o he sys em i sel , which may be s udied h ough classical p oo obliga ions. Also, we do no add ess he e o comple eness o so wa e sys ems de elopmen s, de ined as he exis ence o implemen a ions enough o ob ain a comple ely implemen ed sys em sa is ying all he equi emen s s a ed in beha iou modules. co ec ness o a so wa e sys em de elopmen wi h espec o a p ocess model in e ms o a opological so o e he esul ing g aph. A so wa e p ocess model g is a pai , g = (S , Sg), such ha S is a se o ules and Sg a se o g oupings: De ini ion 2. So wa e p ocess model. S E e( ask)* x ( ask)") A Sg E ee ask)) 0 De ini ion 3. G aph induced by se s o modules, ules and g oupings. Le S, S and Sg be se s o modules (in he case o speci ica ions and implemen a ions, pai s o modules including unc ional and non- unc ional pa s), ules and g oupings, espec i ely. We de ine he g aph induced by S, S and Sg, G aph(S, S , Sg), as he minimum g aph sa is ying: VM, Mn (M, Mn )ES A M and Mn o m a speci ica ion: SpecG aph(M, Mn ) E G aph(& S , Sg) ImplG aph(1, In ) c G aph(& S , Sg) P opG aph(P) c G aph(S, S , Sg) VI, In (I, 1n )E S A I and In o m an implemen a ion: VP: PE S A P is a p ope y module: *V : ES A =(l-> ): Vx, y: x~l A yE : Vassignmen a o he modules o x and y wi h alues om S, x[al and y[al: he edge (x[S] -> y[S]) is in G aph(& S , Sg) Vg: g€ sg A g = ( l, ..., k): Vi,j: 1 I i,j I k A i #j: Vassignmen a o he modules o i and j (VX,~: he edges (X -> i[a]) and ( j[a] -> Y) he edge (x -> y) is in G aph(S, S , Sg) whe e SpecG uph(M, Mn ), ImplG aph(I, In ) and P opG uph(P) a e de ined as in 3.2. We assume ha quan i ica ions implici ly expand o se s o ules and g oupings. 0 De ini ion 4. Co ec ness o a so wa e sys em de elopmen wi h espec o a so wa e p ocess model. Le s = i ..&E SSde be a so wa e sys em de elopmen and le g = (S , Sg) be a so wa e p ocess model. We say ha s is co ec wi h espec o g i s ollows a alid opological so a e sal o he g aph induced by g and he modules o s: SE TopSo (G aph(Modules(s), S , Sg)), whe e Modules(s) gi es he se o modules in oduced in s and Topso @ gi es he se o alid opological so a e sals o e he g aph 0 wi h alues om S, i[a] and j[a]: a e in G aph@, S , Sg)): 205 6. Conclusions p esen ed he e: model-o ien ed o algeb aic speci ica ions and objec -o ien ed p og amming. We ha e p esen ed a p oposal o o mula e so wa e p ocess models in he componen p og amming amewo k. This p oposal elies on he exis ence o a ca alogue o asks o build he componen s, o p o o ype hem, o selec he app op ia e implemen a ions o hem and o s o e hem and o e ie e hem ol om lib a ies; his asks p esen p ecedence ela ionships be ween hem. So wa e p ocess models a e encapsula ed in o s a egy modules, which consis s o a se o ules (new p ecedences be ween asks) and a se o g oupings ( asks ha mus be conside ed as a whole). Finally, i has been o mally in oduced he no ion o co ec ness o a so wa e de elopmen wi h espec o a so wa e p ocess model, based in a g aph ep esen a ion o p ocess models. The e a e many aspec s o ou wo k ha ha e no been included in he pape . Fi s , he no ion o componen ede elopmen , which equi es ede ining sligh ly he de ini ion o so wa e sys em de elopmen . Also, we do no include he comple e de ini ion o co ec ness, aking in o accoun unc ional and non- unc ional co ec ness. Las , we ha e no shown he decomposi ion o asks in o sub asks. Ano he in e es ing poin is he use o he de elopmen sequence as a sc ip o analyse he so wa e p ocess and, e en ually, o eplay i in he u u e [5, 141. We hink ha he mos in e es ing poin s o ou app oach a e he ollowing ones: The p ocess language consis s o e y ew elemen s o make i ease o lea n and use: a small ca alogue o asks wi h well-de ined ela ionships, wo mechanisms o ela e asks ( ules and g oupings) and a ew addi ional cons uc ions (quan i ica ion and p ede ined unc ions). So wa e p ocess models may be de ined inc emen ally, om he combina ion o small s a egy modules, each one o hem add essing o pa icula poin s o he model. We may say ha ou p ocess model language alls in o componen p og amming a he p ocess le el and, so, he bene i s in his ield also apply o ou p oposal. A o mal no ion o co ec ness has been de ined. We belie e ha co ec ness in he p ocess le el is as impo an as co ec ness in he p oduc le el. Ou wo k aims a ea ing bo h le els uni o mly. Non- unc ional equi emen s o so wa e a e aken in o accoun du ing so wa e de elopmen . This aspec has no been s udied in de ail he e, bu is a basic one in ou p ojec [4, 61: we belie e ha non- unc ionali y is as impo an as unc ionali y and his equi es explici ea men in he p ocess model. Al hough he p oposal has been p esen ed o an ad hoc no a ion, i does no eally depend on i ; so, he p oposal may be adap ed o e e y ( unc ional) speci ica ion and p og amming languages wi h simila cha ac e is ics o he ones Re e ences [l] X Bu gu s, X. F anch. "E alua ion o Exp essions in a Mul ipa adigm F amewo k". In P oceedings o 7 h PLILP, U ech (The Ne he lands), LNCS 982, Sp inge Ve lag, 1995. [2] E. Dubois, A. an Lamswee de. "Making Speci ica ion P ocesses Explici ". In 4 h In e na ional Wo kshop on So wa e Speci ica ion and Design, Mon e ey (U.S.A.), 1987. [3] X. F anch, X. Bu guCs. "A Case S udy on P o o yping wi h Speci ica ions". P ocs. Wo kshop on De elopmen and T ans o ma ion o P og ams, Nancy (F ance), 1993. [4] X. F anch, X. Bu guCs. "Inc emen al Componen P og amming wi h Func ional and Non-Func ional In o ma ion". In P oceedings o XVI In l. Con e ence o Chilean Compu ing Science Socie y, Valdi ia (Chile), 1996. [5] X. F anch, P. Bo ella. "P o o ipado de P og amas usando Especi icaciones Funcionales y No Funcionales" (w i en in Spanish). In Ac as de las P ime as Jo nadas de T ubajo en Ingenie ia del So wa e, Se illa (Espaiia), 1996. [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 1s EUROMICRO Con e ence on So wa e Main enance and Reenginee ing, Be lin (Ge many), 1997. [7] A. Finkels ein, J. K ame , B. Nuseibeh. So wa e P ocess Modelling and Technology. J. Wiley & sons, 1994. [8] J.V. Gu ag, J.J. Ho ning. La ch: Languages and Tools o Fo mal Speci ica ion. Tex s and Monog aphs in Compu e Science, Sp inge -Ve lag. [9] J.A. Goguen e al. "In oducing OBJ3". D a Repo , SRI In e na ional, 1993. [IO] M. Jazaye i. "Componen P og amming - a F esh Look a So wa e Componen s". In P oceedings o 5 h ESEC, Ba celona (Ca alonia, Spain), 1995. [ 111 C.B. Jones. Sys ema ic So wa e De elopmen using VDM. P en ice-Hall, 1990. [ 121 B. K ieg-B uckne (ed.). P og am de elopmen by Speci ica ion and T ans o ma ion. LNCS 680, Sp inge Ve lag, 1993. [13] L. Os e weil. "So wa e P ocess a e So wa e Too". In P oceedings o 9 h ICSE, Mon e ey (U.S.A.), 1987. [ 141 M. Sin zo . "Exp essing P og am De elopmen s in a Design Calculus". In P ocs. o he ln l. Summe School on Logic o P og amming, NATO AS1 Se ies, Vol F36, Sp inge Ve lag, 1987. [ 151 M. Si a aman (coo dina o ). "Special Fea u e: Componen -Based So wa e Using RESOLVE". ACM So wa e Enginee ing No es, 19(4), Oc . 1994. [16] J.M. Spi ey. The Z No a ion. P en ice-Hall, 1993. [17] M. Saeki, K. Wenyin. "Speci ying So wa e Speci ica ion and Design Me hods". In P oceedings o 6 h CAiSE, U ech (The Ne he lands), LNCS 81 1, 1994. [ 181 D. Wile. "P og am De elopmen s: Fo mal Explana ion o Implemen a ions". In New Pa adigms o So % a e De elopmen s, IEEE Compu e Socie y P ess, 1986. 206