Merge branch 'master' of https://github.com/javapathfinder/jpf-core
[jpf-core.git] / docs / devel / index.md
1 # JPF Developer Guide #
2
3 From the previous two sections, you have learned that JPF has one recurring, major theme: it is not a monolithic system, but rather a configured collection of components that implement different functions like state space search strategies, report generation and much more. Being adaptive is JPF's answer to the scalability problem of software model checking.
4
5 This not only makes JPF a suitable system for research, but chances are that if are you serious enough about JPF application, you sooner or later end up extending it. This section includes the following topics which describe the different mechanisms that can be used to extend JPF.
6
7  * [Top-level design](design)
8  * Key mechanisms, such as 
9      - [ChoiceGenerators](choicegenerator)
10      - [Partial order reduction](partial_order_reduction)
11      - [Slot and field attributes](attributes)
12  * Extension mechanisms, such as
13      - [Listeners](listener)
14      - [Search Strategies](design)
15      - [Model Java Interface (MJI)](mji)
16      - [Bytecode Factories](bytecode_factory)
17  * Common utility infrastructures, such as
18      - [Logging system](loggin)
19      - [Reporting system](report)
20  * [Running JPF from within your application](embedded)
21  * [Writing JPF tests](jpf_tests)
22  * [Coding conventions](coding_conventions)
23  * [Hosting an Eclipse plugin update site](eclipse_plugin_update)