信息系统项目管理师自学笔记(十二)——构件与软件复用以及软件体系结构

2.10 构件与软件复用

构件(component,组件)是一个功能相对独立的具有可重用价值的软件单元。在面向对象方法中,一个构件由一组对象构成,包含了一些协作的类的集合,它们共同工作来提供一种系统功能。

2.10.1 软件复用

可重用性(可复用性)是指系统和(或)其组成部分能在其他系统中重复使用的程度。软件开发的全生命周期都有可重用的价值,包括项目的组织、软件需求、设计、文档、实现、测试方法和测试用例,都是可以被重复利用和借鉴的有效资源。
软件重用(软件复用)是使用已有的软件产品(如设计、代码、文档等)来开发新的软件系统的过程。软件重用的形式大体可分为垂直式重用和水平式重用。

  • 水平式重用是重用不同应用领域中的软件元素,例如数据结构、排序算法、人机界面构件等。
  • 垂直式重用是在一类具有较多公共性的应用领域之间重用软件构件。
    由于在两个截然不同的应用领域之间进行软件重用潜力不大,所以垂直式重用受到广泛关注。

软件重用的范围不仅涉及源程序代码,Caper Jones定义了10种可能重用的软件要素,分别是项目计划、成本估计、架构、需求模型和规格说明、设计、源程序代码、用户文档和技术文档、用户界面、数据结构和测试用例。

系统的软件重用由可重用的资产(构件)的开发、管理、支持和重用4个过程。工作在重用资产开发过程中的是构件开发者和领域工程师,工作在应用项目开发过程中的是应用工程师。如果要系统地实施软件重用,需要遵循以下原则:

  1. 需要高层领导的支持,并需要有长期的经费支持。
  2. 为了渐进地推行系统的重用,需要规划和调整系统的架构、开发过程、组织结构,并以小规模的先行项目为典型示范,而后再铺开。
  3. 为了重用,先规划架构及其逐步实施的过程。
  4. 过渡到明确的重用组织机构,将可重用构件的创建工作与重用工作分离开,并且提供明确的支持职能。
  5. 在真实的环境中,进行可重用构件的创建和改进工作。
  6. 要将应用系统和可重用构件作为一个经济核算的产品整体进行管理,应当注重公用构件在应用系统及其子系统领域中的高盈利作用。
  7. 要认识到单独的对象技术或者单独的构件技术都是不够的。
  8. 采用竞赛和更换负责人的办法,进行开发单位的文化建设和演化。
  9. 对基础设施、重用教育、技巧培训,要投资和持续地改进。
  10. 要采用度量方法测量重用过程,并要优化重用程序。
2.10.2 构件技术

构件是软件系统可替换的、物理的组成部分,它封装了实现体(实现某个职能),并提供了一组接口的实现方法。可以认为构件是一个封装的代码模块或大粒度的运行时模块,也可以将构件理解为具有一定功能、能够独立工作或与其他构件组合起来协调工作的对象。

  • 对于构件,应当按可重用的要求进行设计、实现、打包、编写文档。构件应当是内聚的,并具有相当稳定的、公开的接口。为了使构件更切合实际、更有效地被重用,构件应当具备可变性(variability),以提高其通用性。
  • 构件应向重用者提供一些公共特性,另一方面还要提供可变的特性。针对不同的应用系统,只需对其可变部分进行适当的调整,重用者要根据重用的具体需要,改造构件的可变特性,即客户化。
  • 需要进行客户化的构件称为抽象构件&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烧麦Sn0wSt@r

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值