Download presentation
Presentation is loading. Please wait.
Published byAbigail Norton Modified over 9 years ago
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.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.