Алгоритми І методи автоматизованої побудови об’єктних моделей




Скачати 116.96 Kb.
НазваАлгоритми І методи автоматизованої побудови об’єктних моделей
Сторінка1/2
Дата29.07.2013
Розмір116.96 Kb.
ТипДокументы
nauch.com.ua > География > Документы
  1   2


УДК 681.3.068

В.В. Гулаков, Т.В. Ковалюк

Алгоритми і методи автоматизованої побудови об’єктних моделей

Вступ


Парадигма об’єктно-орієнтованого підходу спрощує процес розробки складних програмних систем. Такі системи легше розуміти, легше підтримувати та змінювати.

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

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

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

Шаблони проектування – це елегантні й прості рішення типових задач, що виникають в процесі розробки системи. Це ідеї, які кожна людина розуміє по своєму. Зрозуміти для чого потрібен той чи інший шаблон проектування – це не складна задача. А от правильно застосувати його – на порядок складніше.

У цій роботі здійснена спроба підійти з формального боку до застосування шаблонів проектування. Її мета – розробити методологію автоматизованої генерації об’єктно-орієнтованих моделей та практична реалізація цієї методології.

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

У цій статті набули розвитку ідея, описані раніше автором у статті [2].
^

Математична модель задачі


Формалізуємо поставлену задачу. Розроблюється мова L, яка дозволяє описати об’єктно-орієнтовану модель. Для того, щоб спрости етап розбору вхідних даних, для визначення мови L використовується контекстно-вільна граматика G:



()

Як відомо, контекстно-вільну граматику можна подати як сукупність чотирьох об’єктів [6]:



()

де N – скінченна множина нетермінальних символів мови;

T - скінченна множина термінальних символів мови;

P – скінченна множина продукцій

S – початковий символ граматики із множини нетеміманльних символів N.

Тепер розглянемо етап семантичного аналізу.

Здамо множину допустимих ідентифікаторів I, до якої входять ланцюжки із символів латинського алфавіту та цифр, довжина яких не перевищує 255 символів. Перший символ у ланцюжку обов’язково повинен бути літерою.

На першому етапі семантичного аналізу відбувається побудова семантичного графа S:



()

де V – множина вершин графа,

E – множина ребер графа,

– функція інцидентності.

Для кожної вершини графа визначимо функції:



()



()

() ставить у відповідність кожній вершині графа унікальний ідентифікатор.

() задає тип вершини. Кожна вершина може описувати або сутність предметного середовища, або ж операцію чи процес, що протікає в предметному середовищі. Відповідно до типу вершини, виділимо два підкласи множини вершин:



()

Визначимо функцію EdgeType для ребер графа:



()



()

() задає для кожного ребра графа тип. Як видно, множина типів ребер () включає в себе значну кількість елементів. Розіб’ємо множину ребер на підкласи за типом:





()

Тип ребра накладає певні обмеження на тип вершин, що інцидентні з ним:



()



()



()

Функції () і () визначають для кожного типу відношень те, до яких типів вершин відношення даного типу може бути застосовано. Булева функція () приймає на вхід відношення і повертає логічну істину, якщо відношення пройшло валідацію. Якщо () повертає хибу, то відношення задано некоректно і повинно бути виключеним із графа.

Розбір відбувається за класичною схемою синтаксично-керованої трансляції (syntax-directed translation) [1]. Таким чином синтаксичний аналізатор - це немов рушійна сила транслятора, яка за необхідності викликає лексичний аналізатор, щоб отримати наступний нетермінал, та викликає семантичні процедури нетерміналів, скеровуючи таким чином семантичний аналіз.

Зокрема у нашому випадку семантичні процедури доповнюють семантичний граф () новими вершинами та ребрами. Кожне ребро перед додаванням у граф проходить валідацію згідно з ().

Після того, як семантичний граф побудовано, відбувається побудова об’єктно-орієнтованої моделі. Нехай М – множина усіх об’єктно-орієнтованих моделей. Тоді на виході необхідно скомпонувати модель Model, яку можна описати як:



()

Тобто модель – це множина класів. Кожен клас може бути представлений у вигляді впорядкованої трійки:



()

де – ім’я класу із множини допустимих ідентифікаторів I;

– множина атрибутів класу;

– множина методів класу.

Визначимо атрибут класу як двійку:





()

де Name – ім’я атрибуту із множини допустимих ідентифікаторів I;

Type – тип даних атрибута, тобто один із класів, які описані в рамках моделі Model.

Метод класу представимо у вигляді трійки:



()

де – ім’я метода із множини допустимих ідентифікаторів I;

– тип даних значення, яке повертає метод;

– множина аргументів метода, кожен з яких представлений парою, до складу якої входять ім’я атрибута та його тип даних.

Розглянемо алгоритм, за яким на базі семантичного графу будується об’єктно-орієнтована модель. Для початку визначимо допоміжні функції й відношення.



()

Функція () приймає на вхід дугу семантичного графа та модель і повертає на виході модель , доповнену додатковими класами, методами, атрибутами та відношеннями між класами.

На множині EdgeTypes визначимо відношення часткового порядку “≤”, яке дозволить визначити послідовність, в якій необхідно опрацьовувати ребра, що відходять від даної вершини.

Наведемо власне алгоритм побудови об’єктно-орієнтованої моделі.

  1. Побудувати множину ():



    ()

  2. Для кожної вершини

    1. Отримати усі ребра , які суміжні з вершиною

    2. Побудувати частково впорядковану множину

    3. Для кожного ребра із множини


  1   2

Схожі:

Алгоритми І методи автоматизованої побудови об’єктних моделей iconМетоди та алгоритми автоматизованої побудови об’єктних моделей предметного середовища
Т. В. Ковалюк, к т н., доцент кафедри автоматизованих систем обробки інформації та управління нтуу «кпі»
Алгоритми І методи автоматизованої побудови об’єктних моделей iconМетоди та алгоритми автоматизованої побудови об’єктних моделей предметного середовища
Т. В. Ковалюк, к т н., доцент кафедри автоматизованих систем обробки інформації та управління нтуу «кпі»
Алгоритми І методи автоматизованої побудови об’єктних моделей iconМетоди та алгоритми автоматизованої побудови об’єктних моделей предметного середовища
Рішення проблеми полягає в застосуванні шаблонів об'єктів із стереотипними функціями І взаємодіями. Шаблони проектування – це елегантні...
Алгоритми І методи автоматизованої побудови об’єктних моделей iconРозд І л 4 методика побудови математичних моделей часових рядів
У наведеному вигляді ця методика також може бути успішно застосована до побудови моделей динаміки технічних систем І технологічних...
Алгоритми І методи автоматизованої побудови об’єктних моделей icon1. Загальне визначення дисциплін програмної інженерії
Верифікація І валідація програм. Підхід до валідації сценарію вимог. Верифікація об'єктних моделей. Підхід до верифікації композиції...
Алгоритми І методи автоматизованої побудови об’єктних моделей iconПрограма курсу тема Фінансово-кредитна інформація як об’єкт автоматизованої обробки
Склад І зміст банківської та фінансової інформації — продукту автоматизованої обробки даних
Алгоритми І методи автоматизованої побудови об’єктних моделей iconЕкономіко – математичне моделювання Зміст
Необхідність побудови математичних моделей зовнішньополітичної поведінки на єдиній методологічній основі
Алгоритми І методи автоматизованої побудови об’єктних моделей icon7 Організаційні принципи побудови сзі
У розділі розглянуто основні принципи та методи побудови сзі, деякі аспекти захисту на різних стадіях створення ас та аналізу захищеності...
Алгоритми І методи автоматизованої побудови об’єктних моделей iconКласифікація задач нечіткого програмування
...
Алгоритми І методи автоматизованої побудови об’єктних моделей iconУрок 20 Тема: Алгоритми
Розширити й поглибити поняття “алгоритм”. Сформувати поняття “виконавець алгоритму”. Учити складати алгоритми
Додайте кнопку на своєму сайті:
Школьные материалы


При копіюванні матеріалу обов'язкове зазначення активного посилання © 2013
звернутися до адміністрації
nauch.com.ua
Головна сторінка