可复用性的度量、形态与外部表现

1.软件复用

两个方面:

(1).programming for reuse 面向复用编程:开发出可复用的软件
(2).programming with reuse 基于复用编程:利用已有的可复用软件搭建应用系统
【软件构造】5.1

优势:

(1).降低成本和开发时间
(2).经过充分测试,可靠、稳定
(3).标准化,在不同应用中保持一致

开发可复用的软件(for reuse)

开发成本高于一般软件的成本:要有足够高的适应性
性能差些: 针对更普适场景,缺少足够的针对性

使用已有软件进行开发(with reuse)

可复用软件库,对其进行有效的管理
适配

2.如何度量可复用性

(1).复用的频繁程度
(2).复用的代价:获取、适配,扩展、实例化、与其他部分互联的难度
具有高复用性的软件:
小、简单;与标准兼容;灵活可变;可扩展 ;泛型、参数化;模块化;变化的局部性;稳定;丰富的文档和帮助

3.可复用组件的级别

代码复用的种类:

白盒复用:源代码可见,可修改和扩展
黑盒复用:源代码不可见,不能修改 通过API接口来使用

a.源代码层面的复用????Copy

https://github.com/search
https://searchcode.com/

b.模块层面的复用:类或接口

复用方式:继承和委托

c.类库层面的复用:API/Package

d.系统层面的复用:Framework

框架:一组具体类、抽象类、及其之间的连接关系
开发者根据 framework的规约,填充自己的代码进去,形成完整系统
Library与Framework的区别:
【软件构造】5.1

4.可复用性的外部观测

(1).类型可变:适应不同的类型,且满足LSP。
(2).功能分组
(3).实现可变:ADT有多种不同的实现,提供不同的representations和abstract funtion,但具有同样的specification (pre-condition, post-condition, invariants),从而可以适应不同的应用场景
(4).表示独立:内部实现可能会经常变化,但客户端不应受到影响。
(5).共性抽取:将共同的行为(共性)抽象出来,形成可复用实体 。

相关文章:

  • 2021-07-07
  • 2021-07-15
  • 2021-12-28
  • 2021-06-13
  • 2021-06-25
  • 2021-04-11
  • 2021-09-04
  • 2021-06-03
猜你喜欢
  • 2021-11-29
  • 2021-11-15
  • 2021-10-05
  • 2021-08-02
  • 2021-12-05
  • 2021-07-21
相关资源
相似解决方案