这个做业属于那个课程 | <课程连接> |
这个做业要求在哪 | <做业要求> |
团队名称 | 软件梦之队 |
这个做业目标 | 总结每位团队成员在本课程的得失 |
学号 | 姓名 |
201731041215html |
王阳git |
201731062302程序员 |
鲜雨珂github |
201731062128算法 |
邓捷编程 |
201731062305网络 |
周蓉svn |
201731062131函数 |
龙继平工具 |
201731062304 |
杨梦欣 |
201731035120 |
张欣 |
201731062301 |
梅晨 |
王阳 201731041215:
阅读做业博客连接: 博客连接
博客要求内容:
1.Goto语句在大量使用时会使程序结构化设计被破坏甚至极大的影响程序的可读性,可理解性,为什么这里又提倡使用呢,为什么不能专门写一个异常出口函数来进行呢?
答:并不是每种状况都适合goto语句,可是当有多种选择时,如有goto,那么goto是最好的选择,由于他很简便,同时在某种程度上少去了if—else跳转的程序多层嵌套状况,而只须要几个goto,那么能够大大提升程序易读性。
2.那若是对于动态语言/脚本语言(例如 Python等),又该如何呢,编译是自动完成同时采用动态步进,像这种语言编写的模块是直接嵌入而后进行测试仍是只进行单步调试过程呢?
答:对于大型的项目,每一个模块都必须有相应的单元测试,同时每一个模块都必须进行调试以及单元测试,才会进行集成测试。
3.这个基准线到底该如何肯定,对于一个大型软件包含上百模块时,采用回归测试,这个基准线该如何去评定呢,而回归测试大多采用自动化方式,不可避免这个测试模块自己也会出现问题,这时候又该如何去处理呢?
答:每一个项目的基准线并非一开始就固定的,而是对于整个项目进程进行动态变化的,而对于测试模块自己的问题,通常项目开发测试与开发是由不一样的人进行的,根据采起的测试方法不一样,而采用不一样标准,而且测试并非仅仅进行一次,它是会贯穿整个项目,因此尽管测试代码也会有问题,可是对项目测试并不会有太大影响。
4.在需求不断变化的同时如何准确地对客户需求进行分析呢?保持简明的同时如何让整个软件开发流程条理清晰呢?简明的同时应对不断变化的需求,对于文档的改动是否过大呢?采用敏捷流程开发又该如何去适配开发流程呢?
答:敏捷开发就是专门针对与需求不断变化的开发方式,敏捷流程采起每日任务的方式,与需求方一块儿工做,对于不断更改的需求每日都会有解决方案,敏捷流程并非一种固定的开发方式,正如其名,它也是不断变化的。
通过这学期的学习,你掌握到了哪些之前没有的技能,你是如何掌握的:
通过一学期的学习,学习到了不少软件工程的理论知识,同时对一些理论进行了实践、验证。在这过程当中学习了许多工具的使用,如:原型开发工具Axzure,专业画图工具Visio,对源代码管理工具GitHub加深了了解。
有什么深入的体会,对本身一学期学习过程的总结:
最大的收获是明白了软件工程不只仅是写代码,甚至能够说写代码只是其中一个很小的环节,重要的是对于整个系统的需求分析,设计,以及小组合做。
鲜雨珂 201731062302
杨梦欣 201731062304
阅读做业博客连接:博客连接
博客要求内容:
代码复审 4.4
文中提到代码复审有三种形式:自我复审、同伴复审和团队复审。
个人疑问:最好是有经验、熟悉代码的人来复审,而代码做者必定是最熟悉本身代码的,但他本身复审,会有思惟的局限性;若是同伴复审,就不存在思惟的局限性,那么是选择一个同伴复审,仍是两个同伴复审,甚至更多呢?若是是团队复审,最大的局限是效率不高。那么三种方式该如何抉择?
答:通过我的项目、结对编程和团队项目的实践,本人认为主要根据项目的大小来选择代码复审的形式。像我的项目就是自我复审;结对编程就是同伴复审;而团队项目,通常来讲,同伴复审就足够了,如果项目比较大,又是特别核心的部分建议团队复审。
结对编程 4.52
书中举有例子:越野赛车和驾驶飞机,二者共同特色是在高速度中完成任务,任务有较高的技术要求,任务失败的代价很高。
个人疑问是,开发程序时,什么样的状况是相似于文中举的例子,须要进行结对编程?是否有公司实行过结对编程?效果如何?对于合做的两人,是两人水平至关,仍是一高一低?有什么特别的具体的要求吗?合做两人的适应期通常是多长时间呢?
答:看了书本,我想应该是时间紧张的状况下须要结对编程。确实有公司进行过结对编程,如Microsoft(Bill Gates, Paul Allen),Apple(Steve Jobs, Steve Wozniak),Yahoo(Jerry Yang, David Filo),Google(Sergei Brin, Lawrence Page),效果都不错。对于两人的水平没有什么要求。他们的适应期须要经历四个阶段:萌芽——磨合——规范——创造。最重要的是如何磨合:向同伴提供容易接受的反馈意见时,采用三明治法。
与顾客合做 7.2.9
文中提到MSF强调产品团队与顾客的交流合做,由于“我以为”和“用户以为”是两码事。
个人疑问:那么遇到哪一种类型的问题须要与顾客交流?大概多久进行一次呢?如果交流时遇到“对牛弹琴”的状况该如何处理、如何交流?
答:本人认为遇到业务领域的问题,须要与顾客屡次且深度交流。交流频率主要视实际状况而定。若交流有障碍,能够进行一些调查方法:跟班做业、开调查会、请专人介绍、询问、设计调查表请用户填写等,再设计出原型图与顾客沟通交流。
目标、估计和决心 8.6.1
文中提到若是咱们混淆了目标估计和决心,那就会犯错。其中软件时间的估计是多个估计值的乘除法(估计的需求、估计的复杂度等等)。
个人疑问:那么,究竟每一项估计该怎么估计才比较准确呢?
答:上课时老师有提到项目作多了,天然而然就估计偏差就越小。每一项的估计仍是得看经验吧。
参考文章:http://www.javashuo.com/article/p-yzfbuaqp-kv.html
PM作开发测试外的全部事情 9.3
文中提到微软公司有好几类PM,以及一名优秀的PM应有的能力。
个人疑问:不管是哪一类PM,是都必需要拥有文中所列举的那些能力吗?仍是说负责内容不一样,有不同的要求?
答:书本中提到三类PM,分别是:Product Manager(产品经理),Project Manager(项目经理),Program Manager(微软的职位名称)。成为 一个合格的PM必需要拥有如下能力观察、理解和快速学习能力;分析管理能力;必定的专业能力。所以对于负责内容不一样的PM,他们需必备的专业能力是不一样的。
总结:
通过本次课程的学习及项目实践,了解了软件工程的原理,确确实实体验了一次软件开发。最大的收获不是在课堂上学习的,也不是最终答辩所展示的,而在于整个软件开发过程所经历的,学习到的知识。
邓捷 201731062128
阅读做业博客连接: 博客连接
博客要求内容:
一、第七章第二节:其中提到的MSF基本原则中有一条是“充分受权和信任”,但咱们如何保证在给予了充分受权和信任的状况下,团队成员可以按时按质的完成本身的任务,不敷衍了事?
团队项目是团队成员的共同责任,不只须要队员的自觉性,队友在项目完成过程当中也应该相互监督相互提醒。
二、第十四章第二节:讲到测试人员,假如开发人员每一个人都对本身的代码进行了初步的测试,而且有些公司的人后期也会使用本公司的产品,使用过程当中也会逐步发现一些BUG,那么在这些状况下测试人员的做用会不会逐步的下降甚至变得无关紧要?
不会,测试是软件编码过程当中的重要一环,也是软件质量的重要保障,测试人员系统的测试更能发现一些开发人员自身没有发现的问题,对软件的完善有很大的推进做用
三、第八章第三节:说到对用户需求的获取,提到了调查问卷的方法,但现实是大部分的调查问卷都并无获得用户足够的重视,或者有些用户即便认真回答了也不必定可以获得调查人员的正确理解,或是提出的意见并无足够的价值,在这种状况下怎样保证了解到的需求是有意义的?
除了最开始对用户调研,开发人员在软件开发过程当中也应该常常与用户沟通,在软件每完成一部分的时候
四、第八章第六节:提到软件工程师对实际花费时间的预估公式,但如何保证本身对事件的估计时间在合理范围内,若是低估了时间又该怎样弥补?
这个主要应该靠开发人员本身的经验积累,低估了时间就只能想办法拉快进度
五、第十三章:怎样识别软件的故障是内部问题仍是外部问题?
通常是先软后硬的原则。从新分区,低格全部分区后用标准系统安装盘重装系统,若是故障依旧,那基本是硬件问题了。
我的收获:
认识到在项目完成中文档与类图,用例图,时序图的重要性,软件项目不是一我的的事情,更多的是团队的交流协做。
周蓉 201731062305
阅读做业博客连接: 博客连接
博客要求内容:
对于问题一:当初觉得程序正确,若是加上正确后面的程序,是不会出错的。在团队合做中,本人体会到队长在合成咱们的各个模块的时候,后面新建的模块若是出了问题一样会影响前面的功能,逻辑,物理结构,特别是传参数的时候,一但新构建的模块出了问题,它的输出,停止都会影响后续的模块,之前模块功能的正常使用。回归测试能够找出退化的软件(有了新模块,可能功能崩了)的错误,改进软件。这也是
软件测试的目的是为了发现错误而执行程序的过程;测试是为了证实程序有错,而不是证实程序无错(发现错误不是惟一的目的)
对于问题二:这个问题,本人想结合下在面向对象课程中一些体会,线下调查已有软件知足了用户什么需求,用户体验或者说别人想让软件工程师实现什么。而在需求分析中,咱们构建的任何想法,其实都是创建在人类须要,既有需求的目的去开展的。
做为制做软件的成员,在最初就用该对使用用户有个定位,事实上咱们对它应该完成了可行性分析,那么在调查问卷问题设置上就是有方向的,经过定位人群去找到有效反馈。
需求获取主要方法:文档“考古”法,用户表明访谈法,问卷调查法,运营数据分析法,同类方案研究法,虚拟用户构想法
对于问题三:得知,产品经理就是经过了解用户需求去设计原型给软件工程师实现,那么正确的获取需求,我想在之后工做中才能获得解答(若是有机会的话,考虑的前进方向中了)。
对于问题四:创新,本人对于它的理解有了新的体会,用户体验其实也是“新”的东西,同类型的软件,胜出的地方就在它给用户带来的感受,just like QQ and TIM,后者就更为简洁,这也是创新呀。技术的创新,在原有的技术上实现算法,或者结构上的改变,使得更为简单。
对于问题五:在团队项目中,本人是贡献最少的吧,队长分配“网络编程”模块给我,可是我最终也没完成,回首过来,我才是“抱大腿的人”。我想团队合做中,团队意识最重要吧,有荣与焉,你们都在学新东西,菜鸡也是要有团队荣誉感的,固然也有关队长的分配了。
总结:
解答完本身的问题,回到“无力”,“愧疚”,“羡慕”这三个词语,是我在本课程的体会。在结对编程中,我是参与其中,本人十分感谢队友在他的博客中给我留足了面子,在我在为某个版块费劲头脑的时候,队友已经完成功能,而最终我完成的模块,却成为败笔,多余的,我是很受打击的。在项目中,我忘不掉,我跑去图书馆一层,打着手机灯在书库里面找网络编程书的过程,当时我内心的愧疚已经打败我害怕黑的感觉了。连续几周都在看网络编程,连作梦都是。哭过,由于“无力”。在项目展现中,我"羡慕"那些优秀的同窗,由于我一无可取。
很惋惜的是,临了了,我仍旧没有找到本身的专业方向,可我真的很想在互联网专业从事一些工做啊。本人逻辑思惟真的不好,编程对于我来讲,或许准确的来讲算法,日常人一两遍就能弄好,我可能要十遍,写上不少页纸才能弄懂。
掌握的技能:自学,专一,需求分析能力。新的问题:如何在团队中起到做用?
最后很感谢在团队合做中队友们对个人帮助和鼓励。
龙继平 201731062131
阅读做业博客连接: 博客连接
博客要求内容:
问题一:在瀑布模型中十分强调文档的做用,那么在其余开发的过程当中是否也须要严格编写文档?还有文档的做用是否过于夸大,我也据说过,过于详细的文档不如没有,那么文档要多仔细为好?怎么样把握度量?
个人理解:我在这门课程的过程当中开始理解文档的重要性。老师不断给咱们强调文档的重要性。一个好的项目80%的时间是在设计文档。20%的时间用于把文档实现为代码。在大型项目时,文档是必须的,文档也是越详细越有条理符合规范为好。在我的小项目时,能够省略部分文档,只写重要的设计部分文档。
问题二:在这一节提到“咱们要在竞争性的环境中实践软件工程,那就要作实用求创新的项目”,那么在需求分析的时候,是以创新为主仍是稳定为主?如何处理需求与创新之间的矛盾?如何可以使需求合理化,符合软件设计要求?
个人理解:需求分析时以稳定为主,咱们的目标是设计符合客户要求的软件,因此第一要素是知足客户需求,其次再是创新。需求设计要实事求是,不要天马行空。
问题三:在开发过程当中不一样程序员的进度不一,若是程序员更新错了代码会不会致使程序崩溃?那么在管理源代码过程当中会不会出现版本冲突呐?在版本冲突的时候如何回退前一个版本?回退事后开发进度会不会跟不上任务要求?
个人理解:源代码的管理通常是由svn的版本管理工具管理的。使用十分方即可以实现代码的对比,而后在上传,也可以实现版本回退。
问题四:在进行效能测试时,每每都会测试不过全面,有时候也不可以达到测试的条件,在这种状况下如何测试?怎样才能使效能测试更加全面,高效?
个人理解:效能测试要涉及测试代码的每个方面,尽可能的作到测试全面,测试也应该覆盖每个条件的分支,并获得想要的结果,才能测试全面。
问题五:这里介绍了软件的各个版本,beta也就是咱们常说的尝鲜版,一般尝鲜版会有各类bug这个版本的发布会不会影响用户体验?其次各个版本之间如何有效的辨别?
个人理解:beta版本基本能够正常使用,beta版本测试是为了提升测试的效果,可以有更多的额人员参与软件的使用,从而发现问题修改问题。其次beta版本也是通过了必定的测试阶段,基本不影响正常使用,有的只是微小的bug,也多是为了软件开发的新功能,来获取用户的反馈,从而更好的开发软件。
总结:
我学会了UML绘制类图,用例图,时序图。在团队项目的开发过程当中,我开始认识到文档和沟通的重要性,我在这门课最大的收获就是开始正视文档,明白了软件工程这个专业不只仅是技术,而咱们更多的是学会去写文档,而后实现为相应的软件。
张欣 201731035120
阅读做业博客连接: 博客连接
博客要求内容:
问题一:
在教材中第二章我的技术和流程中,所讲到的单元测试,是对软件项目中的每个小的模块进行test,是对后面工做的正确性的保证,同时也是以后的单元测试的基础,其中提到的代码的“覆盖率”,当时学C语言时有头文件,当写一个函数时,须要到头文件的那个文件夹中区寻找相同的功能代码,覆盖并运行,不知道我这种理解是否是正确。
答:所谓实践出真知,真正的去实践事后,才能更加深刻的去理解本身的疑问,通过课程的各次实践,本身明白了覆盖率究竟是怎么回事情,可是就像我知道了1+1=2同样,可是依然不知道为哦什么1+1为何就是等于2同样,不知道在究竟是怎么样编译器能够知道已经对代码路径实行了覆盖。
问题二:
在学软件工程的课程的同时,咱们也在学数学建模的课程,在数学建模的课程上,老师讲了一个寻找临界点的问题,当时大多数同窗都回答,找几个临界点的值,进行带入计算测试,而老师说,这个就是咱们在接受软件工程教育是固有的思惟模式,我在想这种思惟模式是通过多年的思惟习惯以后造成,会不会被困于这种思惟模式跳不出了。
答:每一个人都有本身在通过多年的事和物的磨练以后所造成的固有的思惟模式,在通常状况下,倒是是没法跳出本身的这种思惟模式,可是在之后能经历更多的事以后,每一个人的能力以及想法也都会发生变化,可否跳出来,也算是本身的一种能力。
问题三:
1.在压力测试中,沿着时间轴延长,通常模拟48小时的高负载才能认为系统经过测试,在如何模拟,是对其中的数据进行调用模拟仍是,寻找真正的用户进行模拟;如若没有经过测试,系统崩溃以后,咱们应该采起什么样的措施来补救?
答:在这个问题中。因为在项目的开发中本身并无负责这一部分,因此也没有更深刻的去针对这个问题进行求证,本身将在之后的学习生活当中,对这个问题进行实践而且求证。
2.一样也是test的问题,是在教材中第十三章软件测试中所讲的A/BTest,其中用了奥巴马竞选的例子来讲明,A/BTest是同时为用户提供多种服务,仍是随机测试,或者在给用户提供服务以前,让用户进行选择,本身想要的服务。尽可能在测试的时候讲损失降到最低。
答:不管是作事仍是作人都要勇于去作出尝试,才能有更好的发展,而作软件应该也不会例外.
问题四:
在课上讲的是在能够在开发代码完成以前,先写好测试代码,而在教材中的第十三章中讲到,开发时有开发说明书,测试同时也是有测试设计说明书的,其中要是有些功能尚未作好,不知道功能的具体状况,而时间有很紧急,这时候要如何去作开发代码的测试?
答:这个问题因为学姐的解答,以及本身在以后做业中的本身的理解摸索,代码测试的状况主要仍是是项目的状况来肯定,并非必定要按照先代码后测试的顺序,而在现阶段,我只经历过先代码,后写代码测试的模式,但愿之后能尝试进行先写测试代码的开发模式。
问题五:
在第三章软件工程师的成长中,在对项目完成估计的时间上,有些多是比较常写的代码,但老是会用到不经常使用,或者是要去新学的知识,如何能更准确的去估计本身完成时间?
答:通常来讲边学边作项目相对来讲是否是很理想的,可是因为我的自身的限制只能用这种方式,会大大的拖慢团队的开发速度,因此必定你要在平时多积累知识,必要时候必定会用得上的。
问题六:
如何确保本身已经完成的代码在签入时和别人的代码可以很好的对接起来,因为对团队开发流程的不了解,在这一部分上,仍是有不少的不明白。
答:这个问题依旧没有明白.
总结:
有出现一些问题,可是在项目过程当中,通过同窗朋友的指点,已经解决.
通过这学期的学习,我的能力有了必定的提升,可是很不满意,没有很努力的去学习接纳更多更好的知识;上学期只是简单的运用VS编写简单的程序,这学期对VS有了更加深刻的了解;接触并了解了代码的测试方面的知识;高尔基说书籍是人类进步的阶梯是很对的,从书籍中,我得到了许多之前不知道的知识.
相对于上一学期,我对这学期的表现更加满意,可是仍然有很大的进步空间,但愿本身能更加努力,越努力的人真的会更加美丽.
梅晨 201731062301
阅读做业博客连接: 博客连接
博客要求内容:
一、过早优化的问题在于:过早关注不重要的部分,而忽略行动和目标自己。让正确的程序更快比让快速的程序正确要容易不少,因此,首先应该把注意力放在使代码尽量性的清楚和可读上,什么时候进行优化应该根据软件开发过程当中的实际状况来决定。
二、结对编程是两个程序员用一台电脑,一块儿工做。两我的一我的是驾驶员的身份,另外一我的是领航员的身份,对两我的并无什么特别的要求,可是在结对的过程当中仍是须要相互磨合达到比较理想的效果,我以为结对编程须要思考是如何将领航员的职能发挥到最大。两人合做是一种合做关系,相互帮助。
三、软件团队的模式选择我以为跟软件项目自己和软件团队能力有着不可分的关系,能够结合项目自己和团队自己状况来选择一种合适的团队模式,合适的团队模式在整个软件开发的活动过程当中会比较容易解决问题,按时完成项目。
四、思惟局限我以为是可能会出现的吧,确定须要有专门的测试人员对整个软件进行测试,这时候其实也包含了对代码的检测,使得软件的出错率更少。
五、https://blog.csdn.net/wang_lichun/article/details/7267948
总结:
通过一学期的学习以及相关书籍的阅读,对于开始不懂的问题有了一些解答,在课程做业的完成过程当中,体会到告终对编程的好处,在编写代码有错误出现时,会有人及时提醒,在设计代码的时候,能够一块儿讨论,融合两人不一样的看法和观点,得出更加好的设计思路,会避免一我的深陷BUG之中。在整个的团队项目当中,也学习到了一些新的知识,同时深深感受到本身编程能力的欠缺,可是也有很多收获,更加了解了软件开发过程,学会了一些软件开发过程当中必要的技能。
团队项目Github地址:<连接>