针对教材内容的问题

阅读教材《软件工程——实践者的研究方法》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的更多相关文章

  1. 个人博客作业Week1

    个人博客作业Week1 一.问题 通读<构建之法>我有一下几个问题 PM没有参与代码编如何进行管理. 软件工程师的职业资格考试对我们来说很有必要吗. 当我们为用户开发软件时我们需要了解用户 ...

  2. 集大软件工程15级个人作业Week1

    集大软件工程15级个人作业Week1 孙志威 201521123077 博客园主页 码云地址 阅读参考材料,并回答下面几个问题 (1)回想一下你初入大学时对网络工程专业的畅想 当初你是如何做出选择网络 ...

  3. 团队博客作业Week1 --- 团队成员简介

    团队博客作业Week1 团队作业1 我们团队是一个以功能团队模式组建而成的团队,我们总共有5位队员,分别是:李剑锋.陈谋.卢惠明.潘成鼎.仉伯龙. 中间的那位就是李剑锋,我们的PM(项目经理).性格热 ...

  4. [buaa-SE-2017]个人作业-Week1

    个人作业-Week1 Part1:教材中不懂的问题 1.根据书中"除了前20的学校之外,计科和软工没有区别"所以计算机科学这个专业也许在我们学校是和软件工程有区别的,但是可以料想的 ...

  5. [BUAA_SE_2017]个人作业-Week1

    个人作业-Week1 疑问 教材中说,PM在衡量需求时需要方方面面的能力与研究.可是,当下许多互联网IT公司只承担外包业务,即客户给什么需求就实现什么需求,甚至可能不要求其它先进的功能.此时,开发团队 ...

  6. 团队博客作业Week1

    Study the projects done by previous student groups - View their blog site, use their software, email ...

  7. 团队博客作业Week1 Team Homework #3软件工程在北航

    这次我们采访了一位大四的学姐,让她简单地谈了谈去年学习软件工程的经历和感受. 在完成软件工程大作业的过程中,由于计划安排与实际脱节,导致时间前松后紧,平均每周花在这门课上的时间大约有8个小时. 项目完 ...

  8. 个人作业-Week1

    问题1:程序员的优劣是否在软件开发中已经不重要了??用户实际关心的 外形,使用的乐趣和效率,自我形象,个人满足感,回忆,这么多条中,仅有效率与代码有关,而实际上用户比起效率却更在意其他这些“幺蛾子”. ...

  9. 个人作业——week1

    1.问题 (1)与软件学院相比,计算机科学更偏向理论研究,本系开设软件工程课程的意图是否是为了平衡理论与应用的比重? (2)Bug的定义根据开发者与使用者的分析角度不同,有着很大的区别,如何使开发者能 ...

  10. 软件工程个人作业 - week1

    <构建之法>阅读疑惑: 如何寻找开发效率和性能的均衡点?显然开发效率强调封装,重视代码重用.但是遗憾的是代码重用往往泛化了数据特征,降低了效率. 如何“公平”分配工作?尤其是团队中人员参差 ...

随机推荐

  1. 在win8(win8.1)电脑上安装IIS,配置web服务器,发布网站

    1.IIS安装: 打开控制面板——程序和功能——启用或关闭Windows功能——找到(Windows功能下)下的(Internet Infornation Services)把Web 管理工具和万维网 ...

  2. 怎样关闭google的自动更新

    谷歌的自动更新很烦人的,只要你点击关于Google Chrome,谷歌就会自动更新成最新版本. 但是sencha框架好像与谷歌29.0以上的兼容性不是很好,所以关闭谷歌自动更新的需求来了,网上很多人说 ...

  3. (十一)外观模式详解(Service第三者插足,让action与dao分手)

    作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 各位好,LZ今天给各位分享一 ...

  4. Android开发自学笔记(Android Studio1.3.1)—3.Android应用结构解析

    一.R文件是什么?      如上图所示,我们可以通过findViewById方法通过传入R.id.show找到我们的TextView元素,findViewById方法也很好理解,从View中通过Id ...

  5. matlab中的卷积——filter,conv之间的区别

    %Matlab提供了计算线性卷积和两个多项式相乘的函数conv,语法格式w=conv(u,v),其中u和v分别是有限长度序列向量,w是u和v的卷积结果序列向量. %如果向量u和v的长度分别为N和M,则 ...

  6. position为absolute的元素如何实现居中

    当给div设置absolute时,该元素已经脱离文档流,呈现浮动状态,只能通过left,top,right,bottom来设置属性,要实现居中有两种方法: 一.css法 <div class=& ...

  7. [转]史上最全最强SpringMVC详细示例实战教程

    原文:http://www.cnblogs.com/sunniest/p/4555801.html?utm_source=tuicool&utm_medium=referral SpringM ...

  8. Ubuntu更改右键菜单

    方法/步骤1.这是我们在桌面文件夹ubuntugege上打开的右键菜单,你说你在~/.gnome2/nautilus-scripts/添加的右键菜单项目但它就是没有显示呀,于是你觉得Ubuntu 12 ...

  9. C# EventHandler and Delegate(委托的使用)

    委托的声明 public delegate void MyDelegate(string str); 注 1.委托的定义和方法的定义类似,只是在前面加了一个delegate,但委托不是方法,它是一种特 ...

  10. Mysql存储引擎之TokuDB以及它的数据结构Fractal tree(分形树)

    在目前的Mysql数据库中,使用最广泛的是innodb存储引擎.innodb确实是个很不错的存储引擎,就连高性能Mysql里都说了,如果不是有什么很特别的要求,innodb就是最好的选择.当然,这偏文 ...