软件工程个人总结
一、回望第一次作业
开课之前对软件工程的知识了解甚少,开课以后一次次的学习让我对一个软件项目完成的过程有了一个系统的学习。我对于一个项目任务的编写更加条理清晰,每次写代码都会边写边审视自己的代码,时时刻刻想着写出可读性强、可扩展性强、易于维护的代码。学习过程中还学习了软件测试的过程,软件单元测试、功能测试、性能测试,都让我对软件项目的发展有了一步一步更深的理解。不足之处在于对于基础知识比较薄弱,很多编程思路、编程方法、语法都需要在编程的过程中边写边查,python是一个上手非常快的语言,但是大量库的使用是我们对一些库的实现并不了解,没有深入探究各个编写好的库、算法是如何实现的,我认为一个合格的程序员应该去做这些事情,去了解每一行代码是怎么在计算机上实现的。本次课程学会了使用github来保存自己的学习的代码,利用VsCode优秀的集成能力,清晰的图形化界面,可以轻松的实现fork、push等操作,在云端保存自己的代码比本地保存更加安全可靠;学会了和别人分工合作,利用github协作开发,利用tower进行项目计划、完成情况的记录。本次课程印象最深的是对诗词游戏数据库数据的下载和导入,用到了自己感兴趣的爬虫技术,可以快速高效的爬取网站信息,后续还学习了MySql数据库的使用,从本地txt文件将数据成批的导入数据库,这个过程非常的快乐。软件工程的学习让我明白了一个优秀软件项目的完成需要多人的紧密、高效的合作,多人的协作是难以开发出高质量的代码的。
二、写下属于自己的人月神话
一个软件项目的完成需要多个成员的参与、合作才能完成,最初诗词游戏由一个人开发,难度比较大,思路比较闭塞,一股脑的就开始了,对于费劲编写好的程序并没有很好的用户体验,慢慢分组合作以后,大家及时沟通、充分讨论,每一步的前进都是大家思维的碰撞;随着时间的延长,组员之间的协作更加密切、高效,对于任务的完成有着非常大的帮助。这样的机会在大学生活中是难得的,完成一个项目的体验非凡。当然合作中也会存在种种的问题,比如两个人的程序风格差异很大,程序整合比较困难等,不过这些问题都在及时沟通下能解决,也说明了我们的编程水平有待进一步提高,不能满足于只实现程序的功能需求,对于可读性等要求也要充分考虑。
三、对下一届实践的建议
作为一个跨专业来到计算机专业的人来说,什么东西都是新鲜的,但是我没有本科生那样充足的时间来充分学习好每一门课,我的学习常常是跳跃式而且紧张的,每一门课都很重要,每一门课我都得学,时间紧任务重,时常想放弃,时常后悔跨专业,但是没有办法,得对得起自己的选择,在这些时间里能学多少是多少,珍惜难得的学习时光是最重要的,我坚信这个世界上的任何一个专业,在努力之下都能学懂、弄明白,只要耐下性子、沉下心去,都能有所学、有所得。希望下一届的学习这门课也能坚持学习,坚持实践,一行一行的敲代码,体验其中的乐趣,按高标准要求自己。
四、分析一下自己所处的团队
团队只有4个人,是一个小团队,合作还算紧密及时,每一项任务、每一阶段几个人都充分的沟通交流,思维碰撞。在萌芽阶段,我们互相认识,加微信、建群,在群里讨论交流;在磨合阶段我们充分讨论了项目思路:采用什么框架、用什么方法,确定行动指南,根据个人情况进行分工合作;在规范阶段,大家按照项目计划、个人任务完成自己的任务,写好程序的接口,有问题和不会的地方在群里讨论交流;创造阶段,大家整合好代码,测试完毕,完成这次团队任务,相互帮助,携手前进,互相学习,互相进步。
五、怎样证明你学会了软件工程?
学会了UML建模,通过UML图对项目开发过程进行设计指导;学会了结构化编程、单元测试、性能测试,对程序进行流程图的绘制,根据程序流程图设计测试用例,对程序进行覆盖率测试;充分考虑用户需求,在编程过程中尽量让自己的程序可读、可维护;学会了为程序加上图形化界面,使其真正可用;学会了github的拉取、提交等操作,利用代码仓库存储、更新自己的程序,和别人利用同一个仓库进行开发,懂得解决代码冲突的问题。