- •Міністерство освіти та науки України в.В. Литвин, н.Б. Шаховська Проектування інформаційних систем
- •Передмова наукового редактора серії підручників «комп’ютинґ»
- •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
26.10. Розроблення діаграми розгортання в середовищі Rational Rose
Діаграма розгортання є другою складовою частиною фізичного подання моделі. Активізація діаграми розгортання може бути виконана одним з наступних способів:
Клацнути на кнопці із зображенням діаграми розгортання на стандартній панелі інструментів.
Двічі клацнути на піктограмі подання розгортання в браузері (Deployment View).
Через пункт меню BrowseDeployment Diagram (БраузерДіаграма розгортання).
Після активізації діаграми розгортання спеціальна панель інструментів придбає такий вигляд (рис. 26.20).
Рис. 26.20. Зовнішній вигляд спеціальної панелі інструментів для діаграми розгортання
Робота з діаграмою розгортання полягає в створенні процесорів і пристроїв, визначення їх специфікації, встановленні зв'язків між ними, а також додаванні й специфікації процесів. Відносно окремих процесорів можна використати стереотипи.
Нижче наводиться приклад графічного зображення діаграми розгортання (рис. 26.21).
Рис. 26.26. Приклад графічного подання діаграми розгортання в середовищі Rational Rose
Однією з найпотужніших властивостей середовища Rational Rose є можливість генерації програмного коду після побудови моделі. Як ми вже відзначали раніше, можливість генерації тексту програми на тій або іншій мові програмування залежить від встановленої версії Rational Rose.
Загальна послідовність дій, які необхідно виконати для цього, складається із шести етапів:
Перевірка моделі незалежно від вибору мови генерації коду.
Створення компонентів для реалізації класів.
Відображення класів на компоненти.
Встановлення властивостей генерації програмного коду.
Вибір класу, компонент або пакету.
Генерація програмного коду.
Особливості виконання кожного з етапів можуть змінюватися залежно від вибору мови. У середовищі Rational Rose передбачене задання достатньо великої кількості властивостей, що характеризують як окремі класи, так і проект у цілому. Однак опис цих властивостей виходить за межі цього навчальника посібника.
Контрольні питання
1. Призначення Rational Rose.
2. Загальна характеристика CASE-засобу Rational Rose.
3. Особливості Rational Rose.
4. Розроблення діаграм в середовищі Rational Rose.
Висновок
У цей час повністю специфікована й документована версія 1.3 мови UML і триває подальша робота з її розвитку. Хоча вже анонсована наступна версія мови UML – 1.4, на момент написання книги остаточна документація за цією версією ще не специфікована. Можливо, із цієї причини наступною версією стане UML 2.0, роботу над якою планується розгорнути в 2001 році. Хід цієї роботи і її стан відбиваються на офіційному сайті OMG: http://www.omg.org. Там же втримуються повні специфікації стандарту OMG-UML, надані для вільного доступу.
Іншим джерелом інформації про мову UML в Інтернеті є сайт компанії Rational Software Corp.: http://www.rational.com/, на якому зосереджено основні розробки та здійснюється загальна координація роботи над черговими версіями мови. Ця компанія також є розробником CASE-засобу Rational Rose 98/2000, в якій реалізуються поточні доповнення мови UML.
З вітчизняних ресурсів не можна не згадати сайт компанії "Інтерфейс" – http://www.interface.ru, де міститься інформація про сучасні CASE-засоби, розглядаються їх характеристики й можливості, а також особливості окремих технологій ООАП.
Перспективи подальшого розвитку UML зв'язані зі становленням й інтенсивним розвитком нової парадигми об’єктно-орієнтованого аналізу – компонентного розроблення програмних комплексів (Component-Based Development – CBD). У цьому зв'язку розгорнута робота над додатковою специфікацією мови UML стосовно до технологій CORBA і СОМ+. Мова йде про розроблення так званих профілів, що містять нотацію всіх необхідних елементів для подання в мові UML компонентів відповідних технологій. При цьому інтенсивно використовується механізм розширення мови UML за рахунок додавання нових стереотипів, позначених значень й обмежень.
Мова UML вже зараз знаходить широке застосування як неофіційний стандарт у процесі розроблення програмних систем, пов'язаних з такими областями, як моделювання бізнесу, керування вимогами, аналіз і проектування, програмування й тестування. Стосовно до цих процесів у мові UML уніфіковані стандартні позначення основних елементів відповідних предметних областей.
Зокрема, для моделювання бізнесів-процесів можуть бути використані: стосовно до підсистем – стереотипи "organization unit" й "work unit", для класів – стереотипи "worker", "case worker", "internal worker". При цьому, наприклад, стереотип "worker" служить для позначення класу, що представляє абстракцію людини, що виконує певну діяльність або роботу в бізнес-системі. Працівник або співробітник взаємодіє з іншими співробітниками підсистеми в процесі виконання окремих операцій, що утворять бізнес-логіку процесу.
Слід також зазначити, що розвиток мови UML на основі включення в неї нотацію додаткових елементів і стереотипів стимулює розроблення відповідних інструментальних CASE-засобів. Можна із впевненістю припустити, що ця область розвитку інформаційних технологій має найширші перспективи й стратегічне значення не тільки як мова спілкування між замовниками й розробниками програмних систем, але й для документування проектів у цілому. При цьому досягається необхідний рівень стандартизації й уніфікації всіх використовуваних для цієї мети позначень.
Розробивши модель і специфікувавши її мовою UML, розробник має всі підстави бути зрозумілим і фахово оціненим своїми колегами. При цьому можуть бути виключені ситуації, коли той або інший розробник застосовує свою власну графічну нотацію для подання тих або інших аспектів моделі, що практично виключає її розуміння іншими фахівцями у випадку нетривіальності вихідної моделі.
Не менш важливий аспект застосування мови UML пов'язаний із професійною підготовкою відповідних фахівців. Мова йде про те, що знання різних наукових дисциплін характеризують різні аспекти реального світу. При цьому принципи системного аналізу дозволяють розглядати ті або інші об'єкти як системи.
Таке розроблення моделі системи, спрямоване на рішення певних проблем, може зажадати залучення знань із різних дисциплін. Із цього погляду мова UML може бути використана не тільки для уніфікації подань цих знань, але що не менш важливо – для їхньої інтеграції, спрямованої на підвищення адекватності багато-модельних подань складних систем.
Можливо згодом мова UML стане тим "есперанто", на якому зможуть спілкуватися математики, системні аналітики, фізики, програмісти, менеджери, економісти й фахівці інших професій, представляючи свої професійні знання в уніфікованому вигляді. Адже, власне кажучи, кожний з фахівців оперує модельними поданнями у своїй області знань. І саме цей модельний аспект може бути специфікований засобами мови UML.
У зв'язку із цим значення мови UML істотно зростає, оскільки вона все більше набуває риси мови подання знань. При цьому наявність у мові UML образотворчих засобів для подання структури й поведінки моделі дозволяє досягти адекватного подання декларативних і процедурних знань й, що не менш важливо, встановити між цими формами знань семантичну відповідність. Всі ці особливості мови UML дозволяють зробити висновок про те, що вона має самі серйозні перспективи вже в найближчому майбутньому.
Використана література
Вендров А. М. CASE-технологии. Современные методы и средства проектирования информационных систем. - М: Финансы и статистика, 1998. – 176 с.
Кальянов Г.Н. Case - технологии. Консалтинг при автоматизации бизнес-процессов. - 15.е изд. М.: Горячая линия - Телеком, 2002. - 320 с.
Маклаков С.В. BPwin и ERwin. CASE-средства разработки информационных систем. – М.: ДИАЛОГ-МИФИ, 1999 – 256с.
Кумсков М. Унифицированный язык моделирования UML и его поддержка в Rational Rose’98 – CASE-средстве визуального моделирования. (http://www.interface.ru)
Ерофеев А.А., Поляков А.О. Интеллектуальные системы управления. – СПб.: Изд-во СПбГТУ. 1999 – 264с.
Кирстен В., Ирингер М., Шульте П. Объектно-ориентированная разработка приложений в среде постреляционной СКБД CACHE. СПб: АОЗТ “СП. АРМ”, 2000.
Гессе С., Кирстен В. Введение в язык программирования М. – СПб: АОЗТ “СП. АРМ”, 1996 – 280с.
Кирстен В. От ANS MUMPS к ISO M. – СПб: СП. АРМ, 1995 – 277с.
Долженков А.Н. Справочное руководство по qWord. СПб: АОЗТ “СП. АРМ”, 1996, 65 с.
Кузнецов С. Д. Основы современных баз данных // Информационно-аналитические материалы Центра информационных технологий.(http://www.citforum.ru/index.html)
Смит А.Б. Реляционные, древовидные и объектно-ориентированные базы данных. // MSM-бюллетень.-1997. -№5. – с. 19-28.
Молоткова Н.В., Соколова С.В., Ткалич О.Б. Экономические расчеты для дипломных проектов по техническим специальностям. СПб.: СПбГТУ, 1996, 20 с.
Малаян К.Р., Семенов И.В. Безопасность жизнедеятельности. - СПб.: СПбГТУ, 1994, 116 с.