Software Pattern Laws and Partial Repeatability

  • Kai-Yuan Cai
  • Jin-Hua Liao
Part of the The International Series on Asian Studies in Computer and Information Science book series (ASIS, volume 6)


Physical or statistical laws embody the nature of full repeatability. However patterns exist in various fields, and are featured with the nature of partial repeatability. A given concept and the collection of its various corresponding observations in reality form a pattern. Pattern laws are patterns of patterns, and software pattern laws are just pattern laws in software engineering. In this paper we present a general discussion on patterns and (software) patterns laws in comparison with physical or statistical laws, and treat laws of software products, or Halstead’s software science, and laws of software processes, or Lehman’s laws of software evolution, as example software pattern laws. The nature of partial repeatability of software benefits to as well as sets limits to software reliability improvements and validation.


Software engineering software science software process software evolution pattern software pattern pattern law software pattern law physical law partial repeatability software reliability 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Alexander, C. et al. A Pattern Language, Oxford University Press, 1977.Google Scholar
  2. Bailin, D.; Love, A. Supersymmetric Gauge Field Theory and String Theory, Institute of Physics Publishing, 1994.Google Scholar
  3. Brown, N. Industrial-Strength Management Strategies. IEEE Software, July 1996, 94–103.Google Scholar
  4. Butler, R.W.; Finelli, G.B. The Infeasibility of Quantifying the Reliability of Life-Critical Real-Time Software. IEEE Transactions on Software Engineering, Vol.19, No.1, 1993, 3–12.CrossRefGoogle Scholar
  5. Cai, K.Y. Elements of Software Reliability Engineering, Tsinghua University Press (in Chinese), Beijing, 1995.Google Scholar
  6. Cai, K.Y. On the Concepts of Total Systems, Total Dependability, Total Quality and Software Cybernetics, Centre for Software Reliability, City University, London; draft version, October 1994; revised version, July 1995.Google Scholar
  7. Cai, K.Y. Censored Software-Reliability Models. IEEE Transactions on Reliability, Vol.46, No.1, 1997, 69–75.CrossRefGoogle Scholar
  8. Cai, K.Y. On Estimating the Number of Defects Remaining in Software. Journal of Systems and Software, Vol.40, 1998, 93–114.CrossRefGoogle Scholar
  9. Cai, K.Y. Software Defect and Operational Profile Modeling, Kluwer Academic Publishers, 1998.Google Scholar
  10. Cai, K.Y.; Wen, C.Y.; Zhang, M.L. A Critical Review on Software Reliability Modeling. Reliability Engineering and System Safety, Vol.32, 1991, 357–371.CrossRefGoogle Scholar
  11. Chevray, R.; Mathieu, J. Topics in Fluid Mechanics, Cambridge University Press, 1993.Google Scholar
  12. DeMillo, R.A.; McCracken, W.M.; Martin, R.J.; Passafiume, J.F. Software Testing and Evaluation, The Benjamin/Cummings Publishing Company, 1987.Google Scholar
  13. Dunn, R.H. Software Defect Removal, McGraw-Hill, 1984.Google Scholar
  14. Feiler, P.H. Humphrey W.S., Software Process Development and Enactment: Concepts and Definitions, Proc.2nd International Conference on Software Process, 1993, 28–40.Google Scholar
  15. Felician, L.; Zalateu, G. Validating Halstead’s Theory for Pascal Programs, IEEE Transactions on Software Engineering, Vol.15, No. 12, 1989, 1630–1632.CrossRefGoogle Scholar
  16. Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.Google Scholar
  17. Grundy, A. H. The Next Step in Physics: Chemistry and Astronomy, The Book Guild Ltd, (Sussex, England), 1993.Google Scholar
  18. Halstead, M.H. Elements of Software Science, Elsevier, 1977.Google Scholar
  19. Heitmeyer, C; Mandrioli, D. Formal Methods for Real-Time Computing, John Wiley & Sons, 1996.Google Scholar
  20. Hinchey, M.G.; Bowen, J.P. (eds)} Applications of Formal Methods, Prentice-Hall, 1995.Google Scholar
  21. IEEE Computer Society. IEEE Standard for Developing Software Life Cycle Processes, 1991.Google Scholar
  22. Kaye, G.W.C.; Laby, T.H. Tables of Physical and Chemical Constants (16th edition), Longman, 1995.Google Scholar
  23. Keller-McNulty, S.; McNulty, M.S.; Gustafson, D.A. Stochastic Models for Software Science. Journal of Systems and Software, Vol.16, 1991, 59–68.CrossRefGoogle Scholar
  24. Lehman, M.M. Laws of Software Evolution Revisited, in: C. Montangero (ed), Software Process Technology, Springer-Verlag, 1996, 108–124.Google Scholar
  25. Lehman, M.M. Program, Life Cycles, and Laws of Software Evolution. Proceedings of the IEEE, Vol.68, No.9, 1980, 1060–1076.CrossRefGoogle Scholar
  26. Lehman, M.M. Software Engineering, the Software Process and Their Support. Software Engineering Journal, Vol.6, No.5, 1991, 243–258.CrossRefGoogle Scholar
  27. Lehman, M.M.; Belady, L.A. (eds) Program Evolution: Processes of Software Change, Academic Press, 1985.Google Scholar
  28. Littlewood, B.; Strigini, L. Validation of Ultra-high Dependability for Software-Based Systems,. Communications of the ACM, Vol.36, No.11, 1993.Google Scholar
  29. Lyu, M.R. (ed). Handbook of Software Reliability Engineering, McGraw-Hill, 1996.Google Scholar
  30. Madhavji, N.H. The Process Cycle, Software Engineering Journal, September 1991, 234–242.Google Scholar
  31. Miller, D. The Role of Statistical Modelling and Inference in Software Quality Assurance, In: B. de Neuman (ed.), Software Certification, Elsevier Applied Science, 1989.Google Scholar
  32. Oldehoeft, R.R.; Bass, L.J. Dynamic Software Science with Applications. IEEE Transactions on Software Engineering, Vol.SE-5, No.5, 1979, 497–504.CrossRefGoogle Scholar
  33. Osteraweil, L. Software Processes are Software too. Proc. the 9th International Conference on Software Engineering, 1987, [pp2-13}.Google Scholar
  34. Palmer, S.B.; Rogalski, M.S. Advanced University Physics, Gordon and Breach Publishers, 1996.Google Scholar
  35. Parnas, D.L.; Schowan, A.; Kwan, S.P. Evaluation of Safety-Critical Software. Communications of the ACM, Vol.33, No.6, 1990, 636–648.CrossRefGoogle Scholar
  36. Pressman, R.S. Software Engineering: A Practitioner’;s Approach (2nd Edition), McGraw-Hill, 1987.Google Scholar
  37. Prugovecki, E. Principle of Quantum General Relativity, World Scientific, 1995.Google Scholar
  38. Savitt, S.F. (ed). Time’;s Arrow Today: Recent Physical and Philosophical Work on the Direction of Time, Cambridge University Press, 1995.Google Scholar
  39. Schurmann, J.Pattern Classification: a Unified View of Statistical and Neural Approaches,John Wiley & Sons, 1996.Google Scholar
  40. Shooman, M.L. Software Engineering: Design, Reliability and Management, McGraw-Hill, 1983.Google Scholar
  41. Spielberg, N.; Anderson, B.D. Seven Ideas that Shook the Universe (2nd Edition), John Wiley & Sons, 1995.Google Scholar
  42. Stevens, C.F. The Six Core Theories of Modern Physics, The MIT Press, 1995.Google Scholar
  43. Turski, W.M. Reference Models for Smooth Growth of Software Systems. IEEE Transactions on Software Engineering, Vol.22, No.8, 1996, 599–600.Google Scholar
  44. Vlissides, J.M.; Coplien, J.O.; Keith, N.L. (eds). Pattern Languages of Program Design 2, Addison-Wesley, 1996.Google Scholar
  45. Wilson, J.D. College Physics, Allyn and Bacon, 1990.Google Scholar
  46. Zhao, K.H. Qualitative and Semi-quantitative Physics (in Chinese), Advanced Education Press, Beijing, 1991.Google Scholar
  47. Zuse, H. Software Complexity: Measures and Methods, de Gruyter, 1990.Google Scholar

Copyright information

© Springer Science+Business Media New York 1999

Authors and Affiliations

  • Kai-Yuan Cai
    • 1
  • Jin-Hua Liao
    • 2
  1. 1.Beijing University of Aeronautics and AstronauticsDepartment of Automatic ControlBeijingChina
  2. 2.The University of Alabama in HuntsvilleDepartment of Computer ScienceHuntsvilleUSA

Personalised recommendations