哈尔滨工业大学软件构造笔记第一章

1.1.1 构建时视角下的软件系统
  1. Buid-time, moment, and code-level

代码如何在逻辑上被基本的程序块,例如函数、类、方法、接口等组织起来,以及其之间的依赖关系

词汇层面:代码;semi-structured source code

语法层面:AST,结构的嵌套等等

语义层面:类图

  1. Buid-time, period, and code-level

代码在时间上的变化,例如代码行的增加、删除和修改

Code churn 代码变化: Lines added, modified or deleted to a file

from one version to another.

  1. Buid-time, moment, and component-level

在物理上:源代码被组织为文件,文件被组织进目录;文件被包含在包中,在逻辑上也被包含在容器和子系统中;可复用的模块被组织为库。

Maven python的库

更高级的编程语言

静态和动态

  1. Buid-time, period, and component-level

软件系统中的实体如文件、包、容器、库随时间如何变化,或称版本如何变化。

 Software Configuration Item (SCI,配置项)

其实就是最小单元 如文件 测试类

Version Control System (VSC)如git

RunTime

Run-time, moment, and code-level

快照图(snapshot diagram)、内存转储(memory dump)。主要关注软件在运行时保有的数据及其在内存中的结构

Run-time, period,and code-level

UML:顺序图(sequence diagram)(主要关注程序单元之间的交互)、运行时栈跟踪(execution stack trace)( 用日志方式记录程序执行的调用次序)。

时序图记录单元之间交互、执行跟踪通过log记录

Run-time, moment, and component-level

UML:部署图(各个组件被部署在了哪些机器上)。

Run-time, period,and component-level

事件日志从系统层面为系统管理员提供信息。每一类事件被分配唯一的“代码”来格式化输出人类能读懂的信息。

事件日志跟执行追踪

1.3.1外部质量因素
  1. 正确性Correctness

测试和调试:Testing and debugging

防御式编程:defensive

形式化方法:

  1. 健壮性

健壮性是对正确性的补充

正确性:软件的行为要严格的符合规约中定义的行为

健壮性:出现规约定义之外的情形的时候,软件要做出恰当的反应

健壮性:出现异常时不要“崩溃

  1. 可扩展性

 scale 规模越大,扩展起来越

不容易

Design simplicity 简约主义设计

Decnetrallization分离主义设计

  1. 可复用性

一次开发,多次使用

  1. 兼容性
  2. 效率

性能毫无意义,除非有足够的正确性

对性能的关注要与其他质量属性进行折中

 过度的优化导致软件不再适应变化和复用

  1. 可移植性
  2. 易用性
  3. 功能性
  4. 开发时间
  5. 可验证性、完整性、可修复性、经济性

1.3.2内部质量因素

1.代码行数和复杂度

Lines of

Code (LOC), Cyclomatic Complexity

  1. 低耦合,内聚

coupling, cohesion

  1. 可读性

Readability

  1. 可理解性

Understandability

  1. 简洁度

 Clearness

  1. 大小

Size

  • 23
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值