Почтовая программа с архитектурой клиент-сервер

Постановка задачи, описание предметной области, входная и выходная информация. Выбор и основание инструментов разработки. Программно-аппаратные ресурсы. Описание логической структуры, проектирование системы меню. Тестирование, способ установки программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 07.09.2015
Размер файла 107,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Введение

В настоящее время компьютеры прочно обосновались практически во всех сферах деятельности человека. Этот факт вынуждает человека с все большей интенсивностью использовать в своей повседневной жизни компьютер. В настоящее время информатика и информационные технологии достигли достаточно высокого уровня развития. Без них уже немыслима современная человеческая культура и профессиональная деятельность человека. C развитием компьютерных технологий все больше информации распространяется по компьютерным сетям с использованием различных компьютерных систем. Основным способом передачи информации по сети Internet, является электронная почта. Онлайн сервисы электронной почты зачастую очень сложны и громоздки, а программные клиенты дороги.

Цель: Написать почтовую программу с архитектурой клиент-сервер, которая позволяла бы пользователю принимать и отсылать письма с указанного почтового адреса, который может быть расположен на любом почтовом сервере.

Задачи:

Определить предметную область, входную и выходную информацию программного продукта, а также составить задачу написания программного продукта.

Выбрать инструменты разработки, определить системные требования, а также обосновать свой выбор.

Спроектировать задачу, описать логическую структуру, спроектировать графический интерфейс программного продукта.

Описать программу, используемые компоненты, процедуры и функции.

Протестировать программный продукт.

Описать применение, способ установки и руководство пользователя программного продукта.

Сделать выводы по решении всех задач.

Объект: программный продукт с архитектурой клиент-сервер, работающий в локальной сети или в сети Internet.

Предмет: программный продукт, осуществляющий работу с почтовыми ящиками электронной почты (E-mail клиент).

Методы исследования: В курсовой работе применялись общетеоретические и эмпирические (практические) методы.

1. Постановка задачи

1.1 Описание предметной области

В процессе курсового проектирования необходимо разработать сетевую почтовую программу, далее «E-mail клиент», которая позволит получать и отправлять письма с указанного e-mail-а.

Проведя небольшое исследование рынка подобного программного обеспечения, было найдено несколько подобных продуктов, таких как Bat, Outlook Express. Все они имели ряд недостатков, таких как:

- высокая цена;

- недостаточный функционал;

- сложность работы.

1.2 Входная и выходная информация

Входная информация определяется как данные, поступающие на код задачи и используемые для ее решения или величины, которые задаются до начала работы алгоритма или определяются динамически во время его работы. Входной информацией служат первичные данные документов ручного заполнения, информация, хранимая в файлах базы данных (результаты решения других задач, нормативно-справочная информация - классификаторы, справочники), входные сигналы отдатчиков.

Входными данными программы являются:

- адрес почтового сервера;

- e-mail пользователя;

- пароль почтового ящика;

- текст письма, получаемый от почтового сервера.

Выходная информация - информация, образующаяся в результате обработки входной информации на выходе системы. Является результатом принятого управленческого решения. Может быть представлена в виде документов, письменных и устных сообщений и т.д.

Выходной информацией программы является текст письма, выведенный на экран, а также текст отосланного на почтовый сервер письма.

1.3 Формулировка задачи

Должен быть разработан программный продукт, обеспечивающий комфортную работу с почтой пользователя. В программном продукте должны быть реализованы возможности приема и передачи писем на указанные почтовые адреса. Программный продукт должен работать с серверами различных типов. Так же программный продукт должен иметь простой пользовательский интерфейс.

2. Выбор и основание инструментов разработки

2.1 Выбор средств разработки

Исследовав требования к разрабатываемой программе, можно остановиться на выборе среды программирования - Embarcadero Delphi XE. Embarcadero Delphi XE - дает возможность быстро создавать полнофункциональные высокопроизводительные приложения для Windows.

Язык Delphi используется миллионами разработчиков. Он сочетает современные возможности объектно-ориентированного языка, быструю компиляцию, подключение к разнородным базам данных и мощную визуальную платформу разработки, поддерживаемую тысячами компонентов и надстроек сторонних разработчиков. Полностью визуальная двусторонняя интегрированная среда разработки Embarcadero Delphi XE позволяет упростить и ускорить создание визуальных пользовательских приложений и приложений, активно работающих с базами данных, включая приложения для настольных систем Windows, интерактивные приложения с сенсорным вводом, приложения для электронных терминалов, а также приложения для баз данных, многозвенные, облачные и веб-приложения. Разработка приложений реализуется максимально быстрым способом, требует участия меньшего числа разработчиков и осуществляется для разных платформ Windows и баз данных.

