Determine trigger for execution of an invokable entity

From FetchWiki

Jump to: navigation, search

A well-educated software engineer executes a number of tests after applying changes to a software system. When there is no unit testing strategy, it can be hard to determine the trigger one needs to provoke (via external interfaces) to execute a particular block in a particular internal invokable entity (e.g. function, method). A call graph helps to at least identify the set of interfaces that eventually might execute the invokable entity.

This analysis is done on a model or abstract representation of a software system. Accordingly, one first needs to generate a model of the software system. Once this model has been generated, one can formulate a query that reports the call graph for a particular invokable entity.

Another objective of this use case is program understanding. By identifying how calls proceed trough the system, one can learn about the internal composition.

Contents

[edit] Characteristic Information

  • Goal in Context: User requests report about call graph to a particular invokable entity.
  • Preconditions: model (abstract representation) of the software system is available.
  • Success End Condition: User receives file reporting call graph.
  • Failed End Condition: User receives message explaining failed attempts.
  • Primary Actor: Developer,Architect
  • Trigger: User launches analysis script.

[edit] Main Success Scenario

put here the steps of the scenario from trigger to goal delivery, and any cleanup after

0.1 User identifies invokable entity to be analyzed.

0.2. User identifies associated script to perform analysis.

1. User launches analysis script.

2. Analysis script generates file reporting call graph.

[edit] Extensions

put here the extensions, one at a time, each referring to the step of the main scenario

step altered - condition: action or sub-use case

[edit] Sub-variations

2. Analysis script generates visualization of call graph.

[edit] Related Information

  • Frequency: daily/weekly

[edit] Open Issues

[edit] Schedule

Personal tools