Java PathFinder

Java PathFinder

Java PathFinder (JPF) — свободный инструмент для проверки многопоточных Java программ. По своей сути это виртуальная Java машина (англ. Java Virtual Machine) на основе которой реализованы методы проверки моделей (англ. model checking). Это означает, что JPF выполняет программу не один раз, как это делает обычная виртуальная машина, а по всем возможным путям, связанным с переключением потоков планировщиком. JPF находит такие ошибки как тупики, необработанные исключения, а также нарушения условий, задаваемых пользователем в виде assert выражений. Кроме того, пользователь может писать специальные слушатели (англ. listener-extensions) для проверки произвольных свойств. Некоторые из таких слушателей, такие как состояния гонок и ограничения на кучу (англ. heap bounds) поставляются вместе с JPF. При нахождении ошибки JPF выводит полную трассу, которая к ней ведет, включая все необходимые переключения планировщика.

В общем случае JPF способен проверять любые Java программы, которые не зависят от не поддерживаемых native методов. Виртуальная машина JPF не может выполнять платформенно зависимый код. Это накладывает существенные ограничения на то, какие стандартные библиотеки могут использоваться тестируемым приложением. Хотя в принципе возможно написать для этих библиотек специальные обертки (используя Model Java Interface), но на данный момент в JPF нет поддержки java.awt, java.net, и только ограниченная поддержка java.io и reflection. Другое ограничение JPF — по месту необходимому для хранения состояния, что ограничивает размеры проверяемых приложений до ~10kloc (в зависимости от их внутренней структуры). Для решения проблем масштабирования JPF предоставляет гибкие механизмы расширения, которые позволяют подстраивать его под конкретные приложения и проверяемые свойства. Кроме того, данные механизмы позволяют рассматривать JPF как framework для различного рода техник верификации. Из за ограничений на библиотеки и размер приложений JPF до настоящего времени использовался для приложений, которые являются моделями, но написаны на полноценном языке программирования Java.

JPF разработан в NASA. Распространяется под свободной лицензией NASA Open Source Agreement version 1.3.

Литература

  • Model Checking Programs. W. Visser, K. Havelund, G. Brat, S. Park and F. Lerda. Automated Software Engineering Journal.Volume 10, Number 2, April 2003. [1]
  • Addressing Dynamic Issues of Program Model Checking. F. Lerda and W. Visser. Proccedings of SPIN2001. Toronto, May 2001. [2]

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "Java PathFinder" в других словарях:

  • Java Pathfinder — Infobox Software name = Java Pathfinder logo= caption = developer = NASA latest release version = 1.0a latest release date = October 6, 2005 operating system = Cross platform genre = Model checking license = NASA Open Source Agreement version 1.3 …   Wikipedia

  • Pathfinder — or pathfinders may refer to:Astronomy* Mars Pathfinder, NASA exploration probe * Space Shuttle Pathfinder, space shuttle mockup known as OV 098Computer science* Path Finder, a shareware file browser for Mac OS X * Pathfinder Networks, method for… …   Wikipedia

  • Java (значения) — …   Википедия

  • Model checking — This article is about checking of models in computer science. For the checking of models in statistics, see regression model validation. In computer science, model checking refers to the following problem: Given a model of a system, test… …   Wikipedia

  • Проверка моделей — (проверка на модели, англ. model checking)  метод автоматической формальной верификации параллельных систем с конечным числом состояний. Позволяет проверить удовлетворяет ли заданная модель системы формальным спецификациям. В качестве… …   Википедия

  • JPF — Jefferson Pilot Financial (Business » Firms) * Java PathFinder (Computing » General) * Jewish Peace Fellowship (Community » Non Profit Organizations) * Jovian Planet Finder (Governmental » NASA) * John s Personal Favorite (Miscellaneous »… …   Abbreviations dictionary

  • Parachute Regiment (United Kingdom) — For a list of parachute regiments from other countries, see Parachute Regiment (disambiguation). The Parachute Regiment Cap Badge of the Parachute Regiment Active …   Wikipedia

  • Morfik — Technology Pty Ltd. Industry Computer software Founded Hobart, Tasmania, AUS (2000) Headquarters Sydney, NSW, Australia …   Wikipedia

  • Liste bedeutender Schiffsversenkungen — Dieser Artikel enthält eine chronologische Auflistung bedeutender Schiffsversenkungen in der Geschichte der Seefahrt. Schiffe, die aus anderen Gründen untergegangen sind, finden sich in den Chroniken bedeutender Seeunfälle, siehe dazu Liste von… …   Deutsch Wikipedia

  • Military history of Australia during World War II — An Australian light machine gun team in action during the Aitape Wewak campaign, June 1945 Australia entered World War II shortly after the invasion of Poland, declaring war on Germany …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»