09.07.2015 Views

Programmatūras attīstības tehnoloģijas:

Programmatūras attīstības tehnoloģijas:

Programmatūras attīstības tehnoloģijas:

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Programmatūras attīstībastehnoloģijas:Objektorientēta tehnoloģijaVienota modelēšanas valoda (UML)Modeļvadāma arhitektūra (MDA)Dr.sc.ing., asoc. prof. Oksana ŅikiforovaDITF LDILietišķo datorzinātņu katedraRīga - LV1048, Meža 1/3, 510.kab., tel.708 95 98oksana.nikiforova@cs.rtu.lv


2.Datu modelēšana• Relāciju modelis [Codd 1970], Date [1986]• Relāciju modeļa populārāka notācija – t.s. ER (entity-relationship) diagramma [Chen1976]• ER diagramma satur informāciju par entītijām, attiecībām starp tām un to atribūtiem• Galvenā priekšrocība: instrumentālo līdzekļu relatīvā vienkāršība• Pamattrūkumi:Netiešā datu tipizācija, kas seko tikai no attiecību nosaukumaAttiecību loģikas sekundārā loma• ER diagrammas paplašinājums [Hull, King 1987] ar papildus attiecību tipiemVārds,UzvārdsPKMācībulaiksGrupasnumursMācībuadresePasniedzējsatbilst1 mācā 11mācāsGrupa1M1mācās1KursantsNmācā1Mācību klaseInstruktors1Reģistrācijas lapaVārds,UzvārdsPKVārds,UzvārdsPKOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


3.Dinamikas modelēšana• Finite sate machine, Petri-nets• Dinamikas modelēšanas populārāka notācija – Stāvokļu diagramma(statechart) [Harel 1987]• Stāvokļu diagramma satur informāciju par notikumu secību, stāvokļu maiņuun stāvokļa kontekstu.• Stāvokļu diagrammas paplašinājums – stāvokļu iegremdēšana (nesting), kasveicina hierarhijas ieviešanu diagrammās un ļauj saprast sistēmas uzvedībudažādos abstrakcijas līmeņosSuperstāvoklisDatu saņemšanaNotikumspieprasīta jaunā grupaSākumstāvoklisdo: pieprasītpasniedzēju slodzido: pieprasīt klašuslodzisaņemta pasn. slodzesaņemta kl. slodzedo: formētgrupunosūtīti grupas datido: reģistrētkursantu grupāsaņemti kursanta datido: pieprasītkursanta datusBeigustāvoklisDarbībaPārējaStāvoklisOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


4.Procesu modelēšana• Tom Demarco ir strukturālāsprojektēšanas tēvs [1976] un EdYourdon ir datu plūsmu ieviešanasprogrammatūras izstrādes procesāveicinātājs [1979]• Procesu modelēšanas populārākanotācija – datu plūsmu (data flow)diagramma• Datu plūsmu diagramma saturinformāciju par procesiem, datuplūsmām, datu glabātuvēm unaktieriemprocessdatuplūsmaaktierisdatukrātuve• Mūsdienās populārāka procesumodelēšanas joma ir biznesaprocesu modelēšanaOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


5.Objektorientētas tehnoloģijas attīstība• Objektorientētas pieejas pamatlicēji ir senie grieķi [J.Osis 2001]• 1968.gads Nygaard un Dahl darbi valodā Simula• Līdz 1980.gadu vidu objektorientēti darbi tika fokusēti uz objektorientētu kodēšanu• 1980.gados parādījās objektorientētas programmēšanas valodas Smaltalk, C++, Ada• 80.gadu beigās tika konstatēts, ka objektorientācija ir tik pat svarīga jau sistēmasanalīzē un projektēšanā, kā programmēšanas fāzē• 1986.gads pirmais raksts par programmatūras izstrādes pilna dzīves ciklaobjektorientētām iestrādēm, autors - Grady Booch• 1988.-1994.gadi – objektorientētas sistēmas analīzes un projektēšanas metodes• Viens no galvenajiem A&P uzdevumiem ir sistēmas modelēšana un lielu metožu skaitadēļ ražošanā nebija saskaņas: kādu no modelēšanas tehnikām uzskatīt par standartamodelēšanas tehniku• 1994.gadā notika pirmais metožu apvienojums: Grady Booch, James Rumbaugh un IvarJackobson (no 1995.gada) apvienoja savus izstrādājumus• 1996.gads – konsorcijs no 12 kompānijām – lai izveidotu vienotas modelēšanas valodasUML (Unified Modelling Language) specifikāciju• 1997.gads UML 1.1 pasludināta par standartu programmatūras izstrādē• 2004.gads UML 2.0 versija – joprojām turpinās attīstība• 2005.gada beigas UML 2.0 versija beidzot ir oficiāli pieņemtaOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


