这个做业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2178html
第1章 概论面试
第一章前部分主要说了软件、程序、软件工程三者之间的关系,首先当写了一个程序拥有了必定的用户随之而来的需求这时候便须要出现一个软件去知足各类功能,而后再扩展到一个能保证服务质量的软件服务,而软件构建的过程又是十分复杂的,在保证软件在修改过程当中能不断提升质量又保持之前的质量,就须要进行软件测试,一个软件是否实现它的价值这时候就须要从需求分析开始,把合适的需求梳理出来,再开展后续工做,到最后发布软件,总的来讲就是:软件=程序+软件工程 一个扩展的推论是:软件企业=软件+商业模式。 软件开发包括四个阶段:1.玩具阶段 2.业余爱好阶段 3.探索阶段 4.成熟的产业阶段 算法
接下来读者向咱们介绍了什么是软件工程? 总的来讲软件工程是把系统的、可量化的方法应用到软件的开发、运营和维护上的过程。包括下列领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。编程
看完了第一章我有一个疑问就是:咱们目前所学的专业知识是否与在外工做所需的知识技能是否匹配呢?框架
第2章 我的技术和流程函数
第二章前部分主要说单元测试,单元测试能有效解决本身负责的模块功能定义没法明确、模块内部改变影响其余模块、模块质量没法保证稳定的、量化的等一系列问题,但是怎样才算一个好的单元测试呢?首先单元测试应该在最基本的功能/参数上验证程序的正确性,单元测试也必须由最熟悉代码的人(程序的做者)来写,单元测试事后,机器状态保持不变,单元测试要快(一个测试的运行时间是几秒钟,而不是几分钟),并且单元测试应该产生可重复,一致的结果,还有独立性-单元测试的运行/经过/失败不依赖于别的测试,能够人为构造数据,以保持单元测试的独立性,还有单元测试应该覆盖全部代码路径且集成到自动测试的框架中,并和产品代码一块儿保存和维护。工具
接下来就是讲的是效能分析工具,如何能让本身的程序跑得又快又好,通常的作法是先用抽样的方法找到效能瓶颈所在,而后对特定的模块用代码注入的方法进行详细分析,接着代码分析的结果就出来了,能够继续进行“效能测试,分析改进,再效能测试”的流程,逐渐提升程序的效能和咱们的编程水平,可是也要避免没有作分析就过早地进行效能提升,若是咱们不经分析就盲目优化也许会事倍功半。单元测试
看完了第二章我有一个疑问就是:若是单元测试的结果是错的,为何必定是程序出了问题?测试
第3章 软件工程师的成长优化
这一章主要是讲软件工程师的成长,主要从我的能力的衡量和发展、软件工程师的职业发展、技能的反面一共三个方面来说述软件工程师的成长。
首先咱们应该如何来衡量证实本身的能力呢?首先是成长,读者认为:1.积累软件开发相关知识,提高技术技能。2.积累问题领域的知识和经验。3.对通用的软件设计思想和软件工程思想的理解。4.提高职业技能。5.实际成果。接着衡量软件开发的工做量和质量,从如下四个方面:1.项目任务有多大。2.花了多少时间。3.质量如何。4.是否按时交付。而后是团队对我的的指望:1.交流。2.说道作到。3.接受团队赋予的角色并按角色要求工做。4.全力投入团队的活动。5.按照团队流程的要求工做。6.准备。7.理性的工做。
那么软件工程的职业是如何发展的呢? 首先考级之路,接下来是职业成长,而后是大公司版本,例如成为一个高级工程师,最后是对自个人评估。
那么什么是技能的反面呢?就是一个“不精通”的面试者的编程过程实际上就是一个“解决问题”的过程。那么咱们该如何提升咱们的技能呢?首先咱们须要经过不断的练习,把那些低层次的问题解决了,变成不用通过大脑的自动操做,而后才有时间和脑力来解决高层次的问题。
看完了第三章我有一个疑问就是:在现在的时代,须要一位具有什么职业素养的软件工程师?
第4章 两人合做
这一章一开始写的是如何规范咱们写的代码:1.代码风格要规范。2.代码设计要规范。 那么代码风格须要怎么样规范呢?首先代码风格的原则是:简明、易读、无二义性(缩进、行宽、括号、断行与空白的{}行 、分行、命名、下划线、大小写、注释);那么代码设计要如何规范呢?最好遵照如下规定:1.函数。2.goto。3.错误处理。4.如何处理C++中的类。
接着讲代码复审,代码复审的正肯定义:看代码是否在“代码规范”的框架内正确地解决了问题,那么代码复审的形式是什么呢?1.自我复审。2.同伴复审。3.团队复审。而同伴复审是最基础的复审手段。代码复审的目的在于:1.找出代码的错误。2.发现逻辑错误。3.发现算法错误。4.发现潜在的错误和回归性错误。5.发现可能须要改进的地方。6.教育(互相教育)开发人员,传授经验让更多的成员熟悉项目各部分的代码,同时熟悉和应用领域相关的实际知识。那么怎么样是一个简单的代码复审核查表,主要包括:概要部分、设计规范部分、代码规范部分、具体规范部分、具体代码部分、效能、可读性、可测试性。
在咱们之后的项目中,有着很是多的并且多变的项目需求,同时存在着工期、质量、和资源的矛盾,咱们团队成员各自的水平、目标也不一致。那么咱们如何来构建一个和平友好高效的团队呢?我以为在一个团队中,每一个人都有本身不一样的想法和意见,这时如何能说服对方?我以为咱们双方都须要意识到,问题早点出现要比晚点出现要好得不少,而且正确地给本身的搭档给予反馈。
看完了第四章我有一个疑问就是:为何要结对编程?我以为单人编程也挺好的。
第5章 团队和流程
这一章一开始写的是非团队和团队。团队是有一致的集体目标一块儿完成这个目标,一个团队的成员不必定要同时工做,而非团队成员则想搬多少就搬多少,不想搬了就走人。团队成员有各自的分工,互相依赖合做共同完成任务,而非团队成员各自行动独立吧任务完成,软件团队的模式有如下几种:1.一窝蜂模式。2.主治医生模式。3.明星模式。4.社区模式。5.业余剧团模式。6.秘密团队。7.特工团队。8.交响乐团模式。9.爵士乐模式。10.功能团队模式。11.官僚模式。
接下来说的是开发流程。有如下几种模式:1.写了再改模式。2.瀑布模式。3.由瀑布模型的各类变形。4.统一流程。5.老板驱动的流程。6.渐进交付的流程,mvp和mbp。7.tsp的原则。
看完了第五章我有一个疑问就是:流程的目的是什么呢?
参考文献
技术人生的职场众生相 – 十多年的经验与心得 http://kayow.com/2018/05/devlife/
https://www.cnblogs.com/xinz/p/3852177.html《现代软件工程 课件 软件工程师能力自我评价表》