首页 > 代码库 > 个人作业—Week1
个人作业—Week1
针对教材内容的问题
阅读教材《软件工程——实践者的研究方法》Roger S.Pressman
在笼统地阅读了教材,大致理清教材知识结构后,提出以下问题作为今后学习地重点:
1) 什么是敏捷软件开发?与传统的过程模型有什么区别?
2) 如何评审软件质量,如何有效地进行质量评审?
3) 采用什么技术来评估影响项目成功的风险?
对于敏捷开发一章做了较为深入的阅读后,提出以下具体问题:
4) 敏捷开发强调软件开发的速度,轻视设计,是否违背软件工程的原则,使得程序的开发过程更难控制?
5) 极限开发(XP)中的关键概念结对编程,两个人面对一台计算机开发代码固然比一个人开发的质量和效率要高,然而与两个人分别进行开发相比何者更优?以及为什么是两个人结对编程,而不是三个人共同开发,两人的效率优势在哪里?
“软件”一词的提出
‘Software’一词最早出现在工程出版物的时间为1953年,在Carhart, Richard的A survey of the current status of the electronic reliability problem中被提出。2000年,耶鲁法学院的图书管理员Fred Shapiro发表了一封信揭露了美国数学家Tukey于1958年发表的论文"The Teaching of Concrete Mathematics"中运用了‘Software’一词,为JSTOR电子档案中该词的最早记载。1995,Paul Niquette声称他在1953年十月最初创造了这个词,虽然他没能找到任何资料支持他的说法。
“软件工程”一词的提出
‘Software Engineering’一词最早由计算机科学家,MIT 软件工程测试实验室主任Margaret Hamilton 为阿波罗空间计划开发登录舱软件时提出。在一次采访中,她说:“我致力于为软件以及那些发明者争取应有的正统性与尊重,所以我开始使用“软件工程”这样的字眼来将之与硬件还有其他工程学类做出区别。”
目前流行的源程序版本管理软件和项目管理软件的特点
1) Microsoft TFS
优点:任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用;集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM;能与 VS 无缝接合
缺点:从 IE 上访问、填写各种开发、测试记录;从 IE 上访问、填写各种开发、测试记录慢;团队的邮件细节配置比较复杂
2) Git
优点:比svn更快速的分支切换;各版本快照(commit)都在本地;有一个全世界最大的开源社区——github
缺点:Git无法简单地实现局部还原
3) Mercurial
优点:跨平台(基于Python);封装好
缺点:分支管理不灵活;支持社区略差
1) GitHub
优点:设计简洁,操作方便;已有很多相当质量的各类项目和优秀开发者在上面
缺点:免费套餐不支持私有项目,团队私有项目价格太高;wiki功能太弱,直接导致文档(对于开源项目很重要)经常被分离到一个独立站点
2) Bitbucket
优点:支持Hg,最易学易用(但不是最强大的)的分布式版本管理工具,同时也支持Git;免费的私有项目,支持5人以内的合作开发;支持中文;官方的git工具SourceTree比GitHub for windows好用。相较github,更适合私有项目管理。
缺点:也许社区活跃程度不如Github?
参考资料:
^ http://en.wikipedia.org/wiki/John_Tukey
^ http://linux.cn/article-4778-weibo.html
^ http://en.wikipedia.org/wiki/Margaret_Hamilton_%28scientist%29
^如何评价微软的TFS(Team Foundation Server),类似的更好替代产品有哪些?
^Git的优缺点
^Git,SVN的优缺点及适合的范围,开源项目?公司项目? - 陶伟基
^ Mercurial 有哪些优点?适合怎样的开发者或团队使用?
^Github 有什么优缺点?把项目直接搭建在 Github 上合适吗?
^GitHub、Bitbucket、Google Code 各有哪些优缺点?
个人作业—Week1