100% found this document useful (3 votes)
61 views90 pages

Object Oriented Software Engineering Using UML Patterns and Java 3rd Edition by Bernd Bruegge, Allen H Dutoit ISBN 0133002098 9780133002096 Download

The document provides an overview of various textbooks related to Object-Oriented Software Engineering, including titles by Bernd Bruegge, Allen H. Dutoit, and Craig Larman, among others. It emphasizes the importance of practical experience and problem-solving in software engineering education, advocating for the use of UML and Java. The text highlights the challenges of managing complexity and change in software development, drawing parallels to real-world scenarios like air traffic control and mountain expeditions.

Uploaded by

rugeroturang
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
61 views90 pages

Object Oriented Software Engineering Using UML Patterns and Java 3rd Edition by Bernd Bruegge, Allen H Dutoit ISBN 0133002098 9780133002096 Download

The document provides an overview of various textbooks related to Object-Oriented Software Engineering, including titles by Bernd Bruegge, Allen H. Dutoit, and Craig Larman, among others. It emphasizes the importance of practical experience and problem-solving in software engineering education, advocating for the use of UML and Java. The text highlights the challenges of managing complexity and change in software development, drawing parallels to real-world scenarios like air traffic control and mountain expeditions.

Uploaded by

rugeroturang
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 90

Object Oriented Software Engineering Using UML

Patterns and Java 3rd Edition by Bernd Bruegge,


Allen H Dutoit ISBN 0133002098 9780133002096
download
https://ebookball.com/product/object-oriented-software-
engineering-using-uml-patterns-and-java-3rd-edition-by-bernd-
bruegge-allen-h-dutoit-isbn-0133002098-9780133002096-16122/

Instantly Access and Download Textbook at https://ebookball.com


Get Your Digital Files Instantly: PDF, ePub, MOBI and More
Quick Digital Downloads: PDF, ePub, MOBI and Other Formats

Object Oriented Software Engineering Practical Software Development


using UML and Java 1st Edition by Timothy Lethbridge, Robert Laganiere
ISBN 0072834951 9780072834956

https://ebookball.com/product/object-oriented-software-
engineering-practical-software-development-using-uml-and-
java-1st-edition-by-timothy-lethbridge-robert-laganiere-
isbn-0072834951-9780072834956-16120/

Applying UML and Patterns An Introduction to Object Oriented Analysis


and Design and Iterative Development 3rd Edition by Craig Larman ISBN
0131489062 9789332553941

https://ebookball.com/product/applying-uml-and-patterns-an-
introduction-to-object-oriented-analysis-and-design-and-
iterative-development-3rd-edition-by-craig-larman-
isbn-0131489062-9789332553941-16128/

Applying UML and Patterns An Introduction to Object Oriented Analysis


and Design and Iterative Development 3rd Edition by Craig Larman ISBN
0131489062 9780131489066

https://ebookball.com/product/applying-uml-and-patterns-an-
introduction-to-object-oriented-analysis-and-design-and-
iterative-development-3rd-edition-by-craig-larman-
isbn-0131489062-9780131489066-15634/

Applying UML and Patterns An Introduction to Object Oriented Analysis


and Design and Iterative Development 2nd Edition by Craig Larman
0130925691 9780130925695

https://ebookball.com/product/applying-uml-and-patterns-an-
introduction-to-object-oriented-analysis-and-design-and-
iterative-development-2nd-edition-by-craig-
larman-0130925691-9780130925695-17238/
Java Java Java Object Oriented Problem Solving 3rd Edition by Ralph
Morelli, Ralph Walde ISBN 0131474340 9780131474345

https://ebookball.com/product/java-java-java-object-oriented-
problem-solving-3rd-edition-by-ralph-morelli-ralph-walde-
isbn-0131474340-9780131474345-12410/

Data Structures and Algorithms with Object Oriented Design Patterns in


Java 1st Edition by Bruno Preiss, PEng ISBN 0471346136 9780471346135

https://ebookball.com/product/data-structures-and-algorithms-
with-object-oriented-design-patterns-in-java-1st-edition-by-
bruno-preiss-peng-isbn-0471346136-9780471346135-19836/

Applying UML and Patterns An Introduction to Object Oriented Analysis


and Design and the Unified Process 2nd edition by Craig Larman ISBN
‎ 0130925691 978-0130925695

https://ebookball.com/product/applying-uml-and-patterns-an-
introduction-to-object-oriented-analysis-and-design-and-the-
unified-process-2nd-edition-by-craig-larman-isbn-
aeurz-0130925691-978-0130925695-15044/

Software Modeling and Design UML Use Cases Patterns and Software
Architectures 1st Edition by Hassan Gomaa ISBN 9781139036740
1139036742

https://ebookball.com/product/software-modeling-and-design-uml-
use-cases-patterns-and-software-architectures-1st-edition-by-
hassan-gomaa-isbn-9781139036740-1139036742-15590/

Object Oriented Data Structures Using Java 1st Edition by Nell Dale,
Daniel T Joyce, Chip Weems ISBN 0763710792 9780763710798

https://ebookball.com/product/object-oriented-data-structures-
using-java-1st-edition-by-nell-dale-daniel-t-joyce-chip-weems-
isbn-0763710792-9780763710798-14762/
Object-Oriented Software Engineering
Using UML, Patterns, and Java™
Third Edition

Bernd Bruegge & Allen H. Dutoit


Technical University of Munich
Department of Computer Science
Munich, Germany

Carnegie Mellon University


School of Computer Science
Pittsburgh, PA, United States

Prentice Hall
Boston Columbus Indianapolis New York San Francisco Upper Saddle River
Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montreal Toronto
Delhi Mexico City Sao Paulo Sydney Hong Kong Seoul Singapore Taipei Tokyo
Vice President and Editorial Director, ECS: Marketing Coordinator: Kathryn Ferranti
Marcia J. Horton Senior Managing Editor: Scott Disanno
Editor in Chief: Michael Hirsch Senior Operations Supervisor: Alan Fischer
Executive Editor: Tracy Dunkelberger Operations Specialist: Lisa McDowell
Assistant Editor: Melinda Haggerty Art Director: Kenny Beck
Editorial Assistant: Allison Michael Cover Designer: Bruce Kenselaar
Director of Marketing: Margaret Waples Media Editor: Dan Sandin
Marketing Manager: Erin Davis

Copyright © 2010, 2004, 2000 Pearson Education, Inc., publishing as Prentice Hall. All rights
reserved. Manufactured in the United States of America. This publication is protected by
Copyright, and permission should be obtained from the publisher prior to any prohibited
reproduction, storage in a retrieval system, or transmission in any form or by any means,
electronic, mechanical, photocopying, recording, or likewise. To obtain permission(s) to use
material from this work, please submit a written request to Pearson Education, Inc.,
Permissions Department, One Lake Street, Upper Saddle River, NJ, 07458.
Many of the designations by manufacturers and seller to distinguish their products are claimed
as trademarks. Where those designations appear in this book, and the publisher was aware of a
trademark claim, the designations have been printed in initial caps or all caps.
Quote of Chapter 1 from Object-Oriented Analysis and Design with Applications by Booch,
© 1994 Benjamin Cummings Publishing Company Inc. Reprinted by permission of Pearson
Education, Inc.
Quotes of Chapters 2 & 12 from Zen and the Art of Motorcycle Maintenance by Robert Pirsig,
© 1974 by Robert Pirsig. Reprinted by permission of HarperCollins Publishers Inc. William
Morrow. For British Commonwealth excluding Canada, Zen and the Art of Motorcycle
Maintenance by Robert M. Pirsig published by Bodley Head. Used by persmission of The
Random House Group Limited.
Quote of Chapter 6 from The Emperor’s Old Clothes by C. A. R. Hoare, © 1981 Association
for Computing Machinery, Inc. Reprinted by permission.
Quote of Chapter 13 from Chapterhouse: Dune by Frank Herbert, © 1985 by Frank Herbert.
Used by permission of Berkeley Publishing Group, a division of Penguin Group (USA) Inc.
All other chapter quotes are in the public domain or fall within the realm of fair use.
Book photos: Bernd Bruegge, Rich Korf, and Blake Ward

Library of Congress Cataloging-in-Publication Data on File

10 9 8 7 6 5 4 3 2 1

Prentice Hall
is an imprint of
ISBN 10: 0-13-606125-7
www.pearsonhighered.com ISBN 13: 978-0-13-606125-0
To Goeg, Toby, and Clara.
—B.B.

To my family:
Vicky, Eleni, Anna-Maria, Michelle, and Chris
with love.
—A.H.D.
This page intentionally left blank
Foreword

O ver ten years ago, I read about a software engineering course taught by Bernd Bruegge at
Carnegie-Mellon University. In software engineering courses at many other universities, small
groups of 3 or 4 students were assigned several toy problems during a semester with deadlines of
less than a month. On such small projects, one strong programmer can carry the whole team by
brute force. It isn’t necessary to learn communication skills, use modeling tools, or deal with the
ambiguities of actual problems. Students come away unprepared for the complexities of real-
world development. In Bruegge’s course, the entire class worked on a single, semester-long
project to produce a query-oriented navigation system for the city of Pittsburgh. They had to
build on the interactive mapping system produced by the previous semester’s class. The clients
were managers for the county planning department and port authority. The geographic and bus
schedule data had misspellings, inaccuracies, and incompatible formats. The students produced
an accepted system of over 27,000 lines of code. What a difference from the toy projects taught
at many other places! Students came away from the course with an appreciation of the need for
strategy, organization, and tools to deal with the complexity and messiness of the real world.
They learned software engineering the only way one learns any craft—by practicing it on
realistic cases.
This book is a reflection of that pragmatic philosophy of software development as an
engineering discipline. The authors adopt a point of view—an object-oriented approach using
UML—that makes the many facets of software engineering approachable to students. They
cover both the modeling techniques and the human communications skills needed to achieve
success. They also include several chapters on managing change, a topic that appears in every
real project but which is often neglected in texts. Readers of this book will gain a solid
appreciation of the rich scope and complexity of software engineering.

v
vi Foreword

I particularly enjoyed the many illuminating anecdotes selected from a wide range of
fields. These provide lively examples of problems large and small that illustrate the subtleties
and traps that engineers must confront. Any book that makes relevant examples of Polynesian
navigation, the tangled history of the text of Tolkien’s Lord of the Rings, and grandmother’s
recipe for trimming hams is not only useful but also fun to read.

Jim Rumbaugh
Preface

T he K2 towers at 8,611 meters in the Karakorum range of the western Himalayas. It is the
second highest peak of the world and is considered the most difficult 8000er to climb. An
expedition to the K2 typically lasts several months in the summer, when the weather is most
favorable. Even in summer, snowstorms are frequent. An expedition requires thousands of
pounds of equipment, including climbing gear, severe weather protection gear, tents, food,
communication equipment, and pay and shoes for hundreds of porters. Planning such an
expedition takes a significant amount of time in the life of a climber and requires dozens of
participants in supporting roles. Once on site, many unexpected events, such as avalanches,
porter strikes, or equipment failures, will force the climbers to adapt, find new solutions, or
retreat. The success rate for expeditions to the K2 is currently less than 40%.
The United States National Airspace System (NAS) monitors and controls air traffic in the
United States. The NAS includes more than 18,300 airports, 21 air route traffic control centers,
and over 460 control towers. These add up to more than 34,000 pieces of equipment, including
radar systems, communication switches, radios, computer systems, and displays. The current
infrastructure is aging rapidly. The computers supporting the 21 air route traffic control centers,
for example, are IBM 3083 mainframes that date back to the early 1980s. In 1996, the United
States government initiated a program to modernize the NAS infrastructure, including
improvements such as satellite navigation, digital controller/pilot communications, and a higher
degree of automation in controlling the air routes, deciding the order in which aircraft land, and
controlling ground traffic as aircraft move from and to the runways. Such a complex
infrastructure, however, can only be modernized incrementally. Consequently, while new
components offering new functionality are introduced, older components still need to be
supported. For example, during the transition period, a controller will have to be able to use both
analog and digital voice channels to communicate with pilots. Finally, the modernization of the

vii
viii Preface

NAS coincides with a dramatic increase in global air traffic, predicted to double within the next
10–15 years. The previous modernizing effort of the NAS, called the Advanced Automation
System (AAS), was suspended in 1994 because of software-related problems, after missing its
initial deadline by several years and exceeding its budget by several billions of dollars.
Both of the above examples discuss complex systems in which external conditions can
trigger unexpected changes. Complexity puts the problem beyond the control of any single
individual. Change forces participants to move away from well-known solutions and to invent
new ones. In both examples, several participants need to cooperate and develop new techniques
to address these challenges. Failure to do so results in failure to reach the goal.
This book is about conquering complex and changing software systems.

The theme

The application domain (mountain expedition planning, air traffic control, financial
systems, word processing) usually includes many concepts that software developers are not
familiar with. The solution domain (user interface toolkits, wireless communication, middleware,
database management systems, transaction processing systems, wearable computers) is often
immature and provides developers with many competing implementation technologies.
Consequently, the system and the development project are complex, involving many different
components, tools, methods, and people.
As developers learn more about the application domain from their users, they update the
requirements of the system. As developers learn more about emerging technologies or about the
limitations of current technologies, they adapt the system design and implementation. As quality
control finds defects in the system and users request new features, developers modify the system
and its associated work products. The result is continuous change.
Complexity and change represent challenges that make it impossible for any single
person to control the system and its evolution. If controlled improperly, complexity and change
defeat the solution before its release, even if the goal is in sight. Too many mistakes in the
interpretation of the application domain make the solution useless for the users, forcing a
retreat from the route or the market. Immature or incompatible implementation technologies
result in poor reliability and delays. Failure to handle change introduces new defects in the
system and degrades performance beyond usability.
This book reflects more than 10 years of building systems and of teaching software
engineering project courses. We have observed that students are taught programming and
software engineering techniques in isolation, often using small problems as examples. As a
result, they are able to solve well-defined problems efficiently, but are overwhelmed by the
complexity of their first real development experience, when many different techniques and tools
need to be used and different people need to collaborate. Reacting to this state of affairs, the
typical undergraduate curriculum now often includes a software engineering project course,
organized as a single development project.
Preface ix

The tools: UML, Java, and Design Patterns

We wrote this book with a project course in mind. The book can be used, however, in other
situations as well, such as short and intensive workshops or short-term R&D projects. We use
examples from real systems and examine the interaction among state-of-the art techniques, such
as UML (Unified Modeling Language), Java-based technologies, design patterns, design
rationale, configuration management, and quality control. Moreover, we discuss project
management related issues that are related to these techniques and their impact on complexity
and change.

The principles

We teach software engineering following five principles:


Practical experience. We believe that software engineering education must be linked with
practical experience. Students can understand complexity only by working with a complex
system—that is, a system that no single student can completely understand.
Problem solving. We believe that software engineering education must be based on problem
solving. Consequently, there are no right or wrong solutions, only solutions that are better or
worse relative to stated criteria. Although we survey existing solutions to real problems and
encourage their reuse, we also encourage criticism and the improvement of standard solutions.
Limited resources. If we have sufficient time and resources, we could perhaps build the ideal
system. There are several problems with such a situation. First, it is not realistic. Second, even if
we had sufficient resources, if the original problem rapidly changes during the development, we
would eventually deliver a system solving the wrong problem. As a result, we assume that our
problem-solving process is limited in terms of resources. Moreover, the acute awareness of
scarce resources encourages a component-based approach and reuse of knowledge, design, and
code. In other words, we support an engineering approach to software development.
Interdisciplinarity. Software engineering is an interdisciplinary field. It requires contributions
from areas spanning electrical and computer engineering, computer science, business
administration, graphic design, industrial design, architecture, theater, and writing. Software
engineering is an applied field. When trying to understand and model the application domain,
developers interact regularly with others, including users and clients, some of whom know little
about software development. This requires viewing and approaching the system from multiple
perspectives and terminologies.
Communication. Even if developers built software for developers only, they would still need
to communicate among themselves. As developers, we cannot afford the luxury of being able to
communicate only with our peers. We need to communicate alternatives, articulate solutions,
negotiate trade-offs, and review and criticize others’ work. A large number of failures in
software engineering projects can be traced to the communication of inaccurate information or
x Preface

to missing information. We must learn to communicate with all project participants, including,
most importantly, the client and the end users.
These five principles are the basis for this book. They encourage and enable the reader to
address complex and changing problems with practical and state-of-the-art solutions.

The book
This book is based on object-oriented techniques applied to software engineering. It is
neither a general software engineering book that surveys all available methods nor a
programming book about algorithms and data structures. Instead, we focus on a limited set of
techniques and explain their application in a reasonably complex environment, such as a multi-
team development project that includes 20 to 60 participants. Consequently, the book also
reflects our biases, our strengths, and our weaknesses. We hope, nevertheless, that all readers
will find something they can use. The book is structured into 16 chapters organized into three
parts, which can be taught as a semester-long course.
Part I, Getting Started, includes three chapters. In this part, we focus on the basic skills
necessary for a developer to function in a software engineering context.

• In Chapter 1, Introduction to Software Engineering, we describe the difference between


programming and software engineering, the current challenges in our discipline, and
basic definitions of concepts we use throughout the book.
• In Chapter 2, Modeling with UML, we describe the basic elements of a modeling
language, UML, used in object-oriented techniques. We present modeling as a
technique for dealing with complexity. This chapter teaches the reader how to read and
understand UML diagrams. Subsequent chapters teach the reader how to build UML
diagrams to model various aspects of the system. We use UML throughout the book to
model a variety of artifacts, from software systems to processes and work products.
• In Chapter 3, Project Organization and Communication, we introduce basic concepts
of project organization and communication. Developers and managers spend more than
half of their time communicating with others, either face-to-face or via E-mail,
groupware, video conference, or written documents. Whereas modeling deals with
complexity, communication deals with change. We describe project organizations and
discuss what constitutes effective communication.

