Hi!
During my last projects I have come across several best-practices in requirements engineering. But now, I wanted to get the whole process of RE a little bit more structured.
Let me briefly introduce my problem:
I currently develop requirements for a client/server system. To see how industry standards handle RE, I read a book about SPICE. I tend to adopt some of the processes for my project. In detail, amongst others, SPICE recommends the following engineering processes:
ENG.1 Req. Elication
ENG.2 Sys Req. Analysis
ENG.3 Sys Architectural Design
ENG.4 SW Req. Analysis
ENG.5 SW Design
...
I'd like to use this structure for deviding my EA project in to models. But actually I'm not really sure if that makes sense plus I don't know where to put what and how to avoid redundancy.
I read somewhere, that in a SW-only project, ENG.2 + ENG.3 are not necessary. So, even though we don't manufacture hardware, we might use specific devices and need to specify special hw and environmental constraints. To make sure, I read the IEEE standards 1233 (system requirements) and 830 (SW requirements). As far as I can say, the SyRS contains "capabilities, conditions and constraints" but also functional product requirements ("What should the system be able to do?"). Moreover, I read that use cases could be used to define interfaces. That would mean, in ENG.1 the high-level customer requirements will be gathered and defined, ENG.2 covers more general system related stuff like performance, security, durability etc plus use cases and detailed requirements. ENG.3 would include sw and hw partinioning such as component model as well as user interface design.
Thus, ENG.4 would include only software-related requirements that can be directly traced down to software modules.
Am I right, so far? If not, please feel free to correct me.
As I stated before, I'd like t avoid redundancy. SPICE recommends 3 requirements specs, Customer Requirements, System Requirements and SW requirements.
Could somebody explain the differences or give a short example how I would get from a customer requirement to a system req. and then to SW req.
Currently, I tend to having only two R specs, the customer requirement (actually requirements from the product management), then I performed a use case analysis and then I deduced detailed functional and non-functional requirements from which I could start designing the software. So I am not really clear about how to divide what I have into a SyRS and a SRS or if I don't need to divide but rather to add something i don't have already. Or is the list of sys req. almost equal to the list of SW req.? As you can see I am a bit confused...
Any comments are welcome!
Thanks, Jan