На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

2
Ожидается:
16 Июня 2024

Управляемое тестами имитационное моделирование

Статья опубликована в выпуске журнала № 3 за 2007 год.
Аннотация:
Abstract:
Автор: Щетинин Д.В. () -
Ключевое слово:
Ключевое слово:
Количество просмотров: 8672
Версия для печати
Выпуск в формате PDF (2.31Мб)

Размер шрифта:       Шрифт:

Представленная около пяти лет назад методология управляемой тестами разработки сейчас достаточно широко и успешно применяется на практике при создании программного обеспечения в различных предметных областях (см.: К. Бек. Экстремальное программирование. Разработка через тестирование. СПб. 2003). Однако существует ряд приложений, где эффективность, да и сама возможность ее использования неочевидны и требуют отдельных исследований, например, в задачах разработки пользовательского интерфейса, визуализации данных, хранения и обработки больших объемов информации, компьютерного имитационного моделирования. Источниками проблем, потенциально ограничивающими возможности применения методологии управляемой тестами разработки, здесь могут стать:

·     стохастическое поведение моделируемой системы (результаты выполнения тестов должны быть детерминированными);

·     моделирование динамических систем (тесты должны отражать не только конечный результат, но и ожидаемые изменения состояния системы);

·     большие объемы данных, значительно повышающие трудоемкость создания тестов.

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

Случайности. Наличие случайных величин не оказывает серьезного влияния на процесс управляемой тестами разработки. Представление определенных факторов как случайных является отказом от их детального моделирования, поэтому структура соответствующего программного модуля обычно проста и представляет собой генерацию случайной величины по заданному закону. Создание направляющих тестов и их реализация в этом случае не представляют особых трудностей. Тем не менее, этим тестам следует уделить достаточное внимание, поскольку в ходе развития модели может возникнуть необходимость перехода к более детальному моделированию процессов, стоящих за случайными факторами.

Динамика. Тесты, отражающие изменения в системе, могут быть построены на базе одного из следующих подходов.

·     Проверка факта возникновения события. Подход реализуется на базе механизмов оповещения (например, Announcements в современных средах Smalltalk) и удобен для описания отдельных событий в системе.

·     Анализ протокола. Подход более удобен для описания сложных процессов, включающих в себя множество событий. Задействованные объекты должны протоколировать (сами или с помощью специального компонента) интересующие разработчика события. Проверка осуществляется путем сравнения протоколов, представленных в виде набора объектов, характеризующих отдельные события.

·     С помощью техники фиктивных (mock-) объектов, когда рассматриваемый процесс оказывается слишком сложным для описания в рамках одного теста. В этом случае выделяется подсистема, чье поведение будет тестироваться. Остальные объекты (контекст) заменяются фиктивными объектами, моделирующими поведение реальных. За счет этого удается более точно выделить тот аспект системы, поведение которого описывается данным тестом.

Большие объемы тестовых данных. Эта проблема в первую очередь связана с динамикой, так как при создании тестов требуется описать состояние системы для значительного количества моментов модельного времени. Ограничить рост объемов данных, требующихся при создании модульных тестов, можно за счет правильного применения методов управляемой тестами разработки в сочетании с принципом объектно-ориентирован­ного дизайна. Существенное внимание необходимо уделять процессу рефакторинга системы. Если удается поддерживать разбиение системы на множество несложных компонент с небольшим количеством связей между ними, модульные тесты обычно не требуют подготовки и описания слишком больших объемов данных. Важную роль здесь также играет использование техники mock-объектов.

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

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


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=352
Версия для печати
Выпуск в формате PDF (2.31Мб)
Статья опубликована в выпуске журнала № 3 за 2007 год.

Возможно, Вас заинтересуют следующие статьи схожих тематик: