- •Дисциплина «Технология разработки программных продуктов» Теория
- •1 Классификация программных продуктов по сфере использования: системное программное обеспечение, инструментарий технологий программирования, пакеты прикладных программ.
- •Инструменты разработки программных средств
- •2 Понятие жизненного цикла программы. Основные этапы жизненного цикла программы
- •3 Понятие модели жизненного цикла разработки программного продукта. Обзор существующих основных моделей
- •Каскадная модель
- •Модель прототипирования
- •Модель быстрой разработки приложений (rad-модель)
- •Многопроходная модель
- •Спиральная модель
- •4 Структурное программирование. Основные управляющие конструкции структурного программирования
- •5 Методы структурного программирования. Достоинства и недостатки структурного программирования
- •6 Сущность метода объектно-ориентированного программирования. Основные этапы объектно-ориентированного программирования. Основные принципы объектно-ориентированного программирования
- •Этапы разработки программных продуктов с использованием ооп
- •7 Классификация систем, поддерживающих диалоговые процессы. Интерфейс пользователя программного продукта. Требования, предъявляемые к стандартному графическому интерфейсу пользователя
- •8 Классификация ошибок программного обеспечения
- •9 Отладка программ. Методы и виды отладки программ. Различие между тестированием и отладкой программ.
- •Автономная отладка модуля
- •Комплексная отладка
- •10 Виды тестирования
- •11 Тестирование программ. Разработка тестов. Характеристики хорошего теста. Как узнать, прошла ли программа тест
- •12 Методы тестирования программных продуктов: «стеклянный ящик», «черный ящик»
- •13 Тестирование программных продуктов. Классы эквивалентности. Условия принадлежности тестов к классу эквивалентности. Поиск классов эквивалентности
- •Категории специалистов, занятых разработкой и эксплуатацией программ
- •Технологии коллективной разработки
- •Коллективная разработка
- •Стоимость программных средств. Факторы, влияющие на стоимость программных средств
- •Факторы, влияющие на стоимость программных средств
- •Факторы, связанные с разработкой
- •Факторы, связанные с организацией разработки
- •Факторы, определяемые окружающей средой
- •17 Отладочные возможности среды программирования Delphi
- •Условная точка останова
- •Изменение характеристик точки останова
- •Удаление точки останова
- •Пошаговое выполнение программы
- •Использование окна Watch
- •Использование команд Evaluate и Modify
- •18 Защита программного обеспечения
- •Практика
4 Структурное программирование. Основные управляющие конструкции структурного программирования
Структурное программирование представляет собой совокупность рекомендуемых технологических приемов, охватывающих выполнение всех этапов разработки ПП и основывается на следующих принципах:
нисходящей разработки, рекомендующей на всех этапах вначале определять наиболее общие моменты, а затем поэтапно выполнять детализацию.
сквозного структурного контроля, предполагающего проведение содержательного контроля всех этапов разработки.
структурного программирования, рекомендующего определенные структуры алгоритмов и стиль программирования.
Базовые структуры:
следования или последовательности операторов;
ветвления или условного оператора;
повторения или оператора цикла.
Следование - последовательность функциональных блоков, соединённых стрелками.
Рисунок 1 - Линейная последовательность операторов (блоков)
Сложное действие, изображенное в виде одного функционального блока, может быть представлено как последовательность функциональных блоков, т.е. как следование, и наоборот, последовательность функциональных блоков может быть объединена в один функциональный блок.
Ветвление - проверка логического условия.
Рисунок 2 -. Полная форма представления блока ветвления
Проверка Р представляется предикатом, т.е. функцией, задающей логическое выражение или условие, значением которого может быть истина или ложь (рис.2). Эта структура может быть неполной, когда отсутствует действие, выполняемое при ложном значении логического выражения. В этом случае структура будет иметь следующий вид, показанный на рис.3.
Рисунок 3 - Краткая форма представление блока ветвления
Переключатель - выбор одного варианта из множества возможных альтернатив.
В зависимости от значения Р выполняется одно из действий А, В, ..., Z (рис. 4). После выбора варианта происходит переход к выполнению следующей управляющей структуры.
Рисунок 4 - Схема переключателя
Повторение - многократное выполнение фрагментов алгоритма (программы).
Рисунок 5 - Схема цикла с предусловием.
Действие А будет повторяться до тех пор, пока значение предиката Р будет оставаться истинным (рис. 5). Поэтому в действии А должны изменяться значения переменных, от которых зависит Р, в противном случае произойдет зацикливание. Вычисление предиката Р может производиться после выполнения действия А, в этом случае действие А будет выполняться хотя бы один раз (рис. 6).
Рисунок 6 - Схема цикла с постусловием.
Программы, разработанные по правилам структурного программирования, обладают следующими свойствами:
Имеют модульную структуру, каждый модуль содержит, как правило, одну точку входа и одну точку выхода, размер их ограничен (обычно не более 100 операторов);
Представляют собой композицию основных управляющих структур: последовательности (следования операторов), разветвления (разветвления путей выполнения операторов в зависимости от определенных условий), цикла (повторения группы операторов или оператора до тех пор или пока выполняется некоторое условие);
Содержат операторы безусловного перехода только в исключительных случаях. При этом передача управления происходит в точку программы, расположенную по тексту ниже той точки, где встречается оператор безусловного перехода. Операторы безусловного перехода допускается использовать и в том случае, когда в языке программирования отсутствуют операторы, реализующие структуры типа если-то-иначе, цикл-пока, цикл-до.
В зависимости от степени соблюдения приведенных выше условий можно выделить следующие варианты метода структурного программирования (таблица 1):
Классический;
Расширенный;
Модифицированный;
С использованием оператора безусловного перехода.
Таблица 1
Вариант метода |
Допустимые управляющие структуры |
Использование оператора безусловного перехода |
Требования к модулям |
|||
Последовательность, если-то-иначе, цикл-пока |
Цикл-до, выбор-по |
выйти |
Одна точка входа, одна точка выхода |
Несколько точек входа |
||
Классический |
ДА |
НЕТ |
НЕТ |
НЕТ |
ДА |
НЕТ |
Расширенный |
ДА |
ДА |
НЕТ |
НЕТ |
ДА |
НЕТ |
Модифицированный |
ДА |
ДА |
ДА |
НЕТ |
ДА |
ДА (ограничено) |
С использованием оператора безусловного перехода |
ДА |
ДА |
ДА |
ДА (в особых случаях) |
ДА |
ДА (ограничено) |
Не все языки программирования могут согласовываться с правилами структурного программирования. Язык программирования считается структурным или согласованным с правилами структурного программирования, если он содержит возможности реализации принципа модульного программирования и включает операторы, реализующие основные управляющие структуры.
Основой методологии структурного программирования является процедурная декомпозиция программной системы и организация отдельных модулей в виде совокупности выполняемых процедур. (процедура представляет собой законченную последовательность действий или операций, направленных на решение отдельной задачи)
Вопросы для самопроверки:
Что такое структурное программирование?
Перечислите основные управляющие конструкции структурного программирования.
Какими свойствами обладают программы, разработанные по правилам структурного программирования?
Дайте определение понятия «алгоритм».
Какие основные принципы положены в основу структурного подхода к программированию.