Quality Attributes
The Frege IDE’s architecture should satisfy the following quality attributes, also known as non-functional requirements, listed from highest to lowest priority.
Interoperability
One Frege IDE version must be usable with multiple different text editor products, as shown in Figure 1. If each text editor requires its own Frege IDE, the interoperability attribute is not satisfied, which is shown in Figure 2.
Usability
The Frege IDE should follow a convention over configuration approach so that it works out of the box or with minimal configuration.
Besides, it should not only support single-file language smarts but also be cross-file workspace/project aware.
Maintainability
As mentioned in the Functional Overview page, there are many different language features. Therefore, the architecture should make it easy to add, remove, change and test a single language feature.
Maintainability Checklist
-
Analyzability: how easy or difficult is it to identify bugs and map them to the source code location?
-
Changeability: how easy or difficult is it to change the code?
-
Stability: how easy or difficult is it to keep the system stable when changing it?
-
Testability: how easy or difficult is it to test the system after a change?