6.Objekts• No cilvēka viedokļa: Sataustāms un (vai) redzams priekšmets Kaut kas, uztverams ar domāšanu Kaut kas, uz ko ir virzīta doma vai darbība• Objekts ir konkrēts, identificējams priekšmets, vienībavai būtība (reāla vai abstrakta), kurai ir tieši nodefinētsfunkcionālais aprīkojums dotajā problēmvidē.• “Objekts” jeb “Klases eksemplārs”Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


7.Objektorientētas pieejas koncepcijas• Objekts ir reālas pasaules būtība. Objektam ir stāvoklis un uzvedība.• Objekta stāvoklis ir objekta īpašības (atribūti) ar to tekošām vērtībām.• Objekta uzvedība ir darbība, ko veic objekts vai ko ar viņu veic citi objekti.s1s1name = Juris OzolsstudNum = 921D10888course = 1learn ( )name = Juris OzolsstudNum = 921D10888course = 2learn()learn()Operācijas learn() rezultātā objekts s1 pāriet citā stāvoklīObjekta identiskums ir tā objekta īpašība, kas atšķir viņu no citiemobjektiem.Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


8.Objektorientētas pieejas koncepcijas• Objektu klasifikācija Objekti ar līdzīgu datu struktūru (atribūtiem) un uzvedību (metodēm) irapvienoti klasēs. Tā ir galvenā objektorientācijas filozofija meklēt objektus ar līdzīgiematribūtiem un metodēm un apvienot tos klasē. Iekapsulēšana – ir klases atribūtu un metožu realizācijas slēpšana klasesiekšienē (klases definīcijā).• Klašu specificēšana Deklarācija – klases struktūras (atribūtu) un uzvedības (metožu)apraksts. Definīcija (jeb realizācija) – klases uzvedības (metožu) izpildīšanasapraksts. Izmantošana – klases metožu pielietošana mijiedarbībā ar citu klašuobjektiem.Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


9.Objektorientētas pieejas koncepcijas• Attiecības starp objektu un klasi ir tas pats kā attiecības starp mainīgo untipu klasiskajā programmēšanā.• Klasei ir nosaukums, atribūti un metodes.• Objekts (klases eksemplārs) ir veidots piešķirot klases atribūtiem noteiktasvērtības (objekta inicializācija).s1name = Juris Ozolscourse = 1learn()s2name = Sanda Eglecourse = 1learn()Oksana ŅikiforovaStudent- name : char*- course : int+ void learn()class Student {private:char *name;int course;public:void set_name (char *n) {name=n;}char* get_name () {return name;}void set_course(int c) {course=c;}int get_course() {return course;}void learn() {course+=1;}};void main(){Student s1;s1.set_name(“Jānis Ozols”);s1.set_course(1);s1.learn();}“Programmatūras attīstības tehnoloģijas”


10.Objektorientētas pieejas koncepcijasMantošana – attiecības starp klasēm, kad viena klase atkārto citas klasesstruktūru un uzvedību. Klase (kas ir saukta apakšklase) var mantot īpašībasun metodes no citas klases (kas ir saukta superklase).People# name : char*# age : int+ void live ()Student- course : int+ void learn()class People {protected:int age;char *name;public:void live() {age += 1;}int get_age() {return age;}void set_age(int value) {age = value;}char * get_name() {return name;}void set_name(char *value) {name = value;}};class Student : public People {private:int course;public:void learn() {course += 1;}int get_course() {return course;}void set_course(int value) {course = value;}};Atkārtota lietošana ir viena no objektorientētas pieejas priekšrocībām, kasnodrošina izstrādāto komponentu atkārtotu izmantošanu programmatūras izstrādē.Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


