Проектуванням програмного забезпечення є процес створення проекту програмного забезпечення (ПО), крім того, під проектуванням ПО розуміють дисципліну, що вивчає методи проектування.
Проектування програмного забезпечення являє собою окремий випадок проектування процесів і продуктів.
Мета проектування має на меті визначення внутрішніх властивостей системи і деталізацію її зовнішніх (видимих) властивостей відповідно до виданих замовником вимог до програмного забезпечення (вихідними умовами завдання), які, в свою чергу, піддаються аналізу.
Хід процесу проектування ПО і його результати будуть залежати не тільки від складу вимог, але і від досвіду проектувальника (розробника) і від обраної моделі процесу проектування.
Після визначення вимог до програмного забезпечення розробником будуть отримані узгоджений чіткий план дій, графік термінів і оплат. У той же час розробник може скоротити час розробки і підвищити її якість, а також дозволяє передбачити будь-які інші нюанси розробки, наприклад, юридичні (передача авторських прав на проектоване програмне забезпечення).
При проектуванні ПО заздалегідь розробник має можливість:
- оцінити час розробки і вартість програмного продукту;
- виключити втрати матеріальних витрат і часу на вимушені доопрацювання, непотрібні дії, тривале узгодження;
- уникнути незадоволеності і розбіжностей між замовником і виконавцем.
Зміст статті
Підготовчий етап
Порядок розробки програмного забезпечення в залежності від особливостей проекту може відрізнятися, але в загальному вигляді він складається з наступних етапів:
- Підготовки.
- Проектування.
- Створення, що включає дизайн, кодування, тестування, документування.
- Підтримки, що включає впровадження та супровід.
У процесі підготовки до проектування повинні бути вирішені організаційні питання:
- Необхідно визначити склад робіт, а для цього потрібно дізнатися, що може надати замовник (технічне завдання, дизайн, макети), достатні вихідні коди і наскільки, які етапи вони закривають.
- Визначитися з бюджетом і термінами: на підставі наявних матеріалів стверджують приблизну вартість, загальний термін всього проекту, а також термін і точну вартість найближчого етапу.
- Після вирішення організаційних питань підписують контракт, отримують передоплату і необхідні для роботи матеріали.
Етапи і результати проектування
Проектування складається з наступних етапів:
- Описи. Даний етап включає в себе спільну роботу замовника (визначає користь продукту, вимоги до зовнішнього вигляду і працездатності) і розробника (пропонує алгоритмічні та технічні рішення поставленого завдання).
- Визначення архітектури. На даному етапі стверджують мову програмування, базу даних, фреймворки і сервери.
- Розробки технічного завдання (ТЗ). ТЗ становить архітектор відповідно до опису та відповідями на питання замовника. Потім ТЗ узгоджують з менеджером проекту, далі передають клієнту і виробляють правки.
- Етапу розробки макетів, які потім додаються до ТЗ. На даному етапі розробляють макети принципових схем пристрою, інтерфейсів, діаграм структури бази даних, схем взаємодії компонентів.
- Контролю. В ході цього етапу архітектором усуваються зауваження менеджера проектів.
- Твердження. На даному етапі замовником перевіряється і змінюється самостійно ТЗ, або повідомляється список правок проект-менеджеру. Після усунення зауважень ТЗ стверджують і докладають до контракту.
В результаті проектування виходить технічне завдання з однозначною і зрозумілою як для замовника, так і для виконавця (в якості виконавця можуть виступити керівник проекту, програмісти, тестувальники, дизайнери та інші учасники процесу розробки) ілюстрацією відповідей на питання:
- Що робити (містить опис продукту, функціональних можливостей, категорію користувачів)?
- Як робити (містить опис архітектури)?
- Як перевірити, чи досягнута мета (варіанти тестувань, критерії оцінки)?
У разі надання замовником на підготовчому етапі результату проектування згідно із зазначеними вимогами даний етап проектування можна опустити і відразу перейти до оцінки проекту.
Вимоги до ТЗ на розробку програмного забезпечення
Наведемо мінімальні вимоги, достатні для ТЗ, відповідно до яких воно повинно:
- в повній мірі, чітко (інструкційно, без зайвих слів і можливостей різночитання) і структуровано описувати розробляється програмний продукт (як має виглядати ПО, як і з чим працювати, яким вимогам повинен відповідати) і процес його розробки, щоб у архітектора не виникло питань щодо реалізації ПО ;
- виключити суперечливі відомості;
- бути юридично точно оформленим (відповідно до Держстандарту), так як поряд з контрактом та іншими документами ТЗ набуде юридичної сили.
У технічному завданні повинні міститися:
- загальні дані по проекту (назва продукту, категорія користувачів і призначення використання);
- загальні вимоги до програмного забезпечення (до його структурі, функціоналу, повинні бути додані схема архітектури та опис зв’язків підсистем, видів інтерфейсів всіх складових – готовий дизайн або його концепція);
- детальний план робіт, який містить перелік етапів і терміни по кожному з них;
- порядок проведення тестування і приймання, в якому повинні бути описані склад і види випробувань продукту, як в цілому, так і окремих частин;
- перелік дій, що здійснюються при запуску продукту;
- вимоги до документів, які містять опис процесу і результатів розробки.
У складі ТЗ важливо приділити увагу описам:
- конкретних деталей: користувачів програмного продукту (їх ролі, права і функції), алгоритмів обробки даних, переліку закритих і відкритих протоколів, вимог до безпеки даних в ході всього життєвого циклу, списку використаних в розробці компонентів (вільних, платних);
- прикладів: аналогів, що інтегруються з зазначенням посилань на них; типових сценаріїв взаємодії системи з користувачем; що входять даних і форматів даних взаємодії підсистем (таблиць, баз, сторінок і ін.); вихідних даних (видів звітів і експортованих файлів);
надійності і продуктивності: рівнів навантаження системи (день, місяць, максимальний), вимог до гарантування безпеки і продуктивності, обґрунтування вибору обладнання запуску ПО, хостингу серверної частини.
Природно, терміни і відповідно вартість проекту будуть залежати від його складності, чим складніше, тим тривалішим і дорожче підготовка до нього. Час розробки невеликих проектів займає від тижня до місяця.