Кіріспе

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

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

Тарих

FDD бастапқыда Джефф Де Лука 1997 жылы Сингапурдың ірі банкінде 15 айлық, 50 адамнан тұратын бағдарламалық жасақтаманы әзірлеу жобасының нақты қажеттіліктерін қанағаттандыру мақсатымен жасалған. Бұл нәтижесінде жалпы модельді дамытуды, мүмкіндіктерді тізімдеуді, жоспарлауды, жобалауды және құруды қамтитын бес процестен тұратын жиынтық пайда болды. Бірінші процесс Питер Коадтың нысанды модельдеуге қатысты көзқарасымен күшті байланысты. Екінші процесс функционалдық талаптарды және даму тапсырмаларын басқару үшін мүмкіндіктер тізімін пайдалану идеяларын қамтиды. Қалған процестер Джефф Де Луканың тәжірибесінің нәтижесі болып табылады. Сингапур жобасында FDD-нің табысты қолданылуынан кейін, FDD бірнеше рет іске асырылды. FDD сипаттамасы алғаш рет 1999 жылы Питер Коад, Эрик Лефевр және Джефф Де Луканың "UML-мен түсті Java модельдеуі" кітабының 6-тарауында әлемге таныстырылды. Кейін, Стивен Палмер мен Мак Фелсингтің "Мүмкіндіктерге бағытталған әзірлеуге қатысты практикалық нұсқаулық" кітабында (2002 жылы жарық көрген) Java модельдеуінен тәуелсіз, FDD-нің толыққанды сипаттамасы берілді.

Шолу

FDD – бұл бес негізгі іс-әрекеттен тұратын, модельге бағытталған, қысқа итерациялық процесс. Бағдарламалық қамтамасты дамыту жобасының күйін дәл баяндау және қадағалау үшін, әрбір мүмкіндік бойынша атқарылған жұмысты көрсететін кезеңдер анықталады. Бұл бөлім іс-әрекеттерге жалпы шолу ұсынады. Оң жақтағы суретте осы іс-әрекеттердің мета-процесс моделі көрсетілген. Алғашқы екі тізбекті іс-әрекет кезінде жалпы модельдік пішін қалыптасады. Соңғы үш іс-әрекет әрбір мүмкіндік үшін қайталанады.

Жалпы үлгісін әзірлеу

FDD жобасы жүйенің көлемі мен оның контекстін жоғары деңгейде қарап шығудан басталады. Содан кейін, шағын топтар әр модельдеу саласы үшін егжей-тегжейлі домендік модельдерді жасайды және олар өзара бағалау үшін ұсынылады. Ұсынылған модельдердің бірі немесе бірнешесі әр домендік сала үшін модель ретінде таңдалады. Домендік сала модельдері біртіндеп бірыңғай модельге біріктіріледі.

Құралымдар тізімін құру

Бастапқы модельдеу кезінде жиналған білімдер доменді тақырыптық салаларға функционалдық түрде бөлу арқылы ерекшеліктер тізімін анықтау үшін пайдаланылады. Әр тақырыптық сала бизнес-қызметтерді қамтиды, ал әр бизнес-қызметтің ішіндегі қадамдар санатталған ерекшеліктер тізімін құруға негіз болады. Осы тұрғыда ерекшеліктер – клиент үшін құнды функциялардың шағын бөліктері, олар "<әрекет> <нәтиже> <объект>" нысанында беріледі, мысалы: 'сатудың жалпы сомасын есептеу' немесе 'пайдаланушының паролін тексеру'. Ерекшеліктің орындалуы екі аптадан аспауы тиіс, әйтпесе оны кішірек бөліктерге бөлу қажет.

Нысан бойынша жоспар

Құралымдар тізімі толыққаннан кейін, келесі қадам – даму жоспарын әзірлеу және функциялардың (немесе функциялар жиынтығының) жауаптылығын бағдарламашыларға кластар түрінде жүктеу.

Құралымы бойынша жобалау

Әрбір мүмкіндік үшін жобалық пакет дайындалады. Бас бағдарламашы екі апта ішінде жасалатын мүмкіндіктердің шағын тобын іріктейді. Тиісті класс иелерімен бірге бас бағдарламашы әрбір мүмкіндік үшін егжей-тегжейлі реттілік схемаларын жасайды және жалпы модельді нақтылайды. Содан кейін класс пен әдіс кіріспелері жазылады, және соңында жобаны сараптау өткізіледі.

Құрамына қарай құру

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

Үздік тәжірибелер

Фичаға бағытталған даму – клиентке құнды фичалар тұрғысынан қарағанда, бағдарламалық инженерияның ең жақсы тәжірибелеріне негізделген. Домендік объектілерді модельдеу. Домендік объектілерді модельдеу – шешілуі тиіс мәселенің доменін зерттеу және түсіндіруден тұрады. Нәтижесіндегі домендік объектілер моделі фичаларды қосу үшін жалпы құрылымды ұсынады. Фича бойынша даму. Егер бір функцияны екі апта ішінде жүзеге асыру қиын болса, ол әрбір кіші мәселе фича деп аталатынша кішірек функцияларға бөлінеді. Бұл дұрыс функцияларды жеткізуді және жүйені кеңейтуді немесе өзгертуді жеңілдетеді. Жеке класс (код) меншігі. Жеке класс меншігі – кодтың бөлек бөліктері немесе топтары бір иесіне беріледі дегенді білдіреді. Иесі класс сақталуы, өнімділігі және тұжырымдық толықтығы үшін жауапты болады. Фича командалары. Фича командасы – шағын, динамикалық түрде құрылған, шағын қызметті дамытатын команда. Кез келген жобалау шешіміне бірнеше ой қолданылады және бірін таңдаудан бұрын бірнеше жобалау нұсқасы бағаланады. Тексерулер. Тексерулер, негізінен, ақауларды анықтау арқылы жақсы сапалы жобалау мен кодты қамтамасыз ету үшін жүргізіледі. Конфигурациялық басқару. Конфигурациялық басқару бүгінгі күнгі барлық аяқталған фичалардың бастапқы кодын анықтауға және фича командалары оларды жақсартар кезде классқа енгізілген өзгерістердің тарихын сақтауға көмектеседі. Тұрақты құрастыру. Тұрақты құрастыру клиентке көрсетуге болатын әрқашан жаңартылған жүйенің болуын қамтамасыз етеді және фичалардың бастапқы кодын интеграциялау кезіндегі қателерді ертерек анықтауға көмектеседі. Прогресс пен нәтижелердің көрінуі. Менеджерлер жобаны жобаның ішкі және сыртқы барлық деңгейлерінен жиі, тиісті және нақты прогресс есебін беру арқылы, аяқталған жұмыстарға негізделген басқарады.

Метамодель (Метамодельдеу)

Метамодельдеу әдістің процестерін де, деректерін де визуализациялауға көмектеседі. Бұл әдістерді салыстыруға және әдіс инженериясы процесіндегі әдіс фрагменттерін оңай қайта пайдалануға мүмкіндік береді. Бұл техниканы қолдану UML стандарттарымен үйлеседі. Метадеректер моделінің сол жағында FDD қолданылатын бағдарламалық құралды әзірлеу жобасындағы бес негізгі іс-әрекет көрсетілген. Барлық іс-әрекеттер FDD процесінің сипаттамасындағы іс-әрекеттерге сәйкес келетін кіші іс-әрекеттерді қамтиды. Модельдің оң жағында осы іс-әрекеттерге қатысты ұғымдар көрсетілген. Бұл ұғымдар диаграмманың сол жағында бейнеленген іс-әрекеттерден туындайды.