【软件构造】5.1 可复用性的度量、形态与外部表现

软件构造系列学习笔记(5.1)————可复用性的度量,形态和外部观察 可复用性的度量,形态和外部观察 第3章介绍了软件构造的核心理论(ADT)与技术(OOP),其核心是保证代码质量、提高代码适应性和复用性。 本章面向一个重要的外部质量指标:可复用性——如何构造出可在不同应用中重复使用的软件模块/API? 5-1节探讨可复用软件的形态与特征,下一节学习“如何构造”。 目录 什么是软件复用 如何度量复用性 可复用组件的级别和形态 对可复用性的外部观察 ... 阅读详情

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

1.软件复用

两个方面:

(1).programming for reuse 面向复用编程:开发出可复用的软件
(2).programming with reuse 基于复用编程:利用已有的可复用软件搭建应用系统
在这里插入图片描述

优势:

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

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

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

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

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

2.如何度量可复用性

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

3.可复用组件的级别

代码复用的种类:

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

a.源代码层面的

软件构造课程复习笔记 软件构造 课程 重点 期末 复习笔记 大纲 软件开发 软件测试 哈尔滨工业大学 Outline Focus Software Construction Course Java 软件构造多维视图 软件构造质量目标 软件测试与测试优先 软件生命周期与配置管理 Git 数据类型与类型检验 设计规约 静态与动态数据类型检查 设计规约 抽象数据类型 ADT Immutable Mutable类型的等价 可复用性 适配器 Adapter 装饰器 Decorator 策略模式 模版模式 迭代器 可维护性 模块化编程 阅读详情

相关推荐

C#上位机实战:用Beetle.JT808解析JT808协议与避坑指南

车联网的位置服务与车辆监控平台,通常依赖车载终端通过TCP长连接持续上报数据,JT808协议正是这一场景下的主流通信规范。协议数据帧包含字节序、转义、异或校验等底层细节,自行构建解析层不仅工作量大,而且容易在粘包、乱码等问题上反复踩坑。基于beetleX网络库的Beetle.JT808组件,采用订阅事件模型将连接、解码、消息分发拆分为独立回调,帮助C#开发者快速搭建高并发网关。无论是车辆监管、北斗定位还是物流调度,都能借助它完成终端接入、指令下发和状态管理,将精力聚焦在业务逻辑,同时规避各类协议陷阱,提升系

weixin_34378767的博客 856

Transformer数学推导——Q38 旋转位置编码(RoPE)的复数形式 对注意力分数的几何影响分析

RoPE 的复数形式为自然语言处理中的位置编码提供了创新且有效的解决方案。通过深入的数学理论分析,明确了其对注意力分数的几何影响及在捕捉位置信息方面的优势。在 LLM 的实际应用中,RoPE 复数形式在多个任务和场景中展现出强大的性能,特别是在处理长序列文本时,能够有效捕捉长距离依赖、缓解位置编码局限性并提升处理效率。然而,RoPE 复数形式也面临计算复杂度高、超参数调整困难和位置信息平衡等挑战。通过合理的优化策略和与其他技术的结合,有望进一步提升其性能。

墨顿随笔 1419

最简解决 Unity Error Registry configuration is invalid Unable to connect https packages.unity.cn

前言 在学习其他大佬项目的时候,大佬说项目能直接运行,然后我拉下来就报如下错误 Unity报错:[Package Manager]Error Registry configuration is invalid:Unable to connect “https://packages.unity.cn” 翻了很多博发现是 unity3d 中国增强版的原因,中国增强版屏蔽了国外自定义的插件仓库。 安装 非中国增强版后可以成功打开。 然后大家给出的解决方案都比较激进,大抵就是更换Unity版本就OK了。 当然我是觉

Gipsyz的博客 6842

服务器被矿工入侵记录

一次服务器被矿工入驻的处理记录

王瑞的技术专栏 1333

Oracle VM VirtualBox虚拟机网络配置与静态IP设置实战

本文详细讲解了Oracle VM VirtualBox虚拟机的网络配置,特别是如何设置静态IP以实现稳定访问。文章对比了NAT、桥接、仅主机等网络模式,并提供了从VirtualBox管理界面到Linux系统内部的完整配置步骤,帮助用户解决IP变动问题,构建可靠的本地开发测试环境。

weixin_28365523的博客 511

MQTT阿里云OTA 调试记录

2.验证,这个验证是什么意思呢,就是阿里云会把你包的信息,比如包大小,streamid(相当于包的识别码),版本号发送给你的设备,然后如果你没发送升级成功的包给阿里云,这里会是一直验证中的状态,那你的设备每次重新连接阿里云,发送connect包给阿里云的时候,阿里云就会发送一次这个验证(upgrade)包。提取到了之后就可以发送请求包了,这个请求包比较坑,也可能是我没付费,他的包一次最多只有1024个字节的数据。之前说了,验证状态下,设备发送connect包给阿里云,阿里云就会发一个upgrade包给你。

qq_42585211的博客 1231

Camera metadata

Camera metadata

weixin_42136255的博客 2529

YOLOv11模型改进:利用注意力机制实现小目标检测精度跃升

如果你在实操中遇到精度提升不明显或速度下降过多的问题,不妨尝试调整注意力模块的类型(如替换为CA)或插入层级,或针对性优化小目标的数据集增强策略。记住,小目标检测的核心是“特征强化与空间定位”,只要结合业务场景灵活调整注意力模块的组合,你也能让YOLOv11在小目标识别任务中脱颖而出。接下来,我们从模块选型到代码落地,一步步带你打造“小目标检测专精版”YOLOv11,真正帮你解决工业场景中(如安防、质检)的小目标识别痛点。在城市安防场景中,改进后的YOLOv11对远处行人、车辆(小目标)的识别准确率提升。

m0_71589036的博客 454

工业激光器核心参数详解与选型实战:从理论到产线落地(五)

本文深入解析了脉冲激光加工的三大核心参数——脉宽、重复频率和脉冲能量的协同作用机制。通过公式推导和产线案例,揭示了参数设置对加工良率的关键影响:1. 脉宽决定热影响区大小,缩短脉宽可显著提升加工精度;2. 重复频率影响加工速度和热积累效应,需平衡效率与质量;3. 脉冲能量决定材料去除量,过大易导致加工缺陷。文中以ABS塑料打标、模具清洗和微孔钻孔为例,展示了参数优化如何将良率从65%提升至99%,并提供了不同应用场景的参数选型表和调试技巧,强调峰值功率比平均功率更具决定性作用。

weixin_44520581的博客 2422

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 【软件构造】3.5 ADT和OOP中的等价性
下一篇: 【软件构造】5.2 面向复用的软件构造技术
fndfnd
博客等级 码龄8年 17粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值