Проектування програмного забезпечення

Проектуванням програмного забезпечення є процес створення проекту програмного забезпечення (ПО), крім того, під проектуванням ПО розуміють дисципліну, що вивчає методи проектування.

Проектування програмного забезпечення являє собою окремий випадок проектування процесів і продуктів.

Мета проектування має на меті визначення внутрішніх властивостей системи і деталізацію її зовнішніх (видимих) властивостей відповідно до виданих замовником вимог до програмного забезпечення (вихідними умовами завдання), які, в свою чергу, піддаються аналізу.

Хід процесу проектування ПО і його результати будуть залежати не тільки від складу вимог, але і від досвіду проектувальника (розробника) і від обраної моделі процесу проектування.

Після визначення вимог до програмного забезпечення розробником будуть отримані узгоджений чіткий план дій, графік термінів і оплат. У той же час розробник може скоротити час розробки і підвищити її якість, а також дозволяє передбачити будь-які інші нюанси розробки, наприклад, юридичні (передача авторських прав на проектоване програмне забезпечення).

При проектуванні ПО заздалегідь розробник має можливість:

  • оцінити час розробки і вартість програмного продукту;
  • виключити втрати матеріальних витрат і часу на вимушені доопрацювання, непотрібні дії, тривале узгодження;
  • уникнути незадоволеності і розбіжностей між замовником і виконавцем.

Підготовчий етап

Порядок розробки програмного забезпечення в залежності від особливостей проекту може відрізнятися, але в загальному вигляді він складається з наступних етапів:

  • Підготовки.
  • Проектування.
  • Створення, що включає дизайн, кодування, тестування, документування.
  • Підтримки, що включає впровадження та супровід.

У процесі підготовки до проектування повинні бути вирішені організаційні питання:

  • Необхідно визначити склад робіт, а для цього потрібно дізнатися, що може надати замовник (технічне завдання, дизайн, макети), достатні вихідні коди і наскільки, які етапи вони закривають.
  • Визначитися з бюджетом і термінами: на підставі наявних матеріалів стверджують приблизну вартість, загальний термін всього проекту, а також термін і точну вартість найближчого етапу.
  • Після вирішення організаційних питань підписують контракт, отримують передоплату і необхідні для роботи матеріали.

Етапи і результати проектування

Проектування складається з наступних етапів:

  • Описи. Даний етап включає в себе спільну роботу замовника (визначає користь продукту, вимоги до зовнішнього вигляду і працездатності) і розробника (пропонує алгоритмічні та технічні рішення поставленого завдання).
  • Визначення архітектури. На даному етапі стверджують мову програмування, базу даних, фреймворки і сервери.
  • Розробки технічного завдання (ТЗ). ТЗ становить архітектор відповідно до опису та відповідями на питання замовника. Потім ТЗ узгоджують з менеджером проекту, далі передають клієнту і виробляють правки.
  • Етапу розробки макетів, які потім додаються до ТЗ. На даному етапі розробляють макети принципових схем пристрою, інтерфейсів, діаграм структури бази даних, схем взаємодії компонентів.
  • Контролю. В ході цього етапу архітектором усуваються зауваження менеджера проектів.
  • Твердження. На даному етапі замовником перевіряється і змінюється самостійно ТЗ, або повідомляється список правок проект-менеджеру. Після усунення зауважень ТЗ стверджують і докладають до контракту.

В результаті проектування виходить технічне завдання з однозначною і зрозумілою як для замовника, так і для виконавця (в якості виконавця можуть виступити керівник проекту, програмісти, тестувальники, дизайнери та інші учасники процесу розробки) ілюстрацією відповідей на питання:

  • Що робити (містить опис продукту, функціональних можливостей, категорію користувачів)?
  • Як робити (містить опис архітектури)?
  • Як перевірити, чи досягнута мета (варіанти тестувань, критерії оцінки)?

У разі надання замовником на підготовчому етапі результату проектування згідно із зазначеними вимогами даний етап проектування можна опустити і відразу перейти до оцінки проекту.

Вимоги до ТЗ на розробку програмного забезпечення

Наведемо мінімальні вимоги, достатні для ТЗ, відповідно до яких воно повинно:

  • в повній мірі, чітко (інструкційно, без зайвих слів і можливостей різночитання) і структуровано описувати розробляється програмний продукт (як має виглядати ПО, як і з чим працювати, яким вимогам повинен відповідати) і процес його розробки, щоб у архітектора не виникло питань щодо реалізації ПО ;
  • виключити суперечливі відомості;
  • бути юридично точно оформленим (відповідно до Держстандарту), так як поряд з контрактом та іншими документами ТЗ набуде юридичної сили.

У технічному завданні повинні міститися:

  • загальні дані по проекту (назва продукту, категорія користувачів і призначення використання);
  • загальні вимоги до програмного забезпечення (до його структурі, функціоналу, повинні бути додані схема архітектури та опис зв’язків підсистем, видів інтерфейсів всіх складових – готовий дизайн або його концепція);
  • детальний план робіт, який містить перелік етапів і терміни по кожному з них;
  • порядок проведення тестування і приймання, в якому повинні бути описані склад і види випробувань продукту, як в цілому, так і окремих частин;
  • перелік дій, що здійснюються при запуску продукту;
  • вимоги до документів, які містять опис процесу і результатів розробки.

У складі ТЗ важливо приділити увагу описам:

  • конкретних деталей: користувачів програмного продукту (їх ролі, права і функції), алгоритмів обробки даних, переліку закритих і відкритих протоколів, вимог до безпеки даних в ході всього життєвого циклу, списку використаних в розробці компонентів (вільних, платних);
  • прикладів: аналогів, що інтегруються з зазначенням посилань на них; типових сценаріїв взаємодії системи з користувачем; що входять даних і форматів даних взаємодії підсистем (таблиць, баз, сторінок і ін.); вихідних даних (видів звітів і експортованих файлів);

надійності і продуктивності: рівнів навантаження системи (день, місяць, максимальний), вимог до гарантування безпеки і продуктивності, обґрунтування вибору обладнання запуску ПО, хостингу серверної частини.

Природно, терміни і відповідно вартість проекту будуть залежати від його складності, чим складніше, тим тривалішим і дорожче підготовка до нього. Час розробки невеликих проектів займає від тижня до місяця.

ПОДІЛИТИСЯ: