Кіріспе

Бағдарламалық жасақтаманы әзірлеу әдістемесі

Объектіге бағытталған талдау және жобалау (OOAD) – бағдарламалық жасақтаманы әзірлеу процесінде объектіге бағытталған бағдарламалауды қолдану арқылы, сондай-ақ мүдделі тараптармен байланыс пен өнім сапасын жақсарту үшін визуальды модельдеуді пайдалану арқылы қосымшаны, жүйені немесе бизнесті талдау мен жобалауға арналған техникалық тәсіл. Қазіргі заманғы бағдарламалық жасақтама инженериясында OOAD әдетте итеративтік және инкременттік жолмен жүзеге асырылады. OOAD шараларының нәтижесі – талдау модельдері (OOA үшін) және жобалау модельдері (OOD үшін) болып табылады. Бұл модельдер тәуекелдер мен бизнес құндылығы сияқты маңызды факторларға байланысты үнемі жетілдіріліп, дамытылуға тиіс.

Тарих

1990 жылдардың ортасына дейінгі объектіге бағытталған технологияның алғашқы кезеңдерінде бағдарламалық жасақтаманы әзірлеу және объектіге бағытталған модельдеу үшін көптеген әртүрлі бәсекелес әдістемелер болды, олар көбінесе нақты Компьютерлік көмекші бағдарламалық жасақтама инженериясы (CASE) құралдарын жеткізушілермен байланысты болды. Ол кездегі басты мәселе стандартты нотациялардың, біркелкі терминдердің және процестік нұсқаулардың болмауы еді, бұл коммуникация тиімділігін төмендетіп, оқу қисығын ұзартты. Белгілі бір ерте объектіге бағытталған әдістемелер Грейди Бух, Джеймс Румбо, Ивар Джейкобсон (Үш дос), Роберт Мартин, Питер Коад, Салли Шлеер, Стивен Меллор және Ребекка Вирфс Брок сияқты сарапшылардан бастау алды және олардың ықпалымен дамыды. 1994 жылы Rational Software компаниясының Үш досы бірігіп Бірыңғай модельдеу тілін (UML) әзірлеу жұмысын бастады. Кейіннен Филипп Крухтен және Уокер Ройс (Уинстон Ройстің үлкен ұлы) қосылып, өз әдістемелерін – OMT, OOSE және Booch әдісін, сондай-ақ басқа да сала жетекшілерінің түрлі көзқарастары мен тәжірибелерін Rational Unified Process (RUP) – бағдарламалық жасақтаманы әзірлеу және жобаны басқару саласындағы ең жақсы тәжірибелерді оқып үйренуге арналған кешенді итеративті және инкрементті процестік нұсқаулық пен құрылымға біріктіруде табысқа жетті. Осыдан бері Бірыңғай процесс отбасы объектіге бағытталған талдау және жобалау үшін ең танымал әдістеме және эталондық модельге айналды.

Шолу

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

Нысанға бағдарланған талдау

Бағдарламалық жасақтаманың өмірлік циклындағы кез келген талдау қызметінің мақсаты – іске асыру шектеулеріне тәуелсіз жүйенің функционалдық талаптарының моделін құру. Объектіге бағытталған талдау мен басқа талдау түрлерінің арасындағы басты айырмашылық – объектіге бағытталған тәсілмен біз талаптарды объектілердің айналасында ұйымдастырамыз, олар жүйе өзара әрекеттесетін нақты әлемдегі объектілерге сәйкес келетін мінез-құлқы (процестерді) және күйін (деректерді) біріктіреді. Басқа немесе дәстүрлі талдау әдістемелерінде процестер мен деректер екі бөлек аспект ретінде қарастырылады. Мысалы, деректер ER-диаграммалармен, ал мінез-құлық ағын диаграммаларымен немесе құрылым диаграммаларымен моделенуі мүмкін. Объектіге бағытталған талдауда (ООА) қолданылатын негізгі модельдер – қолдану жағдайлары мен объектілер модельдері. Қолдану жағдайлары жүйе орындауы тиіс стандартты домендік функциялардың сценарийлерін сипаттайды. Объектілер модельдері атауларды, класс қатынастарын (мысалы, шеңбер – пішіннің кіші классы), операцияларды және негізгі объектілердің қасиеттерін сипаттайды. Пайдаланушы интерфейсінің макеттері немесе прототиптері түсінуді жеңілдету үшін жасалуы мүмкін.

Нысанға бағдарланған жобалау

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