软件工程M1/M2总结

软件工程M1/M2总结。

哪些问题现在自己已经清楚了,请阐明

现在比较清晰的是:

  • 团队中的协调配合问题。在前期,需要PM多多上心,把任务细化,在alpha阶段后期最好能够形成适合本项目和小组的任务分配机制,以便在beta阶段减轻项目经理的工作量。
  • 多完美算“完美”。我认为在一轮迭代开始的时候,一定要定好一个deadline,在这个deadline之前,不论功能有多么不完善,也一定要发布出一个版本,走完一整个过程,不要盲目追求完美。
  • 代码规范。在两人项目中,代码比较容易规范,在一个多人的团队项目中,首先在任务分配时尽量分散,每个部分最好不要超过两个人,让两人之间自己协调,或者是在项目设计阶段明确代码风格。
  • 设计变更。建立有效的沟通反馈机制,保证变更的内容能够及时告知开发者。

哪些问题还不明白,请分析

    关于如何对待前面人留下来的程序的问题,由于我们组这次的软工项目是原创,我也没有相应的体会,因此不知道该如何解决这个问题。

产生了哪些新的问题,请提出

    新的问题是,作为非专业性的软件开发团队,我们应该怎样协调任务与其他课程的压力?

我们还读了8篇软件工程相关的论文或博客,新的体会?

    在整个软工项目的过程中,发现实践的重要性。在课本上或者在论文中的知识其实都是对实践中情况的总结和升华,但是单单从字面上还是不能体会到文章中真正想表达的意思。从大的主题上把握,我的体会就是,没有万能杀器,只有适合的道路才是更好的。(P.S.从这句话看来整个体会是又红又专的)

    交流沟通方面。在我们的团队中,主体是一个宿舍,其余的队员也是一个班的同学或者熟识的朋友,因此在交流沟通方面的成本不大,精力可以更多地放在对项目本身的安排上面,然而对于那些队员之间比较生疏的团队,我认为还是要在交流沟通方面下大工夫的。这一点在在一切运行顺利时不能体现起重要性,但是在遇到问题的时候格外重要,因为与交流沟通直接相关的就是任务分配和合作。一个团队的配合和分工在项目中有多么重要相信只要经历过这个过程的人都回有体会。

    团队中角色认知方面。举个例子来说吧。我是在第一阶段体会到项目经理的重要性的。在正式接触一个软件工程项目之前,我认为的PM是一个相对而言的“闲职”,不需要过多地码代码,只要把握整个项目的大方向即可,只一点直到看完书、参考资料也没有太大的改变。现在再回到正题,实践才是检验真理的唯一标准。在项目的第一个阶段,我就发现了PM在整个项目中起到的是连接与动力的作用是多么重要。还是像之前说的,我们团队的项目经理坚持在每天早上或者前一天的晚上将每个人一天的任务放在群里进行公示与明确。并在每天晚上检查今天任务完成情况,以便及时调整项目进度。以我自己的切身体会,每天的任务和汇报机制逼迫我每天不得不挤出时间来做团队项目,从而保证了工作量。到了第二阶段,由于项目本身从磨合进入到规范阶段,我们的配合很大程度上已经取决于之前建立的不成文的分配规定,PM的工作量就没有那么大了,但这也是在项目初期打下了的底子才能撑起来的。

    个人时间安排方面。书本上或者文章中的知识基本上是对于一个专业的软件工程团队提出的。而我们的情况是,在进行一个团队项目的同时还要面对别的课程的压力,时间安排这一点上几乎没有可参考的内容。这时候发现前瞻性是多么地重要!!!我们的项目在alpha阶段完成了大部分的工作,这一段时间编译课设还没有开始,时间相对充裕。为迎接之后编译数据库课设打好了可以吃的家底。如今顺利结束,回想一下,如果当时拖延,想着将任务放到后面做,想来在14-17周的生活会相当相当难过。

    再次回到大主题吧,实践出真知。我认为6、7班的软工课程是比前大班成功的,就是因为有了一个真正的项目来给我们实践、让我们思考和体会软件工程文字的知识是怎么应用到现实的。然而实话说,在本学期做软工的过程中,我内心曾经真的十分抗拒这门课。倒不是因为课程本身,而是时间安排的问题。当我知道我们的软工课程考核方式是如此不同的时候,内心十分不平,认为我们付出了不同的时间精力却拿同样的分数,加之这个学期还有编译和数据库的压力,看着室友优哉游哉生活过的滋润自己却在软工的水深火热之中内心很是不平,相信很多同学应该都有这个体会。但是我也说了,其实这样设计很好,唯一的不足在于应该把这门课与有压力的课程分开安排。或者干脆大家一视同仁,一起辛苦,没有了心理落差或许好很多。

在项目的 需求/设计/实现/测试/发布/维护 学到了什么 “知识点”

  • 在需求阶段 一定要做好用户调查,之后要根据调查内容做好自上而下的需求分析,要将用户的需求尽量细化。
  • 在设计阶段:任务设计时应该从下而上,每一个细致的任务分析之后然后规划为自己负责的大模块。
  • 在实现阶段:实现阶段要做好成员配合,需要交互的部分要提前沟通。在前期要大力发挥PM的调度作用,将每个人的任务细化到每天,保证团队在不断地运转。
  • 在测试阶段:测试要从多方面入手,除了单元测试,还需要场景模拟,小规模压力测试等等。
  • 在发布阶段:最开始阶段,不论功能有多么不完善,一定要在计划时间内将产品发布出来,再在这个基础上进行完善和优化。
  • 在维护阶段:维护阶段要结合用户反馈信息进行总结,并且完善。
原文地址:https://www.cnblogs.com/lydiavitani/p/5119017.html