- •Содержательная (исходная) постановка задачи. Вариант 2.1.33
- •Проектные решения
- •Объектно-ориентированная модель задачи.
- •Контракты классов.
- •Проектирование конструкторов и деструкторов классов.
- •Разработка методики тестирования классов и тестовых наборов данных.
- •Сценарий диалога с пользователем
- •Количественные характеристики программы
- •Текст программы
Санкт-Петербургский государственный электротехнический университет
Кафедра МОЭВМ
Отчет по лабораторной работе №4.
Проектирование и реализация системы классов,
обеспечивающих обмен сообщениями
в объектно-ориентированной программе
Выполнил:
Студент гр.3352
Сергеев М. В.
Проверил:
Смольянинов А. В.
Санкт-Петербург
2006г.
-
Содержательная (исходная) постановка задачи. Вариант 2.1.33
Разработать и испытать систему классов, обеспечивающих обмен сообщениями в объектно-ориентированной программе и являющихся самостоятельными компонентами, ориентированными на применение в других программах. Обмен сообщениями должен удовлетворять общим требованиям к механизму обмена и следующим требованиям:
Параметры задания |
Схема передачи сообщений и значения параметров |
||||
Участник |
Направление и вид передачи |
Участник |
Направление и вид передачи |
Участник |
|
Схема передачи сообщений |
Клиент |
→ |
Сервер |
→ |
Клиент |
Количество |
|
|
1 |
|
|
Режимы |
|
Один - одному |
|
Один – одному + Один - всем |
|
Подтверждение |
|
нет |
|
да |
|
-
Обмен сообщениями должен быть построен по схеме "почтовый клиент - почтовый сервер".
-
Все почтовые клиенты обмениваются сообщениями только с помощью почтового сервера.
-
Почтовый сервер осуществляет регистрацию почтовых клиентов.
-
Почтовый сервер принимает сообщения только от зарегистрированных клиентов и отправляет сообщения только зарегистрированным клиентам.
-
Отправляемое сообщение задает проблемное действие, которое должен выполнить получатель и, возможно, посылку отправителю подтверждения о получении сообщения и выполнении заданного действия.
-
Схемами посылки и приема сообщений могут быть:
-
односторонние: сервер-клиент, клиент-сервер
-
двухсторонние: сервер-клиент-сервер, клиент-сервер-клиент.
-
-
Для каждой пары участников обмена сообщениями задается режим вещания: моновещание (только указанному получателю) или широковещание (всем клиентам, всем серверам).
-
Проектные решения
-
Для оправки будет использоваться класс CMsg. В нем будет три атрибута: кому (номер объекта, которому предназначается сообщение), от (номер объекта, от кого пришло сообщение) и само тело сообщения.
-
Тело сообщения будет играть роль команды. Команды можно занумеровать. Тогда удобнее использовать в качестве тела сообщения – номер команды (тип целое).
-
Подтверждение получения сообщения состоит в том, что при соответствии информации о получателе и своем номере, клиент возвращает (return функции прочтения) код 0, иначе код 1. При чтении сервером сообщения, если клиент не зарегистрирован на сервере, возвращаем код 2.
-
«Выполнение» команды из сообщения будет состоять в выводе сообщения на экран и отдельно тела сообщения - команды.
-
Сообщение создается один раз с полностью заполненными полями. В процессе работы с сообщениями, в нем ничего не меняется.
-
Список клиентов на сервере будет аналогичен списку, реализованному в предыдущих работах. Проблемной частью элементов списка будет ссылка на клиентов. Реализован список будет таким же образом, с тем лишь отличием, что при уничтожении списка, сами клиенты не должны удаляться.