[CSUSB] >> [CompSci] >> [Dick Botting] >> [Monograph] >> Front
MATHS

for Software Engineering.

By
Richard J. Botting, B.Tech, Ph. D.


Sections

  1. Preface
  2. -- Abstract
  3. -- History
  4. -- Audiences
  5. -- Dedication
  6. -- Acknowledgement
  7. -- Disclaimers
  8. Contents
  9. Chapters

    Preface

    Abstract

    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.

    Audiences

    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 Circles.

    History

    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.

    Dedication

    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 book.

    Acknowledgement

    MATHS & TEMPO would not have come to being without the sabbatical and equipment provided by the California State University, San Bernardino.

    Disclaimers

    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.

    Contents

    00b Introduction
    I describe some problems, suggest causes, and describe what is needed.
    01 Analysis
    I analyze software processes and methods to find solutions and problems. I develop requirements for a solution to a central problem.
    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 code.
    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 systems.
    06 Methods
    MATHS+TEMPO fit into, extend, and integrate other methods.
    07 Graphics
    Many MATHS formula can be drawn automatically using the TEMPO rules.
    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.
    Appendices
    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 Designs.
    13 Speculations
    Some ideas that are interesting but untested.
    14 Reference Sheets
    A Four Page Summary of MATHS
    References
    the original 1500+ and updated (3600+) published sources.
    Index
    Index of definitions and notations

    Chapters

    For more see the contents of the chapters.