- •Жизненный цикл по
- •Основные
- •Организационные
- •Модели жизненного цикла
- •Классические процессы жизненного цикла
- •Проектирование
- •Стадии разработки, регламентированные гост 19.102 «Стадии разработки»
- •4. Управление идеей
- •5. Формирование требований к программному продукту.
- •4. Определение требований к пс.
- •Проектирование (разработка архитектуры пс)
- •Основные классы архитектур.
- •Методы разработки структуры программы
- •I. Метод восходящей разработки:
- •II. Метод нисходящей разработки:
- •III. Конструктивный подход
- •IV. Архитектурный подход
- •Объектный подход.
- •Компонентный подход и развитие case-технологий.
- •Методологии программирования
- •Методология императивного программирования.
- •Методология функционального программирования.
- •Методология структурного императивного программирования.
- •Каскадный подход с перекрывающимися процессами.
- •Генетические технологические подходы.
- •Конкретизирующее программирование.
- •Подходы на основе формальных преобразований.
- •Подходы быстрой разработки (прототипирование).
- •Подходы исследовательского программирования.
- •Языки программирования
- •Основные характеристики языков программирования
- •Классификация языков программирования (19.09.2006)
- •Инструментальные средства
- •12.Способы описания алгоритмов
- •13. Стиль программирования
- •14.Архитектурная платформа
- •Стековая
- •Структура ос
- •16.Тестирование и отладка.
- •Отладка.
- •Виды ошибок.
- •Методы и виды тестирования.
- •Комплексное тестирование.
- •17.Стандартные технологические процессы
- •18. Документирование
- •19. Спецификация качества пс
- •24. Коллективная разработка
- •2.2. Группы разработки
Методы разработки структуры программы
В качестве модульной структуры принято использовать древовидную структуру, включая деревья со сросшимися ветвями. В узлах – программные модули, направленные дуги показывают статическую подчиненность модуля, то есть каждый модуль может обращаться к подчиненным ему модулям. Спецификация программного модуля содержит синтаксическую спецификацию его входов и функциональную спецификацию.
I. Метод восходящей разработки:
Строится модульная структура программы в виде дерева.
Затем поочередно программируются модули, начиная с модулей нижнего уровня, в таком порядке, чтобы для каждого разрабатываемого модуля были готовы модули, к которым он обращается.
Поочередное тестирование и отладка модулей в таком же восходящем порядке
Особенности:
Для программирования модуля не требуется наличие текста используемых им модулей. Достаточно, чтобы используемый модуль был лишь специфицирован, а для тестирования используемый модуль можно заменить имитатором (заглушками). В случае восходящей разработки выполняется полное проектирование модулей.
Каждая программа подчиняется внутренним, глобальным для нее принципам организации, структурным данным и т. п. При восходящей разработке эта глобальная информация для модулей нижних уровней еще не ясна в полном объеме.
При восходящем тестировании приходится создавать ведущую программу, которая должна подготовить необходимое для тестируемого модуля состояние информационной среды. Это приводит к большому объему отладочного программирования.
Минусы:
- излишний объем программирования;
- неизвестность для тестируемого;
- непонятность глобальной задачи.
II. Метод нисходящей разработки:
Начинается с построения модульной структуры программы в виде дерева. Затем поочередно проектируются модули, начиная с модуля верхнего уровня (головного). Переход к программированию подчиненного модуля происходит только в случае, если уже запрограммирован модуль, который к нему обращается. Далее тестирование и отладка производится в том же нисходящем порядке.
Плюсы: тестирование программы происходит при естественном состоянии информационной среды. При этом нижележащие модули заменяются имитаторами (заглушки). Имитатор - простой программный фрагмент, который в основном сигнализирует о самом факте обращения или, если необходимо, выдает заранее запасенный подходящий результат.
Таким образом, большой объем отладочного программирования при восходящем программировании заменяется программированием достаточно простых имитаторов. Так же имитаторы способствуют заданию нужных результатов для проведения тестирования.
Т.о., отличие метода: модульная структура программы разрабатывается до начала программирования модулей.
III. Конструктивный подход
Представляет собой модификацию нисходящей разработки, при которой модульная древовидная структура формируется в процессе программирования модулей. Программирование головного модуля начинается исходя из спецификации программы в целом. При программировании головного модуля выделяются подзадачи (функции), для каждой подзадачи создается спецификация и т. п.