19

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

Embed Size (px)

Citation preview

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

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.

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

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.

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

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.

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

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.

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

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.

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

Representation of semantic structure of code

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

System Architecture

Classic Model-View-Controller Plugins will extend Core and/or UI

components.

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

Bare bone Architecture

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

Plugins System Architecture

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

A DSL Plugin Architecture

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

Technologies Graphical Library: Eclipse Rich

Client Platform. Intuitive Open source Platform independent

Database: db4o Simple query mechanisms Performed well in comparison to other

DBs

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

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

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

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.

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

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.

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

Non-Functional Requirements

Intuitive and familiar UI Perform 90% of basic actions in

time < 1 sec on 1 million lines of code

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

Major Use-Cases

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

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.

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

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.