Components page lets to search for application components, displaying the results as a tabular listing of components.
This page is split into two sections:
- Search criteria
- Results of search
Components search criteria
You can search component using the available search filters:
- “Name contains” : components including the typed text as part of the component name
- “Name NOT contains” : components NOT including the typed text as part of the component name
- “Language”: programming language of the component (available values are only those languages found in the application). Language names include the number of components found for that language, e.g. Javascript(7) means that there are 7 Javascript components
- “Type”: component type, i.e. category of the component as labeled by Kiuwan Architecture (available types depend on the technology of the application). Type values include the number of components found of that type, e.g. Class(115) means that there are 115 classes in the model
- “Analyzed / Inferred” : a component can be “analyzed” (i.e. it has been found during the analysis because the component has a source code file) or “inferred” (i.e. the component is referenced somewhere in the source code but there isn't any source file for it)
- “File” : components including the typed text as part of their source file name (including directories )
- “Tag” : components tagged with the specified tag ( see below “Add tag to component(s) ” )
You can add/remove search filters manually selecting from the “+Filters” list (please read below for special “Tags” filtering).
Resultant search criteria will be the addition (AND’ed) of selected values for the search filters.
Some search boxes are multi valued (Language, Type, Analyzed/Inferred and Tag). Specified values for each of them will be OR’ed to the resultant query.
Let’s see with an example:
This query will return all components that contains “servlet” in the name (case insensitive), AND language equals to (Java OR Javascript), AND be “Inferred”.
Components Tagging
You can provide a custom tag (i.e. a custom label) to qualify a component (or to any set of components) of your application.
Using tagging, you can label any component with any tag you consider useful, and those custom tags are made permanent in your model.
By default, when you create custom tags, all are grouped under the general built-in “Tag” (i.e. every custom tag will be a tag belonging to Tag group).
But Kiuwan also lets you to create your own group of tags, letting you to assign individual tags to either the general Tag group or to any of your custom tag groups.
Then, as you can see, we have two different tags depending on the tag group they belong.
For explanation purposes, we will use the following terminology:
Tags Group | Description | Values |
---|---|---|
“Tag” | Built-in group | Any custom tag assigned to this group will be referred as a “flat tag” |
“Custom Tags Group” | User-defined group | Any custom tag assigned to this group will be referred as a “group tag” |
For example, you could want to classify the data tables of your application as “system table” or “user table” tables. This might be useful to distinguish between tables with system internal data (“system table”) and tables with user data (“user table”).
You could use any of these two approaches.
- Create two custom “flat tags” (“system table” and “user table”) the belong to built-in Tag, and add those tags to the tables
- Create a custom tags group (e.g. “Table type”) and let “system table” and “user table” be “group tags” belonging to that group.
If you use the first approach, you could filter components by those tags using the generic Tag.
If you use the second approach, you could add a new filter box (“Table type”) and Kiuwan will let you select any of the assigned values (“system table” and “user table”).
In both cases, the results will be the same, but using group tags will let you to distinguish and classify components in a more structured way. It’s up to your decision to use any of the two approaches.
How can I create /assign Tags
To create and to assign tags is always done on a component basis.
In other words, you need to select some component(s) in order to create and/or assign tags.
You can assign / create tags either in bulk mode (i.e. to a set of components) or to a specific component.
You can find “Add tag” in Bulk change menu (to apply to several components) or in the menu for a specific component.
Whatever option (bulk or individual) you select, the procedure to create and assign tags is equivalent.
Assign / Create a Flat Tag
If you want to assign/create a Flat Tag, select “Tag as“ radio button.
Then, as you type, you can find the flat tag and assign it to the component, or create a new one (if the typed tag does not exist).
Assign / Create a Group Tag
If you want to assign/create a Group Tag, select “Group by“ radio button.
Similarly to flat tags, text boxes let you either select an existing value or create a new one.
- First text box lets you to create/select a Custom Tag Group.
- Second text box lets you to create/select a custom group tag.
Bulk Mode - Assign / Create a Group Tag
When you select “Add tag” from “Bulk change” menu, Kiuwan will open a dialog box as next image.
This dialog does not only let you create/assign tags (as seen above). It also allows you to define the scope of the tagging, i.e. to which components will be applied the tags.
By default, the tags will be applied to all components matching the current filter.
In our example, the filter is Java or Javascript language.
If you leave it as such, tags will be assigned to all components that match that filter NOW and in the FUTURE.
This is quite important because as you build new versions of the model it’s likely that new components match this filter and, consequently, they will be tagged.
Instead, if you only want to apply to existing components, you should click on “Select specific components”.
Then, Kiuwan will open a dialog where you can manually select the components you want to specifically tag.
Components query results
Once you have filled your search criteria, clicking Apply button will display a tabular list of components matching selected filters.
Note: Some of the component rows may appear “grayed”.
That’s a visual indication that those components are “Inferred”, i.e. the component is referenced somewhere in the source code but there isn't any source file for it.
Components list displays records of component name plus Language, Type and File.
You can tag a component by clicking on Tag button (see related paragraph about Components Tagging)