软工第一次阅读做业

软工第一次阅读做业

项目 内容
本次做业所属课程 2019BUAA软件工程
本次做业要求 第一次阅读做业
我在本课程的目标 学会团队合做开发项目,为之后的工做打下基础
本次做业的帮助 阅读《构建之法》,从宏观上创建起对敏捷开发模式,软件工程要素的理解。

1、快速看完整部教材,列出你仍然不懂的5到10个问题

  • 第五章 敏捷流程

"只有能自我管理的团队才能创造优秀的架构、需求和设计"git

根据个人观察以及实习经验,较大的公司凭借资源丰厚,人、财、理念兼备等,在推动敏捷开发的时候较为容易,可是小的公司每每难以进行传统理念到敏捷开发的转型。github

这是否就决定敏捷开发在国内推动的难度?如何调整可让敏捷开发在国内企业普及开来?数据库

  • 第八章 需求分析

"在敏捷开发的项目中,团队通常不过度强调“估计”的价值,由于它就是一个“猜”字。“猜得准”不是团队的目标。后端

在书中,咱们已经了解到惊喜需求的实现能够很大程度上提升顾客的满意度,那么通常在团队中如何平衡惊喜需求和“估计”的需求?浏览器

  • 9.3 项目经理——PM作开发和测试以外的全部事情

“若是必定要说专业能力的话,PM的专业就是理解和表达,你是否理解不一样人的内心,需求和言外之意?”服务器

项目经理是链接需求和开发工做的桥梁,最好的方式应该是可让双方都更省力,最好的方式就是项目经理不只仅有做为客户的经验,还应该有完成项目的经验。以个人我的经从来看,只有真正作过某件事情的人才能理解和表达其中的意思。网络

因此,在企业中,项目经理是否应该是一个精通两样事情的全才,而不仅是理解和表达?架构

  • 第九章 项目经理

项目经理在肯定软件开放方案的时候遇到团队成员意见相左的状况,例如使用的架构和开发工具不尽相同,这时,PM要如何进行决策?分布式

  • 第十三章 软件测试

在以前的软件开发中,许多同窗编写脚原本进行所谓的“全覆盖测试”。我看书中甚少说起。全覆盖的这种方式在软件工程测试中到底处于什么样的地位?ide

2、请问 “软件” 和 “软件工程” 这些词汇是如何出现的(什么时候、何地、何人)?

“软件”:美国统计学家约翰·图克(John W. Tukey)在1958年1月9日出版的《混合数学教学》(American Mathematical Monthly)中首次公开使用“软件”(software)一词。

“软件工程”:这个概念是在1968年由NATO(北约)科技委员会在前联邦德国的会议中提出,当时定义为“研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把通过时间考验而证实正确的管理技术和当前可以获得的最好的技术方法结合起来的学科”。

3、知道了软件和软件工程的起源,请问软件工程发展的过程当中有什么你以为有趣的冷知识和故事?

1999年,鲁宾和马特·赫森逊、乔伊·布里特共同建立了一家名为Danger的科技公司。他们成功地为T-Mobile研制出一款名为Sidekick的贴牌手机。和名字中的描述同样,Sidekick是一款侧滑全键盘智能手机,它不但能和PDA同样进行移动办公,还能经过WiFi进行上网。

开发Sidekick的经历为鲁宾积累了丰富的研发经验。然而2004年,Danger公司发生政变,董事会决定引入新CEO来替代鲁宾。尽管表示赞成董事会的决定,但当新CEO上任后,失意的鲁宾仍是决定离开Danger公司。

离职后的鲁宾在开曼群岛隐居了几个月,这段期间,他一直在编写软件,试图开发一款数码相机。然而沮丧的是,没有人支持他。万般无奈之下,鲁宾回归原点,决定开发智能手机相关的项目。几年前注册的一个网络域名给他了灵感,他决定将新项目命名为安卓(Android),目标是将它打造为彻底开放的移动平台。

鲁宾在新项目上倾其全部,很快就破产了。他打电话给好友史蒂夫·佩尔曼(Steve Perlman),寻求资助。佩尔曼在电话里问他什么时候须要资金,饱受资金困扰的鲁宾在电话里吼道,“如今就要!”

佩尔曼闻言后马上向鲁宾汇去了1万美圆,但杯水车薪,这笔资金很快就被花光。无奈以后,佩尔曼只得继续汇款,先后共注资10万美圆,帮助安卓团队完成了最初的商业计划。