In Part II, Dealing with Complexity, we focus on methods and technologies that enable
developers to specify, design, and implement complex systems.

• In Chapter 4, Requirements Elicitation, and Chapter 5, Analysis, we describe the


definition of the system from the users’ point of view. During requirements elicitation,
developers determine the functionality users need and a usable way of delivering it.
During analysis, developers formalize this knowledge and ensure its completeness and
Preface xi

consistency. We focus on how UML is used to deal with application domain


complexity.
• In Chapter 6, System Design: Decomposing the System, and Chapter 7, System Design:
Addressing Design Goals, we describe the definition of the system from the
developers’ point of view. During this phase, developers define the architecture of the
system in terms of design goals and a subsystem decomposition. They address global
issues, such as the mapping of the system onto hardware, the storage of persistent data,
and global control flow. We focus on how developers can use architectural styles,
components, and UML to deal with solution domain complexity.
• In Chapter 9, Object Design: Specifying Interfaces, Chapter 9, Object Design:
Specifying Interfaces, and Chapter 10, Mapping Models to Code, we describe the
detailed modeling and construction activities related to the solution domain. During
this phase, developers identify and adapt design patterns and frameworks to realize
specific subsystems. They refine and specify precisely the interfaces of classes using
constraint languages such as UML’s Object Constraint Language. Finally, they map the
detailed object design model to source code and database schema.
• In Chapter 11, Testing, we describe the validation of system behavior against the
system models. Testing detects faults in the system, including those introduced during
changes to the system or its requirements. Testing activities include unit testing,
integration testing, and system testing. We describe several testing techniques, such as
whitebox, blackbox, path testing, state-based testing, and inspections, and discuss their
application to object-oriented systems.

In Part III, Managing Change, we focus on methods and technologies that support the
control, assessment, and implementation of changes throughout the development of a system.

• In Chapter 12, Rationale Management, we describe the capture of design decisions and
their justifications. The models developed during requirements elicitation, analysis, and
system design help us deal with complexity by providing different perspectives on what
the system should be doing and how it should do it. To be able to deal with change, we
need also to know why the system is the way it is. Capturing design decisions,
considered alternatives, and their argumentation enables us to access the rationale of
the system.
• In Chapter 13, Configuration Management, we describe techniques for modeling the
project history. Configuration management complements rationale in helping us deal
with change. Version management records the evolution of the system. Release
management ensures consistency and quality across the components of a release.
Change management ensures that modifications to the system are consistent with
project goals.
• In Chapter 14, Project Management, we describe techniques for initiating a software
development project, tracking its progress, and dealing with risks and unplanned
xii Preface

events. We focus on organizations, roles, and management activities that allow a large
number of participants to collaborate and deliver a high-quality system within planned
constraints.
• In Chapter 15, Software Life Cycle, we describe software life cycles, such as Boehm’s
Spiral Model and the Unified Software Development Process, that provide an abstract
model of development activities. In this chapter, we also describe the Capability
Maturity Model, which is used for assessing the maturity of organizations.
• In Chapter 16, Methodologies: Putting It All Together, we describe methodologies and
heuristics for applying the material covered in the other chapters to concrete situations.
No matter how thorough the requirements elicitation or detailed the planning, projects
of any realistic size encounter unexpected events and changes. Dealing with uncertainty
makes real projects and systems look very different from projects and systems
examined in textbooks. In this chapter, we describe several different methodologies,
discuss issues that need to be addressed in every project, and present three case studies
of actual projects.

The topics above are strongly interrelated. To emphasize their relationships, we selected
an iterative approach. Each chapter consists of five sections. In the first section, we introduce the
issues relevant to the topic with an illustrative example. In the second section, we describe
briefly the activities of the topic. In the third section, we explain the basic concepts of the topic
with simple examples. In the fourth section, we detail the technical activities with examples
from real systems. Finally, we describe management activities and discuss typical trade-offs. In
Chapters 4–10, we present a running case study of a complex multi-user game management
system called ARENA. By repeating and elaborating on the same concepts in increasingly
complex examples, we hope to provide the reader with an operational knowledge of object-
oriented software engineering.

The courses
Building a large, complex system can be compared with climbing a big mountain. It is
good to have a route description, but the route can never be completely mapped out, as new
crevasses may open anytime. Even though we map out our software engineering knowledge in
this book, changes will occur and methods that we believe in now may be out of date soon.
How can we teach students to cope with such rapidly changing conditions? For us, the
most important thing to pass on to a student is not only knowledge of the map, but also the
ability to negotiate the terrain. Although it is wise to study the description of a route, there is no
substitute for the experience of actually traveling the route.
We wrote this book for a semester-long software engineering project course for senior or
graduate students. We assume that students have experience with a programming language such
as C, C++, C#, or Java. We expect that students have the necessary problem-solving skills to
attack technical problems, but we do not expect that they have been exposed to the complex or
Preface xiii

changing situations typical of system development. This book can also be used for other types of
courses, such as short, intensive professional courses.
Project and senior-level courses. A project course should include all the chapters of the
book, roughly in the order presented. An instructor may consider teaching more advanced
project management concepts from Chapter 14, Project Management, early in the course so that
students become familiar with planning and controlling.
Introductory-level course. An introductory course with homework should focus on the first
three sections of each chapter. The fourth section and the case study can be used as material for
homework and can simulate the building of a minisystem using paper for UML diagrams,
documents, and code.
Short technical course. The book can also be used for a short, intensive course geared
toward professionals. A technical course focusing on UML and object-oriented methods could
use the chapter sequence 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, covering all development phases from
requirements elicitation to testing. An advanced course would also include Chapter 12,
Rationale Management, and Chapter 13, Configuration Management.
Short management course. The book can also be used for a short, intensive course geared
toward managers. A management course focusing on managerial aspects such as
communication, risk management, rationale, maturity models, and UML could use the chapter
sequence 1, 2, 3, 14, 15, 16, 12, 13.

Changes since the second edition

This edition started as an upgrade of our book to UML 2 and to the latest advances in agile
methods. In the process, we also added new material about system design and testing. We thank
Tracy Dunkelberger, our publisher, for her patience. We made the following changes:

• Comprehensive upgrade to the latest UML and OCL standards. We revised most
diagrams in the book to take advantage of the latest advances of UML and OCL. In
particular, we use component diagrams with ball-and-socket notation during system
and object design.
• Expanded material on agile methods. In the second edition, we introduced coverage of
the XP methodology in Chapter 16. In this edition, we extended the material on agile
methods to Scrum and Rugby and consequently adapted the material on testing,
configuration management, and project management in Chapters 11, 13, and 14.
• New material on continuous integration. A practice of agile methods, used in other
contexts as well, is the continuous integration of software changes into main production
trunk. While this practice allows integration problems to be identified, and thus
resolved, much earlier, its realization presents initially many challenges. We present
this new material in Chapter 13, Software Configuration Management.
xiv Preface

• New material on U2TP and automated testing. In our teaching, we found the extensions
of the UML 2 Testing Profile facilitate the discussion of testing concepts, in particular,
the distinction between the testing system and the system under test. This also allowed
us to extend the material on testing to automated testing and automatic test generation.
• Improvements of the case study and examples throughout. Since the last edition, we
received a lot of feedback about the case study and the examples in this book. We are
grateful of this feedback and consequently implemented many suggestions, too
numerous to enumerate here in detail.

Typographical conventions
We use the following conventions throughout the book:

• A new term appears in bold when defined the first time.


• Book titles, chapter titles, and emphasized terms appear in italics.
• The names of systems and of modeling elements (e.g., class, attribute, operation, state,
variable) appear in monospaced font.
• The names of abstract classes appear in italics monospaced font.
• Object names appear underlined in figures.
• URLs appear in underlined roman.
• Source code appears in monospaced font, with reserved keywords in bold and
comments in italics.

Production notes
This book was written and composed using Adobe Framemaker. The final print images
were generated as PDF files using Adobe Acrobat Distiller.

About the authors


Dr. Bernd Bruegge has been studying and teaching Software Engineering at Carnegie
Mellon University for 20 years, where he received his masters and doctorate degrees. He
received his Diplom from the University of Hamburg. He is now a university professor of
Computer Science with a chair for Applied Software Engineering at the Technische Universität
München and an adjunct faculty member of Carnegie Mellon University. He has taught
object-oriented software engineering project courses on the text materials and website described
in this book for 15 years. He won the Herbert A. Simon Excellence in Teaching Award at
Carnegie Mellon University in 1995. Bruegge is also an international consultant and has used
the techniques in this book to design and implement many real systems, including an
engineering feedback system for DaimlerChrysler, an environmental modeling system for the
U.S. Environmental Protection Agency, and an accident management system for a municipal
police department, to name just a few.
Preface xv

Dr. Allen Dutoit works in the aerospace industry in the area of avionics software
development. He received his M.S. and Ph.D. from Carnegie Mellon University and his Diplôme
d’Ingénieur from the Swiss Federal Institute of Technology in Lausanne. He has taught software
engineering project courses with Professor Bruegge since 1993, both at Carnegie Mellon
University and the Technische Universität München, where they used and refined the methods
described in this book. Dutoit’s research covered several areas of software engineering and
object-oriented systems, including requirements engineering, rationale management, distributed
development, and prototype-based systems. He was previously affiliated with the Software
Engineering Institute and the Institute for Complex Engineered Systems at Carnegie Mellon
University.

Opener Pictures
The pictures at the beginning of each chapter are from an Alpine-style ascent of the West
Rib of Denali (6,193 m) made by one of the authors before starting to work on this book. During
this trip, the analogy between software development and mountaineering became more than
obvious. The pictures chronicle the climb, showing our expedition car on the Alaskan Canadian
Highway, a view of Mt. Robson with the Kain Face (Chapter 1), a view of Denali from the plane
(Chapters 2 and 4), the beginning of the West Rib (Chapter 3), a look 1000 meters down from
the top of the West Rib showing our foot tracks on the East Kahiltna Glacier (Chapter 5), Mt.
Foraker from Camp 5 (Chapter 6), a beautiful but difficult edge around 5,000m (Chapter 7), the
Base Camp of the normal route where we reused the remains of an igloo (Chapter 8), the landing
area for Doug Geeting’s plane (Chapter 9), a bivouac place at the top of the West Rib named
“Hotel Crux,” because one cannot dig an area big enough for a tent (Chapter 10), crossing the
Bergschrund (Chapter 11), a fresh avalanche area (Chapter 12), Denali with the Cassin Ridge
(Chapter 13), plans for different routes to the summit (Chapter 14), a “horizontal” sunrise at the
start of the Cassin Ridge (Chapter 15), and the summit of Denali (Chapter 16).
The cover picture shows the summit of K2.
This page intentionally left blank
Acknowledgments

T his book has witnessed much complexity and change during its development. In 1989, the
first author (B.B.) originally set out to teach software engineering in a single-project course
format. The goal was to expose students to the important issues in software engineering by
solving real problems described by real clients with real tools under real constraints. The first
course, listed as 15-413 in the Carnegie Mellon catalog of courses, had 19 students, used SA/SD,
and produced 4,000 lines of code. Heavily influenced by the book by James Rumbaugh and his
colleagues on object-oriented modeling and design, we have used object-oriented methods since
then. We taught several distributed versions of the course involving up to 100 students from
Carnegie Mellon and Technische Universität München, resulting in systems with up to 500
pages of documentation and 50,000 lines of code. We currently are teaching a distributed course
involving students from University of Otago in New Zealand and Technische Universität
München.
The drawback of project courses is that instructors do not escape the complexity and
change that their students experience. Instructors quickly become participants in the
development themselves, often acting as project managers. We hope that this book will help both
instructors and students conquer this level of complexity and change.
Somehow, in spite of much energy spent on the course, we found time to write and
complete this textbook and its subsequent revision, thanks to the help and patience of numerous
students, clients, teaching assistants, support staff, coinstructors, reviewers, Prentice Hall staff,
and most of all, our families. Some have contributed to improving the course, others have
provided constructive feedback on successive drafts, and yet others were simply there when the
going got tough. Over the past 20 years, we have indebted ourselves to many people whom we
acknowledge here.

xvii
xviii Acknowledgments

The participants of the project courses. Workstation Fax (1989), Interactive Maps (1991),
Interactive Pittsburgh (1991), FRIEND (1992, 1993, 1994), JEWEL, GEMS (1991, 1994, 1995),
DIAMOND (1995, 1996), OWL (1996, 1997), JAMES (1997, 1998), PAID (1998, 1999),
STARS (1999, 2000, 2001), TRAMP (2001, 2002), ARENA (2002, 2003), CampusTV (2004,
2005), Virtual Symphony Orchester (2005), WALOS (2006), and DOLLI (2007, 2008).
The people who supported the projects. For their commitment, for their kindness, and for
getting us out of trouble when we needed it: Martin Bauer, Ulrich Bauer, Catherine Copetas,
Oliver Creighton, Ava Cruse, Barry Eisel, Luca Girardo, Dieter Hege, Mariss Jansons, Joyce
Johnstone, SiegfriedKiese, Siegfried Klinkhammer, Rafael Kobylinski, Marc Lindike, Asa
MacWilliams, Monika Markl, Key Maerkl and his Aritus Quartet, Pat Miller, Martin Ott, Ralf
Pfleghar, Martin Pittenauer, Harald Ranner, Joachim Reichel, Max Reiss, Barbara Sandling,
Christian Sandor, Ralph Schiessl, Arno Schmackpfeffer, Helma Schneider, Stephan Schoenig,
Steffen Schwarz, Martin Wagner, Uta Weber, Timo Wolf, and Michael Zaddach.
The collegues, coinstructors, and friends who influenced us. Mario Barbacci, Len Bass,
Ben Bennington, Elizabeth Bigelow, Roberto Bisiani, Naoufel Boulila, Harry Q Bovik, Andreas
Braun, Manfred Broy, Sharon Burks, Marvin Carr, Mike Collins, Robert Coyne, Douglas
Cunningham, Michael Ehrenberger, Kim Faught, Peter Feiler, Allen Fisher, Laura Forsyth, Eric
Gardner, Helen Granger, Thomas Gross, Volker Hartkopf, Bruce Horn, David Kauffer, Gudrun
Klinker, Kalyka Konda, Suresh Konda, Rich Korf, Birgitte Krogh, Sean Levy, Frank Mang, K.
C. Marshall, Dick Martin (“Tang Soo”), Horst Mauersberg, Roy Maxion, Russ Milliken, Ira
Monarch, Rhonda Moyer, Robert Patrick, Brigitte Pihulak, Mark Pollard, Martin Purvis, Raj
Reddy, Yoram Reich, James Rumbaugh, Johann Schlichter, Mary Shaw, Jane Siegel, Daniel
Siewiorek, Asim Smailagic, Mark Stehlik, Eswaran Subrahmanian, Stephanie Szakal, Tara
Taylor, Michael Terk, Günter Teubner, Marc Thomas, Walter Tichy, Jim Tomayko, Blake Ward,
Alex Waibel, Art Westerberg, Jeannette Wing, and Tao Zhang.
Reviewers who gave us constructive feedback and who helped us get many details right:
Martin Barrett, Brian Berenbach, Alex Borgida, Ramsey Bualuan, Dave Chesney, Andrea De
Lucia, Debora East, Thomas Eichhorn, Henry Etlinger, Ray Ford, Jim Helm, Jonas Helming,
Korbinian Herrmann, Allen Holliday, John Keklak, Robert Lechner, Max Koegel, Jonathan
Maletic, Jeff McKinstry, Bruce Maxim, Gerhard Mueller, Michael Nagel, Helmut Naughton,
Barbara Paech, Dennis Pagano, Daniel Paulish, Joan Peckham, Gary Pollice, David Rine,
Florian Schneider, Ingo Schneider, Anthony Sullivan, Damla Turgut, and the many anonymous
reviewers for their constructive and detailed comments. All remaining errors are ours.
Everybody at Prentice Hall who helped us making this book a reality, in particular Alan Apt,
our first publisher, for never losing faith; Lakshmi Balasubramanian, Toni Holm, Patrick
Lindner, Camille Trentacoste, Jake Warde, and, for this edition, Tracy Dunkelberger, Scott
Disanno, and many others who worked hard toward the completion of this book, but whom we
did not have the opportunity and pleasure to meet personally.
And finally, our families, to whom we dedicate this book and without whose infinite love and
patience this enterprise would never have been possible.
Contents at a Glance
Foreword v
Preface vii
Acknowledgments xvii

PART I Getting Started 1


Chapter 1 Introduction to Software Engineering 3
Chapter 2 Modeling with UML 29
Chapter 3 Project Organization and Communication 77

PART II Dealing with Complexity 119


Chapter 4 Requirements Elicitation 121
Chapter 5 Analysis 173
Chapter 6 System Design: Decomposing the System 223
Chapter 7 System Design: Addressing Design Goals 259
Chapter 8 Object Design: Reusing Pattern Solutions 307
Chapter 9 Object Design: Specifying Interfaces 349
Chapter 10 Mapping Models to Code 393
Chapter 11 Testing 437

PART III Managing Change 491


Chapter 12 Rationale Management 493
Chapter 13 Configuration Management 537
Chapter 14 Project Management 575
Chapter 15 Software Life Cycle 621
Chapter 16 Methodologies: Putting It All Together 651

PART IV Appendices 707


This page intentionally left blank
Table of Contents

Foreword v
Preface vii
Acknowledgments xvii

PART I Getting Started 1

Chapter 1 Introduction to Software Engineering 3


