Book reviews Information Systems Development: An Introduction to Information Systems Engineering - (2nd edn) Paul Beynon-Davies Macmillan, Basingstoke (1993) 333 pp ISBN 0 333 59506 8 The field of information systems development is characterized by its challenges and its ever changing set of processes, methods, tools, and techniques. As practitioners and researchers, we are hardpressed to maintain a thorough and current understanding of this diversity of theories and practices. Paul Beynon-Davies, in the second edition of Information Systems Development: An Introduction to Information Systems Engineering, provides a helpful framework in which to view information systems development as an engineering discipline. He defines information systems engineering a s 'Information systems engineering is the science and art of designing and making, with economy and elegance, technical inlbrmation systems that support the activity of particular organizations' (p 298). The text is organized into five sections with a total of 30 chapters. The sections are: Context: Basic definitions and issues of information systems engineering are presented. The author describes several models of the information systems development process (three chapters). Tools: Each chapter contains an introduction to specific development tool. Chapters cover structured programming languages, object-oriented programming languages, database systems, fourthgeneration environments, Computer-Aided Information Systems Engineering (CAISE),
Database Management with dBASE and SQL: A Practical Introduction Hans Pruyt (translated by Mike Lewis) Chapman & Hall, London (1993) 232 pp £19.95 ISBN 0 412 47750 5 Essentially this book aims at teaching people with little background in computer science how to use dBASE IV. In Chapters 1 and 2, the author starts with a very gentle introduction to databases and database management, in which the reader is familiarized with the basic terminology and some key notions such as queries and updates. The notions are illustrated by a simple example of a Housing database and some elementary SQL state-
knowledgebase systems, and hypermedia systems (seven chapters). Techniques: Techniques for performing data analysis, process (procedural) analysis, formal specification and human-computer interface development are described. Topics covered include data normalization, entityrelationship diagramming, data flow diagramming, data dictionaries, entity-life histories, and structured program design (nine chapters). Methods: The author defines a method as an organizing framework for the application of techniques. After a chapter on business analysis, three large-scale methodologies are presented - - Structured Systems Analysis (Gane and Sarson), Information Engineering, and Structured Systems Analysis and Design Method (an open standard for systems development in the United Kingdom). Additional chapters discuss prototyping/evolutionary development, information management, participative development, object-oriented development, and quality assurance (seven chapters). Environment: Organizational issues impact the success or failure of information systems development. Chapters cover organizational structures, project management, social dimensions, and the role of information systems engineering (four chapters). The strength of the text is its broad coverage of the many essential concepts that are required understanding for today's i n f o r m a t i o n system developers and managers. I can recommend this book to individuals, new to the field, who desire to assimilate a large number of terms and
concepts rapidly. The book contains an excellent dictionary of information system development terms and a good index. Each chapter provides a set of exercises with sample solutions contained in an appendix. The broad coverage of the field, however, is also the book's greatest weakness. With each chapter averaging fewer than 10 pages and with many topics per chapter, the coverage of individual topics is necessarily superficial. Simple examples illustrate concepts and a running case study integrates complementary concepts. However, a reader cannot come away from this book with any in-depth understanding of the theory or practice of information systems development. While this text can be used to gain a broadbrush view of the field, additional readings are necessary to really understand and apply the tools, techniques and methods mentioned therein. A final comment on the book is in order. The text is written from a United Kingdom perspective; the author is from the University of Glamorgan. Non-UK readers will find different spellings, unusual terms (e.g., 'advice' instead of 'invoice" in a Chapter 3 example), pounds used in monetary examples, and cultural references (e.g., 'Systems development in Britain under the Thatcherite ethos clearly emphasised technical rationality and consequently low (user) participation.'). In addition, the majority of references in the text are from British and European authors.
ments aimed at giving the reader a general flavour of the query language. Chapters 3 to 8 constitute a guide for working with SQL. After having explained how SQL commands must be entered within the dBASE IV environment (Chapter 3), the author proceeds by subsequently explaining the usage of SQL for creating a database (Chapter 4), stating single-table queries (Chapter 5), giving multiple-table queries (Chapter 6), and updating a database (Chapter 7). Especially in the chapters on queries, the author is very conscious of introducing very gently the numerous possibilities SQL offers to express queries. For instance, in Chapter 5 (single-table queries), the author starts very easily with
vertical selections, and then gradually adds the other features, such as sorting, horizontal selection, aggregates, and grouping. Similarly, in Chapter 6 (multiple-table queries), the author starts with simple joins and then slowly proceeds to SQL queries containing first independent and then correlated subqueries. In Chapter 8, the author discusses the limitations of SQL with respect to full-screen working and explains how they can be overcome in dBASE IV. In Chapter 9, the main line of the book is interrupted for a digression on database design. Rather than being a formal exposition on this subject, the chapter contains some rules of thumb to be observed when setting up databases. The concepts discussed
l~¢brmation and Software Technology 1994 Volume 36 Number 6
41an R. Hevner UniversiD, of Mao'land, MD, USA
0950-5849/94/060373-02 © 1994 Bunerworth-Heinemann Ltd
373
Book reviews include integrity, keys, and normalization. It is also shown by example how entityrelationship diagrams and data-flow diagrams can be helpful in database design. The main line of the book is resumed in Chapters 10 and 11 which discuss respectively elementary programming and embedded SQL in the dBASE language. The usage of SQL and the dBASE programming language is subsequently illustrated by a complete application based on the Housing database, the running example throughout the book. The main part of the book is then concluded by a chapter on miscellaneous aspects of dBASE that do not strictly come under the header of database management but cannot be left out (Chapter 13) and an alphabetic overview of useful commands in SQL and in the dBASE language (Chapter 14). The book is concluded by five appendices containing additional information which might be useful to the readers of the book. Noteworthy is Appendix C which contains exercises enabling the reader to examine to which extent he mastered the content of the book. The most striking characteristic of this book is beyond any doubt the very relaxed yet authoritative style in which it is written. The book really reads easily and takes the
reader from the simple basics to gradually more and more complicated problems almost unnoticeably. In this respect, the author has indeed succeeded in compiling a first guide to the essentials of database management in dBASE IV for users who have only basic understanding of working with a PC and who do not have previous experience in programming. In his preface, the author says that the book is primarily aimed at students in higher education and that it is also suitable for self-study. Personally, I think it is rather the other way around. The book is indeed ideally suited for people without experience in computer science but with access to a PC on which dBASE IV has been installed who wish to learn something about database management. People with previous programming experience however--and I think this is the case for many students in higher education--will probably find in the book too much elaboration and too little depth. Also, once the book has been mastered, it has made itself obsolete: due to its style, it is indeed less suitable as a reference despite the presence of an index. This observation, however, is not intended as a criticism: it is simply a logical consequence of the goals the author has set himself.
A very positive point of this book is the presence of a complete application in Chapter 12. Just explaining the various commands and illustrating them with small examples will indeed leave most unexperienced PC users helpless with respect to setting up, using, and maintaining a concrete database. For similar reasons, the digression on database design is another strong point (Chapter 9). A weak point of the book, however, is the bibliography (only 11 titles). In view of the introductory nature of the book, a chapter helping the more interested reader to find his way in the vast literature on database management would have been most desirable. Unfortunately, the author has largely neglected this aspect. In all, the book can be recommended as a reasonably priced introduction to database management in dBASE IV for people without previous programming experience but with some basic understanding of PC usage. People who do have some experience in programming will probably prefer a more concise reference guide.
Developing User Interfaces: Ensuring Usability Through Product and Process
tance of evaluation at all stages. Originally presented in a paper in 1989, it has now developed into a well-considered and detailed view of systems development. The authors use this to organize the other topics in the book; usability specification, evaluation, prototyping and software tools. My biggest criticism of the book is the two chapters devoted to Hartson and Hix's own notation for describing interfaces - the user action notation (UAN). This is a very terse language for interface specification which identifies user actions (such as clicking a mouse button, dragging an icon, etc.) and the effects which such actions have on the system (such as selecting a file). For those interested in such a notation this is a useful tutorial, but for many these chapters will appear obscure. As with many new techniques for user interface development, UAN is not widely used and its practical worth has yet to be proven. To spend so long on this one technique has unbalanced the book. In sharp contrast to this, the chapters on guidelines, usability, iterative design and evaluation are all thorough and well presented. The whole range of interaction styles and interface design options are
described along with sound guidelines for their use. There are many anecdotes which lighten what can otherwise be rather dull material; but perhaps there is too little psychology here for readers looking for a deeper analysis. A case study is used both to illustrate the techniques and to provide exercises. Unfortunately - - but almost inevitably in a textbook - - it is a somewhat trivial case study which glosses over many of the larger problems associated with good interface design. Overall Developing User Interfaces provides a solid introduction to interaction design from a practical standpoint. It would be suitable for a range of undergraduate courses by providing practical considerations for theory-based HCI students or providing a good grounding in HCI for software engineering students and system developers. It complements well existing textbooks in the area and I am pleased to have a copy on my bookshelf.
Deborah Hix and H Rex Hartson
John Wiley Chichester (1993) 381 pp £27.95 ISBN 0 471 57813 4 Hix and Hartson are two well-known names in the world of Human-Computer Interaction (HCI). In Developing User Interfaces they have brought together a wealth of material from both the theory and the practice of HC1, providing a highly readable survey of practical techniques and sound advice for the interface developer. The book is nicely structured in two parts. The first part considers features of the interface and interaction (the product); the second part concentrates on how developers should tackle the problems (the process). The process is further divided between software development and interface development. One of the main contributions which Hix and Hartson have made to the theory of HCI is a highly usercentred view of the systems development life cycle, known as the 'star' life cycle. This replaces the traditional linear view of systems development by an iterative approach which also emphasizes the impor-
374
Marc Gyssens University of Limburg (LUC) Department WNI B-3590 Diepenbeek, Belgium
D Benyon Open University, Milton Keynes, UK
Information and Software Technology 1994 Volume 36 Number 6