这是软件工程的最后一次作业,在此写上我本学期以来的体会和总结。
从三月初至五月低,学习软件工程将近三个月的时间。从一开始的个人项目到后来结对编程再到团队项目,期间经历了太多的困难与挫折,当然也有成功收获。有时会熄灯后继续熬到一两点还在修改程序,当提交成功后心里还是挺兴奋的。虽然软件工程已经结课并考完期末考试了,但我才能高中学习到了很多,除了个人专业技术知识外,还意识到了团队合作的重要性,这里还是有很多地方是值得肯定的。
一开始是我先入为主了,认为软件工程可能与其他专业课相似,学习课本上的知识,在动手编一些程序进行练习,其实不然。在我看来与其说软件工程是一门课,倒不如说它是一种思想。是一个引导我们如何去分析问题,如何处理问题的过程。应该说其范畴已经远远超过了这门课本身,成为一个综合的一个能够解决问题的思想的集合。
需求分析—概要设计—详细设计—编写代码—项目测试—项目完成—项目维护,这是软件开发的一般程序和过程,我认为这是一份非常有实际意义的教学内容,它让我们的工作模块化,从而更加严谨,也能提升整体的工作效率。当我们毕业之后,走进企业,这是我们要实际运用的一个非常重要的技能,而不是仅仅局限于软件工程的范畴。即使以后从事其他行业,但这是做事的思维和方法也是一生受用的,都是从需求设计开始,一步一步的有条理进行,最终完成作品。我觉得这才是这门课的意义所在,这也是我感触最大的地方。
团队项目作业中,我们团队做的事一款APP,他的功能是帮助人们在聚会时给大家提供一些娱乐性小游戏,还有不定时拍照功能,骰子游戏等。当然我们自己也亲身体会了一番,确实挺好玩的,知识还有很多地方需要改进和完善。当自己用到自己团队一起努力完成的作品是,除了满足自豪之外,还让我感受到了技术的魔力。有时候一个看似简简单单的东西,它的背后隐藏着无数的汗水与付出,在外行看来甚至会不屑一顾,他只是他们没有接触罢了,他们不知这里边的水有多深。很多人都在使用手机,有社交,有游戏,有学习,他们不会懂这里的每一个功能是怎么来的,每一行代码是怎么写的。觉得这都是高级人才的杰作,离自己太遥远。但是如果他们使用的某一款APP是我们做出来的,他们会用怎样的眼光来看我们,那种成就感是无法想象的。
接下来不得不提的就是敏捷开发了。简单的说敏捷开发就是把一个大的项目分成多个相互联系,但可以独立运行的小项目,并分别完成,在此过程中软件一直处于可用状态。他的价值观是 沟通,简单,反馈,勇气和谦逊。当然这些都是一个优秀软件工程师的必备要求。Alistair Cockburn曾经指出:很多的方法都定义了软件开发项目中开发人员所担任的角色,同时还定义各个角色执行的任务,尽管这些方法都没有定义这些角色的最佳人选。但一个成功的建模者必须具有以下个性:团队竞赛,畅所欲言,脚踏实地,好奇心,实事求是,总结经验,遵守纪律。一个人想要成功的担任某个角色,他应当好好的适应他,虽然这并不需要人们掌握所有的技能,但人们必须慢慢的熟悉这些技术。上面提到敏捷开发,下面要说下UML。很多人会认为在敏捷开发的时代,UML没必要学了。这些我也不知道 ,我觉得UML建模的本质是非常敏捷的,它是敏捷开发技术,敏捷建模的核心技术之一。
比起大多的基础课程,软件工程的授课方式并没有那样的枯燥乏味。博客引入教学,使我们的学习更加便捷,是我们的交流平台更宽。虽然这门课结束了,但它教会了我们做事的方法和思想,我们还需继续深入学习,提升自己。最后衷心感谢许老师辛勤付出与讲解,也感谢各位助教在学习住的鼓励与帮助。