Software Reuse: Architecture, Process, and Organization for Business Success / Edition 1

Paperback (Print)
Buy Used
Buy Used from BN.com
$59.99
(Save 25%)
Item is in good condition but packaging may have signs of shelf wear/aging or torn packaging.
Condition: Used – Good details
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 97%)
Other sellers (Paperback)
  • All (24) from $1.99   
  • New (1) from $14.72   
  • Used (23) from $1.99   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$14.72
Seller since 2007

Feedback rating:

(1019)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

New
1997-05-22 Paperback New NEW-IT IS BRAND NEW-clean text, tight binding, It is free from any foreign markings.

Ships from: Rockford, IL

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Page 1 of 1
Showing All
Close
Sort by

Overview

'Certainly this book is overdue. Achieving serious reuse is hard, we need all the codified expertise we can get' David Redmond-Pyle, LBMS 'There is still a lot of controversy about whether object-oriented software reuse really pays off. This book provides not only many successful examples from Griss' work at Hewlett-Packard, Jacobson's work at Ericsson, and elsewhere, but also an experience-based approach for repeating the successes. The approach involves not just a class-library silver bullet, but an integrated strategy involving business-case analysis, domain engineering, product line architecting, people and process management, and life-cycle software asset management. A perticularly nice feature of the book is a reuse-oriented tailoring of the Jacobson-Booch-Rumbaugh Unified Modeling Language.'Barry Boehm, TRW Prof of Software Engineering, Director of Center for Software Engineering University of Southern California.'This book tells it as it is: reuse is a business as well as a technical decision that requires engineering discipline and management support. If you are serious about improving your software development productivity and reducing your time to market by making OO work for you, then read this book. You won't be disappointed!'Will Tracz, Senior Programmer in Advanced Technology, Lockheed Martin Federal Systems.'This book is comprehensive in its coverage of the fundamentals of software reuse, the subject that is catalysing the transformation of our industry from a craft to an engineering discipline. I commend Jacobson, Griss and Jonsson for their important contribution to the field.'Paul Bassett, Senior Vice President Research, Netron Inc.—————————————————————————————————————————————————————'How can I incorporate reuse into my complex software development process in order to gain a competitive edge?' This is a question that many have attempted to answer by taking up object technology, with varying degrees of success. In Software Reuse: Architecture, Process and Organization for Business Success, the authors present a brand new, technically innovative, coherent and systematic model for implementing reuse. They have combined their experience in the fields of object oriented software engineering, business engineering and systematic software reuse to create the Reuse-Driven Software Engineering Business (Reuse Business) framework.Software Reuse: Architecture, Process and Organization for Business Success· introduces the concept of software reuse as a business success enabler· describes how the right architecture allows applications and components to evolve gracefully· provides guidelines for implementing software engineering processes· advises on organizational issues such as the structure, transition, day-to-day managment, economics and measurement.Whether you are a software engineer, architect, designer, programmer or manager, whether you are familiar with the concepts of reuse, component-based software engineering, object oriented technology and business engineering or not, you should read Software Reuse: Architecture, Organization and Process for Business Success. In it you will find new ground-breaking information and advice.Ivar Jacobson is the inventor of the Objectory OO method and the Vice President of Process Engineering at Rational Software Corporation. He is intimately involved with the development of UML and a leader in the OO community. He is principal author of two influential books, Object Oriented Software Enginering - A Use Case Driven Approach and The Object Advantage: Business Process Reengineering with Object Technology.Martin Griss is a Senior Laboratory Scientist at Hewlett Packard Laboratories where, as HP's 'Reuse Rabbi', he created the Corporate Reuse Program and led HP's technical contributions as co-submittor of UML to the OMG. He also writes a reuse column for Object Magazine and is active on several reuse program and steering commitees.Patrik Jonsson works at Rational Software Corporation in Sweden as a Senior Consultant where he has been developing the architecture and method of the Objectory process with a current focus on reuse and user interface development. He is a co-author of Object Oriented Software Enginering - A Use Case Driven Approach.

Read More Show Less

Product Details

  • ISBN-13: 9780201924763
  • Publisher: Addison-Wesley
  • Publication date: 6/15/1997
  • Series: ACM Press Series
  • Edition description: New Edition
  • Edition number: 1
  • Pages: 528
  • Product dimensions: 6.93 (w) x 9.56 (h) x 1.21 (d)

Meet the Author

Dr. Ivar Jacobson,Vice President of Business Engineering, is the inventor of the OOSE method, and he is also the founder of Objectory AB in Sweden, which recently merged with Rational Software Corporation. Dr. Jacobson is the principal author of two influential and best-selling books Object-Oriented Software Engineering—A Use Case Driven Approach (Computer Language Productivity award winner in 1992) and The Object Advantage—Business Process Reengineering with Object Technology. He has also authored several widely referenced papers on object technology. One of the most famous papers is his first OOPSLA '87 paper entitled "Object-Oriented Development in an Industrial Environment," which presented the first truly object-oriented method ever published. Ivar Jacobson's use-case driven approachhas had a very strong impact on the entireOOAD industry, and he himself has become one of its "icons." Consequently, he isa frequently invited keynote speaker and panelist, debating OOAD topics withcolleagues and methodologists such as Grady Booch, Jim Rumbaugh, StevenMellor, and Rebecca Wirfs-Brock at major OO conferences around the world.

He is well known for his pioneering work and more than 20 years of experience inusing object methods for the design of large real-time systems. His earlyobject-based design technique has evolved into the international standardITU(formerly CCITT)/SDL.

Dr. Jacobson also regularly serves on the OOPSLA, ECOOP, and TOOLSprogram committees, and he is a member of the advisory board of the Journal ofObject-Oriented Programming.

In 1994, Ivar Jacobson received the first Swedish Computer Association (SCA)award (the Kjell Hultman prize) for "extraordinary achievement in promotingefficiency and productivity in the development and use of informationtechnology."

