这个作业属于哪个课程 |
2019春软工1班 |
这个作业要求在哪里 |
团队作业——总结 |
我在这个作业的目标 |
总结项目经验,提高自身能力,熟悉自身技能,做更好的IT人 |
团队名称 |
飞猪们 |
一、团队成员
姓名 |
学号 |
博客园地址 |
彭争杰 | 201731062125 | https://www.cnblogs.com/pzjdsb/ |
罗鑫 | 201731062121 | https://www.cnblogs.com/1998qq/p/10560388.html |
姚琦 | 201731062122 | https://www.cnblogs.com/1297207451yq/ |
梁江 | 201731062126 | https://www.cnblogs.com/decade2019/p/11082047.html |
高俊龙 | 201531060026 |
https://www.cnblogs.com/gaojunlong/p/11061970.html |
景慧敏 | 201731044205 | https://www.cnblogs.com/jhm12345678/p/10542235.html |
刘易青 | 201731034304 | https://www.cnblogs.com/dffj/p/10537266.html |
二、详细总结
1、彭争杰 201731062125
-
提出过的问题:
我对于自己在成为一名成功的软件工程师的路上,应该怎样脚踏实地的一步步走,还是没有很明显的概念,只是知道有这么一个方向感,但是每一步下去,应该去攻克怎样的技术问题,学会怎样的知识体系,这些较为具体的一小步,还是和以前一样迷迷糊糊缺乏认知。 -
问题的回答:
有了多次团队开发经验,算是见识了许多开发项目中的必要经历了,作为组长我也带领我们的小组进行了多次的开发项目实践,对于软件工程有了清楚的理解,再加上各个专业课程的学习复习以及备考,着实是一次专业知识的历练,让我对我以后要走的路有了更加清楚的认知。 -
疑惑:
学而时习之不亦说乎,在这次复习中我发现有很多的问题存在,其中最为突出的就是,我对于专业知识的缺乏,想法我有,框架也有,但少了的就是呢一份能够将其从我的脑海中提炼出来的本能,是我的技能储备不够充足,还是说我学习的有问题? -
技能:
软件开发过程有了清晰的认知。 -
总结:
正如某个伟人说,我们了解的越多,越能清晰的感知到我们自己的渺小与无知。这一段时间的学习,让我的技能圈变得更加广泛,但也更加广泛的接触到了以前所不曾接触到的盲区,黑压压的等待探索的地方越来越多,让我有些不知所措,我知道我未来一定会成为一名IT人,用电脑打天下,用自己的知识和双手吃饭,但学习的东西越多我越发现自己的能力与技能并不足以支撑这样的想法,还有太多东西是我没有学到的,太多东西是我没有看到的,我还需要精进努力才是。
2、罗鑫 201731062121
问题一的回答:
程序员想要在这行业长久的生存,技术只是一方面的,当然也是最重要的。但是团队的协作能力也是不可或缺的,毕竟一个人的力量和涉及的方面终究是有限。而团队协作能让个人的能力发挥到最大。还有一个方面就是个人的身体健康也会影响着程序员的“工作寿命”,所以加强身体锻炼也是很有必要的。
问题二的回答:
在了解到用户需求的时候,我才发现程序员的工作也是需要和他人交流的,并只是一味的编写代码。而对用户的需求分析,是一款软件最重要的部分,直接影响着你写出来的代码是否符合用户的需求,你写的软件是不是成功的。总之需求分析是一项严谨的,重要的工作,这需要锻炼我们的交流能力。
问题三的回答:
IT行业,还是一个年轻的行业。它需要我们不断的去创新,不断的去开拓。所以创新是必不可少的,我们并不只是在复制代码,也是在创造代码。
总结:这个课程让我学习到了团队,交流,还有学习的必要性。同时也让我知道这个行业的无限可能性,只要肯付出就会有收获。
3、景慧敏 201731044205
1.对于之前提到的问题3, 6.3敏捷流程部分表6-2提到把好的做法推到极致,要求有“每时每刻都....”、“从一开始就...”这些是可以提供产品的质量,但也加长了产品的开发时间,在高效与快速之间应怎样控制;而且一个敏捷团队需要多功能型的成员,要写规格说明书、测试等多个方面的事,这样一个人做几件事会不会不精?
现在我的回答是:这个流程最重要的不是一开始就什么都思考,什么都做,而是让每个成员都尽力去想当前的工程对后来工程的影响,以及对整个软件项目的影响,它要求的是每个人在做自己项目工作的时候能够多层次多方面的想问题,养成一种全面思考问题的方式,而不是只投入的自己的工程里,只想着把自己工作做完,如果一个团队的每个成员都在想先自己把自己的项目做到很好,这样就算每个人的部分做的完美了,但对于整个项目来说缺不是,甚至有可能是灾难。而且敏捷流程要求了成员有多功能性也是有利于在项目中能多方面得去考虑问题。
2.总结:经过这一学期的学习,我掌握的新技能就是在软件设计方面的,之前做的都是小作业就不是很清楚用例图这些的作用,觉得是可以不用的,但经过了这次项目明白了用例。图,用例设计都是很重要的,尤其是越大型的项目用例及设计这些的作用就越明显。正式编码前的一些分析及设计就相当于是为项目做出来框架,这样编码的时候就会很明白自己要做什么,不用有返回去理解需求这些,因为之前已经做好了,这样就增加了项目开发过程中的流程度,增加开发效率。
同时我知道了团队合作的重要,只要编码之前做好了需求分析,软件结构化设计并且制定了严格的编码规范,那么在编码阶段正确分工了以后将会非常方便,这是团队项目要比看起来简单,当然前提是要清楚没个人能做什么,做到正确的任务分配
4、梁江 201731062126
1.或者新兴市场发展太快,赢者通吃,后来者很难赶上“这句话是什么意思?
老师说,在学校期间没有参加过创新创业活动,没有经验的就不要刚毕业就创业,十个创业九个失败。创新,到最后还能有什么创新?大公司有的是资源,搞创新,他们的力量是我们的成千上万倍。我们都是后来者,都是个体,想要成功除了有资本(包括能力,技术)
的人去创业,就只有加入前人的队伍。
2.已经成功的公司还能创新是为什么呢? 是因为领导者可以坐而论道吗?
已经成功的公司还能创新,都是因为源源不断的引入新生力量。
二、经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的。
掌握的技能有:vs的单元测试,效能测试工具,visio画图。这些工具的使用是在做团队项目的时候必须用到的。软件工程,UML这两门课程做了很多团队项目
三、深刻的体会
遇到问题一定要想办法解决了,团队合作也是。
5、姚琦 201731062123
问题1:
第四章第五节P78,结对编程在现如今的软件开发过程中还实用么?若实用,在那些方面使用结对编程更好,那些又不好。
答:还实用。在一些小项目开发的时候,可以用结对编程。好处:互相监督,不容易偷懒:两个人一起工作需要互相配合,如果想偷懒去干别的,就会拖延工作进度。坏处:与合不来的人一起编程容易发生争执,不利于团队和谐。
问题2:
第六章第一节P109,在敏捷流程中如何来快速确定当前需要解决的事那件事重要的,那件是次之的?
答:敏捷确实是项目进入实质开发迭代阶段,用户很快可以看到一个基线架构版的产品。敏捷注重市场快速反应能力,也即具体应对能力。在优先满足客户满意度为前提下,解决一些事情是重要的。其余的都是次之的。
问题3:
第八章第一节P152,在当前的社会下,如何快速的了解这个社会对软件的需求?
答:进行需求分析,通过对应问题及其环境的理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化、完全化,最终形成需求规格说明,这一系列的活动即构成软件开发生命周期的需求分析阶段。
问题4:
第九章第一节P183,pm在做项目中的地位是十分高的,但是一个团队没有了pm会怎样,或者技术开发人员与pm配合不好又会怎样?
答:项目经理将任务分成若干个子项目,每个项目由一个PL(项目组长)负责。在每个子项目中,由SE(系统工程师)带领PG(程序员)共同完成。若没有了pm,项目进行的将会很混乱
问题5:
第十三章第二节P282,对于效能测试,我们在进行效能测试时如何来分配软件中功能的效率?
答:分配中讲求效率的意义和维护公平,效率与公平,效率与公平是一对矛盾体,者看似不可调和,却又互相依存。因此要正确处理效率和公平的关系。
问题博客地址
https://www.cnblogs.com/1297207451yq/p/10560421.html
是否提出来新问题?
答:没有。
经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的。
答:学会了使用visio,学会使用android studio开发安卓
有什么深刻的体会,对自己一学期学习过程的总结。
答:通过这一学期的学习,了解到了开发一套项目的完整过程。这个过程是枯燥繁琐的,而且这个期间并不是一帆风顺的,会遇到许多问题。在面临这些问题的时候,你会面临巨大的挑战。而通过这些问题的洗礼,也会让你成长,学会更多的东西,技术。
6、高俊龙 201531080026
问题一:什么是软件质量,软件质量和软件生命周期有什么联系?
问题解答:通过一个学期的学习,对软件质量和软件生命周期有了一个新的认识,同时,对这个课程也有了不同的理解,在学习中,理论知识要在实际的实践中才能发挥作用,而实践也不能脱离理论。
问题二:关于敏捷流程的一些叙述。
问题解答:敏捷开发在现在的开发过程中使用较为广泛,虽然它存在一些缺陷,但是它所带来的效率是其他开发流程达不到的,这一优点让敏捷用起来很方便。
问题三:在书本第28页中提到“回归测试是建立在单元测试的基础上”,那回归测试具体应该在哪一个阶段开始?
问题解答:回归测试也和单元测试一样,贯穿于软件设计的全过程和各个步骤。因为这样能及早地发现问题,并及时解决,降低错误带来的风险。
问题四:在阅读第五章时,认识到很多经典的“软件过程模型”,比如“瀑布模型”、“统一流程 ”等,但这些流程都存在一个缺点,就是都是用文档驱动,比较偏重文档表达,这在软件开发过程有些繁琐,是否有一些更优化的,在书本中没有提到的软件工程模型。
问题解答:各个开发模型各有优缺点,不能说有完美的开发模型,就像软件一样,不可能存在完美的软件,只能说在做的过程中不断完善,做出足够好的软件,因为事务的发展是日新月异的,是曲折向前进步的。
问题五:在书本第159页提到的方法(态度:行为、定性:定量),我还是没有完全理解书上的图8-3所要表达的意思?
问题解答:大概的意思都在这个图中体现出来了。
学期的总结:
通过一个学期的学习,自己在知识和能力上面有了很大的提升,学习之前,对于软件的开发过程是模糊的,甚至可以说是陌生的,但是在学习完课程之后,不能说全部吸收了解了,但是其中的思想已经了解了一部分,流程也清晰了很多。虽然学的过程感觉很难,但至少结果是自己在课程中学到了东西,每次作业都是尽自己最大的力去做,不一定最好,但都是自己努力的成果。
7、刘易青 201731034304
· 问题一:第三章:3.3软件工程的职业发展
有人说一个人就可以快速成长一名全栈工程师,这让我想起街头卖艺的单人乐队,他们什么都会一些,可以很快的演奏一些曲子。与之对立的,是只研习某一乐器的乐手,你愿意花钱听哪种演奏呢?
我对作者观点提出疑惑:因为在我认为在懂得更多中会占有以下优势,其一在团队开发中如果能掌握更广的技能,那将减少技术人员的沟通成本。其二,了解更多技能也会拓展当前技能。但如果专一意味着会放更多精力在学习一门上,所以我想请问以下应该怎么做好专和广的一个平衡呢?
解答:看个人要求而定。我认为必要基础与专都是重要的,而广是可选(广一般来说是作为兴趣)。
· 问题二.5.3开发流程
书中提到了几种模型,写了再改模型、瀑布模型、老板驱动模型等等,但在实际开发中应该选中哪种会使得开发效率最高呢?
解答:写了再改是最不好的模型,个人认为敏捷模型最适合项目。
· 问题三.9.3PM做开发和测试之外的所有事情
1.观察、理解和快速学习能力
2.分析管理能力
3.一定的专业能力
书中提到了合格的PM需要这些能力,我有个问题,本科期间应该如何培养这些能力呢?
解答:1.不断尝试,不怕失败。
2.找到兴趣点,做好
3.多读书,多交流
4.乐观向上
5.有规划
· 问题四.12.用户体验
好的用户体验当然是所有人都想要的。
的确用户体验很重要,但用户体验在应该放在软件开发中哪个步骤呢?
解答:需求分析阶段
· 问题五.16.1.3迷思之三:好的想法才会赢
理工科的同学比较理性,大多会认为,好的想法当然会赢了。就像解数学题一样,好的解法当然会得高分啦。但是在现实时候中,好的主意不一定赢。
以我的经验,好的想法能够为产品增添色彩,比如55°保温杯,加热鼠标垫等等。这些会使得其在出现大多数相似里脱颖而出。但作者也说得有一定道理,是否有好的想法有时候对成功影响不大。所以如果将来在创业,进行到一半,突然发现一个更好的想法,而这也许会带来更大效益,这时候应该再次冒险采用新想法还是依照过去的路呢?
解答:都重要,但好的想法并不能决定一切,最重要的是个人能力。交际、想法、规划等等这些都很重要。创业越大难度越大,没有合适机会与时间、金钱,和最重要的一点能力,不要轻易谈。现在是打基础的时候,能力不够,先不着急。
学期的总结:
通过一个学期的学习,感受到了软件的工程学思想。
这些工程思想运用在项目中,能提高项目的效率与可靠度。
同时不仅限于运用在项目中,这些也可以用在自我规划中,比如说到的阶段性评估,写文档,原型…
我觉得这门课与其叫《软件工程原理》,倒不如叫《提高效率小TIP》