一、总结软件工程M1/M2:
这学期的软件工程团队项目总体做下来感觉还是比较累的,但也收获了很多。
首先这次软件工程的团队项目的开展,让我对软件工程这一概念有了清楚的认识,对软件工程中一些基本概念和基本
理论都建立起了比较直观的理解。比如说软件团队的开发模式,开发流程。敏捷开发的流程,以及在进行软件开发之
前的需求分析,针对目标用户做出用户调查获取用户需求,做好软件功能的定位以及优先顺序。还有,在团队项目的
进行过程中,项目经理PM对于整个团队的管理,项目队长对整个团队的领导,队员之间的沟通联系和协商。此外,我
还学习到了在软件的设计和实现时所应该掌握的分析和设计方法,学会进行图形建模并分析,在开发过程中,对开发
阶段的日常管理。这些在软件工程团队项目的进行中都有着我们应该遵循的明确的规范,只有按照这些规范进行开发,
我们做出的软件才有质量保证的基础。只有这样,我们的团队协作起来才显得更有条理,更有效率。
此外,团队项目给我感受最深的就是团队协作的重要性。我们的alpha阶段由于刚刚涉及软件工程开发,对团队项目的
管理,包括代码管理做的都不是很好,到了beta阶段,想着要进行改进,但由于团队成员之间分工未能正常达到目标的
原因,我们的项目进展依然有些混乱,往往是我们开发人员包办了所有的工作,除了开发之外,还要兼顾博客的撰写,
项目进度的管理,实在是忙不过来,这也导致我们项目的测试工作做得不好。所以,从这些教训中,我认识到对于一个
团队来说做好明确的分工,并确保各个成员都能尽职尽责不折不扣的完成自己的任务是多么重要。
最后,这次团队项目做的不是很好,原因正如前面说的,我们的团队存在一些问题,有些队员无所事事,即不完成自己
任务,对项目的进展也不管不问,这就导致我们做起来工作压力比较大,时间比较紧迫,相信如果我们团队成员能够各
司其职,认真完成本职工作,我们可以做得更好。
二、问题总结
在学期开始的时候我做了阅读作业,快速阅读课本,同时提出自己的问题,原文博客链接如下:
http://www.cnblogs.com/myskety/p/4842232.html
经过这一个学期的开发和学习,对于以上的问题,我已经有了答案。
(1):团队合作中每个人分工而行,如何保证比较完善的各人之间的信息共享?
这个其实在进行团队协作的时候,我们首先就是通过划分各个成员以各自所要完成的任务模块,将开发任务分模块进行,
队员可以将自己完成的代码提交到团队仓库里面,队员关心各自模块的功能,队员之间通过统一的代码管理仓库进行共享
信息。
(2):敏捷开发如何保证开发的效率?即在进行大项目的开发时敏捷开发看上去会很混乱。
就我们而言,我们在开发过程中是划分优先级的,队员每天要做的东西是有限的,但是要做的东西优先级是不一样的,要
做用户急需的重要的东西,不重要的姑且要放一放,名其名曰“抓主要矛盾”!所以不能说有了bug或者有了用例不管三
七二十一就去做,有些不重要的bug或者用例是不需要马上做的。先把重要的做了剩下的不重要的客户自己回去掂量需不需
要再次投入资金去完善这个功能。要实事求是的去做,做客户真正需要的东西才是王道。
(3):黑箱和白箱测试具体是如何进行的?
黑箱测试在测试时,把程序看作一个不能打开的黑箱子,在完全不考虑程序内部结构和内部特性的 情况下,测试者在程序
接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序 是否能适当地接收输入数锯而产生正确
的输出信息,并且保持外部信息(如数据库或文件)的完整性。
白箱测试法是一种程序测试的概念,与黑箱测试相对应。 把测试对象看成一个打开的盒子,它允许测试人员利用程序内部
的逻辑结构及有关信息,设计或选择测试用例,从而对程序所有逻辑路径进行测试。
(4):团队合作项目中测试和编写代码是独立分开的吗?
我认为是不是的,以为在我们开发过程中,我们需要对开发的每一个功能保证其功能的有效性,因此采取在功能代码完成之后
进行测试,测试是对代码正确性的检验。
(5):从那些方面训练可以把自己变成一个合格的PM?
要训练自己的观察理解和学习能力,能够从一个新的领域很快上手,分析管理能力,要对项目中发生的事情分析重点,做出准确
判断和决定。还要有负责人的自省能力,这点我深有体会,我们的pm显然不具备这种能力。
新的问题,对于我来说就是怎样保证团队成员都能够各司其职,保质保量完成自己的任务,因为我们团队就存在着这种问题,部分
成员对任务不闻不问,导致整个项目进展的不顺利。
对于之前有关软件工程的文章,我的体会就是进行软件工程的开发一定要掌握开发的技巧和规范,遵循正确的理论指导,不能盲目
漫无目的,那样的效率和质量都不会很好,另外,团队管理绝对是软件工程一项非常非常重要的工作呢。
需求阶段:根据用户需求对功能进行定位,并确定优先关系
设计阶段:图形建模对软件进行设计分析
实现阶段:使用合理的代码管理工具管理项目代码
测试阶段:针对不同的功能模块做高覆盖率的单元测试
发布阶段:选择合适的发布平台并注意用户反馈,针对反馈信息修改版本内容
维护阶段:在开发过程中就做好对代码的说明,在维护阶段就可以针对出现的bug快速定位,准确修改。