русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Уровни и методы проектирования программ


Дата добавления: 2015-01-08; просмотров: 1164; Нарушение авторских прав


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

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

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

Для проектирования модульных программ существуют два основных метода: нисходящее и восходящее проектирование.

а) Нисходящее проектирование

Шаг 1. Проработка головной программы

Шаг 2. Детализация программы

Шаг N. Законченная программа

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

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



В приведённом примере на 1 шаге детально прорабатывается головная программа, которая использует функции из 2х модулей. Вместо них разработаны две заглушки. На втором шаге детализируется первый модуль, вызывающий, в свою очередь, два других модуля. Вместо них подставляются заглушки 1.1 и 1.2. На последнем шаге все заглушки заменяются полноценными модулями. На каждом шаге происходит тестирование и отладка разрабатываемой программы.

б) Восходящее проектирование

Шаг 1. Разработка модулей нижних уровней

Шаг 2. Разработка модулей верхних уровней

Шаг 3. Разработка конечной программы

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

В данном примере сначала создаются модули 1.1, 1.2 и 2.1, которые проверяются на работоспособность по одному. На их базе проектируются вызывающие их модули 1 и 2, которые также проверяются независимо друг от друга, но совместно с вызываемыми модулями 1.1, 1.2 и 2.1. Последней создается головная программа.

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

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



<== предыдущая лекция | следующая лекция ==>
Основные этапы решения задач на ЭВМ | Структурное программирование


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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