实验十四 团队项目评审&课程学习总结

一:1.结合本学期课程学习内容,对比《实验一 软件工程准备》的任务5你所提的问题(给出提问博客链接),尝试对提出问题进行解答,并阐明是如何通过学习/实践/讨论弄清楚的;学习中是否产生了新的问题?如有,请提出。
1、提问博客链接地址:https://www.cnblogs.com/Pretend/p/10509832.html
2、对问题的回答:
问题1:本书第四章讲的是“两人合作”,在该章节中讲述了代码规范,代码复审,两人合作的技巧等......但没有涉及到一个问题,让我很疑虑,在一个开发团队中,每个人编写代码的水平各不相同,那么,如何在团队中合理分配每人的任务?使每个人都能在团队中出色的表现,从中受益,提高水平。
回答:首先呢,在一个团队中,成员之间必然有着技术性的差异,在团队开发过程中,可以根据团队对的规模,项目的大小来灵活的调整团队的成员分配,但根据描述,比较适合的是功能团队模式,该团队是把一个大的项目分成若干个功能,每一个小团队共同去完成一个功能,这个小团队里面有技术大牛和菜鸟共同组成,菜鸟向大牛去学习,大牛带着菜鸟们共同完成该功能
问题2:在第11章231页,有下面这样一段话 “写好代码后,小飞对照设计文档和代码指南进行自我复审,重构代码。” 对于“代码重构”不是很清楚。
回答:我查了一些资料,重构就是通过调整程序代码,但并不改变程序的功能特征,达到改善软件的质量、性能,使程序的设计模式和架构更趋合理,更容易被理解,提高软件的扩展性和维护性。资料中都在强调重构的好处,而重构在“软件系统的过程, 它不会改变代码的外部行为, 同时改善其内部结构。 这是一种严格的清理代码的方法, 它可以最大限度地减少引入错误的可能性。 本质上, 当重构代码时, 是在编写代码之后改进它的设计”。
问题3:在通读到本书的最后时,老师留了一个问题:“软件工程师在企业中是劳动密集型的工人,还是有独创性的专业人士?他们对软件企业的成败负有多大的责任?”
回答: 通过查阅资料,我的理解是这样的:软件工程师在企业中不应该是劳动密集型的工人,而应该是有独创性的专业人士。但是在中国的诸多企业中,包括外企,往往都是专业人士带领着一群劳动密集型的工人在工作,普通的程序员再聪明,也没有能力在大方向上改变公司的决策。软件工程师与软件企业的成败息息相关,但对软件企业成败负多大的责任,却是要多方面考虑的问题。软件企业的失败是有多方面原因的造成的,比如经营模式、领导层的原因,员工的原因。他们所要负责的只是其中一部分。因此软件企业的成败不应该由软件工程师来负主要责任,如果要把这个责任强加到软件工程师身上,那么至少也要给软件工程师同等的发声权利。

二、总结自己在项目的 可行性分析/需求分析/软件设计/实现/测试/项目验收/中学到了哪些“知识点”。
需求阶段:为了更好的理解问题,人们常常采用建立模型的方法,除了创建分析模型之外,在需求分析阶段还应该写出软件需求规格说明书,经过严格评审并得到用户确认之后,作为这个阶段的最终成果。通常主要从一致性、完整性、现实性和有效性4个方面复审软件需求规格说明书。
设计阶段:自顶向下逐步求精是进行软件结构设计的常用途径,但是,如果已经有了详细的数据流图,也可以使用面向数据流的设计方法,用形式化的方法由数据流图映射出软件结构,这样映射出来的只是软件的初步结构,还必须根据设计原理并且参考启发式规则,认真分析和改进软件的初步结构,以得到质量更高的模块和更合理的软件结构。
实现阶段:实现阶段包括编码和测试,所谓编码就是把软件设计结果翻译成用某种程序设计语言书写的过程。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明书、设计和编码的最后复审。
测试阶段:白盒测试和黑盒测试是软件测试的两类基本方法,这两类方法各有所长,相互补充,通常,在测试过程中早期阶段主要使用白盒测试,而在测试过程的后期阶段主要使用黑盒测试方法。
发布阶段:在此次团队项目中,我们小组开发的是旅游管理系统,所以由于各种原因,此项目并未发布。
维护阶段:预防性维护实质上就是软件再工程,典型的软件再工程过程模型定义了库存目录分析、文档重构、逆向过程、代码重构、数据重构、正向过程6类活动。

