База знань

Стадії циклу розробки ПЗ

analysis

  1.  Аналіз вимог

Життєвий цикл розробки ПЗ починається зі стадії аналізу, під час якої учасники процесу обговорюють вимоги, що пред’являються до кінцевого продукту. На цьому етапі важливо задокументувати всі вимоги до майбутнього програмного забезпечення. Необхідно присвятити достатньо часу обговоренню деталей проекту з усіма зацікавленими сторонами. Усі дані , що надходять потрібно проаналізувати і систематизувати, важливо також врахувати всі технічні обмеження, які можуть виникнути на стороні замовника. Підсумком даного етапу має стати створення докладної специфікації, що відповідає всім вимогам замовника. Також слід звернути увагу і на інші чинники, які можуть ускладнювати процес розробки. До них відносяться дедлайни, встановлені замовником, а також бюджетні обмеження. Важливим завданням є створення докладного документу бачення (або образу) проекту, який включає короткий опис проекту, бізнес-цілі, а також критерії успіху проекту, фактори бізнес-ризиків і опис кінцевого користувача продукту. Готовий документ необхідно передати на затвердження замовнику, щоб переконатися в тому, що всі поставлені вимоги були враховані, а також щоб проінформувати його про будь-які ризики, які можуть виникнути після релізу проекту. Після того, як всі основні питання вирішені, рекомендується провести додаткові обговорення та інтерактивні семінари з усіма зацікавленими сторонами. Це допоможе виявити будь-які неочевидні моменти, які надалі можуть стати причиною внесення змін до інтерфейсу програми або необхідності переписування частин(патернів) коду. Даний етап може також включати заповнення анкет, розгляд кейсів, мозковий штурм і т.д. Багато проектів заходять в глухий кут через додаткові вимоги, які спливають на стадії розробки. Тому дуже важливо розуміти початкові бізнес – цілі і головну ідею майбутньої програми. 

Таким чином, цей етап передбачає збір вимог щодо розроблюваного програмного забезпечення, їх систематизацію, документування, аналіз, а також виявлення і розв’язання суперечностей.

  1. Проектування

На стадії проектування (також її називають стадією дизайну і архітектури) програмісти та системні архітектори, керуючись вимогами, розробляють високорівневий дизайн системи. Різноманітні технічні питання, що виникають в процесі проектування, обговорюються з усіма зацікавленими сторонами, включаючи замовника. Визначаються технології, які будуть використовуватися в проекті, навантаження команди, обмеження, тимчасові рамки і бюджет. Відповідно до уточнених вимог вибираються найбільш підходящі проектні рішення. Затверджений дизайн системи визначає перелік розроблюваних програмних компонентів, взаємодію з третіми сторонами, функціональні характеристики програми, які використовуються бази даних і багато іншого. Дизайн, як правило, закріплюється окремим документом – дизайн-специфікацією (Design Specification Document, DSD). На цьому етапі для спрощення візуалізації процесу проектування використовуються так звані нотації – схематичне вираження характеристик системи, що розробляється.

Основні використовувані нотації:

– блок-схеми;

– ЕR-діаграми;

– UML-діаграми;

– макети – наприклад, намальований в фотошопі прототип сайту.

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

Нижче представлений список корисних програм для створення мокапів, які використовуються на практиці:

http://invisionapp.com/

https://webflow.com/

https://moqups.com/

  1. Розробка та програмування

Необхідно відзначити, що розробка програмного забезпечення може також включати в себе створення інтерактивного прототипу, який, по суті, є основою майбутнього додатку. Такий прототип допомагає визначити архітектуру системи в цілому. На даному етапі пишеться мало коду: наприклад, код кнопок і простих форм, щоб дати замовнику загальне уявлення про те, як буде працювати кінцевий продукт. Після того як вимоги та дизайн продукту затверджені, відбувається перехід до безпосередньо розробки. Тут починається написання програмістами коду програми відповідно до раніше визначених вимог. Системні адміністратори налаштовують програмне середовище, front-end програмісти розробляють призначений для користувача інтерфейс програми і логіку її взаємодії з сервером. Крім того, програмісти пишуть Unit-тести для перевірки правильності роботи коду кожного компонента системи, проводять рев’ю написаного коду, створюють білди і розгортають готове ПЗ в програмному середовищі. Цей цикл повторюється до тих пір, поки всі вимоги не будуть реалізовані.

Програмування передбачає чотири основні стадії:

1) розробка алгоритмів – фактично, створення логіки роботи програми;

2) написання вихідного коду;

3) компіляція – перетворення в машинний код;

4) тестування і налагодження – тут мова, головним чином, про юніт-тестування.

  1. Документація

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

Архітектурна (проектна) – наприклад, дизайн-специфікація. Це документи, що описують моделі, методології, інструменти та засоби розробки, обрані для даного проекту.

Технічна – вся супроводжує розробку документація. сюди входять різні документи, що пояснюють роботу системи на рівні окремих модулів. як правило, пишеться у вигляді коментарів до вихідного коду, які згодом структуруються у вигляді             HTML-документів.

Призначена для користувача – включає довідкові і пояснювальні матеріали, необхідні кінцевому користувачеві для роботи з системою. Це, наприклад, Readme і Userguide, розділ довідки за програмою.

Маркетингова – включає рекламні матеріали, які супроводжують випуск продукту. Її мета – в яскравій формі представити функціональність і конкурентні переваги продукту.

  1. Тестування

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

  1. Впровадження та супровід

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

Висновок

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

Набагато більше інформації на курсі базовий модуль тестування