Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shprora_po_proge.docx
Скачиваний:
4
Добавлен:
23.09.2019
Размер:
518.78 Кб
Скачать

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

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]