软件工程第一次阅读做业

项目 内容
这个做业属于哪一个课程 https://edu.cnblogs.com/campus/buaa/BUAA_SE_2019_LJ
这个做业的要求在哪里 https://edu.cnblogs.com/campus/buaa/BUAA_SE_2019_LJ/homework/2625
我在这个课程的目标是 完成课程中所要求的任务,经过该课程
这个做业在哪一个具体方面帮助我实现目标 理解课程大纲,提出问题

提问

1 , 简单地说,软件的行为和用户的指望值不同,就叫Bug。例如,某聊天软件启动时就崩溃了,用户指望这个聊天软件不能崩溃。例如,某聊天软件不支持视频聊天,用户指望这个聊天软件支持视频聊天。可是该软件的开发人员说,这个软件根本没打算支持视频聊天。这仍是一个Bug么?是不是Bug,取决于用户和开发者的不一样角度,咱们看一个经典小说中的例子:git

  • 上述是书中对bug的定义,与本身本来的认知感受起了冲突,本来认为bug应该属于出错,应该属于客观的内容,不禁用户所决定,而书中对bug的描述,更加看重用户以及使用者的见解,更具主观性,查看了相关的定义后,程序错误(英语:Bug),是程序设计中的术语,是指在软件运行中由于程序自己有错误而形成的功能不正常、死机、数据丢失、非正常中断等现象。 网上的内容与本身的认知基本一致,想提问文中所说的bug是不是更加广义的定义,或者说,从软件工程的角度,是否bug的定义更加普遍。

2,书中将大四学生与软件工程师进行了相应的对比,以此来讲明我的开发流程PSP的特色 ,同时引出优秀软件工程师的PSP流程的思考程序员

  • 就像书中以前所论述的,软件行业比较复杂,不一样的项目需求不一样,要求也千差万别,PSP表格的各个花费时间占比所能最大表现出该软件工程师哪方面的能力?或者说PSP最大的指导意义是什么?我的理解,学生与职业比较,职业写的代码多,熟练,弄清楚需求以后,编码所用时间天然就降低了。PSP表格的意义是否是不大。

3, 关于代码行数的问题,书中提出了当代码是在2,000行如下,程序员能够用“写了再改”的蛮干方法,而且靠记忆力搞定一个程序,可是,若是你的代码规模达到20,000行,你要用结构化编程(类,模块,API,细节隐藏,面向对象的其余方法,等)来保证程序不变成一团乱麻。若是代码规模再大一个数量级,20万,200万呢?编程

  • 自己没有写过不少行的代码,2000行层次都没达到,但仍是想问200万的,这方面经验不多,相比于普通的代码,大工程网上资料也比较少,因此想提问关于大工程的问题,像200万代码规模的项目这样,感受这样的工程确定得靠多人合做来完成,在200万行这种软件的状况下,通常是如何配合团队进行相关开发的。

4, 代码复审的问题,代码复审在书中指出主要用于考虑维护等方面的内容,更多注重于代码的质量问题编程语言

  • 关于代码质量的问题,是不是在过程当中,或者在写以前给出相应的设计指导是否是会更加好一点。这样形成的设计等问题在刚开始能够容易地进行修改,代码审查看书里好像是安排在测试以后,这时候若是发现不合理地地方,改动起来不是很麻烦嘛

5,结对编程, 书中指出告终对编程的有不少种不适用的场景,可是结对编程也有不少独特的好处,解决了代码审查的不少缺点。同时最后书里也花很大篇幅指出了须要进行有效的沟通,同时要注意沟通方式。学习

  • 我理解结对编程的关键点仍是在于沟通,但沟通其实也是门很大的学问。并且沟经过程中也会出现相应的矛盾,并非全部矛盾都能获得很好的解决方式,特别是对于模棱两可的问题的时候。这个时候花在沟通方面的精力是否偏离告终对编程为了提升代码质量与效率的初衷,或者说投入产出比是否真的客观。我的感受,相比于外国,咱们表达和处理问题更加含蓄,是否适合结对编程这种方式。

词汇历史

  • 据查阅,软件是1935年图灵所提出的概念,在一篇论文中提出。
  • 而软件工程则是1968年提出,是Margaret Hamilton在阿波罗计划期间发明创造出来的。

计算机发展过程当中的冷知识

  • 目前已知的编程语言共有700多种

版本管理与项目管理软件

使用趋势:
测试

  • Git:
    • 优势:使用认识广,使用方便,学习容易
    • 缺点:有些操做比较复杂
  • bitbucket:
    • 优势:拥有免费私有库,支持git
    • 缺点:项目很少
  • Mercurial:
    • 优势:配置方便
    • 缺点:不易于管理
  • Trac:
    • 优势:配置灵活
    • 缺点:没法显示中文文件