Структурный подход
Модели и моделирование
Модель – это упрощенное представление реальности.
Моделирование рассматривают, как метод исследования систем на основе переноса изучаемых свойств системы на объекты другой природы.
Инженерная методика создания моделей позволяет:
- визуализировать систему;
- определить структуру системы и её поведение;
- документировать принимаемые решения.
С моделированием тесно связано понятие абстрагирования. Абстрагирование – моделирование возможных реализаций программного продукта с выделением существенных особенностей и подавлением деталей.
Подобный прием (и не только!) позволяет рассматривать моделирование также в качестве попытки решить проблему сложности. В этом плане моделирование предоставляет несколько возможных подходов (различающихся способами декомпозиции систем) к разработке программного обеспечения:
1. Структурный (функционально–модульный).
2. Объектно-ориентированный.
|
|
3. Моделирование данных.
4. Моделирование знаний.
При использовании функционально–модульного подхода структура системы описывается в терминах иерархии её функций и передачи информации между отдельными функциональными элементами.
Применение объектно-ориентированного подхода предполагает описание структуры системы в терминах объектов и связей между ними, а поведения системы - в терминах обмена сообщениями между объектами.
Модель данных определяет правила порождения допустимых структур данных и возможные операции над такими структурами. Исторически термин «данные» происходит от латинского «datum», означающего «факт». Однако модели данных могут описывать и нечто, не имеющее место в реальной действительности.
Знание представляет собой особый, специфический вид информации. Знание характеризуется очень важным свойством, отличающем его от «просто данных» – активностью, то есть способностью самостоятельно обрабатывать информацию.
При этом выделяют четыре общих принципа, позволяющих процесс моделирования (создания и применения моделей по любому из рассмотренных выше подходов):
1. Выбор модели определяет подходы и получаемый вид решения проблемы.
2.Каждая модель может быть воплощена с разной с разной степенью абстракции.
3. Лучшими моделями являются те, которые ближе всего к реальности.
4. Следует использовать совокупность нескольких моделей.
Сложность является основной проблемой при создании больших и сложных систем любой природы.
Главным способом преодоления сложности разработки больших программных систем является правильная декомпозиция.
|
|
Термин «декомпозиция» происходи от латинского «divide et impera», что означает «разделяй и властвуй». Далее по тексту термин «декомпозиция» применяется, как прием иерархического проектирования, который заключается в построении сложной системы, из небольшого количества крупных частей. При этом каждая крупная часть в свою очередь строится из частей меньшего размера и так далее, до тех пор, пока самые небольшие части можно будет строить из имеющегося материала.
«Правильная» декомпозиция – означает следующее:
- количество связей между отдельными подсистемами – минимально;
- связность отдельных частей внутри каждой подсистемы – максимальна;
При этом структура системы такова, что все взаимодействия между её подсистемами укладываются в стандартные рамки, то есть:
- каждая подсистема скрывает своё содержимое от других подсистем;
- каждая подсистема имеет чётко определённый интерфейс с другими подсистемами.
Сокрытие содержимого (в данном случае – абстрагирование или инкапсуляция) позволяет рассматривать структуру каждой подсистемы независимо от других подсистем.
Определенные интерфейсы позволяют строить систему более высокого уровня, рассматривая каждую подсистему как единое целое и игнорируя её внутренние устройство.