Sourcs, référncs bblogrphqus In Sommrvll, Sofwr Engnrng (éd. 9) CS42 CS422 204-205 Mchl Blch, Jms Rumbugh, Modélson concpon ornés obj vc UML 2 Brry Bohm, Sofwr Engnrng Economcs Cours d gén logcl d Frd Oubdsslm, Ionns Prsss, Jn-Mr Fvr (990-2008) 2 Equp pédgogqu Modlés évluon Ionns Prsss Cours commun CS42-CS422 Mckl Chzlon TD CS42 (EIS) Séphn Choll TD CS422 (IR) Un xmn écr (75%) Conrôl connu (25%) Présnc/prcpon n cours/td Inrrogons n cours 3 4
Objcfs du cours Inroducon u gén logcl Présnon ds prncpls éps ds prncpux concps nrvnn dns l concpon d un logcl, d s spécfcon à s lvrson. Ul ux fuurs ngénurs logcl, concpurs d sysèms nllgns comporn du logcl. 5
L logcl jou un rôl mjur dns ou économ dévloppé. Ls dépnss ds nrprss n dévloppmn/ch d logcls consun un pr mporn du PIB.. Inroducon u gén logcl. D plus n plus d sysèms son (olmn ou n pr) conrôlés pr ds logcls. L gén logcl s un dscpln yn pour obj ls ouls ls méhods ulsés dns l cdr d dévloppmns profssonnls. 2 Coû lés u logcl Produs logcls L coû du logcl dépss, l plus souvn, clu du mérl dns un sysèm nllgn. L coû d l mnnnc d l évoluon pu dépssr ( d lon) clu d son dévloppmn. L gén logcl vs à opmsr ls coûs d dévloppmn/évoluon. Produs générqus Produs sndrds vndus à ds clns (rmns d x, nvgurs nrn, logcls d compblé ) Spécfcon du produ f pr l fournssur Produs sur msur Sysèms commndés pr un cln pour un bson spécfqu (vonqu, plog d cnrls nuclérs ) Spécfcon du produ f pr l cln 3 4
FAQ sur l gén logcl (sourc Sommrvll) FAQ sur l gén logcl (sourc Sommrvll) Quson Wh s sofwr? Wh r h rbus of good sofwr? Wh s sofwr ngnrng? Wh r h fundmnl sofwr ngnrng cvs? Wh s h dffrnc bwn sofwr ngnrng nd compur scnc? Wh s h dffrnc bwn sofwr ngnrng nd sysm ngnrng? Answr Compur progrms nd ssocd documnon. Sofwr producs my b dvlopd for prculr cusomr or my b dvlopd for gnrl mrk. Good sofwr should dlvr h rqurd funconly nd prformnc o h usr nd should b mnnbl, dpndbl nd usbl. Sofwr ngnrng s n ngnrng dscpln h s concrnd wh ll spcs of sofwr producon. Sofwr spcfcon, sofwr dvlopmn, sofwr vldon nd sofwr voluon. Compur scnc focuss on hory nd fundmnls; sofwr ngnrng s concrnd wh h prccls of dvlopng nd dlvrng usful sofwr. Sysm ngnrng s concrnd wh ll spcs of compur-bsd sysms dvlopmn ncludng hrdwr, sofwr nd procss ngnrng. Sofwr ngnrng s pr of hs mor gnrl procss. Quson Answr Wh r h ky chllngs fcng Copng wh ncrsng dvrsy, dmnds for rducd sofwr ngnrng? dlvry ms nd dvlopng rusworhy sofwr. Wh r h coss of sofwr ngnrng? Wh r h bs sofwr ngnrng chnqus nd mhods? Roughly 60% of sofwr coss r dvlopmn coss, 40% r sng coss. For cusom sofwr, voluon coss ofn xcd dvlopmn coss. Whl ll sofwr projcs hv o b profssonlly mngd nd dvlopd, dffrn chnqus r ppropr for dffrn yps of sysm. For xmpl, gms should lwys b dvlopd usng srs of prooyps whrs sfy crcl conrol sysms rqur compl nd nlyzbl spcfcon o b dvlopd. You cn, hrfor, sy h on mhod s br hn nohr. 5 6 Arbus ssnls d un logcl (sourc Sommrvll) Acvés prncpls n gén logcl Produc chrcrsc Mnnbly Dpndbly nd scury Effcncy Accpbly Dscrpon Sofwr should b wrn n such wy so h cn volv o m h chngng nds of cusomrs. Ths s crcl rbu bcus sofwr chng s n nvbl rqurmn of chngng busnss nvronmn. Sofwr dpndbly ncluds rng of chrcrscs ncludng rlbly, scury nd sfy. Dpndbl sofwr should no cus physcl or conomc dmg n h vn of sysm flur. Mlcous usrs should no b bl o ccss or dmg h sysm. Sofwr should no mk wsful us of sysm rsourcs such s mmory nd procssor cycls. Effcncy hrfor ncluds rsponsvnss, procssng m, mmory ulson, c. Sofwr mus b ccpbl o h yp of usrs for whch s dsgnd. Ths mns h mus b undrsndbl, usbl nd compbl wh ohr sysms h hy us. Spécfcon. Cln fournssur défnssn l logcl à rélsr. Dévloppmn. Concpon, progrmmon. Vldon. Vérfcon d l ssfcon ds ns du cln. Evoluon. Modfcon du logcl (à l dmnd du cln ou bn su à un évoluon du mrché). 7 8
Eps prncpls d un dévloppmn logcl Eps prncpls d un dévloppmn logcl Anlys ds bsons Concpon d l soluon Vldon Rélson du logcl 9 0
Modélson d un sysèm 2. Inroducon à l modélson vc UML Modélson créon d plusurs modèls du sysèm. Chqu modèl corrspond à un vu prculèr du sysèm. Modélson d l évoluon d un sysèm vc ds équons mhémqus Modélson d l srucur d un hbon à l d d plns Modélson d un résu élcrqu sous form d grphs Modélson d l évoluon ds condons mééorologqus L modélson prm u concpur d mux comprndr l sysèm d communqur vc ss équps vc l cln. 2 Qund quo modélsr? Eps prncpls d un dévloppmn logcl Un modèl d un sysèm xsn s ul à l dnfcon ds bsons (compréhnson ds forcs fblsss). Un modèl du nouvu sysèm s ul à l concpon d l soluon (qu vu-on fr?). Ds modèls puvn êr consrus ou u long du procssus d dévloppmn, jusqu à l lvrson du produ («Modl Drvn Engnrng»). Anlys ds bsons modèls d nlys Vldon modèls d vldon Concpon d l soluon modèls d concpon Rélson du logcl modèls d rchcur 3 4
Eps prncpls d un dévloppmn logcl Modélson n gén logcl L rélson d logcls dpus oujours f ppl à ds chnqus d modélson (modélson ds donnés, ds rmns ). Ls noons ulsés son nombruss héérogèns. UML (Unfd Modlng Lngug) s un nsmbl d noons normlsés lrgmn dopé dns l ndusr du logcl. Ls noons UML puvn êr ulsés pour décrr ds modèls d dfférns yp (nlys, concpon, mplémnon ). 5 6 Dns c cours Un brèv nroducon à UML Un éud plus fn ds noons dsnés à l nlys, l concpon, n pr, l mplémnon. L lngg UML présnon rpd (Trnsprns sur UML d J-M. Fvr) Objcf fournr ds ouls ds compéncs uls à ou ngénur mné à rvllr dns l concpon d sysèms vncés nclun du logcl. 7 8
pul rrr 500 fr prndr l cr l dsrb. l cr d P. l rsrv l bnqu lr n comp sorr 5 blls d 00 fr rrr d 500 fr sur l comp n confrmr débr 500 fr l comp d P. En n rr cr En n cr rré blls rrés pul rrr 500 fr prndr l cr monn ncorrc cr nséré Cl n 0..* sgn r Cln sgnr 0..* muvs cod..4 0..* ul r s CrBlu Cod rr M x..4 0..* 0.. ulrs Cod rrmx En n du cod En n du monn Co mp numé ro sold... En vérfcon EsAccpéPr> CrBlu En dsrbuon..* vrmnpossbl cod bon B nqu nu mé ro no m Dsrbuur l dsrb. l cr d P. l rsrv l bnqu lr n comp sorr 5 blls d 00 fr En n rr cr rrr d 500 fr sur l comp n En n confrmr cr rré blls rrés 0..* cr nséré monn ncorrc..* muvs cod 0.. monn corrc En n du cod En vérfcon En n du monn En dsrbuon cod frppé 0..*..* cod bon numéro sold... Consorum Comp EsAccpéPr> 0..* l comp d P. débr 500 fr cod frppé monn corrc 0..*..* vrmnpossbl pul..* rrr 500 fr sgnr sgnr frd Cln pul Cln prr Cln mr Cln soph Cln s g n r s g n r f r d C l n pul p u l C lp nr r m r C l n C ls o p nh C l n numéro nom sgnr s g n r Dsrbuur Bnqu ulrs ulrs ulrs ulrs l rsrv d blls..* CrBlu CrBlu CrBlu 0..* 0..* Consorum EsAccpéPr> c4 Comp c Comp c2 Comp c3 Comp EsAccpéPr> EsAccpéPr> l dsrbuur l bnqu l cr d P. u l r s u l r u s l r s u l r s rrr 500 fr C r B l u 6 sorr 5 bll d 00 fr C r B l u C r B l u 2 lr n d comp E s A c c p é P r > l rsrv d blls 3 rrr 500 fr sur comp n E s A c c p é P r > c 4 C o m p c C o m p c 2 c C o m p 3 C o m p E s A c c p é P r > 5 confrmr B n q u l dsrbuur l bnqu l cr d P. 6 sorr 5 bll d 00 fr 2 lr n d comp D s r b u un r D s r b u u r B q u B n q u 3 rrr 500 fr sur comp n 5 confrmr C o n s o r u m C o n s o r u m Dsrbuur Bnqu Bnqu Bnqu Dsrbuur l comp d pul l comp d pul 4 débr(500) 4 débr(500) Consorum Consorum UML = Unfd Modlng Lngug UML = «Unfd Modlng Lngug» Anlys concpon orné-obj ==> Un noon <== Ds méhods " Th Ronl Unfd Procss" "Th Unfd Sofwr Dvlopmn Procss",... Ds ouls Ronl Ros, Objcrng, Toghr J, ArgoUML,... 9 0 Sndrdson v concnsus LS noons UML Sblson d prqus ndusrlls éprouvés UML dop plusurs noons d modélson éprouvés nrodu ds nouvlls Dfférns groups d prssons lobbs ndusrls Vndurs d'ouls, d méhods, d svor-fr Ulsurs ndvduls, ndusrls, nsuonnls, UML n vs ps l'nnovon ms l consnsus Dgrmms ds cs d ulson Dgrmms d clsss Dgrmms d'objs Dgrmms d séquncs Dgrmms d collboron Dgrmms d és Dgrmms d cvés Dgrmms d composns Dgrmms d déplomn Lngg d conrns (OCL) Lngg d'cons Lngg xuls 2
Dgrmms d objs Dgrmms d clsss CrBlu EsAccpéPr> Dsrbuur sgnr frd Cln sgnr pul Cln ulrs ulrs CrBlu c4 Comp c Comp Bnqu Bnqu Consorum Cln sgnr..4 0..* ulrs Comp numéro sold.....* Bnqu numéro nom..* 0..* prr Cln mr Cln sgnr soph Cln ulrs ulrs CrBlu c2 Comp c3 Comp EsAccpéPr> Bnqu Dsrbuur Consorum 0..* CrBlu Cod rrmx 0.. AccpéPr>..* Dsrbuur Consorum 0..* EsAccpéPr> 3 4 Dgrmms d és Dgrmms ds cs d ulson En n cr nséré En n du cod cr rré muvs cod cod frppé RrrDLArgn En n rr cr En vérfcon Cln ConsulrSonComp Ajour DsBlls Trnsporur DBlls cod bon FrUnVrmn monn ncorrc En n du monn blls rrés monn corrc En dsrbuon Assurr LMnnnc Tchncn DsrbuurDBll 5 6
Dgrmms d séqunc Dgrmms d collboron pul l dsrb. l cr d P. l rsrv l bnqu l comp d P. l rsrv rrr 500 fr lr n comp rrr 500 fr 6 sorr 5 bll d 00 fr 3 rrr 500 fr sur comp n 4 débr(500) rrr 500 fr sur l comp n confrmr débr 500 fr pul l dsrbuur l bnqu 5 confrmr 2 lr n d comp prndr l cr sorr 5 blls d 00 fr l cr d P. l comp d pul 7 8 Dgrmms d cvés Dgrmms d composns Cln Vndur Lvrur S rnsgnr Eblr un dvs Commndr Fcurr Pyr Lvrr 9 20
Dgrmms d déplomn Prncpux élémns grphqus dsrbuur <<SSLT>> Srvur Plm clss ou obj cs d'ulson ssocon composon <<cpp>> nrfc spéclson rffnmn SrvurWb <<hps>> PC pqug mssg synchron é mssg synchron é nl/fnl dépndnc ou rour d mssg synchron 2 22 no L noon UML? Modélson d sysèms complxs LS noons UML Noons grphqus + noon xull Sgnfcon précs (dns un conx donné) Noon sndrd (ms ps oujours rspcé) Noon rès générl (ms ps oujours suffsn) Noon xnsbl Impossbl d décrr un sysèm vc un sul dgrmm UML fourn dfférn concps pour orgnsr ls dgrmms dfférns objcfs d modélson => dfférns modèls orgnson logqu d modèls n rms d pqugs 23 24
CrBlu Cod rr M x Cl n Cl n CrBlu Cod rr M x CrBlu Cl n Cod rr M x Cl n Dsrbuur CrBlu Cod rr M x Dsrbuur Cl n Co mp numé ro sold... B nqu nu mé ro no m Dsrbuur Consorum Cl n Cl n Co mp numé ro sold... Cl n B nqu nu mé ro no m Dsrbuur Consorum Dsrbuur Dsrbuur Srucuron logqu Pqugs Modélson procssus d dévloppmn Elémns d'un modèl orgnsés n un hérrch d pqugs UML fourn un mécnsm, ms ps d crèr ou d méhod Ds modèls puvn êr ulsés à ous ls éps d un procssus d dévloppmn. Un dgrmm d clsss pu srvr à l défnon ds bsons (p.x. domn bncr, comps, crs bncrs c) Un dgrmm d clsss pu défnr l srucur d un pplcon nformqu (clss Bouon, clss GsonnrDFchrs ) Ls noons ulsés ls modèls produs dépndn d c qu l on vu xprmr. 25 26 Nor prspcv sur l modélson UML Nor prspcv sur l modélson Ds modèls pour l nlys Nécssrs pour comprndr l bson (ms ps l soluon) Ds modèls pour l nlys Dgrmms d clsss, d objs, d és Ds modèls pour l concpon Nécssrs pour défnr l pplcon son compormn ls donnés qu ll mnpul (ms ps commn ll s rélsé) Ds modèls pour l mplémnon Pour défnr l srucur d l pplcon (commn ll s rélsé) Ds modèls pour l concpon Dgrmms d cs d ulson, d séqunc Ds modèls pour l mplémnon Archcur logcll Dgrmms d clsss, d composns, d déplomn 27 28
UML Dgrmms d clsss 3. Modélson Procssus d nlys d concpon Anlys du domn 2 Noon pour ls clsss Noons smplfés pour ls clsss Comp numéro nr sold rél découvrmx nr consulrsold() nr crédr( somm nr) débr( somm nr) { nv sold > découvrmx } Comp Comp numéro sold... Comp crédr() débr()... Comp numéro sold... crédr() débr()... Comp numéro sold rél découvrmx nr consulrsold() nr crédr( somm nr) débr( somm ) 3 4
Noons pour ls objs Clss vs. Objs lcompdpul Comp lcompdpul Comp lcompdpul Comp numéro = 6688 sold = 5000 découvrmx = -00!! " &! # " ' & lcompdmrcomp numéro = 2275 sold = 0000 découvrmx = -000 Comp numéro sold rél découvrmx nr consulrsold() nr crédr( somm nr) débr( somm ) Comp numéro = 200 sold = 50 découvrmx = 0 lcompdpul Comp numéro = 6688 sold = 5000 découvrmx = -00 # $% # $'% 5 6 Lns (nr objs) Rôls ( '' ' pul Cln APourComp c Comp prr Cln ulr APourComp comp c Comp prr Cln APourComp c2 Comp - + + - mr Cln c3 Comp ( $') * +,% 7 - -. 8
Cln pul Cln prr Cln mr Cln APourComp> APourComp> APourComp> Comp c Comp c2 Comp c3 Comp Assocons (nr clsss) Assocon vs. Lns "/(/ Cln ulr APourComp comp Comp # $% Un ln l dux objs Un ssocon l dux clsss Un ln s un nsnc d ssocon Un ssocon décr un nsmbl d lns pul Cln APourComp> c Comp Ds lns puvn êr joués ou dérus pndn l xécuon, (c n s ps l cs ds ssocons) prr Cln APourComp> c2 Comp # $'% L rm "rlon" n ps pr du vocbulr UML mr Cln c3 Comp 9 0 Nommr ls ssocons Ulsr ls rôls pour «nvgur» Comp Comp bnqugérn Bnqu Bnqu Cln ulr APourComp comps Comp Comp Comp compsgérés Gèr Bnqu Bnqu pul.comps prr.comps mr.comps c.ulr c2.ulr c3.ulr = {c} = {c2,c3} = { } = pul = prr = prr pul Cln prr Cln mr Cln ulr ulr ulr APourComp> APourComp> comps comps comps c Comp c2 Comp c3 Comp Comp compsgérés EsGéréPr bnqugérn Bnqu - 2
Crdnlés d un ssocon Assocons "rflxvs" Précs combn d objs puvn êr lés à un sul obj sourc Crdnlé mnml crdnlé mxml ( C mn..c mx ) Cln APourComp 0..* ulr comps Comp Rn n'mpêch un ssocon d rlr ds "objs" d'un mêm clss nfns Prsonn * 2 prns EsPrnD ) 0, ) ++,!( / ' / prns pul prns mr prns prns prns frd prns pul Cln APourComp> c Comp prns sylv jn noll prr Cln APourComp> c2 Comp prns myr prns mr Cln c3 Comp!! 8 9 Conrns nr ssocons Dgrmm d clsss Cln ulrprncpl 0..* 0..* co-ulrs 0..*..* /ulrs 0..* &!" ' Comp numéro sold... Cln sgnr 0..*..4 0..* ulrs CrBlu Cod rrmx * Comp numéro sold... EsAccpéPr>..* Bnqu..* numéro nom Dsrbuur..* 0..* Consorum 0..* 2 $3&% () Un cln n pu ps êr à l fos ulr prncpl co-ulr d un mêm comp. (2) Ls ulrs d un comp son l ulr prncpl ls co-ulrs l cs échén 20 2
Cln Cln Comp Cln u l r s u l r s sgn r Cln Consorum u l r s u l r s > > > Comp Comp Bnq u Bnq u Dsrbuur Bnq u Dsrbuur Consorum Cln Cln Comp Cln u l r s u l r s Cln Consorum > > > Comp Comp Bnq u Bnq u Dsrbuur Consorum Cln Comp Cln u l r s u l r s Cln Consorum > > > Comp Comp Bnq u Bnq u Dsrbuur Consorum Cln sgnr 0.. *..4 0.. ulrs Cod rrmx CrBlu s g n r Cons oru m pul Cln prr Cln mr Cln soph Cln s g n r * u l r s u l r s u l r s * B n q u B n q u Dsr buu r numéro sold... Comp EsAccpéPr> Cr Blu Cr Blu.. *.. * c Comp c2 Com p c3 Comp EsA ccp épr > EsA ccp épr > EsA ccp épr > EsA ccp épr > c Comp c2 Com p c3 Comp numéro nom Dsrbuur Cr Blu Bnqu Cr Blu B n q u B n q u Dsr buu r u l r s u l r s u l r s 0.. *.. * s g n r pul Cln prr Cln mr Cln soph Cln Cons oru m s g n r Consorum 0.. * Dgrmms d objs Dgrmms d clsss vs. d objs sgnr frd Cln sgnr pul Cln ulrs ulrs CrBlu CrBlu EsAccpéPr> c4 Comp c Comp Dsrbuur Bnqu Bnqu Consorum Un dgrmm d clsss défn l nsmbl d ous ls és possbls ls conrns dovn oujours êr vérfés Un dgrmm d objs décr un é possbl à un nsn, un cs prculr do êr conform u modèl d clsss prr Cln mr Cln sgnr soph Cln ulrs ulrs CrBlu c2 Comp c3 Comp EsAccpéPr> Bnqu Dsrbuur Consorum Ls dgrmms d objs puvn êr ulsés pour xplqur un dgrmm d clss (donnr un xmpl) vldr un dgrmm d clss (l "sr") EsAccpéPr> 23 24 Dgrmms d clsss vs. d objs Générlson / Spéclson Cln sgnr 0..*..4 0..* ulrs CrBlu Cod rrmx * Comp numéro sold.....* EsAccpéPr>..* Bnqu numéro nom Dsrbuur..* 0..* Consorum 0..* + " Prsonn /4 / Comp 2 3 0... Homm Fmm #'$&%! 5 /4 / ( Comp Eprgn 25 26
Hérg Rdéfnon d'opérons &5 ),5 $... % Comp sold crédr() débr() CompEprgn uxinérê jourinérês () * Bnqu {nv sold > -5000} {nv uxinérê < 00} 27 CompEprgn sold uxinérê crédr() débr() jourinérês () {nv sold > -5000 uxinérê < 00} * Bnqu " / /5 *! (6 ( " PEL crédr() débr() jourinérês () 28 Comp sold crédr() débr() CompEprgn crédr() débr() jourinérês () PEC débr() PET débr() Vson nsmbls Synhès ds concps d bs 5 65 78 + Clss rbu méhod Assocon rôl crdnlé Comp c3 Comp Eprgn Comp c c3 c2 CompEprgn c4 c4 c c2 0 o o2 o o2 3 & 9 o3 o4 o5 o2 o o3 29 30
Composon Composon / // / Vour 4 Rou Pnu Jn 7 ; / / 6 + "(+ < ' = 4. Vour 4 Rou #> $?' % Pnu Jn 3 32 Composon Composon 6 + "(+ < ' = 4. Documn..*..* Chpr 0..*..* Scon Fgur Documn..*..* Chpr 0..* 0.. Scon Fgur documn chpr chpr scon scon fgur scon fgur 33 34
Clsss ssocvs Clsss ssocvs * @' 78 Prsonn mployé socéé * 0..2 Socéé Prsonn mployé socéé * 0..2 Socéé slr = 500 Emplo slr ugmnr() Emplo slr ugmnr() mployé jn mployé 2 slr = 700 3 xrox ujf & 6. 6. 6$ 5 % & mr mployé slr = 000 35 36 Clsss ssocvs Clsss ssocvs *.!" ( 6 p Emplo> Emplo> A 6 p 37 Emplo slr = 500 Emplo slr = 700 s s Prsonn Prsonn mployé * 0..2 Emplo mployé slr 0..2 Emplo * socéé slr 5.'" 38 socéé p Socéé 5.'." p 2 Socéé s s
Clsss ssocvs Conrns prédéfns sur ls ssocons &? "'" Prsonn FchDPy * {ordrd} mployé * Emplo slr ugmnr() socéé 0..2 Socéé *' B CD '. BD B3D RlvéD Comp lgns * {ordrd,ddonly} Lgn Opéron 9 39 4 Assocons qulfés Exmpl! 6! 6 Assocon90 rtr * * mmbrs * 0.. Prsonn <<numron>> Tr Scrr Prsdn Trsorr Rpror nom Fchr 0.. &(! ss Trsorr Prsdn mmbrs mmbrs frd sylv hmd Scrr jo ss2 Prsdn 42 43
Synhès sur ls ssocons - ClssA x srng rola <AssoconX 0..* {frozn} AssoconX rbuz ClssB Rffnmn du concp d générlson E (( 44 45 Hérg rdéfnon Clsss méhods bsrs Fgur surfc() déplcr() Crcl Polygon. 6 Fgur surfc() déplcr() Crcl Polygon " " surfc() surfc() surfc() surfc() Fgur Fgur {bsrc} Crré surfc() Trngl surfc() Crré surfc() surfc() déplcr() surfc() {bsrc} déplcr() ( 46 47
Clsss bsrs du pon d vu nsmbls Hérg mulpl Fgur Fgurs 5 surfc() déplcr() Crcl surfc() Polygon surfc() Crcls c c2 c3 Polygons Trngls Crrés c c2 2 Chuffg Apprl Apprl Élcrqu Pols Chuffg Apprls Chuffgs lcrqus Apprls élcrqus Mcro onds Trngl Crré c4 Poêl Chuffg Élcrqu Mcro-Onds surfc() surfc() 9 $FG% 48 49 Pons lés à l hérg à l clssfcon &5 " H I H 5" I ( ( H 5 I UML Dgrmms d és 4 ('.& H H ( H 6 50 5
Dgrmms d és Dgrmms d és Ulsés pour modélsr l évoluon d un obj su à un événmn xérur (ppl d méhod, chngmn d vlur d un rbu ) Il s g d modélsr un compormn Lur ulson n s ps oblgor (résrvé ux clsss yn ds compormns non rvux) Dgrmm d és = uom d és fns Trnson = récon à un évènmn é nl/fnl é rnson 52 53 Exmpl (Sommrvll) Whr son s dgrm Dgrmms d és Plusurs yps d évènmns Sgnl Mssg synchron rçu Appl (cll) Appl d un méhod d l obj Chngmn (chng) Ssfcon d un condon (x. comp à découvr) Evénmn mporl (fr, whn) A 20h llumr l éclrg Arrêr l lrm près 0 sconds 54 55
Anlys d l pplcon Ls modèls consrus lors d l nlys du domn son ssnllmn consués d dgrmms d clsss d dgrmms d és. Ils décrvn l domn d l pplcon. 4. Modélson Anlys d l pplcon Un modèl d nlys d l pplcon vocon rprésnr c qu f l pplcon nommn ss nrcons vc ls ulsurs. Prm ls noons UML on rn pour c ép d modélson Ls dgrmms d cs d ulson Ls dgrmms d séqunc 2 Ls dgrmms d cs d ulson UML Cs d ulson Un ds noons d UML (us-css) Bu défnr l sysèm du pon d vu ds ulsurs défnr ls lms précss du sysèm Noon rès smpl, compréhnsbl pr ous Prm d srucurr ls bsons (chr ds chrgs) l rs du dévloppmn CsU CsU2 A CsU4 CsU3 A2 CsU5 S A3 3 4
Exmpl d dgrmms d cs d ulson Exmpl d dgrmms d cs d ulson CrérUnComp ConsulrUnComp Cln Cln RrrDLArgnAu Dsrbuur Bnqu Cnrl Guchr DposrDLArgn SurUnComp RrrDLArgnAu Dsrbuur ConsulrSonComp RrrDLArgn DUnComp Sysèm bncr GrrLsPrs Drcur Trnsporur DBlls Ajour DsBlls DsrbuurDBll Assurr LMnnnc Tchncn 5 6 Exmpl d dgrmms d cs d ulson Modèl ds cs d ulson PorurDCr Grdn Enrr Sorr LsrLs TnvsDFruds DébloqurLsPors GérrLsCrs Cpur AIncnd Admnsrur Un dgrmm d cs d ulson décr ls curs CsU ls cs d ulson A CsU4 l sysèm Un modèl d cs d ulson pu êr formé d plusurs dgrmms d cs d'ulson, d dscrpons xulls, d dgrmms d séquncs... CsU5 S CsU2 CsU3 A3 A2 SysèmDConrôlDAccs 7 8
Cs d ulson (CU) L sysèm CsDUlsonX Cs d ulson (CU) un mnèr d ulsr l sysèm un su d nrcons nr un cur l sysèm x l guchr pu crér un nouvu comp Corrspond à un foncon vsbl pr l ulsur Prm d ndr un bu pour un ulsur Do êr ul n so Sysè m L sysèm s un nsmbl d cs d ulson L sysèm conn ls cs d ulson, ms ps ls curs. Un modèl d cs d ulson prm d défnr ls foncons ssnlls du sysèm, ls lms du sysèm, l sysèm pr rppor à son nvronnmn. 9 0 Acurs Acurs vs. ulsurs Cln Un Acur = Cln N ps confondr l noon d'acur d prsonn ulsn l sysèm élémn xrn qu nrg vc l sysèm un cur prnd ds décsons, ds nvs, s "cf" rôl qu un ulsur jou pr rppor u sysèm x un cln, un guchr Un mêm prsonn pu jour plusurs rôls x Murc s drcur ms pu jour l rôl d guchr Plusurs prsonns puvn jour un mêm rôl x Pul Prr son dux clns Un cur n s ps forcémn un êr humn x un dsrbuur d bll pu êr vu comm un cur 2
Dfférns yps d curs Dscrpon ds curs Cln Ulsurs prncpux x cln, guchr Ulsurs scondrs x conrôlur, drcur, ngénur sysèm,... Pérphérqus xrns x un cpur, un horlog xrn,... Sysèms xrns x sysèm nrbncrs Cln Pour chqu cur chosr un dnfcur rprésnf d son rôl donnr un brèv dscrpon xull Guchr Un guchr s un mployé d l bnqu chrgé d fr l nrfc nr l sysèm nformqu ls clns qu l rço u compor. L guchr pu rélsr ls opérons courns créon d un comp, dépô rr d rgn, c. 3 4 Ulé ds curs Dscrpon ds cs d ulson Cln L défnon d curs prm surou d rouvr ls cs d ulson x qu pu fr un guchr? un cln? l drcur? ms pu uss êr ulsé pour défnr dfférns pons d vus sur l sysèm, dérmnr ds dros d ccès pr yp d cur, fxr ds ordrs d prorés nr curs,... CsDUlsonX Pour chqu cs d ulson chosr un dnfcur rprésnf donnr un dscrpon xull smpl l foncon rélsé do êr comprs d ous ps rop d déls précsr c qu f l sysèm, c qu f l cur Ls cs d ulson n dovn ps s chvuchr 5 6
Exmpl d dscrpon d un cs d ulson Rlon cur - cs d'ulson communcon CsDUlsonX Rrr DLArgn AuDsrbuur Lorsqu un cln bson d lqud l pu n ulsn un dsrbuur rrr d l rgn d son comp. Pour cl - l cln nsèr s cr bncr dns l dsrbuur - l sysèm dmnd l cod pour l dnfr - l cln chos l monn du rr - l sysèm vérf qu l y suffsmmn d rgn - s c s l cs, l sysèm dsrbu ls blls déb l comp du cln - l cln prnd ls blls rr s cr Rprésn un communcon (né pr l'cur) Echng d mssgs ponllmn dns ls dux sns Guchr CrérUnComp Sr rffné pr l su (.g. documn d spécfcons xrns) S l'cur s un humn nrfc homm sysèm S l'cur s un logcl nrfc logcll 7 8 Rlon nr curs générlson Rmrqu L sul rlon nr curs s l rlon d générlson Guchr CrérUnComp FrmrUnComp RrrDLArgn DUnComp Ls communcons xrns nr curs n son ps modélsés. UML s concnr sur l dscrpon du sysèm d ss nrcons vc l'xérur Cln ConsulrSonComp RrrDLArgnAu Dsrbuur RrrDLArgn PrChèqu Guchr EnChf AnnulrUnComp Guchr Sysèm Bncr 9 20
Rmrqu Exmpl d dgrmm d CU décoré { 2/03/02 } { P } Ps d communcons nrns nr cs d'ulson. UML s concnr sur l dscrpon du sysèm d ss nrcons vc l'xérur Cln Drcur RrDLArgn ConsulrLsSolds Sysèm Bncr Guchr P proré CrérUnComp { 20/03/02 } DposrDLArgn SurUnComp { 2/05/02 } RrrDLArgn DUnComp ConsulrUnComp { P } { P } { 25/2/02 } { P2 } { 0/0/02 } RrrDLArgnAu Dsrbuur { 0/2/02 } GrrLsPrs { P3 } { P2 } Cln Drcur Sysèm bncr 2 22 Informons à décrr Exmpl d dscrpon déllé d un CU Qund l CU commnc, pré-condons Qund l CU s rmn, pos-condons L chmn corrspondn u déroulmn norml Ls vrns possbls ls cs d rrurs Ls nrcons nr l sysèm ls curs Ls nformons échngés Ls évnuls bsons non fonconnls Rrr DLArgn AuDsrbuur Précondon L dsrbuur conn ds blls, l s n n d un opéron, l n s n n pnn, n n mnnnc Débu lorsqu un cln nrodu s cr bncr dns l dsrbuur. Fn lorsqu l cr bncr ls blls son sors. Poscondon S d l rgn pu êr rré l somm d rgn sur l comp s égl à l somm d rgn qu l y v vn, mons l monn du rr. Snon l somm d rgn sur l comp s l mêm qu vn. 24 25
Exmpl d dscrpon déllé d un CU Exmpl d dscrpon déllé d un CU Rrr DLArgn AuDsrbuur Déroulmn norml () l cln nrodu s cr bncr (2) l sysèm l l cr vérf s l cr s vld (3) l sysèm dmnd u cln d pr son cod (4) l cln p son cod confdnl (5) l sysèm vérf qu l cod corrspond à l cr (6) l cln chos un opéron d rr (7) l sysèm dmnd l monn à rrr Vrns (A) Cr nvld u cours d l ép (2) s l cr s jugé nvld, l sysèm ffch un mssg d rrur, rjè l cr l cs d ulson s rmn. (B) Cod rroné u cours d l ép (5)... Rrr DLArgn AuDsrbuur Conrns non fonconnlls (A) Prformnc l sysèm do régr dns un dél nférur à 4 sconds, qulqu so l con d l ulsur. (B) Réssnc ux pnns s un coupur d courn ou un ur défllnc survn u cours du cs d ulson, l rnscon sr nnulé, l rgn n sr ps dsrbué. L sysèm do pouvor rdémrrr uomqumn dns un é cohérn sns nrvnon humn. (C) Réssnc à l chrg l sysèm do pouvor gérr plus d 000 rrs d rgn smulnémn... 26 27 Rlons nr cs d'ulson ncluson xnson Anon «nclud» RrrDLArgn «nclud» "Th UML ncluds ohr rlonshps bwn us css byond h smpl ncluds, such s <<xnd>>. I srongly suggs h you gnor hm. I'v sn oo mny suons n whch ms cn g rrbly hung up on whn o us dffrn us cs rlonshps, nd such nrgy s wsd. Insd, concnr on h xul dscrpon of us cs." S'Idnfr [UML Dslld, MrnFowlr] «xnds» Trnsfrr DLArgn «nclud» «xnds» "A common sgn of novc (or cdmc) us cs modlr s proccupon wh us cs dgrms nd us cs rlonshps, rhr hn wrng x.... Us cs dgrms nd us cs rlonshps r scondry n us cs work. Us css r x documns. Dong us cs work mns o wr x." [Applyng UML nd Prns, Crg Lrmn] RrrDLArgn AvcDfféré RrrDLArgn 28 29
Scénro Exmpl d scénro Pour décrr ou vldr un CU ls scénros Un scénro s un xmpl un mnèr prculèr d ulsr l sysèm pr un cur prculr dns un conx prculr. cs d ulson = nsmbl d scénros scénro = un xécuon prculèr d un CU Rrr DLArgn AuDsrbuur SCENARIO 4 Pul nsèr s cr dns l dsrbuur d203 L sysèm ccp l cr l l numéro d comp L sysèm dmnd l cod Pul p 234 L sysèm ndqu qu c n s ps l bon cod L sysèm ffch un mssg propos d rcommncr Pul p 6622 L sysèm ffch qu l cod s corrc L sysèm dmnd l monn du rr Pul p 50000 fr L sysèm vérf s l y ssz d rgn sur l comp... 30 3 Dgrmms d séquncs "sysèm" UML Dgrmms d séqunc Pour décrr un scénro dgrmm d séquncs Dgrmm d séquncs L un ds noons UML, un noon générl Pu êr ulsé dns d nombrux conxs Prm d décrr un séqunc ds mssgs échngés nr dfférns objs Dfférns nvux d déls Pour décrr un scénro smpl, dux objs l cur l sysèm "Dgrmm d séquncs sysèm" 32 33
Exmpl d scénro Cs d'ulson vs. scénro pul Cln Insérr cr l sysèm Nvu modèl Dmndr cod Vérfr cr Enrr cod 234 Mssg d rrur Dmndr cod Vérfr cod Nvu nsncs Applr Sylv Enrr cod 6622... 34 35 Synhès sur l modélson L nlys ds bsons nécss L nlys du domn d l pplcon (ls nformons mnpulés ls rlons nr lls) ls dgrmms d clsss ls dgrmms d é son ls ouls qu nous ulsrons à c ff. L nlys d l pplcon (c qu vu l cln) l ulson ds dgrmms d cs d ulson ds dgrmms d séqunc prmn n grnd pr c modélson. Anon on s oujours dns un ép d nlys ds bsons ( non ps d rélson). 36
Problémqu 5. Modélson Objc Consrn Lngug (OCL) Ls dfférns dgrmms UML prmn d xprmr crns conrns grphqumn conrns srucurlls (.g. un rbu dns un clss) conrns d yps (.g. sous-ypg) conrns dvrss (.g. composon, crdnlé, c.) v ds propréés prédéfns sur ds clsss (.g. {bsrc}) sur ds rôls (.g. {ordrd}) C s bn, ms c s lon d êr suffsn... 2 Illusons prgés ou non Exprsson ds conrns n lngu nurll Anon ux conrns supposés êr évdns ou vérfés "nurllmn" sgnr pul Cln prr Cln mr Cln sgnr ulrs ulrs ulrs ulrs CrBlu CrBlu c Comp c2 Comp c3 Comp Cln sgnr..4 0..* ulrs 0..* CrBlu * Comp numéro sold dmx L sgnr d'un cr blu s ulr d c comp. Smpl à mr n œuvr ulson ds nos n UML + x lbr compréhnsbl pr ous Indspnsbl! documnr ls conrns s ssnl décr ls problèms l plus ô possbl Problèms mbgu, mprécs dffcl d xprmr clrmn ds conrns complxs dffcl d lr l x ux élémns du modèl jn Cln ulrs c2 Comp 3 4
Exmpl OCL Objc Conrn Lngug Cln sgnr 0..*..4 0..* ulrs CrBlu cod rrmx * * Comp numéro sold dmx..* Bnqu numéro Dsrbuur Consorum () L sold d'un comp n do ps êr nférur u découvr mxmum uorsé (2) L sgnr d'un cr blu ssocé à un comp s l ulr d c comp. (3) Un cr blu s ccpé dns ous ls dsrbuurs ds consorums d l bnqu. (4) Ls clns d'un bnqu non fflé à un consorum n puvn ps vor d cr blus...*..* 0..* 0..* OCL = Objc Consrn Lngug Rlvmn smpl à écrr à comprndr conx Vol nv nbplcsponllmnlbrs = von.nbplcs - rsrvons->slc(sconfrmé).nbpssgr->sum() Synx purmn xull sns symbols (mhémqus) érngs conx Vol nv sdéfn mpls rsrvons->forall( sconfrmé mpls spyé) 5 6 Exmpl Exmpl Cln sgnr 0..*..4 0..* ulrs CrBlu cod rrmx Comp numéro sold dmx * *..* Bnqu numéro Dsrbuur..*..* 0..* Consorum 0..* Cln sgnr 0..*..4 0..* ulrs CrBlu cod rrmx * * Comp numéro sold dmx Comp..* Bnqu numéro..* Dsrbuur..* 0..* Consorum 0..* -- () L sold d'un comp n do ps êr nférur u découvr mxmum uorsé conx c Comp conx Comp nv sold > dmx nv dmx >= 0 nv sold > -dmx -- (2) L sgnr d'un cr blu ssocé à un comp s l ulr d c comp. conx CrBlu nv slf.sgnr = slf.comp.ulrs 7 8
Exmpl Exmpl Cln sgnr 0..*..4 0..* ulrs CrBlu cod rrmx * * Comp numéro sold dmx Comp..* Bnqu numéro..* Dsrbuur..* 0..* Consorum 0..* Cln sgnr 0..*..4 0..* ulrs CrBlu cod rrmx * * Comp numéro sold dmx..* Bnqu numéro Dsrbuur..*..* 0..* Consorum 0..* -- (2) L sgnr d'un cr blu ssocé à un comp s l'un ds ulrs d c comp. conx CrBlu nv slf.comp.ulrs->ncluds(slf.sgnr) -- (3) Un cr blu s ccpé dns ous ls dsrbuurs ds consorums d l bnqu. conx CrBlu nv slf.dsrbuur = slf.comp.bnqu.consorum.dsrbuur->ss() 9 0 Exmpl Crcérsqus d OCL Cln sgnr 0..*..4 0..* ulrs CrBlu cod rrmx * * Comp numéro sold dmx..* Bnqu numéro..* 0..* Dsrbuur..* / dsrbuurspossbls conx CrBludsrbuursPossbls s(dsrbuur) drv slf.comp.bnqu.consorum.dsrbuur->ss() Consorum 0..* Lngg d'xprssons (fonconnl) Vlurs, xprssons, yps Formn ypé Ps d'ffs d bords Lngg d spécfcon, ps d progrmmon Hu nvu d'bsrcon Ps forcémn xécubl Prm d rouvr ds rrurs bucoup plus ô dns l cycl d v Pons fbls Ps uss rgourux qu ds noons formlls comm VDM, Z ou B => ps d pruvs possbls Pussnc d'xprsson lmé Pons fors Rlvmn smpl à écrr à comprndr Très bn négré à UML Bon comproms nr smplcé pussnc d'xprsson Pssg vrs dfférns pls-forms chnologqus 2
Conx d'un conrn OCL présnon déllé Conrn oujours ssocé à un élémn d modèl l conx d l conrn. Dux chnqus pour spécfr l conx Cln sgnr..4 0..* ulrs Comp numéro sold dmx conx Comp nv dmx >=0 nv sold > -dmx 0..* CrBlu * { n 0 } cod rrmx { nv dmx >= 0 nv sold > -dmx } { nv Comp.ulrs->ncluds(slf.sgnr)} conx CrBlu nv Comp.ulrs->ncluds(slf.sgnr) nv cod>0 nd cod<=9999 nv rrmx>0 conx Compsold ngr n floor(dpoinl * 0 / 00) 3 4 Invrns (nv) Exmpls d nvrns (nv) Prédc ssocé à un clss ou un ssocon Do êr vérfé à ou nsn L conx s défn pr un obj c obj pu êr référncé pr slf L nvrn pu êr nommé conx Prsonn nv pstropvux g < 0 nv slf.g >= 0 conx Prsonn nv g>0 nd slf.g<0 nv mrglégl mré mpls g > 6 nv nfnsok nfns->sz() < 20 nv no nfns-> ncluds(slf) nv nfns->ncludsall( flls) nv nfns->forll( slf.g -.g < 4 ) 5 6
Pré-condons pos-condons (pr, pos) Exprsson du corps d'un méhod (body) Prédcs ssocés à un opéron ls pré-condons dovn êr vérfés vn l xécuon ls pos-condons son vrs près l xécuon slf désgn l obj sur lqul l opéron à lu Dns un pos-condon @pr prm d fr référnc à l vlur vn l opéron rsul dsgn l rsul ocsisnw() ndqu s un obj n'xs ps dns l'é précédn conx Typopéron( prm Typ, ) Typ pr nom prm < pr nom2 pos nom2 rsul > Dscrpon n OCL d'un méhod sns ff d bord ({squry}) Equvln à un rquê conx Prsonncf( p Prsonn ) OrdrdS(Prsonn) body slf.ncsrs()->nrscon(p.ncsrs()) ->slc(sx = SxFmnn)- >sordby(ddnssnc) conx Prsonn df ncsrs S(Prsonn) = prns->unon(prns.ncsrs->ss()) 7 8 Exprsson d vlurs nls dérvés (drv) Typs Précsr n OCL l vlur nl courn d'un rbu ou d'un ssocon dérvé Complè l noon / conx Prsonncom Ingr n prns.ncom->sum() * % -- pock llownc drv f undrag hn prns.ncom->sum() * % -- pock llownc ls job.slry -- ncom from rgulr job ndf Typs d bs Ingr Rl Booln Srng Typs énumérés Typs consrus TuplTyp( x T, y T ) S(T) OrdrdS(T) Squnc(T) Bg(T) Collcon(T) Typs provnn d UML clsss ssocons Mé-yps OclTyp OclAny OclS OclExprsson 9 20
Synx ds xprssons Exprssons l OCL s un lngg smpl d xprssons consns dnfcur slf xpr op xpr xprobj. propobj xprobj. propobj ( prmrs ) xprcollcon -> propcollcon ( prmrs ) pckgpckglmn f cond hn xpr ls xpr ndf l vr yp = xpr n xpr l vr yp = xpr n xpr conx Prson nv l ncom Ingr = slf.job.slry->sum() n f sunmployd hn ncom < 00 ls ncom >= 00 ndf 2 22 A rnr Ingr Rl q. prm d ccédr à un propréé d un obj q -> prm d ccédr à un propréé d un collcon q prm d ccédr à un élémn d un pqug, d un clss, q Ds règls prmn d mxr collcons objs slf.mpôs(998) / slf.nfns->sz() slf.slr() - 00 slf.nfns->slc( sx = Sxmsculn ) slf.nfns->sempy() slf.nfns->forll(g>20) slf.nfns->collc(slr)->sum() slf.nfns.slr->sum() slf.nfns->unon(slf.prns)->collc(g) 23 Ingr vlurs, -5, 34, 24343,... opérons +, -, *, dv, mod, bs, mx, mn Rl vlurs.5,.34,... opérons +, -, *, /, floor, round, mx, mn L yp Ingr s «conform» u yp Rl 24
Booln Srng Booln vlur ru, fls opérons no, nd, or, xor, mpls, f-hn-lsndf L évluon ds opérurs or, nd, f s séqunll ru or x s oujours vr, mêm s x s ndéfn fls nd x s oujours fux, mêm s x s ndéfn (g<40 mpls slr>000) nd (g>=40 mpls slr>2000) f g<40 hn slr > 000 ls slr > 2000 ndf slr > (f g<40 hn 000 ls 2000 ndf) 25 Srng vlur, un phrs opérons = s.sz(), s.conc(s2), s.subsrng(,2) s.ouppr(), s.olowr(), nom= nom.subsrng(,).ouppr().conc( nom.subsrng(2,nom.sz()).olowr()) Ls chîns n son ps ds séquncs d crcèrs -( Srng <> Squnc(chrcr), l yp chrcr n'xs ps 26 Enuméron Elmn vs. snglon Ulson d un vlur d un yp énuméré JourMrd Opérons =, <> Ps d rlon d'ordr épous->noempy() mpls épous.sx = SxFmnn <<numron>> Jour Lund Mrd Mrcrd Jud Vndrd Smd Dmnch Dns ou lngg ypé l fu dsngur un élémn du snglon connn c élémn S{} Pour smplfr l nvgon OCL un convrson mplc s f lorsqu un opéron sur un collcon s pplqué à un élmn solé lm -> prop s équvln à S{lm}->prop slf->sz() = 27 28
Collcons Ulson ds collcons lors d l nvgon S S(T) Unqu, ps d'ordr OrdrdS OrdrdS(T) Unqu, ordr Bg Bg(T) Répéon, ps d'ordr Squnc Squnc(T) Répéon, ordr Collcon s l yp d bs Collcon(T) obj. nomdrol pour yp ou 0.. * {ordrd} * {nonunqu} * {ordrd, nonunqu} * X X X S(X) X OrdrdS(X) X Bg(X) X Squnc(X) 29 30 Exprssons d yp collcon Opérons rdonnlls sur ls collcons Exmpls S { 'lund', 'mrcrd', 'mrd' } Bg { 'lund', 'lund', 'mrd', 'lund' } OrdrdS { 0, 20, 5 } Squnc { 'lund', 'lund', 'mrd', 'lund' } Noon.. pour spécfr ds nrvlls Squnc {..5, 2..4 } Ul pour rélsr ds érons Squnc { 0.. nbégs- } -> forll( possèdarrê() ) Crdnlé coll -> sz() Vd coll -> sempy() Non vd coll -> nonempy() Nombr d occurrncs coll -> coun(lm) Apprnnc coll -> ncluds( lm ) Non pprnnc coll -> xcluds( lm ) Incluson coll -> ncludsall(coll) Excluson coll -> xcludsall(coll) Somm ds élémns coll -> sum() 3 32
Exmpls Opérons sur ls nsmbls S { 3, 5, 2, 45, 5 }->sz() Squnc {, 2, 45, 9, 3, 9 } ->coun(9) Squnc {, 2, 45, 2, 3, 9 } ->ncluds(45) Bg {, 9, 9, } -> coun(9) c->ss()->sz() = c->sz() c->coun(x) = 0 Bg {, 9, 0,, 2, 9, } -> ncludsall( Bg{ 9,,9} ) Unon ns -> unon( ns ) Inrscon ns -> nrscon(ns) Dfférnc ns - ns2 Ajou d un élémn ns -> ncludng(lm) Supprsson d un élémn ns -> xcludng(lm) Convrson vrs un ls ns -> ssqunc() Convrson vrs un sc ns -> sbg() Conv.vrs un ns. Ord. ns -> sordrds() 33 34 Flrg slc, rjc ny Flrg urs synxs coll -> slc( cond ) coll -> rjc( cond ) coll -> ny( cond ) slc rn ls élémns vérfn l condon (xnson d un prédc sur un nsmbl) rjc élmn cs élémns ny sélconn l'un ds élémns vérfn l condon opéron non dérmns ul lors d collcon n connn qu'un élémn rourn l vlur ndéfn s l'nsmbl s vd slf.nfns ->slc( g>0 nd sx = SxMsculn) slf.nfns ->rjc(nfns->sempy())->noempy() mmbrs->ny(r='présdn') Il s églmn possbl d nommr l vrbl d xplcr son yp slf.mployé->slc(g > 50) slf.mployé->slc( p p.g>50 ) slf.mployé->slc( p Prsonn p.g>50) slf.mployé->rjc( p Prsonn p.g<=50) 35 36
Qunfcurs forall, xss, on Qunfcurs urs synxs coll -> forall( cond ) coll -> xss( cond ) coll -> on( cond ) Qunfcur unvrsl xsnl slf.nfns->forll(g<0) slf.nfns->xss(sx=sxmsculn) slf.nfns->on(g>=8) Il s possbl d nommr l vrbl d xplcr son yp d prcourr plusurs vrbls à l fos slf.nfns->forll( g < slf.g ) slf.nfns->forll(.g < slf.g - 7) slf.nfns->forll( Prsonn.g < slf.g - 7) slf.nfns->xss(,2.g = 2.g ) slf.nfns->xss(,2.g = 2.g nd <>2 ) slf.nfns->forll(,2 Prsonn <> 2 mpls.prénom <> 2.prénom) 37 38 Uncé Img d un xprsson collc coll -> sunqu ( xpr ) Rourn vr s pour chqu vlur d l collcon, l xprsson rourn un vlur dfférn slf.nfns -> sunqu ( prénom ) à l plc d slf.nfns->forll(,2 Prsonn <> 2 mpls.prénom <> 2.prénom) Prqu pour défnr l noon d clé mporé d clé coll -> collc( xpr ) Corrspond à l mg d un foncon L xprsson s évlué pour chqu élémn L résul s un bg, s l'opéron s pplqué à un nsmbl ou un bg un séqunc, s l'opéron s pplqué à un séqunc ou un ns. Ord. slf.nfns->collc(g) = Bg{0,5,0,7} slf.mployés->collc(slr/0)->sum() 39 40
Img d un xprsson ur synx Collcons mbrqués Collc s un opéron d nvgon courn Pour smplfr on pu ulsr l rccourc suvn slf.nfns->collc(g) <=> slf.nfns.g Rppl l résul s un sc ou un séqunc à cus ds doublons S l on souh obnr un nsmbl slf.nfns.g->ss() Prm d nvgur slf.nfns.nfns.vours 4 Jusqu'à UML 2.0 ps d collcons d collcons! rgumn pu ulsé plus complx à comprndr ms à pl nuv lors d l nvgon slf.prns.prns ms à pl pr défu lé à l'opéron mplc collc A prr d UML 2.0 mbrcons rbrrs ds consrucurs d yps S( S(Prsonn) ) Squnc( OrdrdS(Jour) ) Très ul pour spécfr ds srucurs non rvls Rppors Documns XML, c. 42 CollcNsd Collcons ordonnés vs. rés L'opéron collc m à pl ls collcons (ul pour nvgr) CollcNsd prm d consrvr l'mbrcon nfns.nfns.prénom = nfns->collc(nfns)-> collc(prénom) = Bg{ 'prr', 'pul', 'mr', 'pul' } nfns->collcnsd(nfns.prénom) = Bg { Bg{'prr','pul'}, Bg{'mr','pul'} } Collcons ordonnés Squnc OrdrdS ms ps forcémn rés Squnc { 2, 23, 5, 5, 2 } Squnc { 5, 5, 2, 2, 23 } OrdrdS { 0, 4, 20 } OrdrdS { 4, 0, 20 } Squnc{..s->sz()-} -> forll( s.() < s.(+)) 43 44
Tr d'un collcon Irur générl Ir coll -> sordby( xpr ) L'érur l plus générl L'opéron < do êr défn sur l yp corrspondn à xpr Prm d rr un collcon n foncon d'un xprsson nfns->sordby( g ) nfns->sordby( nfns->sz() )->ls() l gs = nfns.g->sordby( ) n gs.ls() - gs.frs() L résul s d yp OrdrdS s l'opéron s pplqué sur un S Squnc s l'opéron s pplqué sur un Bg Aurs érurs (forll, xs, slc, c.) cs prculrs coll -> r( élém Typ ; ccumulur Typ2 = <vlur nl> <xpr> ) Exmpl nfns -> r( Enfn ; cc Ingr = 0 cc+.g ) Equvln n psudo cod à cc Ingr = 0 ; forch Enfn n nfns cc = cc+.g rurn cc 45 46 Opérons spécfqus u modèl obj d UML OCL spécfcés UML ccès à un rbu, à un opéron nvgon VIA un ssocon VERS un clss ssocv DEPUIS un clss ssocv VIA un ssocon qulfé ccès u yp supr yps ccès ux nsncs d un clss (xnson) ccès à l'é d'un obj consrucons pour ls pos condons 47 48
Accès à un rbu Accès à un méhod Nvgon VIA un ssocon obj. rbu Accès à un rbu slf.ddnssnc obj. méhod( xpr, xpr2, ) Accès à un méhod sns ff d bord slf.mpôs(998) obj. nomdrol Accédr à l nsmbl ds objs lés à un obj donné L yp du résul dépnd d l crdnlé d {ordrd} ou 0.. * {ordrd} * X X X S(X) X OrdrdS(X) slf.pèr s d yp Prsonn slf.vours s d yp S(Vour) slf.nfns s d yp OrdrdS(Prsonn) 49 50 Nvgon VIA un ssocon Nvgon VERS un ssocon Rppl un élémn s convr n snglon lorsqu un opéron sur collcon s pplqué slf.pèr->sz() = obj. nomdssocon Prm d ccédr à l nsmbl ds lns Prm d sr s l vlur s défn (l nsmbl vd rprésn l vlur ndéfn) slf.pèr->sempy() slf.épous->noempy() mpls slf.épous.sx = Sxfémnn S un ssocon n ps d nom d rôl lors on pu ulsr l nom d l clss dsnon Prsonn sx pèr 0.. épous 0.. Prsonn s.emplo p.emplo s.emplo->collc(slr)->sum() s.emplo.slr->forll(x x>500) mployé * 0..2 Emplo slr ugmnr() socéé Socéé 5 52
Nvgon VERS un ssocon réflxv Nvgon DEPUIS un ssocon obj. nomdssocon [ nomdrol ] S l ssocon s réflxv l fu ndqur l sns d prcours d l ssocon (pour évr l mbgué) ln. nomdrol Accès ux objs nrvnn dns un ln à prr d c ln, n ulsn l nom d rôl Il y oujours un un sul obj corrspondn Prsonn g mployés p.evluon[chfs] p.evluon[mployés] p.evluon[chfs].no -> sum() * * chfs Evluon no Prsonn mployé * 0..2 Emplo slr.mployé.socéé socéé Socéé s.emplo-> slc(slr<000).mployé 53 54 Nvgon v un Assocon Qulfé Opérons concrnn ls yps ln. nomdrol[ vlur, vlur, ] Accès qulfé Ou nsmbl d'objs lés (ln. nomdrol) Bnqu nc comp 0.. Comp obj. oclistypof( yp ) yp drc obj. ocliskndof( yp ) yp drc ou supryps Crcls c c2 Fgurs Polygons Trngls Crrés c b.comp[4029] b.comp obj. oclastyp( yp ) Convrson d yp (csng) c3 c4 2 p c2 55 56
Opérons concrnn ls yps Opérons défns sur ls clsss Conrns sur ls yps p.nfns->slc(oclistypof(fmm)) p.nfns->slc(ocliskndof(fmm)) Clss.propdclss Prm d ccédr ux propréés d clsss Accès ux propréés rdéfns.oclastyp(prsonn).nom Typg dynmqu p.nfns->slc(ocliskndof(fmm)).oclastyp(s(fmm)) ->slc(nomdjf <> nom) Prsonn nom Fmm nomdjf * nfns Clss.llInsncs Rourn l nsmbl ds nsncs d l clss c s à dr l xnson d c clss Prsonn.llInsncs->sz() < 500 Prsonn.llInsncs->forll(p,p2 p<>p2 mpls p.numscu <> p2.numscu) Prsonn.llInsncs->sUnqu(numscu) 57 58 Où ulsr OCL Défnons ddonnlls (df) OCL pu êr ulsé pour décrr ds prédcs nv nvrns d clsss nv sold < dcouvrmx pr pré-condons d opérons pr monnarrr > 0 pos pos-condons d opérons pos sold > sold@pr OCL pu églmn êr ulsé pour décrr ds xprssons df déclrr ds rbus ou ds opérons df nbenfnsingr n spécfr l vlur nl ds rbus n nfns->sz() body xprmr l corps d méhods {qury} body nfns->slc(g< ) drv défnr ds élmns dérvés (/) drv g<8 Il s possbl n OCL d défnr dns un clss xsn d nouvux rbus d nouvlls opérons conx Clss df nom yp = xpr df nomop( ) yp = xpr Ul pour décomposr ds rquês ou conrns complxs Ev d "pollur" l modèl conx Prsonn df ncrs() S(Prsonn) = prns->unon(prns.ncrs()->ss()) nv no ncrs()->ncluds(slf) 59 60
Exmpls Conrns sur l'é dns ls pos-condons conx Prsonnrrr( monn Ingr ) pr monn > 0 pos sold < sold@pr - monn conx Prsonnslr() ngr pos rsul >= LgslonslrMnmum conx CompgnmbuchEmployé( p Prsonn) Conr pr psprésn no mployés->ncluds(p) pos mbuché mployés = mployés@pr->ncludng(p) pos rsul.oclisnw() pos rsul.compgn = slf nd rsul.mployé = p @pr f référnc à l vlur d'un propréé dns l'é nl rsul f référnc u résul oclisnw ndqu qu l'obj n'xs ps dns l'é nl conx CompvrmnInrn( ds Comp, monn ngr ) Opéron pr monn>0 pr monn<slf.sold pr slf.ulr = ds.ulr pr slf.bnqu = ds.bnqu pos slf.sold < slf.sold@pr - monn pos ds.sold = ds.sold@pr + monn pos slf.oprons = slf.oprons@pr->ppnd(rsul) pos rsul.oclisnw nd rsul.monn = monn 6 62
Noons d bs 6. Proj logcl, procssus d dévloppmn, cycls d v Proj Un objcf Défn n rms d fournurs Un dél Ds moyns Acurs d un proj Mîrs d ouvrg (MOA) Mîrs d ouvrg délégué (MOAd) Mîrs d œuvr (MOE) Mîrs d œuvr délégué (MOEd) 2 MOA MOAd Enrprs ou srvc «cln» L socéé X décd d fr dévloppr un logcl d gson ds congés d son prsonnl. Prsonn yn n chrg l suv du proj pour l comp du cln (pr xmpl un rsponsbl produ) L socéé X décd d fr dévloppr un logcl d gson ds congés d son prsonnl. Mdm A. B. s chrgé d c opéron. 3 4
MOE MOEd (chf d proj) Enrprs ou srvc yn prs l nggmn d rélsr l proj pour l MOA L socéé X décd d fr dévloppr un logcl d gson ds congés d son prsonnl. Mdm A. B. s chrgé d c opéron. Ell lnc un ppl d offrs. Ell sélconn l socéé d srvcs ABLogcls. Prsonn chrgé pr l MOE pour mnr l proj Lson cln (MOA délégué) Evluon rssourcs Gson proj (évnullmn sssé pr un conrôlur) Décson d pssg d un ép du CV à un ur ABLogcls nomm Monsur Z chf d proj. 5 6 Cnux d communcon MOAd vs. MOEd MOA Mîr d ouvrg MOAd Mîr d ouvrg délégué Ulsurs MOE Mîr d ouvr MOEd Mîr d œuvr délégué (chf d proj) Equp proj Rôls complémnrs ms opposés MOAd L mllur produ u mllur prx (pour l cln) MOEd L mllur produ n rspcn l budg ls nggmns d dél Cus fréqun d échc d un proj MOAd = MOEd 7 8
Procssus d dévloppmn Eps cvés du procssus (modèl d Bohm) Ensmbl srucuré d cvés nécssrs u dévloppmn d un logcl. Tou procssus s srucuré n éps don Spécfcon (produc dsgn) défn c qu f l sysèm; Concpon mplémnon (dld dsgn, cod) défn commn s f l sysèm; Mnnnc ppor ds chngmns pour prndr n comp d nouvux bsons. A chqu ép corrspond un cvé d vldon ou vérfcon-s. Un modèl d procssus s un dscrpon bsr d un procssus. 9 Exmpl d modèl d procssus d dévloppmn Acvés Anlys bsons Concpon Progrmmon Vldon & vérfcon Prépron ds ss Gson proj/plnfcon Assurnc conrôl qulé - gson d vrsons Producon d documns 0 Eps Anlys bsons Spécfcon Archcur Progrmmon Ts Lvrson Mnnnc N ps confondr ép cvé lors d chqu ép, plusurs cvés puvn vor lu Exmpl Acvés d l ép d nlys ds bsons Eps du procssus Anlys bsons Eud xsn, défnon bsons ulsur, chr ds chrgs Concpon Eud d l répron HW/SW; nlys d rsqus d fsblé ds bsons, prooypg Progrmmon Prépron cquson ouls, plnfcon formons,... Vldon & vérfcon Réunons d vldon d documns Concpon d ouls d V&V Prépron ds ss Prépron ss ccpon (rc) Gson proj/plnfcon Conrs, chox CV, plnnng, smon rssourcs, mong équp proj Assurnc conrôl qulé - gson vrsons Eblssmn procédurs - pln qulé Chox oul gson vrsons Producon d documns Chr ds chrgs, Pln Qulé, Pln d dévloppmn, Pln d ss d ccpon Anlys ds bsons Défnon du bson du cln «Ingénr ds bsons» Défnon du problèm ds conrns d s résoluon 2
Eps du procssus Eps du procssus Spécfcon Concpon du produ Défnon d l soluon (c qu on v rélsr, ps commn on v l rélsr). Un mnul ulsur pu d ors déjà êr écr. Concpon globl Archcur nrn du produ (cln-srvur, objs ) Défnon d l rélson (commn on v rélsr l produ). 3 4 Eps du procssus Eps du procssus Concpon déllé-codg Algorhms, progrmms Rélson. Eps d s Vérfcon d l conformé du produ ux spécfcons Ts unr (foncons, moduls, clsss) Ts d négron (composns, sous-sysèms) Ts sysèm (nsmbl du produ) vn lvrson Ts d ccpon (nsmbl du produ) à l lvrson 5 6
Modèls d procssus Exmpl d procssus n cscd Modèl d procssus = orgnson ds éps Modèl n cscd ( wrfll ) Modèls érfs ncrémnux Modèl orné réulson L plupr ds gros projs dopn plusurs modèls Sourc Sommrvll 7 8 Anlys ds bsons Spécfcons xrns Concpon globl Procssus «n V» prépron Concpon déllé Codg Ts d ccpon Ts sysèm Ts d négron Ts unr Procssus n V Ls rours vrs un ép nérur son coûux. L plus souvn lmés à n- (rour à l ép précédn). S rms n cus nécssn un rour plus mporn On nvsg un vrson rédu On rrê l proj Cs d pplcon ndusrlson d un prooyp ms n fbrcon d un produ dévloppmn mul-ss plus générlmn, s ls bsons son précs, ls déls srcs ou bn l orgnson ds équps d dévloppmn xg un plnfcon src. 9 20
Modèls érfs Modèl ncrémnl Modèl ncrémnl Anlys ds bsons Anlys ds bsons Spécfcon défnon ncrémns Iéron sur concpon - codg - s Lvrson (d l nsmbl ou pr ncrémns) Spécfcons xrns Concpon Codg Ts Lvrson Avngs Prs n comp du chngmn ds bsons fclé. Mons d documnon qu pour l modèl n V. Vldon cln fclé. L cln pu vor rpdmn ds démos. Lvrson (prll) rpd possbl. L cln puvn ulsr plus rpdmn l produ. Inconvénns Procssus mons «vsbl». Mons d documnons, donc mons d élémns ngbls pour évlur l vncmn. A rm, l négron d nouvux ncrémns fn pr dégrdr l qulé globl du produ. 2 22 Bohm s sprl modl of h sofwr procss Modèl n sprl (Bohm) Chqu boucl d l sprl s un ép du procssus. Ps d phss fgés. Gson ds rsqus xplc. L modèl n sprl éé l précursur ds modèls érfs. Il s ujourd hu rrmn ulsé l qul. 23 24
Prooyps mqus Modèl vc prooypg Prooyp Offr ls prncpls foncons du logcl fnl Archcur «provsor» Prooyp xploror Pour éud d fsblé Jbl ( pror) Prooyp évoluf Prmr ncrémn d un CV ncrémnl Mqu A l pprnc xrn du logcl N offr ps d foncons Anon ux fréquns confusons nr «prooyp» «mqu» Anlys ds bsons Iéron sur Exprsson bsons Spécfcon prooypg On pss à l concpon globl qund ls bsons ls spécfcons on éé vldés Spécfcons Prooypg Concpon Codg Anon ux prooyps xplorors qu dvnnn évolufs Ts Lvrson 25 26 Fcurs d chox d un yp d procssus Procssus ornés réulson Nur du produ vsé (logcl sur msur, produ grnd publc, ) Rsqus lés ux bsons, ux spécfcons, à l fsblé Fvorsn l ulson sysémqu d composns xsns ( sur égèr ). Conrns cln Conrns nrns à l équp 27 28
Anlys ds bsons Suon dns l cycl d v prépron Ts d ccpon 7. Anlys ds bsons Spécfcons xrns Concpon globl Concpon déllé Ts sysèm Ts d négron Ts unr Codg Ls cvés d nlys d bsons s sun ssnllmn u débu du CV L rspc ds bsons s un préoccupon consn jusqu à l fn du proj 2 Acvés d l ép d nlys ds bsons Anlys ds bsons - chr ds chrgs Anlys bsons Eud xsn, défnon bsons ulsur, chr ds chrgs Concpon Eud d l répron HW/SW; nlys d rsqus d fsblé ds bsons, prooypg Progrmmon Prépron cquson ouls, plnfcon formons,... Vldon & vérfcon Réunons d vldon d documns Concpon d ouls d V&V Prépron ds ss Prépron ss ccpon (rc) Gson proj/plnfcon Conrs, chox CV, plnnng, smon rssourcs, mong équp proj Assurnc conrôl qulé - gson vrsons Éblssmn procédurs - pln qulé Chox oul gson vrsons Producon d documns Chr ds chrgs, Pln Qulé, Pln d dévloppmn, Pln d ss d ccpon Dns un mond dél L cln (MOAd) produ l chr ds chrgs vn l débu du proj Dns l mond rél Chr ds chrgs écr conjonmn pr l cln (MOAd) l chf d proj (MOEd) Objcf Avor un compréhnson commun ds bsons du cln Dsposr d un documn compl couvrn ls bsons dns ou lur mplur Bsons fonconnls Bsons non fonconnls (prformncs, rgonom...) 3 4
Typs d bsons Bsons fonconnls Bsons fonconnls Défnon ds foncons à rélsr («domn fonconnl») Défnon ds nformons mnpulés («domn ds nformons») Conrns d nrfc Conrns opéronnlls Conrns chnqus Exgncs d qulé Exgncs d documnon Exgncs d prformncs Exgncs d sûré Exgncs d fblé Exgncs d mnnblé... Conrns économqus Conrns d plnnng Exgncs d vérfcon - rc Défnon ds foncons ndus Défnon ds nformons mnpulés Prg ds foncons nr mérl logcl Compormn n cs d défllnc Compormn s nrés nvlds 5 6 Conrns d nrfc Conrns opéronnlls Inrcons vc ds composns logcls déjà xsns Oblgon d lr ds nrés sous un form donné, à un vss donné, sur un por donné... Oblgon d produr ds sors dns un form mposé, dns un por spécfqu...... Inrcons vc ls composns mérls Bson d plor l composn mérl (lngg d communcon) Bson d nr comp ds conrns d fonconnmn (mps d répons p.x.) Communcon synchron/synchron... Conrns d xécuon Typ d rmnux ulsés (cpcé d clcul, d ffchg,...) Défnon du profl ds ulsurs Nombr d ulsurs Nombr d ulsurs smulnés (mn, mx) Qulfcon ds cégors d ulsurs Lngus mîrsés pr ls ulsurs Ad ux ulsurs Ad conxull ou non Mssgs d rrur Idnfcon ds opérons rronés ds mssgs corrspondns 7 8
Conrns chnqus Exgncs d qulé Lnggs d progrmmon à ulsr Nvu d crfcon du complur Conrns d porblé Typ ds mchns d dévloppmn Typ ds mchns d s... Arbus d qulé rqus pr l cln Exgncs d documnon Exgncs d prformncs Exgncs d sûré Exgncs d fblé Exgncs d mnnblé... 9 0 Exgncs d prformnc Exgncs d sûré, d fblé Exgnc d prformnc ou bson ffcn un vlur numérqu à un vrbl «L mps d répons d l foncon f s cpl pour l bon fonconnmn du sysèm» n s ps un xgnc d prformnc l fu donnr un vlur ls condons dns lsqulls c vlur s rqus! «L mps d répons d l foncon f do êr oujours nférur à 2 sconds qund l nombr d ulsurs conncés s nférur à 500» Sûré Sécuré Inégré Confdnlé Spécfcon du mps d srvc sns nrrupon En moynn Dns l cs l plus fvorbl Dns l cs l plus défvorbl 2
Exgncs d documnon Conrns économqus - plnnng Documns fsn pr ds fournurs du proj Norms d rédcon à rspcr Exgncs d mnnblé Modfcons/évoluons ndus ds bsons ds ulsurs Evoluons du mérl 3 Agssn sur ous ls urs bsons Rchrch d comproms Exgncs d vérfcon Norms d vérfcon / s mposés pr l domn d l pplcon Défns Aéronuqu Énrg nuclér 4 Rédcon du chr ds chrgs Compléud du chr ds chrgs Défnon - movons L CdC s l documn défnssn l problèm uqul l proj logcl do pporr un soluon. Il décr ls bsons ls xgncs d l ulsur. Qulés ssnlls d un CdC Non mbgu Compl Cohérn Tsbl Compréhnsbl pr ds non-spéclss Tous ls bsons dovn êr rés L répons du sysèm à ou nré (y comprs rroné) s spécfé (uopqu) S A ppll B B ncf, lors B sonn S A ppll B B ncf, lors B sulmn B sonn Compléud rès dffcl à vérfr Anon à l surspécfcon (rsrcon du bson) Consls pour compléud Form d dscrpon sndrd ds nformons mnpulés Srucurr ls nformons Hérrchsr ls nformons 5 6
Exmpl d pln yp d chr d chrgs Tsblé du chr ds chrgs Inul d xprmr ds bsons s on n s ps vérfr lur ssfcon. Pour chqu bson lsr ls moyns d vérfcon corrspondns ls résuls ndus. Compréhnsbl pr ds non-spéclss Ulson d noons normlsés Accompgnr d xplcons nformlls L ulson d noons normlsés (UML, ) ppor d l précson nlèv ls mbguïés. C ulson n d nérê qu s l modèl s comprs pr ou l mond Anon n ps smplfr l bson pour obnr un bon dgrmm! Chpr Glossr Chpr 2 Défnon succnc produ Modèl d cs d ulson du sysèm xsn, dgrmm d clsss... Chpr 3 Modèl du domn Dgrmms d clsss Dgrmms d objs pour llusrr Conrns sur ls dgrmms Chpr 4 Modèl d cs d ulson du sysèm vsé Acurs Lms du sysèm Cs d ulson Crns conrns non fonconnlls puvn êr ncluss dns ls cs d ulson. Dgrmms d séqunc pour donnr ds xmpls d déroulmn ds cons Dgrmms d é Chpr 5 Exgncs non fonconnlls llusrés sur ls CU Aspcs d compblé vs à vs ds évoluons ds logcls du mérl Aspcs d rgonom Prformncs Inégré Confdnlé Procons nformons foncons - lmons d ccès Polqus d procon dns nrprs Aspcs jurdqus Fblé Tolérnc ux pnns Mnnblé Tsblé Flxblé... Chpr 6 Conrns d dévloppmn d mnnnc Chpr 7 Évoluons nvsgés vc prorés ds Nouvux cs d ulsons, dgrmms, conrns... 7 8 Aur xmpl d pln (Sommrvll) Th srucur of rqurmns documn Chpr Prfc Inroducon Glossry Usr rqurmns dfnon Sysm rchcur Dscrpon Ths should dfn h xpcd rdrshp of h documn nd dscrb s vrson hsory, ncludng ronl for h cron of nw vrson nd summry of h chngs md n ch vrson. Ths should dscrb h nd for h sysm. I should brfly dscrb h sysm s funcons nd xpln how wll work wh ohr sysms. I should lso dscrb how h sysm fs no h ovrll busnss or srgc objcvs of h orgnzon commssonng h sofwr. Ths should dfn h chncl rms usd n h documn. You should no mk ssumpons bou h xprnc or xprs of h rdr. Hr, you dscrb h srvcs provdd for h usr. Th nonfunconl sysm rqurmns should lso b dscrbd n hs scon. Ths dscrpon my us nurl lngug, dgrms, or ohr noons h r undrsndbl o cusomrs. Produc nd procss sndrds h mus b followd should b spcfd. Ths chpr should prsn hgh-lvl ovrvw of h ncpd sysm rchcur, showng h dsrbuon of funcons cross sysm moduls. Archcurl componns h r rusd should b hghlghd. Chpr Sysm rqurmns spcfcon Sysm modls Sysm voluon Appndcs Indx Dscrpon Ths should dscrb h funconl nd nonfunconl rqurmns n mor dl. If ncssry, furhr dl my lso b ddd o h nonfunconl rqurmns. Inrfcs o ohr sysms my b dfnd. Ths mgh nclud grphcl sysm modls showng h rlonshps bwn h sysm componns nd h sysm nd s nvronmn. Exmpls of possbl modls r objc modls, d-flow modls, or smnc d modls. Ths should dscrb h fundmnl ssumpons on whch h sysm s bsd, nd ny ncpd chngs du o hrdwr voluon, chngng usr nds, nd so on. Ths scon s usful for sysm dsgnrs s my hlp hm vod dsgn dcsons h would consrn lkly fuur chngs o h sysm. Ths should provd dld, spcfc nformon h s rld o h pplcon bng dvlopd; for xmpl, hrdwr nd dbs dscrpons. Hrdwr rqurmns dfn h mnml nd opml confgurons for h sysm. Dbs rqurmns dfn h logcl orgnzon of h d usd by h sysm nd h rlonshps bwn d. Svrl ndxs o h documn my b ncludd. As wll s norml lphbc ndx, hr my b n ndx of dgrms, n ndx of funcons, nd so on. 9 20