Martin Griss is a Senior Laboratory Scientist at Hewlett Packard Laboratories where, as HP's "Reuse Rabbi", he created the Corporate Reuse Program and led HP's technical contributions as co-submittor of UML to the OMG. He also writes a reuse column for Object Magazine and is active on several reuse program and steering commitees.

Patrik Jonsson works at Rational Software Corporation in Sweden as a Senior Consultant where he has been developing the architecture and method of the Objectory process with a current focus on reuse and user interface development.

0

Read More Show Less

Read an Excerpt

This is a book for software engineering practitioners and their managers, interested in dramatically improving their software development performance. For many industrial and commercial enterprises, accomplishing key business goals, such as satisfying the customer, achieving time to market with products and services, or controlling costs, have direct implications on the way they choose to develop and use information technology and software systems for competitive advantage. In most of these cases, objects, component based development and software reuse are key parts of their software engineering strategy. Succeeding with industrial-strength object-oriented software engineering requires that the promise of large-scale software reuse be realized in a practical way. This book provides a pragmatic framework for success.

Systematic software reuse

Ever since libraries of shared components were first proposed by Doug McIlroy in 1968, software reuse has been recognized as an attractive idea with an obvious payoff. Building software systems from previously developed, high-quality components certainly saves the cost and time of redundant work and improves systems. For many years, obtaining high levels of reuse has been elusive. Many different technical, process, and organizational issues have blocked progress. But despite pursuit after a variety of other "silver bullets" to improve software development, it remains clear that systematic software reuse and component based development is still one of the most promising ways to significantly improve the software development process.

Most software development organizations move to object technology because engineering managers believe that this will lead to significant reuse. Unfortunately, without an explicit reuse agenda and a systematic reuse-directed software process, most of these object adoption efforts do not lead to successful large-scale reuse.

Why do we use the term "reuse"? No other engineering field uses this term. Instead, the systematic design and use of standard components is accepted practice; many handbooks of hardware components, ranging from motors and gears to chips, are produced annually and studied daily by design engineers. Despite the use of the term "Software-IC" coined by Brad Cox, and component based development as encouraged by Microsoft and others, a software components industry with an associated widespread use of components is still in its infancy. In the future, component-based software engineering will be taught as a standard part of the software engineering curriculum and the word "reuse" will become obsolete; today, we use the term "reuse" to describe the goals of this still emerging area of software engineering.

Over the last ten years, the software reuse and software engineering communities have come to better understand component-based software engineering. In almost all cases of successful reuse, the keys were management support, system and component architecture, a dedicated component group, a stable application domain, standards, and organizational support. Many software engineering books and conferences focus specifically on systematic software reuse and on object technology. Many mention of reuse, architecture, and process- and domain-specific application development, but they differ in their approach to reuse. Some object technology books, including Jacobson's 1992 Object-Oriented Software Engineering (OOSE) book, address certain object reuse issues directly or have significant sections on reuse. Appendix B provides an annotated bibliography of pertinent work.

What is this book about?

This book is directed at bringing us significantly closer to a future in which object-oriented component-based software engineering will become the norm. There is a growing belief that systematic, large-scale reuse, coupled with object technology, is the only way to radically improve the process of software development. Based on our experience with reuse at Hewlett-Packard and Objectory (now Rational), and with our many customers, we believe that substantial degrees of reuse can be achieved only by radically changing traditional software architectures and development processes. First, we are convinced that substantial reuse requires that software must be architected, designed, packaged, and supported for reuse. Architecture here means that systems and components must be structured to support independent development, and later integration and evolution, of components and systems. Second, the software engineering processes, involving specific software development steps, the supporting management and organizational structures, and even the mode of interaction with customers, must be adapted to allow the organization to work effectively with these reusable components. Finally, processes and tools must be integrated into an infrastructure to support the key activities.

Introducing effective reuse into a software engineering business requires a concerted and systematic effort by both management and software developers in order to overcome the business, process, organizational, and technical impediments that often hinder effective reuse. Effort must also be directed at involving customers, users and maintainers early on. While many of these issues and possible solutions are by now well-known in the reuse community, their existence still comes as a surprise to those who adopt object technology and expect it to yield reuse automatically. Without an explicit reuse agenda and a systematic approach to design and process, the desired levels of object reuse will not be achieved.

In this book we develop a coherent model and a set of guidelines that help ensure success with large- scale, object-oriented reuse. Our framework, which we call the Reuse-Driven Software Engineering Business (abbreviated as Reuse Business), deals systematically with these key business, process, architecture, and organization issues.

We believe that both the theory and practice of systematic software reuse and the theory and practice of systematic, model-based, object-oriented software development and business engineering have matured sufficiently for us to develop this new, consistent approach. Our coherent solution merges the best ideas of both fields with our own contributions in the areas of systematic methods, architectures, domain-specific software engineering, and reuse adoption.

Who needs a Reuse-Driven Software Engineering Business?

Any software-producing organization can benefit from the ideas presented in this book. After many years of cautiously viewing object technology as interesting but still emerging, many large organizations have increased their commitment to objects and are investing substantial resources in re-engineering their businesses and reimplementing their supporting information systems. For many businesses, an effective software engineering development strategy is an essential part of their use of information technology to accomplish key business objectives, such as effective use of resources, improved time-to-market, and agile response to market change. They are looking to objects and reuse to provide them flexible, cost-effective implementations, which are based on commercial and their own application frameworks, reusable business components and distributed object-oriented middleware.

To help them achieve their strategic software goals, we provide a clear statement of how large-scale, architected object reuse can help improve the software process. Our reuse business model describes how these software organizations can transition to a reuse-driven business. The full benefits will only be obtained if the software organization:

  • Produces related applications (or significant sub-systems) that are members of a product line or product family;
  • Is willing to make a significant investment to build up reusable architectures, components, processes, and tools; and
  • Is willing to make certain process and organizational changes.

Such an organization is usually feeling increasing pressure to deliver more applications in shorter times, in order to meet more complex customer needs.

The essence of the Reuse-Driven Software Engineering Business

