Ծրագրային ճարտարագիտություն ընդդեմ համակարգչային գիտության
Ժամանակակից հասարակության մեջ համակարգիչները դարձել են անբաժանելի և անխուսափելի մաս: Այնուամենայնիվ, մենք ավելի քիչ ենք կենտրոնանում այս ծանոթ բաների ներքին աշխատանքի վրա: Համակարգչային գիտությունը համակարգչային համակարգերի տեսական հիմքն է, մինչդեռ ծրագրային ճարտարագիտությունը այդ սկզբունքների կիրառումն է խնդիրների մեջ՝ ծրագրային լուծում մշակելու համար:
Համակարգչային գիտություն
Համակարգչային գիտությունը հաշվողական սարքավորումների և ծրագրային ապահովման հիմնական գիտությունն է: Այն պատկերացում է տալիս ինչպես ծրագրային, այնպես էլ ապարատային բաղադրիչների մեխանիզմի և համակարգչային համակարգերում ներդրման և կիրառման համար հաշվարկման տեսական հիմքերի մասին:
Համակարգչային գիտությունը բաղկացած է բազմաթիվ հիմնական ենթաճյուղերից: Հաշվողական տեսությունը, տեղեկատվության և կոդավորման տեսությունը, ալգորիթմները և տվյալների կառուցվածքը, ծրագրավորման լեզվի տեսությունը պատկանում են տեսական համակարգչային գիտությանը: Կիրառական համակարգչային գիտության ենթաբաժիններն են՝ արհեստական բանականություն, համակարգչային ճարտարապետություն և ճարտարագիտություն, համակարգչային գրաֆիկա և վիզուալիզացիա, գաղտնագրություն և համակարգչային անվտանգություն, համակարգչային ցանցեր, համաժամանակյա, զուգահեռ և բաշխված համակարգեր, տվյալների բազաներ և տեղեկատվության որոնում և ծրագրային ապահովման ճարտարագիտություն::
Այս ենթաճյուղերից շատերը հիմնված են մաթեմատիկական տեսությունների վրա: Որոշ կիրառական ասպեկտներ կապված են մեխատրոնիկայի և այլ կիրառական գիտությունների հետ:
Նաև, այս ենթաբաժինները տարածվում են փոքր ուսումնական տարածքների վրա: Օրինակ, Հաշվողական տեսությունը պարունակում է ուսումնասիրության ոլորտներ, ինչպիսիք են Ավտոմատների տեսությունը, Հաշվարկելիության տեսությունը, Բարդության տեսությունը, Կրիպտոգրաֆիան և Քվանտային հաշվողական տեսությունը:
Ծրագրային ճարտարագիտություն
Ծրագրային ճարտարագիտությունը կարելի է համարել որպես կիրառական համակարգչային գիտության հիմնական ենթաճյուղերից մեկը: Այն կենտրոնանում է արդյունավետ ծրագրային համակարգերի կառուցման վրա՝ օգտագործելով խիստ ինժեներական մոտեցում: Այն կարելի է բնութագրել որպես համակարգված, կարգապահ, քանակական մոտեցում ծրագրային ապահովման նախագծման, մշակման, շահագործման և սպասարկման և այդ մոտեցումների ուսումնասիրման համար: Չկա ծրագրային ապահովման ճարտարագիտության ոչ մեկ ընդունված սահմանում, այլ դրա նպատակի մեկնաբանություն:
Ֆրից Բաուերը ծրագրային ճարտարագիտությունը սահմանեց որպես «Ձայնային ինժեներական սկզբունքների ստեղծում և օգտագործում՝ տնտեսապես զարգացած ծրագրակազմ ստանալու համար, որը հուսալի է և արդյունավետ աշխատում իրական մեքենաների վրա»:
Ծրագիրը ֆիզիկական չէ. դա տրամաբանական սուբյեկտներ են, որոնք աշխատում են համակարգչային համակարգում: Հետևաբար, այն պետք է նախագծված լինի օպտիմալ կատարման համար ինչպես ապարատային, այնպես էլ գործառնական ասպեկտներում: Այս նպատակներին հասնելու համար ծրագրային ապահովման ինժեներները օգտագործում են զարգացման մոդելներ: Այս մոդելները ներառում են ծրագրային ապահովման զարգացման հիմնական քայլերը, ինչպիսիք են նախագծումը, կոդավորումը, անսարքությունների վերացումը և սպասարկումը միասնական շրջանակի մեջ, որը թույլ է տալիս ծրագրային ապահովման համակարգված առաջընթացն իր կյանքի ցիկլի ընթացքում:
Ո՞րն է տարբերությունը Ծրագրային ճարտարագիտության և համակարգչային գիտության միջև:
• Համակարգչային գիտությունը կենտրոնանում է հաշվարկների տեսական ասպեկտների վրա, ինչպես ծրագրային, այնպես էլ ապարատային:
• Ծրագրային ճարտարագիտությունը կենտրոնանում է ծրագրային ապահովման համակարգված մշակման վրա: Կոդավորումը կամ ծրագրավորումը ծրագրային ապահովման ճարտարագիտության հիմնական բաղադրիչն է:
• Ծրագրային ճարտարագիտությունը կարող է դիտվել որպես հաշվողական տեսության կիրառություն (օրինակ, ալգորիթմի արդյունավետությունը կարող է չափվել բարդության միջոցով, որը նկարագրված է համակարգչային գիտության տեսության մեջ, բայց դրա կիրառությունը ծրագրային ապահովման տիրույթում է։ ճարտարագիտություն, որտեղ ամենահարմար ալգորիթմն ընտրվում է բարդության միջոցով):