Aesthetics of Class Diagrams

Size: px
Start display at page:

Download "Aesthetics of Class Diagrams"

Transcription

1 Aesthetics of Class Diagrams Holger Eichelberger University of Würzburg Am Hubland, Würzburg, Germany Abstract Visualization of object-oriented programs by class diagrams is a widely used technique. So far no commonly agreed aesthetic criteria have been recorded in order to standardize and measure the quality of class diagrams. In this paper we focus on UML class diagrams, the standard notation for class diagrams in software engineering. We propose some aesthetic criteria which reflect the highly sophisticated features of UML class diagrams, a layout algorithm which respects all these features and an implementation of a graph drawing framework which is able to produce drawings according to these criteria. 1 Introduction Class diagrams are frequently used to visualize the static structure of object-oriented programs. In the last years the software engineering community agreed to the UML (Unified Modeling Language) [19] as a common notational standard. The UML was proposed and accepted as an OMG standard. It defines notation and semantics of modeling elements and the relations between these elements. As a modeling standard the UML does not say anything on how to produce readable diagrams. Especially when larger diagrams are shared, an agreement on aesthetics has to be made in order to reduce the costs of communication and to minimize misunderstandings which result from drawing the same diagram in may different ways. Most programs which support the UML notation claim to be conformant to the UML, but they usually do not support all of the highly sophisticated features. The implementation of some tools, TogetherJ by Togethersoft e.g., is directly related to the source code produced from the diagrams and v.v. Therefore analysis and design features like higher associations, association classes or the generalization of associations, which cannot be represented in current programming languages, are omitted. Additionally, most tools have problems to automatically generate class diagrams from source code and to map the diagrams against the design documents in order to visualize, how design decisions have been realized. In most cases a set of the features specified for UML class diagrams or an alternative graphical language which is restricted to such a set may be appropriate. On the other side the UML defines a notation which allows models with a high grade of abstraction to be designed. The great benefit of the UML as a standard is that models can be exchanged between different participants in a standardized way with minimum costs of communication. Therefore we decided to work on the current version of the UML without any restrictions or extensions even if the UML provides different extension mechanisms. As an example of vendor specific extensions, the current problems with XMI [20] (the XML Metadata Interchange format specified according to the current version of the UML) should be mentioned. XMI is an OMG standard which can shortly be described as a serialization of the metamodel instances of a concrete model. As a metadata exchange format XMI does not contain any layout information like fonts, positions or colors. Therefore the concrete implementations in most tools extend the standard by additional information which usually cannot be interpreted across different tools. Hence, a tool which supports pure XMI is in need of a good layout algorithm which implements all features specified by the UML. To guarantee, that diagrams rendered by different tools look similar, a catalogue of aesthetic criteria has to be formulated. After a brief description of related work we describe our preferences in aesthetics of class diagrams. As an example that our proposal can be realized, we describe a layout algorithm which respects all class diagram features specified by the UML. A concrete realization of this algorithm is our graph drawing framework SugiBib which is described in section 5. Finally a discussion on several conclusions and future work is given.

2 2 Related Work An approach to aesthetics on UML diagrams can be found in [9]. Topics like minimization of bends, minimization of edge crossings, orthogonality (for a set of the edges) and a nice aspect-ratio which includes the minimization of the physical width and height of the diagram are discussed. Further topics on text directions, common directions of edges, additional relationship labels and directional indicators do not always conform to the UML. Therefore the main focus of [9] is on graph drawing aesthetics without considering the underlying semantics of the diagrams or the needs of software engineers. More on aesthetics of UML class diagrams was published in [10]. The diagrams presented there, the aesthetic criteria and the results treat UML class diagrams like usual graphs (ER-diagrams, e.g.) without considering advanced features like packages, hyperedges, association classes and their semantic relations to other model elements. In [10] it is mentioned correctly, that there is no guarantee that the results of domain-independent experiments would necessarily transfer across to the domain of UML diagrams. In [5] we showed that current UML tools, which are usually CASE (Computer Aiding Software Engineering) tools, do not implement state-of-the-art layout algorithms. Most of the 43 tools regarded in this evaluation do not implement all features specified by the UML and some of them produce horrible layout results. Even if the layout of class diagrams appears as an NPhard problem, there are several promising approaches to this problem: Caesar [8], yfiles [17] or SugiBib [6]. Caesar is an object-oriented C++-library which implements different algorithms for planarization and compaction. A major goal is to find a balanced layout for aethetic criteria like crossing minimization, bend minimization, uniform direction, orthogonal layout and edge labeling. In contrast to our approach, the Caesar-library does not separate between hierarchical and non-hierarchical relations. Some of the demo drawings of Caesar we ve seen in the past were nicely compacted but the advanced structural and semantic aspects of UML class diagrams have not been respected. yfiles is a Java-based library which implements different data structures and algorithms for graph drawing. The UML demonstration diagrams seemed to be laid out according to orthogonalization and compaction like diagrams produced by Caesar. 3 Aesthetics A class diagram can be described in terms of graph theory. It is obvious that classes, packages and rhombs representing n-ary associations map to nodes. Associations, dependencies as well as inheritance relations map to edges. In this paper, properties which describe the graph and its (planar) embedding are given in terms of nodes and edges. Reasons of these properties based on the semantics of class diagrams are given in the terms of class diagrams like classes and relations. For class diagrams having not more than 10 classes and 10 relations (like most diagrams in the UML specification) it seems to be superflous to define any aesthetic criteria. When diagrams grow like the diagrams in the semantics section of the UML specification document, a lot of diagrams seem to follow inherent rules when positioning classes and the relations in between. Primarily, any definition of aesthetics on class diagrams should be consistent to the style guidelines or the presentation options defined by the UML like font faces, text justification or underlining. Most criteria listed below can be derived directly from the description of the several features defined in [19] with a certain respect to general aestetic principles from graph drawing. We did not evaluate our criteria by making perceptional experiments with test candidats (students, developers, e.g.) so far. But from different discussions in software engineering courses, evaluations of CASE tools and our own work on a domain-specific layout algorithm we are convinced of the validity. The following C1 C2 C8 C9 C3 C11 C5 C4 C10 C6 Note1 Note2 Figure 1. A sample class diagram containing classes in packages, a ternary association, comments, two association classes and two reflective associations. principles are ordered according to priorities, references to prior work are given for most principles: C7

