Տարբեր. Delphi-ի և Rational Rose-ի համատեղ օգտագործման օրինակ

Երբ թագավորական գեղեցկուհի Էլֆը մագլցող վարդը ծաղկում է, բոլորը շունչը կտրում են: Հեքիաթային մոլուցքի նման բացված ծաղկաբույլերը հայտնվում են գեղեցիկ բաց ամպի մեջ՝ հեռվից ձյունաճերմակ, իսկ մոտիկից՝ հաճելի կիտրոնի թարմությամբ։ Այս մնայուն շքեղությունը հիացնում է ամբողջ սեզոնը և ռոմանտիկ մտքեր է առաջացնում: Ձեռքը մեկնում է դեպի ծաղիկը, բայց ոչ թե այն պոկելու, այլ միայն անդուր արարածին դիպչելու և կախարդիչ բույրը ներշնչելու համար։

Էլֆը չի կարող ապրել առանց սիրո, բայց նաև անհնար է չսիրել նրան

Մագլցող վարդ «Էլֆ» բուծված Գերմանական ընկերություն Tantau (Nostalgic Roses շարքը) 2000 թվականին և մեծ ծաղիկներով ալպինիստ (LCI) ժամանակակից պարտեզի վարդ է:

Սելեկցիոներները բույս ​​են ստեղծել նրբագեղ ուրվագծի և նուրբ նոստալգիկ ռոմանտիզմի նուրբ համադրությամբ: Այստեղ անունն ինքնին համահունչ է դրա հետ տեսքը, ասես դուրս է գալիս հեքիաթային երկրից։

Նկարագրություն

Թուփը առույգ է (մինչև 280 սմ բարձրություն, ավելի հազվադեպ՝ մինչև 250 սմ) և ուղղաձիգ։ Ալպինիստական ​​կրակոցները երբեմն հասնում են երեք մետրի:

Ծաղիկներ - մեծ տրամագծով մինչև 14 սմ, խիտ կրկնակի: Յուրաքանչյուր ծաղկի բաժակ զարմանալիորեն տեղավորում է մինչև 57 թերթիկ: Նրանց եզակի ազնվական փղոսկրի գույնը եզրերի երկայնքով սահուն կերպով վերածվում է հիմքի վրա գունատ կանաչ՝ կիտրոնի երանգով: Գուցե դա է պատճառը, որ բույրը օրիգինալ է՝ նուրբ, թեթևակի մրգային, կախարդող և գրավիչ:

Բարենպաստ պայմաններում, զանգվածային ծաղկման ժամանակ, մեկ պեդունկուլը միաժամանակ դուրս է նետում մինչև հինգ ծաղիկ հովանոցային ծաղկաբույլի մեջ։

Տերեւները մեծ են, վառ կանաչ։ Փայլուն սաղարթների արտացոլման մեջ արևը սիրում է երևալ:

Գյուղատնտեսական տեխնոլոգիա

  1. Պայմանները. Մագլցող վարդ «Էլֆ»-ին անհրաժեշտ են տաք արևոտ վայրեր։ Հողը պետք է լինի բերրի և թեթև, թեթևակի թթվային կամ չեզոք: Հիմնական բանը այն է, որ այն լավ պահպանում է խոնավությունը: Ինչպես բոլոր հարազատները, նա կարիք ունի կանոնավոր կերակրման (օրինակ՝ ձիու գոմաղբ) և ձմռան համար ապաստանի։
  2. Վայրէջք. Գարնանը տնկելուց առաջ սածիլը մեկ օր թրջում են ջրի մեջ։ Այս ընթացքում արմատային համակարգը ժամանակ կունենա խոնավությունը կլանելու համար: Այնուհետև կտրվում են բույսի թույլ ընձյուղները, և մնում են ուժեղ գնվող ջեներիկ ակուտանը։ Վնասված և երկար արմատները կտրված են:
  3. Կայունություն. «Elf» բազմազանությունը բավականին ցրտադիմացկուն է, և նույնիսկ կարողանում է պահպանել սաղարթը: Բայց շատ ցածր ջերմաստիճանի դեպքում հնարավոր է սառցակալում։ Չի տառապում բորբոսից և սև բիծից։ Բայց ծաղիկները չեն սիրում անձրև և ստվեր:
  4. Աջակցություն. Եթե ​​վարդը ուղղվում է բարակ, աննկատ հենարանի երկայնքով, ապա հզոր կողային կադրերը կստեղծեն ճախրող ծառի կերպար՝ բազմաթիվ հոյակապ բողբոջներով:

«Էլֆը» կատարյալ տեսք ունի ռոմանտիկ այգում կամարների տեսքով, զարդարում է պատերն ու ամառանոցները: Կիտրոն-սերուցքային կասկադները գեղատեսիլ կերպով կխոնարհվեն մեծ ծաղիկների ծանրության տակ, որոնց թերթիկները փորագրել է հմուտ «վարպետը»։ Այս վարդը սիրահարված ռոմանտիկների և ոճի արտասովոր զգացողություն ունեցողների համար է։ Եվ եթե նրա ստորոտում տնկեք վերբենա, կատվախոտ, նարդոս, ապա դրանց բաց տերևներն ու օդային, փարթամ ծաղկաբույլերը գեղեցիկ կշրջապատվեն և կլրացնեն մագլցող վարդի գեղեցկությունը:

Փարթամ ծաղկած բույսը, ինչպես առասպելական էլֆ կանայք, լի են վառ հույզերով: Վարդ «Էլֆը» կարող է լինել փոփոխական և քմահաճ, միևնույն ժամանակ այն լի է հմայքով, աշխարհը կախարդելու և իր գեղեցկությամբ փոխելու ունակությամբ։ Առասպելական թուփը նոստալգիկ նոտաներ է բերում մեր առօրյա կյանքում, և այն այնքան գեղեցիկ է:

Ողջ աշխարհի այգեպանները պաշտում են վարդեր և աճեցնում դրանք կլիմայական տարբեր կլիմայական պայմաններում: Վարդերի աշխարհում մի տեսակ հեղափոխություն կատարվեց մացառների նոր այգիների խմբի՝ թփերի վարդերի առաջացման արդյունքում: Թեև մեր պայմաններում գրեթե բոլորը դեռևս պահանջում են պաշտպանություն ձմռան համար, այսօր դա թփերի վարդերն են, որոնք առավել բազմակողմանի և ոչ հավակնոտ են:

մացառ թփեր

Սպիները շատ բազմազան են. Սրանք վայրի տեսակներ են և դրանց հիբրիդները և բարդ ծագման ժամանակակից վարդեր, որոնց ծաղիկները նման են հիբրիդային թեյի վարդերի և ֆլորիբունդա խմբի վարդերի ծաղիկներին:

Rosa rugosa և նրա հիբրիդները

Այգու ամենաթանկ վարդերից մեկը կնճռոտ վարդն է կամ ռուգոսա վարդը, որը նաև կոչվում է ճապոնական վարդ: Բնօրինակ տեսակը տարածված է մեր երկրում Հեռավոր Արևելքի շրջաններում, ինչպես նաև Հյուսիսային Չինաստանում, Կորեայում և Ճապոնիայում։ Այն գոյություն ունի երկու ձևով՝ մեկը սպիտակ ծաղիկներով, մյուսը՝ մուգ վարդագույն կամ կարմիր։

Ծաղիկները՝ 5-ից 10 սմ տրամագծով, շատ բուրավետ, 3-6 ծաղիկների ծաղկաբույլերում կամ միայնակ։ Ռուգոսայի հիբրիդային սորտերի ծաղիկները սպիտակից մինչև մուգ կարմիր են, կան նաև դեղիններ, տարբերվում են նաև չափերով և կրկնակիությամբ։ Տերեւները մեծ են, կոշտ, կնճռոտ։ Ծիլերը խիտ ծածկված են փշերով և խոզանակներով։ Թփերը լայն են, խիտ, հասնում են 1-2 մ բարձրության, տալիս են ամուր ընձյուղներ՝ ուղղաձիգ ընձյուղներով։ Արմատային համակարգը հզոր է, մակերեսային։ Ծաղկումը առատ է, մայիսի վերջից՝ երկար, ավելի թույլ ձևով կարող է կրկնվել։ Այս հատկության շնորհիվ թփերը միաժամանակ ունենում են պտուղներ և ծաղիկներ։ Դրան հատկապես ունակ են կրկնակի ծաղիկներով ձևերն ու սորտերը, ինչը արժեքավոր է դեկորատիվ իմաստով: Պտուղները վառ են, նարնջագույն-կարմիր, խոշոր (2-2,5 սմ), շատ դեկորատիվ։ Rosa rugosa-ն շատ ձմռան դիմացկուն (ապաստան չեն պահանջում) և հիվանդությունների նկատմամբ կայուն տեսակ է:

Ռուգոսա հիբրիդների մեծ մասը նույնպես չի պահանջում ապաստան ձմռան համար: Բայց որոշ սորտեր) չեն տարբերվում ձմեռային դիմացկունությամբ: Նրանց ծաղկաբեր ընձյուղները հայտնվում են նախորդ տարվա ձմեռած վերին ընձյուղների վրա։ Առանց ձմեռային կամ խոր ձյան ծածկույթի պաշտպանության, պահպանվում են միայն ստորին բողբոջները, որոնք ի վիճակի չեն ծաղկում ապահովել։ Հզոր և հաստ կադրերը գետնին թեքելը հեշտ չէ։ Հետևաբար, բազմազանություն ընտրելիս անհրաժեշտ է ուշադրություն դարձնել ծաղկման ընդհանուր դիմացկունությանը, բազմակարծությանը և առատությանը և հիվանդությունների դիմադրությանը:

Rosa rugosa-ն և նրա հիբրիդները օգտագործվում են փոքր խմբերի և միայնակ տնկարկների, հեջերի համար: Այս վարդերը հիանալի հեջեր են ստեղծում, հատկապես նրանք, որոնք հողամասը բաժանում են առանձին մասերի: Պտուղները հարմար են մուրաբաներ և կոմպոտներ պատրաստելու համար։

Moyesi վարդի հիբրիդներ

