Модульное программирование

Автор: Пользователь скрыл имя, 25 Февраля 2013 в 03:35, курсовая работа

Краткое описание

Машинно-ориентированное программирование появилось одновременно с созданием электронных вычислительных машин. Сначала это были программы в машинных кодах, затем появился язык программирования Assembler (Автокод), который немного «очеловечил» написание программы в машинном коде. Этот стиль программирования предполагает доскональное знание возможностей конкретной архитектуры ЭВМ и операционной системы и используется до сих пор тогда, когда другие стили бессильны, или нужно получить максимальное быстродействие в рамках той или иной операционной системы с использованием архитектуры данной ЭВМ.

Файлы: 1 файл

модульное программирование.doc

— 203.50 Кб (Скачать)

Рисунок 1

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

4.4. Другие методы разработки  структуры модульных программ  и их общая классификация

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

Все эти методы имеют  еще различные разновидности  в зависимости от того, в какой  последовательности обходятся узлы (модули) древовидной структуры программы  в процессе ее разработки [1]. Это можно делать, например, по слоям (разрабатывая все модули одного уровня, прежде чем переходить к следующему уровню). При нисходящей разработке дерево можно обходить также в лексикографическом порядке (сверху вниз, слева направо). Возможны и другие варианты обхода дерева. Так, при конструктивной реализации для обхода дерева программы целесообразно следовать идеям Фуксмана, которые он использовал в предложенном им методе вертикального слоения [8]. Сущность такого обхода заключается в следующем. В рамках конструктивного подхода сначала реализуются только те модули, которые необходимы для самого простейшего варианта программы, которая может нормально выполняться только для весьма ограниченного множества наборов входных данных, но для таких данных эта задача будет решаться до конца. Вместо других модулей, на которые в такой программе имеются ссылки, в эту программу вставляются лишь их имитаторы, обеспечивающие, в основном, сигнализацию о выходе за пределы этого частного случая. Затем к этой программе добавляются реализации некоторых других модулей (в частности, вместо некоторых из имеющихся имитаторов), обеспечивающих нормальное выполнение для некоторых других наборов входных данных. И этот процесс продолжается поэтапно до полной реализации требуемой программы. Таким образом, обход дерева программы производится с целью кратчайшим путем реализовать тот или иной вариант (сначала самый простейший) нормально действующей программы. В связи с этим такая разновидность конструктивной реализации получила название метода целенаправленной конструктивной реализации. Достоинством этого метода является то, что уже на достаточно ранней стадии создается работающий вариант разрабатываемой программы. Психологически это играет роль допинга, резко повышающего эффективность разработчика. Поэтому этот метод является весьма привлекательным.

Подводя итог сказанному, на рис. 2 представлена общая классификация рассмотренных методов разработки структуры программы.

Рисунок 2

5. Контроль структуры модульной программы

 

В завершении процесса модульного программирования следует этап контроля структуры программы. Для этого  можно использовать три метода [5]:

    • статический контроль
    • смежный контроль
    • сквозной контроль

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

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

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

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

 

Заключение

 

Подводя итог, хочу сказать, что концепция модульного программирования полностью удовлетворяет поставленным целям. Несмотря на «эру» объектно-ориентированного программирования, эта технология активно используется и по сей день. Средства создания модулей заложены практически во всех языках высокого уровня. Модули применяются также и в низкоуровневом программировании, где понятность кода особенно актуальна.

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

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

 

Список литературы:

1. Дж.Хьюз, Дж.Мичтом. Структурный  подход к программированию. М.: Мир, 1980. - С. 29-71.

2. В.Турский. Методология программирования. - М.: Мир, 1981. - С. 90-164.

3. Е.А.Жоголев. Технологические основы модульного программирования // Программирование,1980, #2. - С. 44-49.

4. R.C.Holt. Structure of Computer Programs: A Survey // Proceedings of the IEEE, 1975, 63(6). - P. 879-893.

5. Г.Майерс. Надежность программного  обеспечения. М.: Мир, 1980. - С. 92-113.

6. Я.Пайл. АДА - язык встроенных  систем. М.: Финансы и статистика, 1984. - С. 67-75.

7. М.Зелковец, А.Шоу, Дж.Гэннон. Принципы  разработки программного обеспечения.  М.: Мир, 1982. - С. 65-71.

8. А.Л.Фуксман. Технологические аспекты создания программных систем. М.: Статистика, 1979. С. 79-94.

9. Н.Г.Голубь. Искусство программирования на Ассемблере. СПб.: ООО «ДиаСофтЮП», 2002. – С. 8-9.

10. www.rushelp.com




Информация о работе Модульное программирование