Interactive Value-enhancing Abstracting of Diagrams
Publication Date: 2014-Jan-16
The IP.com Prior Art Database
Disclosed is a system for identifying, creating, editing, and manipulating useful abstractions from complex diagrams through a combination of user interaction and heuristics.
Page 01 of 3
Interactive Value -
Developers use complex diagrams while creating new software. For example, diagrams are used to represent the implementation of a software -intensive system. Current diagramming methods are very specific and do not generalize . For example, a Unified Modeling Language (UML) diagram of a complex piece of legacy code; it might have thousands of objects, each with a multitude of fields and interrelationships . There exist tools to "read" the legacy code and produce UML diagrams that correspond to the code in a one-to-one fashion. These diagrams are typically very large and include too much detail. Developers cannot easily see various abstractions and/or generalizations of the detail. For legacy code analysis, tools exist that permit semantic searching (e.g., find all uses of a particular method, find the definition, find all callers/callees, etc.), but these tools typically produce textual lists, not diagrams, and do not identify anything more abstract than what is already in the code.
Diagrams have many well-understood advantages over lists, including increasing the ability of future maintainers to much more rapidly "learn" (i.e. internalize) the design, as
well as to represent abstractions that transcend physical code . Effective diagrams serve in a similar manner as good notation for mathematical problems . Such diagrams expose the right amount of detail pertinent to goals being addressed , and allow presentation in a manner that can deeply engage the human mind via images . This is an application of the reality that the code of a software -intensive system is true; however, it is not the whole truth. Some truths are at a higher level of abstraction than the raw code.
Consider the three-dimensional (3D) diagrams made possible with architectural drafting tools. These can have a lot of detail; imagine an architect's design of someone's home. The implementers of these tools have designed in specific kinds of abstraction mechanisms, to let a user have access to varying levels of detail, thus making the visualizations of the data more useful to a wider set of users .
Existing solutions are either nonexistent for particular domains or are specific for particular generalizations/abstractions.
An additional solution is required that allows arbitrary user needs to be interactively combined with domain and data driven heuristics, to inform the creation of useful visual abstractions in a more general manner.
A general mechanism is needed for identifying, editing, and manipulating these higher-order abstractions. For modern software production, as developers change methodologies away from older top-down, functional-spec-driven development to lightweight, agile programming styles, high level diagrams of the software work are less frequently created. This increases the value of having tooling that can produce various useful abstractions of existing designs because, often, no such diagrams exist.
For other areas (e.g., large...