How jahon27/diploma_thesis works
This thesis prototype turns draw.io UML class and sequence diagrams into Python. The main workflow extracts class structure and sequence behavior, combines the generated code, and writes a Python file. The sequence route also has an intermediate SQD representation and an ANTLR-based parser/model/code-generation layer, supporting calls, returns, self-calls, alt, and loop fragments. AI-assisted generation and fidelity evaluation are separate comparison branches. The README documents these capabilities; some orchestration details are unsampled, so only documented or source-supported links are shown.
Main entry points: main.py Main Workflow · sequence_extractor_with_antlr_grammar.py Sequence Extractor · openrouter_generator.py AI Generator · user_auth_gen_model_1.py Generated Python
Components 17
UML Input
- Class Extractor
src/extractors/class_extractor.py - Sequence Extractor
src/extractors/sequence_extractor_with_antlr_grammar.py - SQD Extraction
src/extractors/sequence_to_sqd_extractor.py
Parsing and Generation
- Main Workflow
src/main.py - SQD Language
src/antlr/SequenceDiagram.g4 - ANTLR Parser
src/antlr/SequenceDiagramParser.py - Sequence Model
src/antlr/sequence_model_builder.py - Sequence Generator
src/antlr/sequence_code_generator.py - Generated Python
src/outputs/user_auth_gen_model_1.py
Experiments and Evaluation
- AI Generator
src/ai_experiments/openrouter_generator.py - Fidelity Evaluator
src/evaluation/evaluator.py - Reference Code
src/reference/user_auth_reference.py - Evaluation Results
src/evaluation/results/evaluation_results.csv
Other components
- Engineer
- Class Diagram
src/diagrams/user-auth-class.drawio.xml - Sequence Diagram
src/diagrams/user-auth-sequence.drawio.xml - OpenRouter API
Connections 20
- Engineer → Main Workflow: runs
- Class Diagram → Main Workflow: provides input
- Sequence Diagram → Main Workflow: provides input
- Main Workflow → Class Extractor: calls
- Main Workflow → Sequence Extractor: calls
- Class Extractor → Generated Python: generates class code
- Sequence Extractor → SQD Extraction: uses SQD extraction
- SQD Extraction → SQD Language: emits
- Sequence Extractor → ANTLR Parser: parses SQD
- ANTLR Parser → Sequence Model: builds semantic model
- Sequence Model → Sequence Generator: provides model
- Sequence Extractor → Sequence Generator: generates sequence code
- Main Workflow → Generated Python: writes combined code
- Class Diagram → AI Generator: supplies XML
- Sequence Diagram → AI Generator: supplies XML
- AI Generator → OpenRouter API: requests generation
- AI Generator → Generated Python: writes AI output
- Generated Python → Fidelity Evaluator: candidate code
- Reference Code → Fidelity Evaluator: comparison baseline
- Fidelity Evaluator → Evaluation Results: records metrics