11.Objektorientētu metožu attīstība2001UML 2.02000 OPEN-2000199919981997OPENUML&RUPUML 1.3UML 1.1 (standart)JavaUML 1.0RD 96199619951994199319921991RubinODA-92ReenskaugOORAM-95ReenskaugOORASSDA-92Wirfs-Brock19901989Wirfs-BrockRDD-90CRCBeck CRC-89RoleNersonBON-95NersonBON-92EiffelOMEGA OPEN-96GrahamSOMA-95Henderson-SellersOOLC 1991GrahamSOMA-91CoadPSA-95Henderson-SellersMOSES Sellers 1994BerardProcessPatternsCoad-NicolaOOP-93Syntropy94Coad-YourdonOOA/OOD-91Coad-YourdonOOA-90Catalysis95FormalmethodsCoad&YourdonFusionFusion94DP 1995OMT-2UML 0.9UM ver. 0.8Booch OODC++ 93C++JacobsonOOSE-92Rumbaugh OOA/OODBooch- 91OMT-91Use caseRumbaughJacobsonEmbleyHOOD3.1Shlaer-MellorRD - 95Shlaer-MellorOLH - 92Martin&OdellColbert198819871986SmallTalk(c) Nikiforova 2001De Marco DFD - 1979HarelStatecharts - 87BoochAda - 86GOODAda - 86Ada - 83Shlaer-MellorOOA - 88Shlaer&MellorChen ERmodel - 87Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


12.Vienota modelēšanas valoda UMLObjektu diagrammaBooch OODAKlašu diagrammax11xStāvokļu pārējudiagramma* !Laika sadales diagrammaKomponenšudiagrammaModuļudiagrammaMijiedarbības diagrammaProcesudiagrammaKlašu diagrammaAktivitāšudiagrammaIzversumadiagrammaStāvokļu diagrammatimeSecību diagramma"Use case"diagrammaUMLKlašudiagrammaDinamiskais modelisOksana ŅikiforovaRumbaugh OMTFunkcionālais modelisJacobson"Use Case""Use case"diagramma(c) Ivasjuta 1997“Programmatūras attīstības tehnoloģijas”


13.UML rašanas vēstureOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


14.Vienota modelēšanas valodaUnified Modelling Language (UML)• Lietošanas gadījumu diagramma (usecasediagram)• Klašu diagramma (class diagram)• Uzvedības diagrammas: Mijiedarbības diagrammas:• Secību diagramma (sequence diagram)• Sadarbības diagramma (colaboration diagram) Aktivitāšu diagramma (activity diagram) Stāvokļu diagramma (statechart diagram)• Realizācijas diagrammas: Komponenšu diagramma (component diagram) Izvērsuma diagramma (deployment diagram)Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


Objektorientētas programmatūras vispārēja uzbūve(UML)15.[ ... ][ ... ]Aktivitāšudiagramma...Stāvokļudiagramma(c) Nikiforova 2002Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


16.Lietošanas gadījumu diagrammaLietošanas gadījumu diagramma attēlo sistēmas ārējo uzvedību: sistēmā paredzētasdarbības (lietošanas gadījumus), to apkārtni (aktierus) un attiecības starp tiem.Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


17.Lietošanas gadījumu diagrammas piemērsOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


18.Mijiedarbības diagrammas• Objektorientētā pieejā objektu mijiedarbība tiekapskatīta informācijas apmaiņas kontekstā. Šīinformācija ir atspoguļota ziņojumu formā, t.i. objektiviens otram sūta ziņojumus un reaģē uz tā saņemšanu• Objektu mijiedarbību modelē ar divu diagrammu veidupalīdzību: secību diagrammām un sadarbības diagrammāmOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


19.Mijiedarbības diagrammasSecību diagramma satur objektus unziņojumus starp objektiem un parādakā ir realizēta objektu uzvedībakonkrēta lietošanas gadījumarealizācijā.Sadarbības diagramma saturobjektus, ziņojumus un attiecībasstarp objektiem un parāda netikaiziņojumu sūtīšanas secību, bet arīstrukturālās attiecības starpobjektiem, kas piedalās šajā secībā.Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


