Кіріспе

Жүйелік архитектор – ақпараттық және коммуникациялық технология саласының маманы. Жүйелік архитекторлар белгілі бір талаптарды қанағаттандыру үшін компьютерлік жүйенің архитектурасын (яғни бағдарламалық және аппараттық құрамдастардан тұратын жүйені) анықтайды. Мұндай анықтамаларға мыналар кіреді: жүйені құрамдастарға бөлу, құрамдастардың өзара әрекеттесуі және интерфейстері (оның ішінде ортамен, әсіресе пайдаланушымен), сондай-ақ оның жобалануы мен іске асырылуында қолданылатын технологиялар мен ресурстар. Жүйелік архитектордың жұмысы іске асыру кезінде туындайтын мәселелерді болдырмауға және болашақта күтпеген кеңейтулерге/өзгерістерге оңай мүмкіндік беруге бағытталған болуы керек. Бұл үшін қажетті кең тәжірибеге ие болғандықтан, жүйелік архитектор әдетте аппараттық, бағдарламалық қамтамасыз ету және ұқсас (пайдаланушы) жүйелер туралы мол, бірақ жалпы білімі бар жоғары деңгейлі технологиялық маман болып табылады. Ең бастысы, жүйелік архитектор пайдаланушылардың қызмет саласын жеткілікті деңгейде білуі тиіс. Мысалы, әуе трафигі жүйесінің архитекторы әуе трафигі жүйесінің барлық міндеттерін, соның ішінде барлық деңгейдегі пайдаланушылардың міндеттерін жақсы білуі керек. «Жүйелік архитектор» деген лауазым бағдарламалық жасақтама инженеріне немесе бағдарламашыға қарағанда жоғары деңгейдегі жобалау жауапкершілігін білдіреді, бірақ күнделікті қызметтері шағылысуы мүмкін.

Жүйелік архитектор: тақырыптар

Ірі жүйелер архитектурасы бір адамның көз алдында елестете алмайтын, тіпті жобалай алмайтын жүйелерді басқару үшін жасалды. Осындай өлшемдегі жүйелер тез қалыпқа еніп келеді, сондықтан ірі және өте ірі жүйелердің мәселелерін шешу үшін архитектуралық тәсілдер мен архитекторлардың қажеттілігі артып келеді. Жалпы алғанда, үлкен жүйелер қабаттасу арқылы "адам" түсінетін өлшемге дейін азайтылады, мұнда әр қабат жеке-жеке түсінікті бірнеше төменгі қабаттардан тұрады, әрқайсысының өз негізгі инженері және/немесе архитекторлары болады. Бір деңгейдегі толық қабат жоғарырақ деңгейде функционалдық "компонент" ретінде көрсетіледі (ал ең жоғары деңгейлерде мүлдем жойылуы мүмкін).

Пайдаланушылар мен демеушілер

Архитекторлар адам қажеттіліктерін түсініп, адамдар үшін функционалды және эстетикалық тұрғыдан ұнамды өнімдерді жасауға тиіс. Жақсы архитектор – пайдаланушылардың соңғы өнімге қатысты көзқарасын және осы көзқарас негізінде талаптарды анықтап, іске асыру процесін сақтаушы. Архитекторлар қатаң процедураларды ұстанбайды. Олар пайдаланушылармен/тапсырыс берушілермен өте әрекеттес, деңгейі төмен бейресми түрде байланыс жасайды – бірлесіп жобаланған (соңғы) жүйе үшін қажетті нақты талаптарды анықтайды. Архитектор соңғы пайдаланушылармен және (басты) жүйе инженерлерімен үнемі байланыста болуы керек. Сондықтан архитектор пайдаланушылардың ортасымен және проблемасымен, сондай-ақ мүмкін болатын шешімдердің инженерлік ортасымен жақсы таныс болуы тиіс.

Жоғары деңгейдегі талаптар

Пайдаланушы талаптарының сипаттамасы пайдаланушылар мен архитектордың бірлескен өнімі болуы керек: пайдаланушылар өздерінің қажеттіліктері мен тілектерін ұсынады, ал архитектор – шығын, уақыт және басқа да шектеулер шеңберінде іске асырылуы мүмкін нәрсе туралы білімді ұсынады. Пайдаланушылардың қажеттіліктері жоғары деңгейдегі талаптар жиынтығына аударғанда, қабылдау сынағының алғашқы нұсқасын жасаудың ең тиімді уақыты – содан кейін талаптарға сәйкес үнемі жаңарту. Осылайша пайдаланушылар алатындары туралы толыққанды түсінікке ие болады. Бұл сондай-ақ сынауға келмейтін талаптарға, түсініспеушіліктерге және талаптардың өзгеріп-толықталуына қарсы сақтандырады. Инженерлік талаптардың бірінші деңгейін әзірлеу – талдамалық емес, сонымен қатар архитектор мен инженердің екеуінің де қатысуын талап ететін процесс. Егер қандай да бір шектеулерді жеңілдету үшін келісімдерге келу қажет болса, архитектор соңғы өнімнің және жалпы көрінісінің пайдаланушылар ниетінен тым алыс кетпеуін қамтамасыз етуі керек. Инженер шектеулерді оңтайландыруға және жұмыс істейтін, сенімді, кеңейтілген және берік өнімді қамтамасыз ететін жобаны әзірлеуге бағыттануы керек. Пайдаланушыларға қажетті қызметтерді ұсыну – инженерлік жүйенің басты міндеті. Алайда, жүйелердің көлемі мен күрделілігі артқан сайын, олардың қарапайым аппараттық және бағдарламалық құралдардан алшақтауына байланысты дәстүрлі жүйелерді дамыту принциптерін ғана қолдану жеткіліксіз болып шықты. Сондықтан жүйелерді, аппараттық және бағдарламалық құралдар архитектурасының жалпы принциптерін (кіші) жүйелерді жобалауға қолдану қажет. Архитектураны дайын өнімнің қарапайымдалған моделі ретінде қарастыруға болады. Оның басты міндеті – бөліктерді және олардың бір-бірімен байланысын анықтау, соның арқасында тұтас жүйе пайдаланушылардың ойдағысының дұрыс, толық және үйлесімді бейнесін көрсетеді – әсіресе компьютерлік-адам интерфейсі үшін. Бұл бөліктердің бір-біріне сәйкес келіп, қажетті тәртіпте байланысуын қамтамасыз ету үшін де қолданылады. Пайдаланушылар әлемінің архитектурасы мен инженерлік жүйелер архитектурасын ажырату қажет. Біріншісі пайдаланушылар әлеміндегі проблемалар мен шешімдерді көрсетеді және қарастырады. Ол негізінен инженерлік жүйенің компьютерлік-адам интерфейсінде (CHI) көрініс табады. Инженерлік жүйе инженерлік шешімдерді көрсетеді – инженер КЖК-ны қолдау үшін техникалық инфрақұрылымның компоненттерін қалай дамытуды, таңдауды және біріктіруді жоспарлайды. Тәжірибелі архитектор болмаған жағдайда, екі архитектураны шатастыру жиі кездеседі. Бірақ инженер аппараттық және бағдарламалық құралдар мен техникалық шешімдер кеңістігінде ойлайды, ал пайдаланушылар А нүктесінен Б нүктесіне ақылға қонымды уақытта және энергия жұмсау арқылы қалай жетуге болатынын немесе клиенттер мен қызметкерлерге қажетті ақпаратты қалай жеткізуге болатынын ойлауы мүмкін. Жүйелік архитектор пайдаланушылар әлемінің архитектурасы және (барлық пайдалы) инженерлік жүйелер архитектурасы туралы білімді үйлестіруі керек. Біріншісі – пайдаланушылармен бірлескен жұмыс, екіншісі – инженерлермен бірлескен жұмыс. Нәтижесінде пайдаланушылардың талаптарын көрсететін жоғары деңгейдегі талаптар жиынтығы құрылады, оны инженерлер жүйелерді жобалау талаптарын әзірлеу үшін пайдалана алады. Жоба барысында, әсіресе ұзақ мерзімді жобаларда, талаптар өзгеріп отыратындықтан, жүйе пайдаланушылармен қабылданғанға дейін архитектор қажет: архитектор даму барысында жасалған барлық өзгерістер мен түсіндірулер пайдаланушылардың көзқарасын бұзбайтынын қамтамасыз етеді.

