Dynamic Metrics Analysis (DMA) tool is a metric collection tool which leverages Platform-as-as-Service (PaaS) over cloud to provide real time dynamic metric values enabled through a live execution trace streaming based approach. Currently, an initial prototype of the tool is being maintained over Github. DMA currently supports 6 dynamic import and export coupling metrics. About the DMA working, it follows a client server or cloud based architecture, where the application under analysis and the DMA client application both residing on the client machine. The DMA client instruments the application under study and executes the instrumented version to capture a continuous stream of method calls and then forward this stream in batches to the cloud infrastructure, Linux OpenShift in this case, where different clusters/gears work in parallel to record the method calls in a module dependency matrix. Various metric algorithms are then triggered to extract and send the live dynamic metric values back to the DMA client where these values are represented using simple bar graphs.
The overall average latency of this cloud based metric evaluation being about half a sec. Another important feature of the DMA tool is its event/scenario capturing feature where a user can start and stop the metric capturing process anytime during its usage, hence a targeted live dynamic metric collection is also possible. We are currently working with a local software company Insonix Software (ADD LINK), Chandigarh, to extend our tool to support web and mobile applications. Another extension is to make DMA support a more comprehensive set of dynamic metrics including coupling, cohesion, inheritance and size metrics.
Figure: DMA Prototype Snapshots
Another related work and a parallel study is on comprehending the scenario level evolution of software usingin which we capture the calling context trees obtained after executing a particular user scenario over multiple versions of software systems, and then we try to comprehend the scenario level software evolution by analyzing various CCT level tree structural metrics such as height, number of nodes etc.
Github link: https://github.com/pv-singh/DMA
- Amit Kumar dogra, Harkomal Singh and Paramvir Singh (2017): Execution Trace Streaming based Real Time Collection of Dynamic Metrics using PaaS, 8th Workshop on Emerging Trends in Software Metrics (WETSoM) collocated with 39th IEEE International Conference on Software Engineering (ICSE 2017), Buenos Aires, Argentina from May 20-28, 2017. [Access Article Preprint]