当前位置:文档之家› 软件设计实习报告

软件设计实习报告

软件设计实习报告实习之后我们需要写相关的实习报告,大家一起看看下面的软件设计实习报告,欢迎各位阅读哦!一、实习目的:检验与巩固理论知识,提高实际操作能力与社会实践能力。

二、实习时间:20xx-07-27至20xx-10-23三、实习地点:广东广州四、实习单位与部门:广州**网络科技有限公司·软件开发部五、实习内容:应学校要求,本人于七月二十七号来到广州**网络科技有限公司实习。

初到该公司,听公司负责人讲解了公司状况以及工作要求,就马上开始我的工作。

从该负责人得知,公司的软件开发业务并没有多长时间,所以公司的很多工作流程还不太规范。

在3个月的实习时间里,我参与了一个类似于erp的项目。

项目的大致内容是:为一家中型制造业企业量身订做一套综合管理系统,包括了仓库管理,销售管理,采购管理,生产管理,财务管理以及人事管理,共六个子系统,且这六个子系统是有机的组合,以方便该企业的管理生产资源,人力资源以及财务。

在整个参与过程中,在不同时间里担任的工作任务也不同。

1、八月份据了解,该项目早在3月份就开始了,而且该项目一直是处于不受控状态,控制不了的原因有诸多,例如客户的需求发生了巨大变动,该项目进行期间有很多其他的项目插入到开发过程中等等。

于是,我参与了测试程序的工作,以熟悉整个项目的具体内容,功能实现,设计方法等。

在做测试工作的过程中,发现实习单位目前对测试不太重视,在以前的项目中也很少有全面的软件测试阶段。

主要表现在:一方面,在我实习期间,就陆续有以前做的系统拿回来,重新做测试工作并修改。

据了解,目前国内的绝大多数软件企业也是重编码轻测试,导致软件的强壮性低下,而在售后的维护阶段中经常性需要大幅度修改。

这样一来,经常有不同的新老系统并行,给新系统的项目进度带来了外部干扰;另方面,公司要求的测试方法也较为简单,且测试文档的书写格式极其简单,这种书写格式在一些功能上的错误和明显的数据错误上有很好的表意效果,但是在表达程序的逻辑错误和内部数据错误时有很大的欠缺。

在整个测试工作中也大概了解了该系统的各方面特性。

该系统采用b/s结构开发,随着inter的高速发展、电信部门对网络线路的投入、带宽的增加等各个对b/s结构有利的条件下,采用b/s结构可以节省很多的成本。

在以前采用c/s结构开发的系统中,需要为系统开发客户端,而且在维护过程中,除了对服务器端的维护,还要对各个客户端进行维护,而目前盛行的b/s结构,则只需要开发和维护服务器端,相比之下,开发和维护的成本也就大大降低。

另外,b/s结构在inter里的应用性比较高。

但是,b/s结构也不是完美的选择,它存在诸如b/s结构的用户界面上比较难控制,浏览器的安全性能没有很好的保障等问题。

整个系统采用asp.+mssqlserver2000做开发,编程语言采用c#和vb。

测试工作和书写文档是比较枯燥的工作,测试更是要细心,有耐性的去做,在这个月里认真的完成了我的工作,还帮忙修改了用户界面。

我的工作得到了负责人的肯定。

2、九月份八月末就得知要将整个系统重构,因为原有未完成的系统跟变动后的用户需求有太大的出入,而且系统存在比较多的错误,难以修复。

负责人要求我参与到系统的重构工作中去,参与设计,代码编写。

这对我来说是一个考验也是一个机会,于是我选择了“仓库管理”子系统,用vb作为编码语言。

在九月份的开发过程中,有两个方面的感触:第一是技术方面。

由于采用了vb编写代码,而自身只学了c/c++、还有java。

对vb只是一点点了解,另外,对aspdot更是一点不通。

所以,这个时候需要发挥下自学能力,和领悟能力。

在开发过程中印象最深的是webform里datagrid的操作,以及对整个webform的运行过程。

首先,由于仓库管理绝大部分工作是填写单据,单据是由单头和单体组成,单头记录基本信息,单体记录明细信息。

设计决定在填写单体时,采用datagrid行内,所以datagrid的行内将是技术的难点。

dot的datagrid控件有命令与删除命令,而新增则可以通过一个button点击来生成一个新行等待。

