Понятия связности модулей и сцепления модулей.
Модуль – именованный фрагмент программного кода, являющийся элементом конструирования физической структуры системы. В общем случае модуль содержит интерфейсную часть и часть реализации. В простейшем случае – это подпрограмма (функция).
Модульность – свойство системы, которая может подвергаться декомпозиции и синтезу.
Связность модуля (Cohesion, прочность) – мера зависимости его частей (в порядке увеличения степени связности):
- Связность по совпадению (по совмещению): нет внутренних связей между частями
- Логическая связность: функциональное подобие различных частей, но нет связей ни по данным, ни по управлению (например, модуль математических функций)
- Временная связность: разные части не связаны, но нужны в один и тот же период работы (например, модуль инициализации программы)
- Процедурная (последовательная) связность: части должны выполняться в определенном порядке в одном сценарии (при этом может не быть связи по данным)
- Коммуникативная связность: части модуля используют одни и те же данные или устройства ввода-вывода
- Информационная связность: выходные данные одной части используются как входные для другой
- Функциональная связность: части модуля вместе реализуют одну функцию
Сцепление модулей (Coupling)– мера взаимозависимости различных модулей (в порядке увеличения степени сцепления):
- Сцепление по данным: передаются простые параметры
|
|
- Сцепление по образцу: передается сложная структура данных
- Сцепление по управлению: модуль A управляет функционированием модуля B (флаги, переключатели)
- Сцепление по внешним ссылкам: модули ссылаются на один и тот же глобальный элемент данных
- Сцепление по общей области: модули разделяют одну и ту же общую область памяти (но типизируют ее по своему)
- Сцепление по содержанию: один модуль прямо ссылается на часть другого модуля не через точку входа
Структурное программирование.
При создании средних по размеру приложений используется структурное программирование – один из методов проектирования, идея которого заключается в том, что структура программы должна отражать структуру решаемой задачи, чтобы алгоритм решения был ясно виден из исходного текста.
Цели структурного программирования:
- Разрабатывать программы минимальной сложности
- Заставить проектировщика мыслить ясно
- Обеспечить восприятие программы со стороны
Требования:
- Отсутствие микроэффективности в ущерб ясности программы
- Правильное оформление (сдвиги, комментарии)
- Разбиение на модули (не более одной страницы текста на подпрограмму)
- Каждый модуль имеет ровно один вход и один выход
|
|
- Типы управляющих структур: последовательное соединение (следование), условное предложение (ветвление), повторение (циклы: обычный, с пост- и пред- условием)
- Избегать GO TO
Структурное тестирование программного обеспечения
Связь процессов тестирования и процессов проектирования.
Тестирование – процесс выполнения программы с целью обнаружения ошибок.
Доказательство правильности – попытка найти ошибки в программе без относительных входных данных.
Контроль (верификация) – поиск ошибок в ПО, при выполнении его в тестовой (моделируемой) среде.
Испытание – поиск ошибок в ПО, при выполнении его в заданной реальной среде.
Отладка – установление точной причины обнаруженной ошибки и ее устранение.
Виды тестирования:
1.Тестирование модуля (автономное, тестирование минимальной единицы программы) - тестирование программного модуля в изолированной от других модулей среде.
2.Интегрированное тестирование (спецификаций и интерфейсов) – тестирование связей между частями системы (модулями, компонентами).
3.Системное (комплексное)– контроль или испытание системы на соответствие исходным целям.
4.Тестирование приемлемости – проверка соответствия программы требованиям пользователя.
|
|
Последовательность подготовки тестов совпадает с последовательностью проектирования. Выполнение же тестирования происходит обратно выполнению проектирования.
Тестирование включает в себя следующие виды деятельности:
1. постановка задачи на тестирование (определение целей). Определяется, кто будет выявлять ошибки, какие виды тестирования и кто будет выполнять.
2. проектирование тестов (составление перечня тестируемых процедур);
3. описание (кодирование) тестов (ручное или автоматическое написание тестов);
4. тестирование тестов (тестируемая программа является тестом для тестов);
5. выполнение тестов;
6. изучение результатов тестирования.
Дата добавления: 2018-06-01; просмотров: 723; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!