ПРОБЛЕМЫ УПРАВЛЕНИЯ 4/2005

Информационные технологии в управлении

< индекс---содержание № 4---след. статья в № 4---след. в рубрике > 

УДК 681.3

ПОНЯТИЙНЫЙ АНАЛИЗ И КОНТЕКСТНАЯ ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ

В.С. Выхованец(1), В.Я. Иосенкин(2)

(1)Институт проблем управления им. В.А. Трапезникова, г. Москва;

(2)Приднестровский государственный университет им. Т.Г. Шевченко, г. Тирасполь

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

ВВЕДЕНИЕ

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

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

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

В структурном анализе и проектировании применяются различные модели, описывающие функциональную структуру системы (модель SADT) [1], последовательность выполняемых действий (модель IDEF3) [2], передачу данных между функциональными процессами (диаграммы потоков данных DFD) [3], отношения между данными (модель “сущность – связь” или ERM) [4].

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

На смену структурному анализу и как естественное его развитие пришла методология объектно ориентированного анализа и одноименная технология программирования. Объектно ориентированный анализ необходим для создания объектной модели предметной области. Основные принципы объектно ориентированной технологии (децентрализация, контракты, самодостаточность, классификация, бесшовность) [5] реализуются методами абстрагирования, инкапсуляции и полиморфизма при структурной декомпозиции предметной области [6]. При этом используются такие понятия как объект, класс, атрибут, метод, интерфейс и др.

Формальная спецификация результатов объектно ориентированного анализа осуществляется на языке моделирования UML (Unified Modeling Language) [7], который содержит графические и языковые средства для определения, представления, проектирования и документирования результатов анализа предметной области. Язык поддерживает стандартный набор декомпозиционных схем, реализуемых в виде всевозможных диаграмм и нотаций. В UML отражена как методология структурного анализа в виде диаграмм классов, компонентов и их размещения, так и объектно ориентированная методология, представленная в виде различных моделей поведения объектов: варианты применения, взаимодействие, состояния, деятельность.

Отличительное свойство UML от других средств моделирования (IDEF3, DFD, ERM) – возможность расширения языка, основанная на таких сущностях, как стереотипы, теги и ограничения. Однако главное достоинство объектно ориентированного подхода состоит в том, что создаваемые объектно ориентированные модели более открыты и легче поддаются внесению изменений, поскольку их конструкция базируется на устойчивых формах отражения результатов декомпозиции. Это дает возможность модели развиваться постепенно и не приводит к полной ее переработке даже в случае существенных изменений представлений о предметной области и требований к проектируемой информационной системе.

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

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

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

Настоящая статья посвящена контекстной технологии программирования, которая зародилась как объединение объектно ориентированной и фортоподобной технологий, осуществленное путем контекстной интерпретации слов фортоподобного языка [9] и на основе понятийного анализа предметной области.

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

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

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

ЗАКЛЮЧЕНИЕ

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

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

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

В заключение укажем на некоторые публикации, где приведены не вошедшие в настоящую статью описания особенностей контекстной технологии программирования. Так, в докладе [24] описан вычислительный механизм контекстной технологии и рассмотрен пример более сложной предметной области. В статье [25] содержится описание принципов контекстного программирования с их привязкой к вычислительной модели. Работа [26] посвящена вопросам создания, хранения и использования знаний, представленных в виде откомпилированных понятийных моделей, а также содержит описание адресных структур вычислительного механизма контекстной технологии.

ЛИТЕРАТУРА

1. Марка Д.А., Мак-Гоуэн К. Методология структурного анализа и проектирования. – М.: Мета Технология, 1993.

2. Черемных С.В., Семенов И.О., Ручкин В.С. Структурный анализ систем: IDEF-технологии. – М.: Финансы и статистика, 2001.

3. Калашян А.Н., Калянов Г.Н. Структурные модели бизнеса: DFD-технологии. – М.: Финансы и статистика, 2003.

4. Конноли Т., Бегг К. Базы данных: проектирование, реализация и сопровождение. Теория и практика. – М.: Вильямс, 2003.

5. Meyer B. Object Technology: The Conceptual Perspective // Computer. – 1996. – N 1. – P. 86 – 88.

6. Буч Г. Объектно-ориентированное проектирование с примерами применения. – М.: Конкорд, 1992.

7.  Рамбо Дж., Буч Г., Якобсон А. UML. Специальный справочник. – СПб.: Питер, 2002.

8. Александреску А. Современное проектирование на С++: Обобщенное программирование и прикладные шаблоны проектирования. – М.: Вильямс, 2004.

9. Выхованец В.С. Контекстная технология программирования // Труды IV Междунар. науч.-техн. конф. по телекоммуникациям (Телеком99). – Одесса, 1999. – С. 116 – 119.

10. Хантер Р. Основные концепции компиляторов. – М.: Вильямс, 2002.

11. Горский Д.П. Вопросы абстракции и образования понятий. – М.: Изд-во АН СССР, 1961.

12. Рейуорд-Смит В. Теория формальных языков. Вводный курс. – М.: Радио и связь, 1988.

13.  XML Schema Part 2: Datatypes. W3C Recommendation (http://www.w3.org/).

14. Выхованец В.С. Язык контекстного программирования // Тез. докл. 8-й междунар. конференции “Проблемы управления безопасностью сложных систем”. – М., 2000. – Т. 2. – С. 89 – 91.

15. Макетирование, проектирование и реализация диалоговых информационных систем / Под ред. Е.И. Ломако. – М.: Финансы и статистика, 1993.

16. Гаскаров Д.В. Интеллектуальные информационные системы. – М.: Высш. шк., 2003.

17. Братчиков И.Л. Синтаксис языков программирования. – М.: Наука, 1975.

18. Першиков В.И., Савинков В.М. Толковый словарь по информатике. – М.: Финансы и статистика, 1991.  

19. Кнут Д. Семантика контекстно-свободных языков // Семантика языков программирования. – М.; 1980.

20. Шагурин И. И., Бердышев Е. М. Процессоры семейства Intel P6: Архитектура, программирование, интерфейс: Спр. М.: Горячая линия – Телеком, 2000.

21. Пратт Т., Зелковиц М. Языки программирования: разработка и реализация. – СПб.: Питер, 2002.

22. Ахо А., Ульман Д. Теория синтаксического анализа, перевода и компиляции. – М.: Мир, 1978.

23. Бездушний А.Н., Лютый В.Г., Серебряков В.А. Разработка компиляторов в системе СУПЕР. – М.: ВЦ АН СССР, 1991.

24. Иосенкин В.Я., Выхованец В.С. Контекстная модель технологического процесса предприятия // Труды II междунар. конф. “Идентификация систем и задачи управления” SICPRO’03. – М., 2003. – С. 859 – 871.

25. Иосенкин В.Я. Контекстно-ориентированное программирование // Искусственный интеллект. – 2004. – № 3. – С. 667 – 677.

26. Выхованец В.С., Иосенкин В.Я. Компиляция знаний, представленных на языке ESSE // Тез. докл. 2-ой Междунар. конф. по проблемам управления. – М., 2003. – Т. 2. – С. 165.

 ( (095) 787-88-44

E-mail: vyk@ipu.ru