Book Reviews

4
SOFTWARE TESTING,VERIFICATION AND RELIABILITY Softw. Test. Verif. Reliab. 2001; 11:55–58 Book Reviews FORMAL OBJECT-ORIENTED SPECIFICATION USING OBJECT-Z. By Roger Duke and Gordon Rose. Published by Macmillan Press, Basingstoke, Hampshire, U.K., Cornerstones of Computing Series, 2000. ISBN: 0-333-80123-7, 229 pages. Price: U.K. £29.99, Soft Cover. Object-Z is an extension of Z for the specification of systems using object-oriented (OO) constructs of inheritance and composition. It has evolved over the last decade and has been applied to a large number of case studies. In addition, semantic foundations and tool support have been developed, in the main by the research team of the Software Verification Research Centre (SVRC) at the University of Queensland in Australia. This book is very firmly oriented towards the prac- tice of formal specification, and does not present the work on theoretical foundations which underpin the language. Instead, all the features of an Object-Z spec- ification are introduced step by step through tutorial examples, together with motivations for their use. The book also shows how the Unified Modelling Language (UML) can be used in conjunction with Object-Z, introducing notations for state and operation compo- sition within UML class descriptions. The emphasis throughout is on the use of formal notation for precise modelling, instead of verification of refinements. This is in tune with the usual way Z is used, and the way formal methods have primarily been used in industrial practice. Further chapters develop the use of Object-Z as a means of abstractly, yet precisely, specifying systems and evaluating alternative design structures for a sys- tem. Topics include: centralized versus local control, distributed message-passing, issues of dependency, in- formation sharing and reliability. Finally a series of small and medium-sized case studies show the lan- guage in action, including the use of rigorous reasoning in specification proof, and translation to Java. As with design patterns, the choice of an OO approach seems to offer great power in defining and selecting between alternative structuring possibilities. The book is suitable for an advanced specification course, and provides a natural progression for courses on OO design and programming. KEVIN LANO Department of Computer Science, King’s College, Strand, London, WC2R 2LS, U.K. LINUX: THE COMPLETE REFERENCE, Third Edition. By Richard Petersen. Published by Osborne/McGraw-Hill, Berkeley, CA, U.S.A., 1999. ISBN: 0-07-212164-5, 929 pages. Price: U.K. £26.99, U.S.A. $39.99, including two CD- ROMs with Caldera OpenLinux version 2.2 and RedHat Linux version 6.0, Soft Cover. 1. INTRODUCTION About nine years ago Linux was launched on the Internet by Linus Torvalds as a freely available fledgling clone of the MINIX operating system. With the aid of a small army of enthusiastic programmers, the tools and programs developed on other free soft- ware projects and the communication facilities pro- vided by the Internet, it has grown into a fast, stable, full-featured UNIX-like operating system that runs on a variety of computer architectures (including MIPS, PowerPC, Digital/Compaq-Alpha, Sparc and Strong- ARM) and supports a wide range of computer hard- ware. It is already one of the most common operating systems running on Internet servers. Copyright 2001 John Wiley & Sons, Ltd.

Transcript of Book Reviews

Page 1: Book Reviews

SOFTWARE TESTING, VERIFICATION AND RELIABILITYSoftw. Test. Verif. Reliab.2001;11:55–58

Book Reviews

FORMAL OBJECT-ORIENTED SPECIFICATIONUSING OBJECT-Z. By Roger Duke and GordonRose. Published by Macmillan Press, Basingstoke,Hampshire, U.K., Cornerstones of ComputingSeries, 2000. ISBN: 0-333-80123-7, 229 pages.Price: U.K.£29.99, Soft Cover.

Object-Z is an extension of Z for the specificationof systems using object-oriented (OO) constructs ofinheritance and composition. It has evolved over thelast decade and has been applied to a large numberof case studies. In addition, semantic foundations andtool support have been developed, in the main by theresearch team of the Software Verification ResearchCentre (SVRC) at the University of Queensland inAustralia.

This book is very firmly oriented towards the prac-tice of formal specification, and does not present thework on theoretical foundations which underpin thelanguage. Instead, all the features of an Object-Z spec-ification are introduced step by step through tutorialexamples, together with motivations for their use. Thebook also shows how the Unified Modelling Language(UML) can be used in conjunction with Object-Z,introducing notations for state and operation compo-sition within UML class descriptions. The emphasisthroughout is on the use of formal notation for precisemodelling, instead of verification of refinements. Thisis in tune with the usual way Z is used, and the wayformal methods have primarily been used in industrialpractice.

Further chapters develop the use of Object-Z as ameans of abstractly, yet precisely, specifying systemsand evaluating alternative design structures for a sys-tem. Topics include: centralized versus local control,distributed message-passing, issues of dependency, in-formation sharing and reliability. Finally a series ofsmall and medium-sized case studies show the lan-guage in action, including the use of rigorous reasoningin specification proof, and translation to Java. As with

design patterns, the choice of an OO approach seemsto offer great power in defining and selecting betweenalternative structuring possibilities.

The book is suitable for an advanced specificationcourse, and provides a natural progression for courseson OO design and programming.