1.1 Introduction: Software Engineering Failures 4
1.2 What Is Software Engineering? 5
1.2.1 Modeling 6
1.2.2 Problem Solving 8
1.2.3 Knowledge Acquisition 8
1.2.4 Rationale 9
1.3 Software Engineering Concepts 10
1.3.1 Participants and Roles 11
1.3.2 Systems and Models 12
1.3.3 Work Products 13
1.3.4 Activities, Tasks, and Resources 13
1.3.5 Functional and Nonfunctional Requirements 14
1.3.6 Notations, Methods, and Methodologies 15
1.4 Software Engineering Development Activities 16

xxi
xxii Table of Contents

1.4.1 Requirements Elicitation 16


1.4.2 Analysis 16
1.4.3 System Design 19
1.4.4 Object Design 19
1.4.5 Implementation 20
1.4.6 Testing 20
1.5 Managing Software Development 21
1.5.1 Communication 21
1.5.2 Rationale Management 22
1.5.3 Software Configuration Management 22
1.5.4 Project Management 23
1.5.5 Software Life Cycle 23
1.5.6 Putting It All Together 23
1.6 ARENA Case Study 23
1.7 Further Reading 25
1.8 Exercises 25
Chapter 2 Modeling with UML 29
2.1 Introduction 30
2.2 An Overview of UML 31
2.2.1 Use Case Diagrams 31
2.2.2 Class Diagrams 32
2.2.3 Interaction Diagrams 32
2.2.4 State Machine Diagrams 33
2.2.5 Activity Diagrams 33
2.3 Modeling Concepts 35
2.3.1 Systems, Models, and Views 35
2.3.2 Data Types, Abstract Data Types, and Instances 37
2.3.3 Classes, Abstract Classes, and Objects 38
2.3.4 Event Classes, Events, and Messages 40
2.3.5 Object-Oriented Modeling 41
2.3.6 Falsification and Prototyping 43
2.4 A Deeper View into UML 43
2.4.1 Use Case Diagrams 44
2.4.2 Class Diagrams 50
2.4.3 Interaction Diagrams 59
2.4.4 State Machine Diagrams 62
2.4.5 Activity Diagrams 65
Table of Contents xxiii

2.4.6 Diagram Organization 68


2.4.7 Diagram Extensions 70
2.5 Further Readings 71
2.6 Exercises 72
Chapter 3 Project Organization and Communication 77
3.1 Introduction: A Rocket Example 78
3.2 An Overview of Projects 79
3.3 Project Organization Concepts 83
3.3.1 Project Organizations 83
3.3.2 Roles 86
3.3.3 Tasks and Work Products 88
3.3.4 Schedule 90
3.4 Project Communication Concepts 92
3.4.1 Planned Communication 92
3.4.2 Unplanned Communication 99
3.4.3 Communication Mechanisms 102
3.5 Organizational Activities 109
3.5.1 Joining a Team 109
3.5.2 Joining the Communication Infrastructure 109
3.5.3 Attending Team Status Meetings 110
3.5.4 Organizing Client and Project Reviews 113
3.6 Further Readings 114
3.7 Exercises 115

PART II Dealing with Complexity 119

Chapter 4 Requirements Elicitation 121


4.1 Introduction: Usability Examples 122
4.2 An Overview of Requirements Elicitation 123
4.3 Requirements Elicitation Concepts 125
4.3.1 Functional Requirements 125
4.3.2 Nonfunctional Requirements 126
4.3.3 Completeness, Consistency, Clarity, and Correctness 128
4.3.4 Realism, Verifiability, and Traceability 129
4.3.5 Greenfield Engineering, Reengineering, and
Interface Engineering 129
xxiv Table of Contents

4.4 Requirements Elicitation Activities 130


4.4.1 Identifying Actors 130
4.4.2 Identifying Scenarios 132
4.4.3 Identifying Use Cases 135
4.4.4 Refining Use Cases 138
4.4.5 Identifying Relationships among Actors and
Use Cases 140
4.4.6 Identifying Initial Analysis Objects 143
4.4.7 Identifying Nonfunctional Requirements 146
4.5 Managing Requirements Elicitation 148
4.5.1 Negotiating Specifications with Clients:
Joint Application Design 148
4.5.2 Maintaining Traceability 150
4.5.3 Documenting Requirements Elicitation 151
4.6 ARENA Case Study 153
4.6.1 Initial Problem Statement 153
4.6.2 Identifying Actors and Scenarios 155
4.6.3 Identifying Use Cases 159
4.6.4 Refining Use Cases and Identifying Relationships 161
4.6.5 Identifying Nonfunctional Requirements 166
4.6.6 Lessons Learned 168
4.7 Further Readings 168
4.8 Exercises 169
Chapter 5 Analysis 173
5.1 Introduction: An Optical Illusion 174
5.2 An Overview of Analysis 174
5.3 Analysis Concepts 176
5.3.1 Analysis Object Models and Dynamic Models 176
5.3.2 Entity, Boundary, and Control Objects 177
5.3.3 Generalization and Specialization 178
5.4 Analysis Activities: From Use Cases to Objects 179
5.4.1 Identifying Entity Objects 180
5.4.2 Identifying Boundary Objects 182
5.4.3 Identifying Control Objects 184
5.4.4 Mapping Use Cases to Objects with
Sequence Diagrams 185
Table of Contents xxv

5.4.5
Modeling Interactions among Objects with
CRC Cards 189
5.4.6 Identifying Associations 190
5.4.7 Identifying Aggregates 192
5.4.8 Identifying Attributes 193
5.4.9 Modeling State-Dependent Behavior of
Individual Objects 194
5.4.10 Modeling Inheritance Relationships between Objects 195
5.4.11 Reviewing the Analysis Model 196
5.4.12 Analysis Summary 197
5.5 Managing Analysis 199
5.5.1 Documenting Analysis 199
5.5.2 Assigning Responsibilities 200
5.5.3 Communicating about Analysis 201
5.5.4 Iterating over the Analysis Model 203
5.5.5 Client Sign-Off 204
5.6 ARENA Case Study 206
5.6.1 Identifying Entity Objects 206
5.6.2 Identifying Boundary Objects 211
5.6.3 Identifying Control Objects 212
5.6.4 Modeling Interactions Among Objects 212
5.6.5 Reviewing and Consolidating the Analysis Model 213
5.6.6 Lessons Learned 217
5.7 Further Readings 218
5.8 Exercises 219
Chapter 6 System Design:
Decomposing the System 223
6.1 Introduction: A Floor Plan Example 224
6.2 An Overview of System Design 226
6.3 System Design Concepts 228
6.3.1 Subsystems and Classes 228
6.3.2 Services and Subsystem Interfaces 230
6.3.3 Coupling and Cohesion 230
6.3.4 Layers and Partitions 235
6.3.5 Architectural Styles 238
6.4 System Design Activities: From Objects to Subsystems 247
xxvi Table of Contents

6.4.1 Starting Point: Analysis Model for a


Route Planning System 247
6.4.2 Identifying Design Goals 249
6.4.3 Identifying Subsystems 253
6.5 Further Readings 255
6.6 Exercises 255
Chapter 7 System Design:
Addressing Design Goals 259
7.1 Introduction: A Redundancy Example 260
7.2 An Overview of System Design Activities 261
7.3 Concepts: UML Deployment Diagrams 262
7.4 System Design Activities: Addressing Design Goals 264
7.4.1 Mapping Subsystems to Processors and Components 264
7.4.2 Identifying and Storing Persistent Data 266
7.4.3 Providing Access Control 269
7.4.4 Designing the Global Control Flow 275
7.4.5 Identifying Services 277
7.4.6 Identifying Boundary Conditions 279
7.4.7 Reviewing System Design 282
7.5 Managing System Design 284
7.5.1 Documenting System Design 284
7.5.2 Assigning Responsibilities 286
7.5.3 Communicating about System Design 287
7.5.4 Iterating over the System Design 288
7.6 ARENA Case Study 290
7.6.1 Identifying Design Goals 290
7.6.2 Identifying Subsystems 291
7.6.3 Mapping Subsystems to Processors and Components 292
7.6.4 Identifying and Storing Persistent Data 294
7.6.5 Providing Access Control 295
7.6.6 Designing the Global Control Flow 296
7.6.7 Identifying Services 297
7.6.8 Identifying Boundary Conditions 299
7.6.9 Lessons Learned 302
7.7 Further Readings 302
7.8 Exercises 303
Table of Contents xxvii

Chapter 8 Object Design:


Reusing Pattern Solutions 307
8.1 Introduction: Bloopers 308
8.2 An Overview of Object Design 309
8.3 Reuse Concepts: Solution Objects, Inheritance, and
Design Patterns 313
8.3.1 Application Objects and Solution Objects 313
8.3.2 Specification Inheritance and Implementation
Inheritance 313
8.3.3 Delegation 316
8.3.4 The Liskov Substitution Principle 317
8.3.5 Delegation and Inheritance in Design Patterns 317
8.4 Reuse Activities: Selecting Design Patterns and Components 320
8.4.1 Encapsulating Data Stores with the Bridge Pattern 321
8.4.2 Encapsulating Legacy Components with the Adapter
Pattern 323
8.4.3 Encapsulating Context with the Strategy Pattern 325
8.4.4 Encapsulating Platforms with the Abstract Factory
Pattern 326
8.4.5 Encapsulating Control Flow with the Command
Pattern 329
8.4.6 Encapsulating Hierarchies with the Composite
Design Pattern 330
8.4.7 Heuristics for Selecting Design Patterns 332
8.4.8 Identifying and Adjusting Application Frameworks 332
8.5 Managing Reuse 337
8.5.1 Documenting Reuse 338
8.5.2 Assigning Responsibilities 340
8.6 ARENA Case Study 341
8.6.1 Applying the Abstract Factory Design Pattern 341
8.6.2 Applying the Command Design Pattern 342
8.6.3 Applying the Observer Design Pattern 342
8.6.4 Lessons Learned 344
8.7 Further Readings 344
8.8 Exercises 345
xxviii Table of Contents

Chapter 9 Object Design:


Specifying Interfaces 349
9.1 Introduction: A Railroad Example 350
9.2 An Overview of Interface Specification 351
9.3 Interface Specification Concepts 352
9.3.1 Class Implementor, Class Extender, and Class User 353
9.3.2 Types, Signatures, and Visibility 354
9.3.3 Contracts: Invariants, Preconditions, and
Postconditions 356
9.3.4 Object Constraint Language 357
9.3.5 OCL Collections: Sets, Bags, and Sequences 361
9.3.6 OCL Quantifiers: forAll and exists 365
9.4 Interface Specification Activities 365
9.4.1 Identifying Missing Attributes and Operations 366
9.4.2 Specifying Types, Signatures, and Visibility 368
9.4.3 Specifying Pre- and Postconditions 369
9.4.4 Specifying Invariants 371
9.4.5 Inheriting Contracts 374
9.5 Managing Object Design 375
9.5.1 Documenting Object Design 375
9.5.2 Assigning Responsibilities 381
9.5.3 Using Contracts During Requirements Analysis 382
9.6 ARENA Case Study 382
9.6.1 Identifying Missing Operations in TournamentStyle
and Round 383
9.6.2 Specifying the TournamentStyle and Round
Contracts 384
9.6.3 Specifying the KnockOutStyle and KnockOutRound
Contracts 386
9.6.4 Lessons Learned 387
9.7 Further Readings 388
9.8 Exercises 389
Chapter 10 Mapping Models to Code 393
10.1 Introduction: A Book Example 394
10.2 An Overview of Mapping 395
10.3 Mapping Concepts 396
Table of Contents xxix

10.3.1 Model Transformation 397


10.3.2 Refactoring 398
10.3.3 Forward Engineering 400
10.3.4 Reverse Engineering 401
10.3.5 Transformation Principles 401
10.4 Mapping Activities 402
10.4.1 Optimizing the Object Design Model 402
10.4.2 Mapping Associations to Collections 406
10.4.3 Mapping Contracts to Exceptions 412
10.4.4 Mapping Object Models to a Persistent Storage
Schema 416
10.5 Managing Implementation 422
10.5.1 Documenting Transformations 422
10.5.2 Assigning Responsibilities 424
10.6 ARENA Case Study 424
10.6.1 ARENA Statistics 424
10.6.2 Mapping Associations to Collections 426
10.6.3 Mapping Contracts to Exceptions 428
10.6.4 Mapping the Object Model to a Database Schema 430
10.6.5 Lessons Learned 431
10.7 Further Readings 432
10.8 Exercises 432
Chapter 11 Testing 437
11.1 Introduction: Testing The Space Shuttle 438
11.2 An Overview of Testing 440
11.3 Testing Concepts 444
11.3.1 Faults, Erroneous States, and Failures 445
11.3.2 Test Cases 448
11.3.3 Test Stubs and Drivers 450
11.3.4 Corrections 451
11.4 Testing Activities 451
11.4.1 Component Inspection 452
11.4.2 Usability Testing 453
11.4.3 Unit Testing 455
11.4.4 Integration Testing 465
11.4.5 System Testing 471
11.5 Managing Testing 476
xxx Table of Contents

11.5.1 Planning Testing 476


11.5.2 Documenting Testing 478
11.5.3 Assigning Responsibilities 480
11.5.4 Regression Testing 481
11.5.5 Automating Testing 482
11.5.6 Model-Based Testing 484
11.6 Further Readings 487
11.7 Exercises 488

PART III Managing Change 491

Chapter 12 Rationale Management 493


12.1 Introduction: Slicing Ham 494
12.2 An Overview of Rationale 495
12.3 Rationale Concepts 497
12.3.1 Centralized Traffic Control 498
12.3.2 Defining the Problem: Issues 499
12.3.3 Exploring the Solution Space: Proposals 500
12.3.4 Evaluating the Solution Space: Criteria and
Arguments 502
12.3.5 Collapsing the Solution Space: Resolutions 504
12.3.6 Implementing Resolutions: Action Items 504
12.3.7 Examples of Issue-Based Models and Systems 505
12.4 Rationale Activities: From Issues to Decisions 510
12.4.1 CTC System Design 510
12.4.2 Capturing Rationale in Meetings 511
12.4.3 Capturing Rationale Asynchronously 519
12.4.4 Capturing Rationale when Discussing Change 520
12.4.5 Reconstructing Rationale 524
12.5 Managing Rationale 526
12.5.1 Documenting Rationale 526
12.5.2 Assigning Responsibilities 528
12.5.3 Heuristics for Communicating about Rationale 529
12.5.4 Issue Modeling and Negotiation 530
12.5.5 Conflict Resolution Strategies 531
12.6 Further Readings 533
12.7 Exercises 533
Table of Contents xxxi

Chapter 13 Configuration Management 537


13.1 Introduction: An Aircraft Example 538
13.2 An Overview of Configuration Management 540
13.3 Configuration Management Concepts 541
13.3.1 Configuration Items and CM Aggregates 542
13.3.2 Versions and Configurations 543
13.3.3 Change Requests 544
13.3.4 Promotions and Releases 544
13.3.5 Repositories and Workspaces 545
13.3.6 Version Identification Schemes 545
13.3.7 Changes and Change Sets 548
13.3.8 Configuration Management Tools 548
13.4 Configuration Management Activities 550
13.4.1 Configuration Item and CM Aggregate Identification 552
13.4.2 Promotion Management 554
13.4.3 Release Management 555
13.4.4 Branch Management 557
13.4.5 Variant Management 562
13.4.6 Change Management 565
13.5 Managing Configuration Management 566
13.5.1 Documenting Configuration Management 567
13.5.2 Assigning Configuration Management
Responsibilities 568
13.5.3 Planning Configuration Management Activities 568
13.5.4 Continuous Integration: Testing and Promotion
Management 569
13.6 Further Readings 571
13.7 Exercises 572
Chapter 14 Project Management 575
14.1 Introduction: The STS-51L Launch Decision 576
14.2 An Overview of Project Management 577
14.3 Project Management Concepts 584
14.3.1 Tasks and Activities 584
14.3.2 Work Products, Work Packages, and Roles 585
14.3.3 Work Breakdown Structure 586
14.3.4 Task Model 586
xxxii Table of Contents

14.3.5 Skill Matrix 588


14.3.6 The Software Project Management Plan 589
14.4 Classical Project Management Activities 592
14.4.1 Planning the Project 592
14.4.2 Organizing the Project 598
14.4.3 Controlling the Project 603
14.4.4 Terminating the Project 609
14.5 Agile Project Management Activities 611
14.5.1 Planning the Project: Create Product and Sprint
Backlogs 611
14.5.2 Organizing the Project 612
14.5.3 Controlling the Project: Daily Scrums and
Burn Down Charts 613
14.5.4 Terminating the Project: Sprint Reviews 614
14.6 Further Readings 616
14.7 Exercises 617
Chapter 15 Software Life Cycle 621
15.1 Introduction: Polynesian Navigation 622
15.2 IEEE 1074: Standard for Developing Life Cycle Processes 626
15.2.1 Processes and Activities 626
15.2.2 Life Cycle Modeling 628
15.2.3 Project Management 628
15.2.4 Pre-Development 629
15.2.5 Development 630
15.2.6 Post-Development 631
15.2.7 Integral Processes (Cross-Development) 632
15.3 Characterizing the Maturity of Software Life Cycle Models 633
15.4 Life Cycle Models 636
15.4.1 Sequential Activity-Centered Models 637
15.4.2 Iterative Activity-Centered Models 639
15.4.3 Entity-Centered Models 644
15.5 Further Readings 647
15.6 Exercises 648
Chapter 16 Methodologies:
Putting It All Together 651
16.1 Introduction: The First Ascent of K2 652
Table of Contents xxxiii

