16th European Conference on Object-Oriented Programming
University of Málaga, Spain
June 10-14, 2002
Technical programme > Tutorials > Tutorial #21
General Information
Call for Contributions
Technical Programme
Useful Information
Social Programme

<< Site map >>
<< History file >>

Ecoop 2002 is organized in cooperation with:
Important dates
Oct 01
Nov 01
Dec 01
Jan 02
Feb 02
Apr 02
May 02
Jun 02

You are the visitor number

from 4th October 2001.


Tutorial #21 - Accomplishig software stability

Morning T01 T02 T03 T05 T07 T09 T11 T13 T14 T15 T17 T19 T21 T23
Afternoon T04 T06 T08 T10 T12 T16 T18 T20 T22 T24


Accomplishig software stability


:Mohamed E. Fayad (Univ. Nebraska, USA) 

Duration :Half day
Day :Tuesday - morning
Level :Intermediate






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 do 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 tutorial 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?."

The tutorial will 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 has been stable over time?
3. What are the relationships between software that has been stable over time and workflow management?
4. What are the relationships between software that has been stable over time and business objects?
5. What is the role of object-oriented techniques and technologies in making software stable over time?
6. What are the approaches to making software stable over time?


Required experience

Familiarity with basic notions of software engineering, software architecture and UML notation and models.


Expected audience

Participants should have a general familiarity with basic object-oriented concepts, software engineering principles, software modeling techniques, (OMT, UML, or any object-oriented method) and software architecture. This tutorial is intended for a broad community of computer and software engineering researchers and professionals involved in software engineering component engineering, software architecture research and development of object-oriented software projects. Software engineering researchers, software designers, software architects, software engineers, system engineers and application program developers will greatly benefit from this tutorial.


Presenter's profile

MOHAMED FAYAD is a J.D. Edwards Professor, Computer Science & Engineering, at the University of Nebraska, Lincoln. He was an associate professor at the computer science and computer engineering faculty at the University of Nevada, from 1995 - 1999. He has 15+ years of industrial experience. He has been actively involved in over 60 Object-Oriented projects in several companies using Shlaer-Mellor, Colbert, OMT, Use Case Approach, UML, Design Patterns, Frameworks, Software Process Improvement, Systems & Software Engineering, Internet and Web Applications using Java, OO Distributed Computing using CORBA, and others.

Dr. Fayad is a Senior Member of the IEEE, a Senior Member of the IEEE Computer Society, a Member of the ACM, an IEEE Distinguished Speaker, an Associate Editor, Editorial Advisor, and a Columnist for The Communications of the ACM, and a columnist for Al-Ahram Egyptians Newspaper (2 million subscribers), an Editor-In-Chief for IEEE Computer Society Press - Computer Science and Engineering Practice Press (1995-1997), IASTED Technical Committee member on Software Engineering (2001-2004), and a general chair of IEEE/Arab Computer Society International Conference on Computer Systems and Applications (AICCSA 2001), Beirut, Lebanon, June 26-29, 2001

Dr. Fayad was a guest editor on seven theme issues: CACM's OO Experiences, Oct. 1995, IEEE Computer's Managing OO Software Development Projects, Sept. 1996, CACM's Software Patterns, Oct. 1996, CACM's OO Application Frameworks, Oct. 1997, ACM Computing Surveys - OO Application Frameworks, March 2000, IEEE Software - Software Engineering in-the-small, Sept./Oct. 2000, and International Journal on Software Practice and Experiences, June 2001 and is currently working on two more: IEEE Transaction on Robotics and Automation -- Object-Oriented Methods for Distributed Control Architecture, March 2002, and Annals of Software Engineering Journal - OO Web-Based Software Engineering, April 2002. He has published articles in many journals and magazines, such as IEEE Software, IEEE Computer, JOOP, ACM Computing Surveys and CACM on OO software engineering methods, experiences, aspect-oriented programming, internet & web applications, enterprise and application frameworks, design patterns, and management. He has given tutorials and seminars on OO Technologies and Experiences at many conferences and he has presented various seminars in several countries: Hong Kong (April 96), Canada (10 times), Bahrain, Saudi Arabia, Egypt (12 times), Portugal (Oct. 96, July 99), Finland (July 99), Mexico (Oct. 98), Argentina (3 times), Chile (00), Peru (02).

Dr. Fayad received an MS and a Ph.D. in computer science, from the University of Minnesota at Minneapolis. His research topic was OO Software Engineering: Problems & Perspectives. He is the lead author of several Wiley books: Transition to OO Software Development, August 1998, Building Application Frameworks, Sept., 1999, Implementing Application Frameworks, Sept., 1999, Domain-Specific Application Frameworks, Oct., 1999, and 3-vol. Book on Software Architectures, PLAs, Component-Based Software Developments, and Enterprise Frameworks, in progress. 3-vol. e-books on OO Enterprise Frameworks, Oct. 2002, and 5-vol. e-books on Software Stability, Oct. 2002, published by Mightywords, Inc., in progress.








































Tutorial #21 - Accomplishig software stability
Last modified on Feb 14, 2002
Maintained by webmaster@2002.ecoop.org