for Software Engineering.
Richard J. Botting, B.Tech, Ph. D.
- -- Abstract
- -- History
- -- Audiences
- -- Dedication
- -- Acknowledgement
- -- Disclaimers
Software must improve before more depends on it working
correctly. So the software process must be improved. One
process does not fit all situations. In some cases, errors are
commonly accepted. Here we can rely on the growing craft of programming.
But, in some situation, we need software that is engineered.
Sadly, we cannot
have an engineering discipline for software without using
science and mathematics. This book looks at many
methodologies to figure out strengths and weaknesses. It shows
how to use mathematics to help select, design, analyze, prove,
correct, and code: modules, structures, functions, objects, data
bases, logic, etc.. The book argues that mathematics can support
all methods by modeling the environment of the software. This
domain or reality model determines a sound design. A prototype
language (MATHS) has been developed. MATHS can be used on any
computer system that supports ASCII. Samples can be explored on
the the Internet.
This is not a text book that teaches you how to
program. It is about creating a discipline to replace
programming. It is for those who can help change software
production. I explain ideas intuitively first and later
redefine them rigorously. I also supply pointers to more
information. Programmers will find chapters 1, 2, 6, and 7 plus
appendices 2 and 4 useful. Managers only need chapters 0, 1,
and 8. The theory is in chapter 3, 4 and 5. It may be used in
Graduate Seminars, Software Improvement Workshops, and Quality
This book was written in a sabbatical towards the end of 1980's.
It unashamedly advocated
a particular approach to developing software. It was a approach that
I used and believed in. I tried to show where it fitted with previous
methods. This was created as a technical monograph that was not published.
As a spin off from the work done on the monograph I developed a tool for
preparing hypertext materials. I tested it by translating it onto the WWW.
Since this worked I took the content of of monograph and mapped it into
this web site. As I did this objects became mainstream.
It has also become clear that different situations
demand different methods. Then a group of methodologists came
together to raise the flag of agility.
In the summer of 2003 I discovered that people are reading these pages.
I am in the process of updating them: correcting errors, updating references,
and refactoring to remove some of the dogma.
I didn't know who to dedicate this book to until I realized that
I had probably learned most from people who are not in the
bibliography. My students have suffered prototypes and gave me
feedback. Jim, John, Chris, and Les at the Civil Service
College in London(1979-1982) taught me to value non-academic
methods. I owe much to researchers at Brunel University 1970-
1978: Alphabetically Alkis, both Bobs, both Chris's, Dave,
Frank, Gordon, Ivor, John, Mike, Ricci, Ronan, Roger,
Tony, Val, and Tricia. Most important was and is Tricia, my
wife, who supported, discussed, improved, and put up with this
MATHS & TEMPO would not have come to being without the
sabbatical and equipment provided by the California State
University, San Bernardino.
This book presents the author's opinions as a humble recovering
programmer. It may not reflect the opinions, policies, or
beliefs of any other being or organization with which he has
been or is associated. It reports on an experiment with the
primary goal of increasing knowledge and is not a promise of a
product or a service. Errors in this text are the fault of the
software that the author has been using - unless the
programmers can prove otherwise.
- 00b Introduction
I describe some problems, suggest causes, and describe what
- 01 Analysis
I analyze software processes and methods to find solutions and
problems. I develop requirements for a solution to a
- 02 MATHS+TEMPO
I describe prototype solutions - MATHS( ASCII ) and
TEMPO(graphic) by presenting many examples. Including
the famous Lift problem.
- 03 Languages
MATHS is more powerful than current meta-languages. I
develop one to one relations between MATHS, TEMPO, and
- 04 Logic
MATHS includes symbolic logic, proofs, and algebra.
Examples: Data Flow Diagrams and Outlines.
- 05 Structure
The MATHS theory of types gives a model of documentation,
data structures, data bases, programs, and asynchronous
- 06 Methods
MATHS+TEMPO fit into, extend, and integrate other
- 07 Graphics
Many MATHS formula can be drawn automatically using the
- 08 Implementation
Summary of key ideas. Conclusions. Cybernetics. Proposals
for actions for researchers, practitioners, and teachers.
- 09 Bibliographies
Annotated guide to sources by chapter and by subject.
For more see the contents of the chapters.
- 10 Manifesto
- Aims and Goals of MATHS.
- 10 Overview
- Overview and links to online MATHS MAnual.
- 11 Sample
- Where to see samples.
- 12 Code
- How to Implement Simple Non-sequential
- 13 Speculations
- Some ideas that are interesting but
- 14 Reference Sheets
- A Four Page Summary of MATHS
the original 1500+
and updated (3600+)
- Index of
definitions and notations