Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

PrIS

.pdf
Скачиваний:
45
Добавлен:
07.12.2018
Размер:
7.24 Mб
Скачать

41

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

Як ми вже сказали вище, щоб зрозуміти у всіх тонкощах поведінку складної системи, доводиться використовувати не одну модель. Наприклад, проектуючи комп'ютер на одній платі, інженер-електрик повинен розглядати систему як на рівні окремих елементів схеми (мікросхеми), так і на рівні схеми. Схема допомагає інженерові розібратися у спільній поведінці мікросхем. Схема є планом фізичної реалізації системи мікросхем, в якому враховані розмір плати, споживана потужність і типи наявних інтеґральних мікросхем. Із цього погляду інженер може незалежно оцінювати такі параметри системи, як температурний розподіл і технологічність виготовлення. Проектувальник плати може також розглядати динамічні і статичні особливості системи. Аналогічно, інженер-електронник використовує діаграми, що ілюструють статичні зв'язки між різними мікросхемами, і тимчасові діаграми, що відображають поведінку елементів у часі. Потім інженер може застосувати осцилограф або цифровий аналізатор для перевірки правильності статичної і динамічної моделей.

Елементи програмного проектування. Не існує універсального методу, "срібної кулі", який би провів інженера-програміста дорогою від вимог до складної програмної системи аж до їх виконання. Проектування складної програмної системи зовсім не зводиться до сліпого дотримання деякому набору рецептів. Швидше це поступовий та ітеративний процес. Використання методології проектування вносить до процесу розроблення певну організованість. Інженери-програмісти розробили десятки різних методів, які ми можемо класифікувати за трьома категоріями. Не зважаючи на відмінності, ці методи мають щось загальне. Їх, зокрема, об'єднує таке:

умовні позначення – мова для опису кожної моделі;

процес – правила проектування моделі;

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

Хороший метод проектування базується на міцній теоретичній основі і при цьому дає програмістові певну міру свободи самовираження.

Об'єктно-орієнтовані моделі. Чи існує найкращий метод проектування? На це запитання немає однозначної відповіді. За суттю справи це завуальоване попереднє запитання: "Чи існує кращий спосіб декомпозиції складної системи?" Якщо й існує, то наразі він нікому не відомий. Про це можна запитати так: "Яким найкращим способом

42

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

Об'єктно-орієнтований аналіз і проектування (ООАП) – це метод, що логічно приводить нас до об'єктно-орієнтованої декомпозиції. Застосовуючи ООП, ми створюємо гнучкі програми, написані економними засобами. При розумному розділенні простору станів ми добиваємося більшої впевненості у правильності нашої програми. Як результат, ми зменшуємо ризик під час розроблення складних програмних систем.

Оскільки побудова моделей вкрай важлива під час проектування ІС, ООП пропонує багатий вибір моделей, які зображені на рис. 1.7.

Рис. 1.7. Об'єктно-орієнтовані моделі.

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

У цьому розділі ми подали арґументи на користь вживання ООАП для подолання складності, пов'язаної з розробленням ІС. Крім того, ми визначили ряд фундаментальних переваг, що досягаються при застосуванні такого підходу. Перш ніж ми подамо систему позначень і процес проектування, ми повинні вивчити принципи, на яких цей процес базується: абстрагування, інкапсуляція, модульність, ієрархія, типізація, паралелізм і стійкість.

43

Висновки

1.Програмам властива складність, яка часто перевершує можливості людського розуму.

2.Завдання розробників ІС – створити у користувача системи ілюзію простоти.

3.Існує дві методології проектування ІС – структурна і об’єктноорієнтована.

4.Складні структури часто набувають форми ієрархій: класів і об'єктів.

5.Складні системи зазвичай створюються на основі стійких проміжних форм.

6.Пізнавальні здібності людини обмежені; ми можемо розсунути їх рамки, використовуючи декомпозицію, виділення абстракцій і створення ієрархій.

7.Складні системи можна досліджувати, концентруючи основну увагу або на об'єктах, або на процесах; є вагомі підстави використовувати об'єктно-орієнтовану декомпозицію, в якій світ розглядається як впорядкована сукупність об'єктів, які в процесі взаємодії один з одним визначають поведінку системи.

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

Контрольні запитання

1.Причини складності систем.

2.Ознаки складності системи.

3.Організована та неорганізована складність.

4.Методи подолання складності.

5.Види декомпозицій.

6.Проектування інформаційних систем.

44

РОЗДІЛ 2. Інформаційні системи та їх характеристики

Означення інформаційної системи

Види інформаційних систем

Поняття проектування

Методи проектування інформаційних систем

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

2.1. Базові означення

Введемо деякі означення.

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

матеріальні ресурси;

трудові ресурси, у тому числі інтелектуальні ресурси;

природні ресурси.

Інформаційний ресурс (ІР) – окремі документи й окремі масиви документів в інформаційних системах: бібліотеках, архівах, фондах,

45

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

Структура даних ІР (СДІР) – загальна властивість інформаційного ресурсу, з яким взаємодіє та або інша програма. Ця загальна властивість характеризується:

множиною допустимих значень певної структури;

множиною допустимих операцій;

характером організованості.

Інформаційний продукт (ІП) – документований інформаційний ресурс, підготовлений відповідно до потреб користувачів і поданий у формі товару. Інформаційними продуктами є програмні продукти,текстові файли, веб-сторінки, електронні таблиці, xml-файли, бази даних, сховища даних та інша інформація.

Система — це множина об’єктів разом з відношеннями між об’єктами та між їхніми атрибутами (властивостями) [5]. Історія визначень такого типу зрозуміла і походить від природничих наук, в яких дослідник йшов шляхом від простого до складного — поділяв систему на елементи, розглядав властивості окремих частин і способи їх взаємодії, отримуючи таким чином уявлення про систему як про сукупність взаємнопов’язаних елементів. У загальній теорії систем остання визначалася як множина, на якій визначене задане відношення з фіксованими властивостями [5]. Месарович [6-7] визначає систему S як

підмножину декартового добутку S X1 X2 ... Xn , де

X j (j 1,n) — повна сукупність виявів деякого атрибуту системи, тобто S є повною сукупністю виявів системи.

Елемент системи – частина системи, що має визначене функціональне призначення.

Структура системи – сукупність внутрішніх стійких зв'язків між елементами системи, що визначає її основні властивості.

Цілісність системи –це зведення властивостей системи до суми властивостей, що її формують, і одночасно залежність властивостей кожного елемента від його місця і функцій усередині системи.

Проста система – система, що складається з обмеженої кількості елементів і не має розгалуженої структури (відсутні рівні ієрархії).

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

Абстрактна система – продукт людського мислення: гіпотези, знання, теореми.

46

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

Ерготехнічна система – система «людина-машина», підклас систем, що входить у множину змішаних систем, що складаються з людини-оператора (групи операторів) – ергодичний елемент – і машини (машин) – технічний елемент.

Соціально-економічні системи – підклас соціальних матеріальних систем, що зв'язаний із соціальними відносинами людей у процесі виробництва. У соціально-економічних системах здійснюється процес керування.

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

Система керування – система, що формує об'єкт керування, орган керування, виконавчий орган і зв'язки між ними.

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

ІТ-система (інформаційна) (IT system) – сукупність ресурсів інформаційних технологій, що надають сервіс (послуги) на одному чи більшій кількості інтерфейсів.

Уведемо ряд термінів, що стосуються роботи з інформаційною системою.

Під супроводом розуміється усунення помилок.

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

для підтримки життєздатності системи.

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

Зв’язок (потік) — обмін речовиною, енергією, інформацією між елементами та зовнішнім середовищем і елементами системи.

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

47

певною затримкою у часі (час перетворення), у певних випадках припускає регулювання та обернений зв’язок. Структура може змінюватися у часі самостійно, а також під впливом потоків, впливає на потоки і є системою в межах системи. Потоки, які необхідні для збереження первісної структури, називаються підтримувальниими, а ті, що є результатами дії системи та її структури — потоками продукції [4].

Комунікаційний потік в ієрархічній системі може бути закріплений жорстко за певними “каналами”, межі яких не визначені у чітких фізичних термінах, однак вплив цих “каналів” може бути дуже реальним. Так, традиції орґанізації, норми поведінки та неписані правила утворюють такі “канали”, тобто орґанізаційна структура накладає обмеження на комунікаційні потоки і сприяє ефективній роботі системи. У кожній структурі існує певна ієрархія потоків (потоки між елементами, підсистемами, системою та зовнішнім середовищем).

