sinij.veciy.ru

24.08.17
[1]
переходы:30

скачать файл
Рисунок 3.1 - Структурна схема програмної моделі субмодуля

69


3 РОЗРОБКА ПРОГРАМНОЇ МОДЕЛІ СУБМОДУЛЯ



3.1 Розробка структурної схеми програмної моделі субмодуля


Програмна модель субмодуля складається з двух частин:

  • модуля GPS - приймача;

  • модуля візуалізації.

Програмна реалізація GPS-приймача [додаток В] здійснює функції зв’язку з навігаційними супутниками, функції приймання навігаційної інформації, обчислювання координат супутників, обчислювання координат користувача та функції передачі координат до модуля візуалізації.

Модуль візуалізації приймає від блоку GPS-приймача координати користувача та помічає на карті положення рухливого об’єкта.

Програмні модулі, що реалізують функції GPS-приймача і блоку візуалізації позиції об'єкта, що рухається, можуть працювати або на одній робочій станції (РС), або на різних РС. Робота на різних РС дозволяє продемонструвати функціонування блоку сполучення програми візуалізації із GPS-приймачем.

Принцип роботи:

  1. Комп'ютер, на якому працює модуль GPS-приймача, надалі РС1, буде аналізувати навігаційну інформацію, яка зберігається в XML-базі даних супутників, обчислювати ефемериди навігаційних супутників, обчислювати координати споживача і передавати їх завдяки протоколу TCP/IP на РС2. Початкові координати будуть відомі заздалегідь. Даним підходом реалізуються функції GPS-супутників та блоку узгодження приймача і апаратури користувача.

  2. РС2 буде приймати дані, що надходять від РС1 і обробляти їх. Дані, що виходять від РС1, являють собою пакет координат об'єкта, що рухається, у геліоцентричній системі. Координати, що надійшли, перетворюються у систему Гаусса-Крюгера та попадають у блоки візуалізації. Користувальницький інтерфейс здійснює зв'язок із зовнішнім світом, у тому числі і з користувачем. Завдяки монітору РС2, користувач зможе просліджувати положення об'єкта.

3) Для того, щоб GPS-приймач правильно визначав координати, і система візуалізації правильно реагувала на зміну координат використовується спільна система синхронізації, розташована на РС1 (системний таймер комп'ютера). У даній демонстраційній роботі часом передачі даних між машинами, грубо говорячи, можна зневажити.


Структурна схема програмної моделі субмодуля збудована у відповідності із рисунком 3.1

До складу структурної схеми GPS-приймача входять:

  • модуль зв’язку із навігаційними супутниками;

  • модуль обробки навігаційної інформації;

  • модуль рограхунку координат об’єкта;

  • модуль зв’язку GPS-приймача з модулем візуалізації.

До складу структурної схеми програми візуалізації входять:

  • модуль зв’язку програми візуалізації з програмою GPS-приймача;

  • модуль приймання координат рухливого об’єкта;

  • модуль перетворення координат;

  • модуль зв’язку з системою відображення.































Рисунок 3.1 - Структурна схема програмної моделі субмодуля







Структура програмної моделі субмодуля описується завдяки уніфікованої мови моделювання UML. Уніфікована мова моделювання (UML - Unified Modeling Language) є стандартним інструментом для створення документованих каркасів ("креслень") програмного забезпечення. За допомогою UML можна візуалізувати, специфікувати, конструювати і документувати процес розробки програмних систем. UML розроблений таким чином, щоб задовольняти потреби при моделюванні будь-яких систем: від інформаційних систем масштабу підприємства до розподілених Web-додатків і навіть убудованих систем реального часу. Це виразна мова, що дозволяє розглянути систему з усіх точок зору, що мають відношення до її розробки і наступного розгортання. Незважаючи на достаток виразних можливостей, ця мова проста для розуміння і використання [13].

Незважаючи на свої достоїнства, UML - це усього лише мова. Він є однієї зі складових програмного забезпечення, і не більш цього. Хоча UML не залежить від реальності, яку треба моделювати, найкраще застосовувати його, коли процес моделювання заснований на розгляді текстового опису процесів, що відбуваються в предметній області, є ітеративним і покрокової, а сама система має чітко виражену архітектуру. У такий спосіб він ідеально підходить для Уніфікованого процесу розробки.

UML - це мова для візуалізації, спеціфікування, конструювання і документування артефактів програмних систем. Артефакт (artifact) - діаграма, документ, модель, закон і т.д. - щось, що описує визначене поняття предметної області.
Як і будь-яка мова, UML складається зі словника і правил, що дозволяють комбінувати вхідні в нього слова й одержувати осмислені конструкції [13]. У мові моделювання словник і правила ориентовані на концептуальне і фізичне представлення системи. Мова моделювання, подібна UML, є стандартним засобом для складання "креслень" програмного забезпечення. Моделювання необхідне для розуміння системи. Звичайно, при цьому єдиній моделі ніколи не буває досить. Навпаки, для розуміння практично будь-якої нетривіальної системи приходиться розробляти велика кількість взаємозалежних моделей. У застосуванні до програмних систем це означає, що необхідно мову, за допомогою якої можна з різних точок зору описати представлення архітектури системи протягом циклу її розробки. Словник і правила такої мови, як UML, пояснюють, як створювати і читати добре визначені моделі, але нічого не повідомляють, які моделі й у яких випадках потрібно створювати. Ця задача всього процесу розробки програмного забезпечення. Організація такого процесу справа сугубо індивідуальна в рамках різних програмістських компаній, фірм і окремих груп розроблювачів програмного забезпечення. Але добре організований процес повинний показати, які вимагаються артефакти, які ресурси необхідні для їхнього створення, як можна використовувати ці артефакти для того, щоб оцінити виконану роботу і керувати проектом у цілому.

UML діаграма класів блоку візуалізації відображена у відповідності із рисунками 3.2


Рисунок 3.2 - UML-діаграма класів програми візуалізації



UML діаграма класів блоку приймача відображена у відповідності із рисунками 3.3




Рисунок 3.3 - UML-діаграма класів програми GPS-приймач






3.2 Розробка алгоритму функціонування програмної моделі


Словесне описання алгоритму функціонування програмної моделі:

  1. Програма GPS-приймач:

а) завантажує базу даних навігаційних супутників;