In our discussion, we distinguish the term "the Reuse Business," referring to our generic model or framework, from the term "a reuse business," referring to a particular software organization that is a specialized instance of the Reuse Business. We have targeted our approach to yield significant results for organizations in which the development of mission critical information systems and software products are key to their success. We also address how the Reuse Business may be specialized to a range of organizations that are able to benefit from many aspects of our systematic approach to reuse, even if they are not able or do not choose to operate fully in accord with our model.

In the optimal case, the software development organization is run as a software engineering business. By business, we mean both that the information technology and software engineering goals are key to accomplishing the enterprise business goals, and that as a consequence, the software organization itself is operated as a business, with well defined customer and financial objectives. As a reuse-driven software organization, this organization is engaged in producing multiple, related applications, centered and optimized on the production and reuse of components. These applications commonly form a product-line or product family. As a business, this organization must understand its customers, and serve their needs, while at the same time effectively achieving its profit and expense objectives. Such business tradeoffs are managed using economic, product and process measures.

The Reuse Business involves incremental, architecture-centric, process-driven, domain-specific software development. It also links previously independent projects, introduces new architectures, changes the development processes, requires reusable component management and funding activities, and changes the roles of architects, process engineers, development engineers, and managers. Thus significant organizational change is involved.

The Reuse Business model integrates essential ideas and pragmatic guidelines from our knowledge of systematic reuse and from our experience with the architecture and the development processes used to develop the AXE Telecom switching system at Ericsson, and with reuse architecture, process, adoption, and organization experience gained with Hewlett-Packard's Corporate Reuse Program.

We base our work on Jacobson's use case driven architecture and process modeling frameworks U Object-Oriented System Engineering (OOSE)Jacobson92 and Object-Oriented Business Engineering, described in "The Object Advantage"(TOA)Jacobson94. By so doing, we integrate the key aspects of many successful, but fragmentary approaches to reuse process, frameworks, reuse organization, domain engineering, and domain-specific kits into a coherent model. With this approach, we can relate and optimize all processes (activities and supporting infrastructure) and products (architecture and components) to the business goals of a reuse business.

The Reuse Business extends OOSE to provide support for architecting reuse-oriented applications and components. New constructs support layered, modular architectures, in which application systems are built from flexible, reusable components. Related components are grouped into component systems.

The Reuse Business model applies business engineering to the software engineering organization itself. The Object-Oriented Business Engineering framework Jacobson94 provides a consistent, systematic approach to the organizational and process issues. Business use cases model the key software development processes, component engineering and application engineering. Business use cases model the interaction of persons with the software organization. These models then define the roles of reuse workers, to produce a reuse-oriented software organization structure that meets the needs of specific software development organizations. A business reengineering transition framework and change management techniques are used to systematically restructure a software development organization into a reuse business.

Our experience

Since mid-1993, when the authors of this book first became familiar with each other's work, we have worked closely together on panels, at conferences, at workshops, and in joint research in order to integrate our skills and experiences into the shared vision described in this book. Together, we are uniquely positioned with a wealth of complementary skills. Ivar Jacobson brings the strong architectural perspective and large systems experience of developing the AXE Telecom switching system at Ericsson, and the experience gained with Objectory development and clients. Martin Griss has broad experience with reuse organization, adoption, and technology. Both have extensive experience with systematic software process definition and improvement. Patrik Jonsson joined the work in May 1994, bringing his Objectory process experience to the project, when we decided to make our efforts into a formal collaboration leading to this book.

Ivar Jacobson is inventor of the OOSE method and founder of Objectory AB, Sweden. He is currently VP of Business Engineering at Rational Software Corporation, and was before that VP of Technology at Objectory Corporation. He is a leader in the object-oriented community. He is well-known for his pioneering work and more than 20 years of experience using object methods for the design of large real-time systems. He spent 25 years at Ericsson working on the AXE switching system, where he developed an architecture and software engineering process to support extensive reuse. His early object-based design technique has evolved into the international CCITT/SDL Telecom standard. He is the principal author of two influential books: "Object-Oriented Software Engineering - A Use Case Driven Approach" and "The Object Advantage - Business Process Reengineering with Object Technology," as well as several widely referenced papers on object technology. His work on use case engineering has influenced almost all of the OO methods in use today. He has served on the OOPSLA, ECOOP, and TOOLS program committees.

Martin L. Griss is a senior Laboratory Scientist at Hewlett-Packard Laboratories, Palo Alto, California where for the last 14 years he has researched software engineering processes and systems, systematic software reuse, object-oriented reuse, and measurement system kits. He has a defining role as senior reuse consultant within HP's Professional Services Organization, working with the Object-Oriented Solutions Center. As HP's "reuse rabbi," he led research on software reuse process, tools, and software factories; the creation of an HP Corporate Reuse program; and the systematic introduction of software reuse into HP's divisions. He was director of the Software Technology Laboratory at Hewlett-Packard Laboratories, and has over 25 years of experience in software engineering research. He was previously an associate professor of computer science at the University of Utah, where he is currently an adjunct professor. He has authored numerous papers and reports on software engineering and reuse, writes a reuse column for Object Magazine, and is active on several reuse program committees.

Patrik Jonsson was one of the first people to join Objectory AB, and has been working closely with Ivar for many years. He has been involved in several different activities, including customer projects, process and method development, specifying the requirements for the Objectory CASE tool, and teaching. He is a co-author of the Addison-Wesley bestseller Object-Oriented Software Engineering - A Use Case Driven Approach. He now works at Rational as a member of the process development group. Patrik joined Ivar and Martin to help capture and formulate their ideas. He has been a main driver in integrating the concept of a Reuse-Driven Software-Engineering Business into the software engineering framework of Objectory, and has added many ideas of his own.

How this book is organized

The book consists of four parts:

Part I: Introducing the Reuse-Driven Software-Engineering Business, provides motivation, background and an overview of our systematic reuse-driven approach, abbreviated the Reuse Business. Chapter 1 surveys software reuse experiences and key management, architecture, process and organizational principles, that motivate the approach we have taken. Chapter 2 describes the overall concepts and goals of the Reuse Business. We define application systems and component systems, and describe the key processes of application systems engineering, which utilizes component systems to build applications and component systems engineering, which creates reusable component systems.

