Home > Store

Component-Based Software Engineering: Putting the Pieces Together

Register your product to gain access to bonus material or receive a coupon.

Component-Based Software Engineering: Putting the Pieces Together

Book

  • Sorry, this book is no longer in print.
Not for Sale

About

Features

Description

  • Copyright 2001
  • Edition: 1st
  • Book
  • ISBN-10: 0-201-70485-4
  • ISBN-13: 978-0-201-70485-3

Component-Based Software Engineering (CBSE) is now the way to produce software fast, with less effort, of high quality--not just the first time a product is released but for its entire life. More and more it is being applied to industrial strength and mission-critical software. It is becoming the indispensable element in the mainstream of the software world....The book you are now holding is the first handbook-like volume to present this state of the art.

--Ivar Jacobson, from the Foreword

Building large-scale and complex software systems from available parts is an emerging strategy in industry. Its goals, among others, are to consistently increase return on investment and time to market, while assuring higher quality and reliability than can be achieved through current software development. Written by leading experts from around the world, this book presents the latest concepts and practices in CBSE. While detailing both the advantages and the limitations of CBSE, the book's underlying aim is to define this new field, to frame the discussion, and to ensure that managers and engineers have the background they need to ask good questions and make informed decisions about components.

Beginning with some carefully wrought definitions, the book moves on to cover nearly every aspect of component engineering--from software engineering practices to the design of software component infrastructures, technologies, and systems. The book includes specific examples of CBSE successes and failures, and provides a balanced overview of the complexities of the component-based software life cycle.

This timely and comprehensive volume:

  • Explains precisely what CBSE is and why it is as important to software development as the assembly line was to the industrial revolution
  • Shows how to avoid common mistakes while succeeding with difficult and important cultural, budgetary, and process issues
  • Presents new CBSE procedures to ensure good software development practices
  • Describes a layered method for designing and building complex distributed component systems using the Unified Modeling Language
  • Covers common component technologies, such as CORBA CCM, Transactional COM+, EJB, and much more
  • Presents the legal and regulatory challenges of marketing and purchasing components