б) завантажує базу даних відстаней до супутників;

в) за допомогою спеціального інтерфейсу, настроює TCP з’єднання (встановлює ім’я комп’ютера, на якому працює програма візуалізації, та номер порта програми візуалізації) з програмою візуалізації;

г) Розпочинає моделювання;

д) читає з баз даних пакет навігаційної інформації про спутникі та відстані до них;

є) обчислює ефемериди трьох супутників;

ж) по псевдодальномірному методу обчислює координати споживача;

з) передає координати споживача до програми візуалізації;

і) продовжує моделювання визначений час;

ї) зачиняє з’єднання з програмою візуалізації.

Алгоритм роботи програми GPS-приймача розроблен у відповідності із рисунком 3.4.

2) Програма візуалізації:

а) відкриває сокет зв’язку та чекає відгука від програми GPS-приймача;

б) приймає координати користувача від GPS-приймача;

в) перетворює координати у систему Гаусса-Крюгера;

г) выдображує положення об’єкта на моніторі;

д) продовжує моделювання доки не прийде пакет завершення.

Алгоритм роботи програми візуалізації розроблен у відповідності із рисунком 3.5.































Рисунок 3.4 - Алгоритм роботи програми GPS-приймача











































Рисунок 3.5 - Алгоритм функціонування програми візуалізації


Останнім часом С и С++ є найбільше використовуваними мовами для розробки комерційних і бізнес додатків. Ці мови влаштовують багатьох розроблювачів, але в дійсності не забезпечують належної продуктивності розробки. Наприклад, процес написання додатка на С++ найчастіше займає значно більше часу, чим розробка еквівалентного додатка на Visual Basic. Зараз існують мови, які збільшують продуктивність розробки за рахунок втрати в гнучкості, яка так звична і необхідна програмістам на С/С++. Подібні рішення є дуже незручними для розроблювачів і найчастіше пропонують значно менші можливості. Ці мови також не орієнтовані на взаємодію із системами, що сьогодні з'являються, і дуже часто вони не відповідають існуючій практиці програмування для Web. Багато розроблювачів хотіли б використовувати сучасну мову, що дозволяля би писати, читати і супроводжувати програми з простотою Visual Basic і в той же час давала міць і гнучкість C++[15], забезпечувала доступ до усіх функціональних можливостей системи, взаємодіяла би з існуючими програмами і легко працювала з виникаючими Web стандартами.

