Слайд 2Основы разработки программного обеспечения
Задачами дисциплины является изучение:
методов разработки программного обеспечения;
способов создания функциональных

спецификаций;
методов проектирования программных комплексов;
создания абстрактных типов данных;
доказательства правильности программ;
организации тестов;
сопровождения программных комплексов.
Слайд 3Определение
Технология разработки программного обеспечения – это система инженерных принципов для создания экономичного

ПО с заданными характеристиками качества.
Слайд 4Что такое программа?
Программа = задача + модель + алгоритм + структура данных
Определение

1: Программа – это записанное на понятном некоторому вычислителю языке решение стоящей перед нами задачи.
Определение 2: Компьютерная программа - набор определенных команд, выполняющихся по заданному алгоритму.
Определение 3: Программа - данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определённого алгоритма. (ГОСТ 19781—90. ЕСПД. Термины и определения)
Определение 4: Программное обеспечение - совокупность программ системы обработки информации и программных документов, необходимых для их эксплуатации. (ГОСТ 19781—90. ЕСПД. Термины и определения)
Слайд 5Свойства ПО
Необходимость документирования.
Эффективность.
Надежность. В том числе:
- Тестирование программы при всех допустимых

спецификациях входных данных
- Защита от неправильных действий пользователя
- Защита от взлома - пользователи должны иметь возможность взаимодействия с ПО только через легальные интерфейсы.
Возможность сопровождения.
Слайд 6 Этапы жизненного цикла ПО
анализ требований, предъявляемых к системе;
определение спецификаций;
проектирование;

кодирование;
тестирование:
а) автономное;
б) комплексное;
эксплуатация и сопровождение.
Слайд 7Распределение затрат по этапам разработки

Слайд 8Анализ требований, предъявляемых к системе
На этом этапе формулируется целевое назначение и основные

свойства разрабатываемой программной системы.
Базовые требования для программных систем:
Время обработки (работы) программы;
Стоимость обработки;
Вероятность ошибки;
Реакция на непредсказуемые действия оператора (защита от дурака) и др.
Слайд 9Определение спецификаций
На этапе определения спецификаций:
осуществляется точное описание функций, реализуемых ЭВМ;
задается структура входных

и выходных данных, методы и средства их размещения;
определяются алгоритмы обработки данных.
Слайд 10Проектирование
На стадии проектирования разрабатываются алгоритмы, задаваемые спецификациями, и формируется общая структура вычислительной

системы.
При этом система разбивается на составные части.
Для каждого определенного таким образом модуля системы должны быть сформированы предъявляемые к нему требования.
Слайд 11Схема проектирования программных систем

Слайд 12Кодирование
Данный этап является наиболее простым, а его реализация существенно облегчается при использовании

алгоритмических языков высокого уровня.
Кодирование – это этап разработки программного обеспечения, доставляющий наименьшее беспокойство разработчику.
Слайд 13Тестирование
Стадии тестирования:
Автономное (модуль проверяется с помощью подготовленных программистом данных).
Комплексное (совместная проверка групп

программных компонент).
Системное (проверка системы в целом с помощью независимых тестов).
Слайд 14Критерии правильности выполнения программы
Каждый оператор должен быть выполнен, по крайней мере, один

раз для заданного набора тестов.
Каждая ветвь программы должна быть опробована.
Каждый путь в программе должен быть испытан хотя бы один раз с использованием набора тестовых данных.
Для каждой спецификации программы необходимо располагать набором тестовых данных, позволяющих установить, что программа правильно реализует данную спецификацию.
Слайд 15Аттестация, испытание и верификация
Аттестация – общий процесс создания правильных программ с помощью

процедур испытания и верификации.
Испытание системы осуществляется посредством тестирования. Цель такой проверки – показать, что система функционирует в соответствии с разработанными на нее спецификациями.
Верификация заключается в выполнении доказательств, что программа удовлетворяет своим спецификациям.
Слайд 16Отклонения от нормальной работы системы
Сбой системы – это явление, связанное с нарушением

системой установленных на нее спецификаций.
Выброс – данные, при обработке которых правильными алгоритмами системы происходит сбой.
Ошибка – это алгоритмический дефект, который создает выброс (программная ошибка).
Слайд 17Правильность и надёжность
Правильная программа – это та, что удовлетворяет своим спецификациям.
Надежная программа

выдает приемлемый результат даже в том случае, когда входные данные либо условия ее использования не удовлетворяют принятым допущениям.
В правильной системе нет ошибок, а ее внутренние данные не содержат выбросов.
Система называется надежной, если, несмотря на сбои, она продолжает удовлетворительно функционировать.
Слайд 19Причины изменения системы в процессе эксплуатации
Заказчик обычно не может четко сформулировать свои

требования, редко бывает удовлетворен созданной системой и поэтому настаивает на внесении изменений в готовую систему.
Могут быть обнаружены ошибки, пропущенные при тестировании.
Могут потребоваться специальные модификации системы для частных условий функционирования, связанные с различными применениями.
Сопровождение многочисленных компонентов системы.