Meego Wiki
Views
From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(Quick Guide)
(Add an example file - Dependency file generation)
 
(9 intermediate revisions not shown)
Line 1: Line 1:
 +
[[File:header.png]]
 +
[http://wiki.meego.com/images/AgileBrowser.zip Download AgileBrowser installer]
[http://wiki.meego.com/images/AgileBrowser.zip Download AgileBrowser installer]
Line 5: Line 7:
AgileBrowser is a free architecture management tool. It abstracts and visualizes software models of MeeGo OS. The main focus is to provide easier access to up-to-date architecture information gathered from multiple sources. The models contain stuctural and dependendency information. There are several types of external attributes to be attached to the information.  Users of AgileBrowser can navigate, search, highlight with colors, share and export diagrams in various abstraction levels according to their individual needs.
AgileBrowser is a free architecture management tool. It abstracts and visualizes software models of MeeGo OS. The main focus is to provide easier access to up-to-date architecture information gathered from multiple sources. The models contain stuctural and dependendency information. There are several types of external attributes to be attached to the information.  Users of AgileBrowser can navigate, search, highlight with colors, share and export diagrams in various abstraction levels according to their individual needs.
 +
 +
[[File:overview.png|center]]
= Getting Started =
= Getting Started =
Line 13: Line 17:
AgileBrowser can be run on Windows, Mac, Linux, etc., anywhere where Java is supported. The most important requirement is that the tool is memory expensive so it is recommended to have 1 GB RAM or fast swapping.
AgileBrowser can be run on Windows, Mac, Linux, etc., anywhere where Java is supported. The most important requirement is that the tool is memory expensive so it is recommended to have 1 GB RAM or fast swapping.
 +
 +
== Dependency file generation ==
 +
 +
To use AgileBrowser, a dependency metadata file is needed. For a quick start, download an example dependency file [[File:sf2011-deps.txt]].
 +
 +
The following gives instructions to generate the dependency metadata file from scratch.
 +
 +
# Checkout [[https://gitorious.org/meego-architecture/meego-deps-gen meego-deps-gen ]] project
 +
# Get a package list (.packages) from any of the MeeGo images directory
 +
#* Syntax <code><packagename>.<arch> <ver>-<rel></code>
 +
# Get OSS and NON-OSS repodata primary XMLs for the same release
 +
#* Download, unzip and rename as oss.xml and non-oss.xml
 +
# Merge oss.xml and non-oss.xml into primary.xml
 +
#* <code>sh merge-repodata.sh</code>
 +
# Generate dependencies
 +
#* <code>sh create-deps.sh <packagelistfilename>.packages</code>
= User Guide =  
= User Guide =  
Line 24: Line 44:
1. Open a model file. Here meego_handset_armv7hl_n900_devel_1_2_deps.txt model is used. Model can be opened from the Model Repository tree (bottom left corner) if models exists there or it can be opened from the locally using 'File' -> 'Open Model File'.
1. Open a model file. Here meego_handset_armv7hl_n900_devel_1_2_deps.txt model is used. Model can be opened from the Model Repository tree (bottom left corner) if models exists there or it can be opened from the locally using 'File' -> 'Open Model File'.
-
[[File:firstview.png]]
+
[[File:firstview.png|center]]
2. Then lets take a look what kind of kernel information model holds. Type 'kernel' into search field (text field located top of the screen) and hit enter. This searches the model looking for the elements that have 'kernel' in the name. In this case the result where given in the root level because we didn't gave any further details.
2. Then lets take a look what kind of kernel information model holds. Type 'kernel' into search field (text field located top of the screen) and hit enter. This searches the model looking for the elements that have 'kernel' in the name. In this case the result where given in the root level because we didn't gave any further details.
-
[[File:kernel1.png]]
+
[[File:kernel1.png|center]]
3. Now lets increase the Detail Level to get more detailed view about the 'kernel' search. Increase 'Detail Level' by 2 (Change 'Detail level 1' to 3 in Properties panel located in the top right corner). This action adds two more detail levels to graph.  
3. Now lets increase the Detail Level to get more detailed view about the 'kernel' search. Increase 'Detail Level' by 2 (Change 'Detail level 1' to 3 in Properties panel located in the top right corner). This action adds two more detail levels to graph.  
Line 34: Line 54:
Browser now shows a good graph about Kernel in chosen model.
Browser now shows a good graph about Kernel in chosen model.
-
[[File:kernel2.png]]
+
[[File:kernel2.png|center]]
4. Lets now take a look at, that what elements/components are using these elements in the graph. So we are interested on what are the incoming dependencies. Select 'incoming' from the Dependencies combobox (located in the same Properties panel than the Detail level).
4. Lets now take a look at, that what elements/components are using these elements in the graph. So we are interested on what are the incoming dependencies. Select 'incoming' from the Dependencies combobox (located in the same Properties panel than the Detail level).
Line 40: Line 60:
It automatically draws all the incoming dependencies to kernel search elements.
It automatically draws all the incoming dependencies to kernel search elements.
-
[[File:kernel3.png]]
+
[[File:kernel3.png|center]]
Then lets take a look that what are the outgoing dependencies for the kernel search. (change 'incoming' to 'outgoing' in Dependencies combobox).
Then lets take a look that what are the outgoing dependencies for the kernel search. (change 'incoming' to 'outgoing' in Dependencies combobox).
-
[[File:kernel4.png]]
+
[[File:kernel4.png|center]]
5. Select an element from the graph to get more information about it (model has to contain attributes to get attribute information). If element has some attributes, those are shown in the Info panel (located in the bottom right corner). In this case we selected 'kernel-headers'. Attribute information shows that kernel-headers is under GPLv2 license.
5. Select an element from the graph to get more information about it (model has to contain attributes to get attribute information). If element has some attributes, those are shown in the Info panel (located in the bottom right corner). In this case we selected 'kernel-headers'. Attribute information shows that kernel-headers is under GPLv2 license.
Line 53: Line 73:
This action colors all the elements that have license information. So same licenses are with the same color and so on. This is a good way to get a big picture about some attribute information, in this case about license.
This action colors all the elements that have license information. So same licenses are with the same color and so on. This is a good way to get a big picture about some attribute information, in this case about license.
-
[[File:kernel5.png]]
+
[[File:kernel5.png|center]]
From the graph it's now easy to see what kind of licenses elements have. LegendView shows the matching license based on coloring. Also it's possible to change color by clicking the color from the LegendView.
From the graph it's now easy to see what kind of licenses elements have. LegendView shows the matching license based on coloring. Also it's possible to change color by clicking the color from the LegendView.
Line 59: Line 79:
6. Now if user wants to take a closer look at e.g. 'glibc' -element (this is in the graph), it is possible by double-clicking the element. This action shows the element with the same rules applied to it what we had done before. It shows the element with detail level 4 (this is because double-clicking drills down 1 level), it used automatically license coloring and it shows all the Outgoing dependencies.
6. Now if user wants to take a closer look at e.g. 'glibc' -element (this is in the graph), it is possible by double-clicking the element. This action shows the element with the same rules applied to it what we had done before. It shows the element with detail level 4 (this is because double-clicking drills down 1 level), it used automatically license coloring and it shows all the Outgoing dependencies.
-
[[File:kernel6.png]]
+
[[File:kernel6.png|center]]
== Full User Guide ==
== Full User Guide ==
[[/FullUserGuide|Full User Guide]]
[[/FullUserGuide|Full User Guide]]
 +
 +
= FAQ =
 +
 +
== Search Related ==
 +
 +
=== How to perform basic element search? ===
 +
Basic search can be done by using Search Field located in the top of the application. By typing a string into Search Field it searches all the elements matching to string. Search rules can be modified (to what search string matches) from the 'Find Matches to...' which can be found from the Properties panel located in top right corner.
 +
 +
If using "" in the beginning and in the end of the string, search only returns exact match of the string.
 +
 +
=== How to perform search based on a attribute? (e.g. finding all the elements with GPLv2 license) ===
 +
By typing @license="GPLv2" into the search field, searches all the elements which are including the GPLv2 license. Of course, the license attribute has to be included in the model. Otherwise if not, it returns an empty graph.
 +
 +
If "" marks are removed from the query (@license=GPLv2), search returns also the LGPLv2 licensed elements.
 +
 +
=== Is it possible to combine search queries? ===
 +
Yes. By using logical operations (AND, NOT, OR). For example, query string 'GUI OR Desktop' returns all the elements matching to GUI and also all the elements matching to Desktop. If using operator AND then result is given of both strings can be found from the element.
 +
 +
=== How to search certain element filtering out some area from the scope? ===
 +
This can be done by using operator NOT in the search string. Using search string 'kernel AND NOT "/System"' returns all the kernel named elements which are located somewhere else than under /System.
 +
 +
=== Is it possible to search dependencies between elements? ===
 +
Yes. Also dependency search is possible using Search Field. E.g. search string '"/System" --> "/User Interface"' returns all the dependencies which are from /System to /User Interface. If using just -- between the elements in the search string, search returns all the dependencies between those two elements (from /System to /User Interface and vice verse).
 +
 +
=== How to perform dependency search between elements based on a dependency type? ===
 +
Dependency attribute filtering must be inserted between the -- marks. If using same search string as above but with difference, that it returns just dependencies which are having type of package, the following string must be used: "/System" -package-> "/User Interface".
 +
 +
=== Search query returned an empty graph. What should I do? Is Something wrong? ===
 +
This is a normal behavior when nothing can be found from the model. This means that there is no results to return with given search string.
 +
 +
First user should check typos from the Search Field, then user should check the Matching Criterias from the 'Find Matches to...' (can be found from the Properties panel). If everything looks ok, then model does not contain anything to return.
= Contacts =
= Contacts =
[[User:Villeez|Contact: Ville Laitila]]
[[User:Villeez|Contact: Ville Laitila]]

Latest revision as of 10:53, 28 June 2011

Header.png

Download AgileBrowser installer


Contents

Introduction

AgileBrowser is a free architecture management tool. It abstracts and visualizes software models of MeeGo OS. The main focus is to provide easier access to up-to-date architecture information gathered from multiple sources. The models contain stuctural and dependendency information. There are several types of external attributes to be attached to the information. Users of AgileBrowser can navigate, search, highlight with colors, share and export diagrams in various abstraction levels according to their individual needs.

Overview.png

Getting Started

Installation

Installer package is available in this wiki: File:AgileBrowser.zip

AgileBrowser can be run on Windows, Mac, Linux, etc., anywhere where Java is supported. The most important requirement is that the tool is memory expensive so it is recommended to have 1 GB RAM or fast swapping.

Dependency file generation

To use AgileBrowser, a dependency metadata file is needed. For a quick start, download an example dependency file File:Sf2011-deps.txt.

The following gives instructions to generate the dependency metadata file from scratch.

  1. Checkout [meego-deps-gen ] project
  2. Get a package list (.packages) from any of the MeeGo images directory
    • Syntax <packagename>.<arch> <ver>-<rel>
  3. Get OSS and NON-OSS repodata primary XMLs for the same release
    • Download, unzip and rename as oss.xml and non-oss.xml
  4. Merge oss.xml and non-oss.xml into primary.xml
    • sh merge-repodata.sh
  5. Generate dependencies
    • sh create-deps.sh <packagelistfilename>.packages

User Guide

There are different guides available. Quick guide is for basic use cases of Agile Browser. In Quick Guide user is introduced to basic functionalities via simple example. Full User Guide contains all the functionalities of the tool.

Quick Guide

It is time to take a closer look what AgileBrowser can do. This guide is a follow-up example, where user is introduced to AgileBrowser basic functions via a simple example.

1. Open a model file. Here meego_handset_armv7hl_n900_devel_1_2_deps.txt model is used. Model can be opened from the Model Repository tree (bottom left corner) if models exists there or it can be opened from the locally using 'File' -> 'Open Model File'.

Firstview.png

2. Then lets take a look what kind of kernel information model holds. Type 'kernel' into search field (text field located top of the screen) and hit enter. This searches the model looking for the elements that have 'kernel' in the name. In this case the result where given in the root level because we didn't gave any further details.

Kernel1.png

3. Now lets increase the Detail Level to get more detailed view about the 'kernel' search. Increase 'Detail Level' by 2 (Change 'Detail level 1' to 3 in Properties panel located in the top right corner). This action adds two more detail levels to graph.

Browser now shows a good graph about Kernel in chosen model.

Kernel2.png

4. Lets now take a look at, that what elements/components are using these elements in the graph. So we are interested on what are the incoming dependencies. Select 'incoming' from the Dependencies combobox (located in the same Properties panel than the Detail level).

It automatically draws all the incoming dependencies to kernel search elements.

Kernel3.png

Then lets take a look that what are the outgoing dependencies for the kernel search. (change 'incoming' to 'outgoing' in Dependencies combobox).


Kernel4.png

5. Select an element from the graph to get more information about it (model has to contain attributes to get attribute information). If element has some attributes, those are shown in the Info panel (located in the bottom right corner). In this case we selected 'kernel-headers'. Attribute information shows that kernel-headers is under GPLv2 license.

Now we are interested that what kind of licenses does the elements in the graph have. Lets change the coloring to be based on licensing information. Select 'Coloring' to be 'license under the 'Attribute Highlighting' (from the Properties panel again).

This action colors all the elements that have license information. So same licenses are with the same color and so on. This is a good way to get a big picture about some attribute information, in this case about license.

Kernel5.png

From the graph it's now easy to see what kind of licenses elements have. LegendView shows the matching license based on coloring. Also it's possible to change color by clicking the color from the LegendView.

6. Now if user wants to take a closer look at e.g. 'glibc' -element (this is in the graph), it is possible by double-clicking the element. This action shows the element with the same rules applied to it what we had done before. It shows the element with detail level 4 (this is because double-clicking drills down 1 level), it used automatically license coloring and it shows all the Outgoing dependencies.

Kernel6.png

Full User Guide

Full User Guide

FAQ

Search Related

How to perform basic element search?

Basic search can be done by using Search Field located in the top of the application. By typing a string into Search Field it searches all the elements matching to string. Search rules can be modified (to what search string matches) from the 'Find Matches to...' which can be found from the Properties panel located in top right corner.

If using "" in the beginning and in the end of the string, search only returns exact match of the string.

How to perform search based on a attribute? (e.g. finding all the elements with GPLv2 license)

By typing @license="GPLv2" into the search field, searches all the elements which are including the GPLv2 license. Of course, the license attribute has to be included in the model. Otherwise if not, it returns an empty graph.

If "" marks are removed from the query (@license=GPLv2), search returns also the LGPLv2 licensed elements.

Is it possible to combine search queries?

Yes. By using logical operations (AND, NOT, OR). For example, query string 'GUI OR Desktop' returns all the elements matching to GUI and also all the elements matching to Desktop. If using operator AND then result is given of both strings can be found from the element.

How to search certain element filtering out some area from the scope?

This can be done by using operator NOT in the search string. Using search string 'kernel AND NOT "/System"' returns all the kernel named elements which are located somewhere else than under /System.

Is it possible to search dependencies between elements?

Yes. Also dependency search is possible using Search Field. E.g. search string '"/System" --> "/User Interface"' returns all the dependencies which are from /System to /User Interface. If using just -- between the elements in the search string, search returns all the dependencies between those two elements (from /System to /User Interface and vice verse).

How to perform dependency search between elements based on a dependency type?

Dependency attribute filtering must be inserted between the -- marks. If using same search string as above but with difference, that it returns just dependencies which are having type of package, the following string must be used: "/System" -package-> "/User Interface".

Search query returned an empty graph. What should I do? Is Something wrong?

This is a normal behavior when nothing can be found from the model. This means that there is no results to return with given search string.

First user should check typos from the Search Field, then user should check the Matching Criterias from the 'Find Matches to...' (can be found from the Properties panel). If everything looks ok, then model does not contain anything to return.

Contacts

Contact: Ville Laitila

Personal tools