Машина X: Теория, варианты и применение в тестировании программного обеспечения.
X-machine
X-машина: теоретическая модель вычислений, предложенная Эйленбергом. Структурно схожа с конечным автоматом, оперирует отношениями X→X. Применение в лексической семантике.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
X-машина (XM) — это теоретическая модель вычислений, предложенная Сэмюэлем Эйленбергом в 1974 году. Буква X в названии "X-машина" обозначает фундаментальный тип данных, с которым работает машина; например, машина, работающая с базами данных (объектами типа "база данных"), будет машиной для работы с базами данных. Модель X-машины структурно идентична автомату с конечным числом состояний, за исключением того, что символы, используемые для обозначения переходов, представляют собой отношения типа X→X. Переход по переходу эквивалентен применению отношения, которым он помечен (вычислению множества изменений типа данных X), а проход по пути в машине соответствует последовательному применению всех связанных отношений.
The X machine (XM) is a theoretical model of computation introduced by Samuel Eilenberg in 1974. The X in "X machine" represents the fundamental data type on which the machine operates; for example, a machine that operates on databases (objects of type database) would be a database machine. The X machine model is structurally the same as the finite state machine, except that the symbols used to label the machine's transitions denote relations of type X→X. Crossing a transition is equivalent to applying the relation that labels it (computing a set of changes to the data type X), and traversing a path in the machine corresponds to applying all the associated relations, one after the other.
2000-е годы
Машины X были применены к лексической семантике Андрашем Корнаем, который моделирует значение слова с помощью "указанных" машин, в которых один член базового множества X выделен. Применение к другим областям лингвистики, в частности к современной переформулировке грамматики Панини, было впервые осуществлено Жераром Хуэтом и его коллегами.
X machines have been applied to lexical semantics by András Kornai, who models word meaning by `pointed' machines that have one member of the base set X distinguished. Application to other branches of linguistics, in particular to a contemporary reformulation of Pāṇini were pioneered by Gerard Huet and his co workers
Основные варианты
Машину X редко можно встретить в исходной форме, но она является основой для нескольких последующих моделей вычислений. Наиболее влиятельной моделью в теориях тестирования программного обеспечения стала машина Stream X. Недавно NASA обсуждало возможность использования комбинации Communicating Stream X Machines и процесса WSCSS при проектировании и тестировании систем групповых спутников. В связи с этим, она связана с исследованиями в теории гипервычислений.
The X machine is rarely encountered in its original form, but underpins several subsequent models of computation. The most influential model on theories of software testing has been the Stream X Machine. NASA has recently discussed using a combination of Communicating Stream X Machines and the process calculus WSCSS in the design and testing of swarm satellite systems. it is consequently related to work in hypercomputation theory.
Поток X-машина (SXM)
Наиболее распространенным вариантом машины X является модель Stream X Machine (SXM) 1993 года разработки Gilbert Laycock. Stream X Machine отличается от оригинальной модели Эйленберга тем, что фундаментальный тип данных X имеет вид Out* × Mem × In*, где In* – последовательность входов, Out* – последовательность выходов, а Mem – (остальная часть) памяти. Преимущество этой модели заключается в том, что она позволяет пошагово управлять системой, переходя из состояния в состояние, и наблюдать выходные данные на каждом шаге. Эти данные являются свидетельствами, гарантирующими выполнение определенных функций на каждом этапе. В результате сложные программные системы можно разложить на иерархию Stream X Machines, разработанных сверху вниз и протестированных снизу вверх. Этот подход к проектированию и тестированию, основанный на принципе "разделяй и властвуй", подтверждается доказательством корректной интеграции, предложенным Florentin Ipate, которое показывает, что тестирование слоистых машин по отдельности эквивалентно тестированию составной системы.
The most commonly encountered X machine variant is Gilbert Laycock's 1993 Stream X Machine (SXM) model, The Stream X Machine differs from Eilenberg's original model, in that the fundamental data type X is of the form Out* × Mem × In*, where In* is an input sequence, Out* is an output sequence, and Mem is the (rest of the) memory. The advantage of this model is that it allows a system to be driven, one step at a time, through its states and transitions, while observing the outputs at each step. These are witness values, that guarantee that particular functions were executed on each step. As a result, complex software systems may be decomposed into a hierarchy of Stream X Machines, designed in a top down way and tested in a bottom up way. This divide and conquer approach to design and testing is backed by Florentin Ipate's proof of correct integration, which proves how testing the layered machines independently is equivalent to testing the composed system.
Коммуникационный поток X-машины (CSXM)
Первая полностью формальная модель композиции конкурентных X-машин была предложена в 1999 году Кристиной Вертан и Хориа Жоржеску, основываясь на более ранних работах Филиппа Берда и Энтони Коулинга по взаимодействующим автоматам. В модели Вертан машины взаимодействуют косвенно, посредством общей матрицы коммуникаций (по сути, массива ячеек), а не напрямую через общие каналы. Bălănescu, Cowling, Georgescu, Vertan и другие подробно изучили формальные свойства этой модели CSXM. Можно вывести полные отношения ввода-вывода. Матрица коммуникаций определяет протокол для синхронного взаимодействия. Преимущество этого подхода заключается в том, что он разделяет обработку каждой машины и их взаимодействие, позволяя независимо тестировать каждое поведение. Было доказано, что эта композиционная модель эквивалентна стандартной Stream X-машине, что позволяет использовать более раннюю теорию тестирования, разработанную Холкомбом и Ипатом. Этот вариант X-машины рассматривается более подробно на отдельной странице.
The first fully formal model of concurrent X machine composition was proposed in 1999 by Cristina Vertan and Horia Georgescu, based on earlier work on communicating automatata by Philip Bird and Anthony Cowling. In Vertan's model, the machines communicate indirectly, via a shared communication matrix (essentially an array of pigeonholes), rather than directly via shared channels. Bălănescu, Cowling, Georgescu, Vertan and others have studied the formal properties of this CSXM model in some detail. Full input/output relations can be shown. The communication matrix establishes a protocol for synchronous communication. The advantage of this is that it decouples each machine's processing from their communication, allowing the separate testing of each behaviour. This compositional model was proven equivalent to a standard Stream X Machine, so leveraging the earlier testing theory developed by Holcombe and Ipate. This X machine variant is discussed in more detail on a separate page.
Объект "Машина-Икс" (OXM)
Кирилл Богданов и Энтони Саймонс разработали несколько вариантов машины X для моделирования поведения объектов в объектно-ориентированных системах. Эта модель отличается от подхода Stream X Machine тем, что монолитный тип данных X распределен между несколькими объектами и инкапсулирован ими, которые последовательно компонуются; а системы функционируют за счет вызовов и возвратов методов, а не за счет входов и выходов. Последующие исследования в этой области были посвящены адаптации теории формального тестирования в контексте наследования, которое разбивает пространство состояний суперкласса на расширенные объекты подкласса. В 2002 году Саймонс и Станнетт разработали модель "CCS augmented X machine" (CCSXM) для поддержки полного поведенческого тестирования объектно-ориентированных систем при наличии асинхронной коммуникации. Предполагается, что она будет иметь некоторое сходство с недавним предложением NASA, однако окончательного сравнения этих двух моделей пока не проводилось.
Kirill Bogdanov and Anthony Simons developed several variants of the X machine to model the behaviour of objects in object oriented systems. This model differs from the Stream X Machine approach, in that the monolithic data type X is distributed over, and encapsulated by, several objects, which are serially composed; and systems are driven by method invocations and returns, rather than by inputs and outputs. Further work in this area concerned adapting the formal testing theory in the context of inheritance, which partitions the state space of the superclass in extended subclass objects. A "CCS augmented X machine" (CCSXM) model was later developed by Simons and Stannett in 2002 to support complete behavioural testing of object oriented systems, in the presence of asynchronous communication This is expected to bear some similarity with NASA's recent proposal; but no definitive comparison of the two models has as yet been conducted.
Загружаемые технические отчеты
M. Stannett и A. J. H. Simons (2002) Полное поведенческое тестирование объектно-ориентированных систем с использованием CCS Augmented X Machines. Технический отчет CS 02 06, кафедра информатики, Университет Шеффилда. Скачать
J. Aguado и A. J. Cowling (2002) Основы теории X-машин для тестирования. Технический отчет CS 02 06, кафедра информатики, Университет Шеффилда. Скачать
J. Aguado и A. J. Cowling (2002) Системы взаимодействующих X-машин для спецификации распределенных систем. Технический отчет CS 02 07, кафедра информатики, Университет Шеффилда. Скачать
M. Stannett (2005) Теория X-машин, часть 1. Технический отчет CS 05 09, кафедра информатики, Университет Шеффилда. Скачать
M. Stannett and A. J. H. Simons (2002) Complete Behavioural Testing of Object Oriented Systems using CCS Augmented X Machines. Tech Report CS 02 06, Dept of Computer Science, University of Sheffield. Download
J. Aguado and A. J. Cowling (2002) Foundations of the X machine Theory for Testing. Tech Report CS 02 06, Dept of Computer Science, University of Sheffield. Download
J. Aguado and A. J. Cowling (2002) Systems of Communicating X machines for Specifying Distributed Systems. Tech Report CS 02 07, Dept of Computer Science, University of Sheffield. Download
M. Stannett (2005) The Theory of X Machines Part 1. Tech Report CS 05 09, Dept of Computer Science, University of Sheffield. Download