Шығындар мен пайданың талдауы

Архитекторлар – жалпы білім иелері. Олардан бір ғана технологияда сарапшы болу күтілмейді, бірақ көптеген технологиялар туралы білуі және оларды нақты жағдайларға қолдануға болатынын бағалай білуі қажет. Олар өз білімдерін практикалық жағдайларға қолданады, сонымен қатар әртүрлі технологияларды пайдаланып, әртүрлі шешімдердің тиімділігі мен шығындарын бағалайды, мысалы, аппараттық, бағдарламалық қамтамасыз ету және қолмен орындау арасындағы айырмашылықты қарастырып, жүйенің тұтастай алғанда пайдаланушылар күткендей жұмыс істейтініне көз жеткізеді. Көптеген дайын немесе әзірленген аппараттық және бағдарламалық компоненттер құн, жылдамдық, өнімділік және т.б. сияқты шектеулерге сәйкес дербес таңдалуы мүмкін. Кейбір жағдайларда архитектор соңғы жүйені (шамалы) көмексіз құрастыра алады. Әйтпесе, компоненттерді таңдау және кез келген арнайы функцияны жобалау мен құру үшін аппараттық немесе бағдарламалық қамтамасыз ету инженерінің көмегі қажет болуы мүмкін. Архитекторлар (немесе инженерлер) қауіпсіздік, байланыс, арнайы аппараттық жабдықтар, графика, адам факторы, сынақтан өткізу және бағалау, сапаны бақылау, сенімділік, техникалық қызмет көрсету, қолжетімділік, интерфейс басқару және т.б. салаларындағы басқа да мамандардың қызметін пайдалана алады. Тиімді жүйелік архитектуралық команданың қажеттілік туғанда маңызды мамандықтар бойынша мамандарға қолжетімді болуы шарт.

Бөлімдеу және қабаттау

Сәулетші ғимаратты жоспарлау кезінде оның жалпы дизайнын жасайды, ол тұрғындарға ұнайтынына және пайдалы болатынына көз жеткізеді. Бір отбасылық үйді салу үшін бір ғана сәулетші жеткілікті болғанымен, жаңа, биік ғимаратты жобалау кезінде туындайтын егжей-тегжейлі мәселелерді шешу үшін көптеген инженерлер қажет болуы мүмкін. Егер жұмыс жеткілікті көлемде және күрделі болса, архитектураның бөліктері тәуелсіз компоненттер ретінде жобалануы мүмкін. Яғни, тұрғын үй кешенін салуда, кешеннің өзі үшін бір сәулетші, ал әрбір ғимарат түрі үшін жеке сәулетшілер архитектуралық команданың құрамында жұмыс істей алады. Ірі автоматтандыру жүйелері де сәулетші мен көптеген инженерлік білікті талап етеді. Егер инженерлік жүйе жеткілікті көлемде және күрделі болса, жүйелік сәулетші жұмыстың кейбір бөліктерін аппараттық сәулетшіге және/немесе бағдарламалық жасақтама сәулетшісіне жүктеуі мүмкін, бірақ олардың барлығы бірлескен сәулетшілер тобының мүшелері болуы мүмкін. Сәулетші жүйелік талаптарды жеке аппараттық немесе бағдарламалық жасақтама инженерінің, немесе инженерлік менеджер мен командасының құзыретіне кіретін негізгі компоненттерге немесе жүйелік бөлімдерге бөліп беруі керек. Алайда, сәулетшіні инженерлік бақылаушы деп қарауға болмайды. (Егер жоба жеткілікті көлемді және/немесе күрделі болса, бас сәулетші бөліктерді мамандандырылған сәулетшілерге бөліп береді.) Идеалды жағдайда, әрбір компонент/кіші жүйе дербес объекті болып табылуы керек, оны тұтас жүйеден бөлек, толықтай сынауға болады, тек симуляциялық кірістерді беру және нәтижелерді тіркеу үшін қарапайым сынақ ортасы қолданылады. Яғни, деректерді басқару кіші жүйесін жобалау және құру үшін әуе қозғалысын басқару жүйесінің қалай жұмыс істейтінін білудің қажеті жоқ. Қосалқы жүйе қандай шектеулерде жұмыс істейтінін білу жеткілікті. Жақсы сәулетші жүйе қаншалықты күрделі болмасын, әрбір (ішкі) жүйе немесе қабат салыстырмалы түрде қарапайым және "таза" ұғымдарға негізделгенін және оны арнайы дайындықсыз барлық адамдар, әсіресе пайдаланушылар оңай түсіне алатынын қамтамасыз етеді. Сәулетші әрбір бөлімнің жақсы анықталғанын, қиындықтарды, айналып өтулерді, қысқа жолдарды немесе шатастыратын егжей-тегжейліліктер мен ерекшеліктерден таза болуын қамтамасыз ету үшін ең аз эвристиканы қолданады. Пайдаланушылардың қажеттіліктері өзгерген кезде (жүйе іске қосылғаннан кейін және қолданыста болғаннан кейін), көптеген ерекшеліктерге, арнайы жағдайларға және "шарттарға" толы қарапайым ұғымды дамытуға қарағанда қарапайым тұжырымдаманы дамыту әлдеқайда оңай. Архитектураны қабаттастыру архитектураны әрбір қабатта жеткілікті түрде қарапайым ұстау үшін маңызды, осылайша ол бір адамның санасында түсінікті болып қалады. Қабаттар көтерілген сайын, төменгі қабаттардағы бүтін жүйелер жоғары қабаттарда қарапайым компоненттерге айналады және ең жоғары қабаттарда мүлдем жоғалуы мүмкін.