三个操作的代码清单如下:‘命令代码清单privatesubdatagrid1_editmand(byvalsourceasobject,byvaleassy stem.web.ui.webcontrols.datagridmandeventargs)handlesdatagr id1.editmandifviewstate("add")<>1thendatagrid1.edititemindex=e.item.itemindex‘将该行的状态行datagrid1.databind()endifendsub‘删除命令代码清单privatesubdatagrid1_mand(byvalsourceasobject,byvaleassystem .web.ui.webcontrols.datagridmandeventargs)handlesdatagrid1. mandifviewstate("add")<>1thendimdelindexasintegerdelindex=cint(e.item.cells(1).text)dimdrasdatarowdr=dataset1.tables("tblbrand").rows.find(delindex)‘找到该行在数据集中的编号dr.()‘将该行在数据集中删除sqldataadapter1.update(dataset1.tables("tblbrand"))‘更新数据库表datagrid1.edititemindex=-1datagrid1.databind()endifendsub‘新增按扭事件代码清单privatesubbutton1_click(byvalsenderassystem.object,byvaleas system.eventargs)handlesbutton1.clickdimdrasdatarowdr=dataset1.tables("tblbrand").newrow()‘新增一行,并将该行插入到数据集dataset1.tables("tblbrand").rows.at(dr,ataset1.tables("tblb rand").rows.count)viewstate("add")=1endsub其实datagrid中有很多很好用的特性,具体请参考msdn。

其次,为实现一次性提交整张单据到数据库保存,采用了sqlaadapter 与dataset结合,应用sqlaadatper的uapdate方法特性:对dataset的数据行做检索,并发操作,update,三个命令,对删除行做数据库删除,更改的数据行做更新,新增的行做插入。

最后,在webform的初始到消除整个生命周期也有了较全面的了解。

但是感觉dot中的webform的生命周期中,所发生的事件有些凌乱,例如datagrid每一行的创建和数据绑定都是比较复杂的,在开发中涉及的技术较多,在此不一一阐述。

第二是工作方面。

在这个月中,同样发现了公司的开发工作有较多的问题。

首先,人员工作地点变动大,不便于沟通。

在开发工作中,由于人员没有固定工作地点,只是把任务分配了,接着就各自去完成,这样一来,在各个模块的协调中经常出现了问题,但又不能很及时的和相关模块的负责人商讨解决方法,工作效率也就随之下降。

其次,对整个项目的规划,整个系统的设计,编码,测试等工作分工不明确且不统一。

在项目开始时,只是草草的分了下模块,接着这个模块的设计、编码、测试就由这个模块的负责人来做,没有先对整个项目进行明确的整体的规划。

而且在设计过程中缺少讨论,导致设计出来的模块独立性过高,没有考虑到公共的接口等问题。

最后,对解决问题的速度慢。

当在开发的过程中出现了问题,对问题的解决途径多固然是好,但是,解决方案出现分歧的时候难以敲定具体实施哪个方案,导致进展缓慢,进度延期。

3、十月份十月份是整个重构活动的收尾阶段,该阶段需要完成的工作是数据报表的设计与实现。

数据报表设计方面,沿用原有的纸质报表的结构,所以整个设计过程相对轻松。

但是在实现阶段,由于在决定采用何种实现方式的决策问题上出现了飘忽不定的状况,使得进度上又有了少许的延期,最后采用了crystalreports来实现。

抛弃了打印分页控制难的html方法,以及技术不成熟,安全性差的mssqlserverreportingservice报表工具。

在这个阶段,我负责了仓库管理、销售管理、采购管理以及生产管理等四个子系统的报表实现,在此期间学会了crystalreports的使用和编程,收益颇多。

这次重构活动涉及了数据结构的重构以及代码的重构,提高了系统的清晰性、扩展性以及重用性。

整体性能有了明显的提升。

六、实习总结:在这为期3个月的实习过程中,通过担任各种工作任务,充分的检验了自身所学的知识,了解了自身知识结构的不足;通过与接触其他同事以及自我体验,较深入地了解了软件开发从业人员生活状况,以及目前大部分中小型软件开发企业的经营模式和操作流程。

总结如下三点:1、知识“阅兵式”大学3年来所学的知识,在这次实习中得到了真正的检阅,同样,也暴露了知识结构的不合理性。

技术上,学校里所学的基础知识表面上看似用不上,但却是这些基础知识让我有很牢固的基础,学起其他的技术知识自然而然的变得容易,能应对开发过程中所遇到的技术层面的问题。

但是在业务上,由于缺乏所涉及的业务的相关课程的开展与自身涉猎知识面不广,而造成了在业务流程转换为系统设计或程序实现的中间环节频频出现困惑。

软件工程专业培养的目标是管理或系统规划与设计,这一类的高层次人才,而不是纯粹的编码人员,所以对相关的业务应当明确、清晰。

建议学校开展一些行业纵向讨论课题来弥补这个不足。

2、从业人员的生存状况大部分从业人员长期生活在一种“精神高压”的环境中。

由于项目控制的难度大,有了进度表跟没进度表的项目都一样,员工基本都是天天在赶工。

不管是在大型企业的软件开发从业人员,还是在中小型企业软件开发从业人员的工作时间一般都不固定。

只要手头上有没做完的事情就要赶,也有的企业让这种不固定变成让员工灵活安排时间的方法:只要手头上没东西做,人可以不用摆在办公室。

但是,这种灵活性不是单方面的灵活,而是员工与管理者双方面的灵活。

只要有事做,管理人员随时都可以叫上程序员一起“奋斗”。

项目验收交付后,员工才算有休息一下的机会。

相关主题