Giter VIP home page Giter VIP logo

assess's Introduction

ASSESS

This is the implementation of the ASSESS method, used for preliminary tests.

Method

ASSESS is a passive model learning method for IoT device, that infers a system of LTSs (Labelled Transition Systems) from execution traces. Each LTS of the system will represent a different component of the device, according to two different strategies: Loose-coupling that keep dependency between the components, and Decoupled where we consider that the components are all independent. The method takes formatted traces as input (you can use the TFormat tool to help you format the traces: https://github.com/Elblot/TFormat), with at least one parameter that represents an Identifier of the component that produced it, and generate the model in three steps:

-Traces Extraction: in this step, we separate events in traces that have different identifiers, and are due to different components. Then we put in the same set of traces, the traces that contains events with the same identifiers.

-LTS Generation : For each set of traces, we create an LTS, were each event of a trace is represented by an edge. As most of the IoT device are cyclic, the final states are merged with the initial one.

-LTS synchronization : The LTS are modified in function of the chosen strategy, then reduced with the help of kTail.

Alt text

Contents

ASSESS/src/ contains the implementation of the ASSESS method.

ASSESS/traces contains an example of good formatted traces.

ASSESS/RESULTS The folder that will contains the results, ASSESS/RESULTS/weak contain the result of the run on the traces of ASSESS/traces with the Loose-coupling strategy.

Usage

After compilation, with <ASSESS.jar> your runnable jar:

java -jar <ASSESS.jar> -d <input> -a <strategy> -o <output>

<input> : the folder that contains all your input trace.

<strategy> : "weak" for loosely-coupling strategy, and "strong" for decoupled strategy.

Results are generated in the ASSESS/<output> folder.

Other options:

-t shows the duration of each step of the program.

-w show temporal files used.

Change the identifier parameters

Currently, the parameters considered like identifier are "Host" and "Dest", if you want to change them, you need to change them directly in the code in ASSESS/src/Correlation.java and ASSESS/src/Group.java.

TODO

  • change the name of the strategies options.

  • put the Identifier parameter in an option.

  • error when trace directory does not exist

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.