三、结合个人项目/结对编程/团队项目的个人经历,谈谈心得。
经历过,也算是给自己博得一次发言权, 你才会知道那是什么 , 过程怎样,该怎么做,遇到问题如何解决, 历数心得,受益匪浅。
从整个项目的过程来看, 团队合作中需要沟通、分工、协作和监督。只有做好这四项才算是一个好的合作团队。首先, 团队合作 最基本的技能就是沟通。沟通的目的就是让别人了解你的想法,因为每个人考虑问题的时候总会有各种各样的见解 ,也会出现各式各样的偏差,我们只有通过沟通来综合所有人的好的想法, 以 减少走弯路, 从而让事情进行的更顺利。再其次,团队合作中协作是必不可少的。在项目组中各成员都明确 分工 了自己的任务, 明确 了自己的任务分工, 就需要大家单独工作的同时 又去配合其他人。
了解需求、分析、设计、编程、垒代码、别人看来,计算机的东西、 枯燥、乏味、无聊,还很容易让人浮躁,在我看来,也很容易让人绝望,因为不是简单的一触而就的东西,需要你花时间,花心思,你想,要让人与机器沟通,要让人以机器工作的角度来思考,还得考虑用户需要什么,各种问题杂合,确实是不太容易 。一路走,都是很枯燥乏味的,没有一点甘霖,也没有希望,代码,代码,代码,头晕眼花……只有当运行键后不再有那么多错误和警告,当功能一个一个都能按我们的设计实现,当成果漂漂亮亮地展现在面前,那就是我们的希望,我们的动力,是我们最需要的光明。
这样的实践,主题面向的是创新,如果你有想法,有能力,有自信,就很值得去尝试一下, 不试一下,谁都不知道自己有多少,到底行不行,而能从中获得的东西寥寥数语岂能言说尽,只有当你身处其中,经历过,体验过,不论是枯燥,绝望, 还是最后的光明幸福,你才知道其中的滋味。不要放弃尝试,任何时候都不。一路走 ,一路调解,一路坚持。

四、总结这门课程的实践总结和给你带来的提升
(1)统计在软件工程实践中,你完成了多少行的代码;20000多行
(2)你在软件工程实践的各次作业分别花了多少时间?

时间(h) 作业
8 实验一 软件工程准备
8 实验二 软件工程个人项目
10 实验三 作业互评与改进
12 实验四 附加实验 项目互评
15 实验五 团队作业1:软件研发团队组建
12 实验六 团队作业2:团队项目选题
18 实验七 团队作业3:团队项目原型设计与开发
16 实验八 团队作业4:基于原型的团队项目需求调研与分析
16 实验九 团队作业5:团队项目需求改进与系统设计
20 实验十 团队作业6:团队项目系统设计改进与详细设计
30 实验十一 团队作业7:团队项目设计完善&编码
26 实验十二 团队作业8:软件测试与Alpha冲刺
25 实验十三 团队作业9:Beta冲刺与团队项目验收
(3)哪一次作业让你印象最深刻?为什么?

答:整个一学期下来,每次作业都在很认真的去完成,所以对于这门课程,我觉得无论是在学习上还是做作业的耐心上收获都很多。尤其是在团队项目设计完善过程中,印象最深的应该是项目经过编码和修改,出现了很多bug,在自习室整整呆了一天,盯了一天的电脑,修改了一天的代码,眼睛真的是太累了,心情也很无奈崩溃,所以才体会到了软件工程师的不容易,好在最后大问题已经解决,顺利的完成了项目验收的任务。
(4)累计花了多少个小时在软件工程实践上?平均每周花多少个小时?
答:累计共花了160个小时在软件工程实践上,平均每周大约花8个小时在软件工程实践上。
(5)你学习和掌握的新语言、新平台;
答:项目所用到的java语言之前就有学习、这学期学习到了博客园、GitHub、雨课堂、慕课网。
(6)填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法;

软件开发工具、项目管理工具 软件开发方法 软件建模方法
墨刀、Visio、在线作图工具ProcessOn、www.leangoo.con、navicate等 原型开发方法,面向对象的软件开发方法等 面向对象建模(用例图、类图、包图、流程图、时序图等)
(7)其他方面的收获或提升。
答:一个好的团队,是成功的需要, 各成员的专业知识与技能储备 , 成员间的优势互补, “ 物之为用 ” ,只有当你 “ 有 ” ,需要的时候随时都可以拿出来 “ 用 ” 。 此外, 一个人的力量毕竟有限,不论是智力,能力还是精力,都有所不能及的地方,集一个团队的力量,发挥整个团队的作用,这样就能解决更多的问题,战胜更多的困难。

五、你认为目前的课程存在哪些问题,你有什么更好的建议。
我认为软件工程这门课应该侧重于实验课的学习,一个好的项目需要团队去花费时间去开发和设计,但是理论知识也固然重要,理论实践相结合才是学好一门课程的前提。

posted on 2019-06-30 22:59  钟红耀  阅读(195)  评论(0编辑  收藏  举报

导航