【课前思考】
�1、什么是软件复用?可复用资产(软件元素)包括哪些?
  2、为完成软件复用,需要注意解决哪些问题?
  3、软件复用有哪两类?各表明什么活动?
  4、列举可能复用的10种软件元素?
  5、软件复用需要4个并行过程,分别叙述每一过程的工作。
  6、论域分析的步骤有5步,试说明它们所做的工作。
  7、什么是论域特征?它的作用是什么?
  8、设计需求和设计级构件需要遵循什么原则?设计代码级构件需要遵循什么原则?
  9、复用技术对可复用构件库的要求是什么?
  10、可复用构件库的组织方法主要有枚举分类法、关键词分类法、多面分类发、超文本组织法等,试说明每一种组织方法的基本思想是什么?
  11、可复用构件的3C模型的要点有哪些?
  12、为什么要有良好的软件体系结构?
  13、分层式体系结构有4层,试述每一层的具体作用以及各层间的关系。
  14、检索可复用构件库的方法主要基于关键词的检索、多面检索、超文本检索等,试说明每一种检索方法的要点。
  15、为易于理解构件,可复用构件库的说明文档应当包含哪些内容?
  16、有两种构件合成的方法:基于功能的和基于数据的。试说明每一种方法的要点。
  17、类库的组织采取什么方式?
  18、类的合成有两种方式:构造法和子类法。它们各自以什么方式组装类?

【学习目标
 �1. 了解软件复用的概念、过程和意义。
  2. 了解软件复用的类型、复用的目标和内容。
  3. 了解针对复用的过程模型和论域工程。
  4. 了解可复用构件的构造原则和质量标准。
  5. 了解可复用构件库的组织,包括可复用构件的3C模型。
  6. 了解软件的分层式体系结构。
  7. 了解软件构件的复用过程(包括构件的检索与提取、理解与评价和修改)
  8. 了解面向对象的软件复用技术
  9. 了解支持软件复用的CASE工具需求

学习指南
  本章介绍了软件工程的一个重要分支--软件复用技术。在学习的过程中,把握住基本思路,才能系统地了解软件复用的精髓。
  软件复用是为了更快、更好、更省地开发和维护软件,因此,要有计划、有目的地开展软件复用工作。要实现软件复用,必须改变传统的软件开发过程,引入构件概念,将软件开发过程分解为论域工程和应用系统工程。
  论域工程是复用的关键,它的目的是标识、构造、分类和传播可复用的软件元素--构件。通过检查表和论域特征,从一些现有的应用中提取论域中的构件。
  通常,需要从需求和设计级、代码级开发可复用构件,要求作到将构件的上下文与构件本身分离,以达到抽象化、参数化的目的。抽象化的方式有功能抽象、数据抽象和过程抽象等三种。
  为实现软件复用,必须建立可复用构件库和良好的软件体系结构。构造可复用构件库有4种主要组织方法:枚举分类、关键词分类、多面分类、超文本组织法。对于可复用构件的描述最著名的是3C模型。此外,软件体系结构的作用也很关键。本章主要介绍的是4层的分层结构。
  软件构件的复用方面,本章从检索与提取构件、理解和评价构件、修改构件、构件组装(合成)等四个方面进行了介绍。进而,介绍了在面向对象系统中如何组织类库,对于类库的检索以及类的合成。
  最后,本章总结了在软件复用的主要几个方面:论域分析、构件开发、可复用构件库组织与检索、构件合成等阶段的关键子任务和支持工具。
  学员可循以上的思路,系统地了解复用的思想、主要过程、实施方法、建造原则和质量要求,从而掌握软件复用的内容。

【难重点
  ◇ 软件复用是利用已有的软件元素来开发新软件。
  ◇ 软件复用有两类:横向复用和纵向复用。
  ◇ 可复用的软件元素有项目计划、成本估计、体系结构、需求模型和规格说明、设计、源程序代码、用户文档和技术文档、用户界面、数据结构、测试用例。
  ◇ 软件复用由可复用资产的创建、管理、支持和复用4个过程组成。
  ◇ 论域工程的目的是界定、构造、分类和发布一组可复用的软件要素。
  ◇ 衡量软件构件的质量标准为正确性、可复用性、可理解性和易组装性。
  ◇ 可复用构件库的组织方法主要有枚举分类法、关键词分类法、多面分类发、超文本组织法。
  ◇ 可复用构件的3C模型的要点是概念、内容、上下文。
  ◇ 分层式软件体系结构有4层:应用软件层、特定业务层、中间件层、系统软件层。
  ◇ 检索可复用构件库的方法有关键词检索、多面检索、超文本检索等。
  ◇ 两种构件合成的方法:基于功能的和基于数据的。
  ◇ 类的合成有两种方式:构造法和子类法。