2020BUAA软件工程(cdot)个人项目作业感想
一、简介
本博客的主要内容为,在完成软件工程个人项目作业后,对个人项目作业的总结,以及对北航软件工程课程的一些感想及建议。
项目 | 内容 |
---|---|
本感想属于北航软件工程课程 | 博客园班级博客 |
作业要求请点击链接查看 | 个人项目作业要求 |
个人项目作业博客 | 个人项目作业博客 |
二、个人项目作业总结
个人开发能力对于软件开发团队是至关重要的,这次作业的目的是希望通过一个难度适中的软件项目,训练同学们的个人开发能力,学习软件开发中的常见流程,因为是软件工程课程的第一项编程作业,故本项目也具有让同学们快速上手,理解课程要求等目的。
本次作业难度适中,是一项基于命令行的开发项目,涉及数据结构和算法的一些知识,这些知识都是我们在先前课程中有基础的,所以在实现难度上没有太大的障碍。但作为软件工程课的一项作业,我们可以从中学到很多软件开发的常见流程。
在作业中,首先进行PSP分析,制定整个开发过程的计划。之后进行需求分析,撰写设计文档,包括算法设计、代码架构、画UML图等。在充分进行设计工作后,进行开发编码。开发的每一个组件都使用VSIDE提供的单元测试功能进行单元测试,并对之前开发的组件进行回归测试。开发完成后,进行整体测试,测试通过后,使用VSIDE的性能探测器进行性能评估,对性能瓶颈处进行性能提升,对代码进行不断完善。最后撰写博客进行总结,提出有待思考的问题,以便在下一次开发时有进步。
在本项目的开发流程中,我认为撰写设计文档部分是最重要的,也是耗时相对最多的。在学习软件工程课之前,我很少撰写设计文档,通常都是直接开始编码,但是在写代码过程中会发现自己最初的想法有很多漏洞,于是再推翻重构,浪费很多时间。本次作业中我在编码前做了足够的设计工作,架构设计的足够合理,使得编码过程中思路非常清晰。另外在第二项作业:结对编程中,我们组基于我在本项目的架构,十分方便地就做到了扩展,完成了需求。可见对于软件工程而言,需求理解与设计是最为重要的一环,不可或缺。
三、对课程的感想与建议
北航的软件开发课程在前几年还是选修课,现在已经成为必修课,我觉得,接受软件工程课程的训练是十分有必要的。在大一大二,我们经历了数据结构、算法、面向对象等基础编程课程等学习,但这些课程的编程都是规模较小、面向课程知识的训练。比如面向对象课程中,我们写了相对较复杂的电梯调度、地铁换乘等作业,但其主要目的是为了训练面向对象课程中多线程、设计模式等具体知识点,而并不是要写一个可以使用的软件。
但是对于大三的学生而言,我们需要接受软件工程的训练,开发一些复杂且真正实用的软件。既可以对先前课程所学的编程知识做一个巩固提升、锻炼工程能力,更重要的是,与工业接轨,为即将毕业的我们提供软件开发能力的训练。
最后为软件工程课程提一些建议,我觉得课程节奏有些前紧后松,个人项目和结对编程项目本身编码任务量就不小,加之要做好设计文档,写好总结博客,总体任务量确实很大,我个人感觉在前几周几乎把全部的学习时间都用在软件工程课上了。而到了团队项目,由于团队人数较多,博客任务相对较少,就显得比前几周轻松。所以我觉得是否可以调整一下课程的时间分配,或者减少个人项目和结对编程的工作量,让同学拥有更好的课程体验。
最后附上黄衫照片~感谢软件工程课程组~