Home
Solid Software Xplorer User Manual
Contents
1. lt no lt node nid 3 gt lt attribute key name value B gt lt node gt lt node nid 4 gt lt attribute key name value first child of A gt lt node gt d e nid 5 gt lt attribute key name value sSecond child of A gt lt attribute key _icon value method gt lt node gt lt nodes gt lt hierarchy name default gt lt edge fromnid 1 tonid 2 gt lt edge fromnid 1 tonid 3 gt lt edge fromnid 2 tonid 4 gt lt edge fromnid 2 tonid 5 gt lt hierarchy gt lt edgeset name default gt lt edge fromnid 3 tonid 4 gt lt attribute key type value call gt lt edge gt lt edge fromnid 3 tonid 5 gt lt attribute key type value call gt lt edge gt lt edgeset gt lt dataset gt SolidSX XML files contain three parts e lt nodes gt list of all lt node gt XML elements e lt hierarchy gt list of lt edge gt XML elements describing a hierarchy on the nodes Multiple hierarchies per dataset are support The active hierarchy can be changed from the legend e lt edgeset gt list of lt edge gt elements describing adjacency relations Currently only one edge set per dataset is supported The three parts contain lt node gt and lt edge gt elements e Each node has an attribute nid that is a unique number identifying the node Node id s should be positive
2. In this tutorial we explore a simple example application that comes with SolidSX an open source Sudoku puzzle game written in C You can find the executable Number Puzzle exe in the examples folder located in the installation folder of SolidSX The source code is also located there zipped but it is not needed for this tutorial Please take the following steps Bo w Moe PA Solid Software Xplorer Standard 1 402 File Edit Tools View Help Tree view x 3 Number Puzzle Version 1 0 0 0 C m mscorlib Version 2 0 0 0 Culture System Version 2 0 0 0 Culture 3 System Drawing Version 2 0 0 0 D System Windows Forms Version 2 in 9 IB iS IG Brushing 52 relations hold Alt for tooltip Start SolidSX from the Windows Start menu Select File Import NET assembly In the open file dialog select the file Number Puzzle exe in Program Files SolidSX examples SolidSX creates a dataset and opens it You should see something like this ei Relations Filter show all Ordinal filter lt none gt Coloring attribute type qgregation type min ection filter in out File C Program Files SolidSource SolidS Elements 4 Coloring attribute type Caption attribute name Colormap type colormap Legend m vea 4 MiNamespace y MinestedType Primitive MProperty D Type 5 The radial view is divided into a top and bottom half The to
3. SolidSource s Solid Software Xplorer User Manual for version 1 4 September 2009 4 i m j AAA sll I n LP Va hu hi yh nc 4 M M Hh Lott An YY Png I Ny I i ne WU s Whig contol a 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 2 Contents T introduction eeaeee E E E E tet ieee E E E E E E ecerceeeae ee 3 2 IAstallatiON siese esec a a SEAI GEARRA E E E EEE E E E SE E EA AERE 4 3 Working With SolidSX ccccccccccccccccesessseeceeeeccsaaeeseecceeeeesaueesseseeeesessaeeesseeeeeseessaauaseeeeeeesssaaaasseeeess 5 3 1 S lldSX datasets E E E E E 5 3 2 NSW MVC ace min A E E E E E eee ceeeveesorvesereseees 6 3 2 1 Relat ONS eee E E E tenet aah E eee eanetaas ena aaa 8 3 2 2 Inspector WINdOWS sseeeseecccccccceeesseecccceeccaueaseeeceeeeessaueuseeeeeeeessuaaaaseeeeeeessaaaaaeeeeeeeeeaaas 10 3 3 INQVIG ACI ON A a EEEE E E E EE teers 12 3 3 1 BRIS PUM at cece cs oes se KEN NNI ELENE ENAN EEIEIE AAEE AEA 12 3 3 2 SEIEN eiee E E EE A EE R 12 3 3 3 Collapsing and expanding elements cccccccccccssesseseecececeesaeeesseeceeeeesseaaseeeeeceeeesseaeesss 13 3 3 4 Hiding and disabling elements ccccccccccesssseeeeceeecssuuasseececeeessuueasseeeeeeeesuaaaaseeeeeeeeeaas 13 3 3 5 Changing the element and relation coloring attributes ccccccccccecessseseseeeeeeeeesseaeeees 13 3 3 6 Setting a relation os mm 13 3 3 7 Finding elements secha sess cee
4. ace sees ces ace seas aeeecaie sme sass sees aa a aaa aas 14 3 4 List of keyboard shortcuts and MOUSE COMMANAS sssssseececececaeeeeeeceeeseesauaaeeseeeeeessaaaness 15 3 5 Using the NET IMPOrtE csiis skee aaa oar a ear aeaa ir eer atei EEEa 16 3 6 The Solid Software Xplorer XML fOrmMat cccccscccccccccseeeeeeecceeeeesseeeeeecceeeessuuauseeeeeeeeessaaagees 16 A WU OM alice sce caee occ ceceec cs ante a cate crcecncenses suse or IR E AST AS Suse SET AGE AG E EER 19 5 Using the Visual Studio plUg in sceecceccccccccseeesseeecccecesuaeeseeeeeeeeessuaessseeeeeeesssuaesseeeeeeeessaaaaeeeeees 23 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 3 1 Introduction Solid Software Xplorer SolidSX is an application that helps you explore analyze and understand the source code of large software systems A good understanding of a software system supports decisions for code refactoring removing code clones identification of design patterns and debugging to name a few examples As such SolidSX is a useful tool for software developers designers and architects Instead of displaying the code textually SolidSX represents the software system graphically The human visual system is known to have a high data bandwidth and throughput and SolidSX uses this property to convey large amounts of information to the user by creating novel high quality visualizations of the software In that sense SolidSX is
5. and cannot be 0 e Each edge element has attributes fromnid and tonid referencing nodes Both node and edges elements may contain lt attribute gt elements An attribute element has an attribute key and value assigning a key value pair to the enclosing node or edge Each node should contain at least the attribute name 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 18 There are some optional special attributes that affect the functioning of SolidSX these attributes start with an underscore e Nodes can have an attribute icon whose value is an image file that resides in the SolidSX subfolder icons The icon is shown in the tree view e Nodes can have an attribute primary with values True and False indicating whether the element is from user code primary or is an element from an external library on which the primary code depends secondary e Nodes can have an attribute autodisablewhenexpanded Nodes having such an attribute with another value than 0 or false are automatically disabled when they are expanded This is useful for elements that are not useful to have in the visualization at all times and that would often be hidden by the user anyway 2007 2009 SolidSource BV www solidsourceit com SolidSource 4 Tutorial Page 19 This section gives a short demonstration of some common operations in SolidSX It is not meant as a typical use case
6. any screen space 3 3 5 Changing the element and relation coloring attributes You can change the coloring attributes for both elements and relations from the legend When brushing an attribute in the popup menu the colors are immediately updated This allows you to detect correlations among attributes 3 3 6 Setting a relation filter You can set two types of filters on relations a filter on nominal data and a filter on ordinal data When setting a filter only relations that pass the filter are shown the other relations are hidden To set a nominal filter click Filter in the legend A pop up shows the available key value pairs that can be used to filter the relations These pairs are automatically determined by SolidSX when loading the 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 14 dataset When brushing the filters the result is immediately updated To select multiple filters each relation has to pass at least one of them hold shift while selecting them The popup disappears when releasing shift To set an ordinal filter click Ordinal filter in the legend A dockable pop up appears Select the key on which you want to set the filter Using the two sliders you can set the minimum and maximum value that the attribute can attain If a relation does not have the specified key it does not pass the filter EB Solid Software Xplorer Standard 1 402 DER File Edit Tools View Help File D Number Puzzle exe
7. attribute In case of nominal data the line shows the number of times Number Puzzle exe gt mscorlib dll 189x type cal access 165 implements 13 inherits 11 each nominal value occurs In case of ordinal data the minimum maximum and average value is displayed 3 3 2 Selection When left clicking on an element the element and all of its descendants are selected When holding control only the Figure 5 Aggregated information 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 13 element itself is selected without its descendants When holding shift the elements are added to the current selection The selected elements are indicated using a black outline To clear the selection double click the white background When a selection is made only the relations that are incident to the selected elements are shown the others are made gray By changing the selection also called the primary selection the secondary selection is automatically updated The secondary selection consists of elements that are connected to the primary selection by relations Whether incoming or outgoing or relations are shown is determined by the direction filter found in the legend When clicking on an arrow the two end elements are selected You can select multiple arrows at once by holding the left mouse button and then brushing the relations that should be selected 3 3 3 Collapsing and expanding elements As explaine
8. be class method etc The creator of the dataset can define additional attributes such as parameter count for methods Relations typically have a type attribute where the value of type is call field access or inheritance for example Again additional attributes can be defined Section 3 5 lists the attributes that the NET importer generates 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 16 3 2 User interface The user interface of SolidSX consists of one main visualization window and several inspection windows see Figure 1 These inspection windows can be docked into the main window or made invisible by closing them At any time they can be opened again from the View menu We now discuss the user interface in more detail EA Solid Software Xplorer Standard 1 402 DER Eile Edit Tools View Help Tree view x File D Number Puzzle exe xml Te x Relations ay A Elements S Number Puzzle Version 1 0 0 0 Cult B A Number Puzzle exe B Number_Puzzle E Properties B wy Resources 3 Resources Filter type call access or type implements Coloring attribute type I Ordinal filter lt none gt Caption attribute name Ri Hy Coloring attribute type Colormap type colormap A i Aggregation type max Ni i Direction filter in out Colorize ends start a Culture X S is Z Colormap green red 85 ResourceManager Arra
9. be an indication of a poor design The bundling strength can be controlled from the settings window F4 although it is not necessary to change the default setting Figure 4 shows the advantage of bundling relations left image when compared to using straight lines between elements right image Bundling provides a more global view on the relations the modularity of the system is reflected by the arrows Furthermore bundling prevents visual clutter This technique of bundling relations was first described in the academic paper Hierarchical Edge Bundles Visualization of Adjacency Relations in Hierarchical Data Danny Holten IEEE Transactions on Visualization and Computer Graphics TVCG Proceedings of Vis InfoVis 2006 Vol 12 No 5 Pages 741 748 2006 2007 2009 SolidSource BV www solidsourceit com Page 10 SolidSource Figure 4 Bundled left versus non bundled relations right 3 2 2 Inspector windows So far we have discussed the radial view and tree view However SolidSX provides some additional windows that enable fast and easy inspection of data The attribute inspector F1 allows you to inspect all the attributes of the element or relation that you are currently brushing with the mouse The primary and secondary selection windows F2 and F3 allow you to inspect the current primary and secondary selection The primary selection consists of elements that are selected by the user typically done by le
10. better suited to gain code insight than classical text based approaches SolidSX visualizes the following aspects of the software system e Source code elements such as namespaces classes and methods e The element hierarchy or in other words the nesting structure of elements Typically namespaces contain classes classes contain methods etc but other hierarchies can be thought of e Relations Elements have various types of relations between them For example a method that calls another method has a calling relation Another example is an inheritance relation from one class to another e SolidSX visualizes metrics on both elements and relations Example metrics are the number of local variables lines of code and code complexity SolidSX makes large datasets insightful by combining these aspects into a single visualization and by facilitating easy inspection and navigation through a user friendly interface Hardware accelerated OpenGL graphics are used to ensure high visual quality fast performance and smooth navigation Some of the features of SolidSX are e Visualizes large software systems using state of the art visualization techniques e Uses hardware accelerated OpenGL graphics for high quality visualizations and smooth navigation e Provides a clear minimal interface for high ease of use e Extracts information from Microsoft NET projects written in any of the NET languages such as CH Visual Basic Visual C
11. Edit View Project Build Debug Data Tools Window Help Processutis cs Program cs _SettingsForm Designer cs sx Solid Software Xplorer sNumber_Puzzle Program g maino i Elusing System using System Collections Generic using System Windows Forms using PU E namespace Number Puzzle Static class Program lt summary gt The main entry point for the appl lt summary gt STAThread static void Main it ErocessUtils ThisProcessIsAlre ProcessUtils SetFocusToPreviat else Application EnableVisualStyle Application SetCompatibleTexti Application Run new MainForm Figure 10 To go from visualization to source code right click an element and select Locate element in source code The corresponding code will get a gray background To go from source code to the visualization simply put the text cursor somewhere in a source code element 2007 2009 SolidSource BV www solidsourceit com
12. arrow heads are drawn if the arrow contains at least one relation in each direction As with elements the color of an arrow encodes an attribute of the relation The relation coloring attribute determines what attribute is used for coloring the arrow and can be changed from the legend Because an arrow can represent more than one relation at once each relation within the arrow contributes its own color If there are at least two different colors the arrow gets a magenta color In addition to the arrow heads the direction of the arrow is also encoded by making the arrow gray near the ending element Whether the start or the end of an arrow is gray depends on a setting in the legend If the arrow is bi directional or if the setting is set to start end none of the ends is gray The encoding of direction in the color has some benefits over using arrows especially when many arrows are drawn You might wonder why the arrows are curved This is done to avoid the visual clutter that you would get when using straight arrows SolidSX uses the hierarchy of the elements to curve the arrows effectively bundling the relations that have hierarchically related targets Simply put the relations of an element A are bundled with the relations of an element B by the common ancestor of A and B Note that when there is no strong hierarchy there will be limited bundling as a result This indicates a weak modularity of the software system and might
13. ction The elements in the secondary selection are displayed using a gray outline The primary and secondary selection windows are also updated accordingly The secondary selection window can be used to quickly see the dependencies of the selected elements for examples the callers and callees for a certain method Additionally SolidSX highlights the visualization element on which the cursor is located by giving it a red outline Note that if the selected code element happens to be inside a collapsed ancestor in the visualization the selection will be internal to the collapsed element You could make the selection visible by right clicking the element in the primary selection window and selecting Make element visible for example To go from a visualization element to the corresponding source code element right click an element and select Locate element in source code The source code element will be made visible in the text view and will receive a gray background Right clicking an element works in the radial view as well as in the selection windows 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 25 When you make changes to the source code these changes are not reflected in the visualization until you recompile the project The reason is that SolidSX does not analyze the source code directly but analyzes the generated assembly instead 6 Number Puzzle Microsoft Visual Studio Experimental Hive File
14. d in Section 3 2 1 an important operation in SolidSX is the collapse and expansion of elements A collapsed element does not show its children in the radial and tree view so that the element takes up less screen space All relations from or to any of the descendants of the collapsed element go to the collapsed element instead Elements can be expanded or collapsed by double clicking an element in the radial view or by brushing the node and pressing the E or C key respectively If there is no element under the mouse cursor all elements in the selection are expanded or collapsed Elements can be recursively expanded or collapsed by pressing Shift E or Shift C respectively In the tree view elements can be expanded or collapsed by clicking the little plus and minus signs left of the labels or by pressing the left and right arrow keys 3 3 4 Hiding and disabling elements A node can be hidden by pressing H when brushing an element When hiding an element the element takes up less space in the radial view making more room for the others Furthermore relations from or to the hidden element are also hidden Disabling an element has the same effect as hiding it but disabling an element is more definite in the sense that it cannot be undone by selecting Unhide all Ctrl U A hidden element that is not a leaf or collapsed still takes some screen space the amount of which can be controlled from the settings window Hidden leaf elements do not take up
15. dataset has an XML format that is explained in Section 3 5 e You can also open one of the example datasets that comes with SolidSX This is useful to get acquainted with SolidSX Example datasets can be found in the folder examples in the folder where you installed SolidSX A SolidSX dataset contains information about elements hierarchies and relations A relation is defined between two elements and has a direction Each code element in a hierarchy has a parent element and has zero or more child elements For example the children of a class are its methods and fields and the parent of a class is the file it is defined in A dataset might define multiple hierarchies SolidSX visualizes one hierarchy at a time but allows you to quickly switch between hierarchies A dataset also defines directed relations between source code elements A call relation for instance typically connects two methods and indicates that the first method calls the second method Other types of relations are inheritance and field access relations A dataset can further define a variable number of attributes on the elements and relations Each element and relation has a set of key value pairs where the key is a string denoting the attribute and the value denoting its value The value of an attribute can be a string number or Boolean Datasets typically define at least the name and type attributes for code elements where the values of type will
16. e current visualization should be interpreted such as which attributes are used for coloring elements and relations which relations are shown and what color maps are used The visualization parameters can be changed by interacting with the legend 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 7 Figure 2 The radial view showing elements in the concentric rings and relations in the center On the left element color encodes element type on the right color encodes code size Each element has a color that encodes the value of one of its attributes The attribute that is used for coloring is called the element coloring attribute The coloring attribute can be changed by the user from the legend Each element has cushion like shading but lacks shading when the element does not have the coloring attribute for example a box representing a class element will not have shading when parameter count is the coloring attribute as only methods have such an attribute Figure 2 shows an example On the left hand side the color encodes the element type namespaces are gray classes are yellow methods are magenta and property fields are blue On the right hand side the color encodes code size where red indicates a large and green a small size In this image fields and namespaces have no shading as they do not have the code size attribute Each element has a text label applied to it that shows the attribute na
17. e in stand alone mode as a normal Windows application but can also be used as a plug in for Microsoft Visual Studio The advantage of using SolidSX as a plug in is that you can more easily navigate between source code en visualization even while you are coding The plug in has been verified to work with e Visual C projects e Visual Basic projects e Visual C managed projects For other NET languages the visualization works but the code navigation options might not work The plug in requires Microsoft Visual Studio 2008 Standard edition Unfortunately Microsoft does not allow plug ins to work under the Express editions When installing SolidSX the Visual Studio plug in is automatically installed if Microsoft Visual Studio 2008 is found In the components panel of the setup you can see whether Visual Studio was found and whether the plug in will be installed see Figure 7 Solid Software Xplorer 1 402 Setup E hae icp sasda View Refactor Project Build Debug Data Tools Window Help Choose Components Choose which features of Solid Software Xplorer 1 402 you want to install 05 EE Code CuHAlta0 b D Debug iu Any CPU CF open FESP n With Check the components you want to install and uncheck the components you don t want to i we ram cs PuzzleGrid cs PuzzleControl install Click Next to continue T4 Server Explorer Ctrl Alt s jumber_Puzzle Program Select the type of install re S Solution Expl
18. e same dataset 3 2 1 Relations Relations form a major part of the visualization and are drawn in the center of the radial view A relation between two elements is drawn as a curved arrow For example one method calling another is shown as an arrow pointing from the caller to the callee It is important to note that a single arrow can represent more than one relation This is the case when the parent or another ancestor element of an arrow s end element is collapsed Because the descendant elements of a collapsed element are not shown the relations to these descendants need to be aggregated This means that all relations from or to any of the descendants of the collapsed element go to the collapsed element instead For example when collapsing a class element all call relations from or to any of its methods will be aggregated and will end at the class element instead Due to this collapsing operation a single arrow in the radial view might represent many relations at once To name an extreme case by collapsing the top level element of a system only one element remains visible and only one arrow is drawn namely a self loop on the top level element 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 9 Arrow heads are drawn to indicate the direction of the relation s it contains If the arrow represents only one relation a single arrow head is drawn at the ending element If the arrow represents multiple relations two
19. eeded by SolidSX from executable and DLL files that are written in any NET language such as CH Visual Basic managed C and Silverlight These NET executables and DLLs are called assemblies Because you do need to have the source code of the imported assembly you can also inspect third party assemblies such as the NET Core Library mscorlib dll however note that some assemblies might be obfuscated In order to use the NET importer you need to have the Microsoft NET Framework installed which is probably installed already if you are a developer The framework can be downloaded from http microsoft com net To visualize your NET project select File gt Import NET assembly and select the compiled executable or DLL file The importer will output an intermediate SolidSX dataset to the folder Program Files SolidSX datasets and automatically open it The examples folder located inside the SolidSX folder contains an example file Number Puzzle exe to try out the NET importer Datasets created using the NET importer have the following element attributes attributes denoted are only available in SolidSX Standard edition e name the name of the source code element Note that some operators e type whether the element is a class namespace field method constructor etc e parametercount the number of parameters of a method e variablecount the number of local variables of a method e acc
20. esExist ba am Puzzedata cs PuzzleGrid cs for int i 0 i lt numberOfCandic RandomDigitList cs i Settings cs azzleDate candidatePuzzle EE SettingsForm cs Utilities cs sis h rieordi X ia E NunitTests unavailable name amp K Setup nonZeroDifficultyPuzzlesEx GeneratePuzzles Int Method Gy Detected Dependencies WList lt Number_Puzzle Constructor saree creo SET 3 GeneratePuzzeQ a i saa Eusing System using System Diagnostics using System Collections Lusing System Collections Generic M savojdxa Jenieg int totalDifficulty 0 for int p 0 p lt numberOfPuzzles F t a gt candidatePuzzles if candidatePuzzle Difficulty Figure 9 SolidSX integrates with Visual Studio like any other tool window As a plug in SolidSX allows you to navigate back and forth between source code and the visualization To go from a source code element to an element in the visualization you simply put the text cursor somewhere inside or on the code element For example to select a method set the cursor somewhere inside the method body To select a field set the cursor somewhere on the field name The corresponding element is automatically added to the selection of SolidSX as indicated by the black outline in the radial view Like in the stand alone version the secondary selection is automatically computed and contains the elements connected to the primary sele
21. essmodifier whether a class field or method is public internal etc e callmodifier whether a method is virtual abstract etc e codesize the size of the method body measured as the size of the compiled code in bytes e complexity the complexity of the method body measured as the number of branch statements e throwcount the number of throw statements inside a method e castcount the number of casts inside a method Relations have the following attributes e type the type of the relation Can be call access indicating a call relation between methods or field access inherits for classes inheriting from other classes and implements for classes implementing interfaces e count the number of calls field accesses that the relation represents Only for call access relations 3 6 The Solid Software Xplorer XML format SolidSX is well suited to visualize dependency data from any source and is not limited to software You can visualize your own datasets using SolidSX by exporting your data to an XML file Below is an example XML file demonstrating the format 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 17 lt xml version 1 0 encoding utf 8 gt lt dataset gt lt nodes gt lt node nid 1 gt lt attribute key name value Root gt lt node gt lt node nid 2 gt lt attribute key name value A gt lt attribute key weight value 0 4 gt de gt
22. ft clicking them The secondary selection is computed automatically by SolidSX and consists of the elements that are connected to that is have relations with the primary selection These selection windows also show attributes of the selected elements and can be used to sort them by clicking on the respective column Primary selection x f Secondary selection name name gPuzzle 2835 0 GeneratePuzzles Int3 List lt Number_Puzzle P 3 GeneratePuzzieQ EP Difficulty QAdd PuzzleData Fv la 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 11 The settings window allows you to set parameters of the visualization that are less often used than those in the legend The settings window can be shown by pressing F4 or from the menu bar The log view stores informational messages warnings and errors that might have occurred The log is also stored as log txt in the application folder 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 12 3 3 Navigation Fast and easy inspection and navigation is an important feature of SolidSX SolidSX offers a large number of navigation actions brushing selection collapsing and expanding and filtering to name a few We discuss these operations below 3 3 1 Brushing When brushing an element in the radial view placing the mouse cursor on it the element gets a thick outline and a tooltip is shown at the mouse position The fi
23. h the element System and press Shift E to fully expand the System element until all the leaves of System are visible We see the following File C Program Files Solid Source SolidS Elements g Relations Filter show all Ordinal filter lt none gt oN Coloring attribute type regation type min Coloring attribute type Caption attribute name Colormap type color Legend a Moduig iS E Method orlib Vers i The colors of the elements that appeared are explained in the color map legend on the left hand side We see that the one magenta arrow that went from Number Puzzle to System is now split into several other arrows Each arrow that appeared is green yellow or red indicating a call access implements or inherits relation respectively as indicated by the color map legend on the right hand side Suppose that we want to know which classes of Number Puzzle implement the INotifyPropertyChanged interface We left click the element INotifyPropertyChanged The primary selection window is updated to reflect that the selection changed The secondary selection is automatically updated by SolidSX and contains all elements that are connected to 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 21 INotifyPropertyChanged We observe that only the class Settings is connected to the element PA Solid Software Xp
24. he number of elements that a dataset may contain There are currently two editions of SolidSX e SolidSX Lite edition contains all the basic functionality needed for importing and visualizing NET assemblies e SolidSX Standard edition has all the functionality of the Lite edition but adds the following functionality o The NET importer generates several extra attributes such as complexity and cast count o Making high resolution screenshots up to 3000x3000 pixels of your system o Loading and saving visualization states for quickly accessing often used views on the software system o Importing XML datasets that you generated yourself Visit http www solidsourceit com for more information 2007 2009 SolidSource BV www solidsourceit com SolidSource Page S 3 Working with SolidSX Working with SolidSX involves the following aspects e SolidSX datasets e The user interface e Navigation We discuss these aspects in the sections below If you want to get started immediately you can follow the tutorial from Section 4 3 1 SolidSX datasets SolidSX visualizes Solid Software Xplorer datasets You can obtain a dataset in three ways e Use one ofthe importers that come with SolidSX There is currently one importer available for NET assemblies More converters will be available in upcoming versions e If no converter exists yet for your programming language or development environment you can create a dataset yourself The
25. lorer Standard 1 402 File C Program Files Solid Source SolidS X datas emis f Relations Elements Filter show all Coloring attribute type Ordinal filter snone gt Caption attribute name Coloring attribute type Colormap type colorm Aggregation type min ection filter in out ap green red Legend type Make element visible Reais hailse Shift C Expand E Recursive expand Shift E ngs collapsed neh Class Inspect attributes The inset in Number Puzzle indicates that an element from the secondary selection is located inside it To make the element visible in the radial view we could expand Number Puzzle further for example by pressing Shift E or by using the tree view or we can right click the Settings element in the secondary selection window and select Make element visible see figure Doing this Settings is made visible by expanding all its ancestors allowing you to see the context 2007 2009 SolidSource BV www solidsourceit com SolidSource Te ff c CENTS PZ 10 Finally we expand all elements by pressing CtrI E Page 22 11 This concludes the tutorial but SolidSX contains many more features that you can discover by exploring the user interface 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 23 5 Using the Visual Studio plug in SolidSX can operat
26. managed and Silverlight The source code is not needed just import your executable or DLL 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 4 e Can be used stand alone to analyze any compiled NET assembly but can also be fully integrated with Microsoft Visual Studio as a plug in When used as a plug in you can navigate between source code and visualization while you are coding making SolidSX a convenient developer tool e SolidSX is not limited to exploring software systems but can be used to visualize other dependency data you might have as well If you want to know more about importing your own data see Section 3 6 2 Installation SolidSX will run on most recent computer systems SolidSX requires e Operating system Microsoft Windows 2000 NT XP or Vista 32 bit e Graphics card OpenGL 1 1 compliant card resolution of 1024 x 768 minimum 1280 x 1024 or higher advised To use the NET import functionality you need to have the Microsoft NET framework installed However SolidSX itself does not need the NET framework The installation is straightforward Download and execute the setup executable from the SolidSource website http www solidsourceit com After installation you need to select a license file We provide free evaluation and educational licenses on our website that will be sent to you by e mail If the license is expired you can continue working with SolidSX but a limit is put on t
27. me Naturally the more elements are displayed the less screen space is available for each element which might make labels too small to read when many elements are displayed You can inspect the label of an element by brushing it with the mouse cursor A tooltip is displayed that clearly shows the values of the labeling and coloring attribute of the element Alternatively the attribute inspector can be used F1 to inspect the element s name and other attributes The tree view provides another view on the element hierarchy using the familiar tree control The tree view only shows elements no relations Nodes can be collapsed and expanded from the tree view by clicking the plus and minus signs to the left of them 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 8 Collapsing and expanding elements are important operations in SolidSX A collapsed element does not show its children in the radial and tree view so that the element takes up less screen space When viewing a large dataset it is not feasible to visualize all elements at once so some elements need to be collapsed for example of a sub system which you are not interested in Furthermore by collapsing and expanding you can control the level of detail at which you view the system for example by collapsing all class elements Figure 3 shows two other collapsed states of the same hierarchy as shown in Figure 2 Figure 3 Two different collapsed states of th
28. mode with a few minor differences the menu bar is not located at the top of the window anymore but can now be 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 24 accessed through right clicking the white background and selecting Menu Furthermore the status bar is always located underneath the radial view 6 Number Puzzle Microsoft Visual Studio Experimental Hive Bile Edit View Refactor Project Build Debug Data Tools Window Help Puzzle cs Program cs Start Page gNumber_Puzzle Puzzle IE p il Elements ml rae ___ Relations Ri DE AA T Coloring attribute typo 7 Ta Ls Solution Number Puzzle 2 proje a Caption attribute o Stil 5 al fiter ISE Number Puzzle Colormap typ i Rie amp S Ly Properties sti Assemblyinfo cs BB EA Resources resx di J is S E Settinos settings 5 namespace Number_Puzzle go eS 8 Settings Designe ig E References a public static class Puzzle A ity ro Gi Ondine Help 4 E Teens Le n EE AboutForm cs a public static List lt PuzzleData gt GeneratePuz a ti E app config s G INotify cs zzleData gt puzzles new List lt P we EE MainForm cs P E MainForm Designer const int numberOfCandidatePuzzles 2 W 2 MainForm resx E i EE MemoForm cs EE PrintForm cs GE ProcessUtils cs Program cs Puzzie cs E PuzzleControl cs E PuzzleControl Desigr 4 f N s PuzzleControl resx bool nonZeroDifficultyPuzzl
29. orer Ctrl Alt L using System Or select the optional Pr file Description CA Bookmark Window Ctri k Ctl4w using System Collections Ge Eas you wish to R Enables integration of Class Vi chrlishitec using System Windows Forms install Pug Solid Software Xplorer i oven ae using PU pong wa Ea Code Definition Window Ctrl Shift V io Only avail for Visual Studio 2008 or B Object Browser Ctrl Alt J namespace Number_Puzzle higher a i L Error List Ctri Ctrl E static class Program E output Alt 2 TELE E Properties Window Alt Enter Summ The main entry J Tasklist Ctrl Ctrl T summar gt Toolbox Ctrl Alt x STAThread Other Windows b 2 Command Window Ctri Alt A 1 S h vi lis th I in if Vi I di Toolbars gt ee Guidance Navigator Window s 1 Figure 7 The setup only insta A sA ug in if Visual Studio 2008 Ful Sareen shifteasenter 30 Sold Software poner was round G1 Navigate Backward Ctl LE Document Outline Ctri Alt D a 2 Object Test Bench Figure 8 Opening SolidSX from Microsoft Visual Studio When you start Microsoft Visual Studio after setup there will be a new dockable window available that contains Solid Software Xplorer To open the window select View gt Other windows gt Solid Software Xplorer see Figure 8 Solid Software Xplorer behaves like any other tool window in Visual Studio it can be docked tabbed hidden etc see Figure 9 The interface of SolidSX is almost the same as in stand alone
30. p half contains elements from the user code Number Puzzle exe in this case whereas the bottom half contains elements from external libraries We see only 5 elements of the hierarchy because they are still collapsed If we brush an element a tooltip appears that clearly states the name of the element and the value of the element coloring attribute which is currently set to type see the upper left corner of the legend By hovering over all 5 elements we observe that they are all assemblies 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 20 6 As we can see from the 5 arrows Number Puzzle uses elements from the mscorlib System System Drawing and System Windows Forms assemblies The self loop indicates that Number Puzzle obviously depends on itself Four of the five arrows are magenta colored meaning that they contain at least two different values for the relation coloring attribute which is currently also set to type see the upper right corner of the legend If we brush the arrow while holding ALT going from Number Puzzle to System the tooltip indicates that the arrow contains 38 relations with type call access 13 relations having type implements and 1 relation having type inherits When brushing the green arrow you can verify that the arrow only contains call access relations We want to inspect the exact elements that Number Puzzle uses from System We brus
31. rst line of the tooltip shows the name of the element The second line shows the value of the coloring attribute of the element If you want to see the other attributes you have to open the attribute inspector F1 Note that you can control the font size of the tooltip from the settings Furthermore when brushing an element only the relations that are incident to the brushed element are shown the others are made gray Whether elements that are connected to the brushed element by incoming or outgoing relations are shown is determined by the direction filter found in the legend Most keyboard shortcuts see Section 3 4 also work when brushing an element You do not need to select the element first which saves you a mouse click but more importantly it leaves the current selection intact Brushing elements also works in the tree view and primary and secondary selection windows When brushing an arrow you have to hold ALT to show the tooltip The tooltip shows the number of relations that the arrow represents and the direction of the relations Because ers TS arrows can overlap it is possible to brush multiple arrows at once When brushing number Puzzle eg multiple arrows this is indicated by the text in the tooltip When brushing an aggregated arrow the tooltip indicates that the number of relations that the arrow represents see Figure 5 The second line of the tooltip displays aggregated information of the relation coloring
32. t is brushed the set of selected elements Radial view brush element brush relation Alt mouse left click on element Control Shift mouse left click on relation s mouse double left click on white background mouse left click on color map legend box mouse double left click on element mouse wheel on element mouse right click on element relation C Shift C E Shift E Ctrl F Ctrl Z Ie See the menu bar in SolidSX for more commands Tree view gt shift gt lt shift lt T key 2007 2009 SolidSource BV Show element tooltip Show relation tooltip Select element and its descendants Select element Add element to selection Select the end elements of the relation s Clear selection Select all visible elements with this attribute Expand element Increase width of element Context menu Collapse active element s Collapse active element s and all descendants Expand active element s Expand active element s and all descendants Find and select elements Undo last collapse expand command Go to sibling of last selected element Go to parent first child of last selected element Expand element Expand element and all descendants Collapse element Collapse element and all descendants Go to parent first child of element www solidsourceit com SolidSource Page 16 3 5 Using the NET importer The NET importer that comes with SolidSX extracts the information n
33. xml ashy Relations Elements i a Filter type call access Coloring attribute type Caption attribute name i i Coloring attribute count Colormap type colormap y i i Aggregation type min Direction filter in out j f Colorize ends start Legend 7 3 olormap green red B Array Assembly Class H Constructor E Enum E Field M interface E Method E Module E Namespace M NestedType I Primitive E Property Ordinal relation filter C count vi CE Figure 6 Putting an ordinal relation filter on the count attribute 3 3 7 Finding elements It can be cumbersome to look for a specific code element by searching for it in the tree view or radial view The code element might not even be visible in the current expansion state of the hierarchy SolidSX allows you to find specific nodes by name or some other attribute Choose Tools gt Find or press Ctrl F to open the find dialog First select the key on which to search and then type the search value that the attribute should contain The status bar at the bottom of the main view indicates the number of selected nodes You can use Python regular expressions by checking the option 2007 2009 SolidSource BV www solidsourceit com SolidSource Page 15 3 4 List of keyboard shortcuts and mouse commands In the overview below the active element denotes the brushed element element under the mouse cursor or when no elemen
34. y sf resourceCulture MAssembly IA Lenora gi resourceMan Class i A seth My Settings Constructor i 7 ee i i call access Ml a cctor0 E Enum implements E Settings0 H Field i inherits Ill g ActiveIndex1 Si interface OF ActiveIndex2 E Method AllowIncorrectDigit E Module o REE Mi Namespace gt Mi NestedType E Primitive E Property B Type PuzzleControl Secondary selection name Property WEventHandler Obje Constructor a InitializeComponentQ Method on Black Property YTimerQ Constructor I Figure 1 The user interface of SolidSX The radial view is on the right dockable inspector windows on the left The legend is shown on the left and right side of the radial view The radial view is the main view of SolidSX The radial view visualizes elements as curved boxes that are placed in concentric rings and visualizes relations as curved arrows in the center The nesting of the boxes reflects the hierarchical structure of the elements the outer ring contains top level elements of the hierarchy the lower level elements are found when going toward the center of the circle The circle is divided in two halves the top half and the bottom half The top half contains elements from the user code whereas the bottom half contains the external libraries on which the user code depends The legend is located at left and right side of the radial view and indicates how th
Download Pdf Manuals
Related Search
Related Contents
TS15A 1秒構成内容 Plan de budget - Finances & Pédagogie PS-9000 User`s Manual US English Installation Guide - SureColor T3070/5070/7070 Dôme de Caméra SpeedDome Ultra VII Jour/Nuit Manuel de l Bericht - Avaya Support iconBIT HDB700LED Conteúdo da embalagem Manuel d`instructions Si4831/35 AM/FM/SW TUNER Copyright © All rights reserved.
Failed to retrieve file