Слайд 2Основы разработки программного обеспечения
Задачами дисциплины является изучение:
методов разработки программного обеспечения;
способов создания функциональных
![Основы разработки программного обеспечения Задачами дисциплины является изучение: методов разработки программного обеспечения;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-1.jpg)
спецификаций;
методов проектирования программных комплексов;
создания абстрактных типов данных;
доказательства правильности программ;
организации тестов;
сопровождения программных комплексов.
Слайд 3Определение
Технология разработки программного обеспечения – это система инженерных принципов для создания экономичного
![Определение Технология разработки программного обеспечения – это система инженерных принципов для создания](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-2.jpg)
ПО с заданными характеристиками качества.
Слайд 4Что такое программа?
Программа = задача + модель + алгоритм + структура данных
Определение
![Что такое программа? Программа = задача + модель + алгоритм + структура](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-3.jpg)
1: Программа – это записанное на понятном некоторому вычислителю языке решение стоящей перед нами задачи.
Определение 2: Компьютерная программа - набор определенных команд, выполняющихся по заданному алгоритму.
Определение 3: Программа - данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определённого алгоритма. (ГОСТ 19781—90. ЕСПД. Термины и определения)
Определение 4: Программное обеспечение - совокупность программ системы обработки информации и программных документов, необходимых для их эксплуатации. (ГОСТ 19781—90. ЕСПД. Термины и определения)
Слайд 5Свойства ПО
Необходимость документирования.
Эффективность.
Надежность. В том числе:
- Тестирование программы при всех допустимых
![Свойства ПО Необходимость документирования. Эффективность. Надежность. В том числе: - Тестирование программы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-4.jpg)
спецификациях входных данных
- Защита от неправильных действий пользователя
- Защита от взлома - пользователи должны иметь возможность взаимодействия с ПО только через легальные интерфейсы.
Возможность сопровождения.
Слайд 6 Этапы жизненного цикла ПО
анализ требований, предъявляемых к системе;
определение спецификаций;
проектирование;
![Этапы жизненного цикла ПО анализ требований, предъявляемых к системе; определение спецификаций; проектирование;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-5.jpg)
кодирование;
тестирование:
а) автономное;
б) комплексное;
эксплуатация и сопровождение.
Слайд 7Распределение затрат по этапам разработки
![Распределение затрат по этапам разработки](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-6.jpg)
Слайд 8Анализ требований, предъявляемых к системе
На этом этапе формулируется целевое назначение и основные
![Анализ требований, предъявляемых к системе На этом этапе формулируется целевое назначение и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-7.jpg)
свойства разрабатываемой программной системы.
Базовые требования для программных систем:
Время обработки (работы) программы;
Стоимость обработки;
Вероятность ошибки;
Реакция на непредсказуемые действия оператора (защита от дурака) и др.
Слайд 9Определение спецификаций
На этапе определения спецификаций:
осуществляется точное описание функций, реализуемых ЭВМ;
задается структура входных
![Определение спецификаций На этапе определения спецификаций: осуществляется точное описание функций, реализуемых ЭВМ;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-8.jpg)
и выходных данных, методы и средства их размещения;
определяются алгоритмы обработки данных.
Слайд 10Проектирование
На стадии проектирования разрабатываются алгоритмы, задаваемые спецификациями, и формируется общая структура вычислительной
![Проектирование На стадии проектирования разрабатываются алгоритмы, задаваемые спецификациями, и формируется общая структура](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-9.jpg)
системы.
При этом система разбивается на составные части.
Для каждого определенного таким образом модуля системы должны быть сформированы предъявляемые к нему требования.
Слайд 11Схема проектирования программных систем
![Схема проектирования программных систем](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-10.jpg)
Слайд 12Кодирование
Данный этап является наиболее простым, а его реализация существенно облегчается при использовании
![Кодирование Данный этап является наиболее простым, а его реализация существенно облегчается при](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-11.jpg)
алгоритмических языков высокого уровня.
Кодирование – это этап разработки программного обеспечения, доставляющий наименьшее беспокойство разработчику.
Слайд 13Тестирование
Стадии тестирования:
Автономное (модуль проверяется с помощью подготовленных программистом данных).
Комплексное (совместная проверка групп
![Тестирование Стадии тестирования: Автономное (модуль проверяется с помощью подготовленных программистом данных). Комплексное](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-12.jpg)
программных компонент).
Системное (проверка системы в целом с помощью независимых тестов).
Слайд 14Критерии правильности выполнения программы
Каждый оператор должен быть выполнен, по крайней мере, один
![Критерии правильности выполнения программы Каждый оператор должен быть выполнен, по крайней мере,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-13.jpg)
раз для заданного набора тестов.
Каждая ветвь программы должна быть опробована.
Каждый путь в программе должен быть испытан хотя бы один раз с использованием набора тестовых данных.
Для каждой спецификации программы необходимо располагать набором тестовых данных, позволяющих установить, что программа правильно реализует данную спецификацию.
Слайд 15Аттестация, испытание и верификация
Аттестация – общий процесс создания правильных программ с помощью
![Аттестация, испытание и верификация Аттестация – общий процесс создания правильных программ с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-14.jpg)
процедур испытания и верификации.
Испытание системы осуществляется посредством тестирования. Цель такой проверки – показать, что система функционирует в соответствии с разработанными на нее спецификациями.
Верификация заключается в выполнении доказательств, что программа удовлетворяет своим спецификациям.
Слайд 16Отклонения от нормальной работы системы
Сбой системы – это явление, связанное с нарушением
![Отклонения от нормальной работы системы Сбой системы – это явление, связанное с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-15.jpg)
системой установленных на нее спецификаций.
Выброс – данные, при обработке которых правильными алгоритмами системы происходит сбой.
Ошибка – это алгоритмический дефект, который создает выброс (программная ошибка).
Слайд 17Правильность и надёжность
Правильная программа – это та, что удовлетворяет своим спецификациям.
Надежная программа
![Правильность и надёжность Правильная программа – это та, что удовлетворяет своим спецификациям.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-16.jpg)
выдает приемлемый результат даже в том случае, когда входные данные либо условия ее использования не удовлетворяют принятым допущениям.
В правильной системе нет ошибок, а ее внутренние данные не содержат выбросов.
Система называется надежной, если, несмотря на сбои, она продолжает удовлетворительно функционировать.
Слайд 19Причины изменения системы в процессе эксплуатации
Заказчик обычно не может четко сформулировать свои
![Причины изменения системы в процессе эксплуатации Заказчик обычно не может четко сформулировать](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/904363/slide-18.jpg)
требования, редко бывает удовлетворен созданной системой и поэтому настаивает на внесении изменений в готовую систему.
Могут быть обнаружены ошибки, пропущенные при тестировании.
Могут потребоваться специальные модификации системы для частных условий функционирования, связанные с различными применениями.
Сопровождение многочисленных компонентов системы.