Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have been looking into how to document software projects more formally, and I have learned about IEEE 830-1998: Recommended Practice for Software Requirements Specifications. However, as you can see from that link, it has been superseded.

I know that 830-1998, and probably even 830-1993, are probably just fine for use. However, if nothing else, I would like to know what standard has superseded it. In this case it may not matter, but if other standards are superseded for more technical things, I think it would be a good idea to link somewhere what standard superseded another (if it is not another one in the same line (830, in this case)).

It is worth mentioning that:

  1. The most recent standard when searching for "Software Requirements Specifications" or "Software Requirements" on the IEEE Standards Association website is 830-1993,
  2. The 2004 (current) version of SWEBOK references 830-1993 (paragraph 2.5),
  3. The document's Wikipedia article doesn't mention that the standard was superseded.

TLDR: How do you find what standard superseded another, and which one took 830-1998's place?

share|improve this question
    
Searched for an answer, didn't find it, but decided to share my research in your question, hope you don't mind. –  Yannis Rizos Aug 3 '12 at 0:28
2  
Closevoters: This isn't really off topic, Software Engineering is perfectly on topic. –  Yannis Rizos Aug 3 '12 at 0:29

2 Answers 2

I found this in the IEEE site: http://standards.ieee.org/findstds/standard/29148-2011.html

The 29148:2011 standard seens to replace the IEEE 830:1998.

This standard replaces IEEE 830-1998, IEEE 1233-1998, IEEE 1362-1998.

ISO/IEC/IEEE 29148:2011 contains provisions for the processes and products related to the engineering of requirements for systems and software products and services throughout the life cycle.

It defines the construct of a good requirement, provides attributes and characteristics of requirements, and discusses the iterative and recursive application of requirements processes throughout the life cycle.

share|improve this answer
2  
Try expanding upon your answer with some details about what is contained inside of your link. –  Glenn Nelson Feb 19 '13 at 13:52
    
It should be noted that IEEE standards are NOT FREE, as in speech OR as in beer. I can't tell you how much they charge, as the new corporate firewall does not allow their Buy page to work. –  John R. Strohm Apr 15 '13 at 18:42
    
Depending on you subscription level it could cost anywhere from $175 to $205. I found a copy of it on our uni's internal site though. Time to lose some sleep... –  Gerrie May 25 '13 at 12:00

Short answer: 830-1998 is not a standard, it is a recommended best practice on how to write SRS in the style of 1998.

I can't find how it was superseeded (even with IEEE's advanced search :( )

But I guess it's because the whole method on how we specify requirements has changed drastically in recent years.

So, from now on, I try to answer a bit of modified question:

What is the industrial best practice / What are the recommended best practices on writing SRSs in the style of 2012?

On classical methods:

Usually I use IEEE 1471 recommendations for software documentation, although that was also superseeded recently by ISO/IEC 42010. This is a very complex kind of documentation, it's mainly used for handovers, although it does contain the requirements mostly (it's chapter 7 in the new ISO style document)

A moderately good book on formal documentation is Documenting Software Architectures, a surprisingly good book is the old iconix book, and an old classic is Cockburn's Writing Effective Use Cases.

On how it is actually done in the industry today:

Truth to be told, formal project documentation, especially requirements documentation was killed off mostly in the age of Agile, as the Agile Manifesto discourages formal documentation. There is no one, single, large formal specification, but instead, there are so called user stories, product backlogs and such. This is because of iterative development, only a handful of features are specified informally for each cycle of 2-4 weeks. A renowned book is User Stories Applied.

There are so-called "executable" specifications, which are formal, since they are essentially domain-specific languages (DSLs) for testing. They are no better or worse than UML's OCL, but they're more easier to grasp perhaps but also less scientific. Most of them are called BDD frameworks, and examples include FitNesse, Cucumber, Jasmine - you'll find a big bunch of these. There are also renowned books on BDD and TDD in general.

Also, specification by software engineers was superseeded by UX design, including information architecture and interaction design, so it's not done by people who can actually code nowadays, which can lead to conflict sometimes. This is a not-so-bad example on how one looks like (it's not a standard!), but you'll find a lot more inside the UX / interaction community, but there's even a whole separate stackexchange site for them. They have their own standards, recommended best practices, etc.

But what if you want to stick with the old methods, eg. for university work?

In general, try to adhere to the IEEE 830 (can't find on their webpage what was it superseeded with, although IEEE was never good with this, I guess it's because it doesn't matter anymore unfortunately), and make sure you try to record useful information (eg, I don't think that a single actor stick figure -> single bubble with a verb-subject is considered useful) from which the overall goals of the users, the overall range of users and the overall methods of usage can be reconstructed anytime.

Why do you recommend books? Why don't you show me standards instead?

Again, I guess this document was "superseeded" because today, we have a bit of chaos around requirements specification: there are many-many viewpoints on how it should be done.

There is no single authority who is able to tell you: "this is how specifications should be made". There are best practices, and I tried to provide you with a representative list of documents and directions, albeit by no means complete, and perhaps personally biased.

At the end of the day, what matters is wether the document you create is able to fulfill all the goals all the people who ever read it have with it: what people want to see, what people need to know in order to understand the requirements are pretty well described in these books, and these are best practices on their own right, albeit in much smaller communities than a single, undivided IT community what we had perhaps in 1998.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.