Міністерство освіти і науки України
Національний університет „Львівська політехніка”
Кафедра електронних
обчислювальних машин
Звіт
про виконання лабораторної роботи № 2
з курсу „ Об'єктно-орієнтоване програмування ”
Тема:
Розробка структури та реалізація базових класів для моделювання цифрових пристроїв.
Виконав:
студент групи КІ-3
Львів – 2004
Мета роботи: Закріпити теоретичні знання та оволодіти практичними навиками об’єкно-орієнтованого аналізу та створення базових абстракцій для моделювання предметної області.
Загальні відомості
Предметною областю для якої створюється об’єктно-орієнтована модель є цифрові пристрої обробки сигналів. Оскільки базовим напрямком підготовки спеціалістів у галузі обчислювальних машин, систем та мереж є створення високопродуктивних апаратних засобів обробки даних, то доцільно відпрацювати основи моделювання цих пристроїв на основі об’єктно-орієнтованого підходу.
Метою даної роботи є виявлення класів та об’єктів для моделювання цифрових пристроїв та вияснення їх семантики. На нижньому рівні абстракції необхідно виявити базові класи та об’єкти, що повинні лягти в основу об’єктно-орієнтованої декомпозиції цифрових пристроїв. Виявлені абстракції повинні забезпечити побудову як елементарних пристроїв таких як суматори, перемножувачі, компаратори, регістри та інше, так і на їх основі, складніших пристроїв для цифрової обробки сигналі (фільтрації, кореляції), обробки даних підвищеної точності, процесорів та інше.
Як базові абстракції в даному можна обрати модель абстрактного пристрою з елементарними функціями, що притаманні довільному цифровому пристрою, такими як введення та виведення даних, утримування даних та виконання функціональної операції. Ще однією базовою абстракцією може бути сигнал з такими характеристиками як кількість та розрядність відліків. Сигнал може володіти методами для його створення, ініціалізації і переміщення, а також доступу до окремих його відліків та інше.
Базові та похідні класи повинні утворювати ієрархічну структуру з використанням наслідування та агрегації. При створені класів необхідно передбачити поведінку об’єктів на кожному рівні абстракції, їх відповідальність один перед іншим. Виявити взаємодію класів між собою, та як ця взаємодія класів відобразиться у взаємодію, як окремих об’єктів, так і сукупності об’єктів.
При виявлення класів та об’єктів, окрім словесного описання, доцільно користуватися графічними засобами відображення структури проекту, такими як діаграми класів та об’єктів, діаграми модулів.
Після виявлення класів та об’єктів, необхідно реалізувати виявлені на кожному з рівнів абстракції класи, перевірити їх працездатність та придатність до використання у створенні моделей цифрових пристроїв. Дослідити повноту та не суперечливість розроблених класів.
Для тестування отриманих класів та об’єктів доцільно використати консольний проект, заготовка якого пропонується середовищем Visual C++.
Варіант завдання на лабораторну роботу
SHAPE \* MERGEFORMAT Розробити об’єктно-орієнтовану модель цифрового пристрою:
Варіант 9. Пристрою пошуку максимуму сигналу. Пристрій повинен видати значення максимуму та відлік у якому він досягається.
Опис програми
Клас CSignal :
Базовий клас, що описує цифровий сигнал. Містить регістри для збереження одиничного відліку сигналу (time) та його значення (size), а також методи для їх збереження та завантаження.
Клас CComp, public CSignal:
Описує програмну модель елементарного компаратора двох значень цифрового сигналу. Для обробки сигналу містить метод порівняння двох значень сигналу ( iCompare() ). Успадковує клас CSignal, що дозволяє збереження максимального знайденого значення сигналу та його відліку.
Клас CIO, public CSignal:
Описує програмну модель пристрою вводу/виводу цифрового сигналу. Містить метод отримання наступного значення сигналу і метод збереження кінцевого результату. Успадковує клас CSignal, що дозволяє збереження поточного значення сигналу та його відліку.
Клас CDev, public CIO:
Абстракція, що моделює цифровий пристрій, який приймає на вхід цифровий сигнал, а на вихід видає знайдене його максимальне значення та відлік, в якому його досягнуто.
Діаграма класів
SHAPE \* MERGEFORMAT CIO
InputFile;
OutputFile; GetNextSignal();
vSaveMax(int t, double x);
vSetFiles(char *i,char *o);
iEndOfFile(void);
CComp
iCompare(double x);
CSignal
iLoadSignalTime();
dLoadSignalSize();
vStoreSignal(int t,double x);
size; time;
CDev
Описання результатів тестування
Виконання програми з поданим на вхід файлом, що містить цифровий сигнал приводить до отримання на виході файлу з максимальним значенням сигналу та відліку, в якому його досягнуто.
Вхідний файл:
1 53475
2 -9.83657e+008
3 1.02619e-009
…………
1023 2.02
1024 5.47889e+008
Вихідний файл:
Signal maximum:
count = 556
value = 2.14435e+009
Висновок: Виконуючи дану лабораторну роботу, я закріпив теоретичні знання та оволодів практичними навиками об’єкно-орієнтованого аналізу та створення базових абстракцій для моделювання предметної області на прикладі пристрою пошуку максимуму сигналу.