EAChecker a Python 3.10x based application (Windows ONLY) for simple checking Sparx System Enterprise models for:
- Package Structure
- Correct Package Naming
- Diagrams naming
- Diagrams specific elements presence
- etc..
EAChecker is a console application which implements a plug-ins approach and allows easy adding a new checkers to the system and use COM/File EA API for accessing to EA structure. EAChecker provides a check result in several formats
- ea-check.log - main EAChecker log output
- CSV - formatted plug-ins errors (one per plug-in)
- XLS - formatted plug-ins errors - NOT SUPPORTED YET!
The following projects files are responsible for:
- plugins - Plugins files
- common - Common files
- utils - Utility files
- interfaces - SW Interface files
- exceptions - Project used custom exceptions
- resources - Application resources (e.g. configurations, etc.)
- interfaces/EACheckerConfigBaseInterface.py - code configuration file
- resources/configuration.xml - user configuration file
An application help screenshot is below:

Will start from GUID package entry point
> EAChecker.exe -c -p -s {B9521B93-C6FB-41ea-AEE8-577F2DAB92D4}
Will start from root entry point and generate CSV formatted plug-ins errors
> EAChecker.exe -c -p -e csv
The command above will start EEChecker from {B9521B93-C6FB-41ea-AEE8-577F2DAB92D4} GUID package with enabled checkers (-c option) and performance (-p option) plugins
Note
GUID is a unique identifier in Sparx Architect for tree item (package/diagram/etc.). The following picture shows how it can be got from EA for particular package
An application log snapshot is here: ea-check.log
Actually the project has the following external modules dependency
- Clone project according to GitHub instructions
- $> pip install -r requirements.txt - need to install required modules for project
- Run the application using console command: py Main.py for getting HELP instruction
PS. For those people who don't want to install the Python 3.10x, there is compiled EXE for WINDOWSx64 EAChecker.exe it has also required to have resources folder on the same level for getting configuration (to allow to configure the EXE checker).
Note
Following PyToExe Cmd Line was used for generating an EXEx64 image:
pyinstaller --noconfirm --onefile --console --icon "Z:/Sprint 24/logo.ico" --name "EAChecker" "Z:/Projects/EAChecker/main.py"
