
- •Міністерство освіти та науки України в.В. Литвин, н.Б. Шаховська Проектування інформаційних систем
- •Передмова наукового редактора серії підручників «комп’ютинґ»
- •1.1. Складність програмного забезпечення
- •1.2. Структура складних систем
- •1.2.1. Приклади складних систем
- •1.2.2. П'ять ознак складної системи
- •1.2.3. Організована і неорганізована складність
- •1.3. Методи подолання складності
- •1.3.1. Роль декомпозиції
- •1.3.3. Роль абстракції
- •1.3.4. Роль ієрархії
- •1.4. Про проектування складних систем
- •1.4.1. Інженерна справа як наука і мистецтво
- •1.4.2. Сенс проектування
- •4. Методи подолання складності.
- •2.1. Базові означення
- •2.2. Методи проектування інформаційних систем
- •2.3. Види інформаційних систем
- •2.4. Рівні моделей даних
- •3. Види інформаційних систем.
- •3.1. Методологія процедурно-орієнтованого програмування
- •3.2. Методологія об'єктно-орієнтованого програмування
- •3.3. Методологія об'єктно-орієнтованого аналізу і проектування
- •3.4. Методологія системного аналізу і системного моделювання
- •4.1. Передісторія. Математичні основи
- •4.1.1. Теорія множин
- •4.1.2. Теорія графів
- •4.1.3. Семантичні мережі
- •4.2. Діаграми структурного системного аналізу
- •4.3. Основні етапи розвитку uml
- •3. Семантичні мережі.
- •5.1. Принципи структурного підходу до проектування
- •5.2. Структурний аналіз
- •5.3. Структурне проектування
- •5.4. Методологія структурного аналізу
- •5.5. Інструментальні засоби структурного аналізу та проектування
- •6.1. Основні елементи
- •6.2. Типи зв’язків
- •6.3. Техніка побудови
- •6.4. Діаграма бізнес – функцій
- •6.4.1. Призначення діаграми бізнес-функцій
- •6.4.2. Основні елементи
- •7.1. Призначення діаграм потоків даних та основні елементи
- •7.1.1. Зовнішні сутності
- •7.1.2. Процеси
- •7.1.3. Накопичувачі даних
- •7.1.4. Потоки даних
- •7.2. Методологія побудови dfd.
- •8.1. Діаграма «сутність-зв’язок»
- •8.2. Діаграма атрибутів
- •8.3. Діаграма категоризації
- •8.4. Обмеження діаграм сутність-зв’язок
- •8.5. Методологія idef1
- •9.1. Основні елементи
- •9.2. Типи керуючих потоків
- •9.3. Принципи побудови
- •10.1. Структурні карти Константайна
- •10.2. Структурні карти Джексона
- •11.1. Призначення case-технологій
- •11.2. Інструментальний засіб bPwin
- •11.2.4. Інші діаграми bpWin
- •11.2.5. Моделі as is і to be
- •11.3.1. Основні властивості
- •11.3.2. Стандарт idef1x
- •11.4. Програмний засіб Visio
- •12.1. Системний аналіз області наукових досліджень
- •12.1.1. Аналіз предметної області
- •12.2. Системний аналіз біржі праці
- •12.2.1. Дерево цілей
- •12.2.2. Опис об’єктів предметної області
- •12.2.3. Концептуальна модель
- •14.1. Еволюція об'єктної моделі
- •14.1.1. Основні положення об'єктної моделі
- •14.2. Складові частини об'єктного підходу
- •14.2.1. Парадигми програмування
- •14.2.2. Абстрагування
- •14.2.3. Інкапсуляція
- •14.2.4. Модульність
- •14.2.5. Ієрархія
- •14.2.7. Паралелізм
- •14.2.8. Збереженість
- •14.3. Застосування об'єктної моделі
- •14.3.1. Переваги об'єктної моделі
- •14.3.2. Використання об'єктного підходу
- •14.3.3. Відкриті питання
- •15.1. Природа об'єкта
- •15.1.1. Що є й що не є об'єктом?
- •15.1.2. Стан
- •15.1.3. Поведінка
- •15.1.4. Ідентичність
- •Void drag(DisplayItem I); // Небезпечно
- •15.2. Відношення між об'єктами
- •15.2.1. Типи відношень
- •15.2.2. Зв'язки
- •15.2.3. Агрегація
- •15.3. Природа класів
- •15.3.1. Що таке клас?
- •15.3.2. Інтерфейс і реалізація
- •15.3.3. Життєвий цикл класу
- •15.4. Відношення між класами
- •15.4.1. Типи відношень
- •15.4.2. Асоціація
- •15.4.3. Успадкування
- •15.4.4. Агрегація
- •15.4.5. Використання
- •15.4.6. Інсталювання (Параметризація)
- •15.4.6. Метакласи
- •15.5. Взаємозв'язок класів і об'єктів
- •15.5.1. Відношення між класами й об'єктами
- •15.5.2. Роль класів і об'єктів в аналізі й проектуванні
- •16.1. Важливість правильної класифікації
- •16.1.1. Класифікація й об’єктно-орієнтовне проектування
- •16.1.2. Труднощі класифікації
- •16.2. Ідентифікація класів і об'єктів
- •16.2.1. Класичний і сучасний підходи
- •16.2.2. Об’єктно-орієнтований аналіз
- •16.3. Ключові абстракції й механізми
- •16.3.1. Ключові абстракції
- •16.3.2. Ідентифікація механізмів
- •17.1. Призначення мови uml
- •17.2. Загальна структура мови uml
- •17.3. Пакети в мові uml
- •17.4. Основні пакети мета-моделі мови uml
- •17.5. Специфіка опису мета-моделі мови uml
- •17.6. Особливості зображення діаграм мови uml
- •18.1. Варіант використання
- •18.2. Актори
- •18.3. Інтерфейси
- •18.4. Примітки
- •18.5. Відношення на діаграмі варіантів використання
- •18.5.1. Відношення асоціації
- •13.5.2. Відношення розширення
- •18.5.3. Відношення узагальнення
- •18.5.4. Відношення включення
- •18.6. Приклад побудови діаграми варіантів використання
- •18.7. Рекомендації з розроблення діаграм варіантів використання
- •19.1. Клас
- •19.1.1. Ім'я класу
- •19.1.2. Атрибути класу
- •19.1.3. Операція
- •19.2. Відношення між класами
- •19.2.1. Відношення залежності
- •19.2.2. Відношення асоціації
- •19.2.3. Відношення агрегації
- •19.2.4. Відношення композиції
- •19.2.5. Відношення узагальнення
- •19.3. Інтерфейси
- •19.5. Шаблони або параметризовані класи
- •19.6. Рекомендації з побудови діаграми класів
- •20.1. Автомати
- •20.2. Стан
- •20.2.1. Ім'я стану
- •20.2.2. Список внутрішніх дій
- •20.2.3. Початковий стан
- •20.2.4. Кінцевий стан
- •20.3. Перехід
- •20.3.2. Сторожова умова
- •20.3.3.Вираз дії
- •15.4. Складений стан і підстан
- •20.4.1. Послідовні підстани
- •20.4.2. Паралельні підстани
- •15.5. Історичний стан
- •20.6. Складні переходи
- •15.6.1. Переходи між паралельними станами
- •20.6.2. Переходи між складеними станами
- •20.6.3. Синхронізуючі стани
- •20.7. Рекомендації з побудови діаграм станів
- •21.1. Стан дії
- •21.2. Переходи
- •21.5. Рекомендації до побудови діаграм діяльності
- •22.1.1. Лінія життя об'єкта
- •22.1.2. Фокус керування
- •22.2. Повідомлення
- •22.2.1. Розгалуження потоку керування
- •22.2.2. Стереотипи повідомлень
- •22.2.3. Тимчасові обмеження на діаграмах послідовності
- •22.2.4. Коментарі або примітки
- •22.3. Приклад побудови діаграми послідовності
- •22.4. Рекомендації з побудови діаграм послідовності
- •23.1. Кооперація
- •23.2.1. Мультиоб'єкт
- •23.2.2. Активний об'єкт
- •23.2.3. Складений об'єкт
- •23.3. Зв'язки
- •23.3.1. Стереотипи зв'язків
- •23.4. Повідомлення
- •23.4.1. Формат запису повідомлень
- •23.5. Приклад побудови діаграми кооперації
- •23.6. Рекомендації з побудови діаграм кооперації
- •24.1. Компоненти
- •24.1.1. Ім'я компоненту
- •24.1.2. Види компонент
- •24.2. Інтерфейси
- •24.3. Залежності
- •24.4. Рекомендації з побудови діаграми компонент
- •25.1. Вузол
- •25.2. З'єднання
- •25.3. Рекомендації з побудови діаграми розгортання
- •26.1. Загальна характеристика case-засобу Rational Rose
- •26.2. Особливості робочого інтерфейсу Rational Rose
- •26.1.1. Головне меню програми
- •26.1.2. Стандартна панель інструментів
- •26.1.3. Вікно браузера
- •26.1.4. Спеціальна панель інструментів
- •26.1.5. Вікно діаграми
- •26.1.6. Вікно документації
- •26.1.7. Вікно журналу
- •26.3. Початок роботи над проектом у середовищі Rational Rose
- •26.4. Розроблення діаграми варіантів використання в середовищі Rational Rose
- •26.5. Розроблення діаграми класів у середовищі Rational Rose
- •26.6. Розроблення діаграми станів у середовищі Rational Rose
- •26.7. Розроблення діаграми послідовності в середовищі Rational Rose
- •26.8. Розроблення діаграми кооперації в середовищі Rational Rose
- •26.9. Розроблення діаграми компонентів у середовищі Rational Rose
- •26.10. Розроблення діаграми розгортання в середовищі Rational Rose
25.3. Рекомендації з побудови діаграми розгортання
Розроблення діаграми розгортання починається з ідентифікації всіх апаратних, механічних та інших типів пристроїв, які необхідні для виконання системою всіх своїх функцій. У першу чергу специфікуються обчислювальні вузли системи, що володіють пам'яттю і/або процесором. При цьому використовуються наявні в мові UML стереотипи, а у разі відсутності останніх, розробники можуть визначити нові стереотипи. Окремі вимоги до складу апаратних засобів можуть бути задані у формі обмежень, властивостей і значень.
Рис. 25.7. Діаграма розгортання для моделі системи керування транспортною платформою
Подальша побудова діаграми розгортання пов'язана з розміщенням всіх виконуваних компонентів діаграми за вузлами системи. Якщо окремі виконувані компоненти виявилися не розміщеними, то подібна ситуація повинна бути виключена введенням в модель додаткових вузлів, що містять процесор і пам'ять.
Під час розроблення простих програм, які виконуються локально на одному комп'ютері, так само як у випадку діаграми компонентів, необхідність в діаграмі розгортання може бути взагалі відсутньою. У складніших ситуаціях діаграма розгортання будується для таких програмних комплексів, як:
Моделювання програмних систем, що реалізують технологію доступу до даних "клієнт-сервер". Для подібних систем характерне чітке розділення повноважень і, відповідно, компонентів між клієнтськими робочими станціями і сервером бази даних. Можливість реалізації "тонких" клієнтів на простих терміналах або організація доступу до сховищ даних приводить до необхідності уточнення не тільки топології системи, але й її компонентного складу.
Моделювання неоднорідної розподіленої архітектури. Мова йде про корпоративні інтрамережі, що налічують сотні комп'ютерів і інші периферійні пристрої, що функціонують на різних платформах і під різними операційними системами. При цьому окремі вузли такої системи можуть бути віддалені один від одного на сотні кілометрів (філії компаній). У цьому випадку діаграма розгортання стає важливим інструментом візуалізації загальної топології системи і контролю міграції окремих компонент між вузлами.
Нарешті, вже згадувані раніше, системи з вбудованими мікропроцесорами, які можуть функціонувати автономно. Такі системи можуть містити найрізноманітніші додаткові пристрої, що забезпечують автономність їх функціонування і вирішення цільових завдань. Для подібних систем діаграма розгортання дозволяє візуалізувати склад цих пристроїв і їх взаємозв'язок у системі.
Як правило, розроблення діаграми розгортання здійснюється на останньому етапі ООАП, що характеризує закінчення фази проектування фізичного подання. З іншої сторони, діаграма розгортання може будуватися для аналізу існуючої системи з метою її подальшого аналізу і модифікації. При цьому аналіз припускає розроблення цієї діаграми на її початкових етапах, що характеризує загальний напрям аналізу від фізичного подання до логічного.
Під час моделювання бізнес-процесів діаграма розгортання, окрім комп'ютерів корпоративної мережі, може містити в якості вузлів різні засоби оргтехніки (факсимільні пристрої, багатоканальні телефонні станції, розмножувальні апарати, екрани для презентацій та ін.). При цьому кожний з подібних пристроїв може функціонувати як автономно, так і у складі корпоративної мережі.
Якщо необхідно включити в модель ресурси Інтернету, то на діаграмі розгортання Інтернет позначається у формі "хмарки" з відповідним іменем. Строго кажучи, подібне позначення не специфіковане в мові UML, проте воно часто використовується під час розроблення моделей розподілених систем.
На закінчення слід зазначити одну важливу обставину, характерну для розроблення всіх канонічних діаграм. Хоча в мові UML визначена графічна нотація для всіх елементів канонічних діаграм, способи графічного зображення окремих інструментальних засобів мають свої специфічні особливості. Застосування того або іншого інструментального CASE-засобу накладає певні обмеження на візуалізацію моделей програмних систем. Мова йде про те, що деякі елементи мови UML можуть бути взагалі відсутніми в CASE-засобах. Вихід з подібної ситуації може бути пов'язаний або з вибором іншого інструментарію, що підтримує останні версії мови UML, або спрощенні моделі на основі її типізації.
В розділі 26 деякі з цих аспектів будуть розглянуті детальніше на прикладі CASE-засобу Rational Rose.
Висновки
Контрольні питання
1. Призначення діаграми розгортання.
2. Вузли на діаграмі розгортання.
3. Види з'єднань.
4. Наведіть приклад побудови діаграми розгортання.
РОЗДІЛ 26. Особливості реалізації мови UML в CASE-інструментарії Rational Rose.
Загальна характеристика CASE-засобу Rational Rose
Особливості робочого інтерфейсу Rational Rose
Розроблення діаграм в середовищі Rational Rose
Поява на ринку програмних продуктів перших CASE-засобів (Computer Aided Software Engineering) ознаменувало новий етап розвитку програмної інженерії, характерними рисами якої є істотне скорочення термінів розроблення програмних проектів, реалізації проектів групою програмістів й орієнтації на візуальні засоби специфікації компонентів програмного забезпечення.
Класичною областю застосування цих засобів стали бази даних, особливо ті з них, які вимагали серйозних зусиль під час розроблення своїх концептуальних схем. Підтримка можливості автоматичної генерації програмного коду на основі попередньо розробленої концептуальної схеми виявилася настільки конструктивною, що стимулювала появу більше двох десятків CASE-засобів різних фірм.
Як ми вже відзначали, початковий етап розвитку CASE-технологій характеризувався тим, що різні фірми пропонували свої власні засоби візуального подання концептуальних засобів. Найчастіше вибір того або іншого CASE-засобу розробниками визначався простотою нотації підтримуваного засобом мови подання схем і діаграм. Поява перших стандартів у цій області лише на якийсь час стабілізувало ситуацію. Однак найгостріша конкуренція серед фірм-виробників програмного забезпечення вимагала від CASE-засобів реалізації обєктно-орієнтованої технології розроблення програм і підтримки широкого діапазону мов програмування й конкретних баз даних.
Серед всіх фірм-виробників CASE-засобів саме компанія Rational Software Coip одна з перших усвідомила стратегічну перспективність розвитку обєктно-орієнтованих технологій аналізу й проектування програмних систем. Ця компанія виступила ініціатором уніфікації мови візуального моделювання в рамках консорціуму OMG, що, в остаточному підсумку, привело до появи перших версій мови UML. І ця ж компанія першою розробила інструментальний обєктно-орієнтований CASE-засіб, у якому була реалізована мова UML як базова нотація візуального моделювання.
Примітка
Серед причин, що стримують застосування CASE-засобів і визначають контраст їх популярності серед західних і вітчизняних розробників програм, слід зазначити, у першу чергу, масштабність проектів і розходження в технологіях створення програм. З однієї сторони, необхідність автоматизації аналізу й проектування програмних систем на базі CASE-технологій починає усвідомлюватися тільки тоді, коли проект є досить складним і масштабним. В іншому випадку для написання програм цілком достатньо звичайних інструментів розробника. З іншої сторони, реалізація масштабних проектів під силу групі програмістів, а забезпечення групової роботи над проектом вимагає додаткових засобів для забезпечення сумісності його складових частин.