Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_2012_лек.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
4.77 Mб
Скачать

1.1.7. Управління інженерією пз (Software Engineering Management)

Управління інженерією ПЗ (менеджмент) – керівництво роботами команди розробників ПЗ в процесі виконання плану проекту, визначення критеріїв і оцінка процесів і продуктів проекту з використанням загальних методів управління планування і контролю робіт [5].

1.1.8. Процес інженерії пз (Software Engineering Process)

Процес інженерії ПЗ включає концепції, інфраструктуру, методи визначення і вимірювання етапів ЖЦ, пошук помилок і внесення змін, а також аналіз і оцінку якості продукту.

1.1.9. Методи і засоби інженерії пз (Software Engineering Tools and Methods)

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

1.1.10. Якість ПЗ (Software Quality)

Якість ПЗ – набір характеристик продукту або сервісу, які характеризують його здатність задовольнити встановленим або передбачуваним потребам замовника. Поняття якості має різні інтерпретації залежно від конкретної системи і вимог до програмного продукту [5].

Таким чином, дана область знань SWEBOK представляє методологію проведення заходів щодо досягнення високої якості ПЗ. Розглядаються характеристики і атрибути якості, згідно стандарту ISO 9126-98, і приведені способи їх досягнення на процесах ЖЦ ПЗ. Визначаються види і техніка аналізу ПЗ, прогони системи на тестах і методи оцінки показників якості.

Контрольні питання і завдання

  1. Назвіть області знань SWEBOK інженерії розробки ПЗ.

  2. Приведіть базові поняття SWEBOK.

  3. Визначите цілі і завдання області знань – проектування ПЗ.

  4. З якими стандартами узгоджуються ядра знань SWEBOK.

  5. Який міжнародний стандарт визначає перелік і зміст процесів ЖЦ програмного продукту?

  6. Які розділи ядра знань і стандарту найбільш необхідні при розробці програмних систем.

Лекція 2. Тема: життєвий цикл і етапи розробки програмного забезпечення

Для розуміння ролі проектування програмного забезпечення важливо розуміти контекст (Context of Software Design), в якому здійснюється проектування і використовуються його результати. В якості такого контексту виступає життєвий цикл програмної інженерії.

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

Склад процесів життєвого циклу регламентується міжнародним стандартом ISO/ІEC12207:1995 «Information Technologe - Software Life Cycle Processes» («Інформаційні технології - Процеси життєвого циклу програмного забезпечення») [1]. Еквівалентом цього стандарту в Україні є ДСТУ 3918-1999 «Інформаційні технології. Процеси життєвого циклу програмного забезпечення». ISO - InternationalOrganization for Standardization - Міжнародна організація по стандартизації. ІЕС -International Electrotechnical Commission - Міжнародна комісія з електротехніки.

Цей стандарт описує структуру життєвого циклу програмного забезпечення і його процеси. Процес життєвого циклу визначається як сукупність взаємозв'язаних дій, що перетворюють деякі вхідні дані у вихідні [1]. На рис. 2.1 представлені процеси життєвого циклу за вказаним стандартом. Кожен процес характеризується визначеними задачами і методами їх рішення, а також початковими даними і результатами.

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

За стандартом процес розробки включає наступні дії:

підготовчу роботу - вибір моделі життєвого циклу (див. далі), стандартів, методів і засобів розробки, а також складання плану робіт;

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

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

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

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

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

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

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

кваліфікаційне тестування програмного забезпечення - тестування програмного забезпечення у присутності замовника для демонстрації його відповідності вимогам і готовності до експлуатації; при цьому перевіряється також готовність і повнота технічної і призначеної для користувача документації

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

кваліфікаційне тестування системи - тестування системи на відповідність вимогам до неї і перевірка оформлення і повноти документації;

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

устаткуванні замовника і перевірку його працездатності;

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

Вказані дії можна згрупувати, умовно виділивши наступні основні етапи розробки програмного забезпечення [29] (у дужках вказані відповідні стадії розробки по ГОСТ 19.102-77 «Стадій розробки»):

• постановка завдання (стадія «Технічне завдання»);

• аналіз вимог і розробка специфікацій (стадія «Ескізний проект»);

• проектування (стадія «Технічний проект»);

• реалізація (стадія «Робочий проект»).

Традиційно розробка також включала етап супроводу (початку цього етапу відповідає стадія «Впровадження» по ГОСТ). Проте за міжнародним стандартом відповідно до змін, подіях в індустрії розробки програмного забезпечення, цей процес тепер розглядається окремо.

Умовність виділення етапів пов'язана з тим, що на будь-якому етапі можливе ухвалення рішень, які зажадають перегляду рішень, прийнятих раніше.

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

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

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

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

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

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

• проектування загальної структури - визначення основних компонентів і їх взаємозв'язків;

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

• проектування компонентів.

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

Прийнято розрізняти також два аспекти проектування:

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

• фізичне проектування - прив'язка до конкретних технічних і програмних засобів середовища функціонування, тобто облік обмежень, визначених в специфікаціях.

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

Супровід. Супровід - це процес створення і впровадження нових версій програмного продукту. Причинами випуску нових версій можуть служити:

• необхідність виправлення помилок, виявлених в процесі експлуатації попередніх версій;

• необхідність вдосконалення попередніх версій, наприклад, поліпшення інтерфейсу, розширення складу виконуваних функцій або підвищення його продуктивності;

• зміна середовища функціонування, наприклад, поява нових технічних засобів і/або програмних продуктів, з якими взаємодіє супроводжуване програмне забезпечення.

На цьому етапі в програмний продукт вносять необхідні зміни, які так само, як в решті випадків, можуть зажадати перегляду проектних рішень, прийнятих на будь-якому попередньому етапі. Із зміною моделі життєвого циклу програмного забезпечення (див. далі) роль цього етапу істотно зросла, оскільки продукти тепер створюються ітераційно: спочатку випускається порівняно проста версія, потім наступна з великими можливостями, потім наступна і так далі. Саме це і послужило причиною виділення етапу супроводу в окремий процес життєвого циклу відповідно до стандарту 1SO/IEC 12207 [1].

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

Контрольні питання і завдання

  1. Що називають життєвим циклом ПЗ?

  2. Який міжнародний стандарт регламентує склад процесів життєвого циклу ПЗ?

  3. Що таке процес життєвого циклу ПЗ і чим він характеризується?

  4. Які дії включає процес розробки ПЗ?

  5. Назвіть етапи та стадії розробки ПЗ?

  6. Що таке специфікації?