Курс: “Об’єктно-орієнтоване програмування”
Лабораторна робота № 2
Назва роботи: Розробка структури та реалізація базових класів для моделювання цифрових пристроїв.
Мета роботи: Закріпити теоретичні знання та оволодіти практичними навиками об’єкно-орієнтованого аналізу та створення базових абстракцій для моделювання предметної області.
Загальні відомості
Предметною областю для якої створюється об’єктно-орієнтована модель є цифрові пристрої обробки сигналів. Оскільки базовим напрямком підготовки спеціалістів у галузі обчислювальних машин, систем та мереж є створення високопродуктивних апаратних засобів обробки даних, то доцільно відпрацювати основи моделювання цих пристроїв на основі об’єктно-орієнтованого підходу.
Метою даної роботи є виявлення класів та об’єктів для моделювання цифрових пристроїв та вияснення їх семантики. На нижньому рівні абстракції необхідно виявити базові класи та об’єкти, що повинні лягти в основу об’єктно-орієнтованої декомпозиції цифрових пристроїв. Виявлені абстракції повинні забезпечити побудову як елементарних пристроїв таких як суматори, перемножувачі, компаратори, регістри та інше, так і на їх основі, складніших пристроїв для цифрової обробки сигналі (фільтрації, кореляції), обробки даних підвищеної точності, процесорів та інше.
Як базові абстракції в даному можна обрати модель абстрактного пристрою з елементарними функціями, що притаманні довільному цифровому пристрою, такими як введення та виведення даних, утримування даних та виконання функціональної операції. Ще однією базовою абстракцією може бути сигнал з такими характеристиками як кількість та розрядність відліків. Сигнал може володіти методами для його створення, ініціалізації і переміщення, а також доступу до окремих його відліків та інше.
Базові та похідні класи повинні утворювати ієрархічну структуру з використанням наслідування та агрегації. При створені класів необхідно передбачити поведінку об’єктів на кожному рівні абстракції, їх відповідальність один перед іншим. Виявити взаємодію класів між собою, та як ця взаємодія класів відобразиться у взаємодію, як окремих об’єктів, так і сукупності об’єктів.
При виявлення класів та об’єктів, окрім словесного описання, доцільно користуватися графічними засобами відображення структури проекту, такими як діаграми класів та об’єктів, діаграми модулів.
Після виявлення класів та об’єктів, необхідно реалізувати виявлені на кожному з рівнів абстракції класи, перевірити їх працездатність та придатність до використання у створенні моделей цифрових пристроїв. Дослідити повноту та не суперечливість розроблених класів.
Для тестування отриманих класів та об’єктів доцільно використати консольний проект, заготовка якого пропонується середовищем Visual C++.
Варіанти завдання на лабораторну роботу
Розробити об’єктно-орієнтовану модель цифрового пристрою:
Варіант 1. Суматора „довгих чисел”. Під „довгим числом” слід розуміти ціле число, що містить не менше ніж 1024 біти.
Варіант 2. Перемножувача „довгих чисел”. Під „довгим числом” слід розуміти ціле число, що містить не менше ніж 1024 біти.
Варіант 3. Пристрою „згортання” сигналів. „Згортка” двох дискретних сигналів x1(n), n = 0, 1, …, N - 1 та x2(m), m = 0, 1, …, M - 1 задається виразом
, k = 0, 1, …, N + M – 1.
Варіант 4. Лінійного фільтру зі скінченою імпульсною характеристикою (СІХ) 3-го порядку. Лінійний не рекурсивний фільтр 3-го порядку для дискретного сигналу x(n), n = 0, 1, …, N - 1 задається різницевим рівнянням
, k = 0, 1, …, N + 3 – 1,
де bn – коефіцієнти фільтру.
Варіант 5. Фільтру з нескінченою імпульсною характеристикою (НІХ) 3-го порядку. Рекурсивний фільтр 3-го порядку для дискретного сигналу x(n), n = 0, 1, …, N - 1 задається різницевим рівнянням
, k = 0, 1, …, N + 3 – 1,
де bn та an – коефіцієнти фільтру.
Варіант 6. Компаратора „довгих чисел”. Під „довгим числом” слід розуміти ціле число, що містить не менше ніж 1024 біти.
Варіант 7. Пристрою обчислення кореляційної функції сигналів. Кореляційна функція двох дискретних сигналів x1(n), n = 0, 1, …, N - 1 та x2(m), m = 0, 1, …, M - 1 обчислюється за виразом
, k = 0, 1, …, N + M – 1.
Варіант 8. Пристрою сортування „довгих чисел”. Під „довгим числом” слід розуміти ціле число, що містить не менше ніж 1024 біти. Усі „довгі числа”, що сортуються пристроєм, однакової довжини.
Варіант 9. Пристрою пошуку максимуму сигналу. Пристрій повинен видати значення максимуму та відлік у якому він досягається.
Варіант 10. Пристрою пошуку мінімуму сигналу. Пристрій повинен видати значення мінімуму та відлік у якому він досягається.
Варіант 11. Пристрою обчислення об’єднання множин. Множини представляються за допомогою булеану. Тестування провести на множинах з натуральних чисел з кількістю елементів не менше 1024.
Варіант 12. Пристрою обчислення перетину множин. Множини представляються за допомогою булеану. Тестування провести на множинах з натуральних чисел з кількістю елементів не менше 1024.
Варіант 13. Пристрою обчислення симетричної різниці множин. Множини представляються за допомогою булеану. Тестування провести на множинах з натуральних чисел з кількістю елементів не менше 1024.
Варіант 14. Пристрою обчислення доповнення множини. Множини представляються за допомогою булеану. Тестування провести на множинах з натуральних чисел з кількістю елементів не менше 1024.
Зміст звіту
Титульна сторінка.
Мета роботи.
Завдання (індивідуальне) на лабораторну роботу.
Результати виявлення класів та об’єктів у предметній області (словесне описання, діаграми класів та об’єктів).
Текст програм, що реалізують класи (в електронному вигляді).
Описання результатів тестування.
Висновки.
Література
Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. Второе издание. М.: «Издательство Бином», 1999.
Страуструп Б. Язык программирования С++. Третье издание. - М.: «Издательство Бином», 1999.