
- •Міністерство освіти та науки України в.В. Литвин, н.Б. Шаховська Проектування інформаційних систем
- •Передмова наукового редактора серії підручників «комп’ютинґ»
- •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
4. Методи подолання складності.
5. Види декомпозицій.
6. Проектування інформаційних систем.
РОЗДІЛ 2. Інформаційні системи та їх характеристики
Означення інформаційної системи
Види інформаційних систем
Поняття проектування
Методи проектування інформаційних систем
У розділі подано базові поняття проектування систем. Обґрунтовано необхідність декомпозиції задач. Описано основін типи інформаційних систем.
2.1. Базові означення
Введемо деякі означення.
Ресурс – джерело і передумова отримання необхідних матеріальних і духовних благ, які можна реалізувати існуючими технологіями і на основі соціально-економічних відношень. Ресурси підрозділяються на три основні групи:
матеріальні ресурси;
трудові ресурси, у тому числі інтелектуальні ресурси;
природні ресурси.
Інформаційний ресурс (ІР) – окремі документи і окремі масиви документів, документи і масиви документів в інформаційних системах: бібліотеках, архівах, фондах, банках даних, інших видах інформаційних систем, організовані для багаторазово використовувати та вирішення проблем користувача.
Структура даних ІР (СДІР) – загальна властивість інформаційного ресурсу, з яким взаємодіє та або інша програма. Ця загальна властивість характеризується:
множиною допустимих значень даної структури;
множиною допустимих операцій;
характером організованості.
Інформаційний продукт (ІП) - документований інформаційний ресурс, підготовлений відповідно до потреб користувачів і поданий у формі товару. Інформаційними продуктами є програмні продукти, текстові файли, веб-сторінки, електронні таблиці, xml-файли, бази даних, сховища даних. та інша інформація.
Система
— це
множина об’єктів разом з відношеннями
між об’єктами та між їхніми атрибутами
(властивостями) [5]. Історія визначень
такого типу зрозуміла і походить від
природничих наук, в яких дослідник йшов
шляхом від простого до складного —
поділяв систему на елементи, розглядав
властивості окремих частин і способи
їх взаємодії, отримуючи таким чином
уявлення про систему як про сукупність
взаємнопов’язаних елементів. У загальній
теорії систем система визначалася як
множина, на якій визначене задане
відношення з фіксованими властивостями
[5]. Месарович [6-7] визначає систему
як підмножину декартового добутку
, де
— повна сукупність виявів деякого
атрибуту системи, тобто
є повна сукупність виявів системи.
Елемент системи – частина системи, що має визначене функціональне призначення.
Структура системи – сукупність внутрішніх стійких зв'язків між елементами системи, що визначає її основні властивості.
Цілісність системи –не зведення властивостей системи до суми властивостей, що її формують, і одночасно залежність властивостей кожного елемента від його місця і функцій в усередині системи.
Проста система – система, що складається з обмеженої кількості елементів і не має розгалуженої структури (відсутні рівні ієрархії).
Складна система – система з розгалуженою структурою і значною кількістю взаємозалежних елементів, що у свою чергу, є простими системами.
Абстрактна система – продукт людського мислення: гіпотези, знання, теореми.
Матеріальна система – сукупність матеріальних об'єктів. Цю сукупність можна поділити на неорганічні (технічні, хімічні й ін.), органічні (біологічні) і змішані (у неї входять елементи як органічної, так і неорганічної природи).
Ерготехнічна система – система «людина-машина», підклас систем, що входить у множину змішаних систем, що складаються з людини-оператора (групи операторів) – ергодичний елемент – і машини (машин) – технічний елемент.
Соціально-економічні системи – підклас соціальних матеріальних систем, що зв'язаний із соціальними відносинами людей у процесі виробництва. У соціально-економічних системах здійснюється процес керування.
Процес керування – процес, у якому існує об'єкт керування, орган керування і виконавчий орган. Орган керування одержує інформацію про стан об'єкта керування, на підставі якої він подає керуючу інформацію. Керуюча інформація надходить на вхід виконавчого органа, що впливає на об'єкт керування.
Система керування – система, що формує об'єкт керування, орган керування, виконавчий орган і зв'язки між ними.
Організаційна система – система керування, у якій як керований об'єкт виступають люди, колективи людей, а керуючі впливи спрямовані на організацію поведінки колективів людей і мають інформаційний характер. Для цих систем цілком виправдане кібернетичне визначення керування: керування – процес цілеспрямованої переробки інформації.
ІТ-система (інформаційна) (IT system) – сукупність ресурсів інформаційних технологій, що надають сервіс (послуги) на одному чи більшій кількості інтерфейсів.
Уведемо ряд термінів, що стосуються роботи з інформаційною системою.
Під супроводом розуміється усунення помилок.
Еволюція – внесення змін у систему у відповідь на вимоги до неї.
Збереження – використання всіх можливих і неможливих способів для підтримки життєздатності системи.
Досвід показує, що істотний відсоток витрат на розробку програмних систем витрачається саме на збереження.
Зв’язок (потік) —обмін речовиною, енергією, інформацією між елементами та зовнішнім середовищем і елементами системи.
Функції системи реалізуються через потоки енергії, людей, матеріальні та інформаційні. Структуру можна розглядати також як множину обмежень на потоки в просторі та часі. Структура ініціює потоки, спрямовуючи їх вздовж певних шляхів (каналів), перетворює їх з певною затримкою в часі (час перетворення), в певних випадках припускає регулювання та обернений зв’язок. Структура може змінюватися в часі самостійно, а також під впливом потоків, впливає на потоки і є системою в межах системи. Потоки, які є необхідними для збереження первісної структури, називаються підтримуючими, а ті, що є результатами дії системи та її структури — потоками продукції [4].
Комунікаційний потік в ієрархічній системі може бути закріплений жорстко за певними “каналами”, межі яких не визначені в чітких фізичних термінах, однак вплив цих “каналів” може бути дуже реальним. Так, традиції орґанізації, норми поведінки та неписані правила утворюють такі “канали”, тобто орґанізаційна структура накладає обмеження на комунікаційні потоки та сприяє ефективній роботі системи. В кожній структурі існує певна ієрархія потоків (потоки між елементами, підсистемами, системою та зовнішнім середовищем).
Інформаційні потоки в складних штучних системах мають особливе значення:
по-перше, інформаційні потоки та інформаційні зв’язки в багатьох випадках є домінуючими, визначальними в системі;
по-друге, вони зазвичай супроводжують і інші — матеріальні, енерґетичні та людські — дії цих потоків.ю фіксуються у вигляді інформації.
Інформація в системі вивчається як з точки зору її отримання, зберігання, передачі, перетворення, фільтрації, так і з точки зору її вимірювання. Інформаційним потокам ставлять у відповідність певного виду структурні схеми (наприклад діаграми потоків даних та ін.), які мають певні спільні риси: вказані джерела та споживачі інформації, обсяг, форми представлення, напрямок передачі, місця і вид зберігання та ін. Ці структурні схеми (інформаційні моделі системи) використовуються для аналізу та мінімізації потоків даних та зменшення їх обсягу, виявлення як дублювання інформації, так і дублювання шляхів її передавання та ін. Поняття інформації має високий ступінь універсальності, і в загальному сенсі функціонування системи можна розглядати як перетворення вхідної інформації у вихідну шляхом прийняття певних рішень в системі.
Стан системи — це зафіксовані значення характеристик системи, важливі для цілей дослідження. Зміна довільної з числа цих характеристик означатиме перехід системи до іншого стану. Таким чином отримаємо набір станів, який ще не є процесом.
Процес — це набір станів системи, що відповідає впорядкованій неперервній або дискретній зміні деякого параметра, що визначає характеристики чи властивості системи. В більшості випадків таким параметром є час.
Процес зміни станів
системи в часі відображає динаміку
системи. Нехай
— стан системи
,
— множина припустимих значень станів,
— параметр процесу,
,
— множина припустимих значень параметра
процесу. Стани системи залежать від
значення параметра,
, тобто зафіксувавши початковий стан
процес
описується
як певне правило переходу від стану зі
значенням параметру
до стану зі значенням параметру
через всі його неперервні або дискретні
проміжні значення,
.
Процеси в системі мають різноманітне
значення. Так, процес проектування
інформаційної системи як рух від
системного аналізу через ряд проміжних
етапів (технічне завдання, технічне та
робоче проектування, впровадження,
супровід) є основною функцією системи
— розробницької фірми. В цьому випадку
необхідно враховувати також цілий ряд
внутрішніх процесів. Таким чином процеси
описуються як залежності виходів від
входів в модулях різного ступеня
узагальнення або різного рівня ієрархії.
При цьому принципово не важливо, чи
сприяє, а чи перешкоджає загалом той чи
інший процес реалізації системою своїх
функцій.