Роль декомпозиции, абстракции, иерархии при построении сложных систем. — КиберПедия 

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

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Роль декомпозиции, абстракции, иерархии при построении сложных систем.

2022-10-10 31
Роль декомпозиции, абстракции, иерархии при построении сложных систем. 0.00 из 5.00 0 оценок
Заказать работу

Возможности разработчиков сложных систем ограничиваются возможностями статистически среднего человека. Понятно, что одному человеку невозможно в тонкостях иметь представление о сложной системе, и поэтому человечество уже давно пользуется способом управления сложными системами, который звучит так: «РАЗДЕЛЯЙ и ВЛАСТВУЙ!!!».

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

Применительно к разработке ПО декомпозиция может осуществляться по-разному. Используя технологию структурного программирования (или проектирования), декомпозицию воспринимают как обычное разделение алгоритмов, когда каждый модуль системы выполняет один из этапов общего процесса. В данном случае говорят об алгоритмической декомпозиция. Альтернативный способ декомпозиции основан на использовании объектов и называется объектно-ориентированной декомпозицией. Сложная система представляется совокупностью автономных действующих объектов, которые взаимодействуют друг с другом, чтобы обеспечить поведение системы, соответствующее более высокому абстрактному уровню.

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

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

 

 

Объектная модель.

Объектно-ориентированная технология основывается на так называемой объектной модели. Основными ее принципами являются: абстрагирование, инкапсуляция, модульность, иерархичность. Указанные четыре принципа являются главными в том смысле, что без любого из них модель не будет объектно-ориентированной.

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

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

Модульность подразумевает разделение программы на фрагменты, которые компилируются по отдельности, но могут устанавливать связи с другими модулями. Модульность позволяет хранить абстракции раздельно. В программировании модули играют роль физических контейнеров, в которые помещаются определения классов и объектов при логическом проектировании системы. В большинстве языков, поддерживающих принцип модульности как самостоятельную концепцию, интерфейс модуля отделен от его реализации. Так в языке C++ модулями являются раздельно компилируемые файлы, когда интерфейсная часть размещается в отдельных файлах с расширением .h (файлы-заголовки), а реализация модуля хранится в файлах с расширением .c. В языке ObjectPascal принцип модульности формализован несколько строже, в частности, в нем определен особый синтаксис для интерфейсной части и реализации модуля.

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

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

 


Поделиться с друзьями:

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

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

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.007 с.