Hypermodelling is a research project that investigates the application ability of Data Warehousing technology. The idea is based on the fact that encoded concerns within software are split though the separation of concerns principle. Thus, concerns within a software system represent a multi-dimensional space. Data Warehouse technology is built for multi-dimensional data, so the questions is how and if it is application able and what kind of benefit from using it for program analysis can be gained. Up to know, seven publications in acdemic forums have been done about the Hypermodelling research. Today, first alphas show the application of the technology.
The Hypermodelling team searches now feedback from the developer community about the most desired dashboards, search features and analysis to transfer the research to real applications. Thereby, they are open for cooperations.
The homepage of the project can be found at http://hypermodelling.com .
A first alpha-demo shows a search engine that is based on OLAP queries - currently and out of the regular pc the demo is running on, just one project is loaded. The search engine shows already how structural properties of code can be used for code search. For instance, the parameters of method calls may be used to search for code. There, also superclasses are specifiable as search parameters.
Additionaly, the search results also contain detected style issues by findbugs in the search results. This serves as demo to show that external data can be used in code search to. In future, other external data like unit tests could use used. This would enable to built search engines for specific needs like ones that only reveal tested code.Through the Hypermodelling technology all kind of external information can be integrated in the future to rank the search results. Therefore the style issues given in the result are just an example.
A basic walkthough of the code search engine can be find in the youtube channel of Hypermodelling: http://www.youtube.com/user/hypermodelling
The actual demo is available here:
Another application shows a demo dashboard about software interitance. There developers can investigate which classes in which package inherit from another package. There different charts are used to visualize the degree of dependency of types within a package from another package. Also drill-downs can be done. This way, develoeprs can investigate which methods are commonly implemented in child classes. This way, they can see which kind of functionality extendants offten implement what is very important to know if the superclass is about to be changed.
A video that shows the basicc functionality of the cockpit can be found at http://www.youtube.com/watch?v=6SSqpYRz_0w
Furthermore, a demo acces to test the cockpit yourself is available on request.
Another application are OLAP like queries within the integrated development enveironment. Developers can reveal certain code fragments that belong to different code slices. For instance it is possible to reveal the consumer method of deprecated marked methods quite easily though a query combined with filter functionality. This example can be found at ttp://www.youtube.com/watch?v=9Yrhwgq6Iz0
Different other videos can be found in the youtube channel or at http://eclipse.hypermodelling.com
However, the Hypermodelling team plans to go forward with appplications about the techique to evalute application scenarious and potential parterships. Soon, there are going to be more dashboards that shows the application.
One dashboard is planned to show which developers use most code of other developers. Managers can this way depict the knowlege transfer about source code.
Furthermore, a dependancy between packages will be shown in an upcoming one. This dependancy can then be used to estimate the coupling of packages and if they are clearly separated.
Anyway, there is also room for suggestions and other potential use cases.