Այս խմբի նախնիների տարածման տարածքը Արևմտյան Չինաստանն է: Հիբրիդները ձեռք են բերվում սկզբնական տեսակները տարբեր խմբերի վարդերի հետ խաչելով։ Ծաղիկները կարմիր են, վարդագույն, միջին (5-6 սմ), ոչ կրկնակի կամ կիսակրկնակի, ծաղկաբույլերում։ Տերեւները բաղկացած են 7-13 ձվաձեւ թերթիկներից։ Թփերը բարձր են՝ մինչև 2-2,5 մ, փռված, կարմրաշագանակագույն ընձյուղներով։ Ծաղկումը առատ է հունիսից, կրկնակի ծաղկումն ավելի թույլ է։ Պտուղները շշաձեւ են, մեծ (5 սմ երկարությամբ), մուգ նարնջագույն-կարմիր։ Moyesi վարդի հիբրիդները դեկորատիվ են լանդշաֆտային այգեգործության համար: Նրանց անհրաժեշտ է թեթև ծածկ՝ առանց կադրերը գետնին թեքելու։

Cordes վարդի հիբրիդներ

Այս վարդերը կոչվել են իրենց հեղինակի՝ գերմանացի հայտնի հեղինակ Վ.Կորդեսի անունով: Այս վարդերի մեծ մասը ստացվում է Max Graf տեսակից (կնճռոտ վարդի և վարդի վիհուրայի ինքնաբուխ հիբրիդ): Այլ խմբերի սորտերի հետ նրա խաչերի արդյունքում ձևավորվել է Կորդես վարդի հիբրիդների սորտային խումբ։ Հարկ է նշել, որ նոր այգիների խմբերը չեն ստեղծվում առանց հատուկ պատճառների, և Kordes վարդերը այդքան մեծարվել են իրենց դիմացկունության և գրավչության համար:

Այս խմբի վարդերի բավականին մեծ (7-8 սմ տրամագծով) ծաղիկները տարբերվում են գույների և ձևերի բազմազանությամբ՝ կիսակրկնակիից մինչև խիտ կրկնակի, երբեմն բուրավետ, հավաքված փոքր ծաղկաբույլերում: Բոլոր սորտերն ունեն գեղեցիկ մուգ կանաչ, փայլուն տերևներ։ Թփերը առույգ են (1,5-2 մ), հաճախ մտրակի նման ընձյուղներով։ Ծաղկումը առատ է հունիսից մինչև ուշ աշուն։ Պտուղները ձվաձեւ են։ Բոլոր սորտերը բավականին դիմացկուն են ձմռանը և դիմացկուն են հիվանդություններին: Այնուամենայնիվ, կենտրոնական Ռուսաստանի պայմաններում նրանք ձմռան համար ապաստան են պահանջում։ Նրանք կարող են աճել նույնիսկ մասնակի ստվերում:
Վարդերի այս խումբն օգտագործվում է խմբակային և առանձին տնկարկներում՝ ուղղահայաց այգեգործության համար։ Նրանք կարող են զարդարել ամառանոցներ, տեռասներ, պերգոլաներ, կամարներ, հատուկ վանդակաճաղեր և այլ հենարաններ՝ պարտեզի տարածքը բաժանելու, հանգստի գոտիներ ստեղծելու և տնտեսական շինությունները զարդարելու համար։

Այս վարդերը չեն կարողանում փաթաթվել հենարանի շուրջը, ուստի պետք է կապել դրան՝ էտելուց հետո ձևավորվելով վաղ գարնանից, որպեսզի անմիջապես աճեն ճիշտ ուղղությամբ։ Ողջ աճող սեզոնի ընթացքում հիմնական ճյուղերը ուղղորդվում են աջակցության երկայնքով և խնամքով կապված են դրան:

Թփեր

Շրաբները (դրանք կոչվում են նաև ժամանակակից այգու վարդեր) ներառում են բոլոր սորտերը, որոնք չեն կարող վստահորեն ներառվել այլ այգիների խմբերում:

  • Արդյունավետ տեսք. Ծաղկումը առատ է, երկար (հունիսից մինչև աշուն), կրկնվող։ Գրեթե բոլոր սորտերը նորից ծաղկում են, բայց կան միայնակ ծաղկման սորտեր:
  • Բուրմունք. Սկրաբների մեջ կան ավելի բուրավետ վարդեր, քան թեյի հիբրիդային վարդերի մեջ:
  • Ծավալը. Շատ սորտեր աչքի են ընկնում իրենց հզորությամբ և աճի ուժով (հասնում են 2 մ-ի)։ Որոշ սորտերի թփերը այնքան նրբագեղ են, որ նրանց ճկուն ճյուղերը փոքր աջակցություն են պահանջում, որը շուտով ծածկվում է ծաղիկներով:
  • Հիվանդությունների դիմադրություն և բարձր ձմեռային դիմադրություն:

Նրանք միայն լույսի պաշտպանություն են պահանջում ձմռան համար:

  • Անպարկեշտություն. Ցանկացած այգեպան կարող է մացառ աճեցնել:
  • Լայն կիրառություն կանաչապատման մեջ:
  • Թփերը կարելի է աճեցնել ինչպես միայնակ տնկարկներով, այնպես էլ փոքր խմբերով (յուրաքանչյուրը 3-5 թուփ):

Փոքր խմբերով տնկելը տալիս է վարդերի մեծ ծաղկող գնդակի էֆեկտ, մեկ թուփի բոլոր անկանոնությունները թաքցնում են հարևանները: Թփերի միջև հեռավորությունը կարող է լինել 50 սմ-ից մինչև 2 մ-ից ավելի՝ կախված թփերի լայնությունից։ Անհնար է տալ ընդհանուր առաջարկությունթփերի տնկման վրա, քանի որ դրանք բուշի չափսերով շատ բազմազան են: Միջին հաշվով 1 մ2-ի վրա տնկվում է 2-ից 3 թուփ։ Թփերի մեծ վարդերի մեջ թփի մերկ մասը երբեմն երևում է, այնուհետև այն կարող է թաքնվել նրանց առջև գտնվող փոքր չափերի վարդերով:

Գեղեցիկ միայնակ թուփը սիզամարգերի վրա տպավորիչ տեսք ունի: «Մենակատարի» դերի համար ընտրում են գեղեցիկ թփի տեսքով և առատ ծաղկած բույս՝ հաճելի բուրմունքով։ Այն կարող եք տնկել ցանկացած վայրում՝ տան մուտքի մոտ, սիզամարգին, ծաղկանոցի կենտրոնում։ Մեկ տնկարկների համար շատ թփերի վարդեր, ինչպես հին, այնպես էլ ժամանակակից, լավ են: Հիմնական բանը այն է, որ գործարանը ներդաշնակ է շրջակա լանդշաֆտի հետ:

Նոստալգիկ սկրաբներ

Սկրաբների խմբին են պատկանում նաև այսպես կոչված անգլիական վարդեր, որոնք ստեղծել է բրիտանացի Դևիդ Օսթինը։ Երկար տարիներ այս բուծողը աշխատել է ծրագրի վրա՝ ստեղծելու վարդեր, որոնք նման են հնագույն տեսակներին, բայց ժամանակակից ծաղկի գույնով և նորից ծաղկելու ունակությամբ: Անգլիական վարդեր ձեռք են բերվում ֆրանսիական, դամասկան, բուրբոն և այլ վարդերի խաչմերուկով հիբրիդային թեյի վարդերի և ֆլորիբունդայի վարդերի ժամանակակից տեսակների հետ: Roses D. Austin-ը հայտնվել է քսաներորդ դարի վերջին քառորդում: Նրանց ծաղիկները խիտ կրկնակի են, զանազան գույների՝ գունատ ծիրանագույն, մուգ դեղին, մուգ կարմիր, քաջվարդաձև, շատ բուրավետ և նոստալգիկորեն հնաոճ տեսք ունեն։ Թփերը կոմպակտ են, լավ վիճակում, նորից ծաղկում են։ Շատ սորտեր հիվանդության դիմացկուն են: Դ.Օսթինի արժանիքն այն է, որ նա կրկին սեր սերմանեց աշխարհում ծաղկի հին ձևերի հանդեպ ( երկար ժամանակովԻդեալական են համարվել հիբրիդային թեյի տեսակի գավաթային վարդեր), ինչպես նաև թփի ծավալային կառուցվածքի համար։

Այս խմբի ամենատարածված սորտերն են Աբրահամ Դարբին, Գրեհեմ Թոմասը: Հիմնականում անգլիական վարդերի շնորհիվ այգեպանները իմացան սկրաբ խմբի մասին: Նրանց համար միջին գոտու կլիման մի փոքր դաժան է։ Հետեւաբար, ձմռան համար նրանց կադրերը պետք է ուշադիր ծածկվեն:

Romantica շարքի ֆրանսիական Meilland ընկերության վարդերը նույնպես առանձնանում են իրենց դիմադրությամբ, առատ կրկնվող ծաղկումով, տարբեր երանգներով, ծալքավոր թերթիկներով և հին վարդերի հմայքով։ Ճիշտ է, այս խմբից միայն մի քանի սորտեր են պատկանում մացառների խմբին, օրինակ՝ Collette, Les Quatre Saisons, Yellow Romantika, Lovely Meilland: Բոլոր սորտերը տարբերվում են ոչ միայն գեղեցկությամբ և հնաոճ տեսքով, այլև կայունությամբ: Նրանք ցանկացած ռոմանտիկ այգու երազանքն են: Գերմանական Rosen Tantau ընկերությունը նույնպես երկար տարիներ բուծում է ժամանակակից նոստալգիկ վարդեր։ Բոլոր սորտերը փորձարկվում են կոշտ կլիմայական պայմաններում հիվանդությունների դիմադրության և ցրտադիմացկունության համար: Նոստալգիկ սկրաբ վարդերի նոր տեսակներ՝ Belvedere, First Lady, Gartentraume, Grafin von Hardenberg, Mariatherese, Pasella:

Կանադական Explorer Roses շարքի վարդեր (Չարլզ Ալբանել, Դեյվիդ Թոմփսոն, Հենրի Հադսոն, Յենս Մանկ, Մարտին Ֆրոբիչեր), որոնք անվանվել են կանադացի ականավոր հետախույզների պատվին, առանձնանում են հիմնականում ձմեռային բարձր դիմադրությամբ: Rose cordesia-ն և rose rugosa-ն մասնակցել են այս շարքի բազմաթիվ սորտերի ծագմանը:

Խնամքի առանձնահատկությունները

Ապաստան ձմռան համար

Չնայած ժամանակակից թփերի վարդերի ձմեռային դիմացկունությունը ավելի բարձր է, քան հիբրիդային թեյի և ֆլորիբունդայի վարդերը, դրանք պետք է ծածկվեն ձմռան համար, իսկ թփերի ծավալի պատճառով ապաստանն ինքնին կարող է ավելի դժվար լինել:
Կրկին ծաղկող թփերի վարդ-թփերը աճող սեզոնի ընթացքում կարող են հասնել 1,5 մ կամ ավելի բարձրության: Հոկտեմբերի վերջին կատարվում է աշնանային էտում՝ ընձյուղների երկարության 1/3-ով։

