首页 > 技术文章 > 个人项目感想

wheremeow 原文

个人项目感想

项目 内容
作业链接 作业要求
作业博客链接 作业博客

个人项目感想

个人的软件工程能力是团队开发的基石,团队开发因为需要沟通成本,开发效率通常会比个人开发低,因此个人需要熟悉软件开发的流程,为之后的团队项目打好基础。

本次作业要求开发一个求几何图形(直线)交点的命令行程序,附加题则在直线的基础上增加圆,此外程序的性能也是作业的考察点。

首先要填写PSP表格,计划好整体的开发流程,在软件开发中测试和维护通常是比较重要的,这里也应该多留出一些时间,思考整体的开发过程。之后则需要进行需求分析,程序设计。求交点的算法是比较简单的,通过查阅一下资料容易实现,接下来是软件的框架,因为之前学习过了面向对象程序设计,这里使用面向对象开发也是比较合适的。在完成开发后,则需要进行单元测试。单元测试应当具有不同的粒度,从函数,到类,最后则是End-to-End的整体测试。当编写的单元测试足够充分并且通过时,则可以进行软件的迭代了。这里可以对架构进行一些思考,必要时进行重构,以便将来进行扩展,此外要通过性能分析工具,寻找程序中的热点,并对其进行优化。需要注意的是,在实际的计算机上运行时,需要考虑计算机的体系结构,例如缓存,而不是只分析其理论上的渐进时间复杂度,将两者结合,才可以的到性能最优的解决方案。

个人认为本次作业中需要有意识的关注软件开发的流程,虽然本项目比较简单,但是应该培养自己的软件工程能力,多写一下单元测试,做到100%覆盖,大规模的测试也不能忘记,正确性是很重要的,架构也要便于扩展和修改,此外git的commit message,文档等也应该仔细编写。

对课程的感想和建议

个人认为本次作业还是比较偏向算法,附加题也是算法层面的附加。这样可能难以引导大家使用完整的软件开发流程,此外竞速排名也让我花费了不少的时间在思考和测试算法的性能上,可能这样不能做到让大家感受软件工程课程的作用和价值,或许博客作业做到了这方面的引导,但是软件作业本身可能引导不足。

此外希望课程能够降低一些负担,因为这门课在大三下,除了其他课程,许多同学都有十分重要的事(春招实习生招聘,实验室实习等)

为了完成软件工程课的作业开发以及博客编写,阅读了许多文档,查阅了不少资料,也开始更加严格的要求自己遵守软件工程规范,让我受益匪浅。希望软件工程课程越来越好!

黄衫照片:

推荐阅读