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

匿名 (未验证) 提交于 2019-12-03 00:34:01

1.可复用

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

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

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

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

衡量可复用性

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

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

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

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

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

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

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

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

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

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

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

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



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!