Monday, September 27, 2004

Useful Use Cases

Requirements elicitation and representation is always difficult, especially when the results need to be understood by two potentially diverse populations: the stakeholders (users, management, customers, ...) and the architects, designers and developers of the system. Use cases, emphasizing scenarios, are a great middle ground for representing large hunks of the requirements in a style that is both understandable to the stakeholders and specific enough for the technical community charged with architecting, designing and implementing them.

Use cases were introduced by Ivar Jacobson in his book, Object-Oriented Software Engineering: A Use Case Driven Approach, ISBN:0201544350. However, if you are not ready to purchase the book for $60, a great free resource on Use Cases is Rebecca Wirfs-Brock's OOPSLA 2002 tutorial, The Art of Writing Use Cases. You can download a copy of it here. Wirfs-Brock's site is an excellent resource for many OO requirements, design and architecture topics. Definitely worth browsing.

If any one has had experience using Use Cases or knows of further resources, I would appreciate it if you would add a comment. Later.

Monday, September 20, 2004

Reliable Advice

Attached is a description of the new edition of John Musa's book, Software Reliabilitiy Engineering: More Reliable Software Faster and Cheaper. Thanks to Professor Bernstein for forwarding John's notice to me. Software reliability is one of the key "ilities" (along with usability, enhance-ability, ...) of interest when developing a software architecture. John's book has been a classic in this area and provides the reader with tons of practical advice and even free software to deal with software reliability issues.

Has anyone else used or read Musa's book? I would be interested in your comments. Later!

Musa's description of the book:

The new edition of "Software Reliability Engineering: More Reliable Software Faster and Cheaper," now available, focuses on making software practitioners more competitive without working longer. This is a necessity in a world of globalization and outsourcing where professionals want more time for their personal lives.

John D. Musa has written what is essentially a new book. It reflects the latest software reliability engineering (SRE) practice. Reorganized and enlarged 50% to 630 pages, the material was polished by thousands of practitioners in the author's classes at a wide variety of companies worldwide.

One of the book's new features is a series of workshops for applying each area that you learn to your project. The frequently asked questions (answered, of course) were doubled to more than 700. All the popular features of the previous edition have been updated and rewritten. These include the step-by-step process summary, the glossary, the background sections, and the exercises. The user manual for the software reliability estimation program CASRE, downloadable at no charge from the Internet, reflects the latest version. The list of published articles by SRE users of their experiences now numbers more than 65. Everything is exhaustively indexed to make the most detailed topic easily accessible to those using it as a deskside reference.

The book separates basic practice from special situations for faster learning. Musa presents the material in a casual, readable style, with mathematics placed in separate background sections. All this was done to make the book especially effective for self learning. It also furnishes everything you need to implement SRE in your organization, even discussing the most effective methods of how to persuade people to adopt the practice.

One of the first Print on Demand (POD) professional books, it is coupled with a web site where you can browse and order the book. The web site has a complete detailed Table of Contents and extensive samples from the book that simulate the bookstore browsing experience. POD uses the latest automated technology to custom print each order and ship it anywhere in the world. It is as fast as you can obtain a traditionally published professional book. The cost is similar. POD technology makes it economic to keep the book in print for as long as even a handful of people want it.

Musa is one of the founders of the field of software reliability engineering. He is an IEEE Fellow and is Engineer of the Year in 2004. Listed in Who's Who in America since 1990, Musa is a prolific researcher, international consultant and teacher, and experienced and practical software developer and manager. ACM Software Engineering Notes noted for the first edition, "The author's experience in reliability engineering is apparent and his expertise is infused in the text."

The book, published by AuthorHouse, comes in hard cover and paperback editions. It contains 630 pages, including prefaces and appendices.

Tuesday, September 7, 2004

First and Second Contact

I often provide pointers to free resources on the web. In one of my latest wanderings I discovered a treasure of information on the NATO conference that literally began software engineering! It has the pdf's of the first and second NATO conferences on software engineering in 1968 and 1969 -- the documents that began software engineering. You can find this remarkable collection here.

Thanks to Brian Randell (one of the original editors) and the University of Newcastle Upon Tyne for scanning and hosting these documents. Brian also provides a retrospective and some incredible pictures of the staff and luminaries that attended the conference. Future posts will delve into these documents.


Friday, September 3, 2004

Software Infrastructure

In the past few years I have a consistent analogy for the changing perception of software in corporations. Software has gone from being considered as the paint on the walls of the building, changed every few years, to the building itself, part of the long term assests of the company. This changes the approach to current software from a philosophy of replacement to a philosophy of maintenance. It also should change the approach of building software from one of knee jerk response to today's need to careful planning, architecting and designing of an entity that will be around for decades.

The rhetoric of the software industry has changed to match the perception. For instance, we now talk of trustworthy software. However I do not believe the practice of software matches the rhetoric. Others agree. Fernando Pereira has referred me to an article by Dan Bricklin titled, "Software that lasts 200 years." In the article Bricklin discusses the changes necessary for prepackaged software to meet these longevity aspirations. I highly recommend the article and would be interested in your opinions both of the article and whether you feel that the software industry and the software engineering community are addressing these challenges. Later!

A side note - Fernando Pereira, has a terrific web log called Fresh Tracks where he discusses an amazing array of topics including skiing, books, science and music. Highly recommended. Fernando is chairperson of the Computer and Information Science Department of the University of Pennsylvania.