Component-Based Software Engineering is the most definitive collection of expertise ever assembled on this growing technology, and a book that must be read and referred to by anyone working in CBSE or considering doing so. To provide updates to this book, and to stimulate further discussion of the issues it covers, the editors maintain a Web site dedicated to CBSE (http://www.cbseng.com).



0201704854B06132001

Sample Content

Table of Contents

(NOTE: Each part concludes with a Summary.)

I. COMPONENT DEFINITON.

1. Definition of Software Component and its Elements.

George T. Heineman, William T. Councill.

2. The Component Industry Metaphor.

Hedley Apperly.

3. Component Models and Component Services: Concepts and Principles.

Rainer Weinreich, Johannes Sametinger.

4. An Example Specification for Implementing a Temperature Regulator Software Component.

Janet Flynt, Jason Mauldin.

II. THE CASE FOR COMPONENTS.

5. The Business Case for Software Components.

John Williams.

6. COTS Myths and Other Lessons Learned in Component-Based Software Development.

Will Tracz.

7. Roles for Component-Based Development.

Paul Allen.

8. Common High Risk Mistakes in Component-Based Software Engineering.

Wojtek Kozaczynski.

9. CBSE Success Factors: Integrating Architecture, Process, and Organization.

Martin L. Griss.

III. SOFTWARE ENGINEERING PRACTICES.

10. The Practice of Software Engineering.

George T. Heineman.

11. From Subroutines to Subsystems: Component-Based Software Development.

Paul C. Clements.

12. Status of CBSE in Europe.

Barry McGibbon.

13. CBSE in Japan and Asia.

Mikio Aoyama.

IV. THE DESIGN OF SOFTWARE COMPONENT INFRASTRUCTURES.

14. Software Components and the UML.

Kelli Houston, Davyd Norris.

15. Component Infrastructures: Placing Software Components in Context.

Steve Latchem.

16. Business Components.

James Carey, Brent Carlson.

17. Components and Connectors: Catalysis Techniques for Defining Component Infrastructures.

Alan Cameron Wills.

18. An Open Process for Component-Based Development.

Brian Henderson-Sellers.

19. Designing Models of Modularity and Integration.

Kevin J. Sullivan.

V. FROM SOFTWARE COMPONENT INFRASTRUCTURES TO SOFTWARE SYSTEMS.

20. Software Architecture.

Alexander L. Wolf, Judith A. Stafford.

21. Software Architecture Design Principles.

Len Bass.

22. Product-Line Architectures.

Martin L. Griss.

VI. THE MANAGEMENT OF COMPONENT-BASED SOFTWARE SYSTEMS.

23. Measurement and Metrics for Software Components.

Jeffrey Poulin.

24. The Practical Reuse of Software Components.

Don Reifer.

25. Selecting the Right COTS Software: Why Requirements are Important.

Cornelius Ncube, N.A.M. Maiden.

26. Build vs. Buy: A Rebuttal.

George T. Heineman.

27. Software Component Project Management Processes.

William T. Councill.

28. The Trouble with Testing Software Components.

Elaine Weyuker.

29. Configuration Management and Component Libraries.

Hedley Apperly.

30. The Evolution, Maintenance and Management of Component-Based Systems.

Mark Vigder.

VII. COMPONENT TECHNOLOGIES.

31. Overview of the CORBA Component Model.

Douglas C. Schmidt, Nanbor Wang, Carlos O'Ryan.

32. Transactional COM+: Designing Scalable Applications.

Timothy J. Ewald.

33. The Enterprise JavaBeans Component Model.

David Blevins.

34. Bonobo and Free Software Gnome Components.

Michael Meeks.

35. Choosing Between COM+, EJB, and CCM.

Andy Longshaw.

36. Software Agents as Next Generation Software Components.

Martin L. Griss.

VIII. LEGAL AND REGULATORY.

37. CBSE as a Unique Engineering Discipline.

John Speed, William T. Councill, George T. Heineman.

38. The Future of Software Components: Standards and Certification.

Janet Flynt, Manoj Desai.

39. Commercial Law Applicable to Component-Based Software.

Stephen Chow.

40. The Effects of UCITA on Software Component Development and Marketing.

Stephen Chow.

IX. CONCLUSION.

41. Summary.

William T. Councill, George T. Heineman.

42. Future of CBSE.

William T. Councill, George T. Heineman, Jeff Poulin.

Appendix A. Glossary.
References.
About the Authors.
Index. 0201704854T06202001

Preface

This book is about the processes required to implement component-based development (CBD). Many software development organizations throughout the world have learned to recognize that software development is an engineering activity. Just as CBD is an evolutionary phase emerging from the programming paradigms that preceded it, component-based software engineering (CBSE) is both a subset, as well as an extension, of current software engineering practices. In the same way that civil engineers have established standardized, time-tested engineering principles to build bridges with reusable parts, component-based software engineers must define and describe processes to assure timely completion of high quality, complex software systems that are composed of a variety of pre-built software components.

In the infancy of software development, programmers focused on structured techniques and procedural programming. Structured techniques defined a system through the information it received as input and the output it produced. Software development advanced with the advent of data modeling, which mapped the flow of complex data and information within a system, and presented a step towards "real world" modeling. Object-orientation showed developers how to design units of code based on the perceived metaphor of "real world" functionality. The latest advance in software development, CBD, promises the possibility of extending the real world approach to create well-specified parts and to incorporate legacy code "wrapped" as components.

An edited text, our approach was to select well-respected authors and researchers in the field--throughout the world--and collectively determine the state-of-the-art of CBSE. Our goals are to establish

  • The first state-of-the-art text on CBSE
  • The degree of empiricism that drives CBSE endeavors
  • The number of domain areas that comprise CBSE
  • The depth and breadth of knowledge of each domain area
  • The content of the domain areas in capsule format supported by considerable references and a Web site that continually is updated new material for chapters and new references
  • A reference book that would be updated every two to three years, providing requested unpublished chapters about the state-of-the-art of CBSE with increasing emphasis on empiricism

The issues that CBSE faces are reflected in the sections that encapsulate the most cohesive chapters. The issues in numerical order are:

  1. Component Definition: Many definitions have been offered and cited repeatedly; yet no definition we encountered in an exhaustive literature review met our criteria for rigor, as opposed to description; most purported definitions were circular in reference.
  2. The Case for Components: The transition from other forms of development, generally object-oriented design and development to CBD and CBSE must consider a variety of risks and how to mitigate the risks. Cultural, budgetary, process, and numerous other factors must be considered before undertaking CBD and CBSE. Success and failure stories should be considered before even implementing a pilot project.
  3. Software Engineering Practices: What software engineering practices impact positively on CBSE? What software engineering processes affect CBSE negatively? What can we learn from the history of the technical history of software development that applies to the design and implementation of components today? The history of software engineering emphasized engineering in the development of software; yet, 40 percent of software projects are not completed. What can engineering teach us about developing software as complex as components. What can we learn from the European Union and Japan that would positively affect the design and assembly of components in the United States and elsewhere throughout the world?
  4. The Design of Software Component Infrastructures: Numerous models are available for developing component infrastructures. The Unified Modeling Language (UML) is the prevalent model, or more appropriately, modeling language. Still, there are various methods for designing software component infrastructures, establishing metamodels to ensure comprehensive component tailorable processes, and integrating component models.
  5. From Software Component Infrastructures to Software Systems: While software component infrastructure is rigorously defined, the contributors to this section do not offer a rigorous definition of software architecture. Engineers recognize incremental and refined levels of design; software architects, whom have had little impact outside academia, offer differing perspectives of their field, most of which is descriptive only.
  6. The Management of Component-Based Software Systems: With 40 percent of software projects canceled before completion and 33 percent of the remaining projects affected by time and cost overruns, as well as changes in scope, the technologically more complex CBD and CBSE will require more technically and engineering management trained managers. Will Frederick Taylor's "one best way" that influenced all disciplines of engineering and much of business, as well, have an impact on CBSE? That is, will the discipline accept that large problems can be broken into smaller problems, each with one and only one best solution?
  7. Component Technologies: A limited number of component technologies exist. COM+, CORBA, EJB, Bonobo, software agents all have a place depending on an organization's short-term and long-term needs. Which component technology or technologies will benefit the development of your component-based application? How should you evaluate the technologies to assure your organization meets its needs and does not make a long-term mistake?
  8. Legal and Regulatory Issues: Probably one of the most important sections in the book, this section is not the dry, legal drivel you might expect. The issues of licensure and organizational certification are explored. The benefits for certification are likely greater for employers than you might think. Voluntary or business-to-business third-party certification is described. Are the advantages obvious? Commerce in software components are presented historically and currently. Methods of protection for
    • Component producers
    • Component consumers
    • Purchasing end-users
    are presented. Since 99 percent of all businesses in the United States are small businesses many, if not most component producers and consumers are small businesses. How do you protect your company when conducting commerce with larger businesses?

Because of the diversity of subjects that comprise current CBSE, we requested the most knowledgeable participants in CBSE's various sub-disciplines to write concise chapters describing the essence of their field of endeavor or study. Therefore, this book is not a "how-to" book or a handbook. It is an edited text that clearly and concisely identifies the level of sophistication achieved by CBSE at the time of the book's publication.

Contributions

Many software engineers contributed to the book. A simple glance through the table of contents shows the wide-ranging content presented by many educators, practitioners, and others who have been involved with component-based technology. To achieve consensus, we sought authors with highly divergent and often conflicting views to present their perspectives on CBSE; to provide diversity, we ensured that no author contributed more than three chapters.

The authors' writing assignments, despite their uniformly remarkable knowledge of the particular subject matter, were exceptionally difficult. Authors were asked to distill vast knowledge about a topic into no more than 10 book pages. It is generally easier to write a comprehensive journal article or a book than to condense and refine a well known subject to a few pages. Nevertheless, the authors contributed their chapters, presenting just enough information--that is, the essence of their work--for you to make well-informed decisions about CBSE.

Who Should Read This Book, And Why

Henry Petroski, in his Engineering of Dreams (Vantage Books, 1995), described the work of James Buchanan Eads, a pioneer in the engineering and construction of highly complex bridges. As editors, we have been inspired by the following quote attributed to this nineteenth-century bridge builder to his company's board:

I have deemed it proper that everything of interest connected with my department should be placed in such form as to be clearly understood, not alone by your stockholders, but also by every person of ordinary intelligence in the community.

The book is divided into parts consisting of a part introduction, a few chapters, and the editors' summary. Each section is intended to be a model of conciseness and clarity of the particular CBSE-related subject. All sections of the book are relevant for those interested in CBSE. No section serves as precursor for any other section. Sections are self-contained; that is, they can be read independently and provide usable information without the need to read any other section. Some chapters within the sections are contentious and two or more authors present radically different views. Therefore, you may need to read multiple chapters to understand both sides of an argument. By comparing and contrasting the range of CBSE perspectives, your options are increased, thus enabling you to make decisions that are more effective.

We expect that you will read a section, or a chapter or two, and then, subsequently, pick up the book again to learn and metabolize more. Similar to a handbook, it is not a text that most will read from cover to cover over a few days or weeks. Therefore, the path you take as you use the book is the one that makes most sense for you or your organization at the particular period when you read it.

We strongly recommend that you read Part I, a section that was developed by a consensus of experts who had previously used various definitions of software component. There are many definitions concerning the term, software component. You might have your favorite, but the book uses one set of definitions throughout the book. Since this section served as the starting point for all authors, you will benefit by understanding the term as discussed and negotiated tirelessly by the authors who struggled to achieve a consensus definition.

We have designed the book for the following, diverse audiences, listed alphabetically:

  • Business analysts and software designers will learn how to make and support software component-based build versus buy decisions. Methods for diagramming and communicating rich semantics concerning components are provided. We believe that analysts and designers are most likely to use the book most frequently. Therefore, this book was not developed as a "how-to" text for building software components Rather it was designed to assist those involved throughout the life cycle to determine collectively when and whether CBD can be reasonably implemented and how to communicate correctly and effectively to managers and developers the most adept component structure that will meet users' needs. Part VI, The Management of Component-Based Software Systems, is an excellent place to start your adventure in CBSE.
  • Chief executives and senior technology executives of independent software vendors, as well as chief information officers, have been sold new technologies repeatedly. Generally, none of the new methods, processes or applications was a panacea. This book does not promote component-based technologies. While most authors and the co-editors believe that implementation of software components development is beneficial, you will discover the many "ifs" required to make software component-based development work for you, and under what conditions it can be successfully completed. We recommend that executives and managers will benefit most by initially reading Part II, The Case for Components, and Part VI, The Management of Component-Based Software Systems.
  • Computer science and software engineering academicians can use this book to teach current CBSE practices and to develop directions for research on CBD or CBSE. Each part's summary describes areas required for research to enhance the state-of-the-art, as well as to enable the discipline of software engineering to advance as an engineering profession. Additionally, the editors shall present opportunities for research that will lead to the successful implementation of CBSE by students and their future employers. The book can also be used as a supplementary text on CBSE. As educators, your diverse interests will determine where you start to read and what you desire to acquire from your reading.
  • Software developers can learn the strengths and pitfalls of CBD and CBSE, as well as how to make effective decisions about what component technologies to implement and when and how to influence management to adopt an appropriate component-based project plan. Both Part VI, The Management of Component-Based Software Systems, and Part VII, Component Technologies, will assist you most initially as you consider implementing or revising a CBD project.
  • Software engineers and project managers can gain broad knowledge of the complexities of the component-based software life cycle. In reality, this book is written especially for you. Since software engineering as a profession is insufficiently immature to support a comprehensive handbook, this edited text serves as a precursor for the discipline, because it explores only a segment of the field in an extensive state-of-the-art manner. We anticipate that you will use this book as a reference both before and repeatedly during the implementation your first component-based project, as well as throughout your experience with CBD. Prior to this book, you were forced to read many books and numerous articles to learn about CBSE. We have collected all this expertise to enable you to learn what you need from one place.
  • Software testers and quality assurance analysts often have a limited set of concerns and that is covered in Part VI, The Management of Component-Based Software Systems. We believe, however, that software testers should be involved in every phase of an iterative and incremental life cycle. Therefore, knowledge of all phases of the life cycle will enable you to become a more informed and competent tester of software components, as well as to know what issues will arise that present particular test-related problems.

Our Goals

As editors, we had two primary goals. The first, naturally, was to inform you as clearly and concisely about the state-of-the-art of CBSE. The second goal was considerably more difficult, but just as important. Both of us agreed that the book should read as if it were written by one author. With 45 authors and 42 chapters, assuring a single style was a considerable task. We strongly believed, however, that you would be able to learn more about the field of CBSE if we ensured that consistent terms were used, and a consistent writing style was used throughout. We hope that you find your reading experience a useful and informative one.

Bill Councill

George T. Heineman



0201704854P04062001

Index

Numerics

4+1 View Model 386
4GLs (Fourth Generation Languages) 178

A

abstract data type (ADT) 36
abstraction 346, 373
access and security components 275
Accreditation Board for Engineering and Technology (ABET) 492
Accredited Organization Method (AOM) 697
ACL (Agent Communication Language) 648, 649
ActionWorks Metro 654
Active Document architecture 350
Active Server Pages (ASP) 586
ActiveX 218, 350, 623
ActiveX Vendors Association (AVA) 222
market for 659
activity diagrams 247
agent systems 645
agents 642
adaptability 645
Agent Communication Language (ACL) 648
agent platforms 647
autonomy 645
collaboration 646
collaborative 644
knowledgeability 646
mobile 643
persistence 646
personal 643
Agent-TCL 644
Aglets 644
AI (Artificial Intelligence) 645
Alexander, Christopher 424
Altai Inc. 716
Amazon.com, Inc. v. Barnesandnoble.com, Inc. 716
American Counselors Association (ACA) 684
American Law Institute (ALI) 721
American National Standards Institute (ANSI) 696
American Society of Civil Engineers (ASCE) 681
American Society of Mechanical Engineers (ASME) 681
analysis model 296-297, 677
ANSI/UL 1998 Standard 50, 697
Apache 611
APPGALLERY 219
applets 251, 269
Application Center 2000 573
application development group 133
application family engineering 153
Application Programming Interface (API) 9, 34
CORBA and 559
Application Service Provider (ASP) 216, 761
application system engineering 154
application systems 151, 408
applications 152
architectural design 376, 400-403v
architectural drivers 393
architectural style 383
buss 384
domain-specific 385
layered abstract machine 384
multi-phase translator 372
pipe and filter 384
real-time scheduling 394
shared repository 384
architectural views 386, 399-400
Architecture Description Language (ADL) 179, 379-380
Acme 379
CHAM 379
Gestalt 379
MetaH 380
Rapide 380
SADL 380
UniCon 380
Wright 380
architecture refinement 385-386
Architecture Trade Off Analysis Method 392
Ariane 5 rocket malfunction 244
analysis 503
Artificial Intelligence (AI) 645
artificial intelligence engines 275
ASP (Active Server Pages) 623
aspect-oriented programming 179, 347
aspects 416
code fragments 416
assemblies 586
assembly 42-44
asynchronous method invocations (AMI) 562

B

BEA Systems 605
BEA WebLogic Server 605
Bean Deployer 604
Bean Provider 600, 603
BizTalk 651
Biztalk Server 2000 573
black-box reuse 39, 158
evaluating components and 469-473
product lines and 409
testing and 504-507
body of knowledge (BOK) 495
Bonobo 607, 611
components 615
Domain Name Server 613
essential features 612
interfaces 614
Unknown interface 613
wrappers 614
Borland International, Inc. 715
business architects 278
business cases 91-96
business component designers 277
business component developers 120
business components 138
coarse-grained 288
definition 286
development cycle 292-303
fine-grained 286-288
fine-grained vs. coarse-grained 288-292
requirements 293
reuse 294
See also components
business concept modeling 313
business constraints 315
business goals 90-91
business infrastructure 280
business objects 266
business process coordinators 120
business services 266
Business Software Alliance (BSA) 723
business use cases 279

C

C++ 43, 344
large-scale programming and 179
mismatch problem 344
reuse and 344
Standard Template Library 414
CAC (Computing Accreditation Commission) 492
Caliber RM 415
callbacks
interfaces 569
methods 598
Canadian Council of Professional Engineers (CCPE) 184
Capability Maturity Model (CMM) 145, 156, 181
card sorts 471
CBD (component-based development) 85, 192
advantages of 197-198
approaches to 458-460
component assembly in 309
disadvantages 198
migration to 127-128
problems in 502-503
process 115
project plans 460-462
testing in 500
uses 323
See also component-based software engineering
CBSE (component-based software engineering) 502-503, 674
and traditional engineering 674, 679-680
approaches to 458-460
contract issues 726
critical success factors 146
design and coding 447
education program 680-683
initiatives in 200
metrics 442-447
metrics program 436-451
product stability 444
productivity 443
product-line 153, 407
professional practices and procedures 683
project management 491-493
quality 443
reuse 446
UML support 259-260
CBSPM
roles 496
CBSPM (component-based software project manager)
certification programs 684
educational programs for 494-496
engineering management 688-690
multi-department graduate program 685
qualifications 492
training 684
certification
cost of 699
definition 700
of electrical components 699
of software components 701-707
third-party 701
certifiers 121
change agents 454
change request (CR) 441
class diagram 313, 517
click wrap 722, 725
client/server 43, 414, 622
CLR (Common Language Runtime)
assemblies 586
CMM (Capability Maturity Modeling) 181
scoarse-grained components 288, 297
mapping 299
vs. fine-grained components 288-292
COBALT 644
coding 209
metrics 447
collaborative agents 644
COM (Component Object Model) 211
aggregation 353-354
apartments 583-584
design rules 352-354
designs 346
IUnknown interface 11
overview 574
QueryInterface 353
Service Control Manager (SCM) 574, 582
COM+ 574, 625
applications 583
causalities 577-579
causality id (CID) 578
classes 582
contexts 575-577
declarative attributes 582
declarative services 581
fault tolerance 629
just-in-time activation 586
Load Balancing service 627
object pooling 585
runtime services 579
security 628
single-threaded apartment (STA) 584
state management 628
synchronization 584
thread affinity 583
thread neutral apartment (TNA) 584
transactions 585
CommerceNet 651
CommerceOne 651
commercial law 709, 710
commercial off-the-shelf (COTS) 100
Common Language Runtime (CLR) 573
compilers 372
compliance matrix templates 339
component brokers 205
component certification services 230
component descriptors 566
component development group 133
component enterprise 272-275
component factory 133-135
component harvesting 125
Component Implementation Definition Language (CIDL)
assembly files 561
executors 566
component infrastructures
design 310
design layers 86, 264-268
development pitfalls 136
layers 151
reconfigurable 312
replaceable parts of 308
See also components
component library 31
component maintenance 529-531
component reconfiguration 529
component selection 467-468
configuration management 530
system monitoring 531
system tailoring 530
troubleshooting and repair 531
component management 514, 515-525
available software 514
consume 522
manage 519
produce 516
component managers
consume 522-525
produce 516-519
services for 515-525
component model 33-46, 209
component-based systems and 533
composition 42-44
customization 42
deployment 44-45
elements 37
evolution support 44
interfaces 38-39
interoperability 41
meta data 40
naming 40
packaging 44
services 45
UML (Unified Modeling Language) in 245-261
component model implementation
definition 7
component planning 126
component project teams 125
component harvesting 125
component planning 126
component sowing 125
component selection 335
tasks 336-338
component servers 561, 566
component software
life cycles 52
modularity models 348
component sowing 125
component stereotypes 264
design layers 268
component system engineering 155, 408
component systems 150, 408
deficiencies 34-35
operating systems as 34
component-based development. See CBD
component-based software life cycle (CSLC) 13, 52
component-based software project manager. See CBSPM
component-based systems 528
component dependencies 535
component models 533
evolution support 44
in-house design of 534
post-deployment planning 531-538
support community 534
troubleshooting and repair 531
See also components
components 150, 338
classification 440
composition 42-44
connectors 308
customization 42
deployment 251, 524
descriptors 566
development 250
documentation guidelines 255
evaluation 336
executable 30, 518
identification 522
implementation 29, 518
implementation representation models 249-252
Internet trading 223
library repositories 519-522
logical representation models 245-247
management 31, 514
non-modification of 310
objects and 36
openness 532
ownership 210
reuse 144-146, 524, 698
screening of 336
searching for 522
selection 335
servant lifetime policies and 569
servers 566
server-side 575
specifications 518
tailorability 532
See also software components
ComponentSource.com 661
composition 38
composition standard 9
compound documents 613
computer programs 713
reverse engineering of 713
Computer Software Rental Amendments Act of 1990 714
computer-assisted software engineering (CASE) 180
computers 695
Computing Accreditation Commission (CAC) 492
Concordia 644
configuration management 530
configured classes 582
connection standard 37
connectors 308
pluggable 311
types 310
container programming model 568
containers 569
context dependency 9
contexts 575, 650
objects 579
contracts 720
provisions 728-730
Convention on International Sale of Goods (CISG) 720
conversation protocols 654
COOL:Jex 526
COOL:Joe 526
CoolTown 656
copyleft license 715
Copyright Act 710, 712
copyright law 713-715
Copyright Revision Act of 1976 713
CORBA
CORBAfacilities 46
CORBAservices 46
equivalent interfaces 562, 569
Interoperable Naming Service (INS) 564
CORBA (Common Object Request Broker Architecture) 46, 558
architectural style 193
Bonobo and 612
Component Implementation Framework (CIF) 566
Component Model 560
interface definition language 559
Interoperable Naming Service (INS) 564
object model 558-560
object reference 561
Object Services 560
CORBA Component Model (CCM) 37, 560, 561-564, 636-637
attributes 563
Component Implementation Definition Language (CIDL) 566
configurator 565-566
container programming model 568
deployment 638
development 638
events 563
facets 562
fault tolerance 637
port mechanisms 564
receptacles 562
scalability 637
security 637
servant locator 569
state management 637
CORBA Object Services (COS) 568
CORBAfacilities 46
CORBAservices 46
COS (CORBA Object Services) 568
costs, measurement of 441
COTS (commercial off-the-shelf) 100
COTS components 273
infrastructure issues 102-105
managerial issues 105-107
PORE method in selecting 470-472
rules of thumb 107-109
selection 468, 475-478
testing 507-509
vs. CBD (component-based development) 469
See also software components
COTS-based systems 101
infrastructure issues 102-105
managerial issues 105-107
CPU time 311
CR (change request) 441
product stability and 444
CRM (Customer Relationship Management) 100
crosscutting 415
CSAB (Computer Science Accreditation Board) 492, 682
customer information 302
Customer Relationship Management (CRM) 100
customization 38, 42

D

data component developers 120
data components 272
data objects 267, 272
data services 86, 267
data structures 177
data types 312
data/operating system component designers 277
database 192
administrators 207
connection object 279
connection objects 267
management systems 349
use 311
DCOM (Distributed COM) 574, 575, 625
dealerboard system 475
debugging 508
declarative attributes 582
defects 441
dependence analysis 376
deployment components 251
deployment descriptors 596, 601
deployment views 400
depth of inheritance tree 448
design by contract 28
design elements 398
design layers
business service 266
data services 267
legacy wrapping 266
operating systems services 267
process control 266
users 265
workflow 266
design patterns
adapter 537-538
extension Interface 562
facade 29
mediator 220, 537, 749
observer 563
design rules 342-354, 390-392, 423
desktop environments 608
digital convergence 709
digital information publishers 724
Diminishing Manufacturing Source (DMS) 108
distributed development 138
Distributed Networking Application Architecture (DNA) 627
distributed systems 575
Document Type Definition (DTD) 569, 649
domain analysis 196
in product-line feature modeling 410-413
domain components 83
business case for 95-96
costs 88
domain engineering 191
domain expertise 294
Domain Name Server 613
domain names 613
domain-independent system generators 386
domain-specific software architectures (DSSAs) 385
domain-specific software components 482
domain-specific software libraries 469
domain-specific system generators 386
DOORS 415
DSSAs (domain-specific software architectures) 385
DTD (Document Type Definition) 649
dynamic constraints 316
dynamic invocation, 533
dynamic link library (DLL ) 267, 517, 574

E

Eazel 615
ECMA/NIST Reference Model 180
eCo 656
e-commerce 652
applications 642
business-to-business (B2B) 641
business-to-consumer (B2C) 641
e-commerce systems 145
effects 318
EJB Container Provider 604
EJB Server Provider 604
EJBHome 596, 599
EJBObject 596, 599
electrical components 699-700
Electronic Signature in Global and National Commerce Act 726
embedded software 231
embedded systems 196
encapsulation 244, 255-256, 314-315
violation of 253, 587
engineering management 690
engineering practices
analysis model 677
optimized design for solution 678
plan for operating system 678
problem description 677
series of possible solution options 677
Enhydra 605
Enterprise Application Integration (EAI) 83, 218
Enterprise Bean class 596, 597
enterprise beans 591
components 596
Enterprise JavaBeans (EJB) 37, 211, 630-631
containers 591
deployment 635
development 634
fault tolerance 634
infrastructure support 87
scalability 632
security 633
state management 632
Enterprise Resource Planning (ERP) 132, 286
entity beans 272, 291, 296, 594
error detection 376
error handlers 274
error presenters 269
E-Speak 647, 656
Ethernet networks 274
event sinks 563
event sources 563
event-driven systems 533
Evidia 605
Exchange Server 610
execution components 249
executive sponsors 117
executors 566

F

facets 562, 569
fault tolerance 626, 629
faults 376
localization 376
feature model 413-415
Feature-Oriented Domain Analysis (FODA) 196
features 408-410
crosscutting 415
models 410-413
FeatuRSEB 408, 411
Feigenbaum, Ed 107
Financial Accounting Standards Board (FASB) 187
fine-grained components 35, 286-288
design patterns 296
mapping 299
modeling 295
vs. coarse-grained components 288-292
finite state machines 654
FIPA-OS 644
firewalls 643
firmware components 148
first sale rights 714
forced consistency 375
Ford, Henry, on productivity 1
forward engineering 207
Foundation for Intelligent Physical Agents (FIPA) 643
free software
components 617
Foundation 610, 715
model 608-611
movement 182
Fujitsu 215, 218, 230
function point (FP) 438
functional requirements 395

G

gap fulfillment 26, 522
Gemstone Systems 605
GemStone/J 605
General Public License (GPL) 608, 715
generic proxies 42
generic software components 482
GenVoca 386
global unique ID (GUID) 40
glue languages 43
GNOME (GNU Network Object Model Environment) 607, 611
Gnu Public License (GPL) 610
Gnumeric 619
GPL (Gnu Public License) 610
graphical user interface (GUI) 209
business case for 91-96
components 83
layer 268-269
Grasshopper 644
Gtk+ object model 611
GUID (global unique ID) 40

H

Halstead volume metrics 448
hand-held devices 312
hardware components 272, 273, 274
Herzum, Peter 132
high-rise construction 22-24
componentization 24
vs. software development 24
Hitachi 215, 219
HolonEnterprise 220
home interfaces 569
HP ChangeEngine 654
HyperText Markup Language (HTML) 81, 613
HyperText Transfer Protocol (HTTP) 42, 575, 642

I

IBM DB2 630
IBM FlowMark 654
IBM Japan 215
ICCP (Institute for Certification of Computing Professionals) 186V
Iconic Modeling Tool 656
IDL (interface definition language) 39, 559
IEEE (Institute of Electrical and Electronics Engineers) 681
independent software vendors (ISVs) 608
information products 710
information technology (IT) projects
costs 486
failures 488
information technology managers 690
infoware components 272, 275
inspectors 374
Institute for Certification of Computing Professionals (ICCP) 186
Institute for Information Industry (III) 224
integrated circuits (ICs) 694
integrated product team (IPT) 75
case study 463
intellectual property law 710
software and 711
interaction
definition 8
models 209
standards 311
interaction diagrams 247
interaction standard 7, 9, 311
interconnection topology 536
interface controllers 265, 268
interface standard 7
interfaces 38, 39, 246, 311
callback 569
control 535
description 256
documentation 256
equivalent 562
home 569
internal 569
names 256
platform-independent 151
provided 562
specifications 39
subsystems and 246
supported 562
test documentation 256
internal interfaces 569
Internet Information Server (IIS) 573
Internet Inter-Orb Protocol (IIOP) 42
Internet Port Address 613
Internet Server API (ISAPI) 586
Internet spiders 644
internship 685
interoperability 38, 41-42
remote 41
standards 37
Interoperable Naming Service (INS) 564
Inter-Process Communication (IPC) 252
INTERSTAGE 218
invariants 317
inventor notebooks 717
IPC (Inter-Process Communication) 252
iPlanet Application Server 605
ISAPI (Internet Server API) 586
ISO 9001 181, 203, 378
ISVs (independent software vendors) 608

J

J2EE (Java 2 Enterprise Edition) 606
Jackal 644
Jackson, Michael 99
JAD (Joint Application Development ) 128
JADE 644
Japan
computer industry 218
software industry 222
Japan Information Service Industry Association (JISA) 217
Jaslow Laboratory Inc. 715
JATLite 644
Java 43, 211, 591
applets 251, 623
Community Process (JCP) 630
Database Connectivity (JDBC) 604
JAR files 251
Messaging Service (JMS) 292
Remote Method Invocation (Java RMI) 595
Java 2 Enterprise Edition (J2EE) 606
Java Transaction API 594
JavaBeans 37
JavaScript 43, 81
jBoss 605
Joint Application Development (JAD) 128
JOnAS 605
JPython 655
JStar ground surveillance system 376
Jumping Beans 644
just-in-time activation (JITA) 586

K

key performance indicator (KPI) 436
product stability 444
productivity 443
quality 443
reuse 446-447
Knowledge Interchange Format (KIF) 650
Knowledge Query and Manipulation Language (KQML) 644
KXML 650

L

labor hours, measurement of 440
laddering 471
layered systems 195
lead application designers 135
lead engineer
design and 178, 319, 357, 368, 371
management and 486, 489-490
master development plan and 14-16
subproject engineers 489-490
training and 493, 685
lead engineers
management and 490-491
learning curves 455
legacy components 101, 140
renewal 516
legacy experts 122
legacy wrapping 266
components 271
library repositories 519-522
license of information 723
licensing 712, 714
licensing agreement 480
Linux 608
kernel 609
Linux Standard Base 34
LISP 650
Little-JIL 655
Lotus 1-2-3 spreadsheet 715
Lotus Development Corp. 715
Lotus Development Corp. v. Borland International Inc. 715
Lutris 605

M

magnetic tapes 721
marshalling 41
mass market 720
master software development plan
problem description and 677-678
math libraries 469
math subroutines 192
Mathcad 350
McCabe (Cyclomatic) Complexity metrics 448
McKinsey indicators 200-210
measurement
vs. metrics 438
measurements 435-450
data measurements 440
frequency 439
starting a program 436
measures 438
mega-data 136
megaprogramming, 179
message queues 45
message types 650
message-oriented middleware (MOM) 83
meta data 38, 40
meta-analysis 383
metamodels 325
Michigan Auction Bot 644
microelectronics 695
Microsoft
.NET 554, 586, 587
Agent 643
BizTalk 656
Bob 643
Message Queue (MSMQ) 575
NT 418, 630
Technical Certifications 186
Whistler 587
Windows 12
Windows 2000 628, 630
middle-tier components 622-623
middleware 86, 267
mobile agents 643
mobile appliances 642
mobile phones 215
modularity 341
modularity models 342, 343
design 346
software component design 348
Module Interconnection Language (MIL) 179
modules 341, 344
MOM (message-oriented middleware) 83
Motorola Inc. 723
Motorola University 186
MTS (Microsoft Transaction Server) 570, 625-627
multi-agent communication languages 649-652
multi-agent systems 652
multimedia content 710
Multi-Purpose Internet Mail Extensions (MIME) 613
multi-tier architecture 622

N

naming 38
standards 40
National Association of Securities Dealers Automated Quotation (NASDAQ) 711
National Basketball Association (NBA) 723
National Conference of Commissioners on Uniform State Laws (NCCUSL) 720
National Council of Examiners for Engineering and Surveying (NCEES) 681
National Electrical Code 700
National Science Foundation (NSF) 182
native libraries 591
Nautilus 615, 619
NBCC (National Board of Certified Counselors) 684
NEC 215, 220
NetDynamics Application Server 605
Netscape Communications 610
network management agents 644
networking systems 695
networks 312
New York Stock Exchange (NYSE) 723
Nitpick 385
nonconfigured classes 582
nondisclosure agreements 717
nonfunctional specifications 110
Not Invented Here (NIH) Syndrome 457
Novell Certification 186
NSF (National Science Foundation) 182

O

Object Activation Framework (Oaf) 613
Object Builder 139
Object Constraint Language (OCL) 258, 308
object contexts 579
object keys 561
Object Management Group (OMG) 557
object orientation
depth of inheritance tree 448
designers 13
languages 29
programming 36
object pooling 585
object reference 561
Object Request Broker (ORB) 559
ORBit 612
Orbix daemon 546
object-oriented
classes 346
languages 29
programming 36
object-oriented programming languages (OOPLs) 179
objects 36
compared to objects 36
life cycle 560
OPEN (Object-oriented Process, Environment, and Notation)
OPEN Modeling Language 325
one best way. See Taylor, Frederick
one-click patent 716
online shopping cart 592
Ontolingua 652
ontology 650, 651
OOPL (object-oriented programming language) 179
OPEN (Object-oriented Process, Environment, and Notation) 324-326
checklists 339
compliance matrix templates 339
metamodel 330, 360
OPEN Process Framework (OPF) 325
QESTA 338
OPEN Consortium 324
Open CR 445
open distributed processing (ODP) 488
Open Group 34
Open Software Description (OSD) 569
open source 609
open systems 191
OpenDoc 615
OpenEJB open source project 604
operating systems
as component systems 34
modularity models 349
operating systems services 267
Oracle 8i 630
organizational readiness 81-82

P

Patent Act 712
patents 712
payment systems 721
peopleware components 273, 275
percent reuse 446
perfect tender rule 723
Perl 81, 643, 651
persistence
bean-managed 594
container-managed 595
person management components 302
personal agents 643
PES (programmable electronic system) 61-63
Petri Networks 180, 654
pilot projects 462
software components and 481
PORE (procurement-oriented requirements engineering) 469
CBSE, extending to 472
evaluation 474-478
iterations 470-472
Portable Common Tool Environment (PCTE) 180
Portable Object Adapter (POA) 559
ports 562
postconditions 318, 336, 337
preconditions 317
Pricebots 644
primary reuse artifacts 254
ProCD Inc. 722
procedural abstraction 344
process 115, 322
definition of 181
process control 266
component stereotypes 270
process controllers 270
process data cache 266
process/workflow controller 266
processor use 311
producers 327
product components 286
product description 61
product features 408-410
crosscutting 415
models 410-413
product markings 700
product stability 444
productivity 443
product-lines 143, 194, 405
CBSE in 407
development of 417
feature models 410-413
features 408-410
reusable components in 406
variability 151
program fragments 416
programmable electronic system (PES) 61-63
programmers 190
programming 190, 209
programming languages 43, 178
object-oriented 179
proprietary 184
project management 487
project managers 118, 487
projects 115
component delivery 118
definition 115
time box approach 206
PROLOG 651
proofs 382
property law 711
provided interface 8, 562
proxy objects 41
pseudo-code 260
publish/subscribe 43
components 269
process state 266
Python 643

Q

QESTA 338
quality attribute 392, 395-396
Quattro Pro 715
QueryInterface 353
queue managers 270

R

Rational Rose 139
Rational Unified Process 135
Real-Time Object-Oriented Modeling (ROOM) 260
real-time scheduling 394
real-time systems 196
receptacles 562
reconfiguring 529
refactoring 203
regression testing 377
relative cost of reusing (RCR) 446
relative cost of writing for reuse (RCWR) 447
remote event-based notification 45
remote method call (RMC) 41
Remote Method Invocation (RMI) 41
remote procedure call (RPC) 41, 625
remote servers 41
remote services 45
repository 25
required interface 8
requirements, COTS components 467-478
resource use 311
response time 441
return types 312
return-on-investment (ROI) 21
Reusable Assets Framework (RAF) 253
Reusable Assets Specification (RAS) 768
reuse 87, 203, 377
black-box reuse 39
librarians 121
metrics 446-447
obstacles to 144-146
percent 446
primary artifacts 254
process maturity and 156
relative cost of writing 447
secondary artifacts 254
testing of components 509
white-box reuse 38
Reuse Maturity Model (RMM) 157-159
reuse-driven software engineering business (RSEB) 144
applications 408
categories 153
reverse engineering 207, 377
RFP (requests for proposal)
software project management and 489-490
risk management 201-203
RM-ODP (Reference Model of Open Distributed Processing) 253
Robinson-Patman Act 721
rolling contract 722
ROOM (Real-Time Object-Oriented Modeling) 260
RosettaNet 651, 652
royalty fees 480
run-time environment 45
Rural Telephone Service Co. 723

S

safety-critical systems 382
SCALA International AB 205
scalability 622-627
schedule 164
measurement 440
scientific management system 675
SCM (Service Control Manager) 574
scripting language 651
SEC (Securities and Exchange Commission) 186
secondary artifacts 254
Securities and Exchange Commission (SEC) 186
Securities Exchange Act of 1934 186
SEGA Saturn 215
senior developers 120
servant lifetime policies 569
server pages 268
server-side components 575
service agents 647
service brokering 266
service components 83
business case for 93-95
infrastructure support 94
technical sophistication 94
Service Control Manager (SCM) 574
Service Level Agreement (SLA) 442
service objects 266, 267
service provisioning 655
servlets 623
session beans 271, 298, 592
stateful 592
stateless 592
session components 269
session managers 265
sessions 569
Shaw, Mary 110
shrinkwrap license 714
shrink-wrapped software 44
Silverstream 605
SilverStream Application Server 605
Simple Object Access Protocol (SOAP) 41
Sims, Oliver 132
simulation analysis 382
Site Server 573
SLA (Service Level Agreement) 442
Smalltalk 209, 344
SOAP (Simple Object Access Protocol) 575
sockets 591
software
bugs 723
copyright law 713-715
failures 696
license 712
reuse 38
software architects 150, 390
software architectural-level analysis 375
software architecture 101, 149, 191, 368, 391-392
Aesop 385
analysis 375
analysis techniques 381-383
architectural drift 374
concurrency view 400
design principles 400-403
domain-specific 385
formalizing 377-383
logical view 400
pipe and filter 384
refinement 386
team roles and 121-122
software architecture analysis
conservatism 381
proof techniques 382
reduction 383
sampling 382
Software Commerce Broker (SCB) 223
software component consumers 204
software component infrastructure 239, 389
architectural drivers and 393
architectural styles and 396, 398
decomposing 394
functional requirements 395
producers 204
quality attribute requirements 395
software templates 399
software component producers 204
software components 272, 273
certification 359, 701-707
composition 42-44
configuration management 530
consumers 204
custom-designed, testing of 504-507
customization 42
deployment 44-45, 524
development 481
documentation 253
domain-specific 482
executable 518
functionality 50
generic 482
identification 522
implementation 518
Japan 222
library repositories 519-522
licensing 480
modularity models 348
open market for 659
packaging and selling 482
pilot projects 481
producers 204
publishing 516
purchasing 480-481
reconfiguration 529
reuse 144-146, 524, 698
searching for 522
source code access 480
specifications 516, 518
supply chain management and 480
technical 211
testing 504-509
upgrade costs 480
versions 521
software developers
licensing agreement 480
software development
agent-oriented 644
costs 486
life cycle phases 24
metrics 439
software development life cycle (SDLC) 487
software development organization (SDO) 454
intellectual property law and 712
start-up case study 463-465
turf battles 456
software element 8
software engineering 177, 184
agent-oriented 179
business goals in 148
corporate training 186-187
in-the-large 178
in-the-small 177-178
professional degrees in 185
Software Engineering Institute (SEI) 183, 390
software engineers
training 184
software industry 22
annual growth 176
Japan 213, 215
software integrators 535
software license 712, 714
software modeling 277
Software Productivity Consortium (SPC) 461
software reuse 191
approaches to 458-460
barriers to 454-458
Japan 216
large-scale, problems in 244
origin 190
software failure and 503
See also reuse
Software specification and Commerce Language (SCL) 223
software templates 390
software component infrastructure and 399
software testing 468, 474-476, 501
integration testing 382, 476, 501
system testing 501
unit testing 501
solution building process 25
solution component designers 276
solution delivery 124
solution developers 118
solution harvesting 124
solution producers 204
solution project teams 123
solution delivery 124
solution harvesting 124
solution sowing 125
solution sowing 125
SONY Play Station 215
Source Code Control System (SCCS) 180
source codes 150, 231, 347, 695
access to 480
availability to testers 506
escrowing of 729
source lines of code (SLOC) 438
measurement 440
productivity and 443
Speech Act Theory 649
SSR (Strategic Software Research) 217
stable release 609
stakeholders 373
Standard Query Language (SQL) 179, 418
standards 699
ANSI/UL 1998 Standard for Software in Programmable Components, Second Edition 698
domain-specific 35
UL 1998 Standard for Safety-Related Software 698
Standards Technical Panel (STP) 698
StarOffice 607, 610, 619
state machines 346
state management 626, 628
statecharts 247
stateful session beans 592
stateless session beans 592
StateMate 180
static data management components 275
Step-Saver Data Systems Inc 722
STP (Standards Technical Panel) 698
strategic software design 354
Strategic Software Research (SSR) 217
stub objects 41
stub/skeleton 41
subcontracting 137
subject-oriented programming 179
sublicensing 714
subproject CSPM 488
subproject engineers
roles 496
subroutines 190
substitutability 347
subsystems 246
interfaces and 246
Sun Microsystems 37, 605
Supply Chain Management
software components and 480
Supply Chain Management ( SCM) 215
support roles 120
supported interfaces 562
Sybase Jaguar 630
synchronization 584
system architecture 101
system components 273, 274
system generation 375, 385-386
domain-independent 386
domain-specific 386

T

Taylor, Frederick 675
on risk 494
one best way 67, 495-496, 688, 732, 747
Taylorism 676
Tcl 643, 651
team leaders 118
team roles 114
definition 115
software architecture and 121-122
teams
component project 125
definition 115
solution project 123
technical architects 278
technical facilitators 122
technical file 51, 52
technical infrastructure 280
modeling 281-282
technical software components 211
technology transfer agreements 717
telecom provisioning 655
telephone call processing systems 505
Telkel 605
terminals 312
third-party certification 230, 688, 701
thread affinity 583
thread neutral apartment (TNA) 584
throughput 441
Toshiba 216
total cost of ownership (TCO) 81
trade secret law 712
traditional engineering
and component-based software engineering 679-680
practice 676-679
transaction demarcation
bean-managed 594
container-managed 593
transaction managers 272
transaction objects 267
transaction streams 585
transactions 575
Troll Tech 610
type library 574

U

UCITA 187-188, 762
UML (Unified Modeling Language) 29, 50, 243-262, 325
activity diagrams 247
CBSE support 259-260
class diagrams 247
collaboration 247, 250
component models, use in 245-261
components 249
diagrams 56
node 518
revisions 261
statechart diagrams 247
subsystems 246
Underwriters Laboratories Inc. 230, 708
Uniform Commercial Code (UCC) 720
Uniform Computer Information Transactions Act (UCITA) 175, 711, 724-726
Uniform Electronic Transactions Act (UETA) 726
Uniform Resource Locators (URLs) 648
Uniform Trade Secrets Act (UTSA) 712
unit testing 501
United States Patent and Trademark Office (USPTO) 716
universally unique ID (UUID) 40
UNIX 418, 611
Unknown interface 613
use cases 277-280
business 279
component stereotypes 281
system 279
technical 280
user groups 534
users 265
component stereotypes 268

V

validation
application 748
component 690
variation points 409
Vault Corp. 715
VB Script 643
Vector Inc. 222
Visual Component Manager 514
visual controls 265, 268
Visual Developers Studio 526
VisualAge 139
VisualBasic 43
vocabulary 650, 651
Voyager 644

W

Wallnau, Kurt 108
WAP (Wirelesss Application Protocol) 274
warranties 714, 729
WBS (Word Breakdown Structure) 462
Web-enabled applications 145
WebSphere 139
WebSphere Application Server 605
Whelan Associates Inc 715
white-box reuse 38
product lines and 409
Windows Distributed Internet Applications Architecture (DNA) 575
Wireless Application Protocol (WAP) 274
Wireless Markup Language (WML) 274
wiring standard 37
WML (Wireless Markup Language) 274
Work Breakdown Structure (WBS) 462
work products 327
work units 328
workflow 266, 654
component stereotypes 270
workflow agents 270
World Wide Web (WWW) 610, 643
World Wide Web Consortium 275
wrappers 612
Wyse Step-Saver Data Systems Inc 722

X

Ximian 615
XML (Extensible Markup Language) 211, 601, 642
agent-oriented e-commerce and 643
deployment descriptor 601
encoding 650-651
schema 652
XSCL 223

Y

Y2K crisis 694

Z

Zeus 644, 656

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020