软件工程作业一

Task1:注册个人博客账号

Task2:注册码云账号

  • 目的:管理你的项目,记录(源码、文档,历次版本变更,bug发现与修复)等信息。
  • 码云地址:https://gitee.com/holmec/events

Task3:提出问题

快速通读教材《构建之法》,并参照提问模板,提出5个问题。
如何提出有价值的问题? 请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及 在互联网时代如何提问题。 还有这些要点:

  • 在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文
  • 列出一些事例或资料,支持你的提问。
  • 说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?

问题一:

第3页中有这样一段话:

软件在运行过程中还会出这样那样的问题,也许我们要时不时给软件打一个补丁,或者维护众多的服务,团队的新老队员要一起修复各种各样的问题。

个人认为软件后续维护工作的重要性不亚于其他任何工序,那么在前期设计中是不是应该重视后续维护的难度呢?如果有一个软件前期投入多,但经营一段时间后发现回报并没有达到预期,那么应该继续投入精力维护还是直接抛弃?

问题二:

第4页提到:

在相关法律完善之前,软件行业还有一个行规,即应该有职业道德规范来约束IT人的行为。

这个职业道德规范具体的定义是什么?例如现在市面上常出现的破解版软件,发布者可能出发点只是想要给更多人提供使用、学习的机会,但另一方面这种行为又触犯了版权方的利益,那么如何定义这种行为是否是不道德的呢?

问题三:

在第87页中提到的“如何结对编程”的第三点:

3.驾驶员和领航员不断轮换角色,不要连续工作超过一小时,每工作一小时休息15分钟。领航员要控制时间。

个人认为结对编程之所以能提高效率及代码质量,最关键的原因在于能够做到实时复审。通常来说人思维速度是快于手输入代码的速度,那么此时领航员就有时间做额外的思考,也就是复审。以此推断出结对编程的核心是领航员。驾驶员和领航员必定要存在水平差异(如果两个人都是具备领航员水平的话,那担任驾驶员的那位是不是有点大材小用了?),那么如果驾驶员和领航员不断轮换角色,当相对低水平的人担任领航员时是不是就没有体现结对编程的好处了?
如果有两个都具备领航员水平的人,那么独立编程是不是优于结对编程?

问题四:

第13章中介绍了许多软件测试的方法,那么在软件开发的过程中要全部使用这些测试方法吗?这样需要投入大量的人力物力,如果测试得到的回报与投入不成正比,那是不是浪费了资源?如果只抽样测试,又担心存在未知的bug。如何去权衡呢?

问题五:

第260页提到:

大家平时都说要向某某大师或某某产品学习,把最重要的功能做好交给用户,把那些无关紧要的功能藏起来,做减法……但是程序员们还是会想着把高级功能“秀”出来。我们都用过各种电视/DVD播放器的遥控器,功能很强,按钮很多吧?你有没有注意到老人家使用遥控器时的困难?

这段话中提到的遥控器的例子,实际上,使用电视等家电、数码产品的对象更大比重是青年、中年人,老人相对来说较少,那么其实遥控器的设计过程中老人使用的困难并不是需要考虑的?推导至软件开发过程中,在考虑用户体验、用户需求时,是不是优先考虑比重更大的对象,如果小群体的需求或体验与大群体有矛盾的话,那是不是就可以不考虑小群体的需求或体验了?如何平衡两者呢?

【附加题】:请将问题提交至豆瓣:https://book.douban.com/subject/27069503/, 并在博客中给出链接
在豆瓣页面的最下方 “读书笔记” 那里发言, 《构建之法》的作者会亲自答复问题
豆瓣链接:https://book.douban.com/review/9644314/

Task4:Git基本操作练习

完成以下Git基本操作

  1. 将https://gitee.com/happyfaye/SoftwareEngineering仓库fork到自己的账号下

  1. 将远程仓库clone至本地仓库
    配置↓

  1. 在本地仓库添加学号姓名.txt(例如:201621123000happy.txt),并提交至远程仓库

  1. 在本地修改该文本内容并再次提交

  1. 给出提交历史信息截图

posted on 2018-09-10 18:15  HolmeC  阅读(140)  评论(0编辑  收藏  举报

导航