内容 | |
---|---|
这个作业属于哪个课程 | 班级博客 |
这个作业的要求在哪里 | 作业要求 |
我在这个课程的目标是 | 熟悉敏捷开发,提升多人协作技能 |
这个作业在哪个具体方面帮助我实现目标 | 阅读《构建之法》,初步认识软件工程 |
快速看完整部教材,列出你仍然不懂的5到10个问题,发布在你的个人博客上。
-
第一章:软件安全性
作者拿飞机的安全来类比软件的安全。是否对于任何软件都需要像对待飞机安全一样来考虑安全性?我觉得飞机上的软件与面向普通消费者的软件所需的安全程度是不一样的。那么具体区别是什么呢?实践中如何评估软件已经达到所需的安全性了呢?
-
第四章:代码风格规范
代码风格的原则是:简明,易读,无二义性 提示:这里谈的风格是一家之言,如 遇争执,关键是妥本着"保持简明,让代码更容易读" 的原则,看看争执中的代码规范能否让程序员们更好地理解和维护程序
作者对于缩进、行宽等给出了最好的方式。我觉得对于一些风格进行规范是必要的,但是现在的IDE可以存储自己的偏好,或者利用
.editorconfigure
等工具来对提交至仓库的代码进行自动化处理,这种情况下还有必要对一些细枝末节进行规范吗? -
第四章:结对编程
结对编程有如下的好处:
1.在开发层次,站对编程能提供更奸的设计质量和代码质量.两人合作解决问题的能力更 两人合作,还有相互激励的作用,工程师看到别人的思路和技能,得到实时的讲解,受到激励,从而努力提高自己的水平,提出更多创意。
2.对开发人员自身来说,结对工作能带来更多的信心,高质量的产出, 能带来更高的满足感。
3.在企业管理层次上,结对能更有效地交流 相互学习和 传递经验,分享知识.能更好 也应对人员流动 总之,如果运用得当,结对编程可以得更高投入产 出比 Return of lnvestment ) 。
作者主要提及了结对编程的好处,把结对编程看作是越野赛车中的驾驶与领航员,驾驶飞机的驾驶与副驾驶。但是,驾驶技能与编程技能并不属于同一类技能,一个偏向于注意力与判断力,另一个偏向于思维活动。另外,结对编程会损耗责任的清晰划分吗?
-
第十五章:代码发布
-
第十六章:创新迷思
迷思之三:好的想法会赢。
作者指出的这个迷思非常有趣。那么这里的好的具体定义是什么呢?仅仅是直觉上觉得好吗?
比如作者指出的键盘的案例,认为这个想法好的根据是更有效率,但是评价的标准是否还应加入学习成本及普及成本呢?
请问 “软件” 和 “软件工程” 这些词汇是如何出现的 - 何时、何地、何人?
“Software”:这个单词最早出现在出版物中是由Richard R. Carhart 于1953年8月出版的书籍。
“Software Engineering”:是由 Margaret Hamilton 发明的, Hamilton是一个自学程序设计,并且当上 MIT 软件工程测试实验室主任(也就是为美国太空总署 NASA 开发电脑系统的单位)的女性。
大家知道了软件和软件工程的起源,请问软件工程发展的过程中有什么你觉得有趣的冷知识和故事?
苹果开发了地图软件,但是这确定是地图?
上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点
Name | uSERS | projects |
---|---|---|
Github | 31,000,000 | 100,000,000 |
Bitbucket | 5,000,000 | unknown |
Lanchpad | 3,965,288 | 40,881 |
SourceForge | 3,700,000 | 500,000 |
GitLab | 100,000 | 546,000 |
OSDN | 54,826 | 6,294 |
Ourproject.org | 6,353 | 1,846 |
1、Microsoft TFS的优缺点:
优点:是对敏捷,msf,cmmi等项目、过程管理、过程改善的支持。任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用。
缺点:能应用起来的团队、公司的数量极少,多数真正用起来,也就是源代码管理这部分,这也仅仅是占TFS极小部分功能。
2、GitHub的优缺点:
优点:GitHub提供Git存储库服务,基于web,允许你使用Git的源代码管理功能,或者其特性。GitHub提供Git存储库服务,基于web,允许你使用Git的源代码管理功能,或者其特性。
缺点:可能不是捕捉创意过程和记录创意点子的最佳工具。Github非常适用代码跟踪,但是却不是最好的设计跟踪工具。
3、Trac的优缺点:
优点:非常灵活,可以随心所欲控制可以和SVN集成
缺点:功能不是很强大
4、Bugzilla的优缺点:
优点:免费,有中文版支持
缺点:快速搜索结果不准确。只能管理缺陷。
5、Apple XCode的优缺点:
优点:编译速度极快,每次操作都很快速和轻松。自动提供撤消、重做和保存功能,无需编写任何编码。
缺点:更新版本后,某个插件可能会失效。
版本管理软件实践
-
Mercurial
-
git