20.Secību diagramma (“Autorizācija”)Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


21.Secību diagramma (“Apskatīties konta stāvokli”)Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


22.Secību diagramma (“Izņemt naudu”)Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


23.Sadarbības diagrammaOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


24.Sadarbības diagramma (ar klašu stereotipiem)• Klase-būtība (class-entity) – reālās pasaules būtības un iekšējie sistēmas elementi, kasnav atkarīgi no mijiedarbības ar ārējo vidi• Robežklases (boundary-class) – nodrošina apkārtējas vides mijiedarbību ar iekšējiemsistēmas elementiem. Lai noteiktu robežklases studē lietošanas gadījumu scenārijus unmeklē klases, kas nāk mijiedarbībā ar aktieriem.• Vadības klase (control-class) kalpo lietošanas gadījumu uzvedības modelēšanai unnotikumu koordinācijai.Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


25.Klašu diagramma• Klašu diagramma parāda modeļa statisko struktūru: būtības, kas eksistēsistēmā, to iekšējo uzbūvi un attiecības ar citām sistēmas būtībām.• Klases diagrammas pamat elementi ir klases un attiecības starp tām.• Klases attēlošanai ir izvēlēta James Rumbaugh piedāvāta konstrukcija –sadalīts trīs daļās taisnstūris:Augšējā daļā ir parādīts klases nosaukums.Klases struktūra ir parādīta ar atribūtu (īpašību) kopu.Klases uzvedība ir parādīta ar metodēm (operācijām).• Realizācijas līdzekļi nodrošina to, kā operācijas uzreiz ir piesaistītas pieklasēm (ievērojot objektu grupēšanu), tā kā secību diagrammas parādaobjektu uzvedību.Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


26.Klašu diagrammas veidošanaSadarbības diagrammaObject1:Class1Object2:Class2Konceptuālais modelisClass1attribute1attribute2attribute3Class2attribute1attribute2attribute3Class3attribute1attribute2attribute3Object3:Class3Object4:Class1Class4Class5Class6attribute1attribute2attribute3attribute1attribute2attribute3attribute1attribute2attribute3Klases, metodes, asociācijasKlases nosaukums, atribūtiClass3attribute1attribute2attribute3method1method2…Class1attribute1attribute2attribute3method1method2…Klašu diagrammaClass2attribute1attribute2attribute3method1method2…Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


27.Klašu diagrammaOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


28.Klašu diagrammaOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


29.Stāvokļu diagramma• Stāvokļu diagrammas atspoguļoklašu objektu uzvedību(stāvokļu maiņu).• Stāvokļu diagrammas veido pēcobjektu mijiedarbībasnoteikšanas, jo veidojotstāvokļu diagrammu var rastiesnepieciešamība ievietot jaunuoperāciju• Stāvokļu diagrammas elementiir stāvoklis, pāreja un notikumsOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


30.Stāvokļu diagrammarāda sākumlogudo/start()ielikta kartiņa(the_Exp_Date,the_Bank_ID,the_Account_Num)paziņo par kartiņasnederīgumuentry/ izstumt kartiņudo/ cancel()paziņo par nepareizo PINentry/ izstumt kartiņudo/ cancel()paziņo par darbības beigāmentry/ izstumt kartiņudo/ cancel()pārbauda kartiņasderīgumudo/ check()[kartiņas dati neder][PIN ir nepareizs]izstumt kartiņu[the_tranzaction = cancel][kartiņas dati der]piedāva ievadīt PINdo/ paziņojums uzekrānaPIN koda ievadenolasa PINentry/ mainīt ciparu attēlojumu uz *do/ nolasīt PINexit/ mainīt cipāru attēlojumu uz cipariempārbauda PINdo/ check_PIN()nolasīts PIN (the_PIN)[PIN ir pareizs]piedāva izvēlētiesoperācijudo/ select_tranz()[the_tranzaction =review_account] [the_tranzaction =get_money]... ...Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


