Tackle-DiVA is a command-line tool for data-centric application analysis. It imports a set of target application source files (*.java/xml) and provides following analysis result files.
- Service entry (exported API) inventory
- Database inventory
- Transaction inventory
- Code-to-Database dependencies (call graphs)
- Database-to-Database dependencies
- Transaction-to-Transaction dependencies
- Transaction refactoring recommendation.
- Docker runnable environment (e.g. RHEL, Ubuntu, macOS)
Supposed that tackle-diva
is cloned to /tmp
,
- Build docker image for diva.
$ cd /tmp/tackle-diva/
$ docker build . -t diva
- Prepare source codes of target Java applications whose Java framework is supported in DiVA, such as DayTrader7 and TradingApp.
$ cd /tmp
$ git clone https://github.com/WASdev/sample.daytrader7.git
- Move to
tackle-diva/distrib/bin/
directory, and executediva_docker
command attaching directory full path.
$ cd /tmp/tackle-diva/distrib/bin/
$ ./diva_docker /tmp/sample.daytrader7/
- Check
tackle-diva/distrib/output
directory and confirm analysis result files
$ ls /tmp/tackle-diva/distrib/output
contexts.yml transaction.json transaction_summary.dot
database.json transaction.yml transaction_summary.pdf
An output
directory for storing analysis result files:
contexts.yml
: Extracted application service entriesdatabase.json
: Extracted database tablestransaction.json/yml
: Extracted transactions that expresses as a sequence of service entry, call graphs, SQLstransaction_summary.dot/pdf
: Extracted database-to-database/transaction-to-transaction dependencies and recommended transaction refactoring.
- Spring Boot (e.g. TradingApp)
- Servlet (e.g. DayTrader7)
The other frameworks to be supported.