To make a sharp analysis on system components, the knowledge base must be fed with as many informations as possible. Thus, our dedicated analysers have been designed to be as efficient as original compilers in order to extract necessary elements:
- Syntactic analysis
- Algorithmic analysis
- Data analysis
- Input/Output Analysis
- ...
Applications maintenance costs a lot of time and resources. To increase our customers teams productivity, Mia-Mining proposes many helps:
- Source code syntactic highlighting
- Contextual menu (on each source code element) offering links to associated objects: paragraph, variable description, subprogram... for an easier navigation
- Variable lengths automatic calculation (record, packed,...)
- Perform sequence graph
- Structure comparator for records
- ...
During components analysis, all control flow paths are calculated, thus the algorithm can be graphically represented. Mia-Mining offers two kinds of visualization : flow chart or hierarchical form.
A powerful setting allows to adjust precisely the algorithm rendering :
- Choose the start point of the algorithm graph
- Determine the propagation way:
- Forward : logical execution way
- Backward : paths display from a particular statement up to the source beginning
- Choose the instructions types to be displayed
- Exclude blocking instructions or mask unwanted ones
- ...
Calculating all algorithm paths also allows to identify the instructions which belong to branches which will never be reached : the dead code. Mia-Mining provides (in its standard version) dead code identification and display it in red in the interface.
During a legacy maintenance, one of the main issues is the analysis of the impacts generated by an evolution, especially when critical variables are concerned.
Mia-Mining offers a dataflow analysis function to detect all possible consequences of one or more variables modification/suppression. A lot of setting options are available to make it possible :
- Consider the impacts via parent zones or child zones
- Consider the impacts caused by redefined structures
- Select impacts types: feeding, test, computation...
- Choose the number of propagation levels
- Select a propagation way : forward, backward or both
- Launch subprograms calls interpretation
- Indicate specific zones to exclude or mark them as propagation stop points
- ...
The information restitution can be displayed in two forms : a graphical one or a source code part one, participating in a industrial analysis on a complete information system.
Mia-Mining proposes a unique function, the Slicing. This one allows to cut the program, contingent on one or more point of view, so as to keep the only interesting slice of the algorithm.
The Slicing entry point associates one or more variables and one or more entry points in the algorithm. Based on the dataflow engine and the controlflow one, the Slicing aggregates their results to display the only necessary instructions to control this variable.
This tool main use is the detection and the highlighting of business rules. Actually, focussing on lines dealing with a particular variable is the best way to quickly find associated business rules.
If all the before-mentionned functions are available via their setting interface, they also can be used through a requests creation system both simple and efficient to solve complex and industrial issues.
This requestor makes available to the user more than 500 entities (each one representing a language concept) and almost 1800 links to treat all points of procedural programming languages. By launching successives requests, a information system can virtually be entirely and successfully covered.
Here are some examples of possible requests :
- Find all calls to a subprogram which use a particular variable and how this one is feeded
- Find conditioned instructions thanks to a sharp test on a variable or a litteral
- Find all variables impacted by a modified copy
- Detect all the packed numerical zones feeded by alphanumerical ones
- Detect all tables scannings which access more fields than contained ones in the declaration
- ...
The requests launcher is an incontrovertible function for all massive studies on your legacy.
Mia-Mining is directly provided with requests libraries.