logo
Базы знаний интелл

3.4.3. Традиционные методологии структурирования

Существующие подходы к проектированию сложных систем можно разделить на два больших класса:

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

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

В структурном анализе [Yourdon, 1989; DeMarco, 1979; Gane & Sarson, 1979] разработано большое число выразительных средств для проектирования, в том числе графических [Буч, 1993]: диаграммы потоков данных (DFD — data-flow diagrams), структурированные словари (тезаурусы), языки спецификации систем, таблицы решений, стрелочные диаграммы «объект—связь» (ERD — entity-relationship diagrams), диаграммы переходов (состояний), деревья целей, блок-схемы алгоритмов (в нотации Насси—Шнейдермана, Гамильтона—Зельдина, Фест-ля и др.), средства управления проектом (PERT-диаграммы, диаграммы Ганта и др.), модели окружения.

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

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

ООП имеет свою систему условных обозначений и предлагает богатый набор логических и физических моделей для проектирования систем высокой степени сложности, при этом эти системы хорошо структурированы, что порождает легкость их модификации. Впервые принцип ООП установлен в 1979 [Jones, 1979], а затем развит в работах [Shaw, 1984; Peterson, 1987; Буч, 1992].

Широкое распространение объектно-ориентированных языков программирования C++, CLOS, Smalltalk и др. успешно демонстрирует жизнеспособность и перспективность этого подхода.