Part II: Architectural Style, describes the architectural concepts and notation that underlie the Reuse Business. These architectural building blocks, connectors, and composition rules enable us to describe a variety of architectures. Chapter 3 introduces Object-Oriented Software Engineering (OOSE) and the Unified Modeling Language, including models, actors, use cases, objects, and systems. Chapter 4 describes application systems, components and component systems. We define the concept of facade as a generalized interface, and describe variability mechanisms that provide manageable, yet flexible reuse. Chapters 5 and 6 provide much more detail on use case and object components. Chapter 7 addresses layered architectures and systems of interconnected systems to support large-scale, controlled reuse.

Part III: Reuse Business Processes, addresses the reuse-oriented software engineering processes needed to systematically create, use, and manage the architectural elements described in Part II. Chapter 8 describes Object-Oriented Business Engineering, including the modeling of business systems, business processes, and workers. Business models are connected to information systems and human resources. Business Engineering and OOSE can be used together to develop and precisely describe the processes, organization models, and tools underlying the Reuse Business. Chapter 9 describes a high-level business model for the Reuse Business, which provides a framework for the more detailed treatment of the key processes and organizations in the following chapters. We define and relate component systems engineering, application systems engineering, application family engineering and managing reuse. Chapter 10 applies business engineering to the customer business to define the suite of applications that supports their business processes. Analysis of these applications then leads to the overall layered architecture and decomposition into reusable component systems. The incorporation of legacy systems is also addressed. Chapter 11 describes component systems engineering, showing how to analyze sets of requirements to produce high-quality components and their facades. Chapter 12 describes application systems engineering, showing how to construct applications by selecting, customizing, and reusing components drawn from one or more component systems.

Part IV: Organizing A Reuse Business, provides advice on establishing a specific reuse business that conforms to the Reuse Business model. Chapter 13 describes a systematic transition to a reuse business, combining business engineering techniques with change management and reuse-specific guidelines. This leads to an incremental adoption process, with several process and organization changes. The basic Reuse Business model can be adapted to a variety of software development scenarios. Business engineering techniques are used to partition the reuse roles and departments to create organizational structures for a specific reuse business. Several tools and technologies help manage the process, and create and package the component systems. Chapter 14 describes how instances of the various processes are created and managed, what techniques and economic, process, and product measures are used to manage tradeoffs and progress flow, and what organizational and technical infrastructure is needed to support a reuse business. Chapter 15 provides a summary of the key architectural, process and organizational principles, and suggests directions for your next steps.

The appendixes provide detailed reference material. Appendix A is a complete glossary of terms. Appendix B is an annotated bibliography of key readings and on-line resources, while appendix C lists all references used in the book.

What this book offers

This book on industrial object-oriented software engineering with substantial reuse has as its main purpose the explanation of the key issues involved in building a Reuse-Driven Software Engineering Business. The reader does not need any object or reuse experience in order to understand the book.

This book is not a complete handbook and therefore does not provide all the detailed information necessary to implement and run a reuse business. More detailed process guides, training and practical experience will be needed to ensure success. Just as OOSE and Object Oriented Business Engineering are simplifications of the more detailed and precise Rational Objectoryä SE and BE processes, the work presented in this book is the simplification of a more complex process.

It is important that all readers, potential participants in the Reuse Business, have a shared understanding of the key concepts, as covered in Chapters 1 and 2, and the introductions to each Part. People who are:

  • Upper managers, responsible for authorizing and funding the move to a reuse business, should also read chapters 13 and 14 carefully.
  • Reuse managers responsible for the day-to-day running of a reuse business should read all chapters.
  • Project managers should be read chapters 3, 4 and 7 in Part II and the processes described in Part III.
  • Software engineers, system architects, component developers, reusers and component system maintainers, should be familiar with all of Part II, Architectural Style, and the particular processes described in Part III that are most relevant to their role.
These readers might expect to gain the following:
  • Upper Managers want to understand the economic, political and organizational consequences as well as the time-to-market, quality and cost benefits.
  • Reuse Managers want to establish, run and improve a large-scale reuse organization.
  • Project Managers want to learn how to run application projects, and what process changes are needed to take advantage of reuse.
  • System Architects want to design an architecture that allows for substantial reuse and evolution.
  • Component Developers want to learn how to design and build reusable component systems.
  • Reusers want to learn how to build applications from component systems.
  • Maintainers of component systems want to package and support component systems, and to deliver associated services.

While we have designed the book for managers and practitioners who have not much practical experience with object-oriented software or systematic software reuse, the reader who has experience in one or both of these areas should still find considerable material of value. In particular:

  • If the reader is already familiar with the concepts of systematic software reuse, such as domain engineering and creator/utilizer reuse-oriented process and organization, he will see how we have integrated these concepts into a significant object-oriented method, OOSE, software architecture, and how we have taken advantage of object-oriented business engineering.
  • If the reader already has experience with an object-oriented analysis and design method, he will see how we have adapted and extended the architecture and process of OOSE to incorporate an agenda of large-scale, systematic reuse.
  • If the reader already knows OOSE or Rational ObjectoryU, he will see how it has been extended to take advantage of the new Unified Modeling Language (UML), software architecture, and reuse process and technology.

When we started this work, we imagined that we would simply combine what we each knew about object-oriented software engineering, business engineering and systematic software reuse, based on our many years of experience. But as the work progressed, we discovered that we needed to make numerous technical innovations, synthesizing, extending and inventing many ideas. Some of these included:

  • Re-expressing OOSE using the Unified Modeling Language (UML). As we did this, several of our architectural, process and reuse extensions provided useful input to the evolving UML design.
  • Extending and exploiting OOSE and Object-Oriented Business Engineering in order to support the key technical, process and incremental adoption aspects of systematic software reuse. New constructs for components, facades, layered architectures and variability were devised.
  • Discovering how to use and extend OOSE and Object-oriented Business Engineering to do a systematic form of reuse domain-engineering and architecture development.
  • Discovering how the business processes, the software engineering processes and the organization needed to change to optimize the development of enterprise information systems based on substantial reuse.
