大三实习报告

来源:互联网 发布:延长壳牌工资知乎 编辑:程序博客网 时间:2024/05/01 01:40

这次实习我们JulyRose小组(七个人)开发了一个名叫JulyRoseOA的协同办公系统。在实习中我的收获不少,我得到了在往年实习中得不到的东西。原来实习的时候只是编编代码而已,需求分析几乎没有,也可以说是在一边编程一边体会需求。所以原来实习的时候感觉脑子里很乱,不知道自己在做什么,总是想着把软件做出来就行,我们不会去考虑代码质量,程序的运行速度,程序的可用性等等。

这次实习就不一样了,我们花了很长时间去做需求分析,做设计。我们小组每个人都阅读了需求分析文档,认真分析,有不懂得地方就和其他同学一起讨论,讨论某个功能到底是什么意思,到底要完成什么任务,到底要给用户带来什么。如果需求分析中还有什么模糊的地方,我们就请教老师,让老师给我们讲解一下。

分析完需求我们就开始画用例图,我们在画图的时候是分工协作的,我们都有各自负责的模块。我负责的就是系统管理那一块。当然我们不可以只是自己画自己的,我们还要共同协作,例如我们要统一参与者(actor)的名字,有相似的用例要融合在一起,用例的粒度大小也要统一起来,如何划分用例等等。总之在画用例图的时候各组员之间也是经常交流的。这样我们在最终整合用例图的时候才不会出错。

画完用例图我们就写用例的基本路径。用例的基本路径虽然好写,但是我认为十分重要,因为通过写用例的基本路径,你可以了解到程序运行的基本流程,以及程序要实现的基本功能。总之你能对你要做的系统有进一步的了解,同时你可以在这个过程中再次品味需求分析,看看还有哪些东西你没有考虑到。

写完用例的基本路径,我们就开始设计系统原型,我们并没有下载原型的模板,而是每个组员把自己负责的那个模块的原型做出来,然后整合起来。虽然这样原型会显得很不好看,并且风格不统一,但是这样可以发挥每个组员的创意,展示出每个组员的想法,我觉得这样做还是挺不错的,毕竟这只是实习,又不是要把我们的产品真正的卖给某个客户(如果真的做一个项目的话,那可要统一风格了)。

原型设计完了开始进行概要设计,概要设计主要是进行系统的功能描述,画系统的流程图,经过概要设计我们就完全明确了系统的功能,明确了这个系统要给用户带来什么。

下一步是系统数据库设计,经过这次实习我觉得数据库设计尤为重要,因为如果数据库设计不好,会直接影响到程序员编程实现。例如“用户信息”模块里要用到用户的部门编号,在“部门管理”模块里也要用到部门编号,所以在设计用户表和部门表的时候就要考虑到这种关系,而不应该让程序员在编码的时候去考虑数据约束,数据冗余之类的问题。这样就要求我们在设计数据库的时候要格外小心,这次的数据库设计是由我们组三个人设计的(包括我),我们三个人先是分好模块,把各自的模块中的表设计出来,最后在整合的时候主要解决数据冗余,外键约束的问题(其实这些问题还不少)。还有各个表之间的对应关系,到底是多对多还是一对多一定要考虑清楚(这其实就是涉及到了外键以及关联表的问题了)。这次设计数据库的时候主要遇到的问题就是有些功能模块太过模糊(还是对业务不了解啊),例如在设计留言表的时候就要解决很多问题。接受者ID和发送者ID其实都是用户的ID那么留言这张表就要与用户这张表有联系。那么如何关联才不会出现数据冗余呢?如果要考虑到有多个接收者(群发),那么留言这张表就要与用户表有多对多的联系(一个留言可以发给多个用户,一个用户也可接收多个留言)。但是还要考虑发送者,这个关系就变了,发送者与留言的关系是一对多的(一个留言只可以有一个发送方,但是一个用户可以发送多个留言)。所以留言表与用户表就存在两个关系。一个是多对多关系,一个是多对一的关系。还有留言状态也要考虑到,未读,已读,未发,已发等状态,要有专门的字段标示它。这个留言表我设计了好久,也问了很多次老师。虽然花费了不少时间,但是这是值得的,给以后程序的实现带来了方便,并且也学到了不少知识(至少对发送留言,发送邮件这块业务有了深刻的了解)。

设计完数据库就开始进行编码工作了,这个编码工作是基于原型设计和数据库设计的,也就是说如果前面的原型和数据库没设计好的话,那么会给编码带来很大的麻烦。我就是深有体会。例如我在编部门管理的时候,原来的原型没设计好,还要边编代码边修改原型,感觉很狼狈,总是手忙脚乱的。所以原型设计一定要到位,这样才不会给编码带来麻烦。

不过感觉这次编码结构很清晰,界面与数据处理这两部分划分的很清楚。在界面中显示出系统信息,在Servlet中接受用户输入的数据,并调用相应的DAO处理之,再把数据返回给界面,然后由界面把结果呈现给用户。当然此次实习也遇到了很多技术方面的问题,我这学期刚学Java,对网页编程几乎没有一点了解(原来编的都是桌面程序)。还好这次实习有老师教导,如果没有老师的话我们又要自己从头开始摸索,这样一定会花费不少时间。通过这次实习我发现要学会看代码,在网上搜索资料你会发现有很多别人写的代码,写得都很好。其实这些都是很宝贵的学习资料,你如果看懂那些代码那么你就会从中学到不少东西,你可能只要修改修改就能实现你想要的功能(呵呵,非常方便啊)。

编码结束后就是整合了,我们组在上台演讲的最后一刻才整合好,真是好险啊,差点就完不成了。关键的问题在于有的组员没有按时完成任务,在最后才整合上来,我在以后的工作中要多注意这个问题,不能在最后一刻才完成任务。

以上这些是我对此次大三实习的一点感悟与总结,虽然这次20天的实习有点累但是我还是收获不少的。当然我还要感谢与我同组的人,我们在这二十天来配合的很默契,大家有什么想法都能积极的表达出来,有什么意见都会提出来,学会了什么技术都会拿出来分享。如果不是我们共同的努力我们是不会做出来这个系统的。还有我要感谢各位老师的辛勤教导,在炎热夏日里陪我们度过了这20天并且耐心的回答了我们提出的问题,真是要谢谢你们!

                                                          Stephen Song

                                                                                                                    2010年7月28日

原创粉丝点击