Основные методы разработки программ
Структурное проектирование
Задачи, решаемые на ЭВМ, являются математическими моделями процессов или явлений реальной жизни. В математической модели находят отражение наиболее существенные связи между реальными объектами. Модели реальных объектов вместе с присущими им связями образуют структуры данных, процесс обработки которых и описывается с помощью алгоритмов.
Структурное программирование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой (Нидерланды), разработана и дополнена Н. Виртом (Швейцария).
В соответствии с данной методологией
1. Любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:
o последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;
o ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;
o цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла).
В программе базовые конструкции могут быть вложены друг в друга произвольным образом, но никаких других средств управления последовательностью (например оператор GOTO) выполнения операций не предусматривается.
2. Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде т. н. подпрограмм (процедур или функций). В этом случае в тексте основной программы, вместо помещённого в подпрограмму фрагмента, вставляется инструкция вызова подпрограммы. При выполнении такой инструкции выполняется вызванная подпрограмма, после чего исполнение программы продолжается с инструкции, следующей за командой вызова подпрограммы.
3. Разработка программы ведётся пошагово, методом «сверху вниз».
Алгоритмы большой сложности обычно представляются с помощью схем двух видов: обобщеннойидетальной.
Обобщенная схема описывает общий принцип функционирования алгоритма и основные логические связи между отдельными этапами.
Детальная схема описывает содержание каждого элемента обобщенной схемы с использованием управляющих структур блок-схемы или псевдокода.
Существует несколько методов проектирования:
q нисходящее (сверху-вниз)
q восходящее (снизу-вверх)
q смешанное, использующее два предыдущих метода.
Нисходящее проектирование предполагает создание сначала обобщенной схемы, а затем детализацию каждого структурного элемента.
Восходящее проектирование предполагает создание сначала детальной схемы для каждого структурного элемента, а затем - обобщенной схемы. Наиболее используемым является смешанное проектирование.
Модульное проектирование
Модульное программирование является развитием и совершенствованием процедурного программирования и библиотек специальных программ. Основная черта модульного программирования – стандартизация интерфейса между отдельными программными единицами.
Модуль – это отдельная функционально-законченная программная единица, которая структурно оформляется стандартным образом и имеет небольшой размер. Как правило, каждый модуль содержит паспорт, в котором указаны все основные его характеристики: язык программирования, объем, входные и выходные переменные, их формат, ограничения на них, точки входа, параметры настройки и т.д.
Модульное проектирование – это искусство разбиения задачи на некоторое число различных модулей, умение широко использовать стандартные модули путем их параметрической настройки, автоматизация сборки готовых модулей из библиотек, банков модулей.
Принципы модульного проектирования программных продуктов во многом сходны с принципами нисходящего проектирования. Сначала определяются состав и подчиненность функций, а затем – набор программных модулей, реализующих эти функции.
Контрольные вопросы:
1. Дайте определение понятию «алгоритм».
2. Что изначально означало это слово?
3. С именем, какого математика связано появление слова «алгоритм»?
4. Перечислите свойства алгоритма и поясните их смысл.
5. Перечислите средства записи алгоритмов.
6. Из каких базовых элементов строится структурная схема?
7. Что такое линейная структура, поясните ее смысл.
8. Что такое условная структура, поясните ее смысл.
9. Что такое циклическая структура, поясните ее смысл.
10. Поясните смысл цикла с предусловием и постусловием
11. Дайте определение языкам программирования высокого уровня.
12. Какие ЯП относятся к ЯП низкого уровня?
13. Перечислите ЯП высокого уровня (алгоритмические).
14. Какие понятия характерны для объектно-ориентированных языков?
15. Какие ЯП используются в компьютерных сетях для создания статических и динамических Web-страниц?
16. Какие средства являются общими для всех ЯП?
17. Что понимается под средой программирования?
18. Что такое компилятор и что является результатом его работы?
19. Перечислите известные технологии программирования.
20. В чем смысл структурного проектирования программ?
21. Перечислите методы структурного проектирования.
22. В чем различие между проектированием «сверху-вниз» и «снизу-вверх»?