16.2 Project Environment 655


16.3 Methodology Issues 657
16.3.1 How Much Planning? 657
16.3.2 How Much Reuse? 658
16.3.3 How Much Modeling? 659
16.3.4 How Much Process? 661
16.3.5 How Much Control and Monitoring? 661
16.3.6 When to Redefine Project Goals? 662
16.4 A Spectrum of Methodologies 662
16.4.1 Royce’s Methodology 663
16.4.2 Extreme Programming 669
16.4.3 Rugby Methodologies 673
16.5 Case Studies 680
16.5.1 XP Project: ATRACT 681
16.5.2 Local King Client: FRIEND 684
16.5.3 Distributed Project: JAMES 691
16.5.4 Case Studies Summary 698
16.6 Further Readings 703
16.7 Exercises 703

PART IV Appendices 707

Appendix A Design Patterns 709


A.1 Abstract Factory: Encapsulating Platforms 710
A.2 Adapter: Wrapping Around Legacy Code 711
A.3 Bridge: Allowing for Alternate Implementations 712
A.4 Command: Encapsulating Control Flow 713
A.5 Composite: Representing Recursive Hierarchies 714
A.6 Facade: Encapsulating Subsystems 715
A.7 Observer: Decoupling Entities from Views 716
A.8 Proxy: Encapsulating Expensive Objects 717
A.9 Strategy: Encapsulating Algorithms 718
A.10 Heuristics for Selecting Design Patterns 719
Appendix B Glossary 721
Appendix C Bibliography 753
Index 767
This page intentionally left blank
PART I
Getting Started
1

1.1 Introduction: Software Engineering Failures 4


1.2 What Is Software Engineering? 5
1.2.1 Modeling 6
1.2.2 Problem Solving 8
1.2.3 Knowledge Acquisition 8
1.2.4 Rationale 9
1.3 Software Engineering Concepts 10
1.3.1 Participants and Roles 11
1.3.2 Systems and Models 12
1.3.3 Work Products 13
1.3.4 Activities, Tasks, and Resources 13
1.3.5 Functional and Nonfunctional Requirements 14
1.3.6 Notations, Methods, and Methodologies 15
1.4 Software Engineering Development Activities 16
1.4.1 Requirements Elicitation 16
1.4.2 Analysis 16
1.4.3 System Design 19
1.4.4 Object Design 19
1.4.5 Implementation 20
1.4.6 Testing 20
1.5 Managing Software Development 21
1.5.1 Communication 21
1.5.2 Rationale Management 22
1.5.3 Software Configuration Management 22
1.5.4 Project Management 23
1.5.5 Software Life Cycle 23
1.5.6 Putting It All Together 23
1.6 ARENA Case Study 23
1.7 Further Reading 25
1.8 Exercises 25
References 27

2
1
Introduction to
Software Engineering
The amateur software engineer is always in search of magic,
some sensational method or tool whose application promises to
render software development trivial. It is the mark of the
professional software engineer to know that no such panacea
exists.

—Grady Booch, in Object-Oriented Analysis and Design

T he term software engineering was coined in 1968 as a response to the desolate state of the
art of developing quality software on time and within budget. Software developers were not able
to set concrete objectives, predict the resources necessary to attain those objectives, and manage
the customers’ expectations. More often than not, the moon was promised, a lunar rover built,
and a pair of square wheels delivered.
The emphasis in software engineering is on both words, software and engineering. An
engineer is able to build a high-quality product using off-the-shelf components and integrating
them under time and budget constraints. The engineer is often faced with ill-defined problems
and partial solutions, and has to rely on empirical methods to evaluate solutions. Engineers
working in such application domains as passenger aircraft design and bridge construction have
successfully met similar challenges. Software engineers have not been as successful.
The problem of building and delivering complex software systems on time has been
actively investigated and researched. Everything has been blamed, from the customer (“What do
you mean I can’t get the moon for $50?”) to the “soft” in software (“If I could add that one last
feature ...”) to the youth of this discipline. What is the problem?

Complexity and change

Useful software systems are complex. To remain useful they need to evolve with the end users’
need and the target environment. In this book, we describe object-oriented techniques for
conquering complex and changing software systems. In this chapter, we provide a motivation for
object-oriented techniques and define the basic concepts used throughout this book.

3
4 Chapter 1 • Introduction to Software Engineering

1.1 Introduction: Software Engineering Failures


Consider the following examples [Neumann, 1995]:

Year 1900 bug


In 1992, Mary from Winona, Minnesota, received an invitation to attend a kindergarten. Mary
was 104 at the time.
Leap-year bug
A supermarket was fined $1000 for having meat around 1 day too long, on February 29, 1988.
The computer program printing the expiration date on the meat labels did not take into account
that 1988 was a leap year.
Interface misuse
On April 10, 1990, in London, an underground train left the station without its driver. The driver
had taped the button that started the train, relying on the system that prevented the train from
moving when doors were open. The train operator had left his train to close a door which was
stuck. When the door was finally shut, the train simply left.
Security
CERT (Computer Emergency Response Team) at the Software Engineering Institute is a
government-funded organization for assisting the community in dealing with security incidents,
vulnerabilities, and security know-how. The number of security incidents reported to CERT from
the United States increased from 252 incidents in 1990 to 21,756 in 2000, and more than 40,000
incidents were reported in 2001.
Late and over budget
In 1995, bugs in the automated luggage system of the new Denver International Airport caused
suitcases to be chewed up. The airport opened 16 months late, $3.2 billion over budget, with a
mostly manual luggage system.
Late and over budget (2)
In 2002, the Swanick Air Traffic Control system covers all the enroute air traffic over England
and Wales. The system was delivered substantially over budget (cost £623 million, originally
planned at £350 million) and 6 years late. Two major upgrades of the system were delivered after
training of the traffic controllers had started.
On-time delivery
After 18 months of development, a $200-million system was delivered to a health insurance
company in Wisconsin in 1984. However, the system did not work correctly: $60 million in
overpayments were issued. The system took 3 years to fix.
Unnecessary complexity
The C-17 cargo plane by McDonnell Douglas ran $500 million over budget because of problems
with its avionics software. The C-17 included 19 onboard computers, 80 microprocessors, and 6
different programming languages.
What Is Software Engineering? 5

Each of the failures described above resulted from a software-related problem. In some cases,
developers did not anticipate seldom-occurring situations (a person living more than 100 years,
leap years impacting expiration dates). In other cases, developers did not anticipate the user
actively misusing the system (taping down a button, exploiting security holes in network
software). In yet other cases, system failures resulted from management failures (late and over-
budget delivery, on-time delivery of an incorrect system, unnecessary complexity).
Software systems are complex creations. They perform many functions; they are built to
achieve many different, and often conflicting, objectives. They comprise many components;
many of their components are custom made and complex themselves. Many participants from
different disciplines take part in the development of these components. The development process
and the software life cycle often spans many years. Finally, complex systems are difficult to
understand completely by any single person. Many systems are so hard to understand, even
during their development phase, that they are never finished: these are called vaporware.
Software development projects are subject to constant change. Because requirements are
complex, they need to be updated when errors are discovered and when the developers have a
better understanding of the application. If the project lasts many years, the staff turn-around is
high, requiring constant training. The time between technological changes is often shorter than
the duration of the project. The widespread assumptions of a software project manager that all
changes have been dealt with and that the requirements can be frozen will lead to the
deployment of an irrelevant system.
In the next section, we present a high-level view of software engineering. We describe
software engineering from the perspective of science, engineering, and knowledge acquisition
and formalization. In Section 1.3, we describe in more detail the main terms and concepts we
use in this book. In Section 1.4, we provide an overview of the development activities of
software engineering. In Section 1.5, we provide an overview of the managerial activities of
software engineering.

1.2 What Is Software Engineering?


Software engineering is a modeling activity. Software engineers deal with complexity through
modeling, by focusing at any one time on only the relevant details and ignoring everything else.
In the course of development, software engineers build many different models of the system and
of the application domain.
Software engineering is a problem-solving activity. Models are used to search for an
acceptable solution. This search is driven by experimentation. Software engineers do not have
infinite resources and are constrained by budget and deadlines. Given the lack of a fundamental
theory, they often have to rely on empirical methods to evaluate the benefits of different
alternatives.
Software engineering is a knowledge acquisition activity. In modeling the application and
solution domain, software engineers collect data, organize it into information, and formalize it
6 Chapter 1 • Introduction to Software Engineering

into knowledge. Knowledge acquisition is not sequential, as a single piece of additional data can
invalidate complete models.
Software engineering is a rationale-driven activity. When acquiring knowledge and
making decisions about the system or its application domain, software engineers also need to
capture the context in which decisions were made and the rationale behind these decisions.
Rationale information, represented as a set of issue models, enables software engineers to
understand the implication of a proposed change when revisiting a decision.
In this section, we describe in more detail software engineering from the perspectives of
modeling, problem solving, knowledge acquisition, and rationale. For each of these activities,
software engineers have to work under people, time, and budget constraints. In addition, we
assume that change can occur at any time.

1.2.1 Modeling
The purpose of science is to describe and understand complex systems, such as a system of
atoms, a society of human beings, or a solar system. Traditionally, a distinction is made between
natural sciences and social sciences to distinguish between two major types of systems. The
purpose of natural sciences is to understand nature and its subsystems. Natural sciences include,
for example, biology, chemistry, physics, and paleontology. The purpose of the social sciences is
to understand human beings. Social sciences include psychology and sociology.
There is another type of system that we call an artificial system. Examples of artificial
systems include the space shuttle, airline reservation systems, and stock trading systems. Herbert
Simon coined the term sciences of the artificial to describe the sciences that deal with artificial
systems [Simon, 1970]. Whereas natural and social sciences have been around for centuries, the
sciences of the artificial are recent. Computer science, for example, the science of understanding
computer systems, is a child of the twentieth century.
Many methods that have been successfully applied in the natural sciences and humanities
can be applied to the sciences of the artificial as well. By looking at the other sciences, we can
learn quite a bit. One of the basic methods of science is modeling. A model is an abstract
representation of a system that enables us to answer questions about the system. Models are
useful when dealing with systems that are too large, too small, too complicated, or too expensive
to experience firsthand. Models also allow us to visualize and understand systems that either no
longer exist or that are only claimed to exist.
Fossil biologists unearth a few bones and teeth preserved from some dinosaur that no one
has ever seen. From the bone fragments, they reconstruct a model of the animal, following rules
of anatomy. The more bones they find, the clearer their idea of how the pieces fit together and
the higher the confidence that their model matches the original dinosaur. If they find a sufficient
number of bones, teeth, and claws, they can almost be sure that their model reflects reality
accurately, and they can guess the missing parts. Legs, for example, usually come in pairs. If the
left leg is found, but the right leg is missing, the fossil biologists have a fairly good idea what the
What Is Software Engineering? 7

missing leg should look like and where it fits in the model. This is an example of a model of a
system that no longer exists.
Today’s high-energy physicists are in a position similar to that of a fossil biologist who has
found most of the bones. Physicists are building a model of matter and energy and how they fit
together at the most basic, subatomic level. Many years of experiments with particle accelerators
have given high-energy physicists enough confidence that their models reflect reality and that
the remaining pieces that are not yet found will fit into the so-called standard model. This is an
example of a model for a system that is claimed to exist.
Both system modelers, fossil biologists and high-energy physicists, deal with two types of
entities: the real-world system, observed in terms of a set of phenomena, and the application
domain model, represented as a set of interdependent concepts. The system in the real world is a
dinosaur or subatomic particles. The application domain model is a description of those aspects
of the real-world system that are relevant to the problem under consideration.
Software engineers face similar challenges as fossil biologists and high-energy physicists.
First, software engineers need to understand the environment in which the system has to operate.
For a train traffic control system, software engineers need to know train signaling procedures.
For a stock trading system, software engineers need to know trading rules. The software
engineer does not need to become a fully certified train dispatcher or a stock broker; they only
need to learn the application domain concepts that are relevant to the system. In other terms,
they need to build a model of the application domain.
Second, software engineers need to understand the systems they could build, to evaluate
different solutions and trade-offs. Most systems are too complex to be understood by any one
person, and most systems are expensive to build. To address these challenges, software
engineers describe important aspects of the alternative systems they investigate. In other terms,
they need to build a model of the solution domain.
Object-oriented methods combine the application domain and solution domain modeling
activities into one. The application domain is first modeled as a set of objects and relationships.
This model is then used by the system to represent the real-world concepts it manipulates. A
train traffic control system includes train objects representing the trains it monitors. A stock
trading system includes transaction objects representing the buying and selling of commodities.
Then, solution domain concepts are also modeled as objects. The set of lines used to depict a
train or a financial transaction are objects that are part of the solution domain. The idea of
object-oriented methods is that the solution domain model is a transformation of the application
domain model. Developing software translates into the activities necessary to identify and
describe a system as a set of models that addresses the end user’s problem. We describe in more
detail modeling and the concepts of objects in Chapter 2, Modeling with UML.
8 Chapter 1 • Introduction to Software Engineering

1.2.2 Problem Solving


Engineering is a problem-solving activity. Engineers search for an appropriate solution, often
by trial and error, evaluating alternatives empirically, with limited resources and incomplete
knowledge. In its simplest form, the engineering method includes five steps:

1. Formulate the problem.


2. Analyze the problem.
3. Search for solutions.
4. Decide on the appropriate solution.
5. Specify the solution.

Software engineering is an engineering activity. It is not algorithmic. It requires experi-


mentation, the reuse of pattern solutions, and the incremental evolution of the system toward a
solution that is acceptable to the client.
Object-oriented software development typically includes six development activities:
requirements elicitation, analysis, system design, object design, implementation, and testing.
During requirements elicitation and analysis, software engineers formulate the problem with the
client and build the application domain model. Requirements elicitation and analysis correspond
to steps 1 and 2 of the engineering method. During system design, software engineers analyze
the problem, break it down into smaller pieces, and select general strategies for designing the
system. During object design, they select detail solutions for each piece and decide on the most
appropriate solution. System design and object design result in the solution domain model.
System and object design correspond to steps 3 and 4 of the engineering method. During
implementation, software engineers realize the system by translating the solution domain model
into an executable representation. Implementation corresponds to step 5 of the engineering
method. What makes software engineering different from problem solving in other sciences is
that change occurs in the application and the solution domain while the problem is being solved.
Software development also includes activities whose purpose is to evaluate the
appropriateness of the respective models. During the analysis review, the application domain
model is compared with the client’s reality, which in turn might change as a result of modeling.
During the design review, the solution domain model is evaluated against project goals. During
testing, the system is validated against the solution domain model, which might be changed by
the introduction of new technologies. During project management, managers compare their
model of the development process (i.e., the project schedule and budget) against reality (i.e., the
delivered work products and expended resources).

1.2.3 Knowledge Acquisition


A common mistake that software engineers and managers make is to assume that the acquisition
of knowledge needed to develop a system is linear. This mistake is not made by software
managers alone; it can be found in other areas as well. In the 17th century, a book was published
What Is Software Engineering? 9

that offered to teach all the German poems by pouring them into the student’s head in 6 hours
with a funnel.1 The idea of using a funnel for learning is based on the widespread assumption
that our mind is a bucket that is initially empty and can be filled in a linear fashion. Material
enters through our senses, accumulates, and is digested. Popper calls this linear acquisition
model for knowledge “the bucket theory of the mind.” Among the many other things that are
wrong with this theory (described in [Popper, 1992]) is the assumption that knowledge is
conceived as consisting of things that can fill a bucket; that is, the fuller the bucket, the more we
know.
Knowledge acquisition is a nonlinear process. The addition of a new piece of information
may invalidate all the knowledge we have acquired for the understanding of a system. Even if
we had already documented this understanding in documents and code (“The system is 90%
coded, we will be done next week”), we must be mentally prepared to start from scratch. This
has important implications on the set of activities and their interactions we define to develop the
software system. The equivalent of the bucket theory of the mind is the sequential waterfall
model for software development, in which all steps of the engineering method are accomplished
sequentially.
There are several software processes that deal with this problem by avoiding the sequential
dependencies inherent in the waterfall model. Risk-based development attempts to anticipate
surprises late in a project by identifying the high-risk components. Issue-based development
attempts to remove the linearity altogether. Any development activity—analysis, system design,
object design, implementation, testing, or delivery—can influence any other activity. In issue-
based development, all these activities are executed in parallel. The difficulty with nonsequential
development models, however, is that they are difficult to manage.

1.2.4 Rationale
When describing the acquisition or evolution of knowledge, we are even less well equipped than
when describing the knowledge of an existing system. How does a mathematician derive a
proof? Mathematical textbooks are full of proofs, but rarely provide hints about the proof
derivation. This is because mathematicians do not think this background is important. Once the
axioms and the rules of deduction have been stated, the proof is timeless.
For software engineers, the situation is different. Assumptions that developers make about
a system change constantly. Even though the application domain models eventually stabilize
once developers acquire an adequate understanding of the problem, the solution domain models
are in constant flux. Design and implementation faults discovered during testing and usability
problems discovered during user evaluation trigger changes to the solution models. Changes can
also be caused by new technology. The availability of a long-life battery and of high-bandwidth
wireless communication, for example, can trigger revisions to the concept of a portable terminal.

1. G. P. Harsdoerfer (1607–1658), “Poetischer Trichter, die teutsche Dicht- und Reimkunst, ohn Behuf der lateinischen
Sprache, in 6 Stunden einzugießen,” Nuernberg, 1630.
10 Chapter 1 • Introduction to Software Engineering