З огляду на всі подібні побажання, Microsoft розробила нову мову - C#. До неї входить багато корисних особливостей - простота, об'єктна орієнтованість, типова захищеність, "зборка сміття", підтримка сумісності версій і багато чого іншого. Дані можливості дозволяють швидко і легко розробляти додатки, особливо COM+ додатки і Web сервіси. При створенні C#, його автори враховували досягнення багатьох інших мов програмування: C++, C, Java, SmallTalk, Delphi, Visual Basic і т.д. Треба помітити, через те, що C# розроблялася з чистого листа, у її авторів була можливість залишити в минулому всі незручні і неприємні особливості кожної з попередніх мов. У результаті вийшла дійсно проста, зручна і сучасна мова, яка за потужністю не уступає С++, але з істотно підвищеною продуктивністю розробок.

Через дуже зручний об’єктно-орієнтований дизайн, C# є гарним вибором для швидкого конструювання різних компонентів - від високорівневої бізнес логіки до системних додатків, що використовують низькорівневий код. Також слід зазначити, що C# є і Web орієнтованим - використовуючи прості конструкції мови деякі компоненти можуть бути легко перетворені у Web сервіси [14]., до яких можна буде звертатися з Internet за допомогою будь-якої мови на будь-якій операційній системі. Додаткові можливості і переваги перед іншими мовами приносить у C# використання нових Web технологій, таких як: XML (Extensible Markup Language)[16] і SOAP (Simple Object Access Protocol). Середовище розробки Web сервісов дозволяє програмісту дивитися на існуючі сьогодні Web додатки, як на рідні C# об'єкти, що дає можливість розроблювачам співвіднести наявні Web сервіси з їх пізнаннями в об’єктно-орієнтованому програмуванні.

Дуже часто можна простежити такий зв'язок - чим більше мова захищена і стійка до помилок, тим менше продуктивність програм, написаних на ній. До приклада розглянемо дві крайності - Assembler і Java. У першому випадку можна домогти фантастичної швидкості програми, але доведеться дуже довго змушувати її працювати правильно на іншому комп'ютері. У випадку ж з Java - одержується захищеність, незалежність від платформи, але, на жаль, швидкість програми дуже мала. У C++ співвідношення у швидкості і захищеності близько до бажаного результату, але практично завжди краще зазнати незначної втрати в продуктивності програми і придбати таку зручну особливість, як "зборка сміття", що не тільки звільняє від стомлюючого обов'язку керувати пам'яттю вручну, але і допомагає уникнути багатьох потенційних помилок у додатку. В дійсності незабаром "зборка сміття" та будь-які інші кроки до усунення потенційних помилок стануть відмітними рисами сучасної мови. У C# також існують характерні риси для обходу можливих помилок. Наприклад, крім згаданої вище "зборки сміття", усі перемінні автоматично ініціалізуються середовищем і мають типову захищеність, що дозволяє уникнути невизначених ситуацій у випадку, якщо програміст забуде ініціалізувати перемінну і зробить неприпустиме перетворення типів.

У C# є уніфікована система типів, тепер можна розглядати кожен тип як об'єкт. Незважаючи на те, використовується клас, структура, масив або збудований тип, можна звертатися до нього як до об'єкта. Об'єкти зібрані у простори імен (namespaces), які дозволяють програмно звертатися до чого-небудь. У C# вираження using дозволяє не писати щораз назва простору імен, коли використовується клас з нього. Наприклад, простір імен System містить кілька класів, у тому числі і Console. Важливою і відмітною від С++ особливістю C# є її простота. У C#, також як і в Visual Basic після кожного вираження case у блоці switch мається на увазі break. І більш не буде відбуватися дивних речей, якщо забули поставити break.

Сучасність C# виявляється й у нових кроках до полегшення процесу налагодження програми. Традиційним засобом для налагодження програм на стадії розробки в C++ є маркірування великих частин коду директивами #ifdef і т.д. У C#, використовуючи атрибути, орієнтовані на умовні слова, є можливість куди швидше писати відлагоджений код .