պետք է փորձել խոնարհվել գետնին: Թփերը կարելի է մի կողմից փորել և դնել, ամրացնել գետնին: Կռացած ճյուղերը տեղադրվում են եղևնու ճյուղերի շերտի վրա, հակառակ դեպքում վարդերը կարող են փչանալ ծածկույթի տակ հալված հողում: Վերևից դրանք ծածկված են նաև եղևնու ճյուղերով կամ որևէ մեկուսիչ նյութով։ Մեկուսիչ նյութը վերևում ամրացնելու համար կարող եք օգտագործել հողը:

Ուժեղ ձյան ծածկույթը կարող է հուսալի պաշտպանություն հանդիսանալ թփերի համար, որոնք անցել են նորմալ կարծրացման փուլերը: 50-70 սմ ձյան շերտի տակ ջերմաստիճանը չի իջնում ​​4-5°-ից ցածր զրոյից 25-30°C բացօթյա ջերմաստիճանի դեպքում: Բայց քանի որ ձյան տեղումների ժամանակն ու ձյան ծածկույթի հաստությունը հաստատուն չեն: , պետք է կիրառվեն պաշտպանության լրացուցիչ մեթոդներ՝ եղևնի ճյուղեր, կաղնու տերև, չհյուսված գործվածք։

էտում

Թփերն ունեն ուժեղ ծավալային աճ և քիչ էտում են պահանջում։ Այս վարդերը վախենում են ուժեղ և նույնիսկ միջին էտումից: Քնած բողբոջներն ավելի երկար են արթնանում, քան, օրինակ, թեյի հիբրիդային վարդերը: Կարճ ամառով, ընդ որում՝ ոչ միշտ բավականաչափ տաք, այս հատկանիշն էական է դառնում։ Երկար էտման դեպքում ծաղկումն ավելի առատ է լինում, քանի որ վերին բողբոջներից 2-րդ կարգի ընձյուղներն ավելի ինտենսիվ են զարգանում։

Թփերի վրա մնում են ամենաուժեղ բազալային նոր ընձյուղներից 3-5-ը, իսկ դրանց վրա՝ 6-8 կամ ավելի լավ զարգացած բողբոջներ։ Ամենամյա էտման նպատակն է կրճատել ընձյուղները մեկ քառորդով կամ կեսով, կողայինները՝ երկու երրորդով: Եթե ​​ընձյուղի բարձրությունը հասնում է 120 սմ-ի, կարճացրեք դրանք 30-40 սմ-ով, եթե կողային ընձյուղի երկարությունը 30 սմ է, կրճատեք 10 սմ-ով, անհրաժեշտ է թողնել բավականաչափ ամուր, հավասարաչափ տարածված ընձյուղներ։

Rational Software-ը մի քանի տարի առաջատար է նախագծման, մշակման, փորձարկման և սպասարկման գործիքների ոլորտում: ծրագրային ապահովում. Rational շարքի հիմնական արտադրանքը Rational Rose CASE գործիքն է: Rational Rose-ն աջակցում է տեսողական օբյեկտի վրա հիմնված մոդելավորմանը (UML), աջակցում է կոդի ստեղծմանը և հակադարձ ճարտարագիտությանը (ծրագրային կոդից մոդելի կառուցում) շատ ծրագրավորման լեզուների համար, թույլ է տալիս կառուցել մշակված ծրագրային համակարգի օբյեկտի մոդել, սահմանել դասերի, օբյեկտների բնութագրեր։ , ատրիբուտներ և գործառնություններ (ավելի մանրամասն տես. «Ծրագրավորող» թիվ 2, 3, 5/6 2001 թ.):

Քանի որ Rational Rose-ն ունի բոլոր անհրաժեշտ բնութագրերը ցանկացած մասշտաբի համակարգի ճարտարապետությունը նախագծելու համար, ծագում է Rose-ի օգտագործման այնպիսի հզոր և հայտնի ծրագրավորման համակարգով, ինչպիսին Delphi-ն է: Rational Rose-ը ստանդարտ չէ Delphi-ի հետ, սակայն Rational Software-ը պահպանում է ծրագիր՝ աջակցելու երրորդ կողմի կամուրջներին (Հղումներ) Rose-ի և զարգացման այլ գործիքների միջև: Որպես այս ծրագրի մաս, Ensemble Systems-ը մշակել է Rose Delphi Link (RDL) կամուրջ ծրագիրը, որը կապում է Rational Rose-ը և Delphi-ին: RDL-ի հիմնական գործառույթներն են կոդի ստեղծումը և հակադարձ ճարտարագիտությունը: Պետք է հիշել, որ ստեղծված RDL կոդը չի պարունակում գործառույթի իրականացում: Ստեղծվում են միայն դեկլարատիվ տարրեր՝ դասերի սահմանումներ, միջերեսներ, գրառումներ, տեսակներ, տեսանելիության հրահանգներ և այլն։


Նկար 1. RDL ցանկի տարր

Նախքան Rose Delphi Link-ի քննարկմանը անցնելը, ես ձեզ կհիշեցնեմ Rational Rose միջավայրում աշխատելու հիմնական փուլերը: Որպես կանոն, օգտագործվում է հետևյալ մոտեցումը.

  1. Համակարգին ներկայացվող պահանջների որոշում և համակարգի տարրերի փոխազդեցության մոդելի կառուցում (Use Case Diagram և Collaboration Diagram): Օգտագործեք հաջորդականության դիագրամը Օգտագործման դեպքը պարզելու համար: Այս դիագրամները ցուցադրում են բիզնես գործընթացներում ներգրավված տիրույթի օբյեկտները: Այս դիագրամները չեն ազդում գեներացված կոդի վրա:
  2. Համակարգի ապարատային մոդելի կառուցում (տեղակայման դիագրամ): Այս դիագրամը ցույց է տալիս համակարգի մոդելը ապարատային ներդրման մեջ: Դիագրամը չի ազդում RDL-ի կողմից ստեղծված կոդի վրա:
  3. Զարգացում օբյեկտի մոդելըհամակարգեր (դասերի սահմանում, դրանց փոխազդեցություններ, ատրիբուտներ, գործողություններ): Դասի դիագրամի մշակմանը զուգահեռ, որպես կանոն, մշակվում է Բաղադրիչ դիագրամ, որը ցուցադրում է համակարգում օգտագործվող ֆայլերի, մոդուլների, լրացուցիչ գրադարանների փոխազդեցությունը։ Բաղադրիչի դիագրամը նույնպես չի ազդում կոդի ստեղծման վրա:
  4. Ծրագրի կոդի ստեղծում:
    Կոդի ստեղծման վրա ազդում են միայն դասի դիագրամները, ուստի այս հոդվածում մենք կքննարկենք միայն Logical View բաժնի դիագրամները: Այլ դիագրամների կառուցման առանձնահատկությունները բաց են թողնվել: Rational Rose միջավայրում նախագծման այս քայլերն օգտագործվում են մոդելը մշակելու և կոդ ստեղծելու համար Rose միջավայրի կողմից աջակցվող տարբեր լեզուներով: Բայց Delphi-ում կա մի առանձնահատկություն, որը զգալիորեն տարբերում է Delphi-ում զարգացումը ծրագրավորման այլ միջավայրերում զարգացումից՝ ծրագրավորում: օգտագործողի ինտերֆեյս. Գաղտնիք չէ, որ Դելֆիում ծրագրերի մեծ մասի մշակումը սկսվում է օգտատիրոջ միջերեսի ձևավորումից, իսկ հետագա ծրագրավորումից՝ դրա էական փոփոխությունից։ Հետեւաբար, Rational Rose-ի ստանդարտ մոտեցումն օգտագործելը այնքան էլ հարմար չէ: Այս խնդիրը լուծելու համար Ensemble Systems-ն առաջարկում է դիզայնի հետևյալ մեթոդաբանությունը.


Նկար 2. Դիզայնի մեթոդաբանություն՝ օգտագործելով RDL

Այս մոտեցման հիմնական գաղափարը հակադարձ ճարտարագիտության օգտագործումն է (կլոր շրջագայության ճարտարագիտություն). մակարդակով կատարված բոլոր փոփոխությունները: ծրագրի կոդըԴելֆիում արտացոլվում են Rose-ում կառուցված օբյեկտի մոդելում, և հակառակը, երբ փոխվում են դասերը, մեթոդները և այլն։ Rose օբյեկտի մոդելում ծրագրի կոդը համապատասխանաբար ճշգրտվում է: Ուշադրություն դարձրեք այն զույգ սլաքներին, որոնք միացնում են երրորդ և չորրորդ բլոկները: Հենց այս սլաքներն են ներկայացնում հակադարձ ճարտարագիտության գործընթացը:
Դիտարկենք Rose Delphi Link-ի հիմնական պատուհանը (նկ. 3): Ինտերֆեյսը բավականին պարզ է, այն պարունակում է.

  • մենյու, որը պարունակում է հրամաններ նախագծի հետ աշխատելու, ընտրանքների կարգավորում և օգնություն կանչելու համար.
  • վահանակներ, որոնք ցուցադրում են Rose-ի և Delphi-ի մոդելների հիերարխիկ կառուցվածքները ծառերի տեսքով.
  • կոճակ՝ օբյեկտների ծառերը թարմացնելու համար, կոճակներ՝ հակադարձ ճարտարագիտության (Թարմացնել բոլորը) և առաջ ինժեներության համար, այսինքն. կոդի ստեղծում (Թարմացնել բոլորը->):


Նկար 3. Rose Delphi Link Հիմնական պատուհան

Հիմնական RDL պատուհանը հիմնական Rational Rose պատուհանի երեխա է և միշտ գտնվում է այս պատուհանի վերևում՝ նվազագույնի հասցնելով մանկական պատուհանի նման, ինչը, անկասկած, շատ հարմար է:
Նախքան ապամոնտաժելը կոնկրետ օրինակ, եկեք ավելի սերտ նայենք Rose Delphi Link մենյուի տարրերին:
File -> Open Project - օգտագործվում է ստեղծված Delphi նախագիծը RDL-ում բացելու համար: Երբ նախագիծը բացվում է, բացվող նախագծի օբյեկտների ծառերը ցուցադրվում են RDL պատուհանում:
Ֆայլ -> Նոր նախագիծ - երբ ընտրում եք այս ընտրացանկի տարրը, RDL-ն առաջարկում է ստեղծել դատարկ Delphi նախագիծ: Այս դեպքում ստեղծված նախագծի ֆայլը պարունակում է միայն դեկլարատիվ տարրեր, որոնք անհրաժեշտ են մինիմալ Delphi ծրագրի համար (ծրագիր, սկիզբ, վերջ): Պետք է ստեղծվի նոր նախագիծ, եթե ծրագիրը չի պարունակում օգտատիրոջ գրաֆիկական միջերես, օրինակ՝ դինամիկ գրադարան։ Ճիշտ է, այս դեպքում անհրաժեշտ կլինի ճշգրտում կատարել ստեղծված կոդի վրա՝ փոխարինել ծրագիրը գրադարանով: Օգտագործելով համատեքստի ընտրացանկը, կարող եք ստեղծել մոդուլներ (միավոր) և մոդուլների համար լրացուցիչ գրացուցակներ: Այս կերպ ստեղծված մոդուլները նույնպես պարունակում են միայն նվազագույն ներդրում (օգտագործումներ, ինտերֆեյս, իրականացում, ավարտ): Մոդուլի ստեղծումից հետո, կոդերի հետագա ստեղծման ժամանակ, ծրագրի ֆայլի օգտագործման բաժնում ավելացվում է նոր մոդուլի հայտարարություն:
«Դիտել» և «Օգնություն» ցանկի տարրերը ստանդարտ են և կարիք չունեն նկարագրելու այս հոդվածում:

Այժմ մենք կօգտագործենք վերը նշված դիզայնի մեթոդաբանությունը և կմշակենք ծրագիր և համապատասխան Rose մոդելը: Օրինակ՝ վերցնենք մի ծրագիր, որը լրացնում է 5-ով 5-ով երկու թվային զանգված պատահական թվեր, ինչպես նաև գիտակցելով որոշ մաթեմատիկական ֆունկցիաներդրանց վերամշակման համար։ Ծրագիրը պետք է կատարի հետևյալ գործառույթները.

  • Լրացրեք զանգվածները 1-ից 10-ը տատանվող պատահական թվերով;
  • Հաշվարկել յուրաքանչյուր զանգվածի տարրերի գումարը;
  • Որոշել տարրերի միջին թվաբանականը;
  • Մաքրել զանգվածները (նախնականացնել դրանք զրոներով):

Սկսենք Դելֆիում օգտատիրոջ միջերեսի մշակումից: Մկնիկի հետ պարզ գործողությունների արդյունքում ես ստացա այնպիսի ծրագիր, որը դեռ ոչ մի գործողություն չի կատարում (նկ. 4):


Նկար 4. Մշակված ծրագրի ինտերֆեյս

Եկեք պահպանենք այս նախագիծը Delphi-ի լռելյայն մոդուլի անուններով, բացենք նոր Rational Rose նախագիծ և սկսենք Delphi Rose Link-ը: Ընտրեք ընտրացանկի տարրը Open Project և բացեք այն նախագիծը, որը հենց նոր պահվել է Delphi-ում: Rose մոդելի և Delphi նախագծի օբյեկտների ծառերը կցուցադրվեն RDL պատուհանում (նկ. 5):


Նկար 5. Delphi նախագիծը բացվել է RDL-ում

Ձախ օբյեկտի ծառը Rose մոդելի օբյեկտներն են, աջ ծառը՝ Դելֆի կոդով հայտարարված օբյեկտները։ Ուշադրություն դարձրեք առարկաները ներկայացնող սրբապատկերների ձախ կողմում գտնվող կարմիր բացականչական նշաններին: Դրանք ցույց են տալիս Դելֆի կոդի և Ռոզի մոդելի տարբերությունները: Այժմ բոլոր պատկերակները ստուգված են, քանի որ մոդելը դեռևս գոյություն չունի Ռոուզում:
Հաջորդ քայլը կոդից Rose մոդելի ստեղծումն է: Ստեղծումը սկսելու համար հարկավոր է սեղմել «Թարմացնել բոլորը» կոճակը: Եթե ​​սերունդը հաջողված է, ապա օբյեկտների վրա բացականչական նշանները անհետանում են, ինչը նշանակում է, որ յուրաքանչյուր օբյեկտի համար Rose մոդելը համապատասխանում է Դելֆիի սկզբնական կոդի: Ստեղծման հաղորդագրությունների պատմությունը դիտելու համար ընտրեք Դիտել -> Հաղորդագրություններ ցանկի տարրը: Բացվող պատուհանը կցուցադրի մոդելի կամ սկզբնական կոդի ստեղծման ընթացքում RDL հաղորդագրությունների ելքի բավականին մանրամասն մատյան:
Ծալեք Rose Delphi հղումը և ընտրեք Logical View մասնաճյուղը Rose Object Browser-ում: Մենք տեսնում ենք երկու փաթեթ, որոնք հայտնվում են.<>Unit1, որը պարունակում է կոդի օբյեկտի մոդել Unit1.pas մոդուլից, և External References, որը պարունակում է Delphi օբյեկտներ, որոնք հայտարարված են ընթացիկ նախագծից դուրս մոդուլներում (VCL գրադարանի օբյեկտներ):
Այժմ բացենք Unit1 մոդուլին համապատասխան դասի դիագրամը Rose միջավայրում (Տրամաբանական տեսք -> Unit1 -> Overview): Իր սկզբնական տեսքով գծապատկերը ցույց է տալիս մի փոքր շփոթեցնող օբյեկտի մոդել, որը մենք կդասավորենք՝ ուշադիր դասավորելով օբյեկտներն ըստ իրենց հիերարխիայի (նկ. 6):


Նկար 6. Unit1 մոդուլի օբյեկտի մոդելը

Երբ մշակված ծրագրի ինտերֆեյսը բավականին բարդ է և ներառում է մեկ տասնյակից ավելի տարրեր, օբյեկտի մոդելը որոշ չափով գերծանրաբեռնված է ստացվում։ Մոդելը բեռնաթափելու համար կարող եք մոդելից հեռացնել որոշ ոչ էական տարրեր: Դիագրամից պետք է միայն հեռացնել տարրերը, քանի որ այս դեպքում դրանք միայն տեսողականորեն են հեռացվում: Բրաուզերից ջնջվելիս օբյեկտները ընդմիշտ ջնջվում են, և դա հանգեցնում է ստեղծված RDL կոդի փոփոխության:
Այժմ եկեք անցնենք հաջորդ քայլին՝ մշակելով օբյեկտի մոդել, որն իրականացնում է վերը նշված ծրագրի ֆունկցիոնալությունը: Մենք կիրականացնենք դասերը, դրանց ատրիբուտները և մեթոդները առանձին մոդուլում, հիմնական մոդուլում կստեղծենք դասերի օրինակներ, իսկ կոճակի սեղմման իրադարձությունների մշակման մեջ կգրենք զանգեր այս դասերի մեթոդներին։

Եկեք ստեղծենք նոր մոդուլ: Դա կարելի է անել Delphi-ում, Rose-ում և RDL-ում, բայց փորձի մաքրության համար մենք ամեն ինչ կստեղծենք միայն RDL-ում: Rose-ում ակտիվացրեք RDL պատուհանը և աջ սեղմեք արմատային տարրի վրա Rose մոդելի օբյեկտի ծառի վրա. մեր դեպքում դա Model1.mdl է: AT համատեքստային մենյուընտրեք Նոր -> Միավոր: Կբացվի Component Editor պատուհանը (Նկար 7): Ընդհանուր ներդիրում նշվում է մոդուլի անվանումը (Unit2) և ստեղծվող մոդուլի մեկնաբանություն, որը կտեղադրվի մոդուլի մեջ որպես մեկնաբանություն կոդի ստեղծման ժամանակ: Մանրամասն ներդիրում նշվում է բաղադրիչի տեսակը (տեսակը) և աղբյուրի ֆայլի ուղին: Code Preview ներդիրում դուք կարող եք տեսնել կոդը, որը կստեղծվի RDL-ի կողմից այս մոդուլի համար: «Թույլատրել կոդը/մոդելի թարմացումները» անջատիչը անջատում է ընտրված տարրի համար կոդի ստեղծումը և մոդելի թարմացումները:


Նկար 7. Բաղադրիչի խմբագիր

Ok կոճակը սեղմելուց հետո մենք տեսնում ենք, որ RDL պատուհանում հայտնվել է պատկերակ, որը ցույց է տալիս նոր մոդուլ, և դրա կողքին Բացականչության նշան, ինչը ցույց է տալիս, որ Rose մոդելը և Delphi կոդը համաժամեցված չեն: Թարմացրեք Delphi կոդը՝ սեղմելով Թարմացնել բոլորը-> կոճակը: Այժմ մենք պետք է անցնենք Delphi-ին: Մենք տեսնում ենք պատուհան, որը զգուշացնում է, որ մոդուլը փոխվել է (նկ. 8): Թարմացված մոդուլը ներբեռնելու համար սեղմեք Ok:


Նկար 8. Դելֆի հաղորդագրություն նախագծի ֆայլի փոփոխության մասին

Հիմա եկեք բացենք Unit2.pas մոդուլը, որը հենց նոր ստեղծեցինք: Կարող եք համոզվել, որ կոդերի ստեղծումը հաջող է եղել. բոլոր անհրաժեշտ հիմնաբառերը հայտարարված են, տեղադրվում է մեկնաբանություն: Հաջորդ քայլը այս մոդուլում դասերի և դրանց մեթոդների մոդելավորումն է: Եկեք գնանք Rose և ակտիվացնենք RDL պատուհանը: Օբյեկտների ծառի մեջ ցուցադրեք համատեքստի ընտրացանկը Unit2 օբյեկտի վրա և ընտրեք Նոր -> Դաս: Հայտնվում է Class Editor պատուհանը (Նկար 9): Ընդհանուր ներդիրում դուք պետք է նշեք դասի անվանումը (Անուն), դիտում (Kind), տեսանելիություն (Տեսանելիություն) և դասի մեկնաբանություն (Փաստաթղթեր): Մեր դեպքում դասը կկոչվի TMassiv, որի շրջանակը հանրային է:


Նկար 9. Դասի խմբագիր