Інформаційні потоки у складних штучних системах мають особливе значення:

по-перше, інформаційні потоки та інформаційні зв’язки в багатьох випадках є переважальними, визначальними в системі;

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

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

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

Процес — це набір станів системи, що відповідає впорядкованій неперервній або дискретній зміні деякого параметра, що визначає характеристики чи властивості системи. У більшості випадків таким параметром є час.

48

Процес зміни станів системи у часі відображає динаміку системи. Нехай y — стан системи y Y , Y — множина припустимих значень станів, t — параметр процесу, t T , T — множина припустимих значень параметра процесу. Стани системи залежать від значення параметра, F :T Y Y , тобто зафіксувавши початковий стан y0 y t0 процес St0 t описується як певне правило переходу від стану

зі значенням параметру

t0 до стану зі значенням параметру t через всі

його

неперервні

або

дискретні

проміжні

значення,

St0 t

y t0 y(t), y Y,t T .

Процеси в

системі мають

різноманітне

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

2.2. Методи проектування інформаційних систем

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

Методи з'явилися як відповідь на зрослу складність програмних систем. На початку комп'ютерної ери дуже важко було написати велику програму, тому що можливості комп'ютерів були обмежені. Обмеження виникали через об'єм оперативної пам'яті, швидкість зчитування інформації з вторинних носіїв (магнітні стрічки) і швидкодії процесорів, тактовий цикл яких дорівнював сотням мікросекунд. У 60-70-ті роки XX ст. ефективність вживання комп'ютерів різко зросла, ціни на них почали знижуватися, а можливості ЕОМ збільшилися. Тому стало вигідно та й необхідно створювати все більше прикладних програм підвищеної складності. Як основні інструменти створення програмних продуктів

49

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

У 60-70-ті роки минулого століття розроблено багато методів, що допомагають впоратися зі зрослою складністю програм. Найбільшого поширення набуло структурне проектування за методом зверху вниз. Метод був безпосередньо заснований на топології традиційних мов високого рівня типу FORTRAN або COBOL. У цих мовах основною базовою одиницею є підпрограма, і програма загалом набуває форми дерева, в якому одні підпрограми у процесі роботи викликають інші підпрограми. Структурне проектування використовує саме такий підхід: алгоритмічна декомпозиція застосовується для розбиття великої задачі на дрібніші.

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

Методи проектування систем можна розділити на три основні групи:

метод структурного проектування зверху вниз;

метод потоків даних;

об’єктно-орієнтоване проектування.

Приклади структурного проектування наведені в роботах Йордана і Костянтина, Майерса і Пейдж-Джонса. Основи його викладені в роботах Вірта, Даля, Дейкстри і Хоара; цікавий варіант структурного підходу можна знайти в роботі Мілса, Лингера і Хевнера. У кожному з цих підходів присутня алгоритмічна декомпозиція. Зазначимо, що більшість наявних програм написана, очевидно, відповідно до одного з цих методів. Проте структурний підхід не дозволяє виділити абстракції і забезпечити обмеження доступу до даних; він також не надає достатніх засобів для організації паралелізму. Структурний метод не може забезпечити створення гранично складних систем, і він, як правило, неефективний в об'єктних і об’єктно-орієнтованих мовах програмування.

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

50

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

Об’єктно-орієнтоване проектування (object-oriented design, OOD) – це підхід, основи якого викладені в цій книзі. В основі OOD лежить уявлення про те, що програмну систему необхідно проектувати як сукупність об'єктів, які взаємодіють один з одним розглядаючи кожен об'єкт як екземпляр визначеного класу, причому класи утворять ієрархію. Об’єктно-орієнтований підхід відбиває топологію новітніх мов високого рівня, таких як Smalltalk, Object Pascal, C++, CLOS і Ada.

Результатом застосування методів проектування є модель. Модель – це форма абстракції, яка застосовується для

відображення уявлення людини про навколишній світ та його закономірності.

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

Метод інформаційного моделювання полягає у створенні і використанні інформаційних моделей.

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

Рис. 2.1. Об'єктно-орієнтована декомпозиція.

Наведене поняття формальної інформаційної моделі предметної області (ПО) є змістовним. Із математичного погляду Mod (ПО) - це трійка множин:

ModL (ПрО) =<МL,VL,RL >,

де ML – множина всіх описаних у формалізмі L інформаційних об'єктів ПО;