Acknowledgments

Many people provided inspiration and encouragement that led to the creation of this book. Some helped by commenting on the form and content of the book, others by participating in tutorials and providing feedback, and others by open discussion of the ideas.

We particularly thank Ramesh Balasubramanian, Per Björk, Stefan Bylund, Patricia Cornwell, Nathan Dykman, Håkan Dyrhage, Christian Ehrenborg, John Favaro, Daryl Foy, Steven Fraser, Agneta Jacobson, Phillipe Kruchten, Reed Letsinger, Mary Loomis, Ruth Malan, Patricia Markee, Vered Marash, Susan McBain, Ware Myers, Keith Moore, Karin Palmqvist, Joe Podolsky, Jeff Poulin, Mats Rahm, David Redmond-Pyle, Mark Simos, Mike Short, Greg Siu, Kevin Wentzel and Lorna Zorman for their detailed comments, and commitment.

We particularly appreciate the efforts of Ware Myers who helped us rewrite several chapters of this book to make them more effective, and to Lorna Zorman who carefully read and suggested improvements to many drafts of many chapters. We are highly indebted to Karin Palmqvist, Susanne Dyrhage and Staffan Ehnebom, who participated in the development of the concept of System of Interconnected Systems. We are grateful to Stefan Bylund, Christian Ehrenborg, Magnus Christerson, Staffan Ehnebom, Gunnar Övergaard, for their participation in the development of the notion of interfaces, processes and physical devices as they appear in this book. We are grateful to Gunnar Magnusson and Håkan Dyrhage for their helpful suggestions and comments on applying Object-Oriented Business Engineering to a software development organization. Patricia Cornwell was a key partner in the development of Hewlett-Packard's reuse maturity model and incremental transition strategy that significantly influenced our treatment in chapter 13.

We are grateful to Hewlett-Packard, Objectory and Rational for supporting this project, and to Mary Loomis for providing encouragement and support that enabled us to start and complete this work. Finally, we thank our family members and partners for their patience during the many, many, many weekends and evenings that we worked on the book.

Dedications

Martin Griss - "To the memory of my father, Isaac Griss, who would have been so proud. To P'nina,

Doron and Shelli, for their encouragement, support and understanding."

Patrik Jonsson - "To my beloved wife Katarina, and my two wonderful sons Gabriel and Samuel."

Ivar Jacobson Stockholm, Sweden
ivar@rational.com

Martin Griss Palo Alto, California
griss@hpl.hp.com

Patrik Jonsson Stockholm, Sweden
patrik@rational.com

Read More Show Less

Table of Contents

Foreword
Foreword
Preface
Dedications
1 Software Reuse Success Factors 4
2 Reuse-Driven Software Engineering is a Business 29
3 Object-Oriented Software Engineering 53
4 Application and Component Systems 80
5 Use Case Components 114
6 Object Components 133
7 Layered Architecture 170
8 Object-Oriented Business Engineering 216
9 Applying Business Engineering to Define Processes and Organization 230
10 Application Family Engineering 258
11 Component System Engineering 297
12 Application System Engineering 321
13 Transition to a Reuse Business 339
14 Managing the Reuse Business 374
15 Afterword: Making the Reuse Business Work 402
App. A Glossary 423
App. B Annotated Bibliography 441
App. C Use of the Unified Modeling Language in the RSEB 454
App. D References 466
Index 481
Read More Show Less

Preface

This is a book for software engineering practitioners and their managers, interested in dramatically improving their software development performance. For many industrial and commercial enterprises, accomplishing key business goals, such as satisfying the customer, achieving time to market with products and services, or controlling costs, have direct implications on the way they choose to develop and use information technology and software systems for competitive advantage. In most of these cases, objects, component based development and software reuse are key parts of their software engineering strategy. Succeeding with industrial-strength object-oriented software engineering requires that the promise of large-scale software reuse be realized in a practical way. This book provides a pragmatic framework for success.

Systematic software reuse

Ever since libraries of shared components were first proposed by Doug McIlroy in 1968, software reuse has been recognized as an attractive idea with an obvious payoff. Building software systems from previously developed, high-quality components certainly saves the cost and time of redundant work and improves systems. For many years, obtaining high levels of reuse has been elusive. Many different technical, process, and organizational issues have blocked progress. But despite pursuit after a variety of other "silver bullets" to improve software development, it remains clear that systematic software reuse and component based development is still one of the most promising ways to significantly improve the software development process.

Most software development organizations move to object technology because engineering managers believe that this will lead to significant reuse. Unfortunately, without an explicit reuse agenda and a systematic reuse-directed software process, most of these object adoption efforts do not lead to successful large-scale reuse.

Why do we use the term "reuse"? No other engineering field uses this term. Instead, the systematic design and use of standard components is accepted practice; many handbooks of hardware components, ranging from motors and gears to chips, are produced annually and studied daily by design engineers. Despite the use of the term "Software-IC" coined by Brad Cox, and component based development as encouraged by Microsoft and others, a software components industry with an associated widespread use of components is still in its infancy. In the future, component-based software engineering will be taught as a standard part of the software engineering curriculum and the word "reuse" will become obsolete; today, we use the term "reuse" to describe the goals of this still emerging area of software engineering.

Over the last ten years, the software reuse and software engineering communities have come to better understand component-based software engineering. In almost all cases of successful reuse, the keys were management support, system and component architecture, a dedicated component group, a stable application domain, standards, and organizational support. Many software engineering books and conferences focus specifically on systematic software reuse and on object technology. Many mention of reuse, architecture, and process- and domain-specific application development, but they differ in their approach to reuse. Some object technology books, including Jacobson's 1992 Object-Oriented Software Engineering (OOSE) book, address certain object reuse issues directly or have significant sections on reuse. Appendix B provides an annotated bibliography of pertinent work.

