Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Нисходящее проектирование программы основано на идее уровней абстракции

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

Уровни абстракции определяют уровни модулей в программе. На этапе проектирования строится схема иерархии, отображающая эти уровни, их функции и взаимодействие модулей разных уровней. От блок схемы она отличается тем, что не показывает логику принятия решений или точный порядок исполнения.

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

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

 

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

Рис. 1

 

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

- модуль должен возвратить управление тому, кто его вызвал (исключение – аварийное завершение модуля);

- модуль может вызвать другой модуль уровнем ниже, но не может вызвать модуль своего уровня или выше (но может рекурсивно вызвать сам себя). Это упрощает межмодульный обмен данными. Если нужно вызвать модуль, находящийся несколькими уровнями ниже, то в этом случае в схеме иерархии его нужно дополнительно поместить на следующий уровень и везде специально отметить. Это означает, что модуль пишется один раз, а используется на разных уровнях иерархии;

- принятие основных решений нужно выносить на максимально высокий уровень (обычно в головной модуль, который является кратким конспектом всей программы);

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

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

- логика программы становится понятней;

- программу проще изменять и дополнять, в ней нет перекрестных связей;

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

Модули низшего уровня детализируются только после написания всех модулей высших уровней. Рекомендации:

- при разбиении на модули лучше чуть перестараться, чем недостаточно продвинуться, так как объединять модули легче;

- нельзя рассредоточивать реализацию одной функции в разных модулях;

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

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

<== предыдущая лекция | следующая лекция ==>
Проектирование программы | Существуют несколько подходов, но наиболее распространены иерархический и операционный подходы
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 448; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.