DASA (Dimensional Analysis for Software Architecture) evaluation of the Tele Assistance System self-adaptive exemplar (Weyns & Calinescu, SEAMS 2015). Consumes the sibling PyDASA library as a pinned wheel; produces the metric JSONs and figures that ground the DASA evaluation.
- Implemented: analytic (closed-form QN), stochastic (SimPy DES), dimensional (PyDASA π-groups + coefficients).
- Archived: the previous experiment / calibration build is frozen under
__OLD__/as a read-only reference oracle. The new experiment is being rebuilt undersrc/experimental/. - Pending: comparison method (cross-method R1/R2/R3 verdicts).
| Requirement | Metric | Threshold | Lens |
|---|---|---|---|
| R1 | average failure rate | ≤ 0.03 % | Availability |
| R2 | average response time | ≤ 26 ms | Performance |
| R3 | average cost | minimise subject to R1 ∧ R2 | Cost |
python -m venv venv && source venv/Scripts/activate # Git Bash on Windows
pip install -r requirements.txtrequirements.txt pins a specific PyDASA wheel from the sibling checkout. After bumping PyDASA, rebuild + reinstall:
cd ../PyDASA && python -m build
pip install --force-reinstall ../PyDASA/dist/pydasa-<ver>-py3-none-any.whlpython -m src.methods.<method> --adaptation <baseline|s1|s2|aggregate>
jupyter lab # for the notebooksSurviving methods: analytic, stochastic, dimensional. Surviving notebooks: 01-analytic.ipynb, 02-stochastic.ipynb, 03-dimensional.ipynb, 04-yoly.ipynb. Results land at data/results/<method>/<adaptation>/<profile>.json plus requirements.json; figures at data/img/<method>/<adaptation>/.
pytest tests/180 tests on the surviving subset.
notes/case-study.md— case-study record (architecture, scenarios, ADRs, references)notes/procedure.md— methodology + hypothesis structurenotes/prototype.md— apparatus design for the new experiment__OLD__/— frozen prior implementation (filesystem-only, gitignored)assets/docs/— case-study writeups + reference paperslog/devlog.md— decision logCLAUDE.md— coding + notebook conventions