Theory and practice of software engineering

  • Authors:
  • Richard J. Botting

  • Affiliations:
  • Cal State, San Bernardino

  • Venue:
  • CSC '89 Proceedings of the 17th conference on ACM Annual Computer Science Conference
  • Year:
  • 1989

Quantified Score

Hi-index 0.00

Visualization

Abstract

For twenty years software has cost more than planned, has been completed late, and failed to achieve what it was intended to do. There exists gaps between theory, curriculum, and practice. I have been trying to fill in the gaps for 15 years. In 1985 I presented a paper that listed more than 20 activities that can improve the production of software. Some of these lack a theoretical justification for their empirical success. Many of the 20 activities are not part of the Computer Science curriculum. I focussed on Jackson Structured Programming(JSP), Jackson Software Development(JSD), and parts of the Structured analysis and Design Method developed in the UK Civil Service. In 1986 I defined Dynamic Analysis and Design(DAD) and argued for its inclusion in software engineering. I demonstrated DAD in 1987. In 1987 I proved that Data Directed Design is significantly more powerful than is commonly thought. This lead to unexplored regions of logic and language theory (1988--89). For example, a small change in the model of context free grammars makes it possible for a BNF-like data dictionary to describe non-context-free languages. In parallel I have studied the time it takes to access data on secondary storage and proved that the text book formulæ can be misleading (1988). For example a binary search of n items held in a large contiguous file on a disk on a personal computer takes time of order to n and not log(n) to retrieve information.