home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!charon.amdahl.com!pacbell.com!ames!elroy.jpl.nasa.gov!news.claremont.edu!ucivax!ejw
- From: ejw@siam.ics.uci.edu (Jim Whitehead)
- Subject: Scalability criteria
- Nntp-Posting-Host: siam.ics.uci.edu
- Message-ID: <2B01E1FA.14921@ics.uci.edu>
- Newsgroups: comp.software-eng
- Reply-To: ejw@ics.uci.edu (Jim Whitehead)
- Organization: Univ. of Calif., Irvine, Info. & Computer Sci. Dept.
- Lines: 72
- Date: 12 Nov 92 04:47:54 GMT
-
-
- As a grad. student at U.C. Irvine, I am currently taking a course on
- software engineering. Recently we had our midterm exam, which
- contained the following interesting question:
-
- A classic criticism of many proposed software engineering techniques
- is that they do not scale-up to large systems. Give at least three
- criteria that need to be met in order for techniques to be scalable.
-
- Since it was a take-home exam, there was enough time to examine the
- literature and software engineering texts. I was not able to find
- any criteria for scalability in my searches, and so I present the
- question to the net.
-
- The test is done and over and graded, so have no fear you'll be
- an accessory to breaking UCI's academic code.
-
- I answered the question as follows, and I welcome comment:
-
-
- Scalibility criteria:
-
- At the most fundamental level, the scalability of a technique depends
- on how the complexity of the technique increases with the size of the
- project to which it is applied. Low complexity implies scalability.
- I see three cases:
-
- Complexity varies linearly:
-
- complexity_of_technique := scalability_constant * project_size
-
- a) The scalability constant is small
-
- b) The scalability constant is large
-
- c) Complexity varies exponentially:
-
- complexity_of_technique := scalability_constant * project_size ^ exponent
-
-
- I defined my three criteria to handle these cases:
-
- 1) Desirable results for projects of all sizes and types
-
- This criteria handles case a) above where the complexity of the technique
- may be small, but the technique just doesn't produce good results for
- large projects. One example of this is the method of stepwise refinement.
- Stepwise refinement can easily be used on projects of all sizes, but it
- just doesn't produce good results for medium to large projects.
-
- 2) Economical for projects of all sizes and types
-
- This criteria handles case b) above where the complexity of the technique
- is very large for large projects, but still varies linearly with project
- size. The typical symptom of this behavior is that the technique becomes
- uneconomical for most users of the technique. An example is software
- code inspections. Using published estimation metrics, software code
- inspections should be appx. 15-25% of the total development cost. Only
- big money projects would be able to afford such a technique.
-
- 3) Feasibility for projects of all sizes and types
-
- This criteria handles case c) above, where the complexity increases
- exponentially with project size. This behavior is demonstrated by
- the Petri Nets specification technique. As the size of the project
- being modeled increases, the number of model elements increases
- exponentially. For even medium size systems, the full Petri Nets model
- is huge and unmanageable.
-
- ---------------------
- Jim Whitehead
- ejw@paris.ics.uci.edu
-