- •Технология программирования. Качество программных систем.
- •Аспекты качества оценки программных систем.
- •Стадии разработки программного обеспечения.
- •Внедрение:
- •Разработка спецификаций.
- •Разработка спецификаций методом структурного анализа.
- •Разработка спецификаций оперативно-графическим методом (hipo).
- •Документирование программного обеспечения.
- •Проектирование систем.
- •Определение основных компонентов системы.
- •Определение потоков данных.
- •Определение процессов.
- •Методы разработки данных.
- •Графические диаграммы (граф-диаграммы)
- •Диаграммы Варнье-Орра.
- •Функциональные схемы.
- •Проектирование программ.
- •Группы методов проектирования программ:
- •Метод нисходящего проектирования.
- •Пошаговое уточнение.
- •Модульная структура программ.
- •Монолитно-модульная структура.
- •Последовательно-модульная структура.
- •Модульно-иерархическая структура.
- •Модульно-хаотическая структура.
- •Технологический цикл конструирования программной системы (пс): три процесса.
- •Модель анализа:
- •Этап проектирования
- •Этап кодирования
- •Этап проектирования
- •Проверенная и объединённая пс
- •Особенности этапа проектирования.
- •Предварительное
- •Детальное
- •Интерфейсное
- •Структурирование систем.
- •Управление
- •Моделирование управления.
- •Модель централизованного управления.
- •Главная
- •Обработчик событий и
- •Прерывания
- •Обработчик
- •Процесс
- •Декомпозиция подсистем на модули. Модульность.
- •Характеристики модуля.
- •Последовательная связность.
- •Коммуникативная связность.
- •Модуль отчёт о средней зарплате
- •Процедурная связность.
- •Модуль вычисления средних значений
- •Модуль вычисления средних значений
- •Временная связность.
- •Модуль инициализировать систему
- •Логическая связность.
- •По совпадению.
- •Сцепление модулей.
- •Сложность программной системы.
- •Программная документация.
- •Средства проектирования прикладных программ.
- •Графическое построение схем алгоритмов и программ.
- •Разработка схем алгоритмов и программ с использованием конкретного языка программирования.
- •Использование специальных языков проектирования программ, псевдокодов.
- •Реализация программ.
- •Программирование на языках высокого уровня:
- •Программирование с защитой от ошибок.
- •Структурное программирование.
- •Программирование в стандартизированном стиле.
- •Основные принципы стандартизации стиля программирования:
- •Правила размещения фрагментов исходного текста.
- •Правила составления комментариев.
- •Основное правило составления пояснительных комментариев.
- •Правило выбора имён.
- •Правило обеспечения наглядности логической структуры.
- •Нисходящее программирование.
- •Методы проверки программ:
- •Тестирование программного обеспечения.
- •Тестирование элементов.
- •Тестирование интеграций.
- •Нисходящее тестирование интеграций.
- •Возможные шаги процесса нисходящей интеграции:
- •Восходящие тестирования интеграций.
- •Сравнение нисходящего и восходящего тестирования.
- •Тестирование правильности.
- •Системное тестирование.
- •Основные типы системных тестов.
- •Тестирование восстановления.
- •Тестирование безопасности.
- •Стрессовое тестирование.
- •Тестирование производительности.
- •Аксиомы тестирования.
- •Отладка.
- •Общая схема сопровождения по.
Методы проверки программ:
Статическая проверка.
Анализ программы без её выполнения на ЭВМ. Здесь проверяется программа или проектное решение, если проверка проводится до стадии рабочего проекта. В результате составляется описание обнаруженных несоответствий в программе или между программой и принятыми стандартами и соглашениями.
Динамическая проверка.
Разработка и выполнение на ЭВМ наборов текстовых данных с целью обнаружения ошибок, включает в себя 3-и этапа:
Разработка тестов.
Использование программы или моделирование использования.
Анализ полученных результатов.
Тестирование программного обеспечения.
(динамическая проверка)
Тестирование – выполнение программы с целью найти ошибки. Процесс тестирования можно поделить на этапы:
Тестирование элементов.
Цель: индивидуальная проверка каждого модуля. Используется стратегия белого ящика.
Тестирование интеграций.
Цель: тестирование сборки модулей в программную систему. Используется стратегия чёрного ящика.
Тестирование правильности.
Цель: проверить реализацию в программной системе всех функциональных и поведенческих требований, а также эффективности. Используется чёрный ящик.
Системное тестирование.
Цель: проверка правильности объединения и взаимодействия всех элементов компьютерной системы, реализацию всех системных функций.
Тестирование элементов.
Объект тестирования – наименьшая единица проектирования программной системы – модуль. Тестированию подвергаются:
интерфейс модуля;
внутренние структуры данных;
независимые пути;
пути обработки ошибок;
граничные условия.
Наиболее общие ошибки в вычислениях:
не правильный или не понятный приоритет арифметических операций;
смешанная форма операций;
некорректная инициализация;
несогласованность в представлении точности;
некорректное символическое представление выражения.
Источники ошибок сравнения и не правильных потоков управления.
Сравнение различных типов данных.
Некорректные логические операции и приоритетность.
Ожидание эквивалентности в условиях, когда ошибки точности делают эквивалентность невозможной.
Некорректное сравнение переменных.
Не правильное прекращение цикла.
Отказ в выходе при отклонении в итерации.
Не правильное изменение переменных цикла.
Тестирование интеграций.
Цель сборки и тестирования интеграций: взять модуль, протестировать как элементы и построить программную структуру, требуемую проектом. Тесты проводятся для обнаружения ошибок интерфейса.
Категории ошибок интерфейса:
потеря данных при прохождении через интерфейс;
отсутствие в модуле необходимой ссылки;
неблагоприятное влияние одного модуля на другой;
подфункции при объединении не образуют требуемую главную функцию;
отдельные допустимые неточности при интеграции выходят за допустимый уровень;
проблемы при работе с глобальными структурами данных.
Существует 2 варианта тестирования, поддерживающих процесс интеграции:
нисходящее;
восходящее.