31.Aktivitāšu diagramma• Aktivitāšu diagrammas attēlosistēmas operāciju algoritmiskoun loģisko realizāciju, kā arībiznesprocesu modelēšanai.• Aktivitāšu diagramma irveidota sistēmas uzvedībaikopumā (attēlo vadības plūsmasstarp funkcijām sistēmā) vainoteiktai funkcijai (attēloplūsmas noteiktas funkcijasiekšienē).• Aktivitāšu diagrammas elementiir stāvoklis, pārēja, izvēle unsinhronizācijas līnija.Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


32.Aktivitāšu diagramma kopējam procesampieprasīt ieliktkartiņupārbaudīt kartiņasderīgumuizstumt kartiņu[ der ]pārbaudīt PINpareizību[ pareizs ][ neder ][ nepareizs ]piedāvāt izvēlētiestranzakciju[ konta stāvoklis ][ izeja ][ nauda ]apstrādāt kontaapskatīšanuapstrādāt naudasizņemšanuOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


33.Realizācijas diagrammas• Komponentu diagramma aprakstasistēmas arhitektūru (uzbūvi),attēlojot savstarpējas atkarībasstarp elementiem.Viens komponents atbilst vienam failamDiagramma sastāv no komponentiem,interfeisiem un atkarībām• Izvērsuma diagramma parāda kurtieši (platformā, rīkos, mezglos)izvietojas sistēmas komponentiKonstruēšana nepieciešama:• ja sistēma tiks realizēta lietošanai tīklā• ja sistēmā ir paredzēta integrācija arInternetDiagrammas elementi ir procesori,ierīces un saites starp tiemOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


34.Komponentu diagramma (component diagram)Environment.cppEnvironment.hATM.hCentralComp.hBank.hAccount.hATM.cppCentralComp.cppBank.cppAccount.cppIzvērsuma diagramma (deployment diagram)ATMSystemCentralComputerBankCom puterOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


35.Modeļvadamā arhitektūra• Model Driven Architecture (MDA)• Object Management Group (OMG).• Programmatūras sistēmasspecificēšana, kas atdala sistēmasfunkcionēšanas aspektus no tāsrealizācijas aspektiem specifiskajāplatformāVeidot no platformas neatkarīgo modeli(Platform Independent Model – PIM),modeli, kas ir neatkarīgs no realizācijastehnoloģijasTransformēt PIM vienā vai vairākosmodeļos – Platformspecifiskos modeļos(Platform Specific Model - PSM),modelis, kas ir piemērots sistēmasspecificēšanai realizācijas konstrukcijaselementos, pieejamos konkrētajārealizācijas platformāTransformēt PSM kodā, kas irautomātiskā koda ģenerācija, jo PSMsatur visas tai nepieciešamas detaļasOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


36.Modeļvadamā arhitektūraAbstrakcijas līmenisCIMNeatkarīgs noaprēķiniem modelis(computation independent model)PIMNeatkarīgs no platformām modelis(platform independent model)PSMSpecifisks noteiktai platformai modelis(platform-specific model)programmatūras kodsModeļu transformācijasBiznesa sfēras formālsaprakstsNeatkarīgs no platformāmprogrammtūras formāls apraksts.Ir ievērotās sistēmas robežas,programmatūras arhitektūra.Programmatūras projektējumskādai noteiktai platformai(c) Nikiforova, Kuzmina, Pavlova 2006Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


37.Kodēšana pret modelēšanuOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


38.Tradicionālā modelēšana un izstrādeOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


39.Bāzēta uz MDA modelēšana un izstrādeOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


40.MDA realizācijas līdzekļiOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


41.MDA realizācijas līdzekļiDSLADL/ ASLUMLCWMArhitektūrasAnalīzesProjektēšanasAktivitāšu ... semantikaUML profils priekš EJBUML profils priekš CORBA...UMLJava/EJBCORBA IDLOksana Ņikiforova“Programmatūras attīstības tehnoloģijas”


42.MDA transformācijas virkneŠodien iespējamā MDA realizācija:Oksana Ņikiforova“Programmatūras attīstības tehnoloģijas”

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!