Change introduced by new technology often allows the formulation of new functional or
nonfunctional requirements. A typical task of software engineers is to change a currently
operational software system to incorporate this new enabling technology. To change the system,
it is not enough to understand its current components and behavior. It is also necessary to
capture and understand the context in which each design decision was made. This additional
knowledge is called the rationale of the system.
Capturing and accessing the rationale of a system is not trivial. First, for every decision
made, several alternatives may have been considered, evaluated, and argued. Consequently,
rationale represents a much larger amount of information than do the solution models. Second,
rationale information is often not explicit. Developers make many decisions based on their
experience and their intuition, without explicitly evaluating different alternatives. When asked to
explain a decision, developers may have to spend a substantial amount of time recovering its
rationale. In order to deal with changing systems, however, software engineers must address the
challenges of capturing and accessing rationale.

1.3 Software Engineering Concepts

So far, we have presented a high-level view of software engineering from the perspectives of
modeling, problem solving, knowledge acquisition, and rationale. In this section, we describe
the main terms and concepts we use throughout the book.2 A Project, whose purpose is to
develop a software system, is composed of a number of Activities. Each Activity is in turn
composed of a number of Tasks. A Task consumes Resources and produces a WorkProduct. A
WorkProduct can be either a System, a Model, or a Document. Resources are either
Participants, Time, or Equipment. A graphical representation of these concepts is shown in
Figure 1-1. Each rectangle represents a concept. The lines among the rectangles represent
different relationships between the concepts. For example, the diamond shape indicates
aggregation: a Project includes a number of Activities, which includes a number of Tasks.
The triangle shape indicates a generalization relationship; Participants, Time, and Equipment
are specific kinds of Resources. Figure 1-1 is represented in the Unified Modeling Language
(UML) notation. We use UML throughout the book to represent models of software and other
systems. Intuitively, you should be able to understand this diagram without full knowledge of the
UML semantics. Similarly, you can also use UML diagrams when interacting with a client or a
user, even though they may not have any knowledge of UML. We describe the semantics of
these diagrams in detail in Chapter 2, Modeling with UML.

2. As much as possible, we follow the definitions of the IEEE standards on Software Engineering [IEEE Std. 610.12-
1990].
Software Engineering Concepts 11

Project

Activity

is produced by * consumes
* *
WorkProduct Task Resources

System Participant

Model Time

Document Equipment

Figure 1-1 Software engineering concepts depicted as a UML class diagram [OMG, 2009].

1.3.1 Participants and Roles

Developing a software system requires the collaboration of many people with different
backgrounds and interests. The client orders and pays for the system. The developers construct
the system. The project manager plans and budgets the project and coordinates the developers
and the client. The end users are supported by the system. We refer to all the persons involved in
the project as participants. We refer to a set of responsibilities in the project or the system as a
role. A role is associated with a set of tasks and is assigned to a participant. The same
participant can fill multiple roles.
Consider a TicketDistributor system:

TicketDistributor is a machine that distributes tickets for trains. Travelers have the option of
selecting a ticket for a single trip or for multiple trips, or selecting a time card for a day or a week. The
TicketDistributor computes the price of the requested ticket based on the area in which the trip will
take place and whether the traveler is a child or an adult. The TicketDistributor must be able to
handle several exceptions, such as travelers who do not complete the transaction, travelers who attempt
to pay with large bills, and resource outages, such as running out of tickets, change, or power.

Treating the development of this TicketDistributor as a software engineering project,


Table 1-1 provides examples of roles for this example.
12 Chapter 1 • Introduction to Software Engineering

Table 1-1 Examples of roles in software engineering for the TicketDistributor project.

Role Responsibilities Examples

Client The client is responsible for providing the high- Train company that
level requirements on the system and for defining contracts the
the scope of the project (delivery date, budget, TicketDistributor.
quality criteria).

User The user is responsible for providing domain Travelers


knowledge about current user tasks. Note that the
client and the user are usually filled by different
persons.

Manager A manager is responsible for the work Alice (boss)


organization. This includes hiring staff, assigning
them tasks, monitoring their progress, providing
for their training, and generally managing the
resources provided by the client for a successful
delivery.

Human Factors A human factors specialist is responsible for the Zoe (Human Computer
Specialist usability of the system. Interaction specialist)

Developer A developer is responsible for the construction of John (analyst), Marc


the system, including specification, design, (programmer), & Zoe
implementation, and testing. In large projects, the (tester)a
developer role is further specialized.

Technical Writer The technical writer is responsible for the John


documentation delivered to the client. A technical
writer interviews developers, managers, and users
to understand the system.

a. As TicketDistributor is a small project, Zoe fills both the human factor specialist and the tester roles,
and John fills the analyst and the technical writer roles.

1.3.2 Systems and Models


We use the term system as a collection of interconnected parts. Modeling is a way to deal with
complexity by ignoring irrelevant details. We use the term model to refer to any abstraction of
the system. A TicketDistributor for an underground train is a system. Blueprints for the
TicketDistributor, schematics of its electrical wiring, and object models of its software are
models of the TicketDistributor. Note that a development project is itself a system that can be
modeled. The project schedule, its budget, and its planned deadlines are models of the
development project.
Software Engineering Concepts 13

1.3.3 Work Products


A work product is an artifact that is produced during the development, such as a document or a
piece of software for other developers or for the client. We refer to a work product for the
project’s internal consumption as an internal work product. We refer to a work product that
must be delivered to a client as a deliverable. Deliverables are generally defined prior to the
start of the project and specified by a contract binding the developers with the client. Table 1-2
describes examples of work products for the TicketDistributor example.
Table 1-2 Examples of work products for the TicketDistributor project.

Work product Type Description

Specification Deliverable The specification describes the system from the user’s point of
view. It is used as a contractual document between the project
and the client. The TicketDistributor specification
describes in detail how the system should appear to the traveler.

Operation Deliverable The operation manual for the TicketDistributor is used by


manual the staff of the train company responsible for installing and
configuring the TicketDistributor. Such a manual describes,
for example, how to change the price of tickets and the
structure of the network into zones.

Status report Internal work A status report describes at a given time the tasks that have
product been completed and the tasks that are still in progress. The
status report is produced for the manager, Alice, and is usually
not seen by the train company.

Test manual Internal work The test plans and results are produced by the tester, Zoe. These
product documents track the known defects in the prototype
TicketDistributor and their state of repair. These documents
are usually not shared with the client.

1.3.4 Activities, Tasks, and Resources


An activity is a set of tasks that is performed toward a specific purpose. For example,
requirements elicitation is an activity whose purpose is to define with the client what the system
will do. Delivery is an activity whose purpose is to install the system at an operational location.
Management is an activity whose purpose is to monitor and control the project such that it meets
its goals (e.g., deadline, quality, budget). Activities can be composed of other activities. The
delivery activity includes a software installation activity and an operator training activity.
Activities are also sometimes called phases.
14 Chapter 1 • Introduction to Software Engineering

A task represents an atomic unit of work that can be managed: A manager assigns it to a
developer, the developer carries it out, and the manager monitors the progress and completion of
the task. Tasks consume resources, result in work products, and depend on work products
produced by other tasks.
Resources are assets that are used to accomplish work. Resources include time,
equipment, and labor. When planning a project, a manager breaks down the work into tasks and
assigns them to resources.
Table 1-3 describes examples of activities, tasks, and resources in software engineering.
Table 1-3 Examples of activities, tasks, and resources for the TicketDistributor project.

Example Type Description

Requirements elicitation Activity The requirements elicitation activity includes


obtaining and validating requirements and domain
knowledge from the client and the users. The
requirements elicitation activity produces the
specification work product (Table 1-2).

Develop “Out of Change” Task This task, assigned to Zoe (the tester) focuses on
test case for verifying the behavior of the ticket distributor
TicketDistributor when it runs out of money and cannot give the
correct change back to the user. This activity
includes specifying the environment of the test, the
sequence of inputs to be entered, and the expected
outputs.

Review “Access Online Task This task, assigned to John (the human factors
Help” use case for usability specialist) focuses on detecting usability issues in
accessing the online help features of the system.

Tariff Database Resource The tariff database includes an example of tariff


structure with a train network plan. This example
is a resource provided by the client for
requirements and testing.

1.3.5 Functional and Nonfunctional Requirements


Requirements specify a set of features that the system must have. A functional requirement is a
specification of a function that the system must support, whereas a nonfunctional requirement
is a constraint on the operation of the system that is not related directly to a function of the
system.
For example, The user must be able to purchase tickets and The user must be able to
access tariff information are functional requirements. The user must be provided feedback in less
than one second and The colors used in the interface should be consistent with the company
Software Engineering Concepts 15

colors are nonfunctional requirements. Other nonfunctional requirements may include using
specific hardware platform for the system, security requirements, how the system should deal
with failures and faults, and how to provide backward compatibility with an old system that the
client is unwilling to retire.

1.3.6 Notations, Methods, and Methodologies


