- •О. В. Шишов технология разработки программных продуктов
- •1. Программы и программирование
- •1.1 Основные определения
- •1.2. Классификация программ и различные виды программирования
- •1.3. Категории специалистов, занятых разработкой и эксплуатацией программ
- •2. Жизненный цикл программного обеспечения
- •2.1 Основные этапы жизненного цикла и их взаимосвязь
- •2.2 Стратегии и модели жизненного цикла
- •3. Качество по
- •3.1 Критерии оценки качества по
- •3.2 Методы оценки качества программного средства
- •4. Надежность программных продуктов
- •4.1 Надежность и виды отказов
- •4.2 Надежность и правильность программы
- •4.3. Вероятностный подход к оценке надежности
- •4.4 Факторы надежности
- •4.5 Приемы надежного программирования
- •6.2. Стандарты технологии создания программных продуктов
- •6.3. Основные этапы технологического процесса разработки программ
- •7. Структурное проектирование программных продуктов
- •7.1. Модули. Сцепление и связность модулей
- •7.2. Структура программных продуктов
- •7.3. Методы структурного программирования
- •8. Алгоритмическое представление задачи программирования
- •8.1. Свойства алгоритмов
- •8.2. Формы записи алгоритмов
- •8.3. Базовые алгоритмические структуры
- •9. Языки программирования
- •9.1. Основные понятия и элементы языков программирования
- •9.2. Классификация языков программирования
- •9.3. Развитие языков программирования
- •10. Пользовательский интерфейс
- •10.1. Типы интерфейсов
- •10.2. Этапы разработки пользовательского интерфейса
- •10.3. Критерии оценки интерфейса пользователем
- •11. Порядок работы эвм при выполнении программ. Трансляторы, интерпритаторы, компиляторы
- •12. Оптимизация программ
- •13. Отладка и тестирование программного обеспечения
- •13.1. Классификация неисправностей и ошибок в программе
- •13.2. Порядок и способы отладки и тестирования программ
- •13.3. Методы тестирования
- •13.4. Требования и рекомендации по тестированию программ
- •13.4. Программирование «с защитой от ошибок»
- •14. Аттестация программного средства
- •15. Сопровождение по
- •16. Защита программных продуктов
- •16.1. Обеспечение защищенности программных средств
- •16.3. Правовые методы защиты программных продуктов
- •17. Документорование программных продуктов
- •17.1. Виды программных документов
- •17.2. Содержание документации по еспд
- •17.3. Стиль оформления программы
- •Содержание
7.3. Методы структурного программирования
При проектировании модульного ПО используют два подхода.
Метод нисходящего проектирования. Он подобен процессу постепенного получения более детального изображения предмета из его общего вида путем применения все более сильного увеличения. В данном методе сначала разрабатываются, кодируются, тестируются и отлаживаются программные модули самого верхнего уровня. При этом, чтобы как можно раньше начать проверку работоспособности системы, вместо модулей нижнего уровня, еще детально не разработанных, следует использовать программные заглушки.
Заглушка – это простой по структуре программный модуль, в котором входные и выходные данные соответствуют замещаемому модулю, но алгоритм обработки данных значительно упрощен. Часто в программе–заглушке помимо описания входных и выходных данных присутствует один оператор печати, сообщающий о том, что в этом месте программы вызывается заглушка. Простейшая заглушка для ассемблерных программ – это оператор возврата из подпрограмм или блок передачи в выходные ячейки подпрограммы (модуля) заранее подготовленных данных.
Применение метода нисходящего проектирования основано на пошаговом уточнении решения задачи. Начиная с верхних, самых общих шагов, на каждом следующем происходит все большее уточнение функций, выполняемых программой, до полной их реализации. Основное преимущество метода пошагового уточнения состоит в том, что при его использовании особое внимание обращается на проектирование правильной программы соответствующего уровня, а не на детальное понимание сразу всех мелочей задачи. Если первый этап проектирования корректен, то каждый последующий является лишь уточнением предыдущего с небольшими изменениями.
На рис. 8 приведен пример использования метода нисходящего проектирования ПО.

Р и с. 8. Порядок проектирования программных модулей при нисходящем проектировании
Метод восходящего проектирования. При его использовании в первую очередь разрабатываются модули самого нижнего уровня (рис. 9). Эти модули, работоспособность которых уже проверена, включаются в разрабатываемые модули более высокого уровня. При таком подходе не требуется писать лишних программ–заглушек, однако в этом случае работоспособность модуля верхнего уровня можно проверить только после разработки и отладки модулей нижнего уровня. Последней создается головная программа.

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