Vision The ultimate IDE/CASE tool should supports all steps in the software development process....
-
Upload
abigail-norton -
Category
Documents
-
view
214 -
download
0
Transcript of Vision The ultimate IDE/CASE tool should supports all steps in the software development process....
![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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/1.jpg)
![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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/2.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/3.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/4.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/5.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/6.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/7.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/8.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/9.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/10.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/11.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/12.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/13.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/14.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/15.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/16.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/17.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/18.jpg)
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.](https://reader036.fdocuments.us/reader036/viewer/2022062518/56649ec45503460f94bceb2a/html5/thumbnails/19.jpg)
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.