Враховуючи ці особливості, для реалізації алгоритмів функціонування моделі була обрана мова С#.


3.3 Розробка формату модельної бази даних


Враховуючи особливості мови програмування С#, на якій написані програмні модулі моделі, форматом баз даних був обраний XML(Extensible Markup Language). Це нова SGML-похідна мова розмітки документів, що дозволяє структурировати інформацію різного типу, використовуючи для цього довільний набір інструкцій. Розроблювачів Інтернет додатків, що намагаються на практиці використовувати нову технологію, можуть зацікавити конкретні питання, зв'язані з проблемами створення, обробки XML-документів, їхнього відображення на стороні клієнта[16].

Сьогодні XML може використовуватися в будь-яких додатках, яким потрібна структурована інформація - від складних геоінформаційних систем з гігантськими обсягами інформації до звичайних "однокомп'ютерних" програм, що використовують цю мову для опису службової інформації. При уважному погляді на навколишній інформаційний світ можна виділити безліч задач, зв'язаних зі створенням і обробкою структурованої інформації, для рішення яких може використовуватися XML:

1) У першу чергу, ця технологія може виявитися корисної для розроблювачів складних інформаційних систем, з великою кількістю додатків, зв'язаних потоками інформації всілякою структурою. У цьому випадку XML - документи виконують роль універсального формату для обміну інформацією між окремими компонентами великої програми.

2) XML є базовим стандартом для нової мови опису ресурсів, RDF, що дозволяє спростити багато роблем у Web, які зв'язані з пошуком потрібної інформації, забезпеченням контролю за вмістом мережних ресурсів, створення електронних бібліотек і т.д.

3) Мова XML дозволяє описувати дані довільного типу і використовується для представлення спеціалізованої інформації, наприклад хімічних, математичних, фізичних формул, медичних рецептів, нотних записів, і т.д. Це значить, що XML може служити могутнім доповненням до HTML для поширення в Web "нестандартної" інформації. Можливо, у найближчому майбутньому XML цілком замінить HTML, принаймні, перші спроби інтеграції цих двох мов уже робляться (специфікація XHTML).

4) XML-документи можуть використовуватися як проміжний формат даних у триланкових системах. Звичайно, схема взаємодії між серверами додатків і базами даних залежить від конкретної системи керування базами даних (СКБД) і діалекту SQL, використовуваного для доступу до даних. Якщо ж результати запиту будуть представлені в деякому універсальному текстовому форматі, то ланка СКБД стане "прозорою" для додатка. Крім того, сьогодні на розгляд W3C запропонована специфікація нової мови запитів до баз даних XQL, що у майбутньому може стати альтернативою SQL.

5) Інформація, що міститься в XML-документах, може змінюватися, передаватися на машину клієнта й обновлятися вроздріб. Розроблювальні специфікації XLink і Xpointer дозволють посилатися на окремі елементи документа, з обліком вкладеності і значень атрибутів.

6) Використання стильових таблиць (XSL) дозволяє забезпечити незалежне від конкретного відображення XML- документів.

7) XML може використовуватися в звичайних додатках для збереження й обробки структурованих даних у єдиному форматі.

XML-документ - це звичайний текстовий файл, у якому за допомогою спеціальних маркерів створюються елементи даних, послідовність і вкладеність яких визначає структуру документа і його зміст. Основним достоїнством XML документів є те, що при відносно простому способі створення й обробки (звичайний текст може редагуватися будь-яким тестовим процесором і оброблятися стандартними XML аналізаторами), вони дозволяють створювати структуровану інформацію, яку добре "розуміють" комп'ютери.

База даних навігаційних супутників:



3.4 Опис програмних модулів субмодуля


Як зазначалося вище, програмна модель субмодуля складається з двох частин: програми GPS-приймача та програми візуалізації.

Програма GPS-приймача вміщює до себе дев’ять модулів:

1) Form1.cs - головний модуль програми, який реалізує алгоритм функціонування GPS-приймача завдяки функцій:

  • public Form1() - конструктор класу Form1, який ініціалізує компоненти програми;

  • protected override void Dispose( bool disposing ) - функція завершення програми. Вона викликається коли до обробника повідомлень приходить повідомлення про завершення програми;

  • private void InitializeComponent() - функція початкової ініціалізації компонентів програми;

  • public void ToText() - функція запису параметрів до текстових полів елементів textBox;

  • public void mkoord() - функція обчислення координат і елементів матриці;

  • private void ConnectFalse() - функція викликається, якщо зв’язок з програмою візуалізації загубився;

  • private void updateTimer(object sender, System.EventArgs e) - функція відновлення таймера;

  1. CPU.cs - блок обчислювача. Тут здійснюється обробка навігаційної інформації, обчислення ефемерид супутників, координат користувача:

  • public CPU() - конструктор класу;

  • public void make_koord() - функція обчислення координат споживача;

  • public double determinant(double[] m) - функція обчислення детермінанту;

  • public void creatematrix(int i,int time) - функція формування матриці для обчислення координат користувача;

  1. GPS-Satellite.cs - блок навігаційних супутників:

  • public GPS_Satellite() - конструктор класу;

  • public void send_packet(SInformation Send,int i)- функція передачи інформації до обробки;

  • public void receive_packet(int i) - функція приймання інформації з навігаційного супутника;

  • public void next_time() - функція збільшення часу моделювання;

  • public void openfileS(string filename) - функція відкриття супутникової бази даних;

  • public void openfileD(string filename) - функція відкриття бази даних відстаней до супутників;

  • public void ToRreg() - функція запису до регістрів приймача;

  1. RRegister.cs - блок регістрів приймача;

  2. LibWrap.cs - блок підключення дінамічної бібліотеки Kernel32.dll;

  3. SInformation.cs - блок відправлення інформації до програми візуалізації:

  • public SInformation() - конструктор класу;

  • public void tovisual(int i) - функція запису до бази даних результатів;

  1. SystemTime.cs - модуль системного таймера;

  2. TCPLink.cs - модуль зв'язку по протоколу TCP з програмою візуалізації:

  • public TCPLink() - конструктор класу;

  • public void OpenConnection(string NameServer,string NumPort) - функція відктиття з'єднання;

  • public void Sending(double x,double y,double z) - функція відсилання інформації до програми візуалізації;

  • public void CloseConnection() - функція закриття з'єднання;

  1. XML_Link.cs - блок баз даних:

  • public XML_Link(string filename) - конструктор класу;

  • public void openfile() - функція відкриття бази даних;

  • public void savefile() - функція запису до бази даних.


Програма візуалізації вміщює до себе чотири модулі:

  1. Form1.cs - головний модуль програми, який реалізує алгоритм функціонування програми візуалізації:

  • public Form1() - конструктор класу Form1, який ініціалізує компоненти програми;

  • protected override void Dispose( bool disposing ) - функція завершення програми. Вона викликається коли до обробника повідомлень приходить повідомлення про завершення програми;

  • private void InitializeComponent() - функція початкової ініціалізації компонентів програми;

  • private void updateTimer(object sender, System.EventArgs e) - функція відновлення таймера;

  • static void Main() - головна функція;

  • public void viewobject() - функція відображення об’єкту;

  • private void Onpaint(object sender, System.Windows.Forms.PaintEventArgs e)- функція відновлення екрану. У неї рефлізується перетворення Гаусса-Крюгера;

  1. LibWrap.cs - блок підключення дінамічної бібліотеки Kernel32.dll;

  2. SystemTime.cs - модуль системного таймера;

4) TCPLink.cs - модуль зв'язку по протоколу TCP з програмою GPS-приймача:

  • public TCPLink() - конструктор класу;

  • public void acceptTCP() - функція встановлення з'єднання;

  • public void Receiving() - функція приймання інформації до програми візуалізації.


3.5 Результати моделювання


Моделювання програмної моделі GPS-субмодуля здійснювалось в операційній системі Windows 2000 на платформі NET. Програмні складові запускалися як на однім комп’ютері, так і на різних. Порт програми візуалізації дорівнює 10000. Для з’єднання програми GPS-приймача з програмою візуалізації через мережу треба вказати ім’я комп’ютера, на якому завантажена програма візуалізації, її порт (10000) і запустити процес моделювання. Результати експерименту приведені у відповідності із рисунком 3.6 і додатком Е.









скачать файл | источник
просмотреть