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

125 Кібербезпека / Магістр (вступні питання)

.pdf
Скачиваний:
107
Добавлен:
23.10.2019
Размер:
3.84 Mб
Скачать

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

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

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

Проблеми при виконанні запиту розподілу:

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

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

79. Абстрактний тип даних. Приклади та способи використання

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

незалежних від конкретної реалізації типу, для оперування його значеннями. Конкретні реалізації АТД називаються структурами даних.

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

Різниця між абстрактними типами даних і структурами даних, які реалізують абстрактні типи,

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

Абстрактні типи даних дозволяють досягти модульностi програмних продуктів і мати кілька альтернативних взаємозамінних реалізацій окремого модуля.

Наприклад, цілі числа — це абстрактний тип даних, який визначається як значення …, −2, −1, 0, 1, 2, … , і поводиться відповідно до звичної математики (з увагою про цілочисельне ділення), за допомогою операцій додавання, віднімання, множення і ділення, а також операції більше ніж,

менше ніж і т. д. незалежно від того, як цілі числа представлені за допомогою комп'ютера. Очевидно,

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

АТД складається не тільки з операцій, але і значень початкових даних і обмежень на операції. «Інтерфейс», як правило, стосується лише операцій, і, можливо, деяких з обмежень на операції, зокрема попередні умови і постумови, але не інші обмеження, такі як відносини між операціями.

Наприклад, абстрактний стек, який має LIFO структуру, може бути визначений за допомогою трьох операцій: PUSH, котра вставляє елемент даних в стек; POP, яка видаляє елемент даних з нього; і

PEEK або TOP, яка отримує доступ до елементу даних в вершині стека без видалення. Абстрактна черга, яка має FIFO структуру, також буде мати три операції: ENQUEUE, яка вставляє елемент даних в чергу; DEQUEUE, яка видаляє перший елемент даних з нього; і FRONT, що отримує доступ і служить першим елементом даних в черзі. Там не було б ніякої можливості диференціювати ці два типи даних, якщо математичне обмеження не вводиться, тоді це для стека вказує, що кожна POP завжди повертає найостанніший втиснутий елемент, який ще не вискочив. При аналізі ефективності алгоритмів, які використовують стеки, можна також вказати, що всі операції не приймають той же самий час, незалежно від того, скільки елементів даних були витіснені в стек, і що стек використовує постійну кількість схов для кожного елемента.

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

незалежних від конкретної реалізації типу, для оперування його значеннями. Конкретні реалізації АТД називаються структурами даних.

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

Приклади Наприклад, цілі числа — це абстрактний тип даних, який визначається як значення …, −2, −1,

0, 1, 2, … , і поводиться відповідно до звичної математики (з увагою про цілочисельне ділення), за допомогою операцій додавання, віднімання, множення і ділення, а також операції більше ніж,

менше ніж і т. д. незалежно від того, як цілі числа представлені за допомогою комп'ютера.

АТД складається не тільки з операцій, але і значень початкових даних і обмежень на операції. «Інтерфейс», як правило, стосується лише операцій, і, можливо, деяких з обмежень на операції, зокрема попередні умови і постумови, але не інші обмеження, такі як відносини між операціями.

МАТЕМАТИЧНІ ОСНОВИ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ

80. Класифікація інформаційних систем та технологій

Інформаційна систéма (англ. Information system) — сукупність організаційних і технічних засобів для збереження та обробки інформації з метою забезпечення інформаційних потреб користувачів.

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

1.За рівнем або сферою діяльності — державні, територіальні (регіональні), галузеві,

об’єднань, підприємств або установ, технологічних процесів.

2.За рівнем автоматизації процесів управління — інформаційно-пошукові,

інформаційно-довідкові, інформаційно-керівні, системи підтримки прийняття рішень, інтелектуальні

АС.

3.За ступенем централізації обробки інформації — централізовані АС, децентралізовані АС, інформаційні системи колективного використання.

4.За ступенем інтеграції функцій — багаторівневі АС з інтеграцією за рівнями управління

(підприємство — об’єднання, об’єднання — галузь і т. ін.), багаторівневі АС з інтеграцією за рівнями

планування і т. ін.

5.Інформаційні системи передбачають використання інформа­ційних технологій.

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

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

управлінських системах з використанням обраного комплексу технічних засобів.

Вінформаційній технології можна виділити дві частини:

здатність генерувати за запитом інформаційний продукт;

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

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

засоби збору і реєстрації інформації (персональні комп'ютери, сканери, автоматичні

датчики);

засоби передавання інформації (локальні, регіональні та глоба­льні обчислювальні мережі, інтранет);

засоби зберігання даних (сервери баз даних, файлові сервери, локальні комп'ютери,

магнітні диски, оптичні (лазерні) диски, цифрові відеодиски);

засоби обробки даних (мікрокомп'ютери, міні-комп'ютери, ве­ликі комп'ютери);

засоби виведення інформації (відеомонітори, принтери, графо­побудовники).

81. Основні положення сучасних методологій проектування

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

Методології, технології і інструментальні засоби проектування (CASE -

засобів) складають основу проекту будь-кому ІС. Методологія реалізується через конкретні технології і підтримувальні їх стандарти, методики і інструментальні засоби, які забезпечують виконання процесів ЖЦ.

Технологія проектування визначається як сукупність трьох складових :

-покрокової процедури, що визначає послідовність технологічних операцій проектування;

-критеріїв і правил, використовуваних для оцінки результатів виконання

технологічних операцій;

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

проектованої системи.

Технологічні інструкції, що становлять основний зміст технології, повинні складатися з опису послідовності технологічних операцій, умов, залежно від

яких виконується та або інша операція, і описів самих операцій.

Технологія проектування, розробки і супроводу ІС повинна задовольняти

наступним

 

загальним

 

вимогам:

-

технологія

повинна

підтримувати

повний

ЖЦ

ПЗ;

- технологія повинна забезпечувати гарантоване досягнення цілей розробки ІС

із заданою якістю і у встановлений час;

- технологія повинна забезпечувати можливість виконання великих проектів у вигляді підсистем (тобто можливість декомпозиції проекту на складові частини,

що розробляються групами виконавців обмеженої чисельності з подальшою

інтеграцією складових частин).

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

може виникнути в силу наявності загальних даних і функцій;

- технологія повинна забезпечувати можливість ведення робіт ПЗ проектуванню окремих підсистем невеликими групами.

Це обумовлено принципами керованості колективу і підвищення

продуктивності за рахунок мінімізації числа зовнішніх зв'язків;

- технологія повинна забезпечувати мінімальний час отримання працездатною ІС.

Йдеться не про терміни готовності усій ІС, а про терміни реалізації окремих підсистем. Реалізація ІС в цілому в короткі терміни може зажадати залучення

великого числа розробників, при цьому ефект може виявитися

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

- технологія повинна передбачати можливість управління конфігурацією

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

- технологія повинна забезпечувати незалежність виконуваних проектних рішень від засобів реалізації ІС (систем управління базами цих (СКБД),

операційних систем, мов і систем програмування);

- технологія має бути підтримана комплексом погоджених CASE - засобів,

процесів, що забезпечують автоматизацію, виконуються на всіх стадіях ЖЦ.

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

 

До

таких

стандартів

відносяться

наступні:

-

 

 

 

стандарт

 

 

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

-

стандарт

 

оформлення

 

проектної

документації;

-

стандарт

 

призначеного

для

користувача

інтерфейсу.

Стандарт проектування повинен встановлювати:

 

 

- набір необхідних моделей (діаграм) на кожній стадії проектування і

міра

 

 

 

їх

 

 

деталізації;

- правила фіксації проектних рішень на діаграмах, у тому числі: правила іменування об'єктів (включаючи угоди ПЗ термінології), набір атрибутів для

усіх об'єктів і правила їх заповнення на кожній стадії, правила

оформлення діаграм, включаючи вимоги до форми і розмірів об'єктів, тощо;

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

проекту, тощо;

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

несуперечність, тощо.

Стандарт оформлення проектної документації повинен встановлювати:

-комплектність, склад і структуру документації на кожній стадії проектування;

-вимоги до її оформлення (включаючи вимоги до змісту розділів, підрозділів,

пунктів, таблиць і так далі),

 

 

 

 

 

- правила підготовки, розгляду, узгодження і затвердження документації

з

вказівкою

граничних

термінів

для

кожної

стадії;

- вимоги до налаштування видавничої системи, що використовується як

вбудований

засіб

 

підготовки

 

документації;

- вимоги до налаштування CASE - засобів для забезпечення підготовки

документації

відповідно

до

встановлених

вимог.

Стандарт

інтерфейсу

користувача

повинен

встановлювати:

- правила оформлення екранів (шрифти і колірна палітра), склад і розташування

вікон

і

елементів

 

управління;

-

правила

використання

клавіатури

і

миші;

-

правила

оформлення

текстів

 

допомоги;

-

перелік

стандартних

 

повідомлень;

-

правила

обробки

реакції

 

користувача.

Слідує, відмітити, що методологія RAD, як і будь-яка інша, не може

претендувати на універсальність, вона хороша в першу чергу для відносно

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

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

адаптуються

до

програмно-технічних

платформ,

СКБД,

засобів

телекомунікації,

 

організаційно-економічних

особливостей

об'єктів

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

швидкість розробки.

Методологія RAD непридатна для побудови складних розрахункових програм,

операційних систем або програм управління космічними кораблями, тобто програм, що вимагають написання великого об'єму (сотні тисяч рядків)

унікального коду. Не підходять для розробки за методологією RAD

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

що перші декілька версій напевно не буде повністю працездатні, що в даному

випадку виключається.

Оцінка розміру застосувань проводиться на основі так званих функціональних елементів (екрани, повідомлення, звіти, файли і тому подібне) Подібна метрика

не залежить

від мови програмування, на якому ведеться

розробка.

Основні

принципи

методології

RAD

:

-

розробка

застосувань

 

ітераціями;

-

необов'язковість повного завершення робіт на кожному з етапів життєвого

циклу;

-

обов'язкове залучення користувачів до процесу розробки ІС;

-необхідне застосування CASE - засобів, що забезпечують цілісність проекту;

-застосування засобів управління конфігурацією, змін, що полегшують

внесення,

в

проект

і

супровід

готової

системи;

-

необхідне

 

використання

генераторів

коду;

- використання прототипування, що дозволяє повніше з'ясувати і задовольнити

потреби

кінцевого

користувача;

-

тестування

і розвиток проекту, здійснювані одночасно з

розробкою;

-

ведення розробки нечисленною добре керованою командою професіоналів;

82. Поняття моделювання, місце моделювання в наукових

дослідженнях

"Моделювання" - дослідження фізичних процесів на моделях. У

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

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

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

розмірності фізичних величин". При цьому вводили ряд видів

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

матрицями лінійного перетворення). У подальшому були введені