A notation is a graphical or textual set of rules for representing a model. The Roman alphabet is
a notation for representing words. UML (Unified Modeling Language [OMG, 2009]), the
notation we use throughout this book, is a notation for representing object-oriented models. The
use of notations in software engineering is common and predates object-oriented concepts. Data
flow diagrams [De Marco, 1978] is a notation for representing systems in terms of data sources,
data sinks, and data transformations. Z [Spivey, 1989] is a notation for representing systems
based on set theory.
A method is a repeatable technique that specifies the steps involved in solving a specific
problem. A recipe is a method for cooking a specific dish. A sorting algorithm is a method for
ordering elements of a list. Rationale management is a method for justifying change.
Configuration management is a method for tracking change.
A methodology is a collection of methods for solving a class of problems and specifies
how and when each method should be used. A seafood cookbook with a collection of recipes is
a methodology for preparing seafood if it also contains advice on how ingredients should be
used and what to do if not all ingredients are available. Royce’s methodology [Royce, 1998], the
Object Modeling Technique (OMT [Rumbaugh et al., 1991]), the Booch methodology [Booch,
1994], and Catalysis [D’Souza & Wills, 1999] are object-oriented methodologies for developing
software.
Software development methodologies decompose the process into activities. OMT
provides methods for three activities: Analysis, which focuses on formalizing the system
requirements into an object model, System Design, which focuses on strategic decisions, and
Object Design, which transforms the analysis model into an object model that can be
implemented. The OMT methodology assumes that requirements have already been defined and
does not provide methods for eliciting requirements. The Unified Software Development
Process also includes an Analysis activity and treats System Design and Object Design as a
single activity called Design. The Unified Process, unlike OMT, includes a Requirements
Capture activity for eliciting and modeling requirements. Catalysis, while using the same
notations as the Unified Process, focuses more on reuse of design and code using patterns and
frameworks. All of these methodologies focus on dealing with complex systems.
In this book, we present a methodology for developing complex and changing systems.
During the course of our teaching and research ([Bruegge, 1992], [Bruegge & Coyne, 1993],
[Bruegge & Coyne, 1994], [Coyne et al., 1995]), we have adapted and refined methods from a
variety of sources. For activities modeling the application domain, such as requirements
elicitation and analysis, we describe methods similar to those of OOSE [Jacobson et al., 1992].
Other documents randomly have
different content
before us in actual existence, where national traits, to cite the
examples above, are the veritable growth of such a harmony.
And here we close our consideration of the principle accordant with
which we have rendered more clear that aspect of the unity of the
inner life with its natural environment which we posited as secret or
potential, not at any rate directly due to human activity.
(b) The second phase of this harmonious relation may be explained
more positively, being expressly due to man's own activity and his
adaptation of means to ends. For man adapts external objects to his
own uses and, by means of the satisfaction which his work supplies,
places himself in a harmonious relation to them. In contrast
therefore to our first indefinite[384], and, in fact, entirely general
type of harmonious association the present one is directly concerned
with what is particular, as exemplified in the particular needs of man
and their satisfaction by his converting to his use such natural
objects as he may require. The range of his wants and the
consequent impulse of their satisfaction is of a practically unlimited
variety; yet it is nothing in comparison with the variety of Nature
herself. Simplification is therefore inseparable from the task whereby,
our humanity imposes on the facts of Nature its own vital purposes,
and interpenetrates the external world with its own volitions. In this
way man's environment is humanized; he proves by his own acts
that it is capable of satisfying his nature and is unable to preserve
any predominant independence over against him. Here at last, by
virtue, that is, of his own productive exertions, we find him no
longer in a merely general sense of the term, but actually in every
detail of his particular surroundings a real centre of his own
substance and at home.
The fundamental conception which it is most important to emphasize
as that which affects art throughout in its relation to all we have
above considered may be thus stated. If we look closely at the
relative position man occupies in all the infinite variety of his
material wants, desires, and aims, we shall find that it is not one
merely of general significance, but one of actual dependence. The
absence of freedom implied in this relative position is antagonistic to
the Ideal; and in order that man may become a suitable object for
art, he must have already released himself from the travail of this
enforced condition, and thrown off the chains of his dependence.
Moreover, this act of mutual accommodation, when we trace it to its
origin, may strike us in one of two different ways. Either he may
conclude that Nature in all friendliness on her own part supplies man
with what he needs, and so far from throwing obstacles in the path
of his interests and objects, rather freely gives them him as one who
meets him half way wherever he goes. Or, on the contrary, we shall
not fail to observe that our humanity has wants and desires, whose
immediate satisfaction Nature is quite unable to secure. In cases
that fall under the second type it is obvious that man can only work
out the self-satisfaction vital to him through his own energies; he
must take possession of that which Nature possesses, set to rights
the defects which appear, modify their form, removing all that stands
in his way with adroitness; and, in short, convert Nature's raw
material into means through which he will be able to attain all that
he proposes. The relation in which the unity between man and his
environment will be most conspicuous must be sought for in an
example, where there is already a real contact between them,
where, that is to say, human ability is on such good terms with the
amenability of Nature that all the severity of a conflict between them
as unreconciled forces disappears, and we have forthwith the
completed symphony under our eyes.
For the reasons, then, already advanced the ideal province of art
must be held secure from the bare necessities of life. Property and
the favour of circumstances, in so far as they supply a condition,
under which poverty and labour vanish not merely for this or that
hour, but for the most part altogether, are for this reason, we will not
say incompatible with art, but rather in full concurrence with the
Ideal. Yet it would only betray a real lack of comprehension[385], if in
cases where the conditions of our art compelled us to consider the
facts of life in all their multifold variety, we nevertheless omitted
from our composition all reference to the relation in which human
life is placed to these very natural constraints. It is true enough that
such are purely finite conditions; but art is not therefore able to
dispense with them. They must not, in fact, even be treated by her
as something merely bad. It is rather her function to reconcile them
with the Real in her embracing unity. And indeed the finest actions
and opinions which she reflects on her mirror, if we consider the
particular form of the determination and content alone[386], are
necessarily limited and consequently finite. That I find it necessary
to provide myself with nourishment, food and drink, a house to live
in, and clothing to wear, seats to sit upon, and everything else
incidental to domestic life is no doubt an inevitable concomitant of
the fact that I live in the world; but the life that only I myself
experience within me permeates, this external aspect of my life so
completely, that men are fain to clothe and arm the very gods
themselves, and to picture them under conditions inseparable from a
variety of things they seek to possess, and find their satisfaction in
obtaining. In short, for art to be possible, this satisfaction of the
necessities of life must be assured to us. Or to take an example
where this is not so, there is that of adventurous knights who only
secure their immunity from external hardship through the continued
success of their enterprise, which is therefore itself but a
contingency, in much the same way as the prosperity of savages is
contingent upon the amenities of Nature. The conditions in both
cases are not favourable to Art. Her true Ideal is not merely to be
found where our humanity is barely lifted above the most rigorous
condition of dependence upon the smiles or frowns of Nature, but is
most of all at home in that superfluity which suffers it in conjunction
with Nature's bounty to expatiate with freedom no less than delight.
The above remarks are obviously of very general application. Two
considerations, however, of a somewhat more restricted interest may
be deduced from them.
(α) The first of these relates to the kind of use to which mankind put
the objects of Nature in seeking for a satisfaction which is wholly
aesthetic, or due to some habit of the mind. Everything in the nature
of ornament and finery, or, in general terms, everything that men
convert to their use for the sake of mere show comes under this
head. And the point to which we draw attention is this, that when
we find men thus decorating themselves no less than their
immediate surroundings, we ought not so much to conclude that all
that they thus collect together from Nature's most costly and
beautiful storehouse, whatever may most attract their eyes in the
same—whether it be gold, precious stones, pearls, ivory, or precious
raiment—that all this unrivalled rarity and brilliancy, in short, is that
which for its own sake, and primarily as a product of Nature,
interests them: rather their interest in it all is essentially personal as
a thing suitable for the houses they live in, or for that which they
most love and honour, whether it be their rulers, their temples, or
their gods. A man selects in this way that which already appears to
him as externally beautiful, pure translucent colour, glitter of metals,
fragrant woods, marble, and all the rest. Poetry, and particularly
Oriental poetry, makes a willing use of such wealth, a fact we may
even illustrate from such a poem as the Nibelungenlied: and
generally it is true enough that Art in such matters is not merely
content with a general description of the beauty or value of such fine
things; but, where the artistic form and the occasion allows, will
describe such works in all the detail of their workmanship with as
royal a bounty as the works themselves. There was no stint of either
gold or ivory on the statue of Pallas at Athens, or that of Zeus at
Olympia; and the temples of the ancient gods, the churches of
Christendom, the pictures of saints, and the palaces of kings, are
notable illustrations among all nations that possess any of them, to
what kind of service splendour and brilliant show may be devoted;
thus have nations in every age delighted in seeing upon their gods
the visible presence of their own wealth, precisely as they have
found delight in the splendour of their princes as a glory they still
possessed, though ravished from themselves.
We all know, of course, that type of moralist who is only too ready to
disturb the vision of such an enjoyment. We shall, no doubt, be
reminded how many poor Athenians the aegis of Pallas could have
supplied with a hearty meal, or how many slaves could have thus
been liberated; and, doubtless, we must admit that in the case of
the ancient world, no less than in days more near to our own
wealth, all that has been lavished on temple, cloister, or cathedral, or
other objects of public utility, has been expended under social
conditions of the direst need to many. Nay, we may carry such
melancholy reflections yet further, and find in them a condemnation
not merely of particular works of art, but of Art herself and all that
she gives us. What sums of money are involved in the building by
the State of an Academy of Arts, or the purchase of ancient and
modern works of art, and the appropriate embellishment of public
galleries, theatres, and museums! But whatever the effect of such
reflections may be upon us, whether ethical or otherwise, such is,
after all, only due to the fact that we are once more reminded of
those very constraints and hardships whose removal is a vital
condition of the appearance of Fine Art. The appropriation of a
unique sphere in its life for the exposition of its artistic treasures,
which stands safe above the stress of that reality to which it
contributes so largely, can therefore only redound to the glory and
supreme honour of any people.
(β) But, further, mankind is not merely interested in the adornment
of individuals and the environment of their life, but is actively
employed in adapting the objects of Nature to its practical needs and
purposes. It is on this plane that we come into contact for the first
time with all the labour and struggle which the dependence of our
humanity upon the prose of its finite life implies. And the question
inevitably arises, how far all that is involved in this practical effort is
suitable to artistic presentation.
(αα) In attempting some answer to this problem, we would draw
attention to the historical fact that the earliest way in which Art
attempted to banish all the prose reality of human life was the
conception of the well-known golden age or, if we care to call it so,
the idyllic state. In this we have Nature depicted as satisfying man's
every want with no trouble to himself: while he, for his part, enjoys
in a state of innocence all that mead, wood, flocks, garden, shelter,
and so forth, can supply him with nourishment, dwelling, and all
other comforts incidental to such a life. Of the passions of ambition
or avarice, indeed of every impulse that may appear to run counter
to the nobility of man's spiritual nature, we hear no word at all. At
first blush, no doubt, a state of this description may strike us more
or less as ideal, and certain types of art, limited in their range, may
find definite satisfaction in presenting us with a picture of it. But we
have only to penetrate further below the surface and we shall
quickly have enough of such a vision. The writings of Gessner are
little read nowadays, and when we do read them we find in such
little satisfaction. The truth is that a restricted state of life, such as
the above described, presupposes a very elementary stage in human
development. Manhood which has attained to any real fulness of
spiritual stature is moved by impulses of loftier range, and is not
likely to be satisfied with the life which clings closest to Nature and
its immediate products. In such idyllic poverty of soul no man ought
to live, but rather to accept his birthright of toil: that which his
spiritual impulse urges him forward to, that he must secure through
his own activity. Once regard the matter in this way and these very
physical wants of man will be found to bring into being a wide and
diverse range of activities, implanting in him the conscious sense of
his own powers, from the heart of which the profounder interests
and forces of his life can slowly unravel themselves. But, at the same
time, it is necessary that here, too, the harmonious relation between
the outward and inner life should be maintained as the fundamental
principle of artistic presentation. Few things are more offensive to
our aesthetic taste than to find in a work of art the severity of some
physical disaster portrayed through every detail of horror. Dante
flashes on us the starvation of Ugolino in a few trenchant strokes.
When a Gerstenberg, in his tragedy of Ugolino, wrings out every
detail of the catastrophe to the last drop, telling us precisely how
first Ugolino's two sons, and after them their father, were done to
death by starvation, we feel at once that the subject, as thus
handled, is entirely at variance with the principles of fine art.
(ββ) We shall, however, find that the condition of life which offers
the strongest contrast to that we have described as the idyllic state,
we will call it the generally civilized life[387], presents, though on
other grounds, difficulties to an ideal exposition which are equally
serious. In a Culture-State the complexus of social wants and labour,
of interests and all that may go to satisfying the same, is throughout
and in all its comprehensiveness completely evolved. Every individual
here is immersed in an infinite network of relations with other units
of the whole, and with so much loss to his complete independence.
What he himself requires for himself is either nothing at all, or only,
in a quite insignificant fraction of it, the result of his own labour: add
to this the tendency of all a man's normal activities is to become
more and more mechanical. We find, too, at the heart of this
industrial development and the interchange of employment and
rejection of human labour which it implies, on the one hand the
most ruthless conditions of poverty, and on the other a class which,
raised as it is above the bare necessities of existence, stands out in
relief as wealthy, entirely released from all toil for the sake of a
subsistence, able at any rate to devote individual attention to the
finer interests of life and its pathetic contrasts. No doubt the
possession of such a superfluity may create an impression as though
for the favoured few the constant recurrence of a position of
dependence had passed away, and a man is just so much the more
released from the accidents incidental to property because his hands
are at length free from the grime which soils them in securing it. But
such a consolatory reflection will never make a man thoroughly at
home in all that immediately surrounds him in the real sense that
such is the garland of his own labour. For he is the centre of that to
the upraising of which he has not himself been instrumental; it has
come there out of that provision store which was already full without
him, which quite other persons and for the most part in a quite
mechanical and, therefore, formal way have provided, and to which
he is only introduced after a long series of effort and struggle wholly
strange to himself.
(γγ) We are consequently led to the conclusion that it is rather a
third type of human society, a society which we may place halfway
between the idyllic golden age and the burgher State in its fully
developed industrial form, which is most fitted to be the subject
matter of ideal art. We have already analysed this state of society in
another connection under the description of the heroic and pre-
eminently ideal world-condition. The heroic age is no longer
restricted to that idyllic garden of spiritual attenuation, but includes
within its borders passions and aims of deeper moment; and yet
withal that which in the circle of the individual life touches closest
the satisfaction of each man's immediate wants is still the entire
product of his own activity.
Moreover, the means of nourishment such as honey, milk, and wine
are less complex and consequently lend themselves more readily to
ideal treatment[388]. A diet which includes coffee, brandy, and such
like luxuries is associated in our minds with countless industries
which are necessary to their preparation. Our heroes, on the
contrary, kill and roast their own food, break in their own chargers,
are the makers to a considerable extent of all their household gods;
ploughs, armour for defence, shields, coats of mail, swords, spears,
all are either the work of the possessor, or are made directly under
his supervision. In a condition of life of this kind a man necessarily
feels that in all the things he makes use of, and in all that encircles
him, he is in touch with something produced by himself; that in
contact with external objects he is in contact with his own substance
rather than with objects which emanate from a world strange to
himself and outside that in which he is himself master. It is, of
course, assumed that all the energy he expends upon working up
the material into forms adapted for his use is not so much
troublesome labour, but a work which, through the satisfaction it
brings him, falls easy from his shoulders, a work, in short, which he
can carry over every obstacle to success.
We find a society of this type in Homer. Agamemnon's sceptre is a
family staff which his ancestor himself shaped from the block and
left as an heirloom to his descendants. Odysseus put together with
his own hands the mighty bed he shared with Penelope; and if the
famous weapons of Achilles are no work of his own we only find the
various and interfused array of his own activities abated that a god,
Hephaestus himself, may provide them at the request of his mother
Thetis. In a word, we meet everywhere the youthful delight in novel
discovery, the freshness of personal possession, the victorious sense
of enjoyment. Everything is in its place and at home, in everything a
man discovers the energy of his own sinew, the adroitness of his
own hand, the cunning of his own spirit, or somewhat that follows
from his own courage and bravery. In this way, and by this alone,
the instruments which satisfy our human sense are not as yet
relegated to a merely external relation, but men have before them
the living process of the instruments themselves, the vital
consciousness of the human worth they attach to them; and they
find it there inasmuch as for them they are not mere lifeless things
or things which habit has made lifeless, but creations impregnated
with their own energies. And for the same reason we find here an
idyllic condition of things, it is true, but not in that restricted sense
of the term that the Earth and her streams, seas, forests, and cattle
supply to mankind their sustaining substance, while man himself is
only visible to us as a passive creature limited by the active powers
which support him and their enjoyment. Rather we already see
within this morning-time of human life deep interests at work, in
relation to which the great world itself is but a subordinate realm,
the ground and the instrument for bringing into being the higher
aims which are present, as a ground and environment, however,
over which that harmonious concord, yet withal independence, of
both sides of our human world prevails; and which does prevail in
the sight of all for this reason that everything there exists as the
product and for the use of human life, is at the same time the
creation and enjoyment of the man who creates and enjoys its
use[389].
To apply such a mode of artistic presentation to material borrowed
from more recent times, whose completed culture offers the
strongest contrast to the heroic age above-mentioned, is always
beset with extreme difficulty and liable to failure. Yet for all that
Goethe in his "Hermann and Dorothea" has furnished us in this
respect with an admirable masterpiece. Here an attempt will only be
made to elucidate a few significant points by contrasting the same
with a composition of similar type. Voss, in his famous romance
"Louise," had depicted on much the same idyllic lines our human life
and activity in a quiet circle of narrow range, if also marked with
independent characteristics of its own. The country parson, the
tobacco-pipe, the dressing-gown, the garden-bench, and finally our
coffee-pot, have all of them here important parts to play. Coffee and
sugar are, however, products, which are really here out of place;
they belong to an entirely different world[390] throughout associated
with all the varied ramifications of commercial and textile industries.
This circle of country life is consequently not self-inclusive. In the
beautiful picture of "Hermann and Dorothea" we are, on the
contrary, under no necessity to demand such a consistency. As we
already have pointed out in another connection, we find interwoven
with the main threads of this poem, which is, no doubt, in its
prevailing atmosphere entirely idyllic, the great political interests of
the time, the struggles of the French Revolution, the defence of the
Fatherland, asserted in a worthy way no less than with decision. The
more limited scope of family life in a little country town is not so
presented us as a whole which can even possibly remain in total
ignorance of that mighty wave of the great world under stress of a
real cataclysm of events, which is the view we are given of the
pastor in the "Louise" of Voss. In Goethe's poem we have, on the
contrary, by means of the interfusion of these great world-
movements, within which the idyllic characters and events are
portrayed, the picture of a life with a typical character of its own set
in the frame of a world of more significant content; and the
apothecary, who is here presented as the out-and-out Philistine, and
who merely lives within the more narrow borders of that country
life's surroundings, affected by that only, is excellently sketched for
us with the good heart, but at the same time peevish isolation,
which we find so natural. Add to this, in that which most closely
touches the life of the characters thus portrayed, we find a particular
emphasis laid on the fundamental aspect of this idyllic life as
previously indicated in our former discussion of it. To mention one
point only, we may observe that the host does not by any means
drink coffee with his guests, the parson and the apothecary; on the
contrary, to cite a line or two:
Carefully brought in the mother the sparkling and glorious red-
wine,
Poured in the clear-cut glasses, with rimlets all polished of
pewter,
Brought in the green-coloured rummers, those goblets most fit
for the
Rhine-wine.
They drink in the fresh air what has been grown at home, of the '83
vintage, and withal in glasses that, as home-made, are just the right
ones for Rhine-wine. A few lines further on our fancy is yet further
kindled with the "streams of the Rhine river and its dearly-loved
banks," and we are even introduced to the vineyard of the host
behind the house itself; and, in short, there is nothing to arrest our
attention outside the typical circle of a self-contented life which of its
own bounty provides for its wants.
(c) In addition to both these types of human environment we must
mention yet another in close association with which we all
necessarily live. It is no other than the universally prevailing spiritual
surroundings of our life whether they be religious, legal, or moral,
the organization of the State, that is to say, the constitution of the
government, the judicial institutions, the family, the institutions of
both public and private life, and all other social relations. For the
ideal character is not merely to be portrayed in its relation to all that
satisfies material wants, but as itself a focus of spiritual interests. It
is certainly true that all that is truly substantive, divine, and
essentially necessary in all these relations is fundamentally an
envisagement of one reality. In the objective world, however, the
forms under which this reality is manifested are various, and they
are, one and all, involved in that which is wholly contingent in
particular examples, and the conventional usages which are only
valid for definite periods of time and distinct nations. In this variety
of form all the interests of men's spiritual life receive an external
embodiment of reality, with which every man is confronted in the
customs, usages, and habits of society. Every man thereby, in
addition to possessing a self-exclusive individuality of his own,
becomes, in virtue of his association with such spiritual realities,
even more a member of a whole cognate with and vital to himself
than as a unit of that external world of Nature with which he is
similarly conjoined. Speaking generally, we may attach to this
spiritual association, of human life very much the same terms and
significance we have already discussed in the foregoing sections;
consequently we will for the present pass over the more detailed
consideration of it, whose most important features will apply more
strictly to another aspect of our inquiry, and will then be more
appropriately discussed.
3. THE EXTERNALITY OF THE IDEAL WORK OF ART IN ITS
RELATION TO A PUBLIC
It is therefore necessary that art, as the representation of the Ideal,
must embody this Ideal in all the relations to external reality we
have above described, and thereby associate the inward possessions
of character with the objective world. A work of art, however much
in form it may be a self-including and harmonious world by itself,
exists none the less as such an object, both real and particular, not
for itself but for such as behold and enjoy it, that is the Public.
Actors, for example, in the representation they give us of a particular
drama do not merely enter into converse with one another, but
appeal directly to ourselves, their audience; and it is equally
important that they make themselves intelligible under both these
aspects. Every work of art is in fact a direct appeal to the
intelligence of everyone who confronts it. Now it is indeed true that
the real Ideal, as envisaged for us in the universal interests and
passions of its gods and men, is so far intelligible to everyone as it
gives us a view of its characters within some typical external world
of customs, usages, and everything else that characteristically
distinguishes it. But the condition of art we have above formulated
makes it further necessary that this element of external reality is not
merely one with which the characters thereby represented are
harmoniously associated, but must be also one within which we
ourselves to whom the work is addressed feel equally at home. The
appropriateness of the external environment to the characters
enfolded within it must apply with equal force to our own attitude of
mind in regarding both. But it so happens that from whatever period
of the world's history the subject-matter of a work of art may be
borrowed it will be sure to contain essential features, which are quite
distinct from those which specifically determine other nations and
periods. In other words artists of every description, whether they be
poets, painters, sculptors, or musicians, select subject-matter from
the Past, which in their particular state of culture and intelligence,
ethical customs, usages, and the form of their government, differ
from the civilization of the times they live in. Moreover, as we have
already observed, this return upon the Past possesses the
considerable advantage that in having thus recourse to memory
instead of being face to face with all the facts of the present, there
is an appreciable diminution of the material from which the artist
selects his subject, and this he cannot readily dispense with. At the
same time the artist belongs only to his own century, and it is in the
ethical customs, modes of conception, and generally the intellectual
outlook of that he lives. The Homeric poems Homer, to take him for
once as the individual creator of both "Iliad" and "Odyssey," may
have actually lived through or he may not; but in any case they are
at least four hundred years later[391] than the time of the Trojan
war; and further a period twice as long separates the great Greek
tragedians from the days of the ancient heroes, who, as translated
into the atmosphere of their own time, form the subject-matter of
their poetry. It is just the same in the case of the Niebelungenlied
and the artist who finally fused together the various saga which that
poem contains into one homogeneous work. We may no doubt
admit that the artist finds himself entirely on congenial ground when
dealing with everything truly pathetic, either in the history of gods or
men; but the external and actual conditions of that ancient world,
whose characters and actions he endeavours to portray, have altered
in essential features and become consequently strange to him. And
further than this a poet creates for the sake of a Public, and
primarily for his own nation and his time, both of which should be
able to enter into such a work of art with intelligence, and feel at
home in it. The most genuine works of art no doubt assert a further
claim to immortality, a hope that they may continue to be a source
of delight to all times and nations. But even in the case of works of
the highest class it is none the less true that nations and times
situated far away from those which produced them can only fully
apprehend them with the assistance of an extensive apparatus of
geographical, historical, and it may be even philosophical knowledge
and the results of much critical investigation.
Bearing in mind these fundamental, and to some extent
incompatible differences which characterize the various points of
view from which a work of art must be regarded, the question arises
what kind of form relatively to its external framework of locality,
custom, usage, and generally any and every condition of religious,
political or ethical significance a particular work of art should receive.
Should an artist suffer his own times to pass from his mind
altogether, and attempt only to secure the substantial appearance of
the Past and what actually then existed, so that his work become
simply a true portrayal of that; or is he not merely justified, but
rather under an obligation, to pay an exclusive attention to his own
nation and the life around him, elaborating his work with express
regard to the principle that it should stand in harmonious relation to
his own times? Or, to put the same thing in rather more technical
language, we may propound the problem thus: Is the subject-matter
of a work of art to be objectively valid in its content as one entirely
appropriate historically considered, or should such matter be treated
subjectively, that is, in complete subordination to the artist's
personal standpoint relatively to the culture and social conditions of
his own time? We would rather observe that both these positions, if
thus pressed unduly, land us in extreme conclusions equally false;
and we propose now to examine them briefly that we may by their
means elucidate a more satisfactory theory.
And we would consider three fundamental aspects which this
problem suggests. We will first examine what is implied in the above
subjective assertion of the particular culture of the artist's own time;
secondly, there is the question what may be regarded as exclusively
and objectively true when we refer to the Past; thirdly, we have to
consider what may still be objectively valid in the true sense, though
we still have a representation and appropriation of material
borrowed from a time and nationality foreign to that of the artists.
(a) Now to start with, if we consider this purely subjective assertion,
it is obvious that when we press the position closely we are finally
driven to exclude the objective embodiment of the Past altogether,
and to maintain that artistic representation is exclusively concerned
with the appearance of present times.
(α) Such a result may be doubtless, under one aspect of it,
presented by mere ignorance of the Past. It is, then, rather the
result of a naïveté, which is unable to feel the contradiction between
the object itself and the representation given, or at least fails to
bring the same to consciousness. Such a form of artistic presentation
is therefore fundamentally due to lack of sufficient culture. We could
hardly wish for a more vivid illustration of this than we find in the
naïve productions of Hans Sachs, who has, no doubt with a vivid
freshness of imaginative vigour and spirit, as we may truly say,
domesticated among us[392] our dear Lord and Father God no less
than Adam, Eve, and the rest of the patriarchs. Here, for example,
God the Father is portrayed as teaching a school in which Cain, Abel,
and the rest of Adam's children—are the pupils, precisely as any
pedagogue of the time might have done. He catechizes them upon
the ten commandments and the Lord's Prayer. Abel knows his lesson
as a pious and good boy ought to. Cain on the contrary behaves and
replies to his teachers as only naughty and wicked boys would think
of doing; and when it is his turn to repeat the commandments turns
them inside out: thou shalt steal, thou shalt not honour thy father
and mother, and so forth. A representation of much the same crude
simplicity having for its subject the tale of our Lord's Passion used to
be carried out in South Germany, was then made illegal, and has
since once more been resuscitated. In this Pilate is portrayed in the
character of an insolent, rough, and arrogant official, the common
soldiers much in the same familiar way our own might, offer Christ
surreptitiously a pinch of tobacco; he disdains it, and they flatten it
out on his nose. Vulgarity finds all the more jest in such an incident
for the reason that it wholly conforms to its notions of piety and
reverence, indeed calls up such feelings all the more readily through
its immediate reference to that which it finds in its own world,
thereby making more vivid its own sense of devotional fervour. No
doubt there is a certain justification for this mode of translating, so
to speak, the appearance and form of objective history into modern
equivalents, such as we have found in our literature; and we may
even attach a kind of greatness to the courage of Hans Sachs in
making himself so familiar with God Almighty, and those old religious
ideas that without the least vestige of impiety he could rivet them
deep within the conditions of our most commonplace life. At the
same time such an attempt is none the less a rude intrusion upon
our feelings, and indicates lack of cultivation, inasmuch as it not
merely disallows to the object itself a right to assert itself as it really
is, but forces upon it a mode of appearance so directly contrary to
that which it possesses, that the result can only impress us as an
emphatic caricature.
(β) As an antithesis to the above type of subjectivity we find another
equally supreme asserting itself out of sheer pride in its own culture
under the belief that the views peculiar to its own times, its ethical
customs, and social conventions are those alone worth preservation
or acceptance. Owing to a bias of this kind it is quite unable to enjoy
the content of a work of art until such a form of culture prevails in it.
An illustration of this latter type is the so-called classical good taste
of the French school. Everything that is here attempted must
forthwith be Frenchified, and all that it presents under the form of
any other nationality and more particularly with any reference to the
Middle Ages is voted incorrect and barbarous and is cast on one side
with absolute contempt. Voltaire expressed anything but the truth
when he said that the French have improved the works of the
ancient world. What they have done is to nationalize them; and by
this process of recasting have corrupted them with every kind of
foreign and angular quality of their own that such a taste as theirs
could develop to any extent, requiring as it did throughout a culture
absolutely based on court etiquette, and a conformity to
conventional rule and generalization in both the meaning and mode
of any dramatic work. Indeed, we shall find the trail of this
abstraction of a superfine culture visible in the very diction of their
poetry. Not a poet among them dare venture to use the word
cochon, or add their own nomenclature to spoons, forks, and a
thousand other simple objects. Consequently we have roundabout
definitions and circumlocutions. We cannot have our spoons and
forks; we get instead an instrument of the hand which conveys our
victuals in a liquid or arid state to the mouth; and this by no means
stands alone. And with all its refinement their taste is vulgar to a
degree; for the simple truth is that genuine art, so far from planing
away and polishing its content to one flat and unruffled surface of
generalities, is most of all anxious to set in full relief all that makes
toward the well-defined characterization of life. It is on account of
this very taste that the French can make less of Shakespeare than
any other poet. And when they have attempted to work him up to
their graces they have clipped off from him precisely that portion
which we Germans find nearest to our hearts. For the same reason
Voltaire makes merry over Pindar because he has made the remark,
ἄριστον μὲν ὕδωρ.[393] And, consequently, in their works of art they
find it necessary to make Chinese, Americans, or the heroes of
Greek or Roman antiquity all speak in one tongue and in one
manner—that of their French court. Achilles, for instance, in the
"Iphigenie en Aulide"[394] is nothing more or less than a French
prince; and if we had no name to help us no one could conceivably
discover one particle of Achilles in him. It is true that in the
theatrical representation of this drama he was habited as a Greek,
appeared at least in helmet and coat of mail; but at the same time
his hair was curled and powdered, with broad hips through
poschen[395], with red claws worked on shoes fastened on the foot
with coloured ribbons; and what is more, the "Esther" of Racine was
expressly popular in the time of Louis XIV, for the particular reason
that Ahasuerus, on his first entrance on the stage, copied the
appearance of Louis XIV himself, when he entered the great hall of
audience. No doubt, in this transcript, there was a considerable
admixture of the oriental luxuriance; but a Ahasuerus he was none
the less fully powdered and wearing the royal mantle of ermine, and
followed by a complete retinue of curled and powdered chamberlains
got up thoroughly en habit français with their wigs, their feathered
caps under arm, their vests and hoses of drap d'or, with their silk
stockings and red buckles on their shoes. All that the court and a
select circle of the privileged few were only permitted to see de facto
was here open to all classes alike—the entrée of the king paraded in
the poet's verses. The writing of history in France is not unfrequently
conducted on very much the same principle. That is to say, history
itself and the real objects of history are not the main purpose of the
historian, whose interest is rather concentrated either on giving the
government in vogue a lesson or teaching others how they ought to
detest it. And in the same way there are a host of dramas which,
either expressly throughout their entire content or in passing
episodes, divert the attention to the events of the day; or, if
passages occur in pieces which refer to former times presenting
anything which may bear on matters of contemporary interest, the
parallel or the contrast is deliberately emphasized with every
expression of enthusiasm.
(γ) A third type of this personal treatment by the artist of his
subject-matter may be sufficiently described as the separation of the
same from all genuine artistic form whether it be characteristic of
past or present works of art, a mode of production in fact which
simply presents us with the entirely evanescent colour of "the man
in the street" in his ordinary everyday action and vocation without
adding aught to the same. In other words we may describe it as the
bare counterpart of what the man of commonsense is conscious in
the prosaic facts of life, that and nothing more. In such an
atmosphere of prose no doubt everyone finds himself at home
readily enough; or rather, he will only not find himself at home who
takes up such a work with some definite conception of that which
the very conditions of a work of art demand, and consequently is
aware that it is precisely from this type of handling that Art
undertakes to liberate us. Kotzebue, in his day, obtained all his
popular effects through compositions of this kind, which aimed at
nothing else but letting the general public both see and hear life's
troubles and vexations, the pocketing of silver spoons, the risking of
the pillory, or, to take particular characters, parsons, chamberlains,
ensign-bearers, secretaries, and cavalry-majors, in their naked
colours. Everyone might here recognize his own household, or, at
least, that of some relation or friend, might see at a glance where in
his own precious circumstances and aims of life the shoe pinched.
An originality of this sort necessarily fails to stir any real sense or
idea of that which is the vital content of a work of art, however
much it may awake an interest for its productions in hearts that are
wont to ask for so little and are so ready to put up with the
commonplaces of so-called ethical reflections. We may conclude,
then, that the artistic presentation of the facts of external reality
under any one of these three types just examined is subjective in a
one-sided way, that is to say, it wholly fails to present us with any
adequate form of that objective world as it really exists.
(b) We next propose to examine a mode of presentation the reverse
of the above, one which endeavours to restore us the characters and
events of the past so far as may be with every local detail of their
former environment no less than any and every ethical or other
particular characteristic which formerly distinguished them. We
Germans have particularly come to the front in this class of work. As
a rule we are, in striking contrast to the French, the most
painstaking recorders of all that is peculiar in nations other than our
own, and consequently make fidelity to the characteristic usages,
dress, weapons, and all such antiquarian detail appropriate to
particular epochs and localities a first requisite of our art. Add to this
we have the necessary patience to put ourselves to no end of
trouble in the way of hard study in order that we may thoroughly
enter into the modes of thought and perception which belong to
foreign nations and centuries distant from our own, and make
ourselves thoroughly conversant with all their peculiarities. This
power of looking at facts from many and diverse points of view in
order to both apprehend and comprehend the spirit of every kind of
national existence makes us not merely tolerant in our art towards
all that strikes us as exceptionally strange in foreign customs, but
clamorous even to a painful degree in our insistence that we have
before us accurate correspondence with objective truth down to the
most insignificant detail. The French are, no doubt, full of resource
and energetic, but, however highly educated and practical men they
may be, such qualities do not increase, but rather diminish the
patience which they possess for quiet and exhaustive study. Criticism
is always of first importance with them. We Germans, on the
contrary, are by nature inclined to accept any picture of real truth for
what it is, and particularly this is so with foreign works of art. From
whatever part of Nature's storehouse such may come, whether it is
plants or other creations of foreign growth, implements of any kind
or form, dogs and cats, even absurdities, we accept them all
genially; and the result of this is we are able to be on excellent
terms with modes of thought the most removed from our own, ay,
sacrificial customs, legends of the saints and all the extraordinary
follies that go with them, to say nothing of a host of other marvels
equally surprising. And for the same reasons it only appears
essentially rational that in attempting to represent characters in
action we should make their conversation and pursuits conformable
to their own substance, that is to say, in strict accord with the times
when they lived and their own national characteristics, whether
regarded individually or in association with each other.
This fundamental idea that the objective truth of a work of art is
established by virtue of the type of historical accuracy above
described has obtained currency in comparatively recent times,
mainly, that is to say, since the literary work of Frederick von
Schlegel. From that time the importance of a first principle in literary
criticism has attached to it; and further than this, it is asserted that
our purely personal interest should above all restrict itself to the
enjoyment we may derive from historical accuracy of this kind and
the life it thus reproduces. Once accept these hard and fast rules
and the conclusion is obvious that we are allowed no additional
interest of any superior quality which an enquiry into the essential
significance of any artistic content may or may not provide for us
any more than we are permitted to derive any interest more vital to
ourselves from aspects of such a work directly associated with the
culture and aims of our own times. It is much on these lines that we
find also in Germany, where the enthusiasm of Herder in this
direction started a closer attention on all sides to the "Volkslied," a
poetic inundation of national folk-songs imitating native tones of
every sort of nationality whether it be the Iroquois, latter-day Greek,
Lap, Turk, Tartar, Mongol, and many another; and, of course, it is
assumed to be indicative of nothing less than first-rate genius[396] to
possess the power of thus diving into the ways and ideas of other
folk, and converting all we discover into poetry. At the same time it
is clear that however completely your poet may work his way into
and emotionally realize all this strange kind of world, it remains and
must continue to remain for that public to whose enjoyment these
songs are addressed as something very much aloof from it.
The truth is that such a theory, if pressed to its abstract logical
conclusion, limits its boundaries solely to the truth of history in its
formal accuracy, and by doing so neglects all consideration of the
nature of Art's content and questions relative to its essential
significance, just as it disregards every aspect of it in which the
culture and resources of modern thought and contemporary life are
asserted. But it is as impossible to detach ourselves from the truth
implied in this theory as it is from equally important truths which it
neglects; all equally claim satisfaction, and imperatively force upon
us the necessity of finding a further solution in which the claims of
historical truth may be reconciled with these rival aspects of truth in
a very different way to that just examined. And this brings us to the
third question we proposed as to the nature of that objectivity and
subjectivity which can be fully sustained together as the reality to
which a genuine work of art conforms.
(c) The point of essential importance which we should before all
others wish to emphasize here is this, that no one of those various
aspects of truth we have above indicated should be allowed a
predominant significance such as would impair the relative force of
the others; and, further, or rather notwithstanding this, historical
accuracy pure and simple in external matters, such as local
conditions, customs, usages, and social institutions generally, must
receive in a work of art their due place, if a subordinate one, it being
only right that the interest of mere historical truth should give way
before that of a vitally true and imperishable content for the present
no less than the past.
We cannot, perhaps, do better by way of explaining what we
consider to be the true form of artistic representation than by setting
up in contrast a few examples of some we take to be defective.
(α) Now, to start with, the presentation of the characteristic features
of a given period may be entirely just, accurate, and impregnated
with life, nay more, wholly intelligible to a modern audience, and
notwithstanding fail to escape the ordinary atmosphere of prose,
and present us with the real substance of poetry. Goethe's "Götz von
Berlichingen" will alone furnish us with notable illustrations of this
defect. It is only necessary to open the book at the first scene,
which introduces us to an inn near Schwarzenberg in Franconia; the
dramatis personae are Metzler, and Sievers sitting at a table, two
grooms by the fire, also the landlord.

