База знань

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

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

analysis
Життєвий цикл розробки ПЗ починається із стадії аналізу, під час якого учасники процесу обговорюють вимоги, що висуваються до кінцевого продукту. Мета ціє стадії – визначення детальних вимог до системи. Окрім того, необхідно впевнитися в тому, що всі учасники вірно зрозуміли поставлені задачі і те, як саме кожна вимога буде реалізована на практиці.

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

В залежності від обраної моделі розробки, можуть відрізнятися підходи до визначення момента переходу з однієї стадії на іншу. Наприклад, в каскадній або V-моделі стадія аналізу вимог закріплюється в документі – специфікації вимог до програмного забезпечення (Software Requirement Specification, SRS), оформлення якого повинне бути закінчене до переходу на наступний етап.

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

 

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

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

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

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

На цьому етапі спрощення процесу візуалізації використовуються як так звані нотації – схематичні зображення системи, що розробляється. Основі нотації:

Блок-схеми;

ER-діаграми;

UML-діаграми;

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

 

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

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

Системні адміністратори налаштовують програмне оточення, front-end програмісти розробляють користувальницький інтерфейс програми і логіку її взаємодії з сервером.

Окрім того, програмісти пишуть Unit-тести для перевірки правильності роботи коду кожного компонента системи, проводять рев’ю написаного коду, створюють білди і розгортають готове ПЗ в програмному середовищі. Цей цикл повторюється до тих пір, поки всі вимоги не будуть реалізовані.

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

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

2) Написання джерела коду;

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

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

 

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

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

Всього існує чотири рівня документації:

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

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

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

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

 

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

testin
Основні етапи тестування ми вже розглядали раніше, в розділі Фундаментальний процес тестування.

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

Тестування повторюється до тих пір, поки не будуть досягнуті критерії його закінчення.

Види, методи та техніки тестування ми детально розглянемо в цьому довіднику.

 

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

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

Висновок

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

У наступних розділах ми детально розглянемо основні моделі і практики, які використовуються сучасними IT-компаніями в процесі розробки програмного забезпечення.

Зв'язатися з нами

Адреса: м. Київ, вул. Вадима Гетьмана, 2, оф. 210-211