软件工程心得体会
软件工程这门课可以算是我本科期间至今为止最虐的一门课了。但与此同时这门课给我带来的收获和其他课程相比,也不是一个量级的。下面我就在本课程中学习到的对软件工程的理解与一些自己想说的话两个方面作为我个人总结的内容。
一、软件工程课程心得
所谓软件工程,相比于普通的中小型应用来讲,是一个功能众多,内部逻辑复杂的工程项目。软件工程大作业便是一个大型软件工程。与其它科目的大作业不同的是,它不是一个可以通过交作业前几天通宵的方式完成的,他需要我们去一点一点积累所要用的东西(当然这是指真的想学好一个东西,如果时间有限,就是边学边做,通过我的观察,大部分同学都是临时学习一些然后就用了)。通过一个学期的大作业实践,我发现想做出一个真正的软件,以下几个方面至关重要:
清楚的产品规划
在开始开发前,一定要想清楚,需要开发的这个项目到底是一个什么样的东西,它的功能应该包括什么,其中哪些是主逻辑部分功能,哪些是拓展功能,你做出来的软件需要让什么人去用。我们组在开发过程中在这个问题上除了刚开始跟其他组撞题之外重新选择了一个软件项目,在产品规划上还是比较清楚的。我们是想要把足球赛事的时间表放到网上并允许客户根据时间表进行预约以有效管理场地使用。 这是其核心功能,而且经过我们的需求分析,这是有着迫切需求的。边际功能还有同学可以登陆这个网站发帖子,有点类似BBS,可以供同学们寻找志同道合的好友去PK、一起比赛等。虽然我们现在还没有写大段代码,但是我们会按照这个规划来,先核心后边界,估计不会出现规划上和实际操作的冲突。产品规划也是邓老师强调的,软件工程是一个大项目,需要采用自顶向下的设计技术,不像一个小程序一样,随便写写就完成了,就是因为它耗时长,规模大,所以才需要先从整体上把握它,不至于迷失方向。因此我觉得一个好的大型项目一定要在开发前想清楚要做的产品到底是一个什么样的产品。可以不需要想清楚每一个细节,但是涉及软件核心的逻辑与功能必须想清楚,否则,后患无穷。
合适的技术选型
在开发项目前我们需要进行技术选型。比如前端用什么框架?后端用什么框架?数据库用啥?我看到很多组其实并没有特别在意技术选型,都会选择自己熟悉的或者擅长的框架进行大作业的开发。但其实技术选型很重要。我是负责后端,最近一直都在学习Mysql关系型数据库语言,网页我们准备用PHP和HTML语言去写,现在大概只写了个框架,具体的画面还没设置。技术选型这方面经过我们团队的讨论,基本上确定了下来。
严谨的开发流程
由于开发的是一个大型项目,就应该选择大型项目工程的开发模式,如瀑布模型开发,增量模型开发,快速原型模型开发等等。在开发流程这方面老师要求的比较严格,基本上每周都要求开会和报告。在项目会议上,开始前一般有一个比较粗略的规划,到什么时间点需要大概做到什么程度。在每一次迭代会议上需要给上一个阶段的工作作出总结,细致地确定下一个阶段的工作细节,任务分配,安排下一个迭代集中开发时间与每一次开发要完成的任务点,这样才能做到有条不紊。我也认为这样可以有效防止项目开发只在最后一段时间做,能够把平时的时间利用起来完成项目,使得整个流程合理有序。但是我们目前正值考试,这样的流程要求还真够喝一壶的。
二、个人体会
由于大作业开发需要组队,整个项目的开发都是由你选择的团队一起进行的。因此选择一个合适自己的团队至关重要。团队中每一个人都应该对项目有一个相同清晰的目标,大家一起朝一个方向努力。拒绝拖延症,否则睡觉时间不能得到保证。经过项目的前中期,自己还是学到了很多知识,经验和教训,希望自己能在以后的开发过程中注意以上的几点,开发出自己满意的项目。