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

Лекція 14. Тема: методології структурного аналізу і проектування

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

В даний час успішно використовуються такі методології, як SADT (Structure Analysis and Design Technique), структурний системний аналіз Гейна-Сарсона, структурний аналіз і проектування Йодана/Де Марко, розвиток систем Джексона та інші.

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

Не дивлячись на достатньо широкий спектр методів і діаграмної техніки, більшість методологій базуються на наступній "класичній" сукупності:

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

  • Розширення Хатлі і Уорда-Меллора для проектування систем реального часу, засновані на діаграмах переходів станів, таблицях рішень, картах і схемах потоків керування;

  • Діаграми "сутність-зв'язок (у нотації Чена або Баркера)" для проектування структур даних, схем БД, форматів файлів як частини всього проекту;

  • Структурні карти Джексона і/або Константайна для проектування міжмодульних взаємодій і внутрішньої структури модулів.

Розробка ПЗ ґрунтується на моделі ВХІД-ОБРОБКА-ВИХІД: дані входять в систему, обробляються або перетворюються і виходять з системи. Така модель використовується у всіх структурних методологіях. При цьому важливий порядок побудови моделі. Традиційний процедурно-орієнтований підхід регламентує первинність проектування функціональних компонент по відношенню до проектуванню структур даних: вимоги до даних розкриваються через функціональні вимоги. При підході, який орієнтується на дані, вхід і вихід є найбільш важливими – структури даних визначаються першими, а процедурні компоненти є похідними від даних.

Методології структурного аналізу Йодана/Де Марко і Гейна-Сарсона

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

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

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

  2. Словники даних. Являють собою каталоги всіх елементів даних, присутніх в DFD, включаючи групові і індивідуальні потоки даних, сховища і процеси, а також всі їх атрибути.

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

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

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

SADT – технологія структурного аналізу і проектування

SADT – одна з найвідоміших методологій аналізу і проектування інформаційних систем, введена в 1973 році Росом [11].

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

Методологія SADT є сукупністю методів, правил і процедур, призначених для побудови функціональної моделі об'єкту якої-небудь наочної області. Функціональна модель SADT відображає функціональну структуру об'єкту, тобто всі дії, які може виконувати об’єкт, і зв'язки між цими діями. Основні елементи цієї методології ґрунтуються на наступних концепціях:

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

  • строгість і точність. Виконання правил SADT вимагає достатньої строгості і точності, не накладаючи в той же час надмірних обмежень на дії аналітика. Правила SADT включають:

  • обмеження кількості блоків на кожному рівні декомпозиції (правило 3-6 блоків);

  • зв'язність діаграм (номери блоків);

  • унікальність імен (відсутність імен, що повторюються);

  • синтаксичні правила для графіки (блоків і дуг);

  • розділення входів і керувань (правило визначення ролі даних).

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

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

Результатом застосування методології SADT є модель, яка складається з діаграм, фрагментів текстів і глосарію, що мають посилання один на одного. Діаграми - головні компоненти моделі, всі функції ІС і інтерфейси на них представлені як блоки і дуги. Місце з'єднання дуги з блоком визначає тип інтерфейсу. Керуюча інформація входить в блок зверху, тоді як інформація, яка піддається обробці, показана з лівого боку блоку, а результати виходу показані з правого боку. Механізм (людина або автоматизована система), який здійснює операцію, показаний дугою, що входить в блок знизу (рис.14.1).

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

На рис.14.2, де приведено чотири діаграми і їх взаємозв'язки, показана структура SADT-моделі. Кожен компонент моделі може бути підданим декомпозиції на іншій діаграмі. Кожна діаграма ілюструє "внутрішню будову" блоку на батьківській діаграмі.

Рисунок 14.2 – Структура SADT-моделі.

Декомпозиція діаграм

Ієрархія діаграм

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

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

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

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

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

На рис.14.3-14.5 представлені різні варіанти виконання функцій і з'єднання дуг з блоками.

Рисунок 14.3 –. Одночасне виконання

Рисунок 14.4 – Відповідність повинна бути повною і несуперечливою

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

На SADT-діаграмах не вказані явно ні послідовність, ні час. Зворотній зв’язок, ітерації, продовження процесів і перекриття (за часом) функцій можуть бути показані за допомогою дуг. Зворотній зв’язок може виступати у вигляді коментарів, зауважень, виправлень і т.п. (рис.14.5).

Рисунок 14. 5 – Приклад зворотного зв'язку

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

Рисунок 14.6 – Приклад механізму

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

Для того, щоб вказати положення будь-якої діаграми або блоку в ієрархії, використовуються номери діаграм. Наприклад, А21 є діаграмою, яка деталізує блок 1 на діаграмі А2. Аналогічно, А2 деталізує блок 2 на діаграмі А0, яка є самою верхньою діаграмою моделі. На рис.14.7 показано типове дерево діаграм.

Рисунок 14.7 – Ієрархія діаграм