Қабылдау сынағы

Қабылдау сынағы жүйелік архитектордың негізгі жауапкершілігі болып табылады. Бұл бағдарлама жетекшісіне жүйенің бастапқы жоспарланғандай екенін және барлық қатысты архитекторлар мен инженерлер өз мақсаттарына жеткенін пайдаланушыларға дәлелдеудің басты жолы.

Пайдаланушылармен және инженерлермен байланыс

Архитектор эскиздер, модельдер және сызбаларды қолданады. Автоматтандыру жүйелерінің (немесе бағдарламалық немесе аппараттық) архитекторы пайдаланушылармен, инженерлермен және басқа архитекторлармен әртүрлі шешімдер мен нәтижелерді талқылау үшін эскиздер, модельдер және прототиптерді пайдалануы тиіс. Пайдаланушы нұсқаулығының алғашқы нұсқасы аса құнды, әсіресе прототиппен бірге қолданылғанда. Дегенмен, клиент үшін түсінікті болатын, жұмыс істейтін және жақсы жазылған талаптар немесе спецификация жиынтығы жасалуы маңызды (олар оған дұрыс қол қоя алуы үшін), бірақ негізгі пайдаланушылардың талаптары түсініктілік үшін алдын ала пайдаланушы нұсқаулығында көрсетілуі керек. Бірақ, жобалаушылар мен басқа да іске асырушылар мағынасы мен ниетіне қатысты ешқандай күмәнді қалдырмас үшін нақты және бірмәнді тіл қолданылуы керек. Әсіресе, барлық талаптар тексеруге болатын болуы керек, ал сынақ жоспарының алғашқы нұсқасы талаптармен бірге әзірленуі тиіс. Барлық мүдделі тараптар бағдарлама басында талаптардың орындалуын анықтайтын жалғыз өлшем ретінде қабылдау сынағының сипаттамаларына немесе оған баламасына қол қоюы керек.

Архитектор метафорасы

"Архитектор" сөзінің кез келген түрін қолдану АҚШ-тың көптеген штаттарында "құқықтық актілер" арқылы реттеледі, және оны пайдалану үшін адам ғимарат архитектор ретінде лицензия алуы керек. Ұлыбританияда архитекторларды тіркеу кеңесі "архитектор" сөзін (бағдарламалық қамтамасыз ету және АТ саласында қолданылған жағдайда) шектеулерден босатады.