软工第1次我的做业

[2019BUAA软件工程]第1次我的做业

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

3.3.1职业发展:考级之路

在中国,软件工程师的考试有:计算机等级考试和全国计算机技术与软件专业技术资格考试
……
也有这样一些局限性:
以答题/评分为主要考试形式,没有面对面的考试git

一个软件工程师,对于他的能力应该如何量化地评定?我认为这些所谓的考级并不能评定软件工程师的能力。如今网络上对于谭浩强的C语言教材能够说是颇多批判之声,更是有著名段子“i+++i+++++i”,来讽刺这一只弄书面知识不顾实际应用的编程考级。然而不少计算机二级的所谓培训却很推荐这一教材,说明了这些以答题为主的考试更偏向理论。那么在实际中,所谓考级是不是软件工程师的一条发展之路?考级好的人可否说明其工程能力强?若是不能,那么咱们怎么说一我的是软件工程师中的“大牛”?程序员

4.5.2为何要结对编程

在结对编程模式下,一对程序员肩并肩、平等地、互补地进行开发工做。他们并排坐在一台电脑前,面对同一个显示器,使用同一个键盘,同一个鼠标一块儿工做。编程

这样的结对编程是否会有更优的编程形式?例如两我的先同时编写一个模块,而后相互复审、交流,而后进行下面模块的编写。这样能够提高编程的效率,同时结对编程交流、复审的优势并不会消失。
而以驾驶员/领航员形式的结对编程,当然能不断地处于“复审”的工程,可是是否存在驾驶员被领航员带偏了道路的可能?浏览器

6.敏捷流程

在现实生活中的软件开发过程,有哪些软件项目是根据敏捷流程开发的?具体说来,敏捷流程现在在软件工程开发中的地位是怎样的。
另外,传统的如计划驱动(plan-driven)的开发流程,形式化的开发方法(Formal Method)又有哪些软件项目?若是咱们如今就业了,那么通常的开发流程会是敏捷流程吗?安全

9.6.2我是作PM的料么?在校学生如何为成为PM作准备?

你是否以为你的长处并不在于写代码和debug,而是协调、沟通,让一个团队或组织有效运转起来……服务器

就计算机系而言,目前的教育每每会专一于教你写代码和debug,那么有没有必要针对于一些表达能力强的人,教学如何协调、沟通,让一个团队或组织有效运转起来?就目前而言,这些能力又应该从哪里学到呢?网络

16.1.2 迷思之二:你们都喜欢创新

若是有人发明了一种在常温常压下能把石墨变成钻石的方法,能够廉价地生产大量的钻石,那么目前钻石产业链上的公司和从业人员,以及已经购买,储存了钻石的人们会有什么反应?他们会喜欢这个创新吗?并发

据说不久前真有关于制造钻石的研究成果出现。就我我的理解,若是这一方法真的发明,必定不会受到钻石产业链公司,钻石储存者的支持,由于这一创新阻挡了他们的利益来源。关于钻石早有阴谋论“钻石骗局”,论点是钻石储量其实很大,可是由钻石产业巨头隐藏下来,让钻石保持稀有才能让价值升值。这一阴谋论虽然不肯定真伪,可是确实说明这些影响到部分人利益的创新可能会遭到阻挠。例如现现在的传统出租车司机很不欢迎共享单车、滴滴打车之类创新的出现。个人困惑是若是一个新的创新成果出现,却遭到了利益相关工做者的打压、阻挠,这种状况下创新可否成功,若是被阻挠了应该怎么办。分布式

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

John Tukey在1958年的论文"The Teaching of Concrete Mathematics"中,首次提到了software即“软件”一词。但在工程背景上,最先出现“软件”一词是在1953年8月由Richard R. Carhart在兰德公司提出。
维基百科——John Tukey
Margaret H. Hamilton在阿波罗计划期间,在麻省理工学院提出了Software engineering“软件工程”一词,以使软件具备硬件工程等其余领域的合法性。随着时间推移,软件工程一词才真正得到了与任何其余学科相同的尊重。
维基百科——Margaret Hamilton (scientist)工具

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

现现在软件工程已是一个广受承认的领域,可是关于专业的软件工程师,全球各地的许可或者认证的法律要求并不相同。在英国使没有许可或法律要求承担或使用“软件工程师”职称。在加拿大的某些地区(如安大略省等)软件工程师能够拥有专业工程师(P.Eng)的指定。在欧洲,软件工程师能够得到“欧洲工程师”的职称。在美国的某些地方,如德克萨斯州,“工程师”一词的使用受法律管制,仅仅保留给拥有专业工程师执照(PE执照)的我的使用,不过这种强制许可的方式现在是饱受争议的。
有趣的是,自2013年以来,美国为软件工程提供了NCEES的专业工程师考试(PE考试),从而容许软件工程师得到许可和承认。可是自2013年最初提供考试以来, 进行了五次考试, 总人数为81名考生。而仅仅只有19名候选人登记参加2018年4月的考试。根据NCEES考试发展政策,考试政策和程序委员会(EPP)须要向NCEES董事会提出关于继续考试的可取性的建议。在2018年1月的会议上,EPP委员会审查了PE软件工程考试的历史。在考虑全部信息后,EPP委员会建议NCEES中止PE软件工程考试。在2018年2月的会议上,NCEES董事会接受了EPP委员会关于中止提供PE软件工程考试的建议。因为此考试每一年仅提供一次,所以董事会指示NCEES在2019年4月考试后中止举办PE软件工程考试。也就是说在这篇博客发表的一个月后,NCEES将会举办最后一次PE软件工程考试。
维基百科——软件工程
NCEES discontinuing PE Software Engineering exam

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

请按照最近一两年使用人数的多少, 从多到少排序并说明各自有多少用户(估计),工具的优缺点(能够引用相关资料并注明来源)。

根据维基百科的数据,搜索到如下源代码托管程序的用户数:

维基百科——Comparison of source-code-hosting facilities

git:目前毫无疑问最受欢迎的源代码管理软件
参考资料:维基百科——git 博客
优势: 适合分布式开发,强调个体
与现有系统和协议的兼容性强
可以高效处理大型项目
良好的分支机制,可让主干代码保持干净
离线工做,管理代码成本低,不须要依赖服务器
缺点: 学习难度大
代码保密性差,一旦开发者把整个库克隆下来就能够彻底公开全部代码和版本信息

SVN:目标是成为普遍使用的并发版本系统(CVS)的最兼容的后继者
参考资料:维基百科——Apache Subversion 博客
优势: 代码的一致性高
采用集中式,易于管理,保证安全性
管理方便,逻辑明确,理念符合常规思惟
适合人数很少的项目开发
缺点:必须链接在服务器上,不然基本不能工做、提交、对比、还原等
不适合开源开发

Microsoft TFS:应用软件生命周期管理(ALM)软件,涵盖整个应用程序生命周期
参考资料:维基百科——Team Foundation Server 张洪君的博客
优势:高度集成其余工具,主流的开发工具(如Visual Studio, Eclipse)和常见的办公工具(Excel,浏览器)
除了支持集中式代码库,还支持分布式代码库
缺点:搭建、维护比较复杂,硬件要求较高

Mercurial:轻量级分布式版本控制系统 优势: 高性能和可扩展性,分散化,彻底分布式协做开发 对网络的依赖性更低,甚至能够离线进行管理,只需在有网络链接时同步

相关文章
相关标签/搜索