KEVIN LANODepartment of Computer Science,

King’s College,Strand,

London, WC2R 2LS, U.K.

LINUX: T HE COMPLETE REFERENCE, ThirdEdition. By Richard Petersen. Published byOsborne/McGraw-Hill, Berkeley, CA, U.S.A.,1999. ISBN: 0-07-212164-5, 929 pages. Price:U.K. £26.99, U.S.A. $39.99, including two CD-ROMs with Caldera OpenLinux version 2.2 andRedHat Linux version 6.0, Soft Cover.

1. INTRODUCTION

About nine years ago Linux was launched on theInternet by Linus Torvalds as a freely availablefledgling clone of the MINIX operating system. Withthe aid of a small army of enthusiastic programmers,the tools and programs developed on other free soft-ware projects and the communication facilities pro-vided by the Internet, it has grown into a fast, stable,full-featured UNIX-like operating system that runs ona variety of computer architectures (including MIPS,PowerPC, Digital/Compaq-Alpha, Sparc and Strong-ARM) and supports a wide range of computer hard-ware. It is already one of the most common operatingsystems running on Internet servers.

Copyright 2001 John Wiley & Sons, Ltd.

Page 2: Book Reviews

56 BOOK REVIEWS

Linux is described as ‘free’ in the sense that youare free to alter, improve and redistribute the software,provided that you in turn do not impose restrictions onits subsequent use. Copyright remains with the originalauthors. Linux is not the only free operating system.Alternatives include FreeBSD, NetBSD and OpenBSD,all of which are derivatives of BSD UNIX. Arguablythese alternatives are better suited to some applicationsthan Linux.

The term ‘Linux’ is really just the name of anoperating system kernel. Various other programs arerequired to make it useful. Typically, Linux is installedon a machine as part of a distribution that includesall the application programs, utilities and libraries thatgo to make up any productive computing environment.Many of these software packages are produced by otherfree software projects. Often they are not specificallytied to Linux.

There are a wide variety of distributions. Some,such as RedHat, SuSE, Caldera and Slackware, aredeveloped by commercial companies. Others, such asDebian, are developed by non-commercial organiza-tions. If you have an Internet connection, you candownload any of these distributions without charge. It isoften more convenient, and cheaper, to purchase a copyof the distribution on CD-ROM. Many are availablefrom third-party suppliers for a nominal charge. Com-mercial distributions sometimes include e-mail andtelephone support.

2. THE BOOK

This brings us toLinux: The Complete Reference, ThirdEdition. Here ‘Linux’ refers not just to the Linuxkernel, but to the software that comes with a completedistribution. The book covers aspects of three of themore popular Linux distributions: SuSE, RedHat andCaldera. The book comes complete with both CalderaOpenLinux version 2.2 and RedHat Linux version 6.0.

Given the wide range and sophistication of thesoftware that comes with any Linux distribution, it isimpossible for a single volume book to cover everyaspect of the system. Perhaps the best that a book suchas this can hope to achieve is to help install the softwareand manage the everyday aspects of using the system,and then provide pointers to what is available and howto find out more about it. The Internet remains thedefinitive source of information, software and support.However, books such as this can save time gettingto grips with the more straightforward aspects of thesystem.

Linux can be used both as a desktop and a serveroperating system. With the aid of a software packagecalled Samba, it can act as a cost-effective replacementfor a Microsoft Windows-NT based server. For a bookto be a complete reference, it should seek to address allthese different uses.

3. LINUX AS A DESKTOP OPERATINGSYSTEM

Here, desktop application refers to the kind of soft-ware that might appeal to those converting from aMicrosoft desktop environment. The book describesthe X-Window environment, which is the standardgraphical user interface for UNIX-like machines. Italso covers a range of Window Managers—programsthat provide the graphical environment with its ‘look-and-feel’. The book covers aspects of GNOME andKDE, which provide two alternative integrated desktopenvironments.

A range of e-mail clients are discussed, both graph-ical and text based. In the description of the MHmail system (where the graphicalexmh interface isincorrectly referred to asezmh) there is a brief mentionof its file-per-message approach. However, there is nogeneral discussion of the various formats in whichmessages are stored by other mail programs. Thiscan be an important consideration when trying outdifferent mail clients. Also missing is any mention ofthe use of electronic encryption and digital signatures.This edition describesfetchmail , a general purposeIMAP/POP client that can be used for fetching e-mail,although for some reason this does not appear in theindex.

Various office applications are briefly described,including WordPerfect (a version of which is suppliedwith the book), and StarOffice, which is capable ofreading and saving files in the same format as used byMicrosoft Office 2000. Applixware, which is a fairlywell-established UNIX office suite, is not mentioned,nor are some other useful commercial packages, suchas FrameMaker and MatLab.

The second edition of the book contained an intro-duction to document preparation using TEX and LATEX–still the pinnacle of high-quality typesetting for techni-cal documents—as well asgroff —the GNU versionof troff , which is the standard tool for formattingUNIX man pages. However, in the third edition thesedo not even rate a mention, except for a couple ofunexplained references to BIBTEX and TEX. There isalso no description of PostScript and PDF format files

