Preface
PART ONE Fundamentals
CHAPTER 1 Components Everywhere
1 .1 The Software Component Revolution
1 .2 Component Space
1 .3 Process, Method, & Notation Assumptions
1 .4 Terminology and Acronyms
1 .5 Summary
CHAPTER 2 The Unfinished Revolution
2.1 The First software Crisis
2.2 The Software Factory Regime
2.3 The Second Software Crisis
2.4 The Market Regime
System Architecture Reflects Technology Market
Design for Change
Designing Supply Chains
Designing the Face of Misfit
Design to Technology Gompetence
Sustaining Competence
Design as Exploration
Accommodating the Process Singularity
2.5 Le Proces c''est mort! Vive le Proces!
2.6 Summary
2.7 For Further Reading
2.8 Discussion Questions
CHAPTER 3 Engineering Design & Components
3.1 Fundamental Ideas
3.2 Impact of Software Components
3.3 Designing with & for Components
Ensembles & Blackboards Chapter 5
Model Problems Chapter 6
R3 Cycle Chapter 8
Design Space Management Chapter 7
Storing Competence Chapter 8
Multi-Criteria Evaluation Chapter 9 & Risk/Misfit Chapter 10
Black-Box Visibility Chapter 11
3.4 Summary
3.5 Discussion Questions
CHAPTER 4 Requirements & Components
4.1 Fundamental ideas
4.2 Traditional Requirements Engineering
4.3 Component-Based Requirements Engineering
Dilution of Control
Competing Influences pn Systems
Continuous Character of Requirements Engineering
Requirements Discovery
The Requirements Centrifuge
The Requirements Paradox
4.4 Summary
4.5 Discussion Questions
CHAPTER 5 Ensembles & Blackboards
5.1 Fundamental Ideas
5.2 The Ensemble Metamodel
Component
Quasi-Component Types: Technologies and Products
Component Interface: Properties and Credentials
Inheritance Structure
Interactions
The Ensemble Metamodel
5.3 Modeling Ensembles with Blackboards
Blackboard as Collaboration Diagram
Quantification and Component Binding
5.4 Summary
5.5 Discussion Questions
CHAPTER 6 Model Problems
6.1 Fundamental Ideas
6.2 The Role of Toys
Install It
Imagine the Simplest Spanning Application Possible
Implement the Toy
Repeat Observe, Modify Until Satisfied
Throw It Away!
6.3 From Toy to Model Problem
Hypothesis
A Priori Evaluation Criteria
Implementation Constraints
Model Solution
A Posteriori Evaluation Criteria
Evaluation
6.4 Finding the Right Model Problems
Risk Analysis
Realize Model Problems
Repair Analysis
6.5 Repair and Contingency
6.6 Summary
6.7 For Further Reading
6.8 Discussion Questions
CHAPTER 7 Managing the Design Space
7.1 Fundamental Ideas
7.2 Ensembles, Blackboards, Relations
7.3 Ensemble Management
Notational Conventions
Alternative Refinements
The Fundamental Ensemble Feasibility Predicate
Alternative Remedies
Component Bindings
View
Aggregation
7.4 Component & Ensemble Composition
7.5 Repository Structure
7.G Summary
7.7 Discussion Questions
CHAPTER 8 Storing Competence
8.1 Fundamental Ideas
Ensemble Deconstruction
8.2 Packaging with Ensemble Handbooks
8.3 Automation
8.4 Summary
8.5 Discussion Questions
CHAPTER 9 The Multi-Attribute Utility Technique
9.1 Fundamental Ideas
A Mathematical View of MAUT
A Hierarchical Model View of MAUT
A Process View of MAUT
9.2 Evaluating Components with MAUT
Limitations of Maut 126
Beyond MAUT: Risk/Misfit, Model Problems, Ensembles
9.3 Summary
9.4 For Further Reading
9.5 Discussion Questions
CHAPTER 10 Risk-Misfit
10.1 Fundamental Ideas
The Utility/Risk Complement
Repair Strategy as Risk Mitigator
Normative and Formative Evaluation with Risk/Misfit
10.2 Feature and Repair Analysis
Step 1: Construct Feature/Risk Griterion Mapping
Step 2: Quantify the Risk
Step 3: Identify Repair Options Risk Mitigation
Step 4: Quantify Maximum and Residual Risk
Step 5: Estimate Repair Cost
Step 6: Domination Analysis
Step 7: Calculate Cost-to-Risk Ratio for Each Repair
Step 8: Assign a Dollar Value to Risk and Seiect Repair
10.3 Component Selection
10.4 Why Risk/Misfit
Bandwagon Effect
Featureitis
Buried Design
10.5 Experiences with Risk/Misfit
Avoidance of Weighted Criteria
Per-Component Criteria
10.6 Summary
10.7 For Further Reading
10.8 Discussion Questions
CHAPTER 11 Black Box Visibility
11 .1 Fundamental Ideas
11 .2 Opportunities for Visibility
11.3 Probing
11.4 Snooping
11.5 Spoofing
11.6 Static Program Anaiysis
Binary Viewers and Editors
Disassemblers
Decompilers
11.7 Summary
11.8 Discussion Questions
PART TWO Case Study
CHAPTER 12 The DIRS Case Study
12.1 Sources of Complexity in DIRS
12.2 A False Start
12.3 Regrouping: The DeepWeb Approach
12.4 Implications of DeepWeb
12.5 Commitments
Strategic Decisions
Technology Selection
12.6 Deceptive Simpiicity
The HTTP Server Authenticates Users
Very Large Images
Confidential Data Transfer
Reliable Data Transfer
Authorization of Rights
Editing in ImageEdit
User Chosen Web Browser
12.7 Summary
12.8 For Further Reading
12.9 Discussion Questions
CHAPTER 13 Applet Ensemble: The Opening
13.1 Where are We
13.2 Risk Analysis
13.3 Model Problem
13.4 Model Solutions
Model Solution with Direct HTTP Ensemble
Model Solution with Direct IIOP Ensemble
Extending the Sandbox
13.5 Evaluation
13.6 Summary
13.7 Discussion Questions
CHAPTER 14 Public Key Infrastructure
14.1 Fundamental Ideas
Cryptography
Encryption Using Public/Private Key Cryptography
Digital Signatures and Public/Private Kny Cryptography
Secure Hashing
Whose Public Key Is That Anyway
Digital Certificates
Certificate Authorities and Trust
14.2 Nonrepudiation
PKI in Identification and Authentication
14.3 Confidentiality
PKI in Secure Sessions
14.4 Integrity
PKI in Object and Code Signing
14.5 Summary
14.6 For Furthnr Reading
14.7 Discussion Questions
CHAPTER 15 A Cenificate Odyssey
15.1 Where Are We
15.2 Exploring Certificate Space
Component Choices
Ensemble Context
Identification and Authentication
Object Signing
Secure Sessions
15.3 Sustaining the Public Key Infrastructure
Certificate Management Policies
Certificate Management Software
15.4 Evaluation
15.5 Summary
1 5.6 Discussion Questions
CHAPTER 16 Applet Ensemble: The Middlegame
16.1 Where Are We
16.2 Repair Analysis
16.3 Risk Analysis
16.4 Summary
16.5 Discussion Questions
CHAPTER 17 Secure Applet Ensemble
17.1 Where Are We
17.2 Model Problem
Security Policy
Certificate Management Infrastructure
17.3 Model Solutions
Java Appiet Authorization
Java Application
Evaluation
17.4 For Funher Reading
17.5 Summary
17.6 Discussion Questions
CHAPTER 1 8 Instrumented Model Problem
18.1 Where Are We
18.2 Model Problem
18.3 Model Solutions
Ensemble Refinements
Instrumenting with the Test Harness
18.4 Evaluation
18.5 Summary
18.6 Discussion Question
CHAPTER 19 Sorbet: A Custom Ensemble
19.1 Where Are We
19.2 Model Problem
19.3 Model Solution
19.4 Evaluation
19.5 Summary
19.e Discussion Questions
CHAPTER 20 Hardware Components
20.1 Where Are We
20.2 Risk Analysis
What is NICNAK
Risk Analysis
20.3 Realize Confidentiality Model Problem
Define Model Problem
Build Model Solution
Evaluate Model Solution
20.4 Realize Authorization Model Problem
Define Model Problem
Build Model Solution
20.5 Repair Analysis
20.6 Summary
20.7 Discussion Questions
CHAPTER 21 Into the Black Box
21.1 Where Are We
21.2 Define Model Problem
21.3 Model Solution
Database Mechanism
Certificate Database
Key Database
21.4 Evaluation
21.5 Summary
21.6 Discussion Questions
CHAPTER 22 Applet Ensemble: The Endgame
22.1 Where Are We
22.2 Repair Analysis
22.3 Risk Analysis
22.4 Summary
22.5 Discussion Questions
CHAPTER 23 Secure Applet Ensemble Redux
23.1 Model Problem
23.2 Model Solution
Certificate Interoperability Toy
Netscape Database NDBS Toy
Model Solution
Netscape Navigator Test
Internet Explorer Test
23.3 Evaluation
23.4 Summary
23.5 Discussion Questions
CHAPTER 24 Conclusion & Retrospective
24.1 Multi-Attribute Evaluation
24.2 Conclusion
24.3 Retrospective
The Ensemble''s the Thing
Implementation Supports Analysis
Nonlinear Design
Low-Level Systems Skills Are More, Not Less, Critical
24.4 Summary
24.5 Discussion Questions
PART THREE Onward
CHAPTER 25 Getting Staned
25.1 Build a Competence Center
25.2 Define Your Infrastructure
25.3 Build an Enterprise Design Handbook
25.4 Certify Designers and Lead Engineers
25.5 Summary
CHAPTER 26 The Prophecies
Bibliography
Acronyms
Index
中文翻译目录:
第I部分 基础
第1章 无处不在的组件
1.1 软件组件的革命
1.2 组件空间
1.3 过程. 方法和符号假定
1.4 术语和缩写
1.5 小结
第2章 未竟的革命
2.1 第一次软件危机
2.2 软件工厂体制
2.3 第二次软件危机
2.4 市场体制
2.5 软件过程的消亡, 软件过程万岁
2.6 小结
2.7 进阶阅读材料
2.8 讨论题
第3章 软件工程设计及组件
3.1 基本概念
3.2 软件组件的冲击
3.3 使用及围绕组件进行设计
3.4 小结
3.5 讨论题
第4章 需求和组件
4.1 基本概念
4.2 传统的需求工程
4.3 基于组件的需求工程
4.4 小结
4.5 讨论题
第5章 集成块和黑板
5.1 基本概念
5.2 集成块元模型
5.3 使用黑板为集成块建模
5.4 小结
5.5 讨论题
第6章 模型问题
6.1 基本概念
6.2 玩具模型的角色
6.3 从玩具模型到模型问题
6.4 发现正确的模型问题
6.5 修正和可能情况
6.6 小结
6.7 进阶阅读材料
6.8 讨论题
第7章 管理设计空间
7.1 基本概念
7.2 集成. 黑板. 关系
7.3 集成管理
7.4 组件及集成组合
7.5 知识库结构
7.6 小结
7.7 讨论题
第8章 储备能力
8.1 基本概念
8.2 用集成块手册打包
8.3 自动机
8.4 小结
8.5 讨论题
第9章 多属性效用技术
9.1 基本概念
9.2 使用MAUT评估组件
9.3 小结
9.4 进阶阅读材料
9.5 讨论题
第10章 风险/不匹配
10.1 基本概念
10.2 特征及修正分析
10.3 组件选择
10.4 选择风险/不匹配的原因
10.5 使用风险/不匹配的经验
10.6 小结
10.7 进阶阅读材料
10.8 讨论题
第11章 黑箱技术的可视性
11.1 基本概念
11.2 可视性的时机
11.3 探测
11.4 监听
11.5 哄骗
11.6 静态程序分析
11.7 小结
11.8 讨论题
第II部分 案例研究
第12章 DIRS案例研究
12.1 DIRS复杂性的原因
12.2 错误的开始
12.3 重新分组:Deep Web方法
12.4 DeepWeb的含义
12.5 承诺
12.6 欺骗性的简单
12.7 小结
12.8 进阶阅读材料
12.9 讨论题
第13章 Applet集成块:开盘
13.1 所处位置
13.2 风险分析
13.3 模型问题
13.4 模型解决方案
13.5 评估
13.6 小结
13.7 讨论题
第14章 公共密钥基础构架
14.1 基本概念
14.2 认可
14.3 机密性
14.4 完整性
14.5 小结
14.6 进阶阅读材料
14.7 讨论题
第15章 证书历程
15.1 所处位置
15.2 探索证书空间
15.3 维持公共密钥基础构架
15.4 评估
15.5 小结
15.6 讨论题
第16章 Applet集成块:中盘
16.1 所处位置
16.2 修正分析
16.3 风险分析
16.4 小结
16.5 讨论题
第17章 安全的applet集成块
17.1 所处位置
17.2 模型问题
17.3 模型解决方案
17.4 进阶阅读材料
17.5 小结
17.6 讨论题
第18章 配置模型问题
18.1 所处位置
18.2 模型问题
18.3 模型解决方案
18.4 评估
18.5 小结
18.6 讨论题
第19章 Sorbet:一个定制的组件
19.1 所处位置
19.2 模型问题
19.3 模型解决方案
19.4 评估
19.5 小结
19.6 讨论题
第20章 硬件组件
20.1 所处位置
20.2 风险分析
20.3 考察保密性模型问题
20.4 实现认证模型问题
20.5 修正分析
20.6 小结
20.7 讨论题
第21章 黑箱内部
21.1 所处位置
21.2 模型问题
21.3 模型解决方案
21.4 评估
21.5 小结
21.6 讨论题
第22章 Applet集成块:最后阶段
22.1 所处位置
22.2 修正分析
22.3 风险分析
22.4 小结
22.5 讨论题
第23章 安全applet集成块
23.1 模型问题
23.2 模型解决方案
23.3 评估
23.4 小结
23.5 讨论题
第24章 结论及回顾
24.1 多属性评估
24.2 结论
24.3 回顾
24.4 小结
24.5 讨论题
第III部分 展望
第25章 开始实施
25.1 建立能力中心
25.2 定义基础构架
25.3 建立企业设计手册
25.4 确定设计人员和总工程师
25.5 小结
第26章 未来的发展
26.1 程序员无须更聪明
26.2 技术发展超过程序员的能力
26.3 产生组件标准
26.4 组件标准的扩展及合并
26.5 产生应用于特定环境的组件框架
26.6 出现组件产品线而不是商品组件
26.7 软件工业的责任将导致组件认证
26.8 系统集成变得可预测
26.9 推理系统自动进行系统集成
26.10 产生联合虚拟组件库
26.11 产生独立于标准的组件
26.12 无须编码的软件系统集成
26.13 长远的未来
参考文献
缩略词表
索引