Программирование в Delphi XE значительно эффективнее, чем в других средах и платформах Delphi, таких как Borland Delphi. Библиотека визуальных компонентов (VCL) Delphi XE инкапсулирует сложные, трудоемкие интерфейсы Windows API в удобные, расширяемые компоненты многократного применения. Она полностью интегрирована в среду разработки и двусторонние визуальные конструкторы. Это облегчает управление свойствами и методами компонентов через программный код и в визуальном режиме. В результате при разработке приложений с помощью библиотеки VCL приходится писать, отлаживать и тестировать до 5 раз меньше программных строк без ухудшения производительности и функциональных возможностей. Приложения, созданные с использованием компонентов, отличаются более высоким качеством, они удобнее в обслуживании и легче поддаются изменению.

2.2 Программно-аппаратные ресурсы

Основные требования к персональному компьютеру:

- микропроцессор Intel или AMD с тактовой частотой 200МГц и выше;

- объем оперативной памяти 32Мб и выше;

- объем дискового пространства не менее 30Мб;

- клавиатура и манипулятор мышь;

- операционная система Microsoft Windows 98/NT/2000/XP.

Разрабатываемая рабочая программа будет использоваться в операционной системе Windows. Операционная система обеспечивает пользователю и прикладным программам удобный способ обращения с устройствами компьютера.

Основные достоинства вышеперечисленной операционной среды:

полностью переработанный интерфейс пользователя. Благодаря новому интерфейсу в Windows гораздо проще запускать программы, открывать и сохранять документы, работать с дисками и сетевыми серверами;

plug and рlay. B Windows реализована поддержка стандарта PlugAndPlay, который представляет собой попытку максимально упростить установку и настройку периферийных устройств;

совместимость (Compatibility). Поддержка файловых систем NTFS5, NTFS4, FAT16 и FAT32.

3. Проектирование задачи

3.1 Описание логической структуры

Для реализации работы e-mail клиенты были использованы протоколы POP3 и SMPT.

POP3 - протокол который используется почтовым клиентом для получения сообщений электронной почты с сервера. POP3 - перед работой через протокол POP3 сервер прослушивает порт 110. Когда клиент хочет использовать этот протокол, он должен создать TCP соединение с сервером. Когда соединение установлено, сервер отправляет приглашение. Затем клиент и POP3 сервер обмениваются информацией пока соединение не будет закрыто или прервано. Команды POP3 состоят из ключевых слов, за некоторыми следует один или более аргументов. Все команды заканчиваются парой CRLF (в Visual Basic константа vbCrLf). Ключевые слова и аргументы состоят из печатаемых ASCII символов. Ключевое слово и аргументы разделены одиночным пробелом. Ключевое слово состоит от 3-х до 4-х символов, а аргумент может быть длиной до 40-ка символов.

Ответы в POP3 состоят из индикатора состояния и ключевого слова, за которым может следовать дополнительная информация. Ответ заканчивается парой CRLF. Существует только два индикатора состояния: "+OK" - положительный и "-ERR" - отрицательный.

Ответы на некоторые команды могут состоять из нескольких строк. В этих случаях каждая строка разделена парой CRLF, а конец ответа заканчивается ASCII символом 46 (".") и парой CRLF.

POP3 сессия состоит из нескольких режимов. Как только соединение с сервером было установлено и сервер отправил приглашение, то сессия переходит в режим AUTHORIZATION (Авторизация). В этом режиме клиент должен идентифицировать себя на сервере. После успешной идентификации сессия переходит в режим TRANSACTION (Передача). В этом режиме клиент запрашивает сервер выполнить определённые команды. Когда клиент отправляет команду QUIT, сессия переходит в режим UPDATE. В этом режиме POP3 сервер освобождает все занятые ресурсы и завершает работу. После этого TCP соединение закрывается.

У POP3 сервера может быть INACTIVITY AUTOLOGOUT таймер. Этот таймер должен быт, по крайней мере, с интервалом 10 минут. Это значит, что если клиент и сервер не взаимодействуют друг с другом, сервер автоматически прерывает соединение и при этом не переходит в режим UPDATE.

SMPT - SMTP используется для отправки почты от пользователей к серверам и между серверами для дальнейшей пересылки к получателю. Для приёма почты, почтовый клиент должен использовать протоколы POP3 или IMAP. Работа с SMTP происходит непосредственно на сервере получателя. Поддерживает функции: установление соединения, аутентификация, передача данных.

