Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Иерархическая декомпозиция и абстрактные машины (метод нисходящей декомпозиции)
Расхождения между языком, на котором формулируются задачи, и языком, на котором описываются алгоритмы их решения, порождают трудности при разработке концепции программ. Термин «язык» определяет некоторые объекты и механизмы, позволяющие их создавать, действия (или примитивы), позволяющие оперировать объектами, и правила композиции таких действий. Объект определяется с помощью следующих атрибутов: · имени, которое позволяет обозначить объект и отличить его от других объектов; · состояния, которое определяется в каждый данный момент и может изменяться с течением времени; · множества операций, или функций доступа, которые, в частности, позволяют создавать и уничтожать объекты, проверять и изменять состояние объекта, а также комбинировать объекты между собой. Прежде всего отметим, что любой язык определяет, по крайней мере концептуально, некоторую «машину», способную его интерпретировать: перечень инструкций для этой машины совпадает со множеством операций языка, ее память позволяет представлять объекты, определяемые языком, а механизм выполнения инструкций определяется правилами интерпретации языка. Подобная машина называется «абстрактной», поскольку, вообще говоря, она не имеет физической реализации. Метод нисходящей декомпозиции представляет собой разновидность декартово-покоординатного спуска, который заключается в сведении задачи к последовательности элементарных подзадач, решаемых более простыми способами. Для этого вначале определяем машину так, что с помощью объектов и примитивов, реализованных на ней, мы надеемся решить поставленную задачу более простым способом. При этом возникает проблема реализации определенной нами машины на реально имеющейся в нашем распоряжении машине . Для решения этой новой задачи определяем новую машину и так до тех пор, пока очередную машину можно будет легко реализовать на машине . Если при реализации машины используется интерфейс, предлагаемый машиной , то говорят, что использует или зависит от . В действительности зависит лишь от интерфейса , а не от деталей ее внутренней реализации. Отношение между машинами, определенное таким образом, называется отношением зависимости. Структура системы может быть описана в этом случае с помощью графа, вершины которого представляют машины, определенные декомпозицией, а ребра - их отношения зависимости. Варианты структур, основанных на методе нисходящей декомпозиции, можно представить схемами, приведенными ниже. В любом случае, иерархическая структура слоев обладает рядом преимуществ, вытекающих из независимости, которая обеспечивается процессом абстрагирования: · независимость концепции: состояние машины для пользователя полностью описывается спецификациями ее интерфейса; · независимость модификаций: изменения в реализации одной из машин не влекут за собой изменений в машинах, которые используют данную, поскольку спецификации интерфейса остаются неизменными · независимость отладки: после того как интерфейс некоторой машины специфицирован, ее отладка может производиться независимо от машин, которые ее используют, и наоборот, машины, использующие , могут отлаживаться независимо от нее. |
Последнее изменение этой страницы: 2019-05-08; Просмотров: 340; Нарушение авторского права страницы