Copyright 2001 John Wiley & Sons, Ltd. Softw. Test. Verif. Reliab.2001;11:55–58

Page 3: Book Reviews

BOOK REVIEWS 57

and the tools used to view and produce them, such asGhostScript,gv , acroread andxpdf .

The book does not cover using scanners and digitalcameras with Linux, nor does it mention the imagemanipulation program GIMP, which has about the samepower as Adobe Photoshop, and is seen by some as a‘killer application’ for Linux.

The book describes how to set up network connec-tions, including a dial-up link to an Internet serviceprovider. Relevant software, such asdiald , whichcan manage demand dialling, andwwwoffle , whichallows off-line web browsing, are not mentioned. SomeLinux users may find the need to run applicationswritten for Microsoft Windows. In this connection,the book gives pointers towine , which allows someMicrosoft Windows applications to run in Linux. Otherpackages that provide a similar ability, such as thevmware and plex86 virtualizers and thebochsemulator, are not referred to.

4. SOFTWARE DEVELOPMENT TOOLS

The second edition of this book gave a basic intro-duction to developing programs using the GNU Ccompiler, themake utility and the RCS revision controlsystem. It also gave basic introductions to programmingin shell script, Perl and Tcl/Tk, and mentioned theavailability of compilers and interpreters for other lan-guages. Sadly, even this necessarily limited informationhas been dropped from the third edition, where devel-opment tools only make an appearance in connectionwith installing downloaded software packages.

5. SERVER RELATED SOFTWARE

There is coverage of the basic issues in setting upnetworks and printers, an Apache web server and anFTP daemon. The Samba package, which can mimica Microsoft Windows-NT server, is also described.The squid proxy cache is covered, and there areinstructions on how to set up a domain name server.Network Information Services (NIS) rate a mention,but Kerberos does not. A range of relational databasemanagement systems (RDBMSs) are briefly described.

Although the book hints at how Linux can serve asa network firewall, there is no substantial coverage ofsecurity issues and the standard techniques for defend-ing a server against attack, such as TCP-wrappers and

shadow passwords, secure shell (ssh ) and the securesocket library (SSL).

Other server-related issues which do not rate a men-tion include symmetric multiprocessing (SMP), redun-dant disc arrays (RAID) and clustering.

In one place, thesendmail mail transfer agent isdescribed as simple and easy to configure. It would behard to find many people who would agree with thatdescription.

Although archive utilities liketar are described,there is no discussion of how to go about makingbackups of a machine’s file system.

6. THE CD-ROMS

Both of the supplied distributions are fairly easy toinstall. The software provided on a typical Linux dis-tribution is always a snapshot of ongoing developmentand improvement. The delays in pressing a CD-ROM,and in producing a book, mean that the distributionsprovided with a book like this are almost invariablydated.

For many, this may not be a problem. For thesecurity conscious, a more recent distribution than theone supplied with the book is essential, and relevantsecurity fixes must be installed as soon as they becomeavailable.

Even for those for whom security is not a seriousissue, continuing developments in many software pack-ages and support for a wider range of hardware maymake it preferable to buy a more recent distribution anda separate guide to Linux.

7. CONCLUSIONS

When a book claims to be a complete reference tosomething as vast as an entire operating system, to-gether with all the utilities and useful applicationsthat are available, then it will always be easy to findflaws and inadequacies. It is perhaps inevitable that abook, even when around 1000 pages long, will fail inthis objective, especially when the systems it seeks todocument change almost daily.

On the server side, more significant than the in-evitable omissions is the poor coverage of securityissues. Anyone responsible for the administration ofa publicly accessible Linux-based server should lookelsewhere for this information.

Copyright 2001 John Wiley & Sons, Ltd. Softw. Test. Verif. Reliab.2001;11:55–58

Page 4: Book Reviews

58 BOOK REVIEWS

For those who intend to run Linux as a workstationoperating system, in general it is certainly no worsethan other similar books, and it provides a worth-while introduction to the operating system and a fairlyrepresentative sample of the available software. Theinclusion of two CD-ROM distributions may provide ahelpful starting point for the Linux novice. However, inthe reviewer’s opinion, it is unfortunate that softwaredevelopment and document creation tools have beendropped from this edition in favour of extended de-scriptions of GUI-based programs. Perhaps this changefollows from the perception that Linux is no longer theexclusive preserve of academics and enthusiasts.

Other books prospective purchasers might wish toconsider includeRunning Linuxpublished by O’Reilly

[1], and Steve Shah’sLinux Administration: A Begin-ner’s Guide[2].

REFERENCES

1. Welsh M, Dalheimer MK, Kaufman L.Running Linux(3rd edn). O’Reilly: Sebastopol, CA, U.S.A., 1999.

2. Shah S.Linux Administration: A Beginner’s Guide.Osborne/McGraw-Hill: Berkeley, CA, U.S.A., 2000.

CHRIS FOXDepartment of Computer Science,

King’s College,Strand,

London, WC2R 2LS, U.K.

Copyright 2001 John Wiley & Sons, Ltd. Softw. Test. Verif. Reliab.2001;11:55–58