Чтобы доставить сообщение до адресата, необходимо переслать его почтовому серверу домена, в котором находится адресат. Для этого обычно используется запись типа MX (англ. Mail eXchange -- обмен почтой) системы DNS. Если MX запись отсутствует, то для тех же целей может быть использована запись типа A. Некоторые современные реализации SMTP-серверов (например, Exim[1]) для определения сервера, обслуживающего почту в домене адресата, также могут задействовать SRV-запись (RFC 2782).

Широкое распространение SMTP получил в начале 1980-х годов. До него использовался протокол UUCP, который требовал от отправителя знания полного маршрута до получателя и явного указания этого маршрута в адресе получателя, либо наличия прямого коммутируемого или постоянного соединения между компьютерами отправителя и получателя.

Sendmail был одним из первых (если не первым) агентом отправки сообщений, который начал работать с SMTP. В настоящее время протокол SMTP является стандартным для электронной почты и его используют все клиенты и серверы.

Протокол был разработан для передачи только текста в кодировке ASCII, кроме того, первые спецификации требовали обнуления старшего бита каждого передаваемого байта. Это не даёт возможности отсылать текст на национальных языках (например, кириллице), а также отправлять двоичные файлы (такие как изображения, видеофайлы, программы или архивы). Для снятия этого ограничения был разработан стандарт MIME, который описывает способ преобразования двоичных файлов в текстовые. В настоящее время большинство серверов поддерживают 8BITMIME, позволяющий отправлять двоичные файлы так же просто, как текст. Основные команды:

MAIL адрес отправителя

RCPT адрес получателя (может быть несколько. На каждого получателя отдельно приходит квитанция)

DATA передача данных (письма). Производится в ASCII. Данные формируются как сегменты ТСР. Конец письма - точка в пустой строке.

QUIT разрыв соединения.

Установление и закрытие соединения непосредственно с сервером производится по ТСР. Контроль за пользовательскими данными возложен на ТСР.

Сервер SMTP -- это конечный автомат с внутренним состоянием. Клиент передает на сервер строку команда<пробел>параметры<перевод строки>. Сервер отвечает на каждую команду строкой, содержащей код ответа и текстовое сообщение, отделенное пробелом. Код ответа -- число от 100 до 999, представленное в виде строки, трактующийся следующим образом:

2ХХ -- команда успешно выполнена.

3XX -- ожидаются дополнительные данные от клиента.

4ХХ -- временная ошибка, клиент должен произвести следующую попытку через некоторое время.

5ХХ -- неустранимая ошибка.

Текстовая часть ответа носит справочный характер и предназначена для человека, а не программы.

3.2 Проектирование системы меню

программа меню тестирование

Для простоты работы с программным средством необходимо обеспечить максимально понятный интерфейс.

При загрузке программы на экран выводится основное окно программы (рисунок 3.1) содержащее основное меню, иконки для быстрого доступа к функциям программы, поле показывающее список сообщений, а так же информацию о выбранном сообщении.

Рисунок 3.1 - Главное окно программы

При нажатии на пункт меню «Настройки», на экран выводится окно настроек программы (рисунок 3.2) содержащий в себе две вкладки POP3 settings (рисунок 3.2) и SMTP settings (рисунок 3.3). На обеих вкладках расположены формы для настройки соответствующих серверов.

Рисунок 3.2 - Окно настройки программы и вкладка POP3 settings

Рисунок 3.3 - Вкладка SMTP settings

Находясь в основном окне программы при нажатии на пиктограмму с изображением конверта, либо выбрав «Написать сообщение» в подменю «Функции», на экран выводится окно создания и отправки нового сообщения (рисунок 3.4). На нем находится формы для заполнения адресата, заголовка, выбора файла прикрепления, поле ввода сообщения.

При нажатии на кнопку Прочее на экран выводится окно прочих настроек отправления (рисунок 3.5), на котором расположена форма для добавления дополнительных заголовков.

Рисунок 3.4 - Окно создания и отправки сообщений

Рисунок 3.5 - Окно дополнительных настроек отправления

4. Описание программы

4.1 Описание компонентов

При создании данного программного средства было создано 4 формы:

Main основная форма.

Setup окно настройки программы.

MsgEditor окно создания и отправки сообщений.

MsgEdtAdv окно дополнительных настроек отправления.

Для создания основной формы были использованы следующие компоненты:

ActionList, MainMenu позволяет создавать верхнее меню.

IdAntiFreeze выносит синхронные операции в рабочий фоновый поток, позволяя в это время главному потоку обрабатывать сообщения.

ImageList это набор изображений одинаковых размеров, на которые есть возможность ссылаться по индексам, начиная с 0.

