Описание проектного решения




Содержание

 

Введение

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

Судовая система - Обзор

Описание проектного решения

Анализ проекта

Взаимодействие объектов

3. Пути реализации критериев качества

3.1 Среда разработки

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

4.1 Руководство по программе-серверу

Назначение

Графическое отображение показаний датчиков

Вычисление минимакса

Ведение отчета

Соединение с датчиками

Команды главного меню

Ведение отчета

Временные интервалы

4.2 Руководство по программам-клиентам

Назначение

Соединение с сервером

Настройка

Ведение отчета

Заключение

Приложение А - Текст программы


Введение

 

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

Данная информационная система призвана систематизировать постоянно используемую информацию.

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

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

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

 

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

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

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

Системные требования для работы системы: для компьютера-сервера - наличие IBM PC совместимого компьютера, с операционной системой Windows 9х/2000, наличие сетевой карты в том случае, если датчики расположены на удаленных машинах, в случае наличия локальных датчиков необходимо наличие на компьютере-сервере интерфейсной части для подключения датчиков; для удаленных датчиков системные требования сохраняются.

Для наиболее быстрого, точного и полного исследования измерительная система должна состоять из нескольких комплексов, основными из которых являются метеокомплекc, навигационный комплекс, буксируемый комплекс, измеритель течений, АБС и многое другие. Все эти комплексы должны осуществлять непосредственный обмен между собой. Вся полученная информация должна накапливаться на сервере с распределенной базой данных. Все комплексы должны быть объединены между собой в локальную вычислительную сеть.

Судовая система. Обзор

 

Любая судовая ИИС состоит из нескольких комплексов, представляющих собой сложные приборы для изменения параметров водной среды.

Каждый элемент такой системы представляет собой ПЭВМ, оснащенную специфическим ПО и системой датчиков. Измерения поступают на блок датчиков, преобразовываются в цифровую форму и затем отображаются на экране дисплея комплекса. Для того, чтобы информация комплекса стала доступной другим комплексам, как внутри корабля, так и за его пределами - организуется специальная база данных с возможностью выхода в Интернет. Благодаря такому способу организации, БД существенно упрощается доступ к исследованиям, проведенными другими судами в разные годы. Каждая система оснащается комплексом GPS — комплексом спутниковой навигации, позволяющим определить местоположение объекта в любой точке земного шара с точностью до 5 метров. Буксируемый комплекс используется для определения солености, прозрачности и т п. параметров водной среды. Автономный буйковый комплекс служит для длительного измерения в автономном режиме без участия судна.


Описание проектного решения

Анализ проекта

 

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

скорость и направление ветра;

- температура воды;

- барометрическое давление;

- влажность воздуха.

Система также должна обеспечивать следующие дополнительные функции:

- снятие показаний через заданные промежутки времени;

- вывод результатов на экран;

- сохранение измерений в файле;

- вывод данных, усредненных по заданному промежутку времени;

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

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

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

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

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

Используются компьютера-сервера с одним процессором i486 и интерфейсная часть, в роли которой может выступать либо сетевая карта (для удаленных датчиков), либо порты для подключения контроллеров датчиков (порты СОМ или LТР).

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

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

Направление ветра измеряется с точностью до одного из 8 направлений.

Ввод команд пользователем осуществляется с помощью интерфейса программы - сервера.

Экраном служит обычный дисплей.

Встроенные таймеры и датчики посылают результаты измерений на компьютер-сервер через заданный промежуток времени.

На рис. 2.1 приведена диаграмма, иллюстрирующая состав аппаратной части системы.

 

 

Рисунок 2.1 — Аппаратное обеспечение системы мониторинга погоды.

 

На этом этапе анализа абстрагируемся от аппаратной части, чтобы сконцентрировать внимание на программной части системы. Одной из особенностей объектно-ориентированного подхода является стремление говорить на языке проблемной области, что облегчает проведение параллелей между программными абстракциями и ключевыми понятиями исходной задачи. Изменения в аппаратной части оказывают влияние лишь на некоторые нижние уровни системы.

Имеет смысл создать простой класс TemperatureSensor (температурный датчик) служит аналогом аппаратного температурного датчика нашей системы. Изолированный анализ поведения этого класса дает в первом приближении следующий результат:

Имя:

TemperatureSensor

Ответственность:

Поддержание информации о текущей температуре. Операции:

CurrentTemperature – текущая температура

SetLowTemperature - установка минимальной температуры

setHighTemperature — установка максимальной температуры Атрибуты:

temperature - температура

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

Можно задать закономерный вопрос: зачем мы создается специальный класс для данной абстракции, когда в требованиях к системе ясно сказано, что температурный датчик может быть только один? Это верно, но в целях обеспечения возможности повторного использования абстракции мы все же выделяем ее в отдельный класс. На самом деле количество температурных датчиков не должно влиять на архитектуру нашей системы, и, выделяя отдельный класс TemperatureSensor, мы открываем возможность его использования в других программах подобного типа.

Абстракция для датчика барометрического давления может выглядеть следующим образом:

Имя:

Pressuresensor

Ответственность:

Поддержание информации о текущем барометрическом давлении. Операции:

currentPressure – текущее давление

setLowPressure – установка минимального давления

setHighPressure - установка максимального давления Атриуты:

pressure - давление

Абстракцию, соответствующую датчику влажности, можно определить следующим образом:

Имя:

Humiditysensore

Ответственность:

Поддержание информации о текущей влажности, выраженной в процентах от 0% до 100%.

Операции:

CurretnHumidity - текущая влажность

SetLowHumidity - установка минимальной влажности

SetHighHumidity - установка максимальной влажности Атрибуты:

Humidity - влажность

Абстракция для датчика скорости ветра может выглядеть следующим образом;

Имя:

WindSpeedSensore

Ответственность:

Поддержание информации о текущей скорости ветра. Операции:

CurrentSpeed - текущая скорость

SetLowSpeed - установка минимальной скорости

SetHighSpeed - установка максимальной скорости Атрибуты:

speed - скорость

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

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

Имя:

WindDirectionSensor

Ответственность:

Поддержание информации о текущем направлении ветра, указываемом как точка на розе ветров. Операции:

currentDirection - текущее направление Атрибуты:

direction - направление

Чтобы объединить все классы, относящиеся к датчикам, в одну иерархию, имеет смысл создать еще один абстрактный базовый класс TDatchic, который является непосредственным суперклассом для всех классов. Рис. 2.3 иллюстрирует полную иерархию классов датчиков.

 

Рис.2.3 – Иерархия классов датчиков


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

Дня этого имеет смысл создать простой класс WindIndicator для графического представления направления ветра. Изолированный анализ поведения этого класса дает в первом приближении следующий результат:

Имя:

Ответственность:

Графическое представления направления ветра. Операции:

Update - отображение текущего направления ветра.

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

Имя:

TemperatureIndicator

Ответственность:

Графическое представления величины температуры.

Update — отображение текущей температуры.

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

Имя:

PressureIndicator

Ответственность:

Графическое представления величины атмосферного давления. Операции:

Update - отображение текущего значения атмосферного давления.

Абстракция для индикатора влажности воздуха HumidityIndicator может выглядеть следующим образом:

Имя:

HumidityIndicator

Ответственноcть:

Графическое представления величины влажности воздуха. Операции:

Update - отображение текущего значения влажности воздуха.

Чтобы объединить все классы, относящиеся к индикаторам, в одну иерархию, имеет смысл создать еще один абстрактный базовый класс Indicator, который является непосредственным суперклассом для всех классов. Рисунок 2.4 иллюстрирует иерархию классов индикаторов.

 

Рисунок 2.4 - Иерархия классов индикаторов

 

Взаимодействие объектов

 

В системе имеется глобальный объект-сервер и четыре объекта-датчика. Их взаимодействие заключается в следующем. Датчик отсылает показания на сервер в несколько этапов. Сначала полученное значение записывает в динамический список, затем по истечении заданного момента времени он берет первое значение из очереди и суммирует его с предыдущим. Потом проверяется заданное число на осреднение значения. Если мы накопили это число, то отсылается усредненное число, если же нет, то отсылается полученное значение. После вышеперечисленных действий значение из очереди удаляется. Очередь была введена затем, что интервал времени считывания значения, и его отсылки на сервер может не совпадать.

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

Взаимодействие сервера с датчиками можно представить схемой, представленной на Рис.2.5.

 

Рис.2.5 — Схема взаимодействия объектов в системе

 

Цикл жизни датчика можно представить схемой представленной на рис. 2.6.

 

Рисунок 2.6 — Схема жизненного цикла датчика




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: