软件构造博客2----软构笔记

目录

一.软件构造的多维视图和质量目标

1 Multi-dimensional software views

多维软件视图

2 Software construction: Transformation between views

3 Quality properties of software systems

内部质量因素

折中处理

五个关键因素


一.软件构造的多维视图和质量目标

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

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

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

我们进行软件构造的时候要先搞清楚:软件构造的对象是什么,如何刻画;

然后再关注如何构造。


·软件构造中应该考虑的重要指标

·如果达不到指标会有的后果

·面向质量指标的软件构造技术

我们不仅要搞清楚“要构造的结果是什么”,还要理解清楚“构造的结果如何才算好”。


软件构造的多维视角:

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

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

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

1 Multi-dimensional software views

多维软件视图

Moment View维度关注特定时刻的软件形态,Period view关注软件形态随时间的变化。

(1)Build-time, moment, and code-level view关注的是原地阿妈如何在程序模块中,例如函数,类,方法,接口中的逻辑架构,在词汇,语法,语义层面进行分析。

(2)Build-time, period, and code-level view关注的是代码随时间的变化过程。

(3) Build-time, moment, and component-level view关注可重用模块被封装为库,文件被封装到包中。

(4) Build-time, period, and component-level view关注各项软件实体随时间如何变化。

(5) Run-time, moment, and code-level view关注代码快照图,也就是描述程序运行时,某一时刻内存里变量层面的状态。

(6) Run-time, period and code-level view关注UML 中的序列图:程序单元(对象)之间的交互

(7) Run-time, moment, and component-level view关注UML 中的部署图。

(8) Run-time, period, and component-level view关注系统层面的事件日志。

2 Software construction: Transformation between views

 从无到有代码:编程;对编写的代码进行审查和静态分析;

从编码到组件:设计ADT和OOP;重用代码和维护程序;

从构建到运行:部署安装;集成测试

从时间点到时间段:版本控制,加载,动态链接,转储,分析,记录,并发

3 Quality properties of software systems

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

外部质量取决于内部质量。

(1)正确性  保证正确,进行测试和调试来发现并消除不正确。进行防御式编程,在写程序的时候就确保正确性;通过形式化验证来发现问题。

(2)健壮性  程序出现异常时不要崩溃。健壮性是对正确性的补充;软件的行为要严格的符合规约中定义的行为,出现规约定义之外情况的时候,软件要做出恰当的反应。

(3)可扩展性  对软件进行简约主义设计和分离主义设计。

(4)可复用性  一次开发多次使用;发现代码之间的共性。

(5)兼容性  不同软件系统之间相互可容易地集成。难点:保持设计的同构性。

(6)效率  性能毫无意义,除非有 足够的正确性;对性能的关注要与其他质量属性进行折中。

(7)可移植性  软件可以方便的在不同的技术环境之间移植。

(8)易用性  软件容易学,能够安装,操作,监控;给用户提供详细的指南,了解用户需求。

(9)功能性  功能过多会导致易用性降低。

(10)及时性  及时性就是软件系统在用户需要的时候及时发布的特性。

(其他)完整性,可验证性,可修复性,经济性......

内部质量因素

可读性,可理解性,清晰性,大小

折中处理

如果不引入各种保护措施怎么获得完整性?这将不可避免的妨碍易用性。

正确的软件开发过程中,开发者应该将不同质量因素之间如何做出折中的设 计决策和标准明确的写下来。

虽然需要折中,但“正确性”绝不能与其他质量因素折中!!

五个关键因素

▪Elegant and beautiful code :容易理解

▪ Design for/with reuse :开发成本低

▪ Low complexity :意欲改变,易于扩展

▪ Robustness and correctness 减少bug

▪ Performance and efficiency 提高运行效率

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值