Восходящее и нисходящее проектирование программного обеспечения
Иерархическое многоуровневое функциональное и программное построение программного обеспечения значительно облегчает организацию их проектирования и эксплуатации, сокращает длительность и стоимость их разработки.
По количеству функциональных и программных компонент на разных уровнях с учетом сложности связей между ними можно оценивать объем выполненной работы, прогнозировать ее перспективы по срокам и трудоемкости, вследствие чего повышается достоверность контроля состояния и процесса проектирования программного обеспечения.
Многоуровневый иерархический подход к проектированию позволяет проектировать сложные программные изделия по принципу сверху — внизс позиции назначения и наилучшего решения основной целевой задачи всей системы. Декомпозиция проекта, разделение на иерархические уровни требует некоторых затрат. В целом ресурсы используются более эффективно, чем при отсутствии четкой иерархии, за счет экономного построения и упрощения компонент проекта на каждом уровне.
Иногда основному проектированию сверху — вниз сопутствует разработка компонент проекта снизу — вверх. Разработка начинается от компонента нижнего уровня, далее переходят к разработке компонента следующего уровня иерархии и т.д. Достоинством этого принципа является то, что при переходе к разработке компонентов более высокого уровня иерархии компоненты проекта нижних уровней можно считать готовыми и подключать их к проектируемым компонентам верхнего уровня.
Однако на практике при таком подходе отсутствие целостного взгляда на весь проект с позиций верхнего уровня, определяющего цели проекта, не позволяет в ряде случаев принимать верные решения, что приводит к повторной разработке или значительной корректировке компонент проекта. При разработке компонент нижнего уровня необходимо все время помнить об общих целях проекта.
Разработка программного обеспечения полностью по принципу снизу-вверх возможна лишь для сравнительно небольших групп программ, ограниченных по количеству несколькими модулями, когда разработчики способны оценивать в любое время структуру комплекса программ в целом и структуру и функции отдельных модулей на всех уровнях иерархии.
Поэтому при разработке больших программных изделий, содержащих сотни модулей, наиболее рациональным принципом является проектирование сверху — вниз.
Часто оба метода применяются одновременно:
- сверху вниз — при объединении в единое целое;
- снизу вверх — при разработке общих хорошо отлаженных блоков.
Назад