I’ve been working on a practice based on MathCast Equation Editor for a month so far. MathCast is an open source application on sourceforge.net that allows you to input mathematical equations. The main tasks of the practice are to create a requirements specification using Volere template after using the application, later to compare it with the requirements specification for this project provided by Mr. George Kalaitzoglou which is also written after implementation, and then to find out its architecture by examining its source code, finally and most importantly, to relate the requirements to the architecture and see what the relationship between them is. It’s obvious that this practice could benefit me at least in the following two aspects: enhance my understanding of software requirements and architecture, and have a taste of what the interrelationship between software requirements and architecture could be.
Volere requirements specification template has very rich and comprehensive guidance about what to consider and write in every part of the document, which is really a good learning resource indeed. However, Volere lacks of hierarchy. One big problem I frequently encountered during writing the requirements document was that there were some ‘facts/features’ that I was always confused whether they belonged to requirements or design decisions. My supervisor Norah said, this was a problem inherent in writing requirements ‘after the fact’. Yes, I agree. But it somehow reveals the fact that at least some design decisions are requirements that have been decided. And in another context, if a customer comes with a solution/design decision, I think such a solution/design decision is going to be treated as a requirement as well. In this two situations, design decisions have no difference to requirements in terms of their meanings. The requirements document written by Mr. George Kalaitzoglou is very different compared to mine as it mainly emphasizes the tasks/process flow, strictly adhere to the current implementation.
The last task is more difficult but more attractive as well. I am working on it now.