Systems Analysis and Synthesis
Bridging Computer Science and Information Technology
Barry Dwyer
Table of Contents
Copyright
Acquiring Editor: Todd Green
Editorial Project Manager: Amy Invernizzi
Project Manager: Mohanambal Natarajan
Designer: Maria Ines Cruz
Morgan Kaufmann is an imprint of Elsevier 225 Wyman Street, Waltham, MA 02451 USA
Copyright 2016 Elsevier Inc. All rights reserved.
No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or any information storage and retrieval system, without permission in writing from the publisher. Details on how to seek permission, further information about the Publishers permissions policies and our arrangements with organizations such as the Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions.
This book and the individual contributions contained in it are protected under copyright by the Publisher (other than as may be noted herein).
Notices
Knowledge and best practice in this field are constantly changing. As new research and experience broaden our understanding, changes in research methods or professional practices, may become necessary. Practitioners and researchers must always rely on their own experience and knowledge in evaluating and using any information or methods described herein. In using such information or methods they should be mindful of their own safety and the safety of others, including parties for whom they have a professional responsibility.
To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any liability for any injury and/or damage to persons or property as a matter of products liability, negligence or otherwise, or from any use or operation of any methods, products, instructions, or ideas contained in the material herein.
Library of Congress Cataloging-in-Publication Data
A catalog record for this book is available from the Library of Congress
British Library Cataloging-in-Publication Data
A catalogue record for this book is available from the British Library.
ISBN: 978-0-12-805304-1
For information on all Morgan Kaufmann publications visit our website at www.mkp.com
Foreword
Developers of software-intensive systems have yet to achieve a practical symbiosis of formal and informal concerns and techniques. Too often practitioners disdain formal techniques as irrelevant or too difficult to learn and apply. Researchers and advocates of formal methods too often fail to recognise the need for careful study and analysis of the real world that furnishes the systems subject matter and forms the arena in which its difficulties will be found, its effects felt, and its quality judged.
Barry Dwyers book is an excellent antidote. A concise basis of mathematical structures and techniques is established in one masterful chapter and deployed in every development aspect of the central case studyan administrative system for a university. Everywhere the mathematics is applied with a full concern for the real problem in hand and for the practicability of proposed solutions.
The treatment throughout is broad. Design concerns such as inter-process communication, business rules, database schemas, form design, and input and output interfaces, are discussed in chapters filled with general insights and practical demonstrations of sound established techniques. A chapter on project management discusses high-level cash flow analysis for determining economic feasibility and the detail of critical path analysis for managing its execution; it also contains good advice on documentation standards for programs and other products of the development work. An excellent chapter on dynamic characteristics of a system introduces the reader to queuing theory and probability distributions, and goes on to analyse a simple manufacturing firms business as a problem in control theory.
This book brings together three ingredients: discussion of software engineering practices and principles; beautifully clear descriptions of essential mathematical techniques; and direct application to compelling examples and case studies. It draws on Barry Dwyers experience of teaching university courses, on his practice of systems development in several application areas, and on his work as a control engineer in the aircraft industry. But above all it draws on his knowledge and mastery of the formal and informal disciplines necessary for developing dependable systems. If you are a practitioner, a teacher or a student of software engineering, you will benefit greatly from reading and using this outstanding book.
Michael Jackson
25 December 2015
Preface
Why You Should Read This Book
This book is meant as the basis for a final-year course in Computer Science or Information Technology . Alternatively, it can be read with benefit by a graduate who has come face to face with a real systems analysis and design problem, or even a seasoned systems analyst looking for a fresh and more systematic approach.
Many Computer Science and Information Technology students graduate knowing a great deal about programming and computer technology without having any idea how to apply their knowledge to the real-life problems of a business. Some like those who specialise in IT support might never need to, but many others will be expected to write application programs that directly satisfy business requirements. This can be a daunting task for the newcomer; a modest-sized business can have a system of procedures that seem unbelievably complex to an outsider. Unfortunately, there is rarely anyone who can explain the system. It may have evolved over many years into a complex mixture of computer and manual processes. Senior management may know what the system is meant to do, but not know how it does it. Middle management may understand parts of the system well, while lacking understanding of the details. Functionaries may know how to do things, but have little idea why they do them.
Discovering what an existing system does is called systems analysis. Creating a new system is usually called system design, but I prefer the term system synthesis because there are methods and algorithms that can be used to derive a correct implementation from a systems requirements.
An experienced systems analyst will often proceed intuitively but not necessarily correctly to an outline of the implementation, then use that as a framework on which to hang the necessary details. There are two problems with this approach: it needs the experience that the beginner lacks, and it often leads to an ill-conceived result. Therefore, in this book, I have used a simple specification language to state the business requirements independently of their proposed implementation. More importantly, I have used powerful mathematical methods from graph theory to derive conceptual frameworks that reveal every correct implementation. The graphs help the analyst make decisions; they dont merely record decisions the analyst has already made. It is these graphical methods that I consider to be the most important part of the book.