Դասի բոլոր մեթոդներն ու ատրիբուտները ստեղծելու համար մենք կօգտագործենք նոր ընտրացանկի տարրը RDL օբյեկտի ծառի դասի համատեքստային մենյուում: Հատկանիշների և մեթոդի խմբագրիչները հիմնականում նույնն են, ինչ դասի խմբագրիչը, ուստի մենք բաց կթողնենք ստեղծման մանրամասները: Եկեք ստեղծենք հետևյալ ատրիբուտները և մեթոդները (տեսանելիության հրահանգներով բոլոր մեթոդները հանրային են, M հատկանիշն ունի տեսանելիություն մասնավոր).
M. ամբողջ թվերի զանգված; ընթացակարգի մեկնարկ; // Զանգվածի սկզբնավորման կարգը FillArray; // Զանգվածը պատահական թվերով լրացնելով կարգը CalcSum; // Զանգվածի տարրերի գումարի հաշվարկ CalcSr ընթացակարգը; // Հաշվել զանգվածի տարրերի ֆունկցիայի միջին արժեքը GetElement(X, Y: integer): Integer; // Զանգվածի տարր ստանալը (x,y) Եկեք նաև TForm1 դասի համար ստեղծենք մեթոդ, որը ձևի վրա տեղակայված TMemo բաղադրիչները կլցնի զանգվածների տարրերով.

GetProcedureArray;

Պարամետրերով մեթոդներ ստեղծելու յուրահատկություն կա. Նախ, մեթոդը ստեղծվում է սովորական ձևով, այնուհետև RDL օբյեկտի ծառում, այն մեթոդի համատեքստի ընտրացանկում, որի համար առաջարկվում է նշել պարամետրը, ընտրվում է New -> Parameter տարրը և պարամետրի անունը, դրա նշված են մուտքագրել և մեկնաբանել դրան: Դաս ստեղծելուց հետո ուշադրություն դարձրեք Unit2 մոդուլի դասի գծապատկերին Rose-ում. մեր դասը ցուցադրվում է UML-ի ճշգրտման համաձայն (նկ. 10):


Նկար 10. Դասի դիագրամ ստեղծված դասի հետ

Այսպիսով, դասը ստեղծվել է, ավելի ճիշտ՝ դրա կեղևը, առայժմ առանց իրականացման։ Այժմ Unit1 հիմնական մոդուլում մենք կստեղծենք այս դասի երկու օրինակ: TForm1 դասի Public բաժնում դրանք հայտարարենք որպես M1 և M2։ Դա արվում է օբյեկտի ծառի համատեքստային մենյուում ընտրելով անհրաժեշտ տարրերը և հատկանիշի խմբագրիչում նշելով պարամետրերը: Փոփոխված դիագրամը, որտեղ դասի հայտարարված օրինակները ցուցադրված են TForm1 դասում, ներկայացված է նկ. տասնմեկ.


Նկար 11. TForm1 դասի հանրային բաժնում հայտարարված դասերի օրինակներ

Այսպիսով, մոդելը կառուցված է, և այժմ մենք պետք է գեներացնենք վերջնական կոդը: RDL պատուհանում սեղմեք Refresh, Update All-> և գնացեք Delphi միջավայր։ Այժմ մենք պետք է գրենք ֆունկցիոնալությունն իրականացնող կոդը և կազմենք ծրագիրը։ Մեթոդները կոդով լրացնելիս երբեմն անհրաժեշտ է ավելացնել տեղական կամ գլոբալ փոփոխականներ։ Դա կարելի է անել RDL-ով, բայց ավելի լավ է այս փոփոխականները ներդնել կոդով, այնուհետև թարմացնել Rose մոդելը Delphi-ի սկզբնաղբյուրից (Update All): Եթե ​​որոշ տարրեր ջնջվել են մոդելում, և դրանք արդեն ներդրված են կոդում, ապա այս կոդը կցվում է կոմպիլյատորի դիրեկտիվների միջև ($IFDEF DELETED) և ($ENDIF): Դելֆիում բոլոր սկզբնական կոդը ներդնելուց հետո, եկեք վերադառնանք RDL և նորից հակադարձ ինժեներ՝ սեղմելով Թարմացնել և թարմացնել բոլորը: TForm1 դասը փոխվել է - նրանում հայտնվել են մեթոդներ - կոճակ իրադարձությունների մշակիչներ (նկ. 12): Մեր դեպքում սա դասի դիագրամի վերջնական տարբերակն է և ամբողջ մոդելը որպես ամբողջություն:


Նկար 12. Unit1 մոդուլի վերջնական դասի դիագրամ

Վերջնական աղբյուրծրագրերը և կառուցված Rose մոդելը կարող են լինել.

Այս օրինակում մենք հետևեցինք Rose Delphi Link ծրագրավորողի կողմից առաջարկված հավելվածների մշակման մեթոդաբանությանը, և արդյունքում ստացանք համակարգի օբյեկտային մոդել։ Համակարգի գործունեությունը նկարագրող բոլոր դասերը և դիագրամները նախագծվել են Rational Rose-ում՝ օգտագործելով Rose Delphi Link ծրագիրը: Այսպիսով, եկեք առանձնացնենք RDL-ի և Rational Rose-ի հետ միասին օգտագործելու հիմնական առավելությունները.

  • արագ և հարմար ստեղծագործությունօգտագործողի միջերեսի նախատիպ;
  • ինտերֆեյսի դասերի մանրամասն մոդել ձեռք բերելու և դրա հիման վրա համակարգի հիմնարար ճարտարապետական ​​առանձնահատկությունները լուսաբանելու ունակություն.
  • դասերը համակարգի ֆունկցիոնալ պահանջներին համապատասխանելու ունակություն.
  • Ռացիոնալ Ռոզի մոդելներում կառավարման դասեր ստեղծելու ունակություն Դելֆիում կոդերի հետագա ստեղծմամբ.
  • ամբողջական աջակցություն կյանքի ցիկլծրագրային համակարգը մշակման փուլում է, երբ օգտագործում եք այլ Rational արտադրանք:

Այսպիսով, հակադարձ ճարտարագիտության վրա հիմնված պարբերական հաշտեցման դեպքում Ռոուզի մոդելը և Դելֆի կոդը համահունչ են, ինչը թույլ է տալիս ծրագրավորողին համոզվել, որ ճարտարապետական ​​որոշումները էապես չեն փոխվել, ինչպես նաև ունեն ժամանակակից փաստաթղթավորված մոդելներ, որոնք արտացոլում են զարգացման իրական վիճակը: նախագծի։

Գրականություն:

  1. Վենդրով Ա.Մ. Տնտեսական տեղեկատվական համակարգերի համար ծրագրերի նախագծում: - Մ.: Ֆինանսներ և վիճակագրություն, 2000 թ
  2. Տրոֆիմով Ս.Ա. CASE տեխնոլոգիաներ. գործնական աշխատանք Rational Rose-ում - «BINOM Publishing», 2001 թ
  3. Բուտչ Գ., Ռեմբո Դ., Ջեյքոբսոն Ա. UML լեզու. Օգտագործողի ձեռնարկ՝ Per. անգլերենից։ - Մ.

Ներկայումս Դելֆիտեղեկատվական համակարգերի ստեղծման ամենահայտնի ծրագրային արտադրանքներից է: Դրա հիման վրա ստեղծվում են ինչպես փոքր ծրագրեր, այնպես էլ ձեռնարկությունների մասշտաբի համակարգեր: Ինչու է այս ապրանքը այդքան գրավիչ մշակողի տեսանկյունից: Առաջին հերթին, իհարկե, սա հիանալի ծրագրավորման տեսողական միջավայր է՝ հասկանալի, հեշտ սովորելու համար և հաճախ չի պահանջում պրոֆեսիոնալ ծրագրավորողի գիտելիքներ (որոնք, ինչպես գիտեք, քիչ-քիչ կուտակվում են երկար տարիների և տասնամյակների ընթացքում և աներևակայելի են թանկ): Delphi միջավայրում դուք կարող եք ստեղծել բավականին բարդ ծրագրային համակարգեր գրեթե զրոյից՝ գրելով նվազագույն կոդ։ Միաժամանակ լեզուն Օբյեկտ Պասկալ, որի վրա գրված է ծրագիրը, ծանոթ է շատերին (գոնե մեր երկրում), և ներկայումս ուսումնասիրվում է հայրենական տեխնիկական բուհերի մեծ մասի կրտսեր դասընթացներում։

Այնուամենայնիվ, ամեն ինչ այնքան էլ պարզ չէ: Եթե ​​ստեղծել փոքր ծրագրային համակարգերձեր սեփական կարիքների համար դուք կարող եք սահմանափակվել միայն տեսողական ծրագրավորման միջավայրով, այնուհետև ստեղծել ցանկացած ծրագրակազմ, որը բավականաչափ կարևոր է ծրագրաշարի որակի համար (SW), սկզբունքորեն այլ մոտեցում է պահանջվում, գոնե օգտագործելով կյանքի ցիկլի մոդելը մշակելիս: ՎՐԱ,գործընթացի փաստաթղթավորման համար բխող բոլոր պահանջներով:

Այս դասի համակարգերի համար հիմնականը հիմնական ճարտարապետության առկայությունն է, որն անփոփոխ է համակարգի զարգացման և շահագործման ողջ կյանքի ցիկլի ընթացքում, և որի հիմնական տարրերը դրված են նախագծման վաղ փուլերում: Հիմնական ճարտարապետությունը սովորաբար ստեղծվում է մի շարք մոդելների միջոցով, որոնք արտացոլում են համակարգի կառուցվածքի և նրա գործառույթների հետ կապված հիմնական կետերը: Կներեք, չորեքշաբթի Դելֆիկիրառելի չէ նման խնդիրների համար:

Բայց վերադառնանք Դելֆիի առավելություններին: Եթե ​​մենք հրաժարվենք տեսողական ծրագրավորման միջավայրից, ապա ի՞նչ է մնում: օբյեկտի մոդելը. Իսկ Delphi-ի այս առավելությունը գրավիչ է համակարգի դիզայների տեսանկյունից։ Հենց օբյեկտի մոդելն է (անկախ նրանից, թե ինչ-որ մեկին դա տարօրինակ է թվում), որը մեծապես որոշում է տեսողական ծրագրավորման միջավայրի հաջողությունը: Delphi օբյեկտի մոդելն ընդգրկում է խնդիրների լայն շրջանակ՝ տրամադրելով բարձր մակարդակի, բայց չափազանց ճկուն, գրեթե առանց սահմանափակումների, օգտատիրոջ միջերեսը կազմակերպելու, օպերացիոն համակարգի ռեսուրսները կառավարելու, տվյալների բազաները կառավարելու, բաց համակարգի ստանդարտներին աջակցելու, ինչպես նաև հանրաճանաչ տեխնոլոգիաների աջակցման գործիքներ։ (ներառյալ ԿՈՐԲԱև COM), շերտավոր ճարտարապետություն և, վերջապես, Համացանց-ներցանց -տեխնոլոգիա.

