- •Рейтингова система оцінювання знань та умінь з ооп 2012-2013 н.Р.
- •Вимоги до звіту з лабораторних робіт
- •Класи потоків Лабораторна робота 1
- •1.1 Теоретичні відомості
- •1.1.1. Методи класів потоків
- •1.1.2. Маніпулятори
- •1.1.3. Деякі методи класів файлових потоків
- •1.2 Приклад програми Умова задачі
- •Алгоритм задачі
- •Текст програми
- •Результати виконання програми
- •1.3 Варіанти завдань
- •1.4 Контрольні запитання
- •Інкапсуляція. Інтерфейси класів . Діаграми прецедентів і класів Лабораторна робота 2
- •2.1 Теоретичні відомості Етапи об’єктно-орієнтованого проектування та моделювання
- •Діаграма варіантів використання(use-case diagram)
- •Ідентифікація класів
- •Ідентифікація атрибутів
- •Ідентифікація операцій (методів)
- •Типові схеми uml діаграм
- •2.2 Програма роботи
- •2.3 Варіанти завдань
- •2.4 Приклад виконання роботи Задача
- •Об’єктно-орієнтоване проектування Зображення класів в uml
- •Ідентифікація атрибутів
- •Структура проекту
- •Інтерфейси та реалізації класів програми
- •2.5 Контрольні запитання
- •Конструктори та деструктори класів Діаграми прецедентів і класів Лабораторна робота 3
- •3.1 Теоретичні відомості
- •3.2 Програма роботи
- •3.3 Варіанти завдань
- •3.4 Приклад виконання роботи Задача
- •Реалізація конструкторів і деструкторів деяких класів
- •3.5 Контрольні запитання
- •Методи класів: аксесори, ітератори, утілити, предикатні функції . Діаграми класів, діяльності, послідовності Лабораторна робота № 4
- •4.1 Теоретичні відомості
- •4.2 Програма роботи
- •4.3 Варіанти завдань
- •4.4 Приклад виконання роботи Задача
- •Реалізація деяких методів-аксесорів, предикатних функцій, функцій-утілит, методів, які забезпечують функціональність об’єктів
- •Результати виконання роботи
- •4.5 Контрольні запитання
- •Константні та статичні члени класів. Вбудовані функції. Діаграми класів, послідовності Лабораторна робота № 5
- •5.1 Теоретичні відомості
- •5.2 Програма роботи
- •5.3 Варіанти завдань
- •5.4 Приклад виконання роботи Задача 5_1
- •Приклади деяких константних елементів даних і методів класів
- •Фрагмент результатів виконання роботи
- •Задача 5_2
- •Приклади деяких статичних елементів даних і методів класів
- •Фрагмент результатів виконання роботи
- •5.5 Контрольні запитання
- •Перевантаження операцій та функцій. Дружні функції Діаграми класів, станів і переходів Лабораторна робота 6
- •6.1 Теоретичні відомості
- •6.2 Програма роботи
- •6.3 Варіанти завдань
- •6.4 Приклад виконання роботи
- •6.5 Контрольні запитання
- •Просте успадкування класів. Поліморфізм. Віртуальні функції Діаграма класів, кооперацій. Лабораторна робота 7
- •7.1 Теоретичні відомості
- •7.2 Програма роботи
- •9.2. Приклад програми Умова задачі 9
- •Алгоритм задачі 9
- •Текст програми 9
- •Результати роботи програми 9
- •9.3. Варіанти завдань
- •9.4. Контрольні запитання
- •Методи внутрішнього сортування (сортування масивів) Лабораторна робота 10
- •Методи зовнішнього сортування (сортування файлів) Лабораторна робота 11
Ідентифікація операцій (методів)
Операція(operation) класу служить для представлення окремої характеристики поведінки, яка являється загальною для всіх об’єктів даного класу
Виведення операцій здійснюють з постановки задачі через аналіз дієслів та їх фраз. Для цього слід виконати такі дії.
Виділити явні та неявні дієслівні звороти
Визначити доцільність використання дієслівних зворотів як імена можливих залежностей
Виключити непотрібні чи неправильні залежності.
Уточнити семантику залежностей, що залишилися
Розподілити операції по класах за такими критеріями:
якщо операція виконується тілько над одним об’єктом, то вона визначається в класі, экземпляром котрого є цей об’єкт;
якщо аргументами операції є об’єкти різних класів, то її слід включити до класу, до якого належить результат операції;
якщо аргументами операції є об’єкти різних класів, причому змінюється значення тільки одного об’єкта, а значення інших об’єктів тільки читаються, то її слід включити до класу, до якого належить об’єкт, що змінюється;
якщо класи разом з їх залежностями утворюють зірку з центром в одному з класів, то операцію, аргументами котрої є об’єкти цих класів, слід включити в центральний клас.
Потім слід прибрати непотрібні або неправильні залежності, використовуючи наступні критерії:
залежності між виключеними класами мають бути виключені, або переформулированы в термінах класів, що залишилися;
нерелевантні залежності і залежності, пов'язані з реалізацією, мають бути виключені ;
дії: залежність повинна описувати структурні властивості прикладної області, а не малоістотні події;
тренарные залежності: велику частину залежностей між трьома або великим числом класів можна розкласти на декілька бінарних залежностей, використовуючи у разі потреби кваліфікатори; в деяких випадках таке розкладання здійснити не удається; наприклад, тренарная залежність "Професор читає курс в аудиторії 628" не може бути розкладена на бінарних без втрати інформації;
похідні залежності: потрібно виключати залежності, які можна виразити через інші залежності, оскільки вони надлишкові; при виключенні надлишкових (похідних) залежностей потрібно бути особливо обережним, оскільки не всі дублюючі одна іншу залежності між класами надлишкові; в деяких випадках інші залежності дозволяють встановити лише існування ще однієї похідної залежності, але не дозволяють встановити кратність цієї залежності; наприклад, фірма має тих, що багато служать і володіє багатьма комп'ютерами; кожному службовцеві надано для персонального використання декілька комп'ютерів, крім того, є комп'ютери спільного користування; кратність залежності предоставлен_для_использования не може бути виведена із залежностей служить і володіє; хоча похідні залежності і не додають нової інформації, вони часто бувають зручні; у цих випадках їх можна вказувати на діаграмі, помітивши косою межею.
Видаливши надлишкові залежності, потрібно уточнити семантику залежностей, що залишилися, таким чином:
невірно названі залежності: їх слід перейменувати, щоб сенс їх став зрозумілий;
імена ролей: потрібно додати імена ролей там, де це необхідно; ім'я ролі описує роль, яку грає відповідний клас в даній залежності з точки зору іншого класу, що бере участь в цій залежності; якщо ім'я ролі ясне з імені класу, його можна не вказувати;
кваліфікатори: додаючи кваліфікатори там, де це необхідно, ми вносимо елементи контексту, що дозволяє добитися однозначної ідентифікації об'єктів; кваліфікатори дозволяють також спростити деякі залежності, знизивши їх кратність;
кратність: необхідно додати позначення кратності залежностей; при цьому слід пам'ятати, що кратність залежностей може мінятися в процесі подальшого аналізу вимог до системи;
невраховані залежності мають бути виявлені і додані в модель.