Sievers. Another glass of brandy, Hans, my boy, and good


Christian measure.
Landlord. You carry a glass that is never full.
Metzler. [Aside to Sievers.] Tell us that once again about
Berlichingen; the Bambergers are in a pretty fume out there; ay,
black as thunder (etc.).
The same kind of thing we find in the third Act.
George. [Enters with a gutter-spout.] There you have lead and
to spare; spot the target with but one half of it, and devil a soul
shall get off, who is like to say to your Majesty, that's a miss this
time[397].
Lerse. [Aloud.] A fine piece of metal.
George. The rain may take another road for all I care; a brave
knight and a real good rain get through most things.
Lerse. [Pours into glass.] Hold the spoon. [Goes to the window.]
There's one of those imperial cockades prowling about with his
musket; they believe we have aimed a point too far. He shall
have a taste of my bullet, hot too and fresh from the pan.
[Loads.]
George. [Drops the spoon.] Let me have a look.
Lerse. [Fires.] There lies the fool (etc.).

All this is exceedingly vivid, intelligible, depicted in perfect keeping


with the situation and the characters portrayed. Yet for all that these
scenes are both trivial to a degree and essentially prosaic. All we get
from either the matter or the form is just the ordinary man's way of
seeing things and reality as it appears to him or rather all of us to
some extent. We find the same tendency in many another of
Goethe's youthful productions, which no doubt were deliberately
directed against everything which previously had passed for the rule
of the guild, and which sought for their most impressive effect by
means of the nearness made clear to ourselves, an impression
gained by the extraordinary grasp with which the poet's imagination
and feeling seized upon everything. But the nearness was itself too
near, and the vital content in part so petty, that such compositions
ran constantly into mere triviality. We are most conscious of this kind
of triviality in dramatic works when we see them on the stage; it is
then that after being worked up to some excitement by all the
concomitants of a theatrical performance, lights, well-dressed folk,
and the rest of it, we expect to see something more than a couple of
peasants, and troopers and a glass of schnapps thrown in[398]. This
phase has mainly found its admirers in readers; it never had a long
run on the stage.
(β) If we now consider our subject from an opposite point of view it
may be admitted that we can sufficiently make ourselves acquainted
with and assimilate the historical content of a former mythology and
all that is most strange to ourselves in earlier conditions of state-life
and national custom to secure through such an intimacy with, the
general culture then prevailing a varied knowledge of the past. In
fact, this acquaintance with the art, mythology, literature, cultus, and
usages of antiquity is the starting point of our present system of
education. Every schoolboy knows something about the gods and
heroes of Greece and the prominent characters in ancient history. It
is therefore quite possible, in so far as they really enter into the
imaginative life of our own times, that we may find enjoyment in the
imaginative representation of such characters and interests. It is
further impossible to predict whether or no such an intimacy may
not be eventually carried equally as far in the case of the Indian,
Egyptian, and Scandinavian mythologies. We may further observe
that in the religious conceptions of all these peoples the Universal
God is presented. The determinate form, however, of such
conceptions, that is to say, the particular gods of Greece or India,
are no longer true for us as so personified. We do not believe in
their existence, and the pleasure we take in them is derived from
their appeal to our imagination. For this reason they stand entirely
apart from our deepest emotional life, and we can imagine nothing
more empty and cold than such exclamations we hear only too often
in opera: "O ye gods!" or "O Jupiter!" or even "O Isis and Osiris!"
And the folly of it all reaches its height when we have the wretched
saws of oracular wisdom thrown in—and the opera can seldom get
along without them—a position of dignity which nowadays for the
first time in tragic drama is occupied by pure folly and clairvoyance.
The same criticism applies with equal truth to all other historical
material relating to national customs, laws, and the like. Such
historical fact is excellent in its way, but it belongs to the past; and
when it has once ceased to have anything in common with present
life it necessarily ceases, in spite of all our knowledge of it, to belong
to us. We have, in short, no interest[399] in what has passed away
on the mere ground that it once existed. What is historical can only
truly be said to belong to us when it is the possession of the nation,
to which we ourselves belong, or when we are able to regard the
present as in a general way casually connected with the events in
question, to whose continuous series the characters or actions
represented are united by a bond of essential membership. For if we
carefully consider the matter we shall find that the mere fact of
being formerly bound together with the same external environment
and people to which we ourselves belong is not sufficient—rather the
very part of our nation must present features in still closer relation to
the conditions, life, and existence of our own times. To take an
example of what we mean, we find ourselves in the Niebelungenlied
geographically on a soil that belongs to us still, but the Burgundians
and King Etzel are so absolutely cut off from all that touches our
present civilization and every interest which is now coincident with
patriotism that, without borrowing anything from the learning of the
subject, it is but simple truth to say we feel infinitely more at home
in the poems of Homer[400]. Klopstock, no doubt, in his enthusiasm
for everything that concerned the Fatherland, was prompted to
substitute his Scandinavian gods for those of Hellenic mythology;
but, for all his zeal, Wotan, Walhalla, and Freja remain mere names
for us, which appeal to our imaginations and patriotic emotions even
less than Zeus and his compeers of Olympus.
The point above all we desire to emphasize is this. Works of art are
not composed primarily for the mere student or the professor, but
with the express purpose that they shall be intelligible on their face,
and a source of enjoyment without any one having to undertake first
a circuitous route of extensive historical investigation. For Art is not
addressed to a small and select circle of the privileged few, but to
the nation at large. What, moreover, is generally valid for a work of
art applies also to the external form of the historical reality therein
portrayed. Such exposition also must express itself with clearness
open to the common apprehension requiring no considerable
research to make it intelligible, must be clear to ourselves as
representations of our century and our own people, so that we may
be able to find ourselves entirely at home in it, and not have before
us a world foreign to that we live in, if not actually unintelligible.
(γ) Considerations such as the foregoing have already brought us
within reach of the truer conception of the objective truth of art and
the mode under which it assimilates the material of past history. We
propose now to offer further illustrations in support of the same.
(αα) And we may start at once by drawing attention to a
characteristic which is common alike to the genuine national poetry
of all peoples and in every period of past history, namely, that the
historical and formal aspect of that poetry is entirely national, that is
to say, it retains nothing incongruous to the people for whom it is
composed. This is a feature shared alike by the great epics of India,
the Homeric poems and the Greek drama. Sophocles never made his
Philoctetes, Antigone, Ajax, Orestes, Œdipus, his choregi and
choruses speak in the speech and manner that would have been
entirely appropriate to their own times. The Spaniards have written
their romances of the Cid under the same guiding principle. Tasso in
his "Jerusalem Liberated" celebrated the universal interests of
Catholic Christendom. Camoens, the poet of Portugal, depicted the
discovery of the seaway to the East Indies round the Cape of Good
Hope, and all the infinitely various adventures of the sea heroes that
made it possible; and these acts of daring were the acts of his own
people. Shakespeare threw into dramatic form the tragic history of
his own country and even a Voltaire wrote his "Henriade." Far indeed
have we Germans strayed from the path thus marked for us when
we hope to work up into national epics histories remote from our
own, which carry no longer with them a national interest of any
kind. Bodmer's "Noachide" and Kloptock's "Messias" have started a
new fashion of their own, ay, as they have overturned that old one
which taught us that it redounds to a nation's glory to have its
Homer, to say nothing of its Pindar and Sophocles. Those biblical
stories, it is true, present points of special affinity with the national
imagination owing to our close acquaintance with the old and new
Testaments; but the historical material in its association with ancient
custom and the like remains for all that only intelligible to the
savant, and all the most of us can pick up from such epics is the
prosaic interfusion of events and characters, which, in such a
process of translation, have merely some novel form of speech
thrust into their mouths, and the final result can only impress us as
hollow and artificial.
(ββ) At the same time art cannot be restricted wholly to material
borrowed from one nation. And as a matter of fact the more
nationalities have come into contact with one another, the more their
poets have looked abroad among all nations and times for the
subject-matter of their poems. But however this may be the case, it
is none the less an error to suppose that the mere fact that a poet is
able, so to speak, to live into times aloof from his own at once
stamps him as a man of creative genius. It is more to the point to
recollect that this historical framework must, in the co-ordination of
a poem, be retained only in strict subordination, and as a means of
expressing that which permanently belongs to our humanity.
Precisely in this way the Middle Ages long ago borrowed much from
antiquity, but so absolutely suffused it with the content of its own
epoch that, in this respect verging on the opposite extreme, we
really get nothing from that antiquity but the bare names of
Alexander, Aeneas, and the emperor Octavius.
First in importance, then, is this permanent condition of true art,
immediate intelligibility. It will be found an invariable truth that all
nations have emphasized precisely that in this life which was most
agreeable to their artistic sense, their desire being always to find
what was most intimate to themselves, their life and existence in
their art. It was this independent flavour of patriotism which
Calderon worked into such characters as his Zenobia and Semiramis;
and Shakespeare in the same way was able to imprint upon the
most varied subject-matter the hall-mark of his English ancestry,
although he knew how to preserve along with it the essential traits
of historical characters belonging to nations foreign to his own, the
Roman for example, in a far profounder degree than was possible to
the Spanish poets. Even the Greek tragedians had their eyes
constantly directed to the actual conditions of their times and the
particular city in which they lived. The "Œdipus Colonus" in its local
references is not merely in a peculiar way associated with Athens
but, by virtue of the fact that Œdipus dies in this locality, at once
indicates him as the future Preserver of that city. In somewhat other
associations the "Eumenides" of Aeschylus is, owing to the decisive
sentence of the Areopagus, marked by an interest of more vital
interest to the Athenians[401]. On the other hand Greek mythology,
despite all the varied and oft repeated use that has been made of it
since the revival of the arts and learning, has never fully come home
to the general sense of modern emotions and in various degrees in
the plastic arts and still more in poetry, despite its very extensive
influence here, has failed to arouse real enthusiasm. No one thinks
now of writing an ode to Venus, Zeus, or Pallas[402]. Sculpture, it is
true, can hardly get along even in modern times without the
assistance of the Greek Pantheon, but for that very reason it is
mainly only appreciated by and intelligible to a select circle of
cultivated men who are either connoisseurs or critics. As one of
these, Goethe spared no pains in his endeavour to arouse in
contemporary artists an enthusiasm which should go so far as to
imitate the pictures of Philostratus, but for the most part his pains
were thrown away. Such examples of the work of antiquity, on
account of the very flavour of past time and a life that has vanished,
which clings to them, remain as strange to contemporary art as they
do to the general public. As a contrary example of real success on
the part of Goethe we may instance the far profounder insight he
has shown us during the later period of his poetic activity in fusing
by means of his "Westöstlicher Divan" the colour of the East with the
poetry that really appeals to us to-day, giving to the Orient, in fact,
its modern embodiment. In this process of assimilation he has
clearly shown himself alive to the fact that he is a poet of the West
and a German as well, and consequently while preserving the
fundamental key-note of the Oriental spirit in his delineation of
characters and situations to which it was appropriate, was able at
the same time fully to satisfy the claims of the modern spirit and
those of his own personality. Subject to such reservations it is
undoubtedly in the province of a poet to borrow his material from
remote regions, past centuries and foreign nations, maintaining in
their broad and most characteristic outlines the historical form of
ancient mythology, custom, and institution. At the same time he will
take care to utilize such forms only as the external frame of his
delineations, never permitting the essential content of such
productions to fall into any disharmony with the profounder instincts
of his own native world. As the most extraordinary example of this
Goethe's "Iphigenia" still stands without a rival.
In their relation to such a transformation the several arts dispose of
their material very differently. In the love-poems of lyrical poetry
very little use is made of local associations depicted with historical
accuracy. The emotional situation and the movement of sentiment is
here the main thing. We receive, for example, in the sonnets of
Petrarch a very small substratum of natural fact relatively to Laura,
hardly anything more than her name, which might just as well have
been another. Of local interest we get the barest scraps, and that
entirely of general significance, such as the existence of the fountain
of Vaucluse and things of that kind. Epical poetry, on the contrary,
requires the greatest detail in its natural descriptions, and we are
most readily pleased with their historical truth, provided always that
the picture is both clear and intelligible. The use of the external truth
of historical facts presents the greatest pitfalls to dramatic art, more
particularly in reference to its theatrical presentation, where
everything is directly addressed to an audience, or purports to strike
upon sense with the vividness of life, so that we are willing to
recognize and entrust ourselves therein with equal directness. Here
the delineation of historical truth in its external aspects must for the
most part be of subsidiary importance, in fact retain little more than
the framework of it. It must, in short, remain true to that natural
relation we find in love-poetry, in which at the same time that we
are able completely to sympathize with the feelings expressed in
every way another name is given to the beloved than that of the
lady most loved by ourselves[403]. It does not here in the least
signify whether or no our critics fail to discover absolute precision in
the picture presented of the particular manners, culture, and
emotional expression of the time. In Shakespeare's historical dramas
we find a great deal that remains strange to us and of no
considerable interest. We are contented enough on a mere reading,
but in the theatre our enjoyment ceases. Critics and men of learning
no doubt stick fast to their idea that such exquisite scraps of genuine
history should be presented on the stage on their own merits and
come down severely upon the wretched taste of the public, when it
lets us see how bored it is over such things. Unfortunately a work of
art and the direct enjoyment we receive from it is in no sense
particularly for critics or savants, but for this very public. Critics have
really no reason to give themselves such airs. They are after all but
units of this public, and the mere attention to historical detail can be
of as little serious interest to them as any other members of it. For
this reason the English nowadays in their theatrical performances
only include such scenes from the Shakespearean drama which
require nothing further to make them clear and intelligible, being
happily free from the pedantry of our aesthetic professors who held
that all that is most remote in historical incident from the
apprehension of an average audience should be thrust before their
eyes. It follows also from our view of the matter that when foreign
dramas are reproduced on the stage the public is clearly entitled to
have them considerably remodelled[404]. Even that which is excellent
in itself may require some alteration. No doubt it will be contended
that what is essentially first-rate art retains its excellence for all
times; but a work of art has also an aspect of transitory worth,
which yields to the years, and it is this of course which requires
remodelling. As people change so too the sense of beauty alters;
and it is important that the particular public, before whom any work
is represented, should feel themselves quite at home in the whole of
such a work including that aspect which derives all its significance
from external history.
It is this conditional acceptance of historical truth which at once
explains and justifies that which is generally known in Art as
anachronism, and which is usually attributed to artists as a serious
defect. Primarily such examples of anachronism will be found to
attach to matters of purely external interest. That a Falstaff should
talk about pistols is no matter of consequence whatever. The case is
more serious when we have a violin placed in the hands of Orpheus,
for here the association of such prehistorical times with an
instrument so essentially modern as the violin, one which everybody
knows was not invented in those days, presents too glaring a
violation of truth. For this reason it is now the fashion in theatrical
circles to bestow incredible pains and care upon the historical
accuracy of details in the matter of costume and the getting up of a
piece, as, for example, the infinite trouble lavished upon the
historical procession in the "Maid of Orleans."[405] Such efforts are in
the majority of eases lost labour, for the simple reason that they only
concern matters of relative interest or points that might be wholly
passed over. The more important type of anachronisms has nothing
whatever to do with stage costume and all that with which stage
business is concerned, but consists in making characters express
their emotions and ideas, venture upon soliloquies and actions in a
form or of a substance which absolutely contradicts the conditions of
their times and culture, their religious and general preconceptions. It
is common to apply the conception of natural truth to such examples
of anachronism, in other words, to say that it is unnatural for
characters to speak or act otherwise than they would have spoken
and acted in their own days. If we stick, however, too closely to the
logic of this naturalism we shall only land ourselves in further
complications[406]. For an artist, in depicting the emotional life with
all that results from it, and the fundamental passions that belong to
it, being mainly interested in the affirmation of individuality, ought
not merely to repeat that life under its ordinary daily dress; it is
rather his business to show every true manifestation of pathos in the
particular light which best reveals its real quality. The whole object
of his attainment as an artist is not merely to understand what is of
vital significance in the truth he faces, but to be able to give it the
precise form which will best direct our own eyes and ears and heart
to his own discovery. To attain this it is obvious that he must keep in
view the particular culture of his own time no less than all its various
powers of expression. In the time of the Trojan war the kind of
speech in general use, and indeed the whole fabric of social life, was
as far removed from the type of culture which is reflected on us from
the pages of the "Iliad" as the mass of the nation and the pre-
eminent worthies of the royal houses then reigning in Greece were
separated from the fully developed form of ideas and expression
such as arouse our wonder when we read our Aeschylus, or behold
the perfected beauty of the style of Sophocles. A violation of the so-
called "path of Nature" of this kind is in art an anachronism implied
in her laws. The inward kernel of that which she reveals remains
unaffected, but the more developed power at the artist's command,
in revealing and disclosing this essential core of his subject, renders
some change in the mode of its expression inevitable. It is a wholly
different matter when a modification of this kind proceeds so far as
to impose ideas and conceptions of a later form of the religious and
moral consciousness on a century or a nation whose entire spiritual
outlook is opposed to such more recent conceptions. The Christian
religion has gathered in its train forms of the moral life, which were
entirely foreign to the moral consciousness of ancient Greece. That
inward introspection of conscience, for example, ever on the alert to
decide the ethical significance of action, with its accompanying
remorse and repentance, first appears in the moral culture of a more
modern date. The heroic character knows nothing of a repentance
which sets itself in hostility to its past. What it has done it abides by.
Orestes does not repent of his mother's murder. The Furies that rise
out of the shadow of his action pursue him, no doubt; but the
Eumenides are, at the same time, represented as universal powers,
and not as voices that cry out to him from his own conscience
simply. This very heart and substance of a given period of man's
history a poet must master, and only when we find him interfusing
with this central core of reality matter that directly contradicts it is
he guilty of any truly grave anachronism. In conclusion, then, we
may say that it is indeed part of the poet's function to live into the
spirit of past times and foreign peoples, for this substance of their
life, if it be truly such, remains a possession for all time; but to
attempt to reflect with every accuracy of detail all the definition of
that external show now buried beneath the rust of antiquity is
merely the effort of a learning essentially childish, intent on
preserving what is itself shadow rather than substance. No doubt
even in this direction, the truth of general outlines should be
carefully respected, but never to such lengths as would compel art
to forfeit her claim of drawing upon the fiction of her invention, and
the truth of fact with equal impartiality.
(γγ) We are now in a better condition to understand all that is really
implied in the assimilation by art of that which is strange in the
external features of remote history, and the true conception of the
objective life of her creations. A work of art must primarily enclose
for us within its embrace the higher interests of spirit and volitional
power, all that is essentially human, and possesses real weight, the
depths, that is to say, of man's emotional life. The main thing of all
is that this embodied content[407] should transpierce all purely
external conditions of manifestation, should ring, as it were, through
all that is less vital in its significance[408] this fundamental chord of
truth. The real objectivity, therefore, unfolds as from a sheath, the
pathos, that is the substantive content of a situation, unfolds,
moreover, the rich and powerful personality in which the essential
phases of spirit are alive, and find their realization and expression.
For such embodiment all that is absolutely indispensable is a
definition and determination of the real, which is generally suitable
to the object thus defined, and which requires nothing further to
explain it. If we have once got hold of such a form unfolded in strict
accordance with our Ideal principle, then we have a work of art
essentially objective in the true sense, and the question whether
each and every historical detail is justified is of no further
importance. We have before us a work of art which appeals directly
to our inner life, and one which is our own possession. Once
possessed of that, and we may take as much as we please of that
element of the form which lay more closely to periods of life which
have passed; but the eternal foundation is that which appeals to all
men in all places, which is carried forward with a power that never
wanes or fails to influence us, and it does so because the objective
life it reveals is the same that abounds in and overflows our own
souls. That which is merely historical in the appearance is, on the
contrary, the element that vanishes; and, in dealing with works of
art created in days remote from our own, we must do our best to
resolve the discordance, and, indeed, must be fully prepared to blot
out from our vision similar defects in works that spring from our own
times. Thus it is that the Psalms of David, with their immortal
celebration of the Lord in His goodness, and the wrath of His
almightiness, no less than the profound sorrows of the Hebrew
prophets as they face Babylon and Zion, touch men with the same
force to-day as they did of old time: nay, even a moral diatribe, such
as is sung by Sarastro in the "Zauberflöte," may come home to the
hearts of us all, including the sons of Egypt[409], owing to the soul
and vitality which rings through its melodies.
And we may add that every individual to whom a work of art
objective in this, the true sense, is presented, must on his part
discard his own false prepossessions, wherein he merely wishes to
find his own idiosyncrasies repeated. On the first reproduction of
"William Tell," it appears, not a single Swiss among the audience
was satisfied. In much the same way, when the most beautiful love-
songs have been sung, many another, failing to find therein his own
passions reflected, has presumed to think the beauty untrue to life;
just as so many more, whose knowledge of love is confined to the
perusal of romances, have imagined that the love-god would only
then be their immortal possession when they found themselves face
to face with precisely the same emotions and situations their
favourite studies had propounded.

