86
Этап №2. Выделение всех сущностей, свойств и операций
Таблица 1
|
Перечень сущностей |
|
Перечень свойств |
|
|
Перечень операций |
||
1) |
операционная система банкомата |
1) |
рабочее состояние |
1) |
проверяет тип карты |
|||
2) |
банкомат |
2) |
тип карты |
2) |
проверяет введённый код |
|||
3) |
удалённая связь |
3) |
PIN-код |
3) |
предоставляет клиенту |
|||
4) |
банк |
4) |
типы операций |
интерфейс |
||||
5) |
состояние |
5) |
виды сообщений |
3)4) |
|
ввод данных |
||
|
|
|
|
|
|
|
|
|
6) |
запрос |
6) |
тип банкомата |
|
посредством |
|||
7) |
клиент |
|
|
|
клавиатуры |
|||
8) |
идентификационная пластиковая |
|
|
4)5) |
|
хранение учётной |
||
|
|
|
|
|
|
|
|
|
|
карта |
|
|
|
записи о клиенте |
|||
9) |
приёмник банкомата |
|
|
5)6) |
|
|
ожи- |
|
10) |
идентификационный код (PIN- |
|
|
|
дание ввода |
|
||
|
код) |
|
|
|
данных клиентом |
|||
11) |
учётная запись о клиенте |
|
|
6)7) |
|
вывод сообщения |
||
|
|
|
|
|
|
|
|
|
12)интерфейс
13)операция
14)счёт
Этап №3. Выделение сущностей предметной области задействованных в процессе идентификации клиента
Перечень сущностей, соответствующих поставленной цели:
1)операционная система (ОС) банкомата
2)идентификационная пластиковая карта (карта клиента)
3)клиент
4)банк
5)интерфейс
Этап №4. Выделение связей типа «сущность–свойства–операция» |
||
Таблица 2 |
|
|
Наименование |
Свойства |
Выполняемые сущностью операции |
сущности |
сущности |
|
Операционная си- |
Тип банкомата |
Проверяет тип карты |
стема |
|
Проверяет введённый код |
банкомата |
|
Предоставляет клиенту интерфейс |
Карта клиента |
Тип карты |
Нет |
Клиент |
PIN-код |
Ввод данных посредством клавиатуры |
Банк |
PIN-код |
Хранит учётную запись |
Интерфейс |
Типы операций |
Ожидает ввода данных клиента |
|
Виды сообщений |
Выводит сообщения |
Отформатировано: Шрифт: 10 пт Отформатировано: Шрифт: 10 пт
Отформатировано: Шрифт: 10 пт
Отформатировано: Шрифт: 10 пт Отформатировано: Шрифт: 10 пт
Отформатировано: Шрифт: 11 пт
Отформатировано: Шрифт: 11 пт Отформатировано: Шрифт: 11 пт Отформатировано: Шрифт: 11 пт
Отформатировано: Шрифт: 11 пт
Отформатировано: Шрифт: 11 пт
Отформатировано: Шрифт: 11 пт
Отформатировано: Шрифт: 11 пт
87
Этап №5. Определение пост- и предусловий выполнения сценария
Таблица 3
Наименование |
Свойства |
Выполняемые |
Условия выполнения |
||
сущности |
сущности |
сущностью операции |
сценария |
||
|
|
|
|
|
|
Операционная |
Тип банкомата |
1. |
Проверяет тип |
1. |
Банкомат в рабочем режиме. |
система |
|
|
карты. |
2. |
Карта находится в приёмни- |
банкомата |
|
2. |
Проверяет код. |
|
ке банкомата. |
|
|
3. Предоставляет |
3. |
Тип карты должен |
|
|
|
клиенту интерфейс. |
соответствовать типу |
||
|
|
|
|
банкомата. |
|
|
|
|
|
4. |
Код должен соответствовать |
|
|
|
|
|
учётной записи клиента. |
|
|
|
|
5. |
Перечень функций |
|
|
|
|
ограничен уровнем доступа |
|
|
|
|
|
клиента. |
|
|
|
|
|
||
Карта клиента |
Тип карты в |
Нет |
Нет |
||
|
виде кода |
|
|
|
|
|
|
|
|
||
Клиент |
PIN-код |
Ввод данных по- |
Нет |
||
|
|
средством |
|
|
|
|
|
клавиатуры |
|
|
|
|
|
|
|
||
Банк |
PIN-код |
Хранит учётную |
Соединён по каналу связи с |
||
|
|
запись |
банкоматом |
||
|
|
|
|
|
|
Интерфейс |
1. Типы |
1.Ожидает ввода |
1. |
Время ожидания ограничено. |
|
|
операций. |
|
данных клиента. |
2. |
Сообщения адекватны |
|
2. Виды |
2.Выводит |
доступным клиенту функциям. |
||
|
сообщений. |
сообщения. |
3. |
Сообщения на русском |
|
|
|
|
|
языке. |
|
|
|
|
|
|
|
Этап №5. Перечень объектов информационной системы
1)операционная система банкомата;
2)карта клиента;
3)клиент;
4)банк;
5)интерфейс.
Примечание: следует подчеркнуть, что именно объектно-ориентированный подход позволяет ассоциировать, расширять, обобщать и включать новые элементы в имеющуюся модель предметной области и одновременно отражать такие изменения в имеющемся программном коде. Такие изменения не будут являться причиной переработки ранее созданных моделей и программного кода, так как эти изменения суть расширение уже имеющегося проекта, но не переделка его заново.
88
ПРИЛОЖЕНИЕ Б Примеры инкапсуляции и создания экземпляров классов
Пример №1
Таблица 1 − Инкапсуляция класса без конструкторов с открытыми данными и функциями
Операторы на языке С++ (мо- |
Комментарии |
дуль ABCopen.h) |
|
|
|
class ABCopen |
Объявление прототипа класса АВСopen |
|
|
{ |
Открытие описания прототипа класса |
|
|
public: |
Описатель уровня доступа к элементам |
|
класса АВСopen |
|
|
int x,y; |
Переменные класса |
|
|
putPart(); |
Интерфейс функции "задать значения |
|
переменным класса АВСopen" |
|
|
getPart(); |
Интерфейс функции "выдать значения |
|
переменных класса АВСopen" |
|
|
}; |
Закрытие описание прототипа класса |
|
|
ABCopen::putPart() |
Реализация функции "задать значения |
|
переменным класса АВСopen" |
|
|
{cout<<"Input the value of |
Операторы реализации функции |
ABCopen.x:"<<endl;cin>>x; |
|
|
|
Cout<<"Input the value of |
Операторы реализации функции |
ABCopen.y:"<<endl;cin>>y;} |
|
|
|
ABCopen::getPart() |
Реализация функции "выдать значения |
|
переменных класса АВСopen" |
|
|
{cout<<"this is value of |
Операторы реализации функции |
ABCopen.x="<<x<<endl; |
|
|
|
Cout<<"this is value of |
Операторы реализации функции |
ABCopen.y="<<y<<endl;} |
|
|
|
89
Пример №2
Таблица 2 − Инкапсуляция и использование класса без конструкторов с закрытыми данными и открытыми функциями
Операторы на языке С++(модуль |
Комментарии |
ABCclose.h) |
|
|
|
class ABCclose |
Объявление прототипа класса |
|
|
{ |
Открываем описание класса |
|
|
private: |
Уровень доступа к элементам класса |
|
(закрыт) |
|
|
int x,y; |
Переменные класса |
|
|
public: |
Уровень доступа к функциям класса |
|
(открыт) |
|
|
putPart(); |
Интерфейс функции "задать значения |
|
переменным класса АВСclose" |
|
|
getPart(); |
Интерфейс функции "выдать значения |
|
переменных класса АВСclose" |
|
|
}; |
Закрываем описание класса |
|
|
ABCclose::putPart() |
Реализация функции "задать значения |
|
переменным класса АВС" |
|
|
{cout<<"Input the value of |
Операторы реализации функции |
ABCclose.x:"<<endl;cin>>x; |
|
|
|
cout<<"Input the value of |
Операторы реализации функции |
ABCclose.y:"<<endl;cin>>y;} |
|
|
|
ABCclose::getPart() |
Реализация функции "выдать значения |
|
переменных класса АВС" |
|
|
{cout<<"this is value of |
Операторы реализации функции |
ABCclose.x="<<x<<endl; |
|
|
|
cout<<"this is value of |
Операторы реализации функции |
ABCclose.y="<<y<<endl;} |
|
|
|
90
Пример №3
Таблица 3 − Инкапсуляция с конструктором и закрытыми данными без функций
Операторы на языке С++ (мо- |
Комментарии |
дуль ABC.h) |
|
|
|
class ABC |
Объявление прототипа класса |
|
|
{ |
Открываем описание класса |
|
|
Private: int x,y; |
Уровень доступа к элементам класса |
|
(закрыт) |
|
|
Public: |
Уровень доступа к функциям класса |
|
(открыт) |
|
|
ABC(); |
Метод класса (объявление прототипа |
|
конструктора класса ABC) |
|
|
}; |
Закрываем описание класса |
|
|
ABC::ABC() |
Реализация конструктора вне тела класса |
|
посредством оператора расширения |
|
видимости «::» |
|
|
{cout<<"Input the value of ABC.x" |
Реализация конструктора: "выдать |
<<endl; cin>>x; |
значения переменных класса АВС" |
cout<<"Input the value of ABC.y" |
|
<<endl; cin>>y; |
|
|
|
cout<<"This is value of |
Операторы реализации конструктора |
ABC.х"<<x<<endl; |
|
|
|
cout<<"This is value of |
Операторы реализации конструктора |
ABC.y"<<y<<endl;} |
|
|
|
Пример №4
Таблица 4 − Инкапсуляция класса с конструктором инициализации посредством списка и закрытыми данными
Операторы на языке С++ (модуль ABC1.h) |
Комментарии |
|
|
class ABC1 |
|
|
|
{Private: int x,y; |
|
|
|
Public: ABC1(int a, int b); }; |
Метод-конструктор |
|
|
ABC1::ABC1(int a,int b):x(a),y(b) |
Реализация конструктора |
{cout<<"x="<<x<<endl;cout<<"y="<<y |
инициализации списком вне |
<<endl;} |
тела класса |
|
|