- •Введение Цели и задачи курса «Технология программирования»
- •Классификация программного обеспечения
- •Тема 1.Понятие программного изделия
- •1.1.Основные требования к программному изделию как к продукции производственно-технического назначения
- •1.2.Жизненный цикл программных изделий
- •1.3.Методическая, технологическая, инструментальная и организационная поддержка процесса проектирования программных изделий
- •1.4.Этапы проектирования сложных программных изделий
- •Тема 2.Внешнее проектирование программных изделий
- •2.1.Разработка требований и внешнее проектирование программных изделий
- •2.2.Обеспечение целей создания программных изделий Цели проекта с точки зрения пользователя
- •Цели проекта с точки зрения разработчика
- •2.3.Разработка внешних спецификаций проекта
- •Тема 3.Внутреннее проектирование программных изделий
- •3.1.Понятие модуля. Характеристики качества модулей
- •3.2.Методы проектирования программ
- •Иерархическая декомпозиция и абстрактные машины (метод нисходящей декомпозиции)
- •Программирование на основе принципа пошагового совершенствования
- •Структурное программирование по нисходящему принципу
- •Программирование с использованием пошаговой реорганизации
- •Способы описания программ. Язык проектирования программ
- •Тема 4.Структурированные программы
- •4.1.Блок-схемы и управляющие структуры
- •4.2.Теорема о структурировании
- •4.3.Рекурсивные структурированные программы
- •Тема 5.Методы Доказательства правильности программ
- •5.1.Математический аппарат доказательства Принцип простой индукции
- •Принцип модифицированной простой индукции
- •Принцип обобщенной индукции
- •5.2.Методы доказательства правильности программ Метод индуктивных утверждений
- •Пример доказательства правильности программы методом индуктивных утверждений
- •Тема 6.Рекурсивные программы. Методы доказательства их правильности
- •6.1.Понятие рекурсивных программ. Способы их описания Язык описания рекурсивных программ
- •Примеры рекурсивных программ
- •6.2.Рекурсивные программы работы со списками Списки и операции над ними
- •Примеры программ работы со списками
- •6.3.Примеры доказательства правильности рекурсивных программ
- •Тема 7.Отладка программ
- •7.1.Типичные ошибки в программных комплексах
- •7.2.Задачи отладки программ
- •7.3.Методы разработки тестов Метод эквивалентных разбиений
- •Методы тестирования программ путем покрытия логики
- •Метод функциональных диаграмм
- •Предположения об ошибках
- •7.4.Задачи комплексной отладки программ
- •Библиографический список
1.4.Этапы проектирования сложных программных изделий
Значительная часть работ в жизненном цикле сложных программных изделий связана с исследованиями и разработкой методов управления и обработки информации. Эти работы сопутствуют всему жизненному циклу программных изделий.
1-й этап. Системный анализ и проектирование алгоритмов для программного изделия начинаются с определения целей и назначения будущего программного комплекса. Далее проводится проектирование и моделирование основных алгоритмов, закладываемых в программы. В результате формируются основные задачи и методы их решения, которые отражаются в техническом задании на программное изделие и его основные компоненты. При последующем изложении предполагается, что методы и алгоритмы решения задач определены и анализируется технологический процесс разработки программ на базе готовых алгоритмов.
2-й этап. Структурное проектирование программных изделий решает две основные задачи: формирование общей структуры программного изделия и его основных компонентов; предварительная оценка и распределение ресурсов ЭВМ на реализацию отдельных модулей и групп программ. В процессе структурного проектирования подготавливаются правила построения, оформления и проверки программных модулей и типовые структуры массивов данных. Устанавливаются допустимые типы межмодульных связей и структура программного изделия в целом. На основе оценок длительности и частоты решения отдельных задач выявляются функциональные алгоритмы с наибольшим потреблением производительности ЭВМ, формируются дисциплины взаимодействия процессоров и диспетчеризации вызова программ, а также оценивается реализуемость данного программного изделия на выбранной машине. Предварительное распределение оперативной памяти и памяти команд должно обеспечивать рациональное использование этих ресурсов для решения частных функциональных задач.
3-й этап. Подготовка технологических средств предназначена для выбора и настройки на условия конкретного применения средств автоматизации проектирования программ и методических инструктивных материалов. Адаптация технологических средств проводится с учетом объема и сложности проектируемого программного изделия, характеристик и системы команд реализующей ЭВМ, операционной системы и диалоговых средств технологических ЭВМ, особенностей системы автоматизации проектирования и т. д. При использовании специализированных ЭВМ наиболее трудоемка настройка средств автоматизации на систему команд этой ЭВМ. В результате формируется рабочая версия системы автоматизации и структуры базы данных проектирования конкретного программного изделия. В ряде случаев приходится создавать язык программирования или диалект одного из универсальных алгоритмических языков. Подготавливаются инструкции по составлению спецификаций на модули и группы программ, правила использования языка программирования, методики отладки и комплексирования программ и т. д.
4 - и этап. Разработка программ обеспечивает получение синтаксически, семантически и структурно корректных программ на языке программирования и формирование программ в машинных кодах реализующей ЭВМ. Разрабатываются спецификации на программные модули и группы программ, в соответствии с которыми подготавливаются тексты на языке программирования. Описываются основные массивы данных, используемых рядом программ, и эти описания транслируются для последующего централизованного применения. При трансляции текстов программных модулей формализуются их связи с другими модулями и массивами данных.
5-й этап. Отладка программ в статике обеспечивает получение модулей и взаимодействующих групп программ, правильно функционирующих при заданных значениях времени и соответствующих спецификациям. Отладка проводится преимущественно по детерминированным тестам, состав которых планируется с целью сокращения объема тестирования, а также выбора тестовых исходных данных и эталонных результатов, гарантирующих необходимую полноту проверки программного изделия.
6-й этап. Комплексная динамическая отладка требует средства автоматизированного формирования исходных данных. Для этого применяются программные и аппаратурные имитаторы внешней среды, которые информационно адекватны реальным объектам системы управления или обработки информации. Одновременно создаются средства автоматизированной обработки и анализа результатов функционирования программного изделия и внешней среды. В отдельные программы могут вводиться временные средства для контроля и регистрации промежуточных данных, облегчающие обнаружение и локализацию ошибок. Выходные результаты проверяются во всем диапазоне исходных данных и случайных возмущений, а также оценивается реализуемость программного изделия на выбранной ЭВМ. Для выявления и устранения ошибок иногда требуется частичное повторение некоторых предыдущих этапов проектирования.
7-й этап. Выпуск машинных носителей и документирование завершают оформление программы как промышленного изделия. Формируются машинные носители и оформляются документы на программное изделие. Эти носители проходят контроль на соответствие эталонам и правилам маркировки. Эксплуатационная документация является минимально необходимой для освоения функций и правильного использования программ по прямому назначению. Технологическая документация значительно обширнее и подготавливается для специалистов, осуществляющих длительное сопровождение программного изделия. Она позволяет развивать и корректировать программы, учитывать все изменения в версиях программных изделий и обеспечивает возможность детального освоения программ новыми разработчиками. Исследовательская документация предназначена для анализа технологии и объектов проектирования с целью развития методов и средств автоматизации разработки. Окончательное оформление документации и машинных носителей осуществляется после испытаний опытного образца или очередной версии программного изделия.
8-й этап. Испытания программного изделия проводятся совместно с заказчиком для определения реальных характеристик опытного образца. Для этого создаются программа и методики испытаний, обеспечивающие корректную проверку соответствия программного изделия требованиям технического задания. Испытания позволяют проверить полноту решения функциональных задач, их качество и соответствие программного изделия технической документации. В системах управления объектами и технологическими процессами большое значение имеют испытания программного изделия на пропускную способность в реальном времени и на надежность функционирования программ при различных возмущениях. Для корректной обработки результатов испытаний разрабатываются методики, средства контроля и обобщения выходных данных программного изделия и всей системы. Обработанные результаты по всем разделам программы испытаний являются основой для оформления акта и подготовки заключения о степени соответствия опытного образца программного изделия техническому заданию.
После завершения разработки и испытаний программного изделия начинается процесс его эксплуатации и сопровождения. Сопровождение должно обеспечивать высокое качество и расширение функций программного изделия в течение всего времени его жизни и эксплуатации. В эти мероприятия входит качественное тиражирование и передача пользователям определенных версий комплекса с учетом особенностей эксплуатации и частных запросов пользователей.