This is the first of many requirements analysis pages, a very informal one.
Though informal, I shall try to use the word “shall” in my initial formulation of requirements.
- The software shall support requirements analysis, at various levels of formality
- The software shall provide support for software development using one or more models of the development process
- The software shall support work done by one or more individuals to produce something protected by copyright, based on various copyright templates
- The software shall support collaborative work by teams of individuals
- The software shall support collaborative work by people registered as developers or working anonymously.
These requirements are for the software development process, and are aimed at collaborative open-source development, while also supporting private work under copyright, for commercial purposes.
This software development site should itself me managed with the kind of software just described, but nothing appropriate seems to exist. In its absence, various Content Management Systems (CMS) will be used.
A typical CMS is aimed at file management, first of all, including file creation and editing. Some of these systems have vast
numbers of bells and whistles. They can do almost everything. But not quite. None are as fully capable as an actual computer programming language. The need to remedy this fact produces several other requirements.
- The software shall have all the functionality of a complete programming language.
- The software shall accept as input files of program source code and shall provide an interpreter for them
- The software shall be able to generate program source code representing the current state of the system, which can be loaded back into the interpreter to recreate that state
- The software will provide editors with as much functionality as current advanced programming editors, for writing and editing program source code.
These requirements specify something like an Integrated Development Environment, (IDE). Indeed, the software will include what we usually think of as an IDE, though it will support work at the requirements analysis and design levels.
These requirements are only the beginning.
There are many more, some of which will involve tying these IDE parts of the software with the profiles of individuals working on a project, and with the profiles of a company or institution hosting the project. There must also be ways of developing and using a profile based on the kind of project — how it compares with other projects. This information must at least set various defaults, so the user does not face a steep learning curve. Requirements for these aspects of the system will be posted later.
To sum up, then, this project will be required to have the functionality of a CMS, include the capabilities of a full programming language, provide an IDE for that language, and make work within the CMS and IDE as easy as possible using individual and project profiles to provide defaults wherever these are possible and desirable.
More to come – dpw.