Проблема сложности

Структурный подход

Модели и моделирование

Модель – это упрощенное представление реальности.

Моделирование рассматривают, как метод исследования систем на основе переноса изучаемых свойств системы на объекты другой природы.

Инженерная методика создания моделей позволяет:

- визуализировать систему;

- определить структуру системы и её поведение;

- документировать принимаемые решения.

С моделированием тесно связано понятие абстрагирования. Абстрагирование – моделирование возможных реализаций программного продукта с выделением существенных особенностей и подавлением деталей.

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

1. Структурный (функционально–модульный).

2. Объектно-ориентированный.

3. Моделирование данных.

4. Моделирование знаний.

При использовании функционально–модульного подхода структура системы описывается в терминах иерархии её функций и передачи информации между отдельными функциональными элементами.

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

Модель данных определяет правила порождения допустимых структур данных и возможные операции над такими структурами. Исторически термин «данные» происходит от латинского «datum», означающего «факт». Однако модели данных могут описывать и нечто, не имеющее место в реальной действительности.

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

При этом выделяют четыре общих принципа, позволяющих процесс моделирования (создания и применения моделей по любому из рассмотренных выше подходов):

1. Выбор модели определяет подходы и получаемый вид решения проблемы.

2.Каждая модель может быть воплощена с разной с разной степенью абстракции.

3. Лучшими моделями являются те, которые ближе всего к реальности.

4. Следует использовать совокупность нескольких моделей.


Сложность является основной проблемой при создании больших и сложных систем любой природы.

Главным способом преодоления сложности разработки больших программных систем является правильная декомпозиция.

Термин «декомпозиция» происходи от латинского «divide et impera», что означает «разделяй и властвуй». Далее по тексту термин «декомпозиция» применяется, как прием иерархического проектирования, который заключается в построении сложной системы, из небольшого количества крупных частей. При этом каждая крупная часть в свою очередь строится из частей меньшего размера и так далее, до тех пор, пока самые небольшие части можно будет строить из имеющегося материала.

«Правильная» декомпозиция – означает следующее:

- количество связей между отдельными подсистемами – минимально;

- связность отдельных частей внутри каждой подсистемы – максимальна;

При этом структура системы такова, что все взаимодействия между её подсистемами укладываются в стандартные рамки, то есть:

- каждая подсистема скрывает своё содержимое от других подсистем;

- каждая подсистема имеет чётко определённый интерфейс с другими подсистемами.

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: