Developer’s Documentation

File Overview

Beagle consists of multiple subprojects. Each is built using gradle and follows gradle’s conventional project structure where applicable. The repository is structured as follows:

buildSrc Build logic that applies to all or multiple subprojects. Subprojects define further build logic in their own buildSrc folders if they need to.
Core Beagle Core project. It contains the management logic necessary to analyse software for its dynamic properties. It defines an API for Analysers and Measurement Tools that provide information for the analysis. It does not contain any analysers.
Documentation Documentation project. Besides the LyX source files for the main documentation PDF files, it contains various Markdown files that cover various aspects.
Documentation/Meeting Minutes Minutes of team meetings.
GUI Beagle’s graphical user interface. It is intentionally separated to assure Beagle Core remains independent from its user interface(s).
Prototypes Development of new features and integrations of new third party software are often started as prototypes. These serve as a “proof of concept” and show how to use a certain technology. Subfolders of the Prototypes folder are independent Java projects.
Web Presence Build logic, template and content files that create this web presence.

Further Reading

Development Tools Setup
Beagle uses various tools for development. This is a detailed guide to set them up and get started.
Writing Documentation
Guides to write documentation documents for Beagle.
Coding Conventions
Defines best practices for Java Code.
Pull Request Acceptance Checklist
Criteria applied when reviewing GitHub Pull Requests.
Dependency Management
Explains how dependencies are handled for Beagle.
How to Create a Subproject
Guide for developers wishing to create a new subproject for Beagle.