- •2 Аналіз вимог до програмного забезпечення створення засобів опису програми для побудови її автоматної моделі
- •2.1 Виділення первинних вимог
- •2.2 Виділення детальних вимогчерез uml-діаграми
- •2.2.1 Діаграма прецедентів
- •2.2.2 Діаграми діяльності
- •2.2.4 Діаграма станів
- •3.1.1 Об’єктно орієнтована парадигма
- •2.4 Висновки
- •3 Проектування програмного забезпечення створення засобів опису програми для побудови її автоматної моделі
- •3.1 Архітектурне проектування
- •3.1.1 Структурна ієрархія системи
- •3.1.2Структурна схема системи
- •3.2 Детальне проектування
- •3.2.1 Діаграма класів
- •3.3.2 Діаграма послідовності
- •3.3 Висновки
- •4 Конструювання та тестування програмного забезпечення
- •4.1 Розробка інтерфейсу користувача
- •4.2 Кодування системи
- •4.2.1 Вибір мови програмування
- •4.2.2Опис розробки програмних компонентів
- •4.2.2.1 Модуль ядра
- •4.2.2.2 Модуль віджетів
- •4.2.2.3 Модуль алгоритмів заміщення
- •4.2.2.4 Модуль графічного інтерфейсу
- •4.3. Детальне тестування програмного засобу
- •4.4. Висновки
3.1.1 Структурна ієрархія системи
Розроблювана система згідно її опису виконує наступні функції:
підтримка сучасних версій операційних систем сімейства Windows;
установка значення розміру фізичної пам’яті при старті системи;
визначення розміру сторінки пам’яті при запуску системи;
можливість додавання сегментів пам’яті із довільним розміром (в тому числі розміром, що перевищує розмір фізичної пам’яті);
вибір кольору сегменту для наочного представлення сегменту у віртуальній пам’яті;
введення імені сегменту;
візуальне представлення моделі віртуальної пам’яті;
візуалізація завантаження сегменту у фізичну пам’ять;
інтерактивна демонстрація емуляції звертання до сторінок у віртуальній пам’яті;
реалізація як вибіркових звертань до сторінки сегменту із типом читання та запису, так і реалізація випадкових звертань;
реалізація алгоритмів заміщення, додавання, витіснення.
Структурна ієрархія системи представлена на рис 3.1.
Рис. 3.1. Структурна ієрархія системи
3.1.2Структурна схема системи
У процесі проектування відбулася декомпозиція системи на базові компоненти. Кожен з них містить в собі певний набір функцій і пов’язаний з іншими (рис. 3.2).
Рис. 3.2. Структурна схема системи
Центральним елементом системи є модуль ядра. Він є зв’язовуючою ланкою між іншими модулями системи. В ньому інкапсульована вся логіка системи. Також в даному модулі реалізований механізм подій, що дозволяє модулю графічного інтерфейсу підписуватись на них і таким чином адекватно реагувати на поведінку системи. Модуль ядра отримує на вході розмір фізичної пам´яті та сторінки пам´яті, після чого ініціює початкову ініціалізацію системи. В ньому реалізовані інтерфейсні методи для звертання із модулю графічного інтерфейсу. Також, в ньому знаходяться менеджер віртуальної пам’яті, абстракція фізичної та зовнішньої пам´яті, сторінки, сегменту. Також в модулі реалізовані базові класи для роботи з віртуальною пам´яттю, виконання запитів, виділення окремих потоків і асинхронна обробка відповідей після виконання запитів, оповіщення системи через механізм подій, бінарна сериалізація і десериалізація налаштувань програми. Ряд об’єктів в даному модулі є синглтон-об’єктами, тобто такими, що створюються в єдиному екземплярі.
Модуль графічного інтерфейсу є кінцевим модулем, що використовує модуль ядра, візуалізує його роботу, отримує команди а також виводить інформацію. Він реалізований у вигляді набору форм Windows, що містять логіку посилання повідомлень та обробку користувацьких подій, що визначені в модулі ядра. Кожна з форм містить набір візуальних та невізуальних компонент, таких як кнопки, поля вводу, таблиці, діаграми, тощо.
Модуль віджетів служить для візуалізації роботи віртуальної пам´яті. Він містить функціонал динамічного створення та знищення компонент, геометричні розрахунки для анімації, методи для анімування сторінок пам´яті та ряд інших важливих методів. Також модуль віджетів взаємодіє з такими механізмами операційної системи, як рендер, буферизація, маніпуляції з пам´яттю. Реалізований вигляді набору статичних класів.
Модуль алгоритмів заміщення призначений для підтримки таких алгоритмів у менеджері віртуальної пам´яті. Він включає базовий абстрактний клас, що містить загальний інтерфейс алгоритмів заміщення, а також конкретні реалізації таких алгоримтів. При ініціалізації менеджера віртуальної пам´яті, створюються екземпляри всіх алгоритмів, а користувач при роботі програми обирає необхідний, для візуалізацїї його роботи у віртуальній пам´яті.
