Основи програмної інженерії
Вид материала | Документы |
СодержаниеКонтрольні питання і завдання 5.1. Прикладне (систематичне) програмування 5.1.1 Структурне програмування Метод функціонального моделювання Модель потоків даних |
- Назва модуля: Моделювання та аналіз програмного забезпечення Код модуля, 36.38kb.
- Емпіричні методи програмної інженерії, 10.35kb.
- Онтологічні моделі опису готових ресурсів у розробці програм, 202.38kb.
- Апаратна складова, 214.38kb.
- Назва модуля: Основи інженерії довкілля. Код модуля, 15.91kb.
- «Основи інформатики. 7 клас», 663.63kb.
- «Основи інформатики. 7 клас», 662.94kb.
- Виступ директора зош №44 Топорікової, 336.95kb.
- Основи навчальної програми враховують вимоги Ради з освіти Міжнародної Федерації бухгалтерів,, 143.95kb.
- Солтисік Роман Андрійович, доцент, к т. н. Федевич Олег Євгенійович, 7 Результати навчання:, 103.84kb.
Контрольні питання і завдання
1.Наведіть класифікацію вимог.
2. Визначте призначення функціональних і не функціональних вимог.
3. Назвіть джерела для завдання вимог.
4. Наведіть задачі обстеження, аналізу і збирання вимог.
5. Визначте інженерію вимог і задачі трасування вимог.
6. Визначте суть об'єктно-орієнтованої інженерії вимог.
7. Назвіть ролі діючих осіб у формуванні вимог.
8. Назвіть види відношень об'єктів у моделі.
9. Охарактеризуйте сценарний підхід і підхід за прецедентами.
5. Методи програмування.
Ядро SWЕВОК містить у собі два близьких за змістом розділи, які пов'язані з побудовою ПЗ: проектування ПЗ і конструювання ПЗ. Розділ, що стосується програмування, в цьому ядрі відсутній, проте те він є необхідний, оскільки в сучасній практиці проектування і розроблення програмних продуктів (ПП) широко використовуються багато різних парадигм програмування (модульне, об'єктно-орієнтоване, компонентне, аспектне тощо), які мають бути певним чином систематизовані.
Кожна парадигма програмування характеризується наявністю в ній метода і зв'язком з моделлю ЖЦ. Головне, що об'єднує різні парадигми програмування, - це загальні положення у проектуванні ПП. Користувач може вибирати ту або іншу парадигму програмування з позицій зручності застосування для задач у ПО і виготовлення конкретного ПП.
Розрізняють прикладні і теоретичні методи, які з'явилися у різний час від моменту появи програмної інженерії і мають свою специфіку й сферу застосування. Наприклад, структурний метод виник багато років тому, він добре відпрацьований і вдосконалений для індустріального виготовлення ПП і навіть став Держстандартом у Великобританії. Широкого застосування набули методи модульного і компонентного програмування. Вони базуються на концепції повторного використання компонентів. Саме ці види програмування започаткували індустрію виготовлення ПП з готових компонентів, аналогічно до того, як в промисловості здійснювалося виготовлення виробів з готових деталей.
Поява нових методів стимулюється досягненнями загальнонаукових дисциплін (математики, логіки, теорії алгоритмів тощо) і практичними задачами. Теоретичні методи програмування дозволяють створювати програмні системи в абстрактному вигляді, включаючи концептуальні, інформаційні, структурні моделі без урахування особливостей середовищ, в яких вони реалізуються. Ці моделі доводяться до стану кінцевого продукту шляхом використання відповідних мов програмування.
Знаходять застосування формальні й теоретичні методи програмування (алгебраїчний, алгебро-алгоритмічний, композиційний й ін.), які ґрунтуються на математичних і логіко-алгоритмічних підходах до абстрактного створення ПП.
У цьому розділі описані базові поняття й особливості методів прикладного, або систематичного програмування, а також окремих методів теоретичного програмування з метою ознайомлення студентів із сучасною теорією і практикою розробки програм.
5.1. Прикладне (систематичне) програмування
До методів систематичного програмування відносять такі методи:
- структурний;
- об'єктно-орієнтований;
- UML - метод;
- компонентний;
- аспектно-орієнтований;
- генерувальний;
- сервісний;
- агентний й ін.
Кожен з цих методів має свою множину понять й операцій для проведення процесу розроблення окремих компонентів, сервісів або ПС. Метод генеруючого програмування використовує можливості об'єктно-орієнтованого, компонентного, аспектно-орієнтованого методів й ін.
5.1.1 Структурне програмування
Сутність структурного підходу до розробки ПС полягає в декомпозиції (розподілі) системи на функції, що підлягають автоматизації, які у свою чергу, діляться на під функції й задачі. Процес декомпозиції триває до визначення конкретних процедур. При цьому система, що автоматизується, зберігає цілісне подання, у якому всі складові компоненти взаємозалежні [1].
Основу структурного програмування становлять:
- розподіл системи на множину незалежних задач, доступних для розуміння і розв'язання;
- впорядкування й організація складових частин проблеми в ієрархічні деревоподібної структури з додаванням нових деталей на кожному рівні.
До головних принципів належать:
- абстрагування, тобто відокремлення істотних аспектів системи й нехтування несуттєвими;
- формалізація, тобто загальне методологічне вирішення проблеми;
- обґрунтування й узгодження елементів системи і перевірка їх на несупереч-
ність;
- утворення ієрархічної структури даних.
При структурному аналізі застосовуються три найпоширеніші моделі структурного проектування ПС:
• SADT (Structured Analysis and Design Technique) - метод структурного аналізу й техніка проектування моделі системи за допомогою функціональних діаграм [1];
• SSADM (Structured Systems Analysis and Design Methode) - метод структурного аналізу й проектування систем [2];
• IDEF (Integrated Definition Functions) - метод визначення функціональної моделі, IDEF1 - інформаційної моделі, IDEF2 - динамічної моделі й ін. [3].
Розглянемо ці методи детальніше.
Метод функціонального моделювання SADT. Цей метод запропоновано Д. Россом і покладено в основу методології IDEFO (Icam DEFinition), що є головною частиною програми ІСАМ (Інтеграція комп'ютерних і промислових технологій), проведеної з ініціативи ВПС США.
На стадії проектування моделі системи зображуються у вигляді діаграм або екранних форм і відображають структуру або архітектуру системи, а також схеми програм.
SADT - це сукупність правил і процедур, призначених для побудови функціональної моделі предметної області, яка відображає функціональну структуру, функції і дії, а також зв'язки між ними.
Метод SADT базується на наступних концепціях:
графічне зображення структури з поданням функцій блоками, а інтерфейсів дугами, що, відповідно, входять у блок і виходять з нього (рис.5.1);
Рис. 5.1. Структура моделі
- блоків може бути від 3 до 6 на кожному рівні декомпозиції;
- взаємодія блоків описується обмеженнями, які визначають умови керування й виконання функцій;
- унікальність позначок і найменувань;
- незалежність функціональної моделі від організаційної структури колективу розробників.
Метод SADT застосовується при моделюванні широкого кола систем, для яких визначаються вимоги й функції, а потім проводиться їхня реалізація. Засоби SADT можуть застосовуватися при аналізі функцій у діючій ПС, а також при визначенні способів їхньої реалізації.
Результат проектування в методі SADТ - модель, що складається з діаграм, фрагментів текстів і глосарію з посиланнями один на одного. Всі функції й інтерфейси зображуються діаграмами у вигляді блоків і дуг. Місце з'єднання дуги з блоком визначає тип інтерфейсу. Керуюча інформація позначається дугою, яка входить у блок зверху, у той час як інформація, що піддається обробці, вказується з лівої сторони блоку, а результати виходу - з правої сторони. Механізм, що здійснює операцію (людина або автоматизована система), задається дугою, що входить у блок знизу.
Одна з найбільш важливих переваг методу SADТ - поступова деталізація моделі системи в міру додавання функцій і діаграм, що уточнюють цю модель.
Метод SSADM базується на таких структурах: послідовність, вибір й ітерація. Об'єкт моделювання задається відповідними структурними діаграмами, які відображають послідовність операторів, вибір елементів із групи й циклічне виконання операторів за цими елементами.
Загальна діаграма системи згідно з цим методом має ієрархічну структуру і містить у собі: список компонентів модельованого об'єкта; ідентифіковані групи вибраних і повторюваних компонентів, а також послідовність використовуваних компонентів.
Таке програмування передбачає наявність моделі ЖЦ із послідовними процесами розроблення програмного проекту, починаючи з аналізу і формування вимог для ПрО (рис. 5.2).
До етапів ЖЦ належать:
- стратегічне проектування та вивчення можливості виконання проекту;
- детальне дослідження предметної області, що містить у собі аналіз і специфікацію вимог;
- логічне проектування та специфікація компонентів системи;
- фізичне проектування структур даних відповідно до вибраної структури БД (реляційної, об'єктно-орієнтованої й ін.) та конструювання окремих компонентів, їх тестування і тестування системи в цілому;
- виготовлення продукту і документації для замовника.
Детальне дослідження предметної області проводиться для того, щоб вивчити її особливості, розглянути потреби й пропозиції замовника, провести аналіз вимог з різних документів, специфікувати їх і погодити із замовником.
Мета стратегічного проектування - визначення сфери дії проекту, аналіз інформаційних потоків, формування загальної архітектури системи, визначення витрат на розробку і підтвердження можливості подальшої реалізації проекту. Результат - це специфікація вимог, що застосовується при розроблені логічної структури системи.
Рис.5.2. Життєвий цикл SSADM
Логічне проектування - це визначення функцій, діалогу, методу побудови і відновлення БД. У логічній моделі відображаються вхідні й вихідні дані, проходження запитів і встановлення взаємозв'язків між сутностями та подіями.
Фізичне проектування – це визначення типу СКБД і подання даних у ній з урахуванням специфікації логічної моделі даних, обмежень на пам'ять і час обробки, а також визначення механізмів доступу, розміру логічної БД, зв'язків між елементами системи.
Фізична специфікація містить у собі:
- специфікацію функцій і схеми реалізації компонентів функцій,
- опис процедурних і не процедурних компонентів й інтерфейсів,
- визначення логічних і фізичних груп даних з урахуванням обмежень устаткування на розробку й стандарти розробки,
- визначення груп подій, які обробляються як єдине ціле з видачею повідомлень про завершення обробки й ін.
Процеси, які виконуються у SSADM, пов'язані з роботами, що керують потоками інформації трьох типів: потік робіт; санкціоновані потоки за контролем або керуванням; звіти про хід розроблення.
Конструювання - це побудова конструкцій і елементів системи, їхнє тестування на наборах даних, які підбираються на ранніх етапах ЖЦ розробки системи.
Життєвий цикл містить у собі процес керування і контролю, який базується на сітковому графіку, що враховує роботи з розробки системи, витрати і строки. Спостереження і контроль виконання плану проводить організаційний відділ. У графіку містяться роботи й взаємозв'язки між ними і їхніми виконавцями, а також проектні документи, які розроблюються виконавцями. Результати кожного з етапів ЖЦ контролюються і передаються на наступний етап у вигляді, зручному для подальшої реалізації іншими виконавцями.
Згідно з методом SSADM створюється структурна модель системи і модель потоків даних. У діаграмах структурної моделі впорядкування процесів наведено зліва направо і віддзеркалює розвиток у часі, а не інтервали часу.
Модель потоків даних (Data Flow Model - DFM) використовується для опису процесів обробки даних у системі й містить у собі:
- ієрархічний набір діаграм потоків даних (Data Flow Diagram - DFD);
- опис елементарних процесів, потоків даних, сховищ даних і зовнішніх сутностей.
Кожна DFD відбиває проходження даних через систему залежно від рівня та призначення діаграми. DFD перетворює вхідні потоки даних (входи) у вихідні потоки даних (виходи). Як правило, процеси, що виконують такі перетворення, створюють і використовують дані зі сховища даних.
До об'єктів моделювання системи в SSADM належать:
1. Функції, які створюються на основі DFM і моделювання взаємозв'язків подій і сутностей для дослідження обробки даних у системі;
2. Події - деякі прикладні дії, які ініціюють процеси для занесення й відновлення даних системи. Подія приводить до виклику процесу і досліджується за допомогою моделювання її впливу на сутності;
3. Дані зображуються спочатку логічною моделлю, потім фізичною, яка відображається у реляційну або об'єктно-орієнтовану БД, залежно від вибраної для проекту СКБД.
Найпоширеніші засоби моделювання даних - діаграми «сутність-зв'язок» (ER - діаграми), запропоновані Баркером, як застосування класичної ER - моделі Чена. В ER - діаграмах визначаються сутності (множини однотипних об'єктів) ПрО, їхні властивості (атрибути) і залежності (зв'язки). Сутність (Entity) - реальний або уявлюваний об'єкт, що має істотне значення для області. Кожна сутність й її екземпляр мають унікальні імена. Сутність має такі властивості:
- один або кілька атрибутів, які або належать сутності, або успадковуються через зв'язок (Relationship);
- довільну кількість зв'язків з іншими сутностями моделі.
Зв'язок - це асоціація між двома сутностями ПрО. У загальному випадку кожен екземпляр сутності-батька асоційований з довільною кількістю екземплярів успадкованої сутності (нащадка), а кожен екземпляр сутності-нащадка асоційований з одним екземпляром сутності-батька. Таким чином, екземпляр сутності-нащадка може існувати тільки при наявності сутності-батька. Для зв'язків можуть встановлюватися обмеження на кількість екземплярів сутності, що беруть участь у зв'язку. Наприклад, одному екземпляру однієї сутності може відповідати не більше ніж один екземпляр іншої.
Метод IDEF1 базується на концепції ER - моделювання і призначений для побудови інформаційної моделі подібно до реляційної моделі. Даний метод постійно розвивається й удосконалюється (наприклад, методологія IDEF1X - проектування, орієнтована на автоматизацію - ERwin, Design/IDEF). Основна особливість полягає в тому, що кожен екземпляр сутності може бути однозначно ідентифікований без визначення відношення з іншими сутностями. Якщо Ідентифікація екземпляра сутності залежить від його відношення до іншої сутності, то сутність є залежною. Кожній сутності присвоюється унікальне ім'я і номер, які розділяють косою рискою «/» і розміщують над блоком, який позначає сутність. Обмеження на множинність зв'язку можуть означати, що для кожного екземпляра сутності-батька:
- існує нуль, один або більше пов'язаних з ним екземплярів сутності-нащадка;
- існує не менше ніж один або не більше ніж один пов'язаний з ним екземпляр сутності-нащадка;
- існує зв'язок з деяким фіксованим числом екземплярів сутності-нащадка. Якщо екземпляр сутності-нащадка однозначно визначається своїм зв'язком із
сутністю-батьком, то зв'язок є ідентифікований, інакше - не ідентифікований. Сутність-батько в ідентифікованому зв'язку може бути як незалежною, так і залежною від зв'язків з іншими сутностями. Сутність-нащадок у не ідентифікованому зв'язку буде незалежною, якщо вона не є також сутністю-нащадком у якому-небудь ідентифікованому зв'язку.
Атрибути зображуються у вигляді списку імен усередині блока сутності, первинний ключ розміщується нагорі списку і відокремлюється від інших атрибутів горизонтальною рискою. Сутності можуть мати також зовнішні ключі, як частина або ціле первинного ключа або не ключового атрибуту.
Засобами IDEF1 проводиться збирання і вивчення різних сфер діяльності підприємства, визначення потреб в інформаційному менеджменті, а також:
- інформації й структури потоків, що властиві діяльності підприємства;
- правил і законів руху інформаційних потоків і принципів керування ними;
- взаємозв'язків між існуючими інформаційними потоками на підприємстві;
- проблем, що виникають при неякісному інформаційному менеджменті і потребують усунення.
Одна з особливостей даної методології - забезпечення структурованого процесу аналізу інформаційних потоків підприємства і можливості зміни неповної й неточної структури інформації на етапі моделювання інформаційної структури підприємства.
Інструментальна підтримка SSADM. Головний інструмент структурного проектування відповідно до ЖЦ SSADM - комплекс програмних, методичних й організаційних засобів системи SSADM. Ця система прийнята державними органами Великобританії як основний системний засіб і використовується багатьма державними організаціями і в межах, і за межами країни. SSADM містить у собі п'ять головних модулів підтримки, або етапів ЖЦ проектування [2]:
1) вивчення можливості виконання проекту (Feasibility Study Module);
2) аналіз вимог (Requirements Analysis Module);
3) специфікація вимог (Requirements Specification Module);
4) логічна специфікація системи (Logical System Specification Module);
5) фізичне проектування (Physical Design Module). Проектування за допомогою системи SSADM передбачає сукупність заходів з
розробки набору проектних документів в умовах використання відповідних ресурсів при заданих обмеженнях на вартість розробки. Для керування ходом розробки проекту розглядаються проектні роботи і документи, організація і плани розробки, заходи щодо керування проектом та забезпечення якості. Розрізняються два типи проектних робіт:
- забезпечення вимог користувача до якості системи;
- керування розробкою проекту.
Структурна модель охоплює всі модулі й стадії технології SSADM, забезпечує одержання одних документів на підставі інших шляхом логічних перетворень. Іншими словами, одна сукупність документів перетворюється на іншу. Для встановлення послідовності робіт і заходів з забезпечення якості розробляється сітковий графік робіт.
Забезпечення якості реалізується групою якості, що відповідає за підтримку цілісності проекту. В ній працюють фахівці, відповідальні за функціонування організації (плановики, економісти), користувачі системи й розробники, які беруть участь у проекті від початку до кінця. Плановики й економісти слідкують за своєчасним виконанням і фінансуванням робіт, користувачі - висувають вимоги та пропозиції, а розробники виражають їхні потреби в рамках своєї компетенції.
Для керування проектом створюється служба підтримки проекту, що виконує ряд адміністративних функцій або спеціальних робіт. Вона здійснює експертизу при оцінюванні, плануванні і керуванні проектом, а також проводить заходи з керування конфігурацією, сутність яких полягає у відстеженні проектних документів і забезпеченні інформації про їхній стан у процесі розроблення.
Проблема якості стосується двох основних аспектів:
1) сукупності функцій, що повинні задовольняти задані вимоги до функцій, надійності й продуктивності;
2) способу реалізації системи.
Якість забезпечується шляхом перевірки зазначених у вимогах показників якості (економічність, гнучкість, здатність до зміни, модульність, правильність, надійність, переносність, ефективність).
Контроль якості продукту - це перевірка відповідності заданим стандартам і вимогам. Він містить у собі дії, які дозволяють перевірити і виміряти показники якості. Висока якість продукту означає, що система конструювалася відповідно до встановлених стандартів, які полегшують процес її розроблення, супроводження та модифікації при зміні вимог або внесенні виправлень у систему з мінімумом витрат.
Ідеологія структурного проектування втілена в ряді CASE- засобів (SilvcrRun, Oracle Disigner, ErWin й ін.), що активно використовується на практиці.