Обозначения: S=X количество серверов; M-моновещание; B-широковещание +/- -наличие режима подтверждения
Дисциплина "Объектно-ориентированное программирование" Весенний семестр 2004/2005 уч.г. ТРЕБОВАНИЯ к выполнению лабораторной работы N 4 ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ СИСТЕМЫ КЛАССОВ, ОБЕСПЕЧИВАЮЩИХ ОБМЕН СООБЩЕНИЯМИ В ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ ПРОГРАММЕ 1. Цель работы Создание программного обеспечения для снабжения объектно-ориентированных программ средствами обмена сообщениями. 2. Задание Разработать и испытать систему классов, обеспечивающих обмен сообщениями в объектно-ориентированной программе и являющихся самостоятельными компонентами, ориентированными на применение в других программах. Обмен сообщениями должен удовлетворять общим требованиям к механизму обмена и требованиям индивидуального задания. 3. Общие требования к механизму обмена сообщениями 3.1. Обмен сообщениями должен быть построен по схеме "почтовый клиент - почтовый сервер". 3.2. Все почтовые клиенты обмениваются сообщениями только с помощью почтового сервера. 3.3. Почтовый сервер осуществляет регистрацию почтовых клиентов. 3.4. Почтовый сервер принимает сообщения только от зарегистрированных клиентов и отправляет сообщения только зарегистрированным клиентам. 3.5. Отправляемое сообщение задает проблемное действие, которое должен выполнить получатель и, возможно, посылку отправителю подтверждения о получении сообщения и выполнении заданного действия. 3.6. Схемами посылки и приема сообщений могут быть: - односторонние: сервер-клиент, клиент-сервер"; - двухсторонние: сервер-клиент-сервер, клиент-сервер- клиент. 3.7. Для каждой пары участников обмена сообщениями задается режим вещания: моновещание (только указанному получателю) или широковещание (всем клиентам, всем серверам). 4. Требования, определяемые индивидуальным заданием Индивидуальное задание определяет схему обмена сообщениями, режим вещания и необходимость посылки подтверждения. 5. Основные этапы разработки 5.1. Формулирование основной идеи архитектуры системы объектов для обеспечения обмена сообщениями. 5.2. Построение системы объектов в процессе объектно- ориентированного анализа механизма обмена сообщениями, заданного индивидуальным заданием и отвечающего общим требованиям. При этом приводятся и обосновываются информационные модели объектов, действий и связей между ними. 5.3. Проектирование основных автономных классов на языке С++ на основе контрактов: - для каждой интерфейсной функции должны быть сформулированы пред- и постусловия; - для каждого класса должны быть определены инварианты. 5.4. Проектирование конструкторов и деструкторов классов, выделенное в отдельные подэтапы. 5.5. Проектирование системы описаний классов как системы файлов на языке С++. 5.6. Разработка методики тестирования классов и тестовых наборов данных. 5.7. Разработка внешней спецификации программы на языке С++, тестирующей классы как самостоятельные компоненты, ориентированные на применение в других разработках. 5.8. Разработка тестирующей программы на языке С++ 6. Подготовка отчета по лабораторной работе. Отчет должен быть выполнен в соответствии с требованиями разд. 4 "Общих требований к выполнению цикла лабораторных работ".