What is this book about?

This book is directed at bringing us significantly closer to a future in which object-oriented component-based software engineering will become the norm. There is a growing belief that systematic, large-scale reuse, coupled with object technology, is the only way to radically improve the process of software development. Based on our experience with reuse at Hewlett-Packard and Objectory (now Rational), and with our many customers, we believe that substantial degrees of reuse can be achieved only by radically changing traditional software architectures and development processes. First, we are convinced that substantial reuse requires that software must be architected, designed, packaged, and supported for reuse. Architecture here means that systems and components must be structured to support independent development, and later integration and evolution, of components and systems. Second, the software engineering processes, involving specific software development steps, the supporting management and organizational structures, and even the mode of interaction with customers, must be adapted to allow the organization to work effectively with these reusable components. Finally, processes and tools must be integrated into an infrastructure to support the key activities.

Introducing effective reuse into a software engineering business requires a concerted and systematic effort by both management and software developers in order to overcome the business, process, organizational, and technical impediments that often hinder effective reuse. Effort must also be directed at involving customers, users and maintainers early on. While many of these issues and possible solutions are by now well-known in the reuse community, their existence still comes as a surprise to those who adopt object technology and expect it to yield reuse automatically. Without an explicit reuse agenda and a systematic approach to design and process, the desired levels of object reuse will not be achieved.

In this book we develop a coherent model and a set of guidelines that help ensure success with large- scale, object-oriented reuse. Our framework, which we call the Reuse-Driven Software Engineering Business (abbreviated as Reuse Business), deals systematically with these key business, process, architecture, and organization issues.

We believe that both the theory and practice of systematic software reuse and the theory and practice of systematic, model-based, object-oriented software development and business engineering have matured sufficiently for us to develop this new, consistent approach. Our coherent solution merges the best ideas of both fields with our own contributions in the areas of systematic methods, architectures, domain-specific software engineering, and reuse adoption.

Who needs a Reuse-Driven Software Engineering Business?

Any software-producing organization can benefit from the ideas presented in this book. After many years of cautiously viewing object technology as interesting but still emerging, many large organizations have increased their commitment to objects and are investing substantial resources in re-engineering their businesses and reimplementing their supporting information systems. For many businesses, an effective software engineering development strategy is an essential part of their use of information technology to accomplish key business objectives, such as effective use of resources, improved time-to-market, and agile response to market change. They are looking to objects and reuse to provide them flexible, cost-effective implementations, which are based on commercial and their own application frameworks, reusable business components and distributed object-oriented middleware.

To help them achieve their strategic software goals, we provide a clear statement of how large-scale, architected object reuse can help improve the software process. Our reuse business model describes how these software organizations can transition to a reuse-driven business. The full benefits will only be obtained if the software organization:

  • Produces related applications (or significant sub-systems) that are members of a product line or product family;
  • Is willing to make a significant investment to build up reusable architectures, components, processes, and tools; and
  • Is willing to make certain process and organizational changes.

Such an organization is usually feeling increasing pressure to deliver more applications in shorter times, in order to meet more complex customer needs.

The essence of the Reuse-Driven Software Engineering Business

In our discussion, we distinguish the term "the Reuse Business," referring to our generic model or framework, from the term "a reuse business," referring to a particular software organization that is a specialized instance of the Reuse Business. We have targeted our approach to yield significant results for organizations in which the development of mission critical information systems and software products are key to their success. We also address how the Reuse Business may be specialized to a range of organizations that are able to benefit from many aspects of our systematic approach to reuse, even if they are not able or do not choose to operate fully in accord with our model.

In the optimal case, the software development organization is run as a software engineering business. By business, we mean both that the information technology and software engineering goals are key to accomplishing the enterprise business goals, and that as a consequence, the software organization itself is operated as a business, with well defined customer and financial objectives. As a reuse-driven software organization, this organization is engaged in producing multiple, related applications, centered and optimized on the production and reuse of components. These applications commonly form a product-line or product family. As a business, this organization must understand its customers, and serve their needs, while at the same time effectively achieving its profit and expense objectives. Such business tradeoffs are managed using economic, product and process measures.

The Reuse Business involves incremental, architecture-centric, process-driven, domain-specific software development. It also links previously independent projects, introduces new architectures, changes the development processes, requires reusable component management and funding activities, and changes the roles of architects, process engineers, development engineers, and managers. Thus significant organizational change is involved.

The Reuse Business model integrates essential ideas and pragmatic guidelines from our knowledge of systematic reuse and from our experience with the architecture and the development processes used to develop the AXE Telecom switching system at Ericsson, and with reuse architecture, process, adoption, and organization experience gained with Hewlett-Packard's Corporate Reuse Program.

We base our work on Jacobson's use case driven architecture and process modeling frameworks U Object-Oriented System Engineering (OOSE)Jacobson92 and Object-Oriented Business Engineering, described in "The Object Advantage"(TOA)Jacobson94. By so doing, we integrate the key aspects of many successful, but fragmentary approaches to reuse process, frameworks, reuse organization, domain engineering, and domain-specific kits into a coherent model. With this approach, we can relate and optimize all processes (activities and supporting infrastructure) and products (architecture and components) to the business goals of a reuse business.

The Reuse Business extends OOSE to provide support for architecting reuse-oriented applications and components. New constructs support layered, modular architectures, in which application systems are built from flexible, reusable components. Related components are grouped into component systems.

The Reuse Business model applies business engineering to the software engineering organization itself. The Object-Oriented Business Engineering framework Jacobson94 provides a consistent, systematic approach to the organizational and process issues. Business use cases model the key software development processes, component engineering and application engineering. Business use cases model the interaction of persons with the software organization. These models then define the roles of reuse workers, to produce a reuse-oriented software organization structure that meets the needs of specific software development organizations. A business reengineering transition framework and change management techniques are used to systematically restructure a software development organization into a reuse business.

Our experience

Since mid-1993, when the authors of this book first became familiar with each other's work, we have worked closely together on panels, at conferences, at workshops, and in joint research in order to integrate our skills and experiences into the shared vision described in this book. Together, we are uniquely positioned with a wealth of complementary skills. Ivar Jacobson brings the strong architectural perspective and large systems experience of developing the AXE Telecom switching system at Ericsson, and the experience gained with Objectory development and clients. Martin Griss has broad experience with reuse organization, adoption, and technology. Both have extensive experience with systematic software process definition and improvement. Patrik Jonsson joined the work in May 1994, bringing his Objectory process experience to the project, when we decided to make our efforts into a formal collaboration leading to this book.

Ivar Jacobson is inventor of the OOSE method and founder of Objectory AB, Sweden. He is currently VP of Business Engineering at Rational Software Corporation, and was before that VP of Technology at Objectory Corporation. He is a leader in the object-oriented community. He is well-known for his pioneering work and more than 20 years of experience using object methods for the design of large real-time systems. He spent 25 years at Ericsson working on the AXE switching system, where he developed an architecture and software engineering process to support extensive reuse. His early object-based design technique has evolved into the international CCITT/SDL Telecom standard. He is the principal author of two influential books: "Object-Oriented Software Engineering - A Use Case Driven Approach" and "The Object Advantage - Business Process Reengineering with Object Technology," as well as several widely referenced papers on object technology. His work on use case engineering has influenced almost all of the OO methods in use today. He has served on the OOPSLA, ECOOP, and TOOLS program committees.

Martin L. Griss is a senior Laboratory Scientist at Hewlett-Packard Laboratories, Palo Alto, California where for the last 14 years he has researched software engineering processes and systems, systematic software reuse, object-oriented reuse, and measurement system kits. He has a defining role as senior reuse consultant within HP's Professional Services Organization, working with the Object-Oriented Solutions Center. As HP's "reuse rabbi," he led research on software reuse process, tools, and software factories; the creation of an HP Corporate Reuse program; and the systematic introduction of software reuse into HP's divisions. He was director of the Software Technology Laboratory at Hewlett-Packard Laboratories, and has over 25 years of experience in software engineering research. He was previously an associate professor of computer science at the University of Utah, where he is currently an adjunct professor. He has authored numerous papers and reports on software engineering and reuse, writes a reuse column for Object Magazine, and is active on several reuse program committees.

Patrik Jonsson was one of the first people to join Objectory AB, and has been working closely with Ivar for many years. He has been involved in several different activities, including customer projects, process and method development, specifying the requirements for the Objectory CASE tool, and teaching. He is a co-author of the Addison-Wesley bestseller Object-Oriented Software Engineering - A Use Case Driven Approach. He now works at Rational as a member of the process development group. Patrik joined Ivar and Martin to help capture and formulate their ideas. He has been a main driver in integrating the concept of a Reuse-Driven Software-Engineering Business into the software engineering framework of Objectory, and has added many ideas of his own.

How this book is organized

The book consists of four parts:

Part I: Introducing the Reuse-Driven Software-Engineering Business, provides motivation, background and an overview of our systematic reuse-driven approach, abbreviated the Reuse Business. Chapter 1 surveys software reuse experiences and key management, architecture, process and organizational principles, that motivate the approach we have taken. Chapter 2 describes the overall concepts and goals of the Reuse Business. We define application systems and component systems, and describe the key processes of application systems engineering, which utilizes component systems to build applications and component systems engineering, which creates reusable component systems.

Part II: Architectural Style, describes the architectural concepts and notation that underlie the Reuse Business. These architectural building blocks, connectors, and composition rules enable us to describe a variety of architectures. Chapter 3 introduces Object-Oriented Software Engineering (OOSE) and the Unified Modeling Language, including models, actors, use cases, objects, and systems. Chapter 4 describes application systems, components and component systems. We define the concept of facade as a generalized interface, and describe variability mechanisms that provide manageable, yet flexible reuse. Chapters 5 and 6 provide much more detail on use case and object components. Chapter 7 addresses layered architectures and systems of interconnected systems to support large-scale, controlled reuse.

Part III: Reuse Business Processes, addresses the reuse-oriented software engineering processes needed to systematically create, use, and manage the architectural elements described in Part II. Chapter 8 describes Object-Oriented Business Engineering, including the modeling of business systems, business processes, and workers. Business models are connected to information systems and human resources. Business Engineering and OOSE can be used together to develop and precisely describe the processes, organization models, and tools underlying the Reuse Business. Chapter 9 describes a high-level business model for the Reuse Business, which provides a framework for the more detailed treatment of the key processes and organizations in the following chapters. We define and relate component systems engineering, application systems engineering, application family engineering and managing reuse. Chapter 10 applies business engineering to the customer business to define the suite of applications that supports their business processes. Analysis of these applications then leads to the overall layered architecture and decomposition into reusable component systems. The incorporation of legacy systems is also addressed. Chapter 11 describes component systems engineering, showing how to analyze sets of requirements to produce high-quality components and their facades. Chapter 12 describes application systems engineering, showing how to construct applications by selecting, customizing, and reusing components drawn from one or more component systems.

Part IV: Organizing A Reuse Business, provides advice on establishing a specific reuse business that conforms to the Reuse Business model. Chapter 13 describes a systematic transition to a reuse business, combining business engineering techniques with change management and reuse-specific guidelines. This leads to an incremental adoption process, with several process and organization changes. The basic Reuse Business model can be adapted to a variety of software development scenarios. Business engineering techniques are used to partition the reuse roles and departments to create organizational structures for a specific reuse business. Several tools and technologies help manage the process, and create and package the component systems. Chapter 14 describes how instances of the various processes are created and managed, what techniques and economic, process, and product measures are used to manage tradeoffs and progress flow, and what organizational and technical infrastructure is needed to support a reuse business. Chapter 15 provides a summary of the key architectural, process and organizational principles, and suggests directions for your next steps.

The appendixes provide detailed reference material. Appendix A is a complete glossary of terms. Appendix B is an annotated bibliography of key readings and on-line resources, while appendix C lists all references used in the book.

What this book offers

This book on industrial object-oriented software engineering with substantial reuse has as its main purpose the explanation of the key issues involved in building a Reuse-Driven Software Engineering Business. The reader does not need any object or reuse experience in order to understand the book.

This book is not a complete handbook and therefore does not provide all the detailed information necessary to implement and run a reuse business. More detailed process guides, training and practical experience will be needed to ensure success. Just as OOSE and Object Oriented Business Engineering are simplifications of the more detailed and precise Rational Objectoryä SE and BE processes, the work presented in this book is the simplification of a more complex process.

It is important that all readers, potential participants in the Reuse Business, have a shared understanding of the key concepts, as covered in Chapters 1 and 2, and the introductions to each Part. People who are:

  • Upper managers, responsible for authorizing and funding the move to a reuse business, should also read chapters 13 and 14 carefully.
  • Reuse managers responsible for the day-to-day running of a reuse business should read all chapters.
  • Project managers should be read chapters 3, 4 and 7 in Part II and the processes described in Part III.
  • Software engineers, system architects, component developers, reusers and component system maintainers, should be familiar with all of Part II, Architectural Style, and the particular processes described in Part III that are most relevant to their role.

These readers might expect to gain the following:

  • Upper Managers want to understand the economic, political and organizational consequences as well as the time-to-market, quality and cost benefits.
  • Reuse Managers want to establish, run and improve a large-scale reuse organization.
  • Project Managers want to learn how to run application projects, and what process changes are needed to take advantage of reuse.
  • System Architects want to design an architecture that allows for substantial reuse and evolution.
  • Component Developers want to learn how to design and build reusable component systems.
  • Reusers want to learn how to build applications from component systems.
  • Maintainers of component systems want to package and support component systems, and to deliver associated services.

While we have designed the book for managers and practitioners who have not much practical experience with object-oriented software or systematic software reuse, the reader who has experience in one or both of these areas should still find considerable material of value. In particular:

  • If the reader is already familiar with the concepts of systematic software reuse, such as domain engineering and creator/utilizer reuse-oriented process and organization, he will see how we have integrated these concepts into a significant object-oriented method, OOSE, software architecture, and how we have taken advantage of object-oriented business engineering.
  • If the reader already has experience with an object-oriented analysis and design method, he will see how we have adapted and extended the architecture and process of OOSE to incorporate an agenda of large-scale, systematic reuse.
  • If the reader already knows OOSE or Rational ObjectoryU, he will see how it has been extended to take advantage of the new Unified Modeling Language (UML), software architecture, and reuse process and technology.

When we started this work, we imagined that we would simply combine what we each knew about object-oriented software engineering, business engineering and systematic software reuse, based on our many years of experience. But as the work progressed, we discovered that we needed to make numerous technical innovations, synthesizing, extending and inventing many ideas. Some of these included:

  • Re-expressing OOSE using the Unified Modeling Language (UML). As we did this, several of our architectural, process and reuse extensions provided useful input to the evolving UML design.
  • Extending and exploiting OOSE and Object-Oriented Business Engineering in order to support the key technical, process and incremental adoption aspects of systematic software reuse. New constructs for components, facades, layered architectures and variability were devised.
  • Discovering how to use and extend OOSE and Object-oriented Business Engineering to do a systematic form of reuse domain-engineering and architecture development.
  • Discovering how the business processes, the software engineering processes and the organization needed to change to optimize the development of enterprise information systems based on substantial reuse.

Acknowledgments

Many people provided inspiration and encouragement that led to the creation of this book. Some helped by commenting on the form and content of the book, others by participating in tutorials and providing feedback, and others by open discussion of the ideas.

We particularly thank Ramesh Balasubramanian, Per Björk, Stefan Bylund, Patricia Cornwell, Nathan Dykman, Håkan Dyrhage, Christian Ehrenborg, John Favaro, Daryl Foy, Steven Fraser, Agneta Jacobson, Phillipe Kruchten, Reed Letsinger, Mary Loomis, Ruth Malan, Patricia Markee, Vered Marash, Susan McBain, Ware Myers, Keith Moore, Karin Palmqvist, Joe Podolsky, Jeff Poulin, Mats Rahm, David Redmond-Pyle, Mark Simos, Mike Short, Greg Siu, Kevin Wentzel and Lorna Zorman for their detailed comments, and commitment.

We particularly appreciate the efforts of Ware Myers who helped us rewrite several chapters of this book to make them more effective, and to Lorna Zorman who carefully read and suggested improvements to many drafts of many chapters. We are highly indebted to Karin Palmqvist, Susanne Dyrhage and Staffan Ehnebom, who participated in the development of the concept of System of Interconnected Systems. We are grateful to Stefan Bylund, Christian Ehrenborg, Magnus Christerson, Staffan Ehnebom, Gunnar Övergaard, for their participation in the development of the notion of interfaces, processes and physical devices as they appear in this book. We are grateful to Gunnar Magnusson and Håkan Dyrhage for their helpful suggestions and comments on applying Object-Oriented Business Engineering to a software development organization. Patricia Cornwell was a key partner in the development of Hewlett-Packard's reuse maturity model and incremental transition strategy that significantly influenced our treatment in chapter 13.

We are grateful to Hewlett-Packard, Objectory and Rational for supporting this project, and to Mary Loomis for providing encouragement and support that enabled us to start and complete this work. Finally, we thank our family members and partners for their patience during the many, many, many weekends and evenings that we worked on the book.

Dedications

Martin Griss - "To the memory of my father, Isaac Griss, who would have been so proud. To P'nina,

Doron and Shelli, for their encouragement, support and understanding."

Patrik Jonsson - "To my beloved wife Katarina, and my two wonderful sons Gabriel and Samuel."

Ivar Jacobson Stockholm, Sweden
ivar@rational.com

Martin Griss Palo Alto, California
griss@hpl.hp.com

Patrik Jonsson Stockholm, Sweden
patrik@rational.com

0201924765P04062001

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)