Методы проектирования программ. Нисходящая разработка программного обеспечения, страница 2

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

Информационная закрытость означает:

·  Независимость модулей, обменивающийся друг с другом только необходимой информацией

·  Ограничение доступа к операциям и структурам данной формулы

Достоинства:

1)  Обеспечивается независимость разработки модулей различными коллективами

2)  Обеспечивается легкая модификация программы

26.03.12

Нисходящая разработка

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

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

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

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

Блок схема показывает процедуру (действие), схема иерархии – функцию.

Схема позволяет разработчику сначала определить, что нужно сделать в программе (модуле), и лишь за тем, как это сделать.

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

Разработка схемы иерархии

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

Подпрограммы 2-го уровня – основные функциональные подразделы и они могут быть так же разделены на подчиненные модули. Каждый модуль активизируется вышестоящим и, закончив свою работу, возвращает управление вызвавшему модулю.

Вертикальное управление

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

1)  Модуль должен возвратить управление тому, кто его вызвал. Единственное исключение – обнаружение неисправимых ошибок, требующих немедленного завершения программ.

2)  Модуль может вызвать другой модуль находящийся уровнем ниже и не может вызвать модуль своего уровня или выше, но каждый из них может вызвать сам себя (рекурсивное программирование). Подобные связи упрощают межмодульный обмен данными.

3)  Принятие основных решений выносится, как правило, на головной модуль. Головной модуль – «конспект» всей программы.

4)  Модуль низшего уровня не должен принимать решения за вышестоящий модуль.

Преимущества вертикального управления.

1)  Логика работы программы становится понятнее.

2)  При чтении основного модуля видна вся структура и логика программы.

3)  Программу проще изменять и дополнять.

4)  Программирование и проверка в начале модуля высшего уровня и затем последовательно до низшего уровня позволяет быстрее и качественнее определять логические ошибки