Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!wuarchive!uunet!stanford.edu!unix!CRVAX.Sri.Com!hlavaty From: hlavaty@CRVAX.Sri.Com Newsgroups: comp.software-eng Subject: Re: Metric for Requirements Complexity? Message-ID: <24701@unix.SRI.COM> Date: 24 May 91 16:18:43 GMT Sender: news@unix.SRI.COM Organization: SRI International Lines: 30 In article , gary@suite.sw.oz.au (Gary Corby) writes... >Given two Software Requirements Specifications, is there a metric which >will describe the relative complexity of the systems they describe? >Please note I am referring to the complexity of the system, rather than any >sort of stylistic measure of the document per se. > >We are looking for this sort of measure because we wish to determine whether >we are getting better or worse at writing SRS documents as time goes on. >This seems to require measuring the number of faults discovered in each SRS >document and plotting the values as a function of the date of writing. >The only problem is that not all SRSs describe equally complex systems, >and more convoluted systems can expect to contain a greater number of errors. > >Does anyone know a solution or have a suggestion? > >Gary >-- The book "Controlling Software Project" by Tom Demarco outlines a possible approach that might interest you. As you point out, the problem is always that one SRS is not the same as another, so you can't compare them directly. What Demarco proposes is that you break down the SRS into nodes, each of which is a different category (database, scientific, user-interface, etc...). They provide starting complexities for each node, but they recommend that you start keeping a database of your own experiences so that over time your complexity weights are more accurate for your own company. You get the complexity weights by analyzing the end result (after coding), when this information is available. The bottom line is that anything done at requirements cannot be as accurate as an analysis done at the end, but it gives you an approximation that you can keep refining over time. This is just a quick overview; if it sounds interesting, read the book.