Software Visualization: From Theory to Practice / Edition 1 available in Hardcover

Software Visualization: From Theory to Practice / Edition 1
- ISBN-10:
- 1402074484
- ISBN-13:
- 9781402074486
- Pub. Date:
- 04/30/2003
- Publisher:
- Springer US
- ISBN-10:
- 1402074484
- ISBN-13:
- 9781402074486
- Pub. Date:
- 04/30/2003
- Publisher:
- Springer US

Software Visualization: From Theory to Practice / Edition 1
Hardcover
Buy New
$219.99-
SHIP THIS ITEMIn stock. Ships in 1-2 days.PICK UP IN STORE
Your local store may have stock of this item.
Available within 2 business hours
Overview
*Visual programming theory and techniques for rapid software prototyping and graph visualization, including distributed programming;
*Visual formalisms such as Flowchart, Event Graph, and Process Communication Graph;
*Graph-oriented distributed programming;
*Program visualization for software understanding, testing/debugging and maintenance;
*Object-oriented re-design based on legacy procedural software;
*Cognitive models for designing software exploration tools;
*Human comprehensibility of visual modeling diagrams in UML;
*UML extended with pattern compositions for software reuse;
*Visualization of software architecture and Web architecture for better understanding;
*Visual programming and program visualization for music synthesizers;
*Drawing diagrams nicely using clustering techniques for software engineering.
Product Details
ISBN-13: | 9781402074486 |
---|---|
Publisher: | Springer US |
Publication date: | 04/30/2003 |
Series: | The Springer International Series in Engineering and Computer Science , #734 |
Edition description: | 2003 |
Pages: | 442 |
Product dimensions: | 6.10(w) x 9.25(h) x 0.04(d) |
Table of Contents
Contributing Authors | xiii | |
Preface | xxiii | |
Part A | Visual Formalisms | 1 |
1 | Graph Grammars for Visual Programming | 3 |
1. | Introduction | 3 |
2. | Graph Grammars and DSVL Generation | 5 |
2.1 | Graph Grammars | 5 |
2.2 | The Reserved Graph Grammar Formalism | 6 |
2.3 | Generating DSVLs | 9 |
2.4 | Graph Parsing | 12 |
3. | Grammar-Based Diagram Visualization | 14 |
3.1 | Spatial Grammar Extension | 14 |
3.2 | Graph Layout | 16 |
3.3 | Position Specification | 18 |
3.4 | Direction Specification | 19 |
3.5 | An Example: Flowcharts | 20 |
4. | Other Applications | 22 |
5. | Conclusions and Future Work | 23 |
References | 25 | |
2 | Visualizing Program Behavior with the Event Graph | 29 |
1. | Introduction | 29 |
1.1 | Software Engineering and Visualization | 29 |
1.2 | Usage of Graph Theory in Visualization | 30 |
1.3 | Addressed Solutions based on the Event Graph | 30 |
2. | The Event Graph Model | 31 |
2.1 | Basic Definition | 31 |
2.2 | Event Attributes | 32 |
2.3 | Ordering Relation | 33 |
2.4 | Event Graph Generation | 34 |
2.5 | Event Graph Visualization | 37 |
3. | Program Analysis with the Event Graph Model | 38 |
3.1 | Visual Representations | 38 |
3.2 | Detection of Program Failures | 40 |
3.3 | Detection of Computational Errors | 41 |
3.4 | Communication and Synchronization Errors | 41 |
3.5 | Visualization of the Detected Behavioral Characteristics | 44 |
3.6 | Time-Scale | 45 |
4. | Advanced Analysis Activities | 46 |
4.1 | Group Identification | 46 |
4.2 | Pattern Matching | 47 |
4.3 | Loop Detection | 52 |
5. | Summary | 54 |
6. | Acknowledgments | 55 |
References | 55 | |
3 | Flowchart Components for Program Visualization | 59 |
1. | Introduction | 59 |
2. | Flowchart Components | 60 |
2.1 | Definition of flowchart components | 61 |
2.2 | The component geometric information | 62 |
2.3 | An example | 63 |
3. | Developing Flowchart Layout Functions | 64 |
3.1 | The method of developing layout functions | 65 |
3.2 | Layout functions for flowchart components | 67 |
4. | Converting Source Code to Flowcharts | 69 |
5. | Prototype Implementation | 70 |
6. | Conclusion | 74 |
References | 74 | |
4 | A Formalism for Graph-Oriented Distributed Programming | 77 |
1. | Introduction | 77 |
2. | Related Work | 79 |
3. | The Graph-Oriented Programming Model | 80 |
4. | The CDG Framework | 83 |
5. | Operations on DPGs | 86 |
5.1 | Primitive Functions | 87 |
5.2 | Construction Operations | 88 |
5.3 | Inspection Operations | 89 |
5.4 | Replacement | 90 |
6. | CDG Calculus | 93 |
6.1 | The Composition Calculus | 93 |
6.2 | Recursion Calculus | 100 |
7. | Applications and a GOP Toolkit | 102 |
7.1 | Communication and Synchronization | 102 |
7.2 | Subgraph generation | 102 |
7.3 | Query | 103 |
7.4 | Example | 103 |
7.5 | A GOP Toolset | 105 |
8. | Conclusions and Future Work | 108 |
References | 108 | |
Part B | Human Factors | 111 |
5 | Designing A Software Exploration Tool Using A Cognitive Framework | 113 |
1. | Introduction | 113 |
2. | Tool support for program comprehension | 115 |
2.1 | Cognitive models of program comprehension | 116 |
2.2 | Characteristics affecting comprehension strategies | 118 |
2.3 | Reducing cognitive overhead | 119 |
3. | SHriMP Views | 120 |
4. | Designing a tool using the Cognitive Framework | 122 |
4.1 | Supporting program comprehension strategies | 122 |
4.2 | Reducing cognitive overhead | 134 |
5. | Summary | 140 |
6. | Conclusions and Future Work | 142 |
7. | Acknowledgments | 143 |
References | 144 | |
6 | UML Class Diagrams: An Empirical Study of Comprehension | 149 |
1. | Introduction | 149 |
1.1 | UML class diagrams | 150 |
1.2 | Experimental aims and definitions | 151 |
2. | Experiment 1: Notation | 151 |
2.1 | Introduction | 151 |
2.2 | Notational variations | 152 |
2.3 | Methodology | 152 |
2.4 | Results | 157 |
2.5 | Analysis | 160 |
2.6 | Discussion (notational variations) | 162 |
3. | Experiment 2: Layout | 163 |
3.1 | Introduction | 163 |
3.2 | Aesthetic variations | 163 |
3.3 | Methodology | 166 |
3.4 | Results | 167 |
3.5 | Analysis | 168 |
3.6 | Within-aesthetic Preference Data | 169 |
3.7 | Between-aesthetic preference data | 172 |
3.8 | Analysis | 174 |
3.9 | Discussion (aesthetic layout variations) | 175 |
4. | Conclusion | 176 |
5. | Acknowledgements | 176 |
References | 177 | |
7 | Analysis of Visual Languages for Parallel Programming | 179 |
1. | Introduction | 179 |
2. | Related Works | 182 |
3. | PCG Language and Editor | 184 |
3.1 | PCG Language | 184 |
3.2 | PCG Editor | 186 |
4. | Usability Analysis | 188 |
4.1 | Abstraction Gradient | 189 |
4.2 | Closeness of Mapping | 191 |
4.3 | Consistency | 192 |
4.4 | Diffuseness / Terseness | 193 |
4.5 | Error-proneness | 194 |
4.6 | Hard Mental Operations | 194 |
4.7 | Hidden Dependencies | 195 |
4.8 | Premature Commitment | 197 |
4.9 | Progressive Evaluation | 197 |
4.10 | Role-expressiveness | 197 |
4.11 | Secondary Notation and Escape from Formalism | 198 |
4.12 | Viscosity | 198 |
4.13 | Visibility and Juxtaposability | 198 |
5. | Empirical Study | 201 |
5.1 | Approach | 202 |
5.2 | Lecture | 203 |
5.3 | Case Study: Poisson Solver | 204 |
5.4 | Observations | 205 |
5.5 | Case Study: Matrix Multiply | 208 |
5.6 | Experiment: Same-different Judgment Test | 209 |
5.7 | Questionnaire | 210 |
6. | Conclusion | 212 |
7. | Acknowledgment | 214 |
References | 214 | |
Part C | Architectural Visualization | 217 |
8 | A Visual Architectural Approach to Maintaining Web Applications | 219 |
1. | Introduction | 219 |
1.1 | Organization of Chapter | 221 |
2. | The Components of a Web Application | 221 |
3. | WebFlight: A Web Application | 223 |
4. | Scenario: Modifying a Subsystem | 226 |
5. | Visualizing a Web Application | 229 |
5.1 | Extracting the Facts | 230 |
5.2 | Abstracting and Merging the Extracted Facts | 233 |
5.3 | Generating the Architecture Diagrams | 237 |
6. | Related Work | 238 |
6.1 | Forward Engineering | 391 |
6.2 | Reverse Engineering | 239 |
7. | Conclusion | 240 |
8. | Acknowledgments | 240 |
References | 240 | |
9 | Understanding Architecture Through Structure and Behavior Visualization | 243 |
1. | Introduction | 243 |
2. | General Approach | 245 |
3. | Analysis and Visualization Tool Basis | 249 |
3.1 | Entities and Relations Displayed | 250 |
3.2 | Filtering and Aggregation | 253 |
3.3 | Information Flow in the System | 256 |
3.4 | Classification | 258 |
4. | Understanding the Components | 260 |
5. | Understanding the Connectors | 263 |
5.1 | Static Analysis | 265 |
5.2 | Dynamic Analysis | 268 |
5.3 | Visualization | 273 |
5.4 | Detection of Further Patterns | 274 |
6. | Evaluation | 276 |
6.1 | Pattern Detection in our Analyzer Tool | 276 |
6.2 | Pattern Detection in the SwingSet2 Example | 278 |
7. | Related Work | 279 |
8. | Conclusions and Future Work | 282 |
References | 284 | |
10 | Design Pattern Compositions in UML | 287 |
1. | Introduction | 287 |
2. | Illustration of the Problem | 289 |
3. | Notations for Pattern Composition | 292 |
3.1 | Venn Diagram-Style Pattern Annotation | 293 |
3.2 | Dotted Bounding Pattern Annotation | 293 |
3.3 | UML Collaboration Notation | 295 |
3.4 | Pattern: Role Annotations | 295 |
4. | UML Extensions | 296 |
5. | UML Profile for Design Patterns | 302 |
6. | Case Study | 303 |
7. | Conclusions | 305 |
References | 306 | |
Part D | Visualization in Practice | 309 |
11 | The BLOOM Software Visualization System | 311 |
1. | Introduction | 311 |
1.1 | Objectives | 312 |
1.2 | System Architecture | 313 |
2. | Gathering Information | 315 |
2.1 | Structural Data | 316 |
2.2 | Trace Data | 317 |
3. | Data Analysis | 323 |
3.1 | Trace Data Analysis | 323 |
3.2 | Encoding Sequences | 326 |
3.3 | Summary | 330 |
4. | Combining Analyses | 330 |
4.1 | The Data Model | 330 |
4.2 | The User Interface | 332 |
4.3 | Specifying Visualizations | 338 |
4.4 | Related Work | 340 |
4.5 | Experience with MURAL | 341 |
5. | Visualizing the Result | 342 |
5.1 | HIVE and COMB | 344 |
5.2 | BUD | 349 |
5.3 | APIS | 350 |
5.4 | BEE | 352 |
5.5 | Experience | 352 |
6. | Current and Future Work | 353 |
7. | Acknowledgements | 355 |
References | 356 | |
12 | Visual Program Visualization | 359 |
1. | Introduction | 359 |
2. | Clavia Nord Modular | 362 |
2.1 | Hardware | 362 |
2.2 | Software | 363 |
2.3 | Programming Environment | 365 |
3. | Patch Maps | 366 |
4. | Visualising Patch Cable Layouts | 372 |
5. | Patch Cables | 376 |
6. | Module Choice | 377 |
6.1 | Module Power | 378 |
6.2 | Module Size | 379 |
7. | Module Layout | 380 |
7.1 | Module Position | 381 |
7.2 | Location Use | 383 |
8. | Related Work | 384 |
9. | Discussion and Conclusion | 385 |
10. | Acknowledgements | 387 |
References | 387 | |
13 | Use of Visualization to Aid Object-Oriented Redesign | 389 |
1. | Introduction | 389 |
2. | Related Studies | 392 |
3. | Methodology | 393 |
3.1 | Abstracting OO Design From Program Structure and Pattern Matching | 393 |
3.2 | Identifying Original Code Related to Each Class | 397 |
3.3 | Refining OO design | 400 |
4. | Case Study--An Inventory Management System | 401 |
5. | Conclusions | 410 |
References | 411 | |
14 | Effective Graph Visualization Via Node Grouping | 413 |
1. | Introduction | 413 |
2. | Previous Work | 416 |
3. | Methodologies for the Application of Node Grouping in Graph Drawing | 417 |
4. | Two Fast Techniques for Finding Small Cliques | 418 |
4.1 | The Triangle Technique | 418 |
4.2 | The Coloring Technique | 422 |
4.3 | Implementation and Experimental Results | 424 |
5. | Applying Node Grouping to Force-Directed Drawing | 425 |
6. | Applying Node Grouping to Orthogonal Drawing | 429 |
7. | Conclusions | 435 |
8. | Acknowledgements | 436 |
References | 436 | |
Index | 439 |