软件工程实践报告范文3篇精选Word格式.docx
《软件工程实践报告范文3篇精选Word格式.docx》由会员分享,可在线阅读,更多相关《软件工程实践报告范文3篇精选Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
提高自身的创新意识与创新能力,促进团队之间的沟通协作,为早日踏上工作岗位打下坚实基础。
二、实践内容及感悟:
a)实践前准备:
自xx年清明节前后,我和我的组员就开始接受山西西太行信息有限公司的公开课的培训,当时经电子与计算机技术学院于一老师介绍由陈川老师主要带领我们重新温习了一遍关于java语言的基本知识,在这将近一个月的学习过程中我们逐渐重新拾起了即将被遗忘的java知识,走出了以前认识上的误区,使我在java这一块又有了一定的的优势,为以后我们用java语言做开发打下了很好的基础。
自xx年5月1日,我们开始了真正的基于android操作系统的软件开发,虽然我们是利用课余时间进行学习,但是学习的效果真的很好,我们基本上晚上都会学到很晚才回宿舍。
刚开始的时候我感到很不适应,感到学习的java语言不能够充分的的到利用,只能够用一些和系统相关的东西,但是随着学习的深入,我发现android操作系统也是一个很强大的手机操作系统,它有着很好的发展前景。
并且移动互联网在在中国有着大的市场,所以我对我正在从事的android手机软件开发给予了很大的希望。
这一个月的培训我们主要学习了android操作系统的五大系统组件:
activity、service、sqlite、contentProvider、intent、broadcastRecever,同时我也学到了一些课堂上学不到得东西,对外面的市场的情况也有了更深刻的了解。
b)实践过程:
xx年7月1日到xx年7月31日是我正式暑假实践的时间段,
我们一行十六个人,大三的十一人大二的六人。
我们被分了两个小组,每个小组八个人,上课时间一般是下午两点到五点半或者下午五点半到晚上八点半,其余的时间是我们自己写代码的时间。
每天的任务量都有所不同,有时候把自己的任务做完了剩下的时间就自由支配。
这一个月我们的主要任务是做一个腾讯微博android手机客户端,每天陈老师都会给我们传授一些做软件的经验和一些新的知识点,然后我们根据具体的要求编写文档,编写代码,第二天交由陈老师点评。
1)可恶的文档:
刚开始的时候感觉很不适应,以前上课就是学习关于编程的知识,但是做项目的第一天陈老师要求我们写文档,我们用的是GB8568—88格式的文档,第一次写即感觉很枯燥又感觉不会写。
对于写文档我们都有想通的反应,就是莫名奇妙的反感,但是陈老师还是不依不饶的要求我们写要我们查资料,我们也很没办法只能按照要求写文档。
但是由于我们不知道在文档上写些什么,陈老师看我们很为难也有所让步,带领我们写了软件需求说明书,后来我们依次写了概要设计说明书、详细设计说明书,后来又写了测试计划、用户手册。
当时的感觉就是知道的知识太少,对着文档一个词一个词的硬挤,但是当文档写完的时候还是很有成就感的。
其实在写文档的过程中我们也渐渐的明白了文档的重要性,我们只是
在学校编写程序的时间久了习惯了上来就写代码的坏习惯,忽略了软件工程中的很重要的部分-----分析阶段和设计阶段。
可能是因为以前做的软件都很小,一旦项目稍微大一点,那在编写代码阶段将付出不可估量的代价甚至最终将以失败告终。
其实我们都学过软件工程,而且在考试的时候成绩还不是很差,但是到真正需要这些知识的时候我感觉却忘记了如何下手,这也就是所谓的纸上谈兵吧,所以我感觉大学生缺少的正是一种动手能力。
知识本身没有价值,有价值的是运用知识解决问题。
2)该死的bug:
写完文档感觉写代码就轻松了,但是事与愿违啊。
由于以前没做过开放平台的客户端,中间涉及到同腾讯公司微博开放平台接洽的问题,开始真的很不适应,不知道怎么下手。
当知道下手的时候不免出现了各种各样的bug:
腾讯服务器故障啦、实验室断网啦、模拟器连不上网啦、代码错误啦等等。
为了弄好这些bug有时真是忙的焦头烂额,因为可能因为自己写的代码有问题导致大家的代码都不能运行,作为团队的一员谁都不想拖后腿。
但有时候我也找不到问题所在,只能请高手指教或者找老师为我排忧解难。
只可惜我当时掌握的排错方式只有打印输出和查看日志,根本没接触过单元测试。
其实多遇到一些bug还真不是坏事情,我现在开始明白编写代码最重要的是快速查找资料和排除错误的能力。
首先我们不可能记住java语言或者android操作系统中所有的类和方法,所以能够快速找到我们所需要功能的类或者方法是很重要的。
其次对于程序工作者来说遇到bug是很正常的事情,遇到不能解决的问题也是很常见的,重要的是能够正确的处理这些问题,并总结经验为以后的开发做好铺垫。
遇到问题是要保持好的心态,千万不能焦躁,细心的一点点的分析问题,必的时候可以去网络上查找一些资料。
但是不要遇到问题就上网查找,我感觉现在自己动手处理题很重要,上网查与吃现成饭没有本质的区别。
网络可以帮我们开阔视野,但不要让网络阻碍了我们自我发展的机会。
编写软件过程中要及时记录,这既可以让我们总结更多的经验,也可以为后来者提供一些宝贵的资料。
毕竟都有成长的时候。
3)痛苦的合并:
这是我第一次这么正式的和这么多的人一起开发软件,更何况还有不认识的人在一个组,这给我们的沟通带来了很大的不便,尤其是最后代码合并的时候,很多的问题都一拥而上。
我们当时用了一个软件visualSVN,这是一款团队开发的软件,当代码写的可以组合的时候我们就用这个软件在eclipse下共同开发。
但开始的时候我们也会为了自己的代码正确而被迫修改别人的代码,最后弄得大家的代码不能够正确的运行,然后所有人都会停下来共同寻找错误,改正错误。
这是团队开发时候很忌讳的问题,并且大家还都不好意思开口说谁错了,毕竟都不是很熟悉。
直到大家开始慢慢适应这种团队开发之后,这样的情况才慢慢的被避免,效率也有所提高。
这次的团队开发让我明白,在团队开发中根本不存在自我,你所做的任何事情都应从整个团队出发,以团队的利益为重,不能自私。
尤其是在团队中千万不能应付,你的应付很可能会给他人带来很多不便,甚至造成更大的损失。
因此teamwork很重要,必须谨慎!
4)唉,完美:
每次写完代码让陈老师点评都会发现很多问题,有时候是代码
冗余度太大,有时候时代码不够安全,有时候是技术上不是很完善。
对我们来说目标就是编写的软件能用,只要大家写的软件合并后能够正常运行,一切就ok了。
但是这些是远远不够的,面向对象的思想和软件工程的一些常识我们都没涉及到,异步加载图片在陈老师讲之前我们也从来没有想到过,这些问题让我深深的体会到我们的创新能力的要求远远不够,我们对完美的渴求度远远不够。
没有最好,只有更好。
这句话真是非常经典,作为软件开发者永远没有标准答案,没有最好的软件,只有不断的学习不断的追求才能发现好的东西,找到更好的创意。
虽然最后腾讯微__户端能够成功的运行了,但是我意识到我所掌握的知识远远不够,在这个实践中却是暴露了很多的问题。
但愿天天能做到更好!
三、实践总结:
1、一个假期结束了,留下了很多的回忆,因为这个暑假是很有意义的。
在这三十一天里每天都学到了新的知识,每天都遇到了新的问题,每天都在进步这,也让我有时间更加清晰的认识了软件工程这门课程和设计模式在软件开发中的重要性,编写代码知识软件开发的一小部分,只有真正的这种开发才能体会到软件工程的意义。
2、团队的凝聚力关系着每一个软件开发人员的发展前途,每一个人的努力都会得到回报,同样一个人的失误也会影响到整个团队,因此正确处理好人际关系是很重要的。
3、注重产品的价值,做好市场调研是成败的决定性因素。
4、掌握好一门技术你可以吃饱,但是你要想很富有,必须懂得很多。
队友可以帮助你一时帮不了一世,要注重个人能力发展!
根据学校要求,本人在开学前三周参加了毕业前的实习工作。
我所实习的工作单位是天津木牛流马科技发展有限公司。
公司主要从事软件开发方面的一些工作,包括java,C#方面的开发。
本人在公司主要从事的是java项目的开发,包括前期的需求分析以及开发。
公司强调以人为本,认为对员工的投资是最重要的投资,通过对员工的培训提高员工的工作能力,并可以在多方面体会到公司方面的关怀与照顾,非常感谢这段时间公司的培养。
一、对实习过程的回顾
作为一个软件开发技术公司,不同于一般的那种严肃的气氛,给人的感觉是比较的宽松,公司的人情味也比较浓。
让我们很快的就能融入这个小家庭。
首先给我的任务就是熟悉企业的开发流程以及企业的编码规范,了解这些是非常重要的,对于团队开发来说,统一的编码规范是必须具备的,因为编码如果不统一的话,每个人都有自己的编码方式,开发出来的系统可用性是很差的,而且也不利于今后的维护以及二次开发。
所以开始花了两天的时间来看编码规范。
这里面还是很有学问的。
接下来还要学习公司所用到的技术。
在学校的学习中,我主修的方向是java,除了学习java基础外,还学习了html,css,jquery等前台页面的技术,以及Struts,Hibernate,Spring框架技术,为企业开发已经做好了一些准备。
公司需要我学习的技术为webservice和ibatis。
通过学习,了解到WebService是一种可以接收从Inter或者Intra上的其它系统中传递过来的请求,轻量级的独立的通讯技术。
是:
通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
Ibatis是一个持久层框架,用于对数据的增删改查。
由于我算是第一次正式的参与企业的开发,在经验、知识上必然有所欠缺,所以在开始阶段我们主要都是了解项目的背景知识,进一步学习基本的一些项目原理等。
而后要进行设计工作,然后才是真正的工程开发过程,还有调试过程。
再由于我们只是短期的社会实践工作,为了所做的工作在以后能真正为人所用,我们在走之前还要留下完善的相关文档。
短短的一个星期,要分成这么多的阶段,而任务就摆在那,每一阶段的时间可想而知是多么的宝贵。
我在公司实习期主要做的工作就是开发一个小的项目申报系统。
这个项目的需求大致为:
申报单位模块、管理机构模块、评审专家模块。
最主要的就是项目申报模块。
其中包括文件管理栏目、项目申报栏目、项目开题栏目、项目验收栏目、项目报奖栏目、项目查询栏目、用户信息栏目。
管理机构模块主要包括:
文件管理栏目、项目申报栏目、中期检查栏目、报奖管理栏目、项目验收栏目、项目查询栏目、项目统计表栏目、成果评估栏目、用户信息管理栏目。
虽然实践的时间比较的短暂,但我还是有了不小的收获,最大的收获是了解了一些软件开发的程序化生产过程。
还有就是能有机会向开发部门的职员的一丝不苟、兢兢业业的敬业精神学习。
相信这些都将给我以后的学习和工作带来不小的帮助。
二、专业知识在实习过程中的应用
整个项目用的是struts2+ibatis+Spring开发的。
业务层使用轻量级的框架Spring实现业务组件的管理,持久层采用ibatis技术实现业务层和数据库的交互。
Web部分采用基于MVC模式的Struts2框架实现,表现层用JSP与JSTL、EL相结合实现。
其中也会用到图表技术以及ajax技术。
我的工作任务并不是很多,项目的数据库设计完成后