Contracts, Scenarios and Prototypes
What is this Book About? At the beginning of the 21st century, computer systems—and especially so- ware—play an important role in our society. Software is contained in virtually every technical device that we use in everyday life (e.g., cellular phones and cars). Furthermore, computers and their software are used for leisure purposes at home (the Internet and computer games), at the office (e.g., writing letters and order processing), and for more complicated tasks such as controlling steel plants or insuring flight safety. Therefore, the quality of software (e.g., its correctness, re- ability, and efficiency) has become important not only in the context of critical systems (e.g., nuclear power plants) but also for our entire society, from business to leisure. Software engineering is the practical application of scientific knowledge for the economical production and use of high-quality software [Pomberger96]. The discipline aims at developing methods, techniques, tools, and standards to fulfill these aims. The number of methods and tools available to the software engineer nowadays is overwhelming; nevertheless, many software projects fail—that is, do not meet their schedules, are over budget, do not meet the user needs, or simply have considerable quality defects. The numerous possible explanations for this situation include poor project management, unsuitable methods and tools used in the project, and poorly developed skills of the participating software engineers.
Combination of process and programming methodologies into one cohesive frameworkScientifically solid, yet practically affordable and understandable approachAppropriate for AVERAGE developers in AVERAGE projectsDescription based on standards like UML/OCL, CORBA, EJBEnhanced by best-practices chapters with real-world examples