C. THE ARTIST

We have, in this first part of our aesthetical philosophy, examined as


a first step the universal Idea of beauty; we then proceeded to
inquire in what respects it was defective in its existence as the
beauty of Nature, and after thus clearing the way we were in a
position to grasp the complete notion of the Ideal as the adequate
realization of beauty. We developed the Ideal, first, as conceived
abstractly according to the general notion of it, and having
determined that were assisted thereby to elucidate the modes of its
particular manifestations. Inasmuch, however, as a work of art has
its origin in the human spirit it requires the pregnant activity of an
individual life from which it proceeds, and as the creation of the
same exists for others, that is, a Public which is emotionally
Welcome to Our Bookstore - The Ultimate Destination for Book Lovers
Are you passionate about books and eager to explore new worlds of
knowledge? At our website, we offer a vast collection of books that
cater to every interest and age group. From classic literature to
specialized publications, self-help books, and children’s stories, we
have it all! Each book is a gateway to new adventures, helping you
expand your knowledge and nourish your soul
Experience Convenient and Enjoyable Book Shopping Our website is more
than just an online bookstore—it’s a bridge connecting readers to the
timeless values of culture and wisdom. With a sleek and user-friendly
interface and a smart search system, you can find your favorite books
quickly and easily. Enjoy special promotions, fast home delivery, and
a seamless shopping experience that saves you time and enhances your
love for reading.
Let us accompany you on the journey of exploring knowledge and
personal growth!

ebookball.com

You might also like