第一周软件构造课总结于感想

在第一周了解了学习这门课暂时要求的相关软件:eclipse,git,以及junit,下面列出了相关的一些网址辅助学习:
https://blog.csdn.net/jhg1204/article/details/45013491?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
http://web.mit.edu/6.005/www/fa16/psets/ps0/
https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%8E%B7%E5%8F%96-Git-%E4%BB%93%E5%BA%93
初步认识软件构造这门课,明白了要从三个维度看待软件系统的构成,要将软件构造看成不同视图之间的转换,先明白软件构造的对象是什么、如何刻画,然后再关注如何构造。

三个维度:
按阶段划分:构造时/运行时视图
按动态性划分:时刻/阶段视图
按构造对象的层次划分:代码/构件视图

不同视图之间的变换:
– 空集->Code
– Code ->Component
– Build-time -> Run-time
– Moment ->Period

其中这张图我认为是对面后面学习的一个概括以及课程的简单的不同视图之间的包含内容以及相互关系:
在这里插入图片描述

在第一节的接下来内容对上图的不同分块稍作了讲解,其中代码快照图的相关只是我这这里列出相关:
原始值:以常量来表达的。上⾯箭头的来源可以是⼀个变量或者⼀个对象的内部区域;
在这里插入图片描述
对象值:⼀个对象⽤⼀个圆圈表⽰。对象内部会有很多区域,这些区域⼜指向它们对应的值。同时这些区域也是有它们的类型的。
在这里插入图片描述
不可更改的对象:在快照图中以双圆圈的边框表⽰,对其修改改变了它指向的⽅向,即指向了另⼀个值,而不是改变其本身的值。
在这里插入图片描述
可更改的值:例如改变stringbuild内部值只是修改值而不是改变指向;
在这里插入图片描述
不可更改的引用:: final 声明,变量⼀旦被赋值就不能再次改变它的引⽤(指向的值或者对象)。
在这里插入图片描述
这一节的内容之后会详细讲述,这里不再赘述。
在1.2节中主要学习了软件构造的主要质量目标:
主要有内部因素以及外部因素;
更重要的质量因素之间的权衡与折中,这需要大量的经验以及一定的艺术因素。

而在此之中,软件构造的五大质量目标是:
Easy to understand: elegant and beautiful code / understandability
Ready for change: maintainability and adaptability
Cheap for develop: design for/with reuse: reusability
Safe from bugs: robustness
Efficient to run: performance

外部因素主要有:
1)正确性:测试优先编程;
2)健壮性:与规格说明书密切相关;
3)可扩展性:应对变化,spec越大越难扩展;
4)可复用性:发现不同软件之间的共性;
5)兼容性:协议,标准化的重要性体现;
6)效率:在正确的基础上讨论效率;
7)可移植性;
8)易用性:对初学者,对大佬不是一个评价标准;
9)功能性:质量提升技术以及对其他方面质量因素的不妥协的前提下提高性能;
10)及时性:抢在需要之前发布;
其他:可验证性) 完整性) 可修复性)经济性)

关于折中:正确性决不妥协;正确的软件开发过程中,开发者应该将不同质量因素之间如何做出折中的设计决策和标准明确的写下来;其中正确性与健壮性以及可重用性与可扩展性尤为重要。

软件构造除需要的技术外,更重要是一种对于客户需求以及软件的宏观把握,在各个质量因素之间权衡折衷,我们需要学习的绝对不只是软件开发技术,更重要的是软件构造,面对客户需求进行设计的艺术!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值