Monday
7 Accomplishing Software Stability Adam's Mark Hotel
Plaza Court 7
 
There is little doubt that software engineering, like all other engineering fields, has helped to make life what it is today. With software controlling more equipment and becoming an integral part of more of our lives, the field of software engineering is quickly becoming more and more important. Unlike many other engineering fields, however, the products produced through software engineering are largely intangible. Also, unlike the products of other engineering fields, software products are unlikely to remain stable over a long period of time.

In hardware areas, the failure rates of products often start high, then drop low, and then go high again. Early in a hardware product's lifecycle, there are some problems with the system. As these problems are fixed, the failure rate of the hardware products drops. However, as hardware gets old, physical deterioration causes the hardware to fail. In other words, the hardware wears out and the failure rate rises again.

Software, on the other hand, is not subject to the same wear and tear that hardware is. There are no environmental factors that cause software to break. Software is a set of instructions, or a recipe, for a piece of hardware to follow. There are no moving parts in software. There is nothing that can physically deteriorate. Software should not wear out. Unfortunately, it does. Countless authors in the field of software engineering have identified this problem. However, the software engineering techniques outlined by many software-engineering authors have not achieved a good amount of stability in software projects.

This problem is more than just an inconvenience for software engineers and software users. The reengineering that is required for these software products does not come without a price. It is not uncommon to hear of these reengineering projects costing hundreds of thousands to millions of dollars. This does not take into account the time that is wasted by this continual reengineering process. Software defects and "deterioration" are caused by changes in software. Many of these changes cannot be avoided. These changes can be minimized, however. Currently, when a change must be made to a software program, most of the time the entire program is reengineered. It does not matter if the change required is due to new technology or a change in clientele. This reengineering process is ridiculous. The core purpose of the software product has not changed. Why, then, must the entire project be reengineered to incorporate a change?

This workshop will examine software stability with respect to three central themes: "How can we engineer software systems that are stable overtime?," "What are the approaches of making software systems stable over time?" and "What is the role of object-oriented technology in the issue of software stability over time?."

We want researchers, framework developers, and application developers to answer the following questions:

  1. How can we achieve software stability over time and extend the life span of software products?
  2. What are the relationships between software architecture and software that been stable over time?
  3. What are the relationships between software that been stable over time and management workflow?
  4. What are the relationships between software that been stable over time and business objects?
  5. What is the role of object-oriented techniques and technologies of making software stable over time?
  6. What are the approaches of making software stable over time?

Organizers:

Mohamed E. Fayad, Ph.d, University of Nebraska, Lincoln
Email: fayadm@acm.org and m.fayad@computer.org

Mauri Laitinen, Laitinen Consulting

Workshops
Submission Information
Workshops At
A Glance
Full Description
of All Workshops
Back To
Final Program

 OOPSLA'98 Home