Міністерство освіти та науки України
Національний університет “Львівська Політехніка”
Інститут комп’ютерних наук та інформаційних технологій
Кафедра програмного забезпечення
Звіт
про виконання лабораторної роботи №5
з дисципліни “Вступ до програмної інженерії ”
Підготував:
студент групи ПІ-12
Прийняла:
доцент кафедри ПЗ
Левус Є. В.
Львів – 2009
Тема. UML-діаграми як засіб документування програмних продуктів.
Мета. Вивчити правила побудови UML-діаграм.
Теоретичні відомості
Завдання: Операції над об’єктами: модифікатор, селектор, ітератор, конструктор, деструктор.
Операції над об’єктами:
Конструктор – оперція, яка створює або ініціалізує об’єкт даного класу.
Деструктор – операція, яка звільняє стан об’єкта або видаляє сам об’єкт.
Модифікатор – операція, яка змінює стан об’єкта.
Селектор – операція, яка надає доступ до стану об’єкта але не дає змогу змінити його.
Ітератор – операція, яка дає можливість проходитись по частинам деякого об’єкта.
Приклад:
class A
{
private:
/* Вказівник, який буде вказувати на початок масиву */
int* arr_;
/* Довжина масиву */
unsigned int length_;
/* Додаткові дані */
int data_;
public:
/* Конструктор без параметрів просто створює масив
нульової довжини і ініціалізує змінні */
A() { arr_ = new int[0]; length_ = 0; data_ = 0; }
/* Конструктор з параметром створює масив заданої довжини */
A(int length) { arr_ = new int[length]; length_ = length; data_ = 0; }
/* У деструкторі звільняється виділена пам'ять */
~A() { delete[] arr_; }
/* Селектор, який повертає поточний стан об'єкту,
у даному випадку - довжину масиву */
unsigned int getLength() { return length_; }
// Довжина масиву залишається постійною,
// тому відсутній модифікатор для неї
/* Даний селектор повертає додаткові дані */
int getData() { return data_; }
/* Модифікатор дає змогу змінити додаткові дані */
void setData(int data) { data_ = data; }
/* Ітератор надає можливість послідовно отримувати кожний
елемент масиву, який був інкапсульований у класі */
int getAt(int pos) { return arr_[pos]; }
/* Інший ітератор надає можливість послідовно змінювати кожний
елемент масиву, який був інкапсульований у класі */
void setAt(int pos, int value) { arr_[pos] = value; }
};
#include <iostream>
using namespace std;
int main()
{
A a(5); // Використання конструктора
a.setData(1); // Використання модифікатора
for(unsigned int i = 0; i < a.getLength(); ++i)
{
int value; cin >> value;
a.setAt(i, value); // Використання ітератора
}
cout << a.getData() << endl; // Використання селектора
for(unsigned int i = 0; i < a.getLength(); ++i)
cout << a.getAt(i) << endl; // Використання ітератора
return 0; // Автоматичний виклик деструктора
}
Постановка завдання
№ 4. Літаючі засоби: пасажирський літак, спортивний літак, планер, винищувач, бомбардувальник.
Частина 1. На діаграмі класів відобразити ієрархію класів. В коментарі вказати критерій поділу на рівні. Між класами вказати відношення узагальнення.
Частина 2. Ввести у словник предметної області сутності, які є у відношенні «залежність», «асоціація», «агрегація», «композиція». Зобразити ці відношення з коментарями на схемі. Вказати імена, кратність зв’язків.
Результат виконання завдання
Діаграма класів:
EMBED Visio.Drawing.11
Діаграма класів з додатковими сутностями:
EMBED Visio.Drawing.11
Словник предметної області (Літаючі засоби):
Армія (Army) – група військових і транспортних одиниць.
Бомбардувальник (Bomber) – повільний військовий літак з потужною зброєю.
Винищувач (Interceptor) – швидкий маневрений військовий літак з слабкою зброєю. Використовується для підтримки бомбардувальників.
Двигун (Engine) – частина літака, яка відповідає за його переміщення.
Зброя (Weapon) – сутність, яка виражає потужність військової одиниці.
Літаючий засіб (Aircraft) – абстрактна сутність, яка виражає будь-який повітряний об’єкт.
Паливо (Fuel) – речовина, необхідна для руху літака.
Пасажирський літак (PassengerAirplane) – літаючий засіб, який використувється для перевезення людей.
Пілот (Pilot) – людина, яка керує літаючим засобом.
Пілотований літаючий засіб (PilotedAircraft) – абстрактна сутність, яка виражає будь-який літаючий засіб, який керується пілотами-людьми, синонім - літак.
Планер (Glider) – особливий тип спортивного літака без двигуна.
Ракета (Rocket) – військова ракета, яка запускається з наземної станції. Керується віддалено.
Спортивний літак (SportPlane) – літаючий засіб, який має значно більшу швидкість і маневреність ніж звичайний літак.
Висновок
На даній лабораторній роботі було вивчено основні правила побудови UML діаграми. Були використані такі сутності: “клас”, “узагальнення”, “залежність”, “асоціація”, “агрегація”, “композиція”, “коментарі”. До UML діаграми був створений словник предметної області. Все це дало базові знання про документування програмних засобів. У теоретичних відомостях була дана відповідь, які існують операції над об’єктами і приклад їхнього використання. Мета лабораторної роботи була досягнута.