但一年以后,安卓团队依旧入不敷出。开发这样一款庞大的产品实在太烧钱了!编写程序、功能测试、想法错位后推倒重建……每个环节都须要钱。一年以后,寻求资金帮助开始成为鲁宾的主要工做之一。

他们决定在大公司身上碰碰运气,但最初找到的并不是谷歌,而是三星。2004年的一天,仅有8名成员的安卓团队所有飞往韩国首尔,在那里,他们见到了商谈收购事宜的三星。

这是双方第一次接触,但印象并很差。鲁宾在介绍产品时极力推荐安卓系统的设计思想,赞美它的前沿功能,但三星团队不为所动。现场的气氛奇怪极了,没有提问和掌声,鲁宾收获的只有沉默。片刻以后,三星的高管说话了:

“你和这支所谓的团队就打算开发这么个玩意儿?大家(开发产品的)只有6我的,你嗑药嗑嗨了吗?”

“这基本就是他们的回应。”鲁宾回忆说。嘲笑声中,他带着沮丧和愤怒离开了三星的会议室。回国后,他们又试着接触了其余公司。两周以后,消息传来——被三星拒绝的安卓团队被谷歌收购了。

对于安卓,谷歌的态度与三星截然相反。2002年,鲁宾在斯坦福大学给硅谷工程师授课时,谷歌创始人拉里·佩奇和谢尔盖·布林曾在台下关注过他的项目。鲁宾研发的Sidekick手机让佩奇印象深入,这促使他萌生了研发谷歌手机和移动系统的想法。

2005年初期,佩奇与四处找钱的罗宾见了一面。在仔细听完罗宾对安卓的描述后,佩奇打消了向安卓投资的想法——他决定直接收购。三年前在他脑中闪现的想法再次出现,佩奇决定研发谷歌自有移动系统,抢在微软前面完成移动化布局。

交易很快就敲定了。最终,谷歌以5000万美圆收购了安卓。2005年,安卓团队的8名成员悉数搬到位于山景城的谷歌总部。在那里,他们开启了一段新的历史……

4、上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?

Git:

优势:

  • 适合分布式开发,强调个体。
  • 公共服务器压力和数据量都不会太大。
  • 速度快、灵活。
  • 任意两个开发者之间能够很容易的解决冲突。
  • 离线工做。

缺点:

  • 学习周期相对而言比较长。
  • 不符合常规思惟。
  • 代码保密性差,一旦开发者把整个库克隆下来就能够彻底公开全部代码和版本信息。

Microsoft TFS:

优势:

  • 与Visual Studio无缝结合,方便开发者进行源代码管理。
  • 支持代码审阅与讨论,支持邮件通知,支持Web访问与管理,支持工做项以及BUG等管理。
  • 不会上传.NET开发时生成的垃圾文件,自带版本合并以及比较工具
  • 支持数据库版本管理,自带不少管理工具(测试管理器、反馈客户端、界面设计工具等等)

缺点:

  • 用ASP实现,用浏览器访问很慢
  • 团队的邮件细节配置很复杂

Mercurial:

优势:

  • 命令有双字母简称
  • 命令兼容svn
  • 命令封装性好
  • 服务器部署相对容易

缺点:

  • 分支管理不灵活
  • 支持社区略差

Github:

使用人数:24m

优势:

  • pull request和issue功能方便社区协做
  • 我的展现、合做平台
  • 有大量优秀的开源项目

缺点:

  • wiki 功能太弱
  • 学习曲线陡峭
  • 可能将来某天被墙
  • 企业应用费用过高

Bitbucket:

优势:

  • 支持私有免费项目
  • 支持git

缺点:

  • 受欢迎度不如Github
  • 网站功能不如Github丰富

Trac:

优势:

  • 做为一个SCM配置管理平台,具备良好的扩充性
  • 权限体系设计完备
  • 很是灵活

缺点:

  • 不支持多项目
  • 需求和缺陷没有分离
  • wiki 做为文档的学习代价比较高

Bugzilla:

优势:

  • 强大的检索功能
  • 定制功能强
  • 经过跟踪和描述处理Bug
  • 强大的后端数据库支持功能
  • 免费开源

缺点:

  • 界面不友好
  • 本地化不够好

Apple XCode:

优势:

  • 能够自动建立分类图表。
  • 自动提供撤消、重作和保存功能,无需编写任何编码。

缺点:

  • 更新版本后,某个插件可能会失效。
相关文章
相关标签/搜索