
- •1. Жизненный цикл программной системы.
- •2. Классический подход к созданию программных систем.
- •3. Понятия связности модулей и сцепления модулей.
- •4. Структурное программирование.
- •Структурное тестирование программного обеспечения
- •1. Связь процессов тестирования и процессов проектирования.
- •2. Уровни тестирования и виды тестирования.
- •3. Стратегия тестирования.
- •4. Тестирование программного модуля.
- •5. Восходящее и нисходящее тестирование.
- •6. Методы тестирования: модифицированный нисходящий, монолитный, сандвич, модифицированный сандвич.
- •7. Системное тестирование: метод функциональных диаграмм.
- •Объектно-ориентированный подход к разработке по
- •1. Абстрагирование и инкапсуляция
- •2. Модульность программных систем
- •3. Виды иерархий в программных системах.
- •4. Понятие объекта. Состояние, поведение и индивидуальность объекта.
- •5. Отношение между объектами: использование, включение.
- •6. Отношение простого наследования классов.
- •7. Добавление, замещение и уточнение методов класса при наследовании.
- •8. Отношение ассоциации между классами, включая агрегацию.
- •9. Отношение зависимости между классами, отношение реализации.
- •Шаблоны проектирования
- •1. Шаблон «Одиночка» Singleton
- •2. Шаблон «Фабричный метод» Factory Method
- •3. Шаблон «Декоратор» Decorator
- •4. Шаблон «Стратегии» Strategy
- •5. Шаблон «Компоновщик» Composite.
- •6. Шаблон «Наблюдатель» Observer
- •7. Архитектурные шаблоны (парадигмы).
- •Унифицированный процесс разработки по (rup)
- •1. Основные черты. Фазы и основные потоки работ.
- •2. Документ «Видения». Модель и словарь предметной области.
- •3. Функциональные и нефункциональные требования к системе. Варианты использования системы.
- •4. Прецеденты и отношения между прецедентами.
- •5. Модель анализа и классы анализа.
- •6. Архитектурное представление.
2. Классический подход к созданию программных систем.
“Водопадная модель” (последовательная, классическая).
Этапы разработки ПО:
Систематический анализ – определение целей и назначения ПО. Выполняется моделирование основных алгоритмов. Решаются вопросы организации проектирования. Разрабатываются требования к проекту.
Планирование процесса разработки, распределение кадров, материальных ресурсов, аппаратного обеспечения.
Предварительное проектирование – определяется и появляется структура ПО (внешняя спецификация).
Эти три вида работ выполняются группой анализа и проектирования
Детальное (Внутреннее) проектирование – спецификация на отдельные модули программы (функции, входные параметры).
Кодирование, тестирование модулей (запуск программы для выявления ошибок: обеспечивает повышение надежности), подготовка документации (технический писатель)
Эти два вида работ выполняются группой программирования
Подготовка интегрированных тестов – работа модулей и их взаимосвязь. Интегрированное тестирование.
Системное тестирование – определение ошибок всей системы.
Подготовка приемно-сдаточных тестов. Испытание – поиск ошибок в ПО, при выполнении его в заданной реальной среде.
Эти три вида работ выполняются группой тестирования.
Обучение заказчиков; установка, настройка, сопровождение.
3. Понятия связности модулей и сцепления модулей.
Модуль – именованный фрагмент программного кода, являющийся элементом конструирования физической структуры системы. В общем случае модуль содержит интерфейсную часть и часть реализации. В простейшем случае – это подпрограмма (функция).
Модульность – свойство системы, которая может подвергаться декомпозиции и синтезу.
Связность модуля (Cohesion, прочность) – мера зависимости его частей (в порядке увеличения степени связности):
Связность по совпадению (по совмещению): нет внутренних связей между частями
Логическая связность: функциональное подобие различных частей, но нет связей ни по данным, ни по управлению (например, модуль математических функций)
Временная связность: разные части не связаны, но нужны в один и тот же период работы (например, модуль инициализации программы)
Процедурная (последовательная) связность: части должны выполняться в определенном порядке в одном сценарии (при этом может не быть связи по данным)
Коммуникативная связность: части модуля используют одни и те же данные или устройства ввода-вывода
Информационная связность: выходные данные одной части используются как входные для другой
Функциональная связность: части модуля вместе реализуют одну функцию
Сцепление модулей (Coupling) – мера взаимозависимости различных модулей (в порядке увеличения степени сцепления):
Сцепление по данным: передаются простые параметры
Сцепление по образцу: передается сложная структура данных
Сцепление по управлению: модуль A управляет функционированием модуля B (флаги, переключатели)
Сцепление по внешним ссылкам: модули ссылаются на один и тот же глобальный элемент данных
Сцепление по общей области: модули разделяют одну и ту же общую область памяти (но типизируют ее по своему)
Сцепление по содержанию: один модуль прямо ссылается на часть другого модуля не через точку входа