том, але за подією не потрібно визначати до якого провайдеру воно відноситься (тобто не потрібно забезпечувати перехід від події до провайдера). Кратність відносини 1 і *, оскільки провайдер відстежує події декількох клієнтів, а кожна подія відноситься до конкретного провайдеру.
Між класами Client і Events існує відношення односпрямованої асоціації (від Client до Events), так як необхідний перехід від клієнта до події, при вчиненні будь-які дії, але зворотний перехід від події до клієнта не потрібен. Кратність відносини 1 і *, оскільки кожний клієнт може виконувати кілька подій, або не виконувати взагалі, а кожна подія відноситься до конкретному клієнтові.
Опис класів
Опишемо поля і методи, введені нами в кожному класі на даній ітерації.
У класі Client використовуються наступні поля:
Ім'я - ім'я клієнта, носить інформативний характер.
Прізвище - прізвище клієнта, ідентифікатор клієнта.
По батькові - батькові клієнта, носить інформативний характер.
Номер договору - порядковий номер договору (унікальний ідентифікатор клієнта).
Обраний провайдер - ім'я провайдера, обраного клієнтом при реєстрації нового договору (Білайн, Мегафон, МТС).
Обраний сервіс - назва сервісу, обраного клієнтом при реєстрації (Дзвінки, СМС, Інтернет), може бути змінено при виклику методу Зміна клієнта.
Баланс - інформація про стан рахунку клієнта, змінюється при кожному використанні сервісу клієнтом, а також при введенні суми клієнтом для поповнення балансу (ціле, невід'ємне число).
Наведемо тепер основні методи, реалізовані в даному класі:
Активність клієнта - в цьому методі моделюється використання клієнтом різних сервісів, що надаються провайдером: мобільний зв'язок, СМС, інтернет. Зокрема, відбувається зняття грошей з рахунку клієнта при використанні обраного сервісу, відповідно тарифом провайдера.
Видалення клієнта - цей метод дозволяє видалити раніше зареєстрованого клієнта, зокрема файл з наданими особистими даними.
Додавання клієнта - метод реалізує створення нового клієнта. Для цього необхідно створити новий файл і записати туди інформацію про особисті дані клієнта, надану при реєстрації.
Зміна клієнта - метод дозволяє змінити інформацію про клієнта. Для цього очищається існуючий файл вибраного клієнта і записується туди змінена інформація.
У класі Provider використовуються наступні поля:
Ім'я - ім'я провайдера, обраного користувачем при реєстрації договору, носить інформативний характер.
Ціна інтернету - ціна за кожен скачаний Мб, яка знімається з балансу клієнта при використанні даного сервісу.
Ціна дзвінків - ціна за кожну хвилину розмови, яка знімається з балансу клієнта при використанні даного сервісу.
Ціна СМС - ціна за кожне відправлене повідомлення, яка знімається з балансу клієнта при використанні даного сервісу.
Основні методи, реалізовані в даному класі:
Читання файлу провайдера - метод, що дозволяє отримати інформацію про тарифи провайдера для використання її в методі Активність клієнта, класу Client.
У класі Events використовуються наступні поля:
Час закінчення використання сервісів - час закінчення використання будь-якого сервісу клієнтом, вимагається для виведення в статистиці, а також для перевірки клієнта на останню активність.
Час використання сервісу - час, протягом якого клієнт використовував сервіс, носить інформативний характер.
Використовуваний сервіс - назва сервісу, який в даний момент використовує клієнт. Залежно від використовуваного сервісу вибирається відповідний метод і знімається сума, згодна тарифу на цей сервіс.
Активність (булева змінна) - поле, що показує активний чи даний клієнт, змінюється, якщо клієнт неактивний протягом певного часу (місяць).
А також методи:
Перевірка балансу - метод для перевірки балансу на не негативними. Повертає істину, якщо баланс позитивний і брехня, якщо він негативний, щоб згодом дозволяти або забороняти використання сервісу в методі Активність клієнта, класу Client.
Зміна балансу - в цьому методі відбувається зміна рахунку клієнта на введену ним суму.
Діаграма класів
...