терміни фізичного(узагальнюючого механічне, теплове і т.п. види подібності) і

його

різновидів

- кінематичного і динамічного;

хімічного,

фізико-

хімічного та математичного подоби.

 

 

 

Моделювання як метод наукового пізнання.

 

 

 

Моделювання у

наукових дослідженнях стало

застосовуватися ще в

глибоку давнину і поступово захоплювало все нові області наукових знань:

технічне конструювання, будівництво і архітектуру, астрономію, фізику, хімію,

біологію і, нарешті, суспільні науки. Великих успіхів і визнання практично у всіх галузях сучасної науки приніс методу моделювання ХХ ст. Проте методологія моделювання довгий час розвивалася незалежно окремими науками. Була відсутня єдина система понять, єдина термінологія. Лише поступово стала усвідомлюватись роль моделювання як універсального методу наукового пізнання.

Термін "модель" широко використовується в різних сферах людської діяльності і має безліч значеннєвих значень. Розглянемо лише такі "моделі", які є інструментами отримання знань.

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

обов'язково включає й побудова абстракцій, і умовиводи за аналогією, і

конструювання наукових гіпотез.

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

аналогій, гіпотез, інших категорій і методів пізнання.

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

Процес моделювання включає три елементи:

1)суб'єкт (дослідник),

2)об'єкт дослідження,

3)модель, опосредствующее відносини пізнає суб'єкта і пізнаваного

об'єкта.

Нехай є або необхідно створити певний об'єкт А. Ми конструюємо

(матеріально чи подумки) або знаходимо в реальному світі інший об'єкт В -

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

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

що для одного об'єкта може бути побудовано декілька "спеціалізованих"