IdMessage- используется в комбинации с другими компонентами, чтобы должным образом расшифровать или кодировать сообщения.

TPanel панель для размещения различных видимых элементов

idPOP3 необходим для применения в приложениях протокола POP3(Post Office Protocol Version 3), т.е. для приема и менеджмента сообщений.

TSaveDialog вызывает окно сохранения файла.

TStatusBar необходим для отображения какой-либо онформации о работе программы.

TToolBar панель с пиктограммами

Для создания формы настроек были использованы следующие компоненты:

TButton позволяет выполнять какие-либо действия при нажатии кнопки;

TEdit используется для ввода значений;

TPageControl используется для создания вкладок;

TComboBox используется для создания выпадающего списка.

Для создания формы создания и отправки новых сообщений были использованы следующие компоненты:

IdMessage - используется в комбинации с другими компонентами, чтобы должным образом расшифровать или кодировать сообщения.

TOpenDialog вызывает окно открытия файла.

idSMTP - необходим для применения в приложениях протокола SMTP (Simple Mail Transfer Protocol), обеспечения поддержки аутентификации, MIME-кодирования и декодирования, а также для поддержки многобайтных символов;

TButton позволяет выполнять какие-либо действия при нажатии кнопки;

TEdit используется для ввода значений;

TComboBox используется для создания выпадающего списка.

Для создания формы дополнительных настроек отправления были использованы следующие компоненты:

TButton позволяет выполнять какие-либо действия при нажатии кнопки;

TEdit используется для ввода значений.

4.2 Описание процедур и функций

Для обработки событий на главной форме используются следующие функции:

procedure TfrmMain.ShowStatus(stStatus: string) - изменение статуса соединения с сервером;

procedure TfrmMain.ShowFileStatus - изменение статуса о наличии писем;

function TfrmMain.FindAttachment(stFilename: string): integer - проверка на наличие вложений в письме;

procedure TfrmMain.Button1Click(Sender: TObject)- сохранение вложения в письме ;

procedure TfrmMain.RetrievePOPHeaders(inMsgCount: Integer) - загрузка заголовков сообщений с сервера;

procedure TfrmMain.CheckMailExecute(Sender: TObject) проверка на наличие сообщений на сервере;

procedure TfrmMain.RetrieveExecute(Sender: TObject) - загрузка сообщений с севрера;

procedure TfrmMain.DeleteExecute(Sender: TObject) - удаление сообщений с сервера;

procedure TfrmMain.SetupExecute(Sender: TObject) - вызов окна настроек;

procedure TfrmMain.Exit1Click(Sender: TObject) - кнопка выхода;

procedure TfrmMain.ReadConfiguration - считывание настроек из файла;

procedure TfrmMain.Selectfromdeletion1Click(Sender: TObject) - кнопка, чтобы пометить на удаление;

Для обработки событий на форме создания и отправки сообщений используются следующие функции:

procedure TfrmMessageEditor.bbtnOkClick(Sender: TObject) - отправляет сообщение;

procedure TfrmMessageEditor.bbtnAdvancedClick(Sender: TObject) - открывает окно дополнительных настроек отправления;

procedure TfrmMessageEditor.btnAttachmentClick(Sender: TObject) - открывает диалог открытия файла прикрепления;

procedure TfrmMessageEditor.ResetAttachmentListView - обновляет список вложений;

procedure TfrmMessageEditor.btnTextClick(Sender: TObject) - кнопка закрытия окна;

Для обработки событий на форме настройки соединения используются следующие функции:

procedure TfmSetup.BitBtn1Click(Sender: TObject) - сохраняет настройки в файл.

5. Тестирование

Тестирование программы - это испытание, проверка правильности работы программы в целом, либо её составной части. Тестирование устанавливает факт наличия ошибок, а отладка выясняет её причину. Как бы ни была тщательно отлажена программа, она, скорее всего все равно содержит неявные ошибки, и решающим этапом, устанавливающим ее пригодность для работы, является контроль программы по результатам ее выполнения на системе тестов.

Основные принципы организации тестирования:

Необходимой частью каждого теста должно являться описание ожидаемых результатов работы программы;

Программе не должна тестироваться её автором;

Организация - разработчик программного обеспечения не должна "единолично " его тестировать;

Необходимо подбирать тесты не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);

При анализе результатов каждого теста необходимо проверять, не делает ли программа того, что она не должна делать;

"Принцип скопления ошибок" - вероятность наличия не обнаруженных ошибок в некоторой части программы прямо пропорциональна числу ошибок, уже обнаруженных в этой части.

Процесс тестирования состоит из трёх этапов:

Проектирование тестов.

Исполнение тестов.

Анализ полученных результатов.

Существует два основных вида тестирования: функциональное и структурное. При функциональном тестировании программа рассматривается как "черный ящик" (то есть ее текст не используется). Происходит проверка соответствия поведения программы ее внешней спецификации. Критерием полноты тестирования в этом случае является перебор всех возможных значений входных данных, что невыполнимо. Поскольку исчерпывающее функциональное тестирование невозможно, речь может идти о разработки методов, позволяющих подбирать тесты не "вслепую", а с большой вероятностью обнаружения ошибок в программе.

При структурном тестировании программа рассматривается как "белый ящик" (т.е. ее текст открыт для пользования). Происходит проверка логики программы. Полным тестированием в этом случае будет такое, которое приведет к перебору всех возможных путей на графе передач управления программы (ее управляющем графе). Если ограничиться перебором только линейных не зависимых путей, то и в этом случае исчерпывающее структурное тестирование практически невозможно, т. к. неясно, как подбирать тесты, чтобы обеспечить "покрытие" всех таких путей. Поэтому при структурном тестировании необходимо использовать другие критерии его полноты, позволяющие достаточно просто контролировать их выполнение, но не дающие гарантии полной проверки логики программы. Но даже если предположить, что удалось достичь полного структурного тестирования некоторой программы, в ней тем не менее могут содержаться ошибки, т.к.

программа может не соответствовать своей внешней спецификации, что в частности, может привести к тому, что в ее управляющем графе окажутся пропущенными некоторые необходимые пути;

не будут обнаружены ошибки, появление которых зависит от обрабатываемых данных (т.е. на одних исходных данных программа работает правильно, а на других - с ошибкой).

Таким образом, ни структурное, ни функциональное тестирование не может быть исчерпывающим. Чтобы увеличить процент обнаружения ошибок при проведении функционального и структурного тестирования используют средства автоматизации тестирования.

При возникновении ситуации, в которой невозможно дальнейшее использование программы, следует ее перезапустить и начать заново вычисление.

В ходе тестирования программы ошибок выявлено не было.

6. Описание применения

6.1 Способ установки программы

Для установки программного средства «Решение систем линейных уравнений» достаточно скопировать файлы с расширением .exe в любую папку на компьютере. Для полноценного функционирования программного средства желательно его применение на компьютерах с операционной системой Windows XP.

6.2 Руководство пользователя

Данный программный продукт имеет очень широкую сферу применения и может использоваться любым пользователем сети Интернет. Программа имеет очень простой интерфейс, что гарантирует очень низкий порог «вхождения» в программу.

Заключение

В ходе выполнения поставленных задач, были определены входные данные, такие как адрес почтового сервера, имя пользователя и пароль, а также текст письма полученный с сервера, выходные данные, такие как текст письма, выведенный на экран либо отправленный на почтовый сервер.

Так же мы выбрали инструменты разработки, и системные требования программного продукта.

Данное программное средство было написано с использованием компонентов для работы с почтовыми протоколами и среды разработки программных продуктов - Embarcadero Delphi XE7, имеющей широкий ряд возможностей для работы с сетью интернет.

Обработка данных производилась при помощи компонентов NMPOP3, idSMPT, idMessage обеспечивающих работу с почтовыми протоколами.

В результате было создано программное средство «E-mail клиент», которое может быть использовано практически любым пользователем ПК.

Программа интуитивно проста и понятна для любого пользователя: для ее использования не нужно специального обучения, при этом она выполняет все функции, необходимые для нормальной работы.

Список используемых источников

1. Осипов, Д.Л. Delphi. Программирование для Windows, OS X, iOS и Android/ Д. Л. Осипов - Санкт-Петербург: БХВ-Петербург, 2014. - 464 с.

2. Шкрыль, А. Разработка клиент-серверных приложений в Delphi/Андрей Шкрыль - Санкт-Петербург: БХВ-Петербург, 2006. - 480 с.

3. Фленов, М. Библия Delphi/Михаил Фленов - Санкт-Петербург: БХВ-Петербург, 2011. - 686 с.

4. Фленов, М. Программирование в Delphi глазами хакера/Михаил Фленов - Санкт-Петербург: БХВ-Петербург, 2003. - 162 с.

5. Бобровский, С. Delphi 7. Учебный курс/С. Бобровский- Санкт-Петербург: Питер, 2004. - 736 с.

6. Кэнту, М. Delphi 7 Mastering (Delphi 7 для профессионалов) /Марко Кэнту - Санкт-Петербург: Питер, 2004. - 1104 с.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.