Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools

High Level Architecture


More details can be found in the repository:

Changed Concepts

The concept Detector vanishes is is replaced by the concept Query and subsoncepts Metric, Smelldetector and special typed queries, such as TermFrequencyQuery and TermSurprisingnessQuery. That way, we only need to implement scheduling and caching for the query concept and it will work for everything we are doing.

Plugins and their responsibilities

Domain independent plugins

  1. The core (org.cs3.cultivate.core): Handles eclipse lifecycle of cultivate, provides interface to PDT and abstraction of query results. Queries are executed and cached by the repository, the refresher takes care of rescheduling queries.
  2. Basics (org.cs3.cultivate.basic): Abstraction of smells and metrics (in Java and Prolog); contains set of basic predicates for analysis and metric computation; provides common metrics
  3. Generic UI (org.cs3.cultivate.genericui): Generic result view for metrics and smells; Preference page for marker configuration; marker refresher takes care of markers being updated

Domain specific plugins

  1. Architecture (org.cs3.cultivate.architecture): Responsible for defining layers, assigning packages to layers and defining access rules between layers; checks if architecture is well defined and if any rules are violated.
  2. Structural dependencies (org.cs3.cultivate.structure): Views for package/class dependencies (in diagrams) and R.C.M. Metrics.
  3. Conceptual Analysis (org.cs3.cultivate.concepts): View for a term cloud with tf & tfxidf metric.

Layering inside a domain specific plugin (e.g. org.cs3.cultivate.structure)

There are three layers:

      org.cs3.cultivate.structure.ui (in java, folder:src)
      org.cs3.cultivate.structure.analysis (in java, folder:src)
      prolog (folder for all the prolog files)

Naming conventions are given by this example.

Dependencies between plugins

Domain specific plugins may depend on core and basic plugin.

teaching/labs/xp/2009a/high_level_architecture.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019