Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

 

Impact Analysis is probably the most powerful functionality of Kiuwan Architecture.

...

  • To check if software elements are compliant with architectural standards (e.g. detecting illegal dependencies).
  • To perform impact analysis (identify items that may be affected by a change in a specific set of items).
  • To detect potential design antipatterns (‘smells’) due to bad couplings.
  • To resolve the group of software items that belongs to a certain category (classification by tagging).
  • To keep track of the code items that makes up a certain logical entity.

 

Info

...

Impact Analysis “discovers” connections (paths) between source(s) and target(s) components.

 

For example, let’s suppose you want to know how your J2EE application is accessing the database, i.e. which Java classes are accessing data tables.

...

Kiuwan Architecture lets you answer those questions.

First, you should translate you question to Kiuwan Architecture concepts:

  • Tables will be “source” components (the “Starting Components”)
  • Java classes will be “target” components (the “Impacted Components”)

Info

As a mnemonic rule, you could think of an Impact Analysis query in terms of SQL:

  • Impacted components (targets): what we want to know (the SELECT clause)
  • Starting components (sources): the conditions to meet (the WHERE clause)

 

Besides to specify impacted and starting components, you can also specify constraints about how to navigate through the relationships.

By default, Kiuwan will find any path of any type, but you can restrict those paths.

...

Starting Components Selectors

...

Info

First you must specify Starting (sources) component(s).

 

This dialog lets you to specify the starting (source) component(s) for your query.

...

Next, we should define Navigation Constraints. Next section will show to you how to do it.

 

Navigation Constraints

...

Info

Besides to specify starting components, you can also specify constraints about how to navigate through the relationships.

By default, Kiuwan will find any path of any type, but you can restrict those paths.

...

  • Relations: empty -> we want all the relations
  • Direction: Incoming (or Any) -> those relations going to the tables
  • Detph: 1 -> only direct connections

 

...

 

Impacted Components Filter

Info

Besides to specify starting components and navigation constraints, you can also specify a filter for impacted (reached) components.

 

If you do not specify any filter, most probable Kiuwan will show to you a huge amount of results. To further concrete your query you can use this dialog.

...

Now, we are ready to run Impact Analysis clicking on Analyze button.

 

Results

Info

Results section will list all the “impacted” (reached) components, i.e.:

  1. reachable from the starting set of components,
  2. complying with the specified navigation constrains, and
  3. satisfying the specified filters

 

Kiuwan will show the total number of components as well as a list of them.

...

Most important aspect of this listing is that it allows you to get a full detail on the found paths.

 

Info

You can click

...

on Image Modified icon of any component to open a window where you can see the details.

 

For example, next image shows how org.owasp.webgoat.session.UserDatabase class is accessing three tables  (ROLES, USER_ROLES and USERS)

...