>
В якості методології розробки системи обрані agile-методи. Це серія підходів до розробки програмного забезпечення, орієнтованих на використання итеративной розробки, динамічне формування вимог та забезпечення їх реалізації в результаті постійної взаємодії всередині самоорганізованих робочих груп, що складаються з фахівців різного профілю.
Дані методологія націлена на мінімізацію ризиків шляхом зведення розробки до серії коротких циклів, званих ітераціями, які тривають два-три тижні. Кожна ітерація сама по собі виглядає як програмний проект в мініатюрі і включає всі завдання, необхідні для видачі міні-приросту по функціональності: планування, аналіз вимог, проектування, програмування, тестування і документування. Після закінчення кожної ітерації виконується переоцінка пріоритетів розробки.
Також використовуються принципи Scrum - набір принципів, на яких будується процес розробки, що дозволяє в жорстко фіксовані і невеликі за часом ітерації, звані спринт (sprints), надавати кінцевому користувачеві працююче ПО з новими можливостями, для яких визначений найбільший пріоритет. Можливості ПО до реалізації в черговому спринті визначаються на початку спринту на етапі планування і не можуть змінюватися на всьому його протязі. При цьому суворо фіксована невелика тривалість спринту надає процесу розробки передбачуваність і гнучкість.
Стратегія
Розробка загальної моделі
Розробка починається з високорівневого наскрізного аналізу широти решаемого кола завдань і контексту системи. Далі для кожної модельованої області робиться більш детальний наскрізний аналіз. Наскрізні опису складаються і виносяться на подальше обговорення та експертну оцінку. Одна з пропонованих моделей або їх об'єднання стає моделлю для конкретної області. Моделі кожній області завдань об'єднуються в загальну підсумкову модель, яка змінюється в ході роботи.
Складання списку необхідних функцій системи
Інформація, зібрана при побудові загальної моделі, використовується для складання списку функцій. Це здійснюється розбиттям областей на підобласті (предметні області) з точки зору функціональності. Кожна окрема підобласть відповідає якомусь бізнес-процесу, кроки якого стають списком функцій (властивостей). У даному випадку функції - це маленькі частини витлумачених користувачем функцій, представлених у вигляді « lt; дію gt; lt; результат gt; lt; об'єкт gt; », наприклад,« перевірка пароля користувача ».
В даному випадку розглянемо бізнес процеси ведення БД товарів, матеріалів, списку клієнтів, користувачів, постачальників; журналирование замовлень; ведення звітності та прайс листа. Дані бізнес процеси включають в себе виділені далі функції.
Розробка кожної функції повинна займати не більше 2 тижнів, інакше задачу необхідно розбити на кілька підзадач, кожна їх яких зможе бути завершена за встановлений двотижневий термін.
. Список виділених функцій:
. Реєстрація користувачів
. Авторизація користувачів
. Зміна і відновлення пароля
. Список витрат і надходжень
. Щоденник витрат і надходжень
. Графік зміни балансу
. Графік порівняння днів за сумою фінансових операцій
. Графік порівняння категорій за сумою фінансових операцій
. Список боргів
. Список виплат за боргами
. Графік порівняння днів за сумою заборгованостей
. Інтерактивні графіки
Планування роботи над кожною функцією
Після складання списку основних функцій, настає черга складання плану розробки програмного забезпечення. Володіння класами розподіляється серед програмістів шляхом упорядкування й організації властивостей (або наборів властивостей) в класи. Методи і конструктори проекту (див. Додаток 1).
Проектування функції
Для кожної властивості створюється проектувальний пакет. Ведущий программист виділяє невелику групу властивостей для розробки протягом двох тижнів. Далі пишуться «болванки» класів і методів, і відбувається критичний розгляд дизайну. Методи і конструктори проекту (див. Додаток 1).
Реалізація функції
Після успішного розгляду дизайну, дана видима клієнту функціональність реалізується до стану готовності. Для кожного класу пишеться програмний код. Після модульного тестування кожного блоку і перевірки коду, завершена функція включається в основний проект.
Час, витрачений на реалізацію...