Diploma thesis
Identification and visualization of software architectures

Basic info

Name: Bc. Marek Dinka
Title: Identification and visualization of software architectures
Supervisor: Ing. Martin Marko
Supervisor: doc. Ing. Ivan Polášek, PhD.

Annotation

Documenting architecture is essential for understanding and reviewing software. Existing tools are usually capable of reverse source code to basic UML diagrams or identifying basic anti-patterns and idioms to identify errors or code smells to assist the QA process. The main of this work is to explore options for automated or semiautomated identification, extraction and deduction on the software architectural level.

Aim

Design and create a prototype of the toolset capable of reverse engineering large and real software systems to classify and identify architecturally important component and their relations. Propose methods and implement basic concept to use extracted information and derived relations. Document extracted information in the form of textual and visual architectural views.

PDFs

Diploma thesis: Download

Presentation: Download

Finished goals

  • Get familiar with the theme, it's problems, it's strenghts
  • Get familiar with the toolkit I will be improving
  • Make contributions and changes to said toolkit
  • Investigate common and existing methods for architecture recovery
  • Obtain class references in java files
  • Cluster java files into modules
  • Investigate methods for visualizing modules and other related entities
  • Implement Design Structure Matrix
  • Implement archimate API
  • Implement generator of file diversity chart
  • Investigate attributes and possible usages of detectors
  • Cluster files based on their detectors
  • Visualize clusters

TODO

  • Find a way of creating connections between clustered components
  • Revisit abstraction contexts and try to unify them
  • Revisit modules and try to find a use for them
  • Revisit abstraction level and try to implement it