{"id":23589550,"url":"https://github.com/piaschilling/arcucheck","last_synced_at":"2026-02-11T20:33:25.271Z","repository":{"id":268727049,"uuid":"863530326","full_name":"PiaSchilling/arcucheck","owner":"PiaSchilling","description":"arcucheck is a tool to monitor the compliance between design and implementation based on PlantUML class diagrams.","archived":false,"fork":false,"pushed_at":"2024-12-18T14:13:13.000Z","size":63297,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-05T22:50:13.764Z","etag":null,"topics":["java","kotlin","plantuml","softwaredesign"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PiaSchilling.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-26T13:04:21.000Z","updated_at":"2024-12-18T14:13:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"f7c57e31-20c9-4901-b7c8-2c39c134be50","html_url":"https://github.com/PiaSchilling/arcucheck","commit_stats":null,"previous_names":["piaschilling/arcucheck"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PiaSchilling/arcucheck","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PiaSchilling%2Farcucheck","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PiaSchilling%2Farcucheck/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PiaSchilling%2Farcucheck/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PiaSchilling%2Farcucheck/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PiaSchilling","download_url":"https://codeload.github.com/PiaSchilling/arcucheck/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PiaSchilling%2Farcucheck/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29344055,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T20:11:40.865Z","status":"ssl_error","status_checked_at":"2026-02-11T20:10:41.637Z","response_time":97,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","kotlin","plantuml","softwaredesign"],"created_at":"2024-12-27T06:15:40.145Z","updated_at":"2026-02-11T20:33:25.238Z","avatar_url":"https://github.com/PiaSchilling.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Info\n\nThis repository contains the implementation of the prototype that was developed for the bachelor thesis \"A PlantUML Based Approach for Static Design Conformance Checking\".\n\n# arcucheck\n\n\"arcucheck\" is a tool to monitor the compliance between design and implementation based on PlantUML class diagrams.\n\n## Execution\nTo use this tool, you have two options:\n\n1. **Run in an IDE**: Open the project in an IDE like IntelliJ IDEA and execute the main function in the Main.kt class.\n\n2. **Build and Run from the Command Line**: Generate a .jar file by running the command `gradle jar` from the project's root directory, and then execute the .jar file.\n\n## Usage\nThe tool compares PlantUML (.puml) files, which represent the design, with source code files (.java) that represent the implementation. It can be used to process a single design model or an entire directory of models, depending on the program arguments provided. The .puml files must contain PlantUML class diagrams. Other UML diagram types are not supported. See the [PlantUML reference](https://plantuml.com/de/class-diagram) for information about the PlantUML class diagram structure and syntax.\n\n### Single Model Processing\n\nTo use this option, one .puml file for the design and one .java file for the corresponding implementation has to be provided.\n\n#### To use a single .puml file, run:\n```\narcucheck -f -dfp \u003cPATH TO .puml FILE\u003e -cp \u003cPATH TO .java FILE\u003e\n```\nor\n```\narcucheck --file --diagramFilePath \u003cPATH TO .puml FILE\u003e --codePath \u003cPATH TO .java FILE\u003e\n```\n### Directory Processing\nFor this option, a directory containing the .puml files must be provided. Each .puml file must specify the paths to the related code files by including the following line at the top of the file. Note: This line is a PlantUML comment (comment modifier: ', at the beginning); otherwise, the diagrams will no longer render. \n\n```\n'implementation_path=[\u003cPATH TO IMPLEMENTAION\u003e]\n@startuml\n....\n@enduml\n```\n \n#### To process a whole directory, run:\n```\narcucheck -d -ddp \u003cPATH TO DIRECTORY\u003e \n```\nor\n```\narcucheck --directory --diagramDirectoryPath \u003cPATH TO DIRECTORY\u003e \n```\n\n## Test Report Generation\nThe project includes unit tests designed to evaluate the deviation detection capabilities of the prototype developed for a bachelor thesis. To generate a test report, run the following command from the project root:\n ```\n  ./gradlew test \n ```\nYou can view the test report by opening the `index.html` file located in `build/reports/tests/test/index.html.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiaschilling%2Farcucheck","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpiaschilling%2Farcucheck","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiaschilling%2Farcucheck/lists"}