软工博客一
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2020春季计算机学院软件工程(罗杰 任健) |
这个作业的要求在哪里 | 第一次个人作业 |
我在这个课程的目标 | 不求变强,只求做好,成为一颗有用的螺丝钉。 |
这个作业在哪个具体方面帮助我实现目标 | 读通教材、理解团队配合和个人发展 |
参考资料 | 链接地址1 |
一、快速看完整部教材,列出你仍然不懂的5到10个问题
问题一、
像软工一样无聊的课程很多,比如航概,思修,毛概。尤其是政治课程,无法提高我们的专业水平,我们应该以怎样的态度面对这些课程?作为学生我们怎么才能避免走入上课乏味、瞬间入睡这样的大学陷阱?
问题二、
20%的(测试)工作耗费80%的时间,我们究竟应该如何定义工作量?在一个团队当中,测试人员的工作量如何定义?成绩又应当如何评定?敏捷流程中没有明确表明到底何人,何时,以何种优先级来完成这20%的任务。
问题三、
文中提到一个细节,公司通过发放毛绒玩具提高了程序员的劳动生产力,既然这样,为什么学校没有给学生发放毛绒玩具?这种方法能否提高学生的代码速率?
问题四、
在团队换人过程中遇到熟人社会该怎么办?例如:甲乙丙丁四人,丁的工作量最少,但丁和甲乙同一宿舍。最后投票的结果是丙出局,这是否对丙不太公平?换句话说,规则在熟人社会是否有实际效力?另一方面,即便产生效力,大家都是同学,日后相见会不会尴尬?
问题五、
在Page237页有这样一个急功近利的青年叫作小飞,他迫切渴望成为白领,这也是每个刚毕业大学生的真实想法。阿超的建议是一步步在历练中实现。我们在学校有办法提前练好类似于传球、运球的技能吗?
问题六、
在一个团队项目中只有一个PM,那样其他同学的历练是不是无形中减少了。或者说每个同学只获得了属于他身份位置上的经验。
二、请问 “软件” 和 “软件工程” 这些词汇是如何出现的 - 何时、何地、何人?
“software”:1958年,Tukey的论文”The Teaching of Concrete Mathematics”中首次使用software的概念。
1953年Richard R.Carhart在备忘录中使用software一词
“software engineering”:1968年在第一个软件工程大会上,NATO首次提出software engineering的概念。
三、【附加题】:大家知道了软件和软件工程的起源,请问软件工程发展的过程中有什么你觉得有趣的冷知识和故事?(+2')
千年虫事件:在上个世纪,软件业者从来没想过他们的代码和产品会跨入新千年。
就像我们现在写的万年历一样,例如2020/03/05,如果我的代码使用到9999/12/31,就可能重演千年虫事件。
四、上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?
用户(估计)
Name | Users | Projects |
---|---|---|
GitHub | 31,000,000 | 100,000,000 |
Bitbucket | 5,000,000 | Unknown |
Launchpad | 3,965,288 | 40,881 |
SourceForge | 3,700,000 | 500,000 |
GitLab | 100,000 | 546,000 |
GNU Savannah | 93,346 | 3,848 |
OSDN | 54,826 | 6,294 |
Ourproject.org | 6,353 | 1,846 |
-- 数据来源《维基百科》
优缺点
Microsoft TFS
优点:任务版本上能将需求、项目进度一览无余,对于小团队来说比甘特图更有用;集成了项目管理、版本控制、bug跟踪,能有效实现SCRUM;能与VS无缝接合。
缺点:功能太复杂,不够直观;访问、填写记录不方便;需要64位操作系统。
Github
优点:比svn更快的分支切换;随时提交代码;有全世界最大的开源社区
缺点:由于是分布式,如果忘记push就会导致不同步;windows下使用命令行不太方便。
Apple XCode:
优点:可以自动创建分类视图;自动提供撤销、重做和保存功能
缺点:更新版本可能导致插件失效
Mercurial
优点:更轻松的管理。 更健壮的系统。对网络的依赖性更低。
缺点:跨平台性能较差,容易出现编码问题;分支管理不灵活。
Bugzilla
优点:免费,支持汉化
缺点:只能管理缺陷
Trac
优点:Trac做一个SCM配置管理平台,意味着它有良好的扩大性;Trac的权限体系是比拟齐备的设计;十分灵敏,可以为所欲为的定制,可以和TortoiseSVN集成。
缺陷:不支持多项目,