Code Understanding

A platform to analyze the structure and features of the software systems we previously scanned.

Design

Main Components:

  • Front-End: Web Front-End of the Code Understanding that allows users to analyze, query, and visualize the structure of the scanned code.

  • Back-End: Receives the queries, obtains the results, formats the data and returns the formatted results. Interacts with the DBProviders and Graph DBs.

  • DB Provider: Provides a list of available DBs and ensures that they are available on demand.

  • Graph DB: Currently, a neo4j database. We might consider other data sources in the future.

Use Cases

Additional Ideas on main component responsibilities:

Priorities

  • Design Front-End

  • How to diagnose better issues in Graph DB containers creation?

  • Better understanding/documentation for our components

  • Improve trouble shouting for Azure processes

  • Improve code quality (refactoring and simplification)

Future Work

  • Generic models

    • Graph model

    • Graph display model (default and predefined values)

  • Add a way to make a query and add preferences for display

    • <query> // [preferences]

  • [Tentative] Offline database generator

Front End

  • Remove the need to be connected to a database for using the Analyzer.

  • Design how to manage accounts.

  • Change how the interactions work or remove them if not needed at all.

  • Maybe a change in how the share module works (see this)

Back End

  • Neo4j dependency

  • DBM dependency

  • Needed changes

    • Neo4j driver usage for the connection with databases

      • (currently, we are doing the queries on the dbm)

DB Manager

  • Neo4j dependency (decorators)

Last updated