Presentation is loading. Please wait.

Presentation is loading. Please wait.

Vision The ultimate IDE/CASE tool should supports all steps in the software development process. Current tools perform only minimal semantic-level analysis.

Similar presentations


Presentation on theme: "Vision The ultimate IDE/CASE tool should supports all steps in the software development process. Current tools perform only minimal semantic-level analysis."— Presentation transcript:

1

2 Vision The ultimate IDE/CASE tool should supports all steps in the software development process. Current tools perform only minimal semantic-level analysis of code.

3 Vision What is needed is a tool based on the code’s semantic structure that will: Allow semantic-level manipulation Enforce a design on an implementation Support addition of free-form information to the model. Our goal is to develop a framework for implementing such a tool.

4 Problem Domain Zen is a software repository and a code editor in a single program Will work on a Developer’s PC, multi- platform Will provide minimal code/text editing functionality.

5 Current Situation The best analysis and design tools available today share the following deficiencies: Support a limited set of programming and modeling languages. Not language neutral. Do not allow adding free-form information to project/code. Support few rigid methodologies. Use templates for code generation.

6 Proposed Solution We propose to build Zen, an IDE which uses a database to store the code in its semantic structure (graph). Work with a semantic model, rather than text. Object Oriented database, because it offers a native representation of graph-like structures. Zen will include a scripting engine, which would dynamically load user-written scripts. Language-specific functionality and visualization through a plugin system using the scripting engine.

7 Representation of semantic structure of code

8 System Architecture Classic Model-View-Controller Plugins will extend Core and/or UI components.

9 Bare bone Architecture

10 Plugins System Architecture

11 A DSL Plugin Architecture

12 Technologies Graphical Library: Eclipse Rich Client Platform. Intuitive Open source Platform independent Database: db4o Simple query mechanisms Performed well in comparison to other DBs

13 Technologies Main implementation language: Java Staff is well acquainted with Java there are many libraries written in Java that are instrumental to our goals Scriptability: JRuby JRuby is an implementation of Ruby in Java Allows direct use of Java libraries

14 Functional Requirements Editing Code: Rudimentary code editing functionality. Add/remove/view free-form links between code elements. Impact View: the user will be able to see which code elements are related to the one currently being edited and how. Semantic-Level manipulation of code - perform actions on the data structure representing the code: add/remove nodes to/from the code graph. add/remove links between nodes in the graph. Use stored scripts to alter the code graph.

15 Functional Requirements Generic infrastructure: Zen will provide extension points for plug-ins, as shown earlier. Plug-ins can contribute scripts, language/model DB schemas or GUI elements. Scriptability: Query the code's data structure. Apply simple refactorings to the code graph.

16 Non-Functional Requirements Intuitive and familiar UI Perform 90% of basic actions in time < 1 sec on 1 million lines of code

17 Major Use-Cases

18 Risks Time constraints: The project is limited to just writing the framework discussed and a few small examples. Immature platform (database): In comparison to other database engines (SQL based), db4o has been less rigorously tested.

19 Risks Testability: Scriptability offers a lot of flexibility to the user. We expect Zen to be based on a thick layer of user- supplied scripts. Therefore, the range of tests to be made is large, so the script API will need to undergo meticulous testing.


Download ppt "Vision The ultimate IDE/CASE tool should supports all steps in the software development process. Current tools perform only minimal semantic-level analysis."

Similar presentations


Ads by Google