Функции. Основные принципы структурной методологии. Принцип формальности. Принцип иерархического упорядочивания

Страницы работы

Содержание работы

Функции

Подпрограмма – замкнутая программная конструкция, реализующая некоторую операцию, алгоритм, способ обработки данных. С помощью подпрограмм можно скомпоновать группу операторов для выполнения некоторого действия. Подпрограмму можно вызывать из разных мест программы; ей можно передавать информацию, которую она использует для выполнения действий; она может возвращать результаты вычислений. Чтобы подпрограмма начала работать, ее нужно активизировать (вызвать).

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

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

Основные принципы структурной методологии:

§  Принцип абстракции – представление программы в виде иерархии уровней (от наивысшего – наиболее абстрактного, без сиюминутного учета деталей, к низшему – наиболее детализированному, рассматривающему мелкие детали реализации).

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

§  Принцип «разделяй и властвуй» – разделение программы на отдельные фрагменты (модули), допускающие независимую отладку и тестирование, - позволяет работать над отдельными частями большой программы. Декомпозиция задачи на подзадачи – основной метод в науке и технике.

§  Принцип иерархического упорядочивания (иерархического структурирования взаимосвязей между модулями программного комплекса).

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

Начиная с середины 60-х годов (позднее второе и раннее третье поколение языков высокого уровня) стала осознаваться роль подпрограмм именно как средства абстракции. Были разработаны языки, поддерживающие разнообразные механизмы передачи параметров и заложены основания структурного[1] и процедурного программирования. Это позволило:

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

§  Улучшить читабельность программы.

§  Повысить эффективность программы.

§  Повысить надежность программы.

§  Уменьшить время и стоимость программной разработки.

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

Похожие материалы

Информация о работе

Тип:
Конспекты лекций
Размер файла:
495 Kb
Скачали:
0