软件工程实践报告

时间:2025-12-25 02:08:21
软件工程实践报告

软件工程实践报告

随着个人素质的提升,报告十分的重要,报告中涉及到专业性术语要解释清楚。一听到写报告就拖延症懒癌齐复发?以下是小编帮大家整理的软件工程实践报告,供大家参考借鉴,希望可以帮助到有需要的朋友。

软件工程实践报告1

实践单位:山西西太行信息有限公司

实践时间:xx年7月1日-----xx年7月31日共31天

一、实践目的:综合利用所学的专业知识,培养软件开发的技能;掌握android操作系统的编程技巧,体会企业软件开发与学习过程中编写软件的不同;提高自身的创新意识与创新能力,促进团队之间的沟通协作,为早日踏上工作岗位打下坚实基础。

二、实践内容及感悟:

(a)实践前准备:自xx年清明节前后,我和我的组员就开始接受山西西太行信息有限公司的公开课的培训,当时经电子与计算机技术学院于一老师介绍由陈川老师主要带领我们重新温习了一遍关于java语言的基本知识,在这将近一个月的学习过程中我们逐渐重新拾起了即将被遗忘的java知识,走出了以前认识上的误区,使我在java这一块又有了一定的的优势,为以后我们用java语言做开发打下了很好的基础。自xx年5月1日,我们开始了真正的基于android操作系统的软件开发,虽然我们是利用课余时间进行学习,但是学习的效果真的很好,我们基本上晚上都会学到很晚才回宿舍。刚开始的时候我感到很不适应,感到学习的java语言不能够充分的的到利用,只能够用一些和系统相关的东西,但是随着学习的深入,我发现android操作系统也是一个很强大的手机操作系统,它有着很好的发展前景。并且移动互联网在在中国有着大的市场,所以我对我正在从事的android手机软件开发给予了很大的希望。这一个月的培训我们主要学习了android操作系统的五大系统组件:activity、service、sqlite、content Provider、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了。但是这些是 ……此处隐藏4266个字……的知识进行集体巩固复习。将一些已经生疏的知识巩固巩固,以备项目中的不时之需。在实习的第一天企业的经理就详细的给我们讲解了软件工程这门科学对于一个软件制作的重要性,并以此为基本给我们定下了这次实习的大体实习流程。

第二周:将直接进行项目的需求分析。因为项目名称已经给出,所以将去掉可行性分析。我们小组分到的项目是“诊所管理系统”,这就免不了去诊所实地调查了。实际调查的过程中发现,需求分析这个过程是非常非常的重要,需求分析文档的制作,决定了项目的各个功能以及这个软件是否符合用户的需求。这一周的收获就是软件需求分析的文档制作,这是软件工程中非常重要的一个步骤,这一环节,是一整个软件生成的最为重要和关键的环节。

第三周:这一周由于临时变动,将概要设计和详细设计合为一周制作。根据调查的结果,进行概要设计。由于是初次制作软件概要分析的文档,所有有很多不符合规定的地方,就比如数据流图的制作,很多小的细节都没有注意,像这样的问题还有很多。不过,在经过了小组成员的积极讨论修改以及老师的指导后,这些问题都得以解决。接下来,根据概要设计,来制作软件的详细设计。详细设计的制作,相对于概要设计,感觉能稍微简单些,也不知道感觉对不对。因为在概要设计模块中,我们已经设计好了所需要的模块、接口、类、以及所要实现的功能,所以我们只需要考虑每个类的功能如果用代码实现就可以了,当然不是将代码写上去,而是用流程图以及伪代码之类的相关技术来表示。这个阶段的制作完成就开始正式的编码了。到此为止,准备工作总算是做完了,几乎花费了我们实习的一半时间。这一周的时间,我们在忙碌中不知不觉的度过了!下一周就会进入到该项目的实际编码当中,这也是我们大家最熟悉的地方了,感觉总算有地方出力了,期待着下一周的到来。

第四周:根据详细设计,来进行项目的编码。这一周,我们进行实际的编码,我最大的感觉就是,照着详细设计去进行编码,思路以及逻辑非常的清晰,可能在将流程如以及伪代码转换时稍微有点费劲,当相对于以往我们的直接编码而言,流畅度不言而明。

第五周:这一周本来是要进行测试的,但在编码完后企业老师检查的时候,给我们指出了很多的问题,说我们所写的代码太粗糙,所以我们只能对代码进行细致的加工,把测试推到了下周来进行。这一周,让我们受益匪浅,对代码的注释以及编码格式都有了更加深刻的理解。

第六周:根据做完的项目,进行项目的测试。本周就是对软件进行测试,从最基本的类之内的方法测试,一直到整个项目的综合测试,分了好几个阶段。而区分于以往的测试不同,这次我们是先写测试文档,当测试文档检查合格后,我们才可以对着文档进行逐步测试。我想,这可能就是我们以后工作的大体方向吧,以文档为主的项目制作。由于测试文档的制作进度太慢,所以本周就忙测试文檔的制作了一样了,其它的什么也没干,测试也只能等下周进行了。希望下周测试的时候效率会很高,期待的试一次,拿着测试文档去测试的感觉。

第七周:拿着测试文档,根据上面的要求,一项一项的测试,以确认项目的正确性。测试的顺利让我有了爽快的感觉,拿着测试文档,直接去校验代码就可以了。几乎不用去想程序内部的测试流程,因为文档上已经给你写的明明白白了。到这里,我有一种感觉,像埃森哲这种大公司内,文档的重要性比编码本身更为重要。我想,这就是企业派来的老师没有直接给我们进行技术培训,而是让我们来了解软件工程的流程的原因。当然,根据企业的文化不同,对软件工程的生命周期也会有细微的差别,他们会选择最适合自己公司的方法来进行整个软件的生命周期,并不是一成不变的。

第八周:这一周,我们没有跟技术相关的任务,只要好好准备准备个人展示就可以了。但你可千万不要小瞧这个人展示,因为他将占你整个实习成绩的50%,这也是企业老师在本周周一时才告诉我们的,我们之前根本就不知道还有实习成绩这一说。项目总结,我们将用一周的时间来总结整个实习的收获,在本周的周五进行自我展示,以及收获报告。至此,实习的生涯将会到此结束。这一周,我们思考着、沉淀着、总结着,将我们对整个实习的收获、总结、体会等各个方面进行了精华的提炼,以PPT为基础,进行为期10分钟的个人展示以及项目答辩。就此,我们的实习画上了完整的句号。

四、实习总结

我们的实习已经结束,但生活却没有结束,这一次的实习,对于我们这帮还没有毕业的学生来说可以用意义重大四个字来形容。他不仅仅对我们的专业知识进行了巩固和拓展;还对我们作为软件开发人员的视野进行了增大,让我们了解了很多软件开发这个职业应该注意的一些细节;更是让我们亲身体会了软件工程这门科学对于一个软件的意义。这些经验对我们来说就是一笔宝贵的财富。而经过了8周的实习,在大家的共同努力下,也都完成了各自的任务,但我想说的是,我们并不仅仅是完成了任务,我们更是个个满载而归:

项目的制作以及疑难问题的解决,将我们把大学期间那些快要淡忘的知识又重新熟悉了起来,并且对代码有了更深层次的理解。代码的复用性、类与类之间的调用、对象的创建、数据库的连接以及操作等各种专业知识的使用,让我们能更好的将这些各种各样知识合理的整合在一起。

如果说专业知识收获颇多,那么接下来的职业技能却是我认为在整个实习过程中收获最大的地方。代码的注释以及编码的规范这两点是我以前很少注意的地方,对其也并没有多少重视。但这一次,却明白了他的重要性:这是作为一个软件开发人员必须应该具备的能力,或者说应该特别注重的地方。因为我们的代码并没有多少注释以及很多地方的编码很不规范,企业老师宁愿让我们多花一周的时间修改,也没有匆匆的进行下一步测试。在修改的这一周内,通过自己的体会以及老师的重点强调,对于代码的编码规范和代码的注释有了更深层次的理解。通过了这次的实习,我个人认为,代码的注释以及编码的规范比个人的技术更为重要。

这次实习的最终目的就是希望我们了解软件的整个制作过程,也就是软件工程这门科学。这一次的实习,中间的制作文档时间大约是编码的好几倍,编码的时间即使是因为我们修改的原因也只有两周,而其他的大部分时间就是制作文档。我个人猜想可能进公司后文档的制作比个人的技术更加重要。因为文档的原因,我们的项目制作,感到非常的流畅,条例非常的清晰,逻辑也很流畅。对于软件的制作,这些文档起了很重要的意义,所以觉得,软件工程也许就是自己以后努力的方向吧。

最后,总结这段时间的实习生活的收获,真的是使我受益匪浅。在实习中,我学习到了不仅仅是技术上的收获,更还有生活中的的人际交往以及其他的许多经验。而这些,都将作为我迈入社会的根本,我将以此为我的基础,怀着一颗勇敢无畏的心去迎接我即将来临的工作。

五、实习体会

这一次的实习,给了我很深刻的体会,不仅仅是专业的收获,更还有团队间的相互合作,这些让我明白了团队的意义。工作即将来临,我期待着工作的到来,我将带着这次实习的收获,尽量的将学到的知识运用到实际工作中,去迎接一个又一个的挑战。前方的路会有很多困难等着我,但我不怕,因为我坚信,只要我努力,终会克服这些困难。路就在脚下,我将带着坚定的信念,不畏挫折,勇往直前!

《软件工程实践报告.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式