Ծրագրակազմի ճարտարագիտություն

ծրագրային սիսթեմների կազմակերպման կարևորագույն որոշումների համագործակցություն։ Իրենից ներկայացնում է՝ ծրագրավորման կազմի հիմնային կառուցվածքների ստեղծման և նրանց կարգ ու կանոնի ապահովման, համակարգչային գիտությունների ճյուղ։

Ակնարկ

Ծրագրավորման կազմերում առաջացած խնդիրների լուծումներով զբաղվող Հ.Գ.-ի ճյուղ, որը լայն տարածում է ստացել 1990-ական թվականներին։ Որպես այդպիսին՝ ծրագրակազմի ճարտարագիտությունը, չի գործածվում որպես մի լիարժեք տերմին։ Գոյություն ունեն տվյալ ուղղության շատ շրջանակներ, օրինակ ՝ Ծրագրային Ապահովման Ինժեներական Ինստիտուտի կայքը ներկայացնում է տվյալ ճյուղի ավելի քան 150 կողմնորոշում։ Տվյալ ճյուղի հիմքում ընկած գաղափարը ծրագրավորման գործողությունների հեշտացումն է։ Այն իր մեջ ներառում է․

  1. Գործողությունների կատարման տարածքի ուսումնասիրումը և այնտեղ գործելու համար անհրաժեշտ էլեմենտների ապահովումը
  2. Տարածքում գործող կառուցվածքների և էլեմենտների փոխկապակցումը միմյանց հետ և դրանց պահվածքը
  3. Ճարտարագիտական ոճի ապահովումը, որով առաջնորդվելու է ամբողջ կազմակերպությունը
  4. Մշակողների միջև շփման ապահովումը

Պատմությունը

Երբ համակարգչային գիտությունները զարգացան, հայտնվեցին խնդիրներ կապված ծրագրավորման համակարգերի դիսցիպլինայի հետ։ Որպես արդյունք առաջացավ ծրագրակազմի ճարտարագիտության գաղափարը 1960-ական թվականներին։ Այդ գաղափարի մշակումը հայտնվեց գիտնականներ Էդսգեր Դեիհկսթրաի (1968 թ․) և Դեյվիդ Պարնասի (1970 թ․) հետազոտական աշխատանքներում։ Այս գիտնականները շեշտը դրեցին ճիշտ կառուցվածքների կազման՝ ծայրահեղ կարևորության, վրա։ Ծրագրային ճարտարագիտության գաղափարի հետագա տարածումը տեղի ունեցավ 1990 թվականի սկզբին։

Ծրագրային Ճարտարագիտության Բնութագրման Լեզուներ

Այլ կերպ ՝ ADLS ։ Տարբեր ինստիտուտների կողմից ստեղծվել են տարբեր Ծ.Ճ.Բ.Լ.-ներ․

  1. AADL (ստանդարտ SAE)
  2. Wright (Քարնեգի Մելոն համալսարան)
  3. Acme (Քարնեգի Մելոն համալսարան)
  4. xADL (UCI)
  5. Darwin (Լոնդոնի Իմպերիալիստական Քոլեջ)

Սակայն, բացի մասնագիտացված լեզուներից օգտագործվում է նաև մոդելավորման միասնակն լեզու։

Չորս Հիմնական Գործողություննեը

  1. Ճարտարագիտական Վերլուծություն՝ տվյալ գործողության տեղանքի ուսումնասիրության ընդացք, որի շնորհիվ կողմնորոշվում են համակարգի պահանջները։ Հետազոտության համար նախատեսված մուտքագրումներն ու պահանջները կարող են գալ ցանկացած քանակի աշխատակիցներից և պարունակի տարրեր ինչպիսիք են՝ 1) այն ինչը համակարգը կանի ֆունկցիոնալ պահանջների հետ, 2) որքան լավ համակարգը կբարելավվի ոչ-ֆունկցիոնալ պահանջարկները (հուսալիություն, գործունակություն, կատարման արդյունավետություն, անվտանգության և համատեղելիության ապահովում) ՝ աշխատանքային ժամանակի մեջ տեղավորվելով, 3) ոչ-ֆունկցիոնալ պահանջարկների զարգացման ժամանակը, 4) բիզնեսի պահանջները և համակարգի բնապահպանական ենթատեքստերը, որոնք ժամանակի ընթացքում կարող են փոխվել, օրինակ՝ իրավաբանական, սոցիալական, ֆինանսական, մրցակցային և տեխնոլոգիական խնդիրները։ Հետազոտության արդյունքներն այն պահաջարկներն են, որոնք ունեն չափելի ազդեցություն տվյալ համակարգի կառուցվածքի վրա։ Այդ արդյունքները կոչվում են ճարտարագիտորեն էական պահանջներ։
  2. Ճարտարագիտական Սինթեզ՝ դիզայնի կառուցման ընդացքը։ Հաշվի առնելով` վերլուծության արդյունքում որոշված, ճարտարագիտական նշանակալի պահանջները, նախագծի ներկա վիճակը և գնահատման ցանկացած գործողության արդյունքները, ստեղծվում և բարելավվում է դիզայնը։
  3. Ճարտրագիտակն Գնահատում՝ պրոցես, որի ժամանակ որոշվում է, թե հետազոտության ընդացքում ծագած պահանջարկները որքանով են բարելավված՝ տվյալ դիզայնի, կամ տվյալ դիզայնի ինչ-որ մի բաժնի, կողմից։ Գնահատումը տեղի է ունենում, երբ ճարտարգետը կայացնում է դիզայներական որոշում։ Գնահատումը կարող է տեղի ունենալ, երբ դիզայնի որոշ բաժին արդեն արված է։ Գնահատումը կարող է տեղի ունենալ, երբ վերջնակն դիզայնը պատրաստ է։ Նաև գնահատումը կարող է տեղի ունենալ համակարգի կառուցումից հետո։
  4. Ճարտարագիտական Զարգացում՝ պահանջների և միջավայրի փոփոխություններին համապատասխանելու համար գոյություն ունեցող ծրագրակազմի կառուցվածքը պահպանելու և հարմարեցնելու գործընթացը։ Քանի որ, ծրագրակազմի ճարտարագիտությունը ապահովում է ծրագրակազմի համակարգի հիմնարար կառուցվածքը, նրա զարգացումն ու օգտագործումը պարտադիր ազդեցություն կթողնեն հիմնարար կառուցվածքի վրա։ Որպես այդպիսին, ճարտարագիտական զարգացումը կապված է նոր գործառույթներ ավելացնելու, ինչպես նաև առկա ֆունկցիոնալությունն ու համակարգի վարքը պահպանելու հետ։

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

  • Ռոբերտ Սեսիլ Մարտին՝ «Clean Architecture: A Craftsman's Guide to Software Structure and Design»
  • Կառլ Ի․ Վիգերս և Ջոհն Բիթթի՝ «Development of software requirements»
  • Ռ․ Ն․ Թեյլոր, Ն․ Մեդվիդովիչ և Ի․ Մ․ Դաշոֆի՝ «Software Architecture: Foundations, Theory, and Practice»

Տեսեք նաև

  1. Վիրտուալիզացիա
  2. Ցանցային ծրագրավորում
  3. Ծրագրակազմի փորձարկում
  4. Ծրագրակազմի անվտանգության էթիկա