Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Иерархическая декомпозиция и абстрактные машины (метод нисходящей декомпозиции)



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

Объект определяется с помощью следующих атрибутов:

· имени, которое позволяет обозначить объект и отличить его от других объектов;

· состояния, которое определяется в каждый данный мо­мент и может изменяться с течением времени;

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

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

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

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


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

В любом случае, иерархическая структура слоев обладает рядом преимуществ, вытекающих из независимости, которая обеспечивается процессом абстрагирования:

· независимость концепции: состояние машины для поль­зователя полностью описывается спецификациями ее интер­фейса;

· независимость модификаций: изменения в реализации од­ной из машин не влекут за собой изменений в машинах, кото­рые используют данную, поскольку спецификации интерфейса остаются неизменными

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


Поделиться:



Последнее изменение этой страницы: 2019-05-08; Просмотров: 321; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.012 с.)
Главная | Случайная страница | Обратная связь