Հիմնական ճարտարապետությունը կարող է օգտագործել Delphi օբյեկտի մոդելի տարրերը (ինչու վերստեղծել վերը նշված բոլորը)՝ լրացնելով այն անհրաժեշտ բաղադրիչներով, որոնք արտացոլում են որոշակի համակարգի կիրառման առանձնահատկությունները:

Մենք օգտագործում ենք արտադրանքը համակարգի նախագծման համար Ռացիոնալ վարդֆիրմաներ Rational Software Corp.կողմնորոշում. Այս ապրանքն ունի բոլոր անհրաժեշտ բնութագրերը ցանկացած մասշտաբի համակարգի հիմնական ճարտարապետությունը ստեղծելու համար: Եթե ​​դուք ունեք բավարար ծրագրավորման փորձ Delphi միջավայրում, Rational Rose-ի և Delphi-ի օգտագործումը միասին, մեկ տեխնոլոգիական գործընթացի շրջանակներում, մեզ տեղին է թվում:

Այս հոդվածի նպատակն է դիտարկել, թե ինչպես են Rational Rose-ն ու Delphi-ն աշխատում միասին և մատնանշել (մեր կարծիքով, իհարկե), որտեղ յուրաքանչյուր ապրանք տեղավորվում է զարգացման գործընթացում: Հուսով ենք, որ դա թույլ կտա մշակողներին կարծիք կազմել իրենց կարիքների համար նման տեխնոլոգիայի կիրառելիության մասին և ժամանակ խնայել մանրամասները ուսումնասիրելու վրա:

Ինչ ենք մենք ուզում Rational Rose-ից և Delphi-ից

Մեթոդաբանությունը, որը մենք հետևում ենք մշակելիս ՎՐԱ, ծրագրային ապահովման մշակման մեթոդաբանություն է Ռացիոնալ միասնական գործընթաց Rational Software Corporation. Մեթոդաբանությունը տեխնոլոգիական տեսանկյունից ներառում է հետևյալ փուլերը (իհարկե, յուրաքանչյուր կրկնության շրջանակներում). Ստորև բերված աղյուսակը ցույց է տալիս, թե ինչի ենք ակնկալում հասնել Rational Rose-ի և Delphi-ի հետ յուրաքանչյուր փուլում:

Rational Rose-ի և Delphi-ի օգտագործումը ծրագրային ապահովման մշակման տարբեր փուլերում

Բեմ Ի՞նչ ենք մենք սպասում Ռոուզից: Ի՞նչ ենք մենք սպասում Դելֆիից
Դոմենի մոդելավորում Կատարվում է առարկայի տարածքի մոդելավորում, թեմայի տարածքը նկարագրվում է «ինչպես կա» -
Համակարգի պահանջների որոշում Որոշվում են համակարգի ֆունկցիոնալ պահանջները, համակարգի ինտերֆեյսի պահանջները Ստեղծվում է օգտատիրոջ միջերեսի նախատիպ
Վերլուծություն և ձևավորում Սահմանված են ճարտարապետության հիմնական բաղադրիչները, մոդելավորվում են տվյալները, մանրամասն նախագծված են համակարգի բաղադրիչները Delphi օբյեկտի մոդելի տարրերը ներառված են բազային ճարտարապետության մեջ: Ապահովում է մեկ առ մեկ համապատասխանություն Rose դասի դիագրամի տարրերի և Delphi բաղադրիչի տարրերի միջև
Իրականացում Դասերի դիագրամներն իրականացվում են որպես ծրագրային մոդուլներ, բաղադրիչների դիագրամներ և տեղադրման դիագրամներ: Ծրագրի կոդը ներդրված է, տրամադրվում է նախագծի անհատական ​​համապատասխանությունը Ռոուզում և Դելֆիում։ Կոդի փաստաթղթերը Դելֆիում արտացոլված են Ռոուզում
Փորձարկում Մոդելները մնում են գրեթե անփոփոխ։ Փորձարկման դեպքերը մշակվում են համակարգի գործառույթները փորձարկելու համար Փոփոխություններ են կատարվում ծրագրի կոդի մեջ։ Ծրագրի կոդի փոփոխությունները արտացոլված են Դելֆի կոդում
Իրականացում Տեղադրման դիագրամները ծրագրային ապահովման ներդրման հիմքն են: Մոդելների հիման վրա կարելի է ձեռք բերել համակարգային մակարդակի արդի փաստաթղթեր -

Ինչպես երևում է աղյուսակից, Ռոուզի և Դելֆիի միջև հիմնական փոխազդեցությունը կարող է տեղի ունենալ համակարգի պահանջների սահմանման, վերլուծության և նախագծման և իրականացման փուլերում: Այս փուլերում օգտագործվող հիմնական մոդելներն են՝ համակարգի ֆունկցիայի մոդելը, ինտերֆեյսի մոդելը, տվյալների մոդելը, ծրագրի մոդուլի ճշգրտման մոդելը:

Delphi-ի և Rose-ի միջև հաղորդակցությունը հնարավոր դարձնելու համար օգտագործվում է միջին ծրագիր, որը կոչվում է կոդի գեներատոր: Հարկ է նշել, որ, խստորեն ասած, այս ծրագրաշարի խնդիրները չեն սահմանափակվում միայն կոդի ստեղծմամբ։

Նախքան կոնկրետ կոդերի գեներատորի նկարագրությանը անցնելը, մենք թվարկում ենք, թե, մեր կարծիքով, այն պետք է ապահովի.

  • կարողանալ Rational Rose դասերը վերածել դասի սահմանման կոդի նպատակային լեզվով (այս դեպքում՝ Delphi ) . Այս դեպքում կոնկրետ դասի հետ կապված նկարագրությունը պետք է տեղադրվի ծրագրի կոդի համապատասխան տեղում.
  • աջակցություն դասի դիագրամի կարծրատիպերին, որոնք կապված են լեզվի հատուկ առանձնահատկությունների հետ (օրինակ՝ կարծրատիպը միավոր, ինտերֆեյսկամ սեփականությունհամապատասխան սահմանումներով՝ կոնկրետ փաթեթ՝ Delphi մոդուլ , դաս - Delphi ինտերֆեյս, հատկանիշ - հատկություն Delphi բաղադրիչի համար);
  • ունեն նկարագրված, ակնհայտ և միանշանակ ձև՝ դասի դիագրամը Delphi կոդի վրա քարտեզագրելու համար: Այս դեպքում էկրանը պետք է հարմարեցվի.
  • կարողանալ ներմուծել իրական Delphi օբյեկտի մոդելը (ցանկալի է տարբեր տարբերակներգրադարաններ VCL);
  • աջակցում է կոդի ստեղծմանը Delphi դասերի ստեղծման համար;
  • կարողանալ ճիշտ ցուցադրել դասերի միջև հարաբերությունների բնորոշ տեսակները (առնվազն ընդհանրացում, ագրեգացում և կազմ);
  • կարողանալ ցուցադրել կապի կարդինալությունը ծրագրի կոդում.
  • Հիմնվելով Rose բաղադրիչի դիագրամի վրա՝ ստեղծեք Delphi նախագիծ, որը պարունակում է անհրաժեշտ ծրագրային մոդուլներ ( առաջադիմական ճարտարագիտություն);
  • Դելֆիի ավարտված նախագծի հիման վրա կառուցեք Rose բաղադրիչի դիագրամ, որը պարունակում է որպես բաղադրիչներ Delphi նախագծի բոլոր մոդուլները և հարակից դասերը, որոնք ստացվել են Դելֆիից հակադարձ ճարտարագիտության արդյունքում ( հակադարձ ճարտարագիտություն). Դիագրամները պետք է լինեն կոմպակտ և ինքնըստինքյան.
  • ապահովել Rose-ի և Delphi մոդելի ավտոմատ համապատասխանեցումը Delphi մոդուլների կոդում փոփոխություններ կատարելուց հետո ( երթևեկության ճարտարագիտություն);
  • Rose մոդելում փոփոխություններ կատարելուց և ծածկագիրը վերականգնելուց հետո մի ոչնչացրեք Delphi միջավայրում գրված բեկորները.
  • ի լրումն կոդ ստեղծելու, հնարավորություն ունեն ցուցադրելու այնպիսի կարևոր Delphi տարրը, ինչպիսին են ձևերը.
  • աշխատել իրական նախագծերի վրա (հարյուրավոր դասեր և մոդուլներ) ընդունելի կատարողականությամբ:

Delphi կոդերի գեներատոր Ensemble Systems, Inc.-ից:

Ընկերություն Ensemble Systems Inc.ներկայումս լրացուցիչ բաղադրիչների առաջատար մատակարարներից է (ավելացնել ներ) Rational Rose-ի համար . Այս բաղադրիչները աջակցում են կոդերի ստեղծմանը հայտնի ծրագրավորման համակարգերի լայն շրջանակի համար, ներառյալ Delphi-ն: Դիտարկենք Դելֆի կոդերի գեներատորի աշխատանքը Rational Rose միջավայրում։

Delphi բաղադրիչը տեղադրելուց հետո Ensemble Systems, Inc. հայտնվում է Rational Rose միջավայրում նոր տարրմենյու Գործիքներ բաժնում (նկ. 1):

Կոդի գեներատորը կոչվում է Rose Delphi Link (RDL) Ինչպես օգտագործել RDL , մենք կնկարագրենք պլանում, երբ դիտարկենք կոնկրետ օրինակ: Առայժմ մենք կկենտրոնանանք RDL-ի հիմնական հատկանիշների վրա՝ չհասկանալով, որ դժվար թե հնարավոր լինի արդյունավետ օգտագործել RDL-ը:

Նախ նշենք, որ RDL-ի կողմից ստեղծված կոդը չի պարունակում իրականացում (օբյեկտի մոդելի համար սա սովորաբար մեթոդի մարմինն է): Երբ մոդելը թարմացվում է Դելֆի կոդից (հակադարձ ինժեներական կամ շրջագայություն), մոդելը չի ​​բեռնում Դելֆի միջավայրում գրված կոդը մեթոդի մարմինների համար: Մոդելի փոփոխությունները վերաբերում են միայն դեկլարատիվ տարրերին՝ դասերի սահմանումներ, միջերեսներ, տեսակներ, գրառումներ և այլն։ Այնուամենայնիվ, Rose-ից ծածկագիրը վերականգնելիս Դելֆիի մեթոդների մարմինները նույնպես մնում են անփոփոխ, և փոխվում են միայն դեկլարատիվ տարրերը: Հետեւաբար, անհնար է «փչացնել» ծրագրային կոդը վերականգնվելիս։ Մոդելի տարրերը RDL ծրագրի կոդում ցուցադրելու համար այն օգտագործում է Կոդի ստեղծման հատկություններ (ԿԳ P) հատուկ աղյուսակների մի շարք է, որոնք կապված են Rational Rose մոդելների յուրաքանչյուր տարրի հետ և պարունակում են Դելֆիին հատուկ տեղեկատվություն, որն օգտագործվում է կոդի ստեղծման համար: Այս աղյուսակների մի շարք (նկ. 2) հասանելի է հիմնական ընտրացանկից (հատ Գործիքներ/Ընտրանքներ, էջանիշ Դելֆի).

Որպեսզի Delphi-ի CGP-ն հասանելի լինի ճշգրտումից, դուք պետք է սահմանեք դաշտի արժեքը Լռելյայն լեզու = Դելֆիէջանիշ նշումընտրացանկի տարր Գործիքներ/Ընտրանքներ: Մենյու բաժնում ավելի հեշտ շահագործման համար Գործիքներ/Անսամբլ Գործիքներկա նաև էջանիշ Delphi Property Editor, որտեղ կարող եք սահմանել ընտրված մոդելի տարրի հատկությունները: Նկատի ունեցեք, որ CGP-ի օգտագործումը սովորական պրակտիկա է Ensemble Systems, Inc. կոդերի գեներատորների համար: և ընդհանրապես Ռացիոնալ Ռոզի համար: Delphi Property Editor-ն օգտագործելիս կարող եք դիտել համապատասխան մոդելի տարրի (օրինակ՝ դասի) կոդը՝ առանց կոդի գեներացման, ինչը հաճախ շատ հարմար է։

Այժմ եկեք տեսնենք, թե ինչպես է RDL-ն քարտեզագրում նախագծման ընդհանուր պրակտիկաները կոդավորման համար:

1. Դասից ժառանգություն և միջերեսի ներդրում

Փոխակերպվել է կոդի՝

Type SampleClass1 = դաս (BaseClass, SampleInterface) (...) end;

2. Ասոցիատիվ կապեր դերերի հետ և կապի տարբեր կարդինալություն

Փոխակերպվել է կոդի՝

Մուտքագրեք SampleClass3 = դասի մասնավոր ArrayRole1. SupplierClass2-ի զանգված; ArrayRole2. SupplierClass5-ի զանգված; ArrayRole3. SupplierClass3-ի զանգված; ArrayRole4. Նյութեր; վերջ;

Նկատի ունեցեք, որ զանգվածները (կամ ֆիքսված երկարություն կամ դինամիկ) օգտագործվում են 1-ից տարբեր կապի կարդինալությամբ դերեր ներկայացնելու համար: Օրինակում SampleRange հաստատունը պետք է սահմանվի Array_Range հատկության մեջ ArrayRole-ի համար: Նկատի ունեցեք, որ Role4-ը կոդում սահմանված չէ որպես զանգված, այլ որպես TItems տեսակ, որը պետք է ներկայացնի հավաքածու:

Փոխակերպվել է կոդի՝

SampleClass1 = դաս Public A. SampleClass2; B. SampleClass3; C. SampleClass4-ի զանգված; D. SampleClass5-ի զանգված; վերջ;

Նկատի ունեցեք, որ մենք ագրեգացիայի և կազմի կոդի մեջ էական տարբերություն չենք գտել, և ստացված կոդը շատ նման է դերերի հետ սովորական ասոցիացիայի ծածկագրին:

4. Դելֆի ծրագրի կոդի բնորոշ տարրերի կարծրատիպեր

RDL-ն ունի մի քանի կարծրատիպեր՝ Delphi կոդի բնորոշ տարրերը ներկայացնելու համար՝ ցուցիչներ, զանգվածներ, ֆայլեր, դասի հղումներ և այլն։ Ճիշտ է, մեր կարծիքով, այս տարրերը քիչ են օգտագործվում օբյեկտի մոդելի բարձր մակարդակի նախագծման մեջ:

RDL-ի առանձնահատկությունների համառոտ նկարագրության վերջում մենք նշում ենք հետևյալը. Դիզայնի կարևոր տարրը համապատասխան մոդելի տարրի բնութագրում ներկայացված փաստաթղթերն են: RDL-ն ապահովում է դրա փոխանցումը ծրագրի կոդը: Այսպիսով, գործողությունների համար (Դելֆի դասի մեթոդներ) դաշտի արժեքը փաստաթղթերճշգրտման մեջ տեղադրվում է կոդի մեջ մինչև մեթոդի սահմանումը: Ընդհակառակը, Delphi կոդի մեկնաբանությունները կարող են փոխակերպվել փաստաթղթային դաշտերի Rose Model Element Specification-ում:

Ինչ չի կարող անել RDL-ն

Մենք նախկինում սահմանել ենք, թե ինչ պետք է տրամադրի Delphi կոդերի գեներատորը: Ընդհանուր առմամբ, RDL-ն ընդգրկում է թվարկված բոլոր հատկանիշները, թերևս մեկ բացառությամբ. այն թույլ չի տալիս ձևեր ստեղծել. Պատկերացնու՞մ եք Դելֆիի միջավայրն առանց ձևերի: Մենք էլ չենք կարող։ Դելֆի միջավայրում տեսողական ծրագրավորման հիմնական պարադիգմը համապատասխան հատկությունների արժեքները սահմանելն է (դասի ատրիբուտների արժեքները) և իրադարձությունների մշակողների համար ծածկագիրը գրելը: Եվ այս հարցում, ցավոք, RDL-ն մեզ ոչ մի օգնություն չի ներկայացնում: Բայց արդյո՞ք դա իսկապես այդքան լուրջ սահմանափակում է: Այստեղ կարող են լինել տարբեր կարծիքներ։

Հավելված ստեղծելու եղանակներից մեկը հետևյալն է՝ օգտատիրոջ ինտերֆեյսը նախագծված է Delphi միջավայրում (իսկ որտե՞ղ է դա անելու ամենաարագ և ամենահեշտ ձևը) և ծրագրի կոդը վերածվում է Rational Rose մոդելների։ Չնայած այն հանգամանքին, որ ձևերը բավականին ծավալուն են, դրանք կարելի է «սանրել», բայց գլխավորն այն է դրանցում անկապ մանրամասներ չցուցադրել. Rational Rose-ում նախագծված են հենց օբյեկտի մոդելը, տվյալների մոդելը, բաղադրիչ մոդելը, այսինքն. ճարտարապետական ​​նշանակալի տարրեր.Համակարգի ինտերֆեյսի մոդելի հետ միասին նրանք կազմում են համակարգի կառուցվածք, որը կարելի է հետևել կոնֆիգուրացիայի կառավարման գործիքներով, ներառված փաստաթղթերում, հեշտությամբ վերլուծվել հիմնարար սխալների համար և հիմք է հանդիսանում ֆունկցիոնալ փորձարկման համար, այսինքն՝ կարող է օգտագործվել ցանկացած փուլում: կյանքի ցիկլի ( Ջ Ք) ծրագրային ապահովման մշակում. RDL-ը միևնույն ժամանակ ապահովում է մոդելների և ծրագրի կոդի ամբողջական համակարգում ծրագրաշարի ողջ կյանքի ցիկլի ընթացքում: Մենք փորձում ենք հետևել այս մոտեցմանը:

Delphi-ի և Rational Rose-ի համատեղ օգտագործման օրինակ

Ցավոք սրտի, կարճ հոդվածի շրջանակներում հազիվ թե հնարավոր լինի իրական կիրառման լիարժեք օրինակ ցույց տալ։ Այնուամենայնիվ, դա պարտադիր չէ: Հոդվածի այն կետում, որտեղ մենք նկարագրեցինք, թե ինչ ենք ակնկալում Ռոուզից և Դելֆիից զարգացման յուրաքանչյուր փուլում, մենք նշեցինք, որ մեզ համար կարևոր է հիմնական ճարտարապետություն ստեղծելու նախագծման մեջ, այս դեպքում՝ Դելֆիի տարրերի ընդգրկմամբ: օբյեկտի մոդելը. Այստեղ մենք կցուցադրենք RDL-ի հնարավորությունները:

Որպես օրինակ՝ մենք ընտրել ենք համակարգի մի հատված, որն ապահովում է հիվանդի վիճակի ցուցիչների ցուցադրումը ներկա բժշկի համար: Համակարգին ներկայացվող ֆունկցիոնալ պահանջները ներկայացված են գծապատկերի տեսքով (նկ. 3):

Դիագրամը ցույց է տալիս երեք ակտիվ օբյեկտներ՝ ադմինիստրատոր, սարք, բժիշկ: Մենք չենք դիտարկի սարքի հետ կապված համակարգի գործառույթները: Ինչ վերաբերում է սարքին, մեզ համար էական է, որ ցուցիչը ստացվի որոշակի հաճախականությամբ, և որ համակարգը ինտերֆեյս տրամադրի այն տվյալների բազայում պահելու համար: Համակարգի մնացած բոլոր գործառույթները կապված են օգտատիրոջ միջերեսի և տվյալների բազայում տեղեկատվության պահպանման կամ դրա ընտրության ապահովման հետ։

Համակարգը հիմնված է հետևյալ ճարտարապետական ​​լուծումների վրա.

  • օգտագործողի ինտերֆեյս ( GUI) համակարգը կառուցված է Delphi օբյեկտի մոդելի հիման վրա.
  • DBMS-ի հետ ինտերֆեյսը կառուցված է Delphi օբյեկտի մոդելի հիման վրա.
  • Հարաբերական DBMS-ն օգտագործվում է որպես DBMS:

Համակարգ նախագծելիս մենք պետք է սահմանենք՝ դասեր, որոնք ներկայացնում են օգտատիրոջ միջերեսը ( սահմանային դասեր); կառավարման դասեր, որոնք իրականացնում են համակարգի տրամաբանությունը ( հսկողության դասեր); օբյեկտի դասեր՝ տեղեկատվության պահպանման կառուցվածքը ցուցադրելու համար ( սուբյեկտների դասեր).

Մեր կողմից նախագծված միավորների դասերը ներկայացված են Նկ. չորս.

Էություն դասի օբյեկտի մոդելից մենք ստացանք ֆիզիկական տվյալների մոդել հարաբերական DBMS-ի համար և տրամադրեցինք դրա արտադրությունը հատուկ DBMS-ի համար: Մանրամասները, թե ինչպես դա կարելի է անել Rational Rose միջավայրում, բաց են թողնվել այստեղ:

Քանի որ մենք ծրագրում ենք կառուցել GUI՝ հիմնված Delphi օբյեկտի մոդելի վրա, խելամիտ է ենթադրել, որ օգտագործողի միջերեսը ներկայացնելու դասերը (սահմանային դասեր) ) կարելի է ձեռք բերել Delphi միջավայրում օգտագործողի միջերեսը նախատիպավորելիս: Դասեր օգտագործողի միջերես (սահմանային դասեր ) նախագծվում են նկ. 5 .

Դասի դիագրամում մենք հանել ենք ատրիբուտներն ու գործողությունները Delphi օբյեկտի մոդելի բոլոր դասերի համար. քանի որ յուրաքանչյուր դասում կան մի քանի տասնյակ ատրիբուտներ և գործողություններ, այս դեպքում դիագրամը կդառնա ճնշող: Դիագրամը հստակ ցույց է տալիս, թե Delphi օբյեկտի մոդելի որ դասերն են օգտագործվում օգտատիրոջ միջերեսի տարրերը ներկայացնելու համար և կոնկրետ ինչ են դրանք ներկայացնում: Մոդելի ներկայացումից անմիջապես պետք է բացառվի TGroupBoxև T պիտակորպես ճարտարապետական ​​առումով անկապ տարրեր։ Աղյուսակային խմբագրման ձևի դասի դիագրամը ներկայացված է նկ. ութ .

Բացի հիմնական պատուհանից, մեզ անհրաժեշտ է նաև ինտերֆեյս (GUI)՝ հիվանդների տվյալների բազայի, ցուցիչների տեսակների և չափման միավորների պահպանման համար: Մենք նախատեսում ենք դրա համար օգտագործել աղյուսակային խմբագրման ստանդարտ ձև, որը հիմնված է ստանդարտ Delphi բաղադրիչների վրա: Եկեք գծենք այս ձևը Դելֆիում և այն վերածենք Ռացիոնալ վարդի մոդելի (նկ. 9):

Էկրանի մյուս բոլոր ձևերը, օգտագործելով ժառանգության մեխանիզմը, կստացվեն աղյուսակային խմբագրման ձևից: Դիտարկման տեսակների գրացուցակի տեսքի օրինակը ներկայացված է Նկ. տասը .

Այսպիսով, մենք ամբողջությամբ որոշել ենք օգտատիրոջ ինտերֆեյսի արտաքին տեսքը, և այժմ կարող ենք կենտրոնանալ հավելվածի տրամաբանության իրականացման վրա։ Հարմարության համար (սակայն դա մի ընդունեք որպես ստանդարտ պրակտիկա) մենք կօգտագործենք արդեն գոյություն ունեցող ինտերֆեյսի դասը որպես կառավարման դաս TMMainForm.

TMainForm դասը պետք է ապահովի.

  • նավարկություն էկրանների միջև, կոճակի սեղմման իրադարձությունների մշակում այլ ձևեր ցուցադրելու համար.
  • բացվող ցուցակների, հիվանդների, ցուցիչների, չափման միավորների լրացում;
  • չափման միավորի ավտոմատ հաշվարկ ըստ ցուցիչի տեսակի.
  • հիվանդի ընտրությունը քարտի համարով;
  • հիվանդի համար քարտի համարի ընտրություն.
  • ցուցիչի վերջին արժեքի հաշվարկ և ցուցադրում:

Եկեք ստեղծենք գործողություններ Rational Rose միջավայրում՝ վերը նկարագրված TMainForm դասի գործառույթներն իրականացնելու համար (նկ. 11):

TMainForm դասի գործողությունները պետք է բաժանվեն երկու խմբի՝ հաշվարկներ և իրադարձությունների արձագանքներ։ Գործողություններ, որոնք ավարտվում են Սեղմելկամ փոփոխություն, Ինչպես նաեւ ձևի ցուցադրություն- իրադարձությունների արձագանքները, մնացածը `հաշվարկներ:

Գործողությունները պետք է իրականացնեն հետևյալը.

  • FillPatientLis t - հիվանդների բացվող ցուցակի լրացում.
  • FillMeasureList- լրացնելով չափման միավորների բացվող ցանկը.
  • FillObservList- դիտարկման տեսակների բացվող ցանկի լրացում.
  • CalcObservVal- վերջին դիտարկված արժեքի հաշվարկը.
  • ChPatientByCard- հիվանդի որոնում քարտի համարով.
  • ChCardByPatient- որոնել հիվանդի համար քարտի համարը.
  • ChMeasureByObserv- վերադարձնել չափման միավորը նշված տեսակի դիտարկումների համար.
  • CardValChange- արձագանքը քարտի համարի փոփոխությանը;
  • PatientChComboChange- արձագանքը ցուցակում նոր հիվանդի ընտրությանը.
  • ObservTypeComboChange- արձագանքը դիտարկման տեսակի ընտրությանը.
  • GetValueButtonClick- արձագանքը արժեքը հաշվարկելու կոճակը սեղմելուն.
  • PatientDictClick- արձագանքը հիվանդների կոճակը սեղմելուն;
  • ObservTypeDictClick- կոճակը սեղմելու արձագանք Դիտարկումների տեսակները;
  • MeasureDictClick- կոճակը սեղմելու պատասխանը Չափման միավորներ;
  • ձևի ցուցադրություն- մշակում, երբ ձևն առաջին անգամ ցուցադրվում է էկրանին:

Եվ վերջին բանը, որ անհրաժեշտ է դիզայնն ավարտելու համար, տվյալների բազայի հետ փոխազդեցություն իրականացնելու համար նախատեսված կառավարման դասերն են: Առանց դրանց հնարավոր չէ ոչ տվյալների բազայի լրացում, ոչ էլ TMainForm կառավարման դասի հաշվարկային գործողությունների իրականացում։ Ինչպես ինտերֆեյսի դասերի դեպքում, մենք կօգտագործենք միջավայրը Դելֆինախագծել տվյալների բազայի փոխազդեցության վերահսկման դաս. TDataModule1, այնուհետև կատարեք մոդելի համապատասխանեցում: Տվյալների բազայի փոխազդեցության նոր մոդուլը ներկայացված է նկ. 12 .

Օբյեկտի վրա հիմնված QueryPatient, KeyObType, QueryMeasuresև PatientDataSource, ObTypeDataSource, MeasureDataSourceաշխատում է հիվանդների տվյալների բազայի, դիտարկումների տեսակների և չափման միավորների հետ՝ ստանդարտ ձևով Delphi-ի համար՝ հիմնված մի զույգ դասի օբյեկտների օգտագործման վրա։ TQuery, Տտվյալների աղբյուրև դրանց փոխազդեցությունը GUI դասերի հետ: ObservDataSourceօգտագործվում է կատարված դիտարկումների մասին տեղեկատվություն ստանալու համար: Նկարագրել կառավարման դասերի փոխազդեցությունը TDataModule1և TMMainFormդուք պետք է ստեղծեք մի քանի փոխազդեցության դիագրամներ՝ կապված տվյալների բազայում պահանջվող հարցումների կատարման հետ (հաշվի առնելով հոդվածի սահմանափակ ծավալը՝ մենք բաց ենք թողնում այս դիագրամները):

Նշենք, որ համակարգին նոր մոդուլներ և դասեր ավելացնելու և մոդելների համապատասխանեցման գործընթացում մենք ավտոմատ կերպով ստացանք համակարգի բաղադրիչ մոդելը (նկ. 13):

Այսպիսով, եկեք ամփոփենք հակիրճ. Rational Rose-ի և Delphi-ի համատեղ օգտագործման արդյունքում մենք ստացանք.

  • ինտերֆեյսի և կառավարման դասեր, որոնք կազմակերպված են փաթեթներով;
  • համակարգի բաղադրիչ մոդելը:

Կազմակերպության դասերը և դինամիկայի դիագրամները նախագծված են Rational Rose-ում: Հետագայում Rational Rose մոդելները մեզ հիմք են տալիս նախագիծը փաստաթղթավորելու, դրա կարգավիճակին հետևելու և ֆունկցիոնալ թեստավորում կազմակերպելու համար: Դելֆիում ձեռք բերված նախագիծն իր հերթին հիմք է հանդիսանում իրականացման իրականացման համար։ Իրականացման գործընթացում նախագիծը պարբերաբար համաձայնեցվում է Դելֆիում տեխնոլոգիայի վրա հիմնված Rational Rose մոդելի հետ Շրջագայություն, որը թույլ է տալիս արդիական պահել մոդելները և սահուն զարգացնել դրանք՝ համաձայն փոփոխվող համակարգի պահանջների:

Եզրակացություն

Եզրափակելով, մենք ուզում ենք ուշադրություն դարձնել այն փուլերին, որտեղ, մեր կարծիքով, Delphi-ի և Rational Rose-ի համակցված օգտագործումը առավել նպատակահարմար է տեխնոլոգիական տեսանկյունից:

Նախ , օգտատիրոջ ինտերֆեյսի նախատիպի ստեղծումն է։ Արագ ստեղծում Delphi միջավայրում ձևերը նաև թույլ են տալիս արագորեն ստանալ ինտերֆեյսի դասերի մոդելը Rose-ում, ընդգծել դրա հիման վրա հիմնարար ճարտարապետական ​​կետերը (օրինակ՝ ընդհանուր վարքագիծ, բնորոշ GUI տարրեր, ավելորդություն), ինչպես նաև համեմատել ինտերֆեյսի դասերը ֆունկցիոնալ պահանջների հետ։ համակարգը.

Երկրորդ , կառավարման դասերի ստեղծումն է Rational Rose մոդելներում, որին հաջորդում է կոդերի ստեղծումը Դելֆիում։ Վերահսկիչ դասերը ավելի տեսողականորեն ներկայացվում են Rational Rose միջավայրում՝ օգտագործելով UML (Դելֆիում դրանք կարող են «լղոզվել» մեծ ինտերֆեյսի դասերի մեջ):

Եւ, վերջապես երրորդ , կոդի իրականացման փուլն է, երբ մոդելի մեջ կարող են կատարվել իրականացման հետ կապված փոփոխություններ: Այս փուլում մոդելների պարբերական համադրումը թույլ է տալիս մշակողին համոզվել, որ հիմնարար ճարտարապետական ​​լուծումները էապես չեն փոխվել, ինչպես նաև ունենալ ժամանակակից մոդելներ, որոնք արտացոլում են զարգացման իրական վիճակը:

ComputerPress 4 «2001 թ