Giter VIP home page Giter VIP logo

llvmmop's Introduction

                          JavaMOP 2.3.1 README

==1. Overview==
Monitoring-Oriented Programming, abbreviated MOP, is a software development and
analysis framework aiming at reducing the gap between formal specification and
implementation by allowing them together to form a system. In MOP, runtime
monitoring is supported and encouraged as a fundamental principle for building
reliable software: monitors are automatically synthesized from specified
properties and integrated into the original system to check its dynamic
behaviors during execution. When a specification is violated or validated at
runtime, user-defined actions will be triggered, which can be any code from
information logging to runtime recovery. One can understand MOP from at least
three perspectives: as a discipline allowing one to improve safety, reliability
and dependability of a system by monitoring its requirements against its
implementation at runtime; as an extension of programming languages with logics
(one can add logical statements anywhere in the program, referring to past or
future states); and as a lightweight formal method. 

JavaMOP is an instance of MOP for Java.

For more information, refer to the following URL:

  javamop.googlecode.com

==2. Installation==

For detailed installation instructions, please see the INSTALL file.

As the tool is still under active development, it is recommended that you
install JavaMOP directly from the svn repository and update it regularly using

  svn up 

from the base directory to benefit of the latest fixes and features.

==3. Usage==

=3.1 Linux and Mac (POSIX)

If you want to use the Logic Repository Server provided by UIUC, use the
-remote option when using the 'javamop' script.

If you want to use the Logic Repository included in this package, use the
-local option when using the 'javamop' script.

Using the remote repository is the preferred method for computers with viable
Internet connections as it allows us to collect usage statistics used to improve
JavaMOP.

The 'javamop' script has the following usage:

Usage) javamop [-v] [-d <target directory>] <specification file or dir>

-v option is verbose mode -d option is used to specify the target directory
where the resulting aspect code will be saved. Specification files must have
The .mop file extension.

Example) javamop -d examples/FSM/ examples/FSM/HasNext.mop

For more options, type 'javamop' or 'javamop -h'

=3.2 Windows

If you want to use the Logic Repository server provided by UIUC, use -remote
option when using the script 'javamop.bat'

If you want to use the Logic Repository included in this package, use -local
option when using the script 'javamop.bat'

The script, 'javamop.bat' has the following usage.

Usage) javamop.bat [-v] [-d <target directory>] <specification file or dir>

The -v option is used to specify verbose mode. The -d option is used to specify
the target directory where the resulting aspect code will be saved.
Specification files must have The .mop file extension.

Example) javamop.bat -d examples\FSM examples\FSM\HasNext.mop

For more options, type 'javamop.bat' or 'javamop.bat -h'

==4. Additional Features of the JavaMOP Distribution==

=4.1 Executing a Monitored Program

When you execute a monitored program, you need to include the AspectJ library
and JavaMOP Runtime Library in your class path. The JavaMOP Runtime Library is
provided in this package in the javamop2.3/lib directory. A typical value of
this is:

In Windows,
  c:\javamop2.3\lib\javamoprt.jar

In Linux and Mac,
  ~/javamop2.3/lib/javamoprt.jar

Add this to the left end of the "CLASSPATH" followed by ";" (in Windows) or ":"
(in Linux and Mac). For more information, refer to Section 5 from the following
URL http://java.sun.com/j2se/1.4.2/install-windows.html

=4.2 Running the Logic Repository Tool

JavaMOP uses the Logic Repository automatically. Therefore, you do not need to
invoke the Logic Repository explicitly. JavaMOP will connect to the Logic
Repository automatically and retrieve a monitor for the given specification.
However, it is possible to use the Logic Repository directly for other uses.

To use the LogicRepository, type 

  'logicrepository' in Linux and Mac,

  'logicrepository.bat' in Windows.

And provide input through the standard input. For the XML syntax of input, refer
to the following pages:

  http://fsl.cs.uiuc.edu/index.php/Special:LogicRepository2.3

The resulting monitoring code is piped to standard output, in XML format.

=5. Contact Information

We welcome your interest in JavaMOP. Your feedback, comments and bug reports are
highly appreciated. Please feel free to contact us by sending email to
[email protected]. Bugs and feature requests may be submitted at the project
website at javamop.googlecode.com.

llvmmop's People

Contributors

dwightguth avatar seriousamlqz avatar traiansf avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.