软件构造笔记 5.1 Metrics, Morphology and External Observations of Reusability

本文探讨了软件复用的概念,包括面向复用编程和基于复用编程,强调了复用带来的成本降低和效率提升。文章讨论了可复用性的衡量标准,如模块化、灵活性和稳定性,并介绍了不同级别的复用组件,如源代码复用、模块复用、库复用和系统复用(框架)。此外,还提到了白盒复用和黑盒复用的差异。
摘要由CSDN通过智能技术生成

1.可复用

面向复用编程:开发出复用的软件。

基于复用编程:利用已有的可复用软件搭建应用。

复用的原因:降低成本和开发时间;经过充分测试,可靠、稳定;标准化,在不同应用中保持一致。

开发可复用的软件成本高于一般软件的成本,因为需要足够高的适应性;性能也会差一些,因为针对更普遍的场景,缺少足够的针对性。使用可复用软件库可以对其进行有效的管理。

衡量可复用性

高可复用性应该满足:小、简单;与标准兼容;灵活可变;可扩展;泛型、参数化;模块化;变化的局部性;稳定;丰富的文档和帮助;

2.可重用组件的级别和形态

1)源代码的复用:将部分代码/全部复制/粘贴到程序中。存在维护问题;需要在多个地方更正代码;使用太多的代码(很多版本)。在处理过程中出现高度错误风险,要知道如何使用的软件工作,需要访问源代码。

2)模块级别的复用:类和接口,类是代码重用的原子单元,不需要源代码,类文件或jar / zip,只需要包含在类路径中。文档非常重要(Java API);封装有助于重复使用;管理的代码较少;版本控制,向后兼容仍然存在问题;需要将相关类组合在一起 - 静态链接。

委托(delegation):委托就是当一个对象依赖另一个对象来实现其功能的某个子集时(一个实体将某个事物传递给另一个实体)。

显式委托:将发送对象传递给接收对象

隐式委派:通过语言的成员查找规则

委托可以被描述为在实体之间共享代码和数据的低级机制。

3)库级别的复用:API/package。库是一组提供可重用功能的类和方法(API)。

4)系统级别的复用:框架是一组具体类、抽象类、极其之间的连接关系。可以定制到应用程序中的可重复使用的框架代码。开发者根据框架的规约,填充自己的代码进去,形成完整的系统。

白盒复用:源代码可见,可修改和扩展。复制已有的代码当正在开发的系统并进行修改,可定制化程度高,对其修改增加了软件的复杂性,且需要对其内部有充分的了解。

黑盒复用:源代码不可见,不能修改。只能通过API接口来使用,无法修改代码,简单、清晰但是适应性差一些。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值