3 A1: Edges should be directed to a common direction according to different partitions of the set of edges. The relations in a class diagram can be partitioned according to different rules. Because programmers and software engineers are used to think in hierarchies to give their projects a certain structure like class, package, module or containment hierarchies we recommend to partition the edges in a set of hierarchical and non-hierarchical edges. An usual partition would be to regard the inheritance and realization relations as hierarchical and the other relations as non-hierarchical relations. Package containment, class nesting (by the anchor notation), aggregations, compositions, directed associations and dependencies may be considered as hierarchy as well. According to different viewpoints a user defined hierarchy may be appropriate. The hierarchy should be clearly visible [15]. In figure 1 inheritance edges (C1 to C2, e.g.) are choosen as hierarchy. A2: Center parents or children. Especially in hierarchy relations, a parent node should be positioned as close as possible to the median position of its children. A child node should be located as close as possible to the median position of its parents [16, 15]. Of course this may apply to neighbours in non-hierarchical relations as well. In figure 1 C2 is centered below C1. A3: General constraints on nodes. Except of nested nodes like compositions or nested packages which are not connected by anchor relations, nodes should not overlap other nodes or edges [16]. Of course the area required by an individual class should be minimized [3, 7] with respect to the contents (name, attributes and method section, further compartments). Nodes on the same hierarchy level should have the same vertical or horizontal coordinate [16], respectively, according to the way (top-down, left-right, e.g.) the hierarchy is drawn. Nodes should not be too close together as well as nodes should not be too far apart [3, 4]. A4: Nodes should be clustered according to semantic reasons. Package membership, composition notation (looks like nested classes) and natural clusters like n- ary associations lead to an obvious clustering. Members of a cluster should be located in a close vicinity, especially if packages should be visualized as individual model elements. In figure 1 C1 to C7 are members of the package, C9 to C11 and the rhomb are members of a ternary association. These classes are members of separate clusters. A5: Avoid crossings and overlappings on edges. Different edges should not overlap, this means that every edge should be visible and readable as an individual [7]. Of course edges should not overlap nodes. Since class diagrams usually admit a non-planar embedding, edge crossings cannot always be avoided but they should be circumvented whenever possible. In the case of edge crossings the symbol defined in the UML should be used. A6: General constraints on edges. Edges should not be too short as well as edges should not be too long [3, 4]. Edges should have not too much bends [1]. The angle between (horizontal) incident edges should not be too small [3]. Nodes should not be located too close to edges [4] except if they are connected to these edges or one of the other principles forces a close vicinity. A7: Centered position of selected nodes. Nodes like the rhomb representing an n-ary association or the junction point of multiple dependencies should be centered relatively to the connected nodes. The same is true for comments but comments have a lower priority. In figure 1 the rhomb is centered to its attached classes C9 and C11. A8: Vicinity and position of association classes. An association class is a class based specification of features of an association. An association class is attached by a dashed line to an association. Therefore the association class should be located in a close vicinity in order to simplify the reading of the diagram. Additionally the UML specification says: The attachment point should not be near enough to either end of the path that it appears to be attached to, the end of the path, or to any of the association end adornments. In figure 1 C2 is attached to the aggregation between C3 and C5. C6 is attached to the reflective edge from C5 to itself. A9: Vicinity of comment nodes. Comments, which are connected to other model elements, should be located as close as possible to the connected nodes. Especially if comments are connected to multiple model elements, the comment should be centered between the connected model elements if possible. Because the main information is located in all other model elements and comments represent additional descriptive information, this principle has a lower priority than A2 and A8. Comment nodes should be respected in package containment as well. In figure 1 the comments and are located as close as possible to the connected model elements.

4 A10: Hyperedges should be as short as possible. The length of edges between edges (hyperedges) like xorconstraints at associations or generalizations of associations should be as short as possible. The connected model elements should be located in a close vicinity because of semantic reasons and a better readability. Hyperedges are not shown in figure 1. As an alternative, generalizations of associations might be written as generalizations of empty association classes. of the sophisticated features specified in the UML and respects the vicinities defined by the UML semantics. C3 C2 C5 C1 C7 C4 C6 Note2 Note1 A11: Adornments should be clearly assigned to their model elements. Generally, constraints and tagged values may be attached to every model element. Additionally, associations in UML may be specified by different graphical and textual adornments like association names, multiplicities, qualifiers, navigability or other adornments and rolenames. These additional specifications as well as discriminators at inheritance edges should be clearly assigned to their model elements and should neither overlap other adornments nor other model elements. It is desirable that the text is oriented to one general direction. In figure 1 a directed association at C6 and an aggregation at C3 are shown. A12: Special requirements for reflective associations. Adornments to reflective associations (associations which have the same class as start and endpoint) should be clearly visible. This is especially true for multiple reflective associations at one class, which should not overlap. Relations between reflective associations and other model elements like comments or association classes should not cross other model elements (especially reflective associations). In figure 1 two reflective associations are connected to C5. A13: Join edges if possible. Inheritance relations, aggregations and compositions should be joined like described in [19] wherever possible. This admits a kind of orthogonal layout for hierarchical relations. If orthogonal layout is mainly used for the layout of nonhierarchical edges, this criterion may be omitted in order to emphasise the hierarchical relations. Sometimes edges which are commonly directed can be grouped in flows like described in [13]. A14: Respect graph drawing constraints. Rectangular aspect-ratio, compact drawing (minimizing the area of the drawing), minimization of bends (respecting the number of bends on an edge or the variance of the number of bends on all edges), angular resolution and symmetry are desirable. All facts of this criterion are typical for graph drawing issues and explained in [1]. But first of all it is relevant that an algorithm covers all C8 C9 C11 Figure 2. A bad example for a layout of the diagram in figure 1. C10 Figure 2 shows a bad example which may have been produced by a simple left-to-right flow-layouter which respects packages. The following principles are violated: A1 (C2 to C1 and C5 to C3 or C4 to C5), A2 (C5 and C4), A5 (C5 to C4 and the reflective edge), A6 (C8 to C1), A7 (the rhomb of the ternary association), A8 (both association classes C2 and C6), A9 (Note1) and A12 (at C5). Of course most of the aesthetic criteria listed above may be mapped into the general principles mentioned in A14. The items mentioned in A14 are commonly agreed, can be measured by well known metrics and are proofed by empirical studies (see [2, 11, 12]). All these criteria only rely on structural aspects of general graphs and can be seen as a foundation of principles to measure the quality of UML class diagrams. Especially from [10] we know, that automatic graph layout algorithms typically do not take the semantics of the diagram into account. In the next section we present an algorithm which is designed for the layout of UML class diagrams and which was implemented to proof the existence of a realization of our criteria. 4 Realization There might be different approaches to realize an algorithm which fullfills all the criteria defined in the section above. As a kind of historical-proofed axiom new graph drawing algorithms seem to be extensions and specializations of well-know algorihms. The base classes of these algorithms are given in [1]: Orthogonalization, force-directed placement and hierarchical layout. Some of these basic algorithms described in [1] can be configured by constraints. This might be a possibility to introduce hierarchies and

5 close vicinities in orthogonal placement. But the more constraints defined on an algorithm, the less is the probability finding an (aesthetic) embedding. Force-directed placement leads to indeterministic results regarding embedding and runtime. Because of historical reasons and previous work we decided to work on hierarchical algorithms. Our layout algorithm [6] is an exhaustive extension of the Seemann algorithm [14] which itself extends the wellknown Sugiyama algorithm [15]. The following enumeration is a brief introduction to our algorithm which combines hierarchical layout for the set of hierarchical relations and orthogonal layout for the rest of the edges. It is clearly described in [6]. Given an arbitrary input sequence which reflects the class diagram in figure 1. This is shown below: ::c2 ::c1 ::c3 ::c5 ::c4 ::c7 ::c6 ::c5 ::c2 ::c3 ::c4 ::c6 ::c1 ::c7 to the contained node. The next figure shows the graph after inserting the containment hierarchy. Prepares A4. 4. Given some information about an intended neighborhood of nodes (association classes, comments, hyperedges), create compound nodes. The principle of compound nodes is shown in figure 3. In the figure below compound nodes which group and its comment, ::c5 ::c6 ::c2 ::c3 ::c4 ::c1 ::c7 Note, that the multi-line drawings are used to achieve a better layout of this paper and should not lead to the illusion that ranking is done before step Identify the edges of the hierarchy (inheritance, aggregation, freely defined hierarchy). Prepares A1. 2. Order the set of nodes with respect to nested nodes. Within a sequence like a nested node order the top ::c5 ::c2 ::c3 ::c4 ::c6 ::c1 ::c7 ::c5 its association class ::c6 and its comment, as well as ::c2 and one of the nodes it is associated to are inserted. Guarantees the vicinities in A8, A9 and A Remove self loops by inserting them into the node, ::c5 ::c6 ::c2 ::c3 ::c4 ::c1 ::c7 level nodes according to the following weights È Û Û Ø Òµ À Ö Ö Ð µ ¾ Òµ Û Ó Ð where Û Û Ó in order to release the dependency between predefined sequences in the input graph and the result. This prepares A4. 3. Containment of nodes in other nodes is temporarily represented by edges (we call this the second-level hierarchy). These edges are then removed from the graph in step 11. Insert the edges of the second-level hierarchy where no hierarchical edges are present so far. In the next figures the containment hierarchy is shown as dotted edges from a node with a filled circle which is furthermore responsible for the correct layout of its reflective edges. Hence, special handling for loops in the implementation is not necessary after this step. Prepares A12. This is drawn in the figure above as a kind of inner edges in ::c5. 6. Remove non-hierarchical edges and disconnected nodes from the graph temporarily in order to prepare the application of the Sugiyama algorithm. Prepares

6 ::c5 ::c6 ::c2 ::c3 ::c4 ::c1 ::c1 ::c2 ::c3 A1, especially the hierarchical layout. The next figure shows this. 7. Insert a virtual root, if the graph consists of more than one component. The root of a graph may be used as starting point of some algorithms. In the example to our algorithm no virtual root is necessary. Prepares A1, especially the hierarchical layout. 8. Calculate the ranking of the graph. Our implementation applies the network-simplex algorithm. Prepares A1, especially the hierarchical layout. The result is depicted in the next figure. c11 c10 ::c5 ::c6 ::c4 ::c7 set of edges which was integrated in the last step. Implements A Iteratively calculate the coordinates of the nodes with respect to the space needed by nodes and edges con::c1 ::c1 ::c2 ::c3 ::c2 ::c3 ::c5 ::c6 c11 c10 ::c5 ::c6 ::c7 ::c4 ::c4 9. Reduce the number of crossings by reordering the nodes of each rank. Prepares A1 and A5, especially the hierarchical layout. 10. The non-hierarchical edges which have been removed temporarily in step 6 are reinserted. In order to realize A2, appropriate edges are added to the set of hierarchical edges (the rhomb to C10 e.g.). This step combines the hierarchical and the orthogonal layout. It prepares A5, A7 and A8. In the next figure the association between ::c6 and ::c7, the aggregation and the connection to its association class are reinserted. 11. Remove the second level hierarchy inserted in step 3 because the information is not considered in the following steps. 12. Perform tree crossing optimizations in order to rearrange the graph and eliminate edge crossings which have to be expected by regarding the non-hierarchical nected to the nodes. Especially arrange the contained nodes in a close vicinity and calculate packages e.g. in the same step. Then calculate the layout of the non-hierarchical edges. The default layout for nonhierarchical edges is an orthogonal layout. Note that association classes are not respected in this step. Implements A2, A3, A4, A6, A7, A10, A11 and A12. Respects A Reintegrate compound nodes which have been inserted in step 4 except of disconnected nodes removed in step 6. Because coordinates have been assigned to compound nodes in the last step, the graph has to be laid out again by searching minimum displacements for the affected nodes. Implements A8 and A9. This is shown in the figure below. Notes have to be reinserted and formatted with a lower priority as association classes, e.g. 15. Search an optimal placement for disconnected nodes and reinsert them into the graph.

7 ::c1 implementation of the transformation. ::c2 ::c3 ::c6 ::c7 c11 c10 ::c5 ::c4 Additional steps which enable incremental layout are not given in this description. Joins of edges like mentioned in A13 are provided by additional methods defined on the final graph class. Therefore it is not part of the layout algorithm. E A B C A B C D Figure 3. Transformation of individual nodes to compound nodes and v.v. The compound node E groups the nodes B and C and encapsulates the edges between the grouped nodes. All edges from outside to B and C are mapped to E. 5 Implementation The algorithm described in the previous section was implemented as a pure Java framework called SugiBib. The basic framework implements preparation steps, the ranking (step 8), the edge crossing minimization (step 9) and the coordinates calculation optional on two types of edges (step 13). The UML part is realized as an extension, specialization and instantiation of the basic framework. The framework approach enables reuse and exchange of different components to easily experiment with alternative algorithms and implementations. As mentioned above, each aesthetic criterion admits a certain constraint which has to be realized in code. In principal all criteria could be seen as rules on a graph instance, which leads to the execution of a certain graph transformation. In fact we realized this as single methods in the extensional part of the framework. The methods check the (pre)conditions and provide an appropriate D Figure 4. A sample diagram created by SugiBib. Comments are omitted due to the current state of the implementation. Figure 4 shows the automatic layout of figure 1 rendered by SugiBib. The hierarchical edges are directed from top to bottom by default (A1, A2). According to A4 the package contains its member classes. The close vicinity between the association class C2, which is member of an inheritance hierarchy, and its attached composition (C3 to C6) is kept. The same is true for the association class C6 which is attached to a reflective association at C4. On the left side a ternary association (classes C9, C10, C11), which fullfills A7, is shown. The current implementation prefers the downward direction for single-connected nodes like C10 instead of moving C10 into the adjacent upper rank. Currently not all constraints required by the asthetic criteria defined in section 3 are implemented. Comments, hyperedges and some edge crossing optimizations are not realized so far. Unfortunately the hierarchical edge from C4 to C3 crosses two associations and violates therefore A2 and A5. This will be a topic for further optimization. 6 Comparison In order to compare the result created by SugiBib we include the following figures taken from [5]. MagicDrawUML by NoMagic Inc. does not seem to guarantee a vicinity be-

8 tween association classes and their attached associations. n- ary associations are not laid out properly. On the other side, MagicDrawUML calculates a nice layout for packages and contained classes and it seems that comments are kept close to the commented model elements. Unfortunately, a layout of this quality is not standard among CASE tools. In figure 6 the containment of model elements in packages is not respected at all even if model elements connected to the package have been laid out correctly. Association classes are not in a close vicinity to their connected model elements at all, different edge crossings and overlappings can be mentioned and an uniform direction of edges cannot be detected. (see A1, A4, A6, A7, A8) In figure 7 the following of our aestetic principles have not been respected: A2, A6, A7, A8, A9. A mixed hierarchy of inheritance edges, aggregations and associations is not considered across package borders, the rhomb in the n-ary association is not centered, comment nodes are not close to the commented model elements, association classes are not in a close vicinity and multiple edges between the same classes overlap (Class3 to Class5). Currently tool vendors try to implement layout algorithms in their tools, but usually without focusing neither on all UML features nor on commonly agreed aesthetic principles. In this paper we described a set of aesthetic criteria which may lead to a standardized way of drawing UML class diagrams. We described an algorithm and an implementation to demonstrate, that the aesthetic proposal can be realized automatically. Because most of our proposals are not artificial, some tool vendors seem to search for algorithms which implicitely produce diagrams according to the criteria mentioned in section 3. We can propose an algorithm, which is able to render all of the highly sophisticated features of UML class diagrams except of different improvements in our reference implementation like missing constraints, scaling for larger diagrams or performance issues. Regarding our aesthetic criteria, a set of metrics may be defined in future to provide a measurement of the quality of the layout of class diagrams. If a model description including the coordinates of nodes and edges can be retrieved for Figure 6. The diagram in figure 1 rendered by SystemArchitect by Popkin Software. Figure 5. The diagram in figure 1 rendered by MagicDrawUML, the winner of our CASE tool evaluation. 7 Conclusions and Further Development the diagram to be analyzed, area calculations, euclidean distances and penalty points weighted according to the priority of the measured criterion seem to be appropriate. Inaesthetic node overlappings and edge crossings can be measured automatically as well. In this paper we did not say much on adornments or the layout of texts at different kinds of edges. Currently our tool implements two differenty ways to handle textual attributes: A general scaling of the text and adornments according to the size of the connected nodes and a scaling of selected nodes in order to avoid overlays of adornments of adjacent edges. Usually some nodes with a smaller height can be found in all diagrams. Therefore the first approach leads to very small and unreadable adornments, the second approach to nodes with a large unused area. The size of adornments will be topic of future work.

9 [9] H.C. Purchase, J-A. Allder, D. Carrington, User Preference of Graph Layout Aesthetics: A UML Study, LNCS 1984: Graph Drawing - 8th Internation Symposium, J. Marks, Springer, Berlin, 2000, pp [10] H.C. Purchase, M. McGill, L. Colpoys, D. Carrington, Graph drawing aesthetics and the comprehension of UML class diagrams: an empirical study, Proceedings of the Australian Symposium on Information Visualisation, Vol. 9, P. Eades, T. Pattison, Australian Computer Society Inc., Sydney, 2001 Figure 7. The diagram in figure 1 rendered by Objecteering by Softeam. References [1] D. Di Battista, P. Eades, R. Tamassia, I.G. Tollis, Graph Drawing, Prentice Hall, New Jersey, 1999 [2] G. Di Battista, A. Garg, G. Liotta, R. Tamassia, E. Tassinari, F. Vargiu, An Experimental Comparison of Four Graph Drawing Algorithms, Computational Geometry: Theory and Applications, Vol. 7, Elsevier, Amsterdam, 1997, pp [3] M.K. Coleman, D. S. Parker, Aesthetics-based Graph Layout for Human Consumption, Software - Practice and Experience, Vol. 26(12), Wiley & Sons, New York, 1996, pp [4] R. Davidson, D. Harel, Drawing graphs nicely using simulated annealing, ACM Transactions on Graphics, Vol. 15, ACM Inc., New York, 1996, pp [5] H. Eichelberger, Evaluation of the Layout Facilities of CASE Tools, internal report, available on request [6] H. Eichelberger, J. Wolff von Gudenberg, On the Visualization of Java Programs, LNCS 2269: Software Visualization, S. Diehl, Springer, Berlin, 2002 [7] T.M.J. Fruchterman, E.M. Reingold, Graph drawing by force-directed placement, Software - Practice and Experience, Vol. 21(11), Wiley & Sons, New York, 1991, pp [8] C. Gutwenger, M. Jünger, K. Klein, J. Kupke, S. Leipert, P. Mutzel, Caesar Automatic Layout of UML Class Diagrams, LNCS 2265: Graph Drawing - 9th Internation Symposium, P. Mutzel, M. J/ unger, S. Leipert, Springer, Berlin, 2002,pp [11] H.C. Purchase, Effective information visualization: a study of graph drawing aesthetics and algorithms, Interacting with Computers, Vol. 13, Elsevier, Amsterdam, 2000, pp [12] H.C. Purchase, R.F. Cohen, M.I. James, An Experimental Study of the Basis for Graph Drawing Algorithms, ACM Journal on Experimental Algorithms, Vol. 2, ACM Inc., New York, 1997 [13] G. Sander, A fast Heuristic for Hierarchical Manhattan Layout, LNCS 1027: Graph Drawing - Symposium on Graph Drawing, F.J. Brandenburg, Springer, Berlin, 1998, pp [14] J. Seemann, Extending the Sugiyama Algorithm for Drawing UML Class Diagrams: Towards Automatic Layout of Object-Oriented Software Diagrams, LNCS 1353: Graph Drawing - 9th Internation Symposium, G. DiBattista, Berlin, 1998, pp [15] K. Sugiyama, S. Tagawa, M. Toda, Methods for Visual Understanding of Hierarchical System Structures, IEEE Transactions on Systems, Man, and Cybernetics, SMC-11(2), February 1981, pp [16] C. Wetherell, A. Shannon, Tidy drawings of trees, IEEE Transactions on Software Engineering, SE-5(5), 1979, pp [17] R. Wiese, M. Eigelsperger, M. Kaufmann, yfiles: Visualization and Automatic Layout of Graphs, LNCS 2265: Graph Drawing - 9th Internation Symposium, P. Mutzel, M. Jünger, S. Leipert, Springer, Berlin, 2002, pp [18] Layout in UML and CASE, homepage of SugiBib: [19] OMG Unified Modeling Language Specification, Version 1.4, February 2001 via [20] XML Metadata Interchange (XMI) Version 1.1, via 02.pdf

Graph Visualization U. Dogrusoz and G. Sander Tom Sawyer Software, 804 Hearst Avenue, Berkeley, CA 94710, USA info@tomsawyer.com Graph drawing, or layout, is the positioning of nodes (objects) and the

More information

How to Draw a Sequence Diagram

How to Draw a Sequence Diagram How to Draw a Sequence Diagram Timo Poranen, Erkki Mäkinen, and Jyrki Nummenmaa Department of Computer and Information Sciences Kanslerinrinne 1 FIN-33014 University of Tampere Finland {tp,em,jyrki}@cs.uta.fi

More information

Visual Analysis Tool for Bipartite Networks

Visual Analysis Tool for Bipartite Networks Visual Analysis Tool for Bipartite Networks Kazuo Misue Department of Computer Science, University of Tsukuba, 1-1-1 Tennoudai, Tsukuba, 305-8573 Japan misue@cs.tsukuba.ac.jp Abstract. To find hidden features

More information

Component visualization methods for large legacy software in C/C++

Component visualization methods for large legacy software in C/C++ Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University mcserep@caesar.elte.hu

More information

Aesthetics and Automatic Layout of UML Class Diagrams

Aesthetics and Automatic Layout of UML Class Diagrams Aesthetics and Automatic Layout of UML Class Diagrams Dissertation zur Erlangung des naturwissenschaftlichen Doktorgrades der Bayerischen Julius-Maximilians-Universität Würzburg vorgelegt von Holger Eichelberger

More information

Graph/Network Visualization

Graph/Network Visualization Graph/Network Visualization Data model: graph structures (relations, knowledge) and networks. Applications: Telecommunication systems, Internet and WWW, Retailers distribution networks knowledge representation

More information

Object Oriented Design

Object Oriented Design Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and

More information

VISUALIZATION TECHNIQUES OF COMPONENTS FOR LARGE LEGACY C/C++ SOFTWARE

VISUALIZATION TECHNIQUES OF COMPONENTS FOR LARGE LEGACY C/C++ SOFTWARE STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LIX, Special Issue 1, 2014 10th Joint Conference on Mathematics and Computer Science, Cluj-Napoca, May 21-25, 2014 VISUALIZATION TECHNIQUES OF COMPONENTS

More information

Information Visualization of Attributed Relational Data

Information Visualization of Attributed Relational Data Information Visualization of Attributed Relational Data Mao Lin Huang Department of Computer Systems Faculty of Information Technology University of Technology, Sydney PO Box 123 Broadway, NSW 2007 Australia

More information

VISUALIZING HIERARCHICAL DATA. Graham Wills SPSS Inc., http://willsfamily.org/gwills

VISUALIZING HIERARCHICAL DATA. Graham Wills SPSS Inc., http://willsfamily.org/gwills VISUALIZING HIERARCHICAL DATA Graham Wills SPSS Inc., http://willsfamily.org/gwills SYNONYMS Hierarchical Graph Layout, Visualizing Trees, Tree Drawing, Information Visualization on Hierarchies; Hierarchical

More information

The Aesthetics of Graph Visualization

The Aesthetics of Graph Visualization Computational Aesthetics in Graphics, Visualization, and Imaging (2007), pp. 1 8 D. W. Cunningham, G. Meyer, L. Neumann (Editors) The Aesthetics of Graph Visualization Chris Bennett, Jody Ryall, Leo Spalteholz

More information

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)

More information

Complex Network Visualization based on Voronoi Diagram and Smoothed-particle Hydrodynamics

Complex Network Visualization based on Voronoi Diagram and Smoothed-particle Hydrodynamics Complex Network Visualization based on Voronoi Diagram and Smoothed-particle Hydrodynamics Zhao Wenbin 1, Zhao Zhengxu 2 1 School of Instrument Science and Engineering, Southeast University, Nanjing, Jiangsu

More information

INFORMATION VISUALIZATION ON THE BASE OF HIERARCHICAL GRAPHS

INFORMATION VISUALIZATION ON THE BASE OF HIERARCHICAL GRAPHS Математички Билтен ISSN 0351-336X Vol. 39(LXV) No. 1 UDC: 519.171:004.925.021 2015 (25-32) Скопје, Македонија INFORMATION VISUALIZATION ON THE BASE OF HIERARCHICAL GRAPHS Victor N. Kasyanov 1), Elena V.

More information

Handling the Complexity of RDF Data: Combining List and Graph Visualization

Handling the Complexity of RDF Data: Combining List and Graph Visualization Handling the Complexity of RDF Data: Combining List and Graph Visualization Philipp Heim and Jürgen Ziegler (University of Duisburg-Essen, Germany philipp.heim, juergen.ziegler@uni-due.de) Abstract: An

More information

Modeling the User Interface of Web Applications with UML

Modeling the User Interface of Web Applications with UML Modeling the User Interface of Web Applications with UML Rolf Hennicker,Nora Koch,2 Institute of Computer Science Ludwig-Maximilians-University Munich Oettingenstr. 67 80538 München, Germany {kochn,hennicke}@informatik.uni-muenchen.de

More information

Information Visualization on the Base of Hierarchical Graph Models

Information Visualization on the Base of Hierarchical Graph Models Information Visualization on the Base of Hierarchical Graph Models V.N. KASYANOV Laboratory for Program Construction and Optimization Institute of Informatics Systems Lavrentiev pr. 6, Novosibirsk, 630090

More information

Using UML Part One Structural Modeling Diagrams

Using UML Part One Structural Modeling Diagrams UML Tutorials Using UML Part One Structural Modeling Diagrams by Sparx Systems All material Sparx Systems 2007 Sparx Systems 2007 Page 1 Trademarks Object Management Group, OMG, Unified Modeling Language,

More information

Visualization of State Transition Graphs

Visualization of State Transition Graphs Visualization of State Transition Graphs Frank van Ham, Huub van de Wetering, Jarke J. van Wijk Eindhoven University of Technology Dept. of Mathematics and Computer Science P.O.Box 513, 5600 MB Eindhoven,

More information

11 November 2015. www.isbe.tue.nl. www.isbe.tue.nl

11 November 2015. www.isbe.tue.nl. www.isbe.tue.nl UML Class Diagrams 11 November 2015 UML Class Diagrams The class diagram provides a static structure of all the classes that exist within the system. Classes are arranged in hierarchies sharing common

More information

Off-Screen Visualization Techniques for Class Diagrams

Off-Screen Visualization Techniques for Class Diagrams Off-Screen Visualization Techniques for Class Diagrams Mathias Frisch, Raimund Dachselt User Interface & Software Engineering Group Otto-von-Guericke University Magdeburg, Germany [mfrisch, dachselt]@isg.cs.uni-magdeburg.de

More information

Using Use Cases for requirements capture. Pete McBreen. 1998 McBreen.Consulting

Using Use Cases for requirements capture. Pete McBreen. 1998 McBreen.Consulting Using Use Cases for requirements capture Pete McBreen 1998 McBreen.Consulting petemcbreen@acm.org All rights reserved. You have permission to copy and distribute the document as long as you make no changes

More information

Umbrello UML Modeller Handbook

Umbrello UML Modeller Handbook 2 Contents 1 Introduction 7 2 UML Basics 8 2.1 About UML......................................... 8 2.2 UML Elements........................................ 9 2.2.1 Use Case Diagram.................................

More information

Aspect Oriented Strategy to model the Examination Management Systems

Aspect Oriented Strategy to model the Examination Management Systems Aspect Oriented Strategy to model the Examination Management Systems P.Durga 1, S.Jeevitha 2, A.Poomalai 3, Prof.M.Sowmiya 4 and Prof.S.Balamurugan 5 Department of IT, Kalaignar Karunanidhi Institute of

More information

Utilizing Domain-Specific Modelling for Software Testing

Utilizing Domain-Specific Modelling for Software Testing Utilizing Domain-Specific Modelling for Software Testing Olli-Pekka Puolitaival, Teemu Kanstrén VTT Technical Research Centre of Finland Oulu, Finland {olli-pekka.puolitaival, teemu.kanstren}@vtt.fi Abstract

More information

Hierarchical Data Visualization

Hierarchical Data Visualization Hierarchical Data Visualization 1 Hierarchical Data Hierarchical data emphasize the subordinate or membership relations between data items. Organizational Chart Classifications / Taxonomies (Species and

More information

ProGUM-Web: Tool Support for Model-Based Development of Web Applications

ProGUM-Web: Tool Support for Model-Based Development of Web Applications ProGUM-Web: Tool Support for Model-Based Development of Web Applications Marc Lohmann 1, Stefan Sauer 1, and Tim Schattkowsky 2 1 University of Paderborn, Computer Science, D 33095 Paderborn, Germany {mlohmann,sauer}@upb.de

More information

Using UML Part Two Behavioral Modeling Diagrams

Using UML Part Two Behavioral Modeling Diagrams UML Tutorials Using UML Part Two Behavioral Modeling Diagrams by Sparx Systems All material Sparx Systems 2007 Sparx Systems 2007 Page 1 Trademarks Object Management Group, OMG, Unified Modeling Language,

More information

Structural Design Patterns Used in Data Structures Implementation

Structural Design Patterns Used in Data Structures Implementation Structural Design Patterns Used in Data Structures Implementation Niculescu Virginia Department of Computer Science Babeş-Bolyai University, Cluj-Napoca email address: vniculescu@cs.ubbcluj.ro November,

More information

Scenario-based Requirements Engineering and User-Interface Design

Scenario-based Requirements Engineering and User-Interface Design Scenario-based Requirements Engineering and User-Interface Institut für Computertechnik ICT Institute of Computer Technology Hermann Kaindl Vienna University of Technology, ICT Austria kaindl@ict.tuwien.ac.at

More information

Software Visualization and Model Generation

Software Visualization and Model Generation Software Visualization and Model Generation Erik Doernenburg Software Developer ThoughtWorks, Inc. Gregor Hohpe Software Engineer Google, Inc. Where are the most defects? 2006 Erik Doernenburg & Gregor

More information

Object Oriented Programming. Risk Management

Object Oriented Programming. Risk Management Section V: Object Oriented Programming Risk Management In theory, there is no difference between theory and practice. But, in practice, there is. - Jan van de Snepscheut 427 Chapter 21: Unified Modeling

More information

International Journal of Science and Research (IJSR) ISSN (Online): 2319-7064 Index Copernicus Value (2013): 6.14 Impact Factor (2015): 6.

International Journal of Science and Research (IJSR) ISSN (Online): 2319-7064 Index Copernicus Value (2013): 6.14 Impact Factor (2015): 6. International Journal of Science and Research (IJSR) ISSN (Online): 2319-7064 Index Copernicus Value (2013): 6.14 Impact Factor (2015): 6.391 Analyze Road Traffic Condition by Visualization of Data from

More information

Design Patterns for Complex Event Processing

Design Patterns for Complex Event Processing Design Patterns for Complex Event Processing Adrian Paschke BioTec Center, Technical University Dresden, 01307 Dresden, Germany adrian.paschke AT biotec.tu-dresden.de ABSTRACT Currently engineering efficient

More information

A UML Introduction Tutorial

A UML Introduction Tutorial A UML Introduction Tutorial 1/27/08 9:55 PM A UML Introduction Tutorial In this tutorial you will learn about the fundamentals of object oriented modelling, the Unified Modelling Language and the software

More information

Generating Edit Operations for Profiled UML Models

Generating Edit Operations for Profiled UML Models Generating Edit Operations for Profiled UML Models Timo Kehrer, Michaela Rindt, Pit Pietsch, Udo Kelter Software Engineering Group University of Siegen {kehrer,mrindt,pietsch,kelter}@informatik.uni-siegen.de

More information

Supporting Software Development Process Using Evolution Analysis : a Brief Survey

Supporting Software Development Process Using Evolution Analysis : a Brief Survey Supporting Software Development Process Using Evolution Analysis : a Brief Survey Samaneh Bayat Department of Computing Science, University of Alberta, Edmonton, Canada samaneh@ualberta.ca Abstract During

More information

An Automated Testing Tool Using UI Structure

An Automated Testing Tool Using UI Structure , March 12-14, 2014, Hong Kong An Automated Testing Tool Using UI Structure Nutharat Harnvorawong, Taratip Suwannasart, Member, IAENG Abstract Testers usually run a new version of software against existing

More information

Using floorplans for software visualization

Using floorplans for software visualization Bull. Nov. Comp. Center, Comp. Science, 24 (2006), 27 44 c 2006 NCC Publisher Using floorplans for software visualization Z. Apanovich, M. Bulyonkov, A. Bulyonkova P. Emelyanov, N. Filatkina, P. Ruyssen

More information

Chapter 2: Entity-Relationship Model. Entity Sets. " Example: specific person, company, event, plant

Chapter 2: Entity-Relationship Model. Entity Sets.  Example: specific person, company, event, plant Chapter 2: Entity-Relationship Model! Entity Sets! Relationship Sets! Design Issues! Mapping Constraints! Keys! E-R Diagram! Extended E-R Features! Design of an E-R Database Schema! Reduction of an E-R

More information

An eclipse-based Feature Models toolchain

An eclipse-based Feature Models toolchain An eclipse-based Feature Models toolchain Luca Gherardi, Davide Brugali Dept. of Information Technology and Mathematics Methods, University of Bergamo luca.gherardi@unibg.it, brugali@unibg.it Abstract.

More information

Understanding Software Static and Dynamic Aspects

Understanding Software Static and Dynamic Aspects Understanding Software Static and Dynamic Aspects Welf Löwe IPD, Universität Karlsruhe PF 6980, 76128 Karlsruhe Germany loewe@ira.uka.de Andreas Ludwig IPD, Universität Karlsruhe PF 6980, 76128 Karlsruhe

More information

UML based performance modeling of object-oriented distributed systems

UML based performance modeling of object-oriented distributed systems UML based performance modeling of object-oriented distributed systems Pekka Kähkipuro Department of Computer Science, University of Helsinki P.O. Box 26 (Teollisuuskatu 23), FIN-00014 University of Helsinki,

More information

PHP Code Design. The data structure of a relational database can be represented with a Data Model diagram, also called an Entity-Relation diagram.

PHP Code Design. The data structure of a relational database can be represented with a Data Model diagram, also called an Entity-Relation diagram. PHP Code Design PHP is a server-side, open-source, HTML-embedded scripting language used to drive many of the world s most popular web sites. All major web servers support PHP enabling normal HMTL pages

More information

A Comparison of 2-D Visualizations of Hierarchies

A Comparison of 2-D Visualizations of Hierarchies A Comparison of 2-D Visualizations of Hierarchies Todd Barlow Padraic Neville SAS Institute Inc. todd.barlow@sas.com padraic.neville@sas.com Abstract This paper describes two experiments that compare four

More information

Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria

Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria OBJECT-ORIENTED DOCUMENTATION C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria Abstract Object-oriented programming improves the reusability of software

More information

WebSphere Business Modeler

WebSphere Business Modeler Discovering the Value of SOA WebSphere Process Integration WebSphere Business Modeler Workshop SOA on your terms and our expertise Soudabeh Javadi Consulting Technical Sales Support WebSphere Process Integration

More information

Efficient Data Structures for Decision Diagrams

Efficient Data Structures for Decision Diagrams Artificial Intelligence Laboratory Efficient Data Structures for Decision Diagrams Master Thesis Nacereddine Ouaret Professor: Supervisors: Boi Faltings Thomas Léauté Radoslaw Szymanek Contents Introduction...

More information

SysML Vad och varför. Varför Vad. Diskussion. Relation till UML Innehåll Struktur Beteende Krav Cross cutting constructs. Allocations Profiles

SysML Vad och varför. Varför Vad. Diskussion. Relation till UML Innehåll Struktur Beteende Krav Cross cutting constructs. Allocations Profiles SysML Vad och varför Bakgrund Varför Vad Relation till UML Innehåll Struktur Beteende Krav Cross cutting constructs Diskussion Allocations Profiles Bakgrund SysML Formell standard 2007-09-01 http://www.omg.org/spec/sysml/1.0/pdf

More information

Design of Visual Repository, Constraint and Process Modeling Tool based on Eclipse Plug-ins

Design of Visual Repository, Constraint and Process Modeling Tool based on Eclipse Plug-ins Design of Visual Repository, Constraint and Process Modeling Tool based on Eclipse Plug-ins Rushiraj Heshi Department of Computer Science and Engineering Walchand College of Engineering, Sangli Smriti

More information

What is Visualization? Information Visualization An Overview. Information Visualization. Definitions

What is Visualization? Information Visualization An Overview. Information Visualization. Definitions What is Visualization? Information Visualization An Overview Jonathan I. Maletic, Ph.D. Computer Science Kent State University Visualize/Visualization: To form a mental image or vision of [some

More information

Development of a Feature Modeling Tool using Microsoft DSL Tools.

Development of a Feature Modeling Tool using Microsoft DSL Tools. Development of a Feature Modeling Tool using Microsoft DSL Tools. GIRO Technical Report 2009-1.ver 1.0 (05/01/2009) Rubén Fernández, Miguel A. Laguna, Jesús Requejo, Nuria Serrano. Department of Computer

More information

Chapter 19: XML. Working with XML. About XML

Chapter 19: XML. Working with XML. About XML 504 Chapter 19: XML Adobe InDesign CS3 is one of many applications that can produce and use XML. After you tag content in an InDesign file, you save and export the file as XML so that it can be repurposed

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

Towards a Generic Layout Composition Framework for Domain Specific Models

Towards a Generic Layout Composition Framework for Domain Specific Models Towards a Generic Layout Composition Framework for Domain Specific Models Jendrik Johannes Technische Universität Dresden Institut für Software- und Multimediatechnik D-01062, Dresden, Germany jendrik.johannes@tu-dresden.de

More information

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions Announcements SE 1: Software Requirements Specification and Analysis Lecture 4: Basic Notations Nancy Day, Davor Svetinović http://www.student.cs.uwaterloo.ca/ cs445/winter2006 uw.cs.cs445 Send your group

More information

Software Analysis Visualization

Software Analysis Visualization 28th International Conference on Software Engineering Software Analysis Visualization Harald Gall and Michele Lanza !oftware Visualiza"o# Tutorial F7 Software Evolution: Analysis and Visualization 2006

More information

UML for C# Modeling Basics

UML for C# Modeling Basics UML for C# C# is a modern object-oriented language for application development. In addition to object-oriented constructs, C# supports component-oriented programming with properties, methods and events.

More information

Chap 1. Introduction to Software Architecture

Chap 1. Introduction to Software Architecture Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)

More information

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

Topic Maps Visualization

Topic Maps Visualization Topic Maps Visualization Bénédicte Le Grand, Laboratoire d'informatique de Paris 6 Introduction Topic maps provide a bridge between the domains of knowledge representation and information management. Topics

More information

Introduction. UML = Unified Modeling Language It is a standardized visual modeling language.

Introduction. UML = Unified Modeling Language It is a standardized visual modeling language. UML 1 Introduction UML = Unified Modeling Language It is a standardized visual modeling language. Primarily intended for modeling software systems. Also used for business modeling. UML evolved from earlier

More information

HierarchyMap: A Novel Approach to Treemap Visualization of Hierarchical Data

HierarchyMap: A Novel Approach to Treemap Visualization of Hierarchical Data P a g e 77 Vol. 9 Issue 5 (Ver 2.0), January 2010 Global Journal of Computer Science and Technology HierarchyMap: A Novel Approach to Treemap Visualization of Hierarchical Data Abstract- The HierarchyMap

More information

Applying 4+1 View Architecture with UML 2. White Paper

Applying 4+1 View Architecture with UML 2. White Paper Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was

More information

Hierarchy and Tree Visualization

Hierarchy and Tree Visualization Hierarchy and Tree Visualization Definition Hierarchies An ordering of groups in which larger groups encompass sets of smaller groups. Data repository in which cases are related to subcases Hierarchical

More information

Masters of Science in Software & Information Systems

Masters of Science in Software & Information Systems Masters of Science in Software & Information Systems To be developed and delivered in conjunction with Regis University, School for Professional Studies Object Oriented Design Table of Contents January

More information

Graph Drawing Techniques for Geographic Visualization

Graph Drawing Techniques for Geographic Visualization Graph Drawing Techniques for Geographic Visualization Peter Rodgers, University of Kent P.J.Rodgers@kent.ac.uk 1. Introduction Geovisualizers often need to represent data that consists of items related

More information

A Virtual Machine Searching Method in Networks using a Vector Space Model and Routing Table Tree Architecture

A Virtual Machine Searching Method in Networks using a Vector Space Model and Routing Table Tree Architecture A Virtual Machine Searching Method in Networks using a Vector Space Model and Routing Table Tree Architecture Hyeon seok O, Namgi Kim1, Byoung-Dai Lee dept. of Computer Science. Kyonggi University, Suwon,

More information

VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015

VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 VisCG: Creating an Eclipse Call Graph Visualization Plug-in Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 Abstract Call graphs are a useful tool for understanding software; however,

More information

Graph Visualization Toolkits

Graph Visualization Toolkits Information Visualization Graph Visualization Toolkits In fields such as software engineering, telecommunications, and financial analysis, researchers and developers have commonly used graphs to model

More information

Animated Exploring of Huge Software Systems

Animated Exploring of Huge Software Systems Animated Exploring of Huge Software Systems Liqun Wang Thesis submitted to the Faculty of Graduate and Postdoctoral Studies in partial fulfillment of the requirements for the degree of Master of Science

More information

Web Data Extraction: 1 o Semestre 2007/2008

Web Data Extraction: 1 o Semestre 2007/2008 Web Data : Given Slides baseados nos slides oficiais do livro Web Data Mining c Bing Liu, Springer, December, 2006. Departamento de Engenharia Informática Instituto Superior Técnico 1 o Semestre 2007/2008

More information

Designing forms for auto field detection in Adobe Acrobat

Designing forms for auto field detection in Adobe Acrobat Adobe Acrobat 9 Technical White Paper Designing forms for auto field detection in Adobe Acrobat Create electronic forms more easily by using the right elements in your authoring program to take advantage

More information

Requirements Management with Enterprise Architect

Requirements Management with Enterprise Architect An Introduction to Requirements Management with Enterprise Architect By Sparx Systems All material Sparx Systems 2010 version 1.3 www.sparxsystems.com Sparx Systems 2010 Page 1 Trademarks Object Management

More information

UML PROFILING AND DSL

UML PROFILING AND DSL UML PROFILING AND DSL version 17.0.1 user guide No Magic, Inc. 2011 All material contained herein is considered proprietary information owned by No Magic, Inc. and is not to be shared, copied, or reproduced

More information

Process Modeling Notations and Workflow Patterns

Process Modeling Notations and Workflow Patterns Process Modeling Notations and Workflow Patterns Stephen A. White, IBM Corp., United States ABSTRACT The research work of Wil van der Aalst, Arthur ter Hofstede, Bartek Kiepuszewski, and Alistair Barros

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

. Learn the number of classes and the structure of each class using similarity between unlabeled training patterns

. Learn the number of classes and the structure of each class using similarity between unlabeled training patterns Outline Part 1: of data clustering Non-Supervised Learning and Clustering : Problem formulation cluster analysis : Taxonomies of Clustering Techniques : Data types and Proximity Measures : Difficulties

More information

INTRODUCTION TO BUSINESS PROCESS MODELING NOTATION BPMN 1.2 AND BPMN 2.0

INTRODUCTION TO BUSINESS PROCESS MODELING NOTATION BPMN 1.2 AND BPMN 2.0 INTRODUCTION TO BUSINESS PROCESS MODELING NOTATION BPMN 1.2 AND BPMN 2.0 Email: {goliva,gerosa}@ime.usp.br / Twitter: @golivax Agenda 2 Introduction to Business Processes BPMN 1.2 Introduction Elements

More information

JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers

JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers Technology White Paper JStatCom Engineering, www.jstatcom.com by Markus Krätzig, June 4, 2007 Abstract JStatCom is a software framework

More information

Using Microsoft Word. Working With Objects

Using Microsoft Word. Working With Objects Using Microsoft Word Many Word documents will require elements that were created in programs other than Word, such as the picture to the right. Nontext elements in a document are referred to as Objects

More information

Lesson 8: Introduction to Databases E-R Data Modeling

Lesson 8: Introduction to Databases E-R Data Modeling Lesson 8: Introduction to Databases E-R Data Modeling Contents Introduction to Databases Abstraction, Schemas, and Views Data Models Database Management System (DBMS) Components Entity Relationship Data

More information

3D Interactive Information Visualization: Guidelines from experience and analysis of applications

3D Interactive Information Visualization: Guidelines from experience and analysis of applications 3D Interactive Information Visualization: Guidelines from experience and analysis of applications Richard Brath Visible Decisions Inc., 200 Front St. W. #2203, Toronto, Canada, rbrath@vdi.com 1. EXPERT

More information

Generalized Automatic Color Selection for Visualization

Generalized Automatic Color Selection for Visualization Generalized Automatic Color Selection for Visualization Amy Ciavolino and Tim Burke Abstract Creating a perceptually distinct coloring for visualizing large data sets with one or more related properties

More information

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS Canadian Journal of Pure and Applied Sciences Vol. 9, No. 2, pp. 3431-3439, June 2015 Online ISSN: 1920-3853; Print ISSN: 1715-9997 Available online at www.cjpas.net VISUALIZATION APPROACH FOR SOFTWARE

More information

Human-Readable BPMN Diagrams

Human-Readable BPMN Diagrams Human-Readable BPMN Diagrams Refactoring OMG s E-Mail Voting Example Thomas Allweyer V 1.1 1 The E-Mail Voting Process Model The Object Management Group (OMG) has published a useful non-normative document

More information

TIBCO Spotfire Network Analytics 1.1. User s Manual

TIBCO Spotfire Network Analytics 1.1. User s Manual TIBCO Spotfire Network Analytics 1.1 User s Manual Revision date: 26 January 2009 Important Information SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED OR BUNDLED TIBCO

More information

Port Constraints in Hierarchical Layout of Data Flow Diagrams

Port Constraints in Hierarchical Layout of Data Flow Diagrams Port Constraints in Hierarchical Layout of Data Flow Diagrams Miro Spönemann 1, Hauke Fuhrmann 1, Reinhard von Hanxleden 1, and Petra Mutzel 2 1 Real-Time and Embedded Systems Group, Christian-Albrechts-Universität

More information

Java (12 Weeks) Introduction to Java Programming Language

Java (12 Weeks) Introduction to Java Programming Language Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short

More information

TEXT-FILLED STACKED AREA GRAPHS Martin Kraus

TEXT-FILLED STACKED AREA GRAPHS Martin Kraus Martin Kraus Text can add a significant amount of detail and value to an information visualization. In particular, it can integrate more of the data that a visualization is based on, and it can also integrate

More information

INTERACTIVE VISUALIZATION OF ABSTRACT DATA

INTERACTIVE VISUALIZATION OF ABSTRACT DATA INTERACTIVE VISUALIZATION OF ABSTRACT DATA Martin ŠPERKA, Peter KAPEC Abstract: Information visualization is a large research area. Currently with more powerful computers and graphic accelerators more

More information

An Interactive Visualization Tool for the Analysis of Multi-Objective Embedded Systems Design Space Exploration

An Interactive Visualization Tool for the Analysis of Multi-Objective Embedded Systems Design Space Exploration An Interactive Visualization Tool for the Analysis of Multi-Objective Embedded Systems Design Space Exploration Toktam Taghavi, Andy D. Pimentel Computer Systems Architecture Group, Informatics Institute

More information

Visualizing an Auto-Generated Topic Map

Visualizing an Auto-Generated Topic Map Visualizing an Auto-Generated Topic Map Nadine Amende 1, Stefan Groschupf 2 1 University Halle-Wittenberg, information manegement technology na@media-style.com 2 media style labs Halle Germany sg@media-style.com

More information

How To Create A Complex Diagram On A Computer Game

How To Create A Complex Diagram On A Computer Game ENTERPRISE ARCHITECT IMPORT user guide No Magic, Inc. 2013 All material contained herein is considered proprietary information owned by No Magic, Inc. and is not to be shared, copied, or reproduced by

More information

Visualizing e-government Portal and Its Performance in WEBVS

Visualizing e-government Portal and Its Performance in WEBVS Visualizing e-government Portal and Its Performance in WEBVS Ho Si Meng, Simon Fong Department of Computer and Information Science University of Macau, Macau SAR ccfong@umac.mo Abstract An e-government

More information

Arrangements And Duality

Arrangements And Duality Arrangements And Duality 3.1 Introduction 3 Point configurations are tbe most basic structure we study in computational geometry. But what about configurations of more complicated shapes? For example,

More information

A Brief Analysis of Web Design Patterns

A Brief Analysis of Web Design Patterns A Brief Analysis of Web Design Patterns Ginny Sharma M.Tech Student, Dept. of CSE, MRIU Faridabad, Haryana, India Abstract Design patterns document good design solutions to a recurring problem in a particular

More information

CATIA Drafting TABLE OF CONTENTS

CATIA Drafting TABLE OF CONTENTS TABLE OF CONTENTS Introduction...1 Drafting...2 Drawing Screen...3 Pull-down Menus...4 File...4 Edit...5 View...6 Insert...7 Tools...8 Drafting Workbench...9 Views and Sheets...9 Dimensions and Annotations...10

More information

Triangulation by Ear Clipping

Triangulation by Ear Clipping Triangulation by Ear Clipping David Eberly Geometric Tools, LLC http://www.geometrictools.com/ Copyright c 1998-2016. All Rights Reserved. Created: November 18, 2002 Last Modified: August 16, 2015 Contents

More information

Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions

Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions Kathrin Lehmann, Florian Matthes Chair for Software Engineering for Business Information Systems Technische

More information