- 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
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:
- 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.
- 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.
- 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?
- 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.
- 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.
- 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?
- 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?
- 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