首页 > 代码库 > 现代软件工程 第一章 【概论】练习与讨论——范鹏宸(3、7、11、13)

现代软件工程 第一章 【概论】练习与讨论——范鹏宸(3、7、11、13)

第三题

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

答:目前流行的原程序版本管理软件和项目管理软件有Microsoft TFS、GitHub、Trac、Bugzilla、Rationale,Apple XCode这几种比较常用的软件。它们各自的优缺点总结如下:

1.Microsoft TFS

优点:集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM且能与 VS 无缝接合。

缺点:整个系统是用 asp 实现的,用浏览器访问相当慢,IE访问不如 mantis BT 方便、迅速。

2.Github

优点:功能设计简洁实用上手很快,可用性好,已有很多相当质量的各类项目和优秀开发者在上面。

缺点:国内访问速度太慢,不能很好的解决GB2312/GBK,对中文不够友好,wiki功能太弱。

3.Trac

优点:权限体系设计比较完备,整个Trac界面中均可使用wiki来编写文档,一个SCM配置管理平台而且开源。

缺点:核心功能较少,不支持多项目且使用wiki来编写文档对于使用者来说需要一定的学习时间。

4.Bugzilla

优点:开源的缺陷跟踪系统,用来对系统进行Bug追踪,并且支持中文版。

缺点:功能单一,只能用来管理缺陷。

5.Rationale

优点:"思维导图",可以创建争论地图,推理和论点图表,帮助理清思路和逻辑进行推论。

缺点:功能略显单一,与计算机关联不大。

6.Apple XCode

优点:无论是C、C++还是其他语言来编写程序,编写脚本以及转移编码,Xcode编译速度都很快,操作快速和轻松。

缺点:非开源,只能用于开发Mac OS x、IOS的应用程序,只能运行于Mac操作系统。

 

第七题

问题描述:有人认为,“中文编程”, 是解决中国程序员编程效率一个秘密武器,请问它是一个"银弹"么? 

答:刚开始还不知道“银弹”是什么东西,后来网上一查才恍然大悟,才发现原来就是美剧里面对付吸血鬼的绝佳武器(于是引申为具有极端有效性的解决方法)。然而我并不认为“中文编程”是一个好的“银弹”。
  首先没有做不成的事,只有不想做的人。与其说是英文限制了中国程序员的编程效率,倒还不如说是某些人不愿意去学习新的知识和技术找出的借口罢了。单说用英文来编程,又需要程序员认识多少个单词(熟悉下关键字if、else之类的然后就可以上手了)?如果说连这点英语都学不会的话,我觉得还是不要从事编程开发好了,所以说语言并不是限制程序员编程效率的因素。而且目前国外的计算机水平相比国内来说要高,当需要在外网学习新的技术或者搜寻问题的解决方案时,英语不好这一劣势反而会影响我们的编程效率。
    那么“中文编程”能不能使母语speaker的编程效率飞速提高呢?如下图7.1所示是易语言关于类自然语言编程的示例。
               技术分享

                                               图 7.1 易语言类自然语言编程示例

  图中所展示的是中文形式的易语言示例,对于初次接触中文编程的我来说,它的语法也不是想象中那么容易理解。相反由于中文的阅读习惯,我在读这个示例时常常忘了区分变量名,直接一句话就读过去了。至少对于我来说,我认为易语言并没有明显的提高我的效率。再者,继续分析,高级语言都是要转化为汇编语言然后到机器语言,最终都是要调用CPU指令集。而目前的汇编指令集都是由相应的硬件开发厂商设计的,全都是英文。那么"中文编程"还是需要将中文的程序翻译成英文的汇编程序,再转为机器语言,增加了操作。

  总之不管怎样,英语还是要好好学的~目前主流应该还是"英文编程",所以我还是老老实实把我的"英文编程"学好就完事大吉了(毕竟现在还很菜)。

 

第十一题

问题描述:我们不是在真空里谈软件工程, 软件要运行在硬件芯片上面,下面看看一个计算机芯片的发展历史.

请回答: ① 软件的发展历史有什么纪录片/PPT 可以参考?  ② 软件和芯片的发展有什么相互依赖,相互拉动的关系? 能否举例说明?

答:1.http://wenku.baidu.com/view/3caaeba70029bd64783e2c78.html?from=search(软件发展历史ppt)

   http://wenku.baidu.com/view/a7957c1355270722192ef790.html?from=search(word文档)

    2.软件的发展与芯片的发展相互依赖、相互拉动。软件发展受限于当前的芯片。软件只能基于当前的硬件芯片进行设计,但是软件的用户需求可以带动芯片厂商开发更高级的符合软件要求的芯片。芯片的升级发展也会带动软件的开发和设计。例子如下:

      1975年,8位寻址能力的英特尔8080处理器的出现,造就了比尔·盖茨和保罗·艾伦辍学为Altair计算机编写Basic语言;

      386DX芯片横空出世,32位计算能力造就了复杂的图形界面程序,使我们以绚丽的Windows告别了黑暗的DOS程序;(芯片带动软件)

      linux和安卓系统及其应用的发展与需求不断带动芯片的发展,使得当今手机厂商不断开发更高级的主板芯片,内存也从最开始的几百k增加到如今的几g。(软件带动芯片)

 

第十三题

问题描述:请看TED 的演讲, 谈谈你对压力的看法,以及怎么和别人合作, 帮助别人,把压力转化为动力,在互相帮助的环境中成长。

答:压力人人都会有,它是一把双刃剑,是好是坏取决于你对它的认识。当我们面临危险和挑战时,人本能会感受到压力,而压力会使我们的身体和大脑处于一个兴奋的状态、更快的反应以便于解决眼前的问题。

  从演讲中,我知道了当面临压力的时候,应该给自己暗示——压力会使我更兴奋、会让我呼吸加快、反应加快,比平时更加敏捷、睿智。这样,怀着积极的心理暗示,我们身体也会积极回应我们,大脑也会更快的释放荷尔蒙让我们集中注意力去迎接挑战。演讲中也提到对于那些处于高强度压力状态下的人们,我们应该主动关心并多与他们交流,这样可以使他们创造恢复力,从而更快的消除压力,保持健康的状态。

  因此关于压力——对自己要认识压力,把它当作是对自己的激励;对别人,与别人合作时,应多交流多关心,帮助别人适应压力并保持健康的身心状态。

现代软件工程 第一章 【概论】练习与讨论——范鹏宸(3、7、11、13)