Понятия связности модулей и сцепления модулей.



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

Модульность – свойство системы, которая может подвергаться декомпозиции и синтезу.

Связность модуля (Cohesion, прочность) – мера зависимости его частей (в порядке увеличения степени связности):

- Связность по совпадению (по совмещению): нет внутренних связей между частями

- Логическая связность: функциональное подобие различных частей, но нет связей ни по данным, ни по управлению (например, модуль математических функций)

- Временная связность: разные части не связаны, но нужны в один и тот же период работы (например, модуль инициализации программы)

- Процедурная (последовательная) связность: части должны выполняться в определенном порядке в одном сценарии (при этом может не быть связи по данным)

- Коммуникативная связность: части модуля используют одни и те же данные или устройства ввода-вывода

- Информационная связность: выходные данные одной части используются как входные для другой

- Функциональная связность: части модуля вместе реализуют одну функцию

Сцепление модулей (Coupling)– мера взаимозависимости различных модулей (в порядке увеличения степени сцепления):

- Сцепление по данным: передаются простые параметры

- Сцепление по образцу: передается сложная структура данных

- Сцепление по управлению: модуль A управляет функционированием модуля B (флаги, переключатели)

- Сцепление по внешним ссылкам: модули ссылаются на один и тот же глобальный элемент данных

- Сцепление по общей области: модули разделяют одну и ту же общую область памяти (но типизируют ее по своему)

- Сцепление по содержанию: один модуль прямо ссылается на часть другого модуля не через точку входа

 

Структурное программирование.

При создании средних по размеру приложений используется структурное программирование – один из методов проектирования, идея которого заключается в том, что структура программы должна отражать структуру решаемой задачи, чтобы алгоритм решения был ясно виден из исходного текста.

Цели структурного программирования:

- Разрабатывать программы минимальной сложности

- Заставить проектировщика мыслить ясно

- Обеспечить восприятие программы со стороны

Требования:

- Отсутствие микроэффективности в ущерб ясности программы

- Правильное оформление (сдвиги, комментарии)

- Разбиение на модули (не более одной страницы текста на подпрограмму)

- Каждый модуль имеет ровно один вход и один выход

- Типы управляющих структур:  последовательное соединение (следование), условное предложение (ветвление), повторение (циклы: обычный, с пост- и пред- условием)

- Избегать GO TO

 


Структурное тестирование программного обеспечения

Связь процессов тестирования и процессов проектирования.

Тестирование – процесс выполнения программы с целью обнаружения ошибок.

Доказательство правильности – попытка найти ошибки в программе без относительных входных данных.

Контроль (верификация) – поиск ошибок в ПО, при выполнении его в тестовой (моделируемой) среде.

Испытание – поиск ошибок в ПО, при выполнении его в заданной реальной среде.

Отладка – установление точной причины обнаруженной ошибки и ее устранение.

Виды тестирования:

1.Тестирование модуля (автономное, тестирование минимальной единицы программы) - тестирование программного модуля в изолированной от других модулей среде.

2.Интегрированное тестирование (спецификаций и интерфейсов) – тестирование связей между частями системы (модулями, компонентами).

3.Системное (комплексное)– контроль или испытание системы на соответствие исходным целям.

4.Тестирование приемлемости – проверка соответствия программы требованиям пользователя.

Последовательность подготовки тестов совпадает с последовательностью проектирования. Выполнение же тестирования происходит обратно выполнению проектирования.

Тестирование включает в себя следующие виды деятельности:

1. постановка задачи на тестирование (определение целей). Определяется, кто будет выявлять ошибки, какие виды тестирования и кто будет выполнять.

2. проектирование тестов (составление перечня тестируемых процедур);

3. описание (кодирование) тестов (ручное или автоматическое написание тестов);

4. тестирование тестов (тестируемая программа является тестом для тестов);

5. выполнение тестов;

6. изучение результатов тестирования.

 


Дата добавления: 2018-06-01; просмотров: 723; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!