【无标题】软件构造心得整理

1.1多维度软件视图

一、软件构造的多维度试图和质量目标

  • “软件构造的对象是什么”、“如何刻画”、“如何构造”

1.从三个维度看软件系统的构成

2.用什么样的模型/视图描述软件系统

3.将“软件构造”看做“不同视图之间的转换”

二、理解如何构造的过程和结果是好的

1.软件构造过程中应考虑的重要质量指标

2.如果达不到期望的质量目标会有什么后果

3.有哪些面向质量指标的软件构造技术

三、多种软件构造视图

1.按阶段划分:构造时/运行视图

2.按动态性划分:时刻/阶段视图

3.按构造对象的层次划分:代码/构件视图

四、软件构造的五个关键质量目标

1.Easy to understand

2.Ready for change

3.Cheap for develop

4.Safe from bugs

5.Efficient to run

五、多维度软件视图

瞬间

时期

代码级

组件级

代码级

组件级

构建时间

源代码、AST、接口类,属性,方法,(类图)

包,文件,静态链接,库,测试用例,构建脚本

代码变动

配置项目,脚本

运行时间

代码快照、清除打印

包,库,动态链接,配置,数据库,中间件,网络

执行,并发多线程,堆栈跟踪

事件日志,多进程,分布式处理

过程调用图、消

息图(序列图)

  • 构造时间视图
  1. 构造时间,时刻和代码级视图

三个内在关联形式:词汇层面,语法层面(例如抽象语法树AST),语义层面

  1. 构造时间,阶段和代码级视图

Code churn 代码变化:Lines added,modified or deleted to a file from one version to another.

  1. 构造时间,时刻和组件级视图

库链接,其中库的来源可以是操作系统提供的库,编程语言提供的库,第三方公司提供的库,你自己积累的库,在编程时和build时,须告诉IDE和JVM在哪里寻找某些库。(静态链接发生在构造阶段,动态链接)

  1. 构造时间,阶段和组件级视图
  • 运行时视图

(1)运行时,时刻和代码级视图

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

(2)运行时,阶段和代码级视图

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

(3)运行时,时刻和代码级视图

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

(4)运行时,阶段和代码级视图

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

1.2软件构造时的视角转换

  • 软件构造视角转换的种类
  1. 无->代码

Programming/Coding(ADT/OOP)

Review,static analysis/checking

  1. 代码->组件

Design(ADT/OOP;Reusability;Maintainability)

Build:compile,static link,package,install,etc;

  1. 构建时->运行时

Install/deploy

  1. 时刻->阶段

Version control;

1.3软件系统的质量目标

  • 外部质量因素影响用户,内部质量因素影响软件本身和它的开发者,外部质量取决于内部质量

二、外部质量因素

  1. 正确性
  2. 健壮性
  3. 可扩展性
  4. 可复用性
  5. 兼容性
  6. 效率
  7. 可移植性
  8. 易用性
  9. 功能性
  10. 开发时间
  11. 可验证性、完整性、可修复性、经济性
  • 内部质量因素
  1. 代码行数、复杂度
  2. 低耦合、凝聚
  3. 可读性
  4. 可理解性
  5. 清洁度
  6. 大小
  • 软件构造的关键注意点:正确性、健壮性、可扩展性、可复用性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值