北航学习总结
在北航参加的《软件工程》四天实践中收获颇多,总结来说有一下几点:
-
软件的完整生命周期。在软件的整个生命周期中,虽然开发阶段很重要,但是软件的测试阶段和部署阶段同样重要。在以前的软件工程实践中往往只关注与软件的开发和文档编写,对软件的测试和部署阶段关注较少。
-
结对编程。在以往的开发过程中,没有采用过结对编程的方式。在本次培训中发现了结对编程的许多优点,例如观察者通过对编写者编写代码的查看,可以减少编写bug的可能性,从而提高代码的质量。而且对于组队成员中的较弱一方来说,可以通过观看队员编写代码和与队员的讨论来提高编程能力。
-
单元测试与性能测试。在编写程序代码时不应该只关注于程序的正确性,还需要设计足够的测试用例来保证程序的健壮性。而且在本次课程中还发现,在每次修改代码后再运行一遍所有的测试用例(回归测试),可以保证修改的代码不会影响之前的程序功能。
-
原型设计。在本次软件工程实践中使用了《墨刀》原型设计工具。通过原型设计工具,可以快速进行原型设计,将需求分析的结果可视化,也是给后期的软件开发设立一个目标。
-
沟通问题。在结对编程中,两个人之间的沟通还算容易。但是在团队项目中团队人数较多,每个人都有自己的看法与观点,想要达成共识比较困难,沟通成本上升。在本次培训的团队项目中,就出现了因为讨论不充分导致团队成员提交的成果不能组合(例如每个人设计的原型风格不一致导致不能合并)的问题。
-
项目分析的重点。在软件需求分析阶段中,需要有一个强势的PM来主导需求分析的方向。PM应该要知道本阶段需要达成的目标,避免成员讨论无意义,或是太过细节的底层实现。PM需要确保项目进度按计划执行。