Abstract |
Next to programming languages, Integrated Development Environments (IDEs) are considered as the second most decisive factor for effective software development, playing a critical role in the software lifecycle, especially when it comes to medium-to-large scale systems. Recently, IDEs have been treated mostly as collections of task-oriented tools, gathered and managed together under an extensible programming environment, rather than monolithic systems of the all-in-one style. Sparrow is an IDE for the Delta dynamic object-based language, developed following two key objectives: * To support extensibility of features, allowing such extensions to be developed using Sparrow, i.e. it is a circular IDE. * To facilitate open deployment by third parties to build domain-oriented IDEs, i.e. it is a meta IDE. In this Thesis, the development of a large part of the Sparrow IDE has been carried out (roughly corresponding to around half of the Sparrow IDE implementation size), addressing the following features and components: * Software layer, user library (API) and User Interface to support extensibility of the Sparrow IDE in the Delta language. * Infrastructure and User Interface to support runtime adaptation of the Sparrow IDE to programmer’s preferences and requirements. * Software components for project management support, including the User Interface, extensibility and deployment user libraries (APIs). * Interactive source-level debugger, including extensibility and deployment user libraries (APIs). An important aspect of the development process has been the extensive application of the circular development style. More specifically, for every component a basic version was initially implemented in C++. Subsequently, once this component was incorporated to the Sparrow IDE, the rest of its functionality was implemented through the Delta language and using the Sparrow IDE itself. Effectively, the Sparrow IDE makes available to its users all of its current as well as future components as a runtime library in the Delta language.
|