20XX软件公司实习报告.docx_第1页
20XX软件公司实习报告.docx_第2页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

20xx软件公司实习报告特征码mxvppqiwdafhbletlbqr20xx软件公司实习报告【一】一、 实习的时间:20xx年4月5日20xx年6月20日二、 实习的地点:xx有限公司三、 实习的目的:进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。学习sql的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。通过实习,培养我们综合运用已学知识java语言的面向对象编程能力;培养我们动手能力;培养我们良好编程规范、编程方法;以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力;增强自己的团队协作意识,了解软件开发的思考角度和主要流程。为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。四、实习的方式、方法:实践操作五、实习的要点:1.mysql数据库和sql 数据库的使用;2. java中的常用设计模式;3. 控制技术-servlet技术4. 页面设计-jsp页面;六、实习的内容: mysql数据库1) mysql数据库管理系统概述mysql是最流行的开放源码sql数据库管理系统,它是由mysql ab公司开发、发布并支持的。mysql ab是由多名mysql开发人创办的一家商业公司。它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业模型。数据库是数据的结构化集合。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。mysql服务器还有一套实用的特性集合,这些特性是通过与我们用户的密切合作而开发的。在我们的基准测试主页上,给出了mysql服务器和其他数据库管理器的比较结果。mysql服务器最初是为处理大型数据库而开发的,与已有的解决方案相比,它的速度更快,多年以来,它已成功用于众多要求很高的生产环境。尽管mysql始终在不断发展,但目前mysql服务器已能提供丰富和有用的功能。它具有良好的连通性、速度和安全性,这使的mysql十分适合于访问internet上的数据库。2) mysql稳定性每次发布的mysql服务器均是可用的。仅当用户尝试源自“灰色区域”的代码时才会出现问题。当然,新用户不了解“灰色区域”是什么。因此,在本节中,我们介绍了目前已知的这类区域。本节所作的介绍主要针对mysql服务器5.0版和更高版本。在最新的版本中,更正了所有已知和通报的缺陷,但“缺陷”一节所列的除外,这类缺陷与设计有关。java与sql的应用java语言是编写数据库应用程序的杰出语言之一,它提供了方便访问数据的技术。利用java语言中的jdbc技术,用户能方便地开发出基于web网页的数据库访问程序,从而扩充网络应用功能。jdbc(java database connectivity,java数据库连接)是一种用于执行sql语句的java api,可以为多种关系数据库提供统一的访问接口。jdbc由一组用java语言编写的类与接口组成,通过调用这些类和接口所提供的方法,用户能够以一致的方式连接多种不同的数据库系统(如access、sql server 2000、oracle、sybase等),进而可使用标准的sql语言来存取数据库中的数据,而不必再为每一种数据库系统编写不同的java程序代码。sql server2000是微软公司新一代的数据库产品,它是在sql server7.0建立的坚固基础上产生的,并对sql server7.0做了大量扩展。sql server2000通过高端硬件平台以及最新网络和存储技术的支持,可为最大的web站点和企业级应用提供可扩展性和高可靠性。java中的常用设计模式1) 工厂模式客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。2)工厂方法模式核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。控制技术-servlet技术1) 什么是servlet?一个servlet就是java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展web服务器的应用程序。java servlet技术为这些应用程序定义了一个特定于http的 servlet类。javax.servlet和javax.servlet.http包为编写servlet提供了接口和类。所有的servlet都必须实现servlet接口,该接口定义了生命周期方法。2) servlet的生命周期一个servlet的生命周期由部署servlet的容器来控制。当一个请求映射到一个servlet时,该容器执行下列步骤。页面设计-jsp页面1)mvc 模式为了把表现层presentation从请求处理request processing 和数据存储data storage中分离开来,sun公司推荐在jsp文件中使用一种“模型-视图-控制器”model-view-controller 模式。规范的servlet或者分离的jsp文件用于处理请求。当请求处理完后,控制权交给一个只作为创建输出作用的jsp页。有几种平台都基于服务于网络层的模-视图-控件 模式(比如struts 和spring framework)。2) jsp技术的强势(1)一次编写,到处运行。在这一点上java比php更出色,除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比asp/php的局限性是显而易见的。(3)强大的可伸缩性。从只有一个小的jar文件就可以运行servlet/jsp,到由多台服务器进行集群和负载均衡,到多台application进行事务处理,消息处理,一台服务器到无数台服务器,java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。这一点与asp很像,java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。3) jsp技术的弱势(1) 与asp一样,java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。(2) java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。4) jsp内置对象(1)request对象:该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。(2)response对象:对客户的请求做出动态的响应,向客户端发送数据。(3)session对象session对象是一个jsp内置对象,它在第一个jsp页面被装载时自动创建,完成会话期管理。 从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。(4)application对象服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。(5)out对象out对象是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。七、实践的感受和体会:实习是为将来打基础的重要阶段,珍惜自己每一个工作的机会,不论什么人,什么学历,从事什么工作,好好的表现、展示自己的能力,不要错过好的机遇。没有一件事情是轻轻松松的,但每一件事都是让人成长的,经历一段过程,喜悦或是艰辛,尽管经历的方式不尽相同,但它的结果是相同的,我们都会因涉事而成长。通过实习,我自身发生了重大的转变。首先,进入公司,你就是一名职业人,不再是一名学生,你要具备一名职业人应具备的素养,不迟到不早退是必然的,而且还要时刻严格要求自己,公司的规定要严格遵守。然后,在技术上也有了很大的提高,学习了很多公司自己的框架和工具,这都是一些前辈的宝贵经验。而且所作的软件应用性更强。所以,我要坚定自己的信念,在公司好好实习,争取提早转正,我相信我会在java开发这条路上走的更长更远。20xx软件公司实习报告【二】一、实习目的进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。学习sql的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。通过实习,培养我们综合运用java语言的面向对象编程能力;培养我们动手能力;培养我们良好编程规范、编程方法;以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力;增强自己的团队协作意识,了解软件开发的思考角度和主要流程。为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。二、实习单位及岗位介绍1、实习单位介绍2、实习岗位介绍我的岗位是java软件工程师。实习期间参与人力资源管理系统的开发,根据开发规范和流程独立完成模块设计、编码、测试。编写相关应用系统的开发文档、数据库设计文档等。较为详细和系统的掌握了软件开发的知识体系。把所学知识与解决实际问题相联系,培养了自己发现问题、分析问题和解决问题的能力,从而提高了自己从事实际工作的能力。三、实习内容及过程1、java基础知识java的基础知识对于一个java软件工程师来说就好比是人的灵魂,现在的公司在招聘的时候很多都不在乎你会不会流行的技术,如(struts、hibernate、spring、ibatis等)。他看重的是你的基础扎不扎实,对于网易、腾讯等大公司来说更是如此,我们在开发过程中运用了大量的java基础知识,如类、对象、方法、成员变量、静态变量、封装、继承、多态、异常、接口、抽象类、io流等等,所以一个系统对于java编程基础的依赖便不言而喻。2、mysql、oracle数据库mysql是最流行的开放源码sql数据库管理系统,它是由mysql ab公司开发、发布并支持的。mysql ab是由多名mysql开发人创办的一家商业公司。它是一家第二代开放源码公司,结合了开放源码价值取向、方法和成功的商业模型。oracle则是以稳定性着称,在访问量和数据大量交换的服务器中,oracle占了大臂的江山,在开发中主要用到了数据库的查询语句、数据库的关系、事物等。3、servlet和jsp一个servlet就是java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展web服务器的应用程序。java servlet技术为这些应用程序定义了一个特定于http的 servlet类。javax、servlet和javax、servlet、http包为编写servlet提供了接口和类。所有的servlet都必须实现servlet接口,该接口定义了生命周期方法。jsp是由sun microsystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页html文件(*、htm,*、html)中加入java程序片段(scriptlet)和jsp标签,就构成了jsp网页java程序片段可以操纵数据库、重新定向网页以及发送e-mail等,实现建立动态网站所 需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持java, 也可以访问jsp网页 。java servlet是jsp技术的基础,而且大型的web应用程序的开发需要javaservlet和jsp配合才能完成。现在许多web服务器都支持servlet,即使不直接支持servlet的web服务器,也可以通过附件的应用服务器和模块来支持servlet,这得益于java的跨平台特性。另外,由于servlet内部以线程方式提供提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此servlet的效率非常高 。4、三大框架struts 2是struts的下一代产品,是在 struts 1和webwork的技术基础上进行了合并的全新的struts 2框架。其全新的struts 2的体系结构与struts 1的体系结构差别巨大。struts 2以webwork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与servlet api完全脱离开,所以struts 2可以理解为webwork的更新产品。虽然从struts 1到struts 2有着太大的变化,但是相对于webwork,struts 2的变化很小。hibernate是一个开放源代码的对象关系映射框架,它对jdbc进行了非常轻量级的对象封装,使得java程序员可以随心所欲的使用对象编程思维来操纵数据库。 hibernate可以应用在任何使用jdbc的场合,既可以在java的客户端程序使用,也可以在servlet/jsp的web应用中使用,最具革命意义的是,hibernate可以在应用ejb的j2ee架构中取代cmp,完成数据持久化的重任。spring 也表示是一个开源框架,是为了解决企业应用程序开发复杂性由rod johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 j2ee 应用程序开发提供集成的框架。spring使用基本的javabean来完成以前只可能由ejb完成的事情。然而,spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何java应用都可以从spring中受益。5、管理系统的开发四、实习总结及体会通过这次实习机会,我主要学习了以上这些java编程的技术,同时也明白了身处公司中如何更好地与同事配合,毕竟在软件开发中,你不可能一个人干完一个系统,大家都是通过svn等团队管理工具互相配合完成编程任务。在实习之前,我对软件开发的过程只有一个模糊地印象,以为只要把代码编写完之后就算基本上一个项目开发完毕了。然而通过这次实习,彻底颠覆了我的认知,我当时的认知无疑是非常幼稚和可笑的,完全的软件开发过程不只只是编写代码,在编写代码之前还有好多的事情要做,比如文档的编写、对项目进行需求分析、数据库设计等等。代码编写完成之后还要进行测试,以及人员的培训,这些都是必须做,也是必不可少的项目,甚至比代码的编写还重要。我在开发期间遇到很多问题,但是我会试着到网络去找答案,如果实在找不到我会试着问问我的上级,或者跟一些朋友讨论一下,如果发现了这个问题的答案我会及时把它记录下来,方便以后遇到问题可以随时翻阅,我相信好记性不如烂笔头这句话,我也相信如果一个程序员写的代码没有错误那只能证明他没写过代码,虽然我比较懒,但我现在有空的时候都会对着电脑敲代码,我相信手感是敲出来的,你看10遍都不如你敲一遍来得印象深刻。通过这次实习,我认识到了一个软件开发的完整的过程,为我今后进行实际的工作奠定了坚实的基础。首先,进入公司,你就是一名职业人,不再是一名学生,你要具备一名职业人应具备的素养,不迟到不早退是必然的,而且还要时刻严格要求自己,公司的规定要严格遵守。然后,在技术上也有了很大的提高,学习了很多公司自己的框架和工具,这都是一些前辈的宝贵经验。而且所作的软件应用性更强。所以,在今后的学习中我会严于律己,认真学习有关软件编程的课,为以后的工作打好坚实的基础。20xx软件公司实习报告【三】一、实习目的:检验与巩固理论知识,提高实际操作能力与社会实践能力。二、实习时间:2005-07-27 至 2005-10-23三、实习地点:广东广州四、实习单位与部门:广州*网络科技有限公司软件开发部五、实习内容:应学校要求,本人于七月二十七号来到广州*网络科技有限公司实习。初到该公司,听公司负责人讲解了公司状况以及工作要求,就马上开始我的工作。从该负责人得知,公司的软件开发业务并没有多长时间,所以公司的很多工作流程还不太规范。在3个月的实习时间里,我参与了一个类似于erp的项目。项目的大致内容是:为一家中型制造业企业量身订做一套综合管理系统,包括了仓库管理,销售管理,采购管理,生产管理,财务管理以及人事管理,共六个子系统,且这六个子系统是有机的组合,以方便该企业的管理生产资源,人力资源以及财务。在整个参与过程中,在不同时间里担任的工作任务也不同。1、八月份据了解,该项目早在3月份就开始了,而且该项目一直是处于不受控状态,控制不了的原因有诸多,例如客户的需求发生了巨大变动,该项目进行期间有很多其他的项目插入到开发过程中等等。于是,我参与了测试程序的工作,以熟悉整个项目的具体内容,功能实现,设计方法等。在做测试工作的过程中,发现实习单位目前对测试不太重视,在以前的项目中也很少有全面的软件测试阶段。主要表现在:一方面,在我实习期间,就陆续有以前做的系统拿回来,重新做测试工作并修改。据了解,目前国内的绝大多数软件企业也是重编码轻测试,导致软件的强壮性低下,而在售后的维护阶段中经常性需要大幅度修改。这样一来,经常有不同的新老系统并行,给新系统的项目进度带来了外部干扰;另方面,公司要求的测试方法也较为简单,且测试文档的书写格式极其简单,这种书写格式在一些功能上的错误和明显的数据错误上有很好的表意效果,但是在表达程序的逻辑错误和内部数据错误时有很大的欠缺。在整个测试工作中也大概了解了该系统的各方面特性。该系统采用b/s结构开发,随着internet的高速发展、电信部门对网络线路的投入、带宽的增加等各个对b/s结构有利的条件下,采用b/s结构可以节省很多的成本。在以前采用c/s结构开发的系统中,需要为系统开发客户端,而且在维护过程中,除了对服务器端的维护,还要对各个客户端进行维护,而目前盛行的b/s结构,则只需要开发和维护服务器端,相比之下,开发和维护的成本也就大大降低。另外,b/s结构在internet里的应用性比较高。但是,b/s结构也不是完美的选择,它存在诸如b/s结构的用户界面上比较难控制,浏览器的安全性能没有很好的保障等问题。整个系统采用asp .net+ms sql server 2000做开发,编程语言采用c#和vb。测试工作和书写文档是比较枯燥的工作,测试更是要细心,有耐性的去做,在这个月里认真的完成了我的工作,还帮忙修改了用户界面。我的工作得到了负责人的肯定。2、九月份八月末就得知要将整个系统重构,因为原有未完成的系统跟变动后的用户需求有太大的出入,而且系统存在比较多的错误,难以修复。负责人要求我参与到系统的重构工作中去,参与设计,代码编写。这对我来说是一个考验也是一个机会,于是我选择了“仓库管理”子系统,用vb作为编码语言。在九月份的开发过程中,有两个方面的感触:第一是技术方面。由于采用了vb编写代码,而自身只学了c/c+、还有java。对vb只是一点点了解,另外,对asp dotnet更是一点不通。所以,这个时候需要发挥下自学能力,和领悟能力。在开发过程中印象最深的是web form里datagrid的操作,以及对整个web form的运行过程。首先,由于仓库管理绝大部分工作是填写单据,单据是由单头和单体组成,单头记录基本信息,单体记录明细信息。设计决定在填写单体时,采用datagrid行内编辑,所以datagrid的行内编辑将是技术的难点。dotnet的datagrid控件有编辑命令与删除命令,而新增则可以通过一个button点击来生成一个新行等待编辑。三个操作的代码清单如下:编辑命令代码清单private sub datagrid1_editmand(byval source as object, byval e as system.web.ui.webcontrols.datagridmandeventargs) handles datagrid1.editmandif viewstate(add) 1 thendatagrid1.edititemindex = e.item.itemindex 将该行的编辑状态行datagrid1.databind()end ifend sub删除命令代码清单private sub datagrid1_mand(byval source as object, byval e as system.web.ui.webcontrols.datagridmandeventargs) handles datagrid1.mandif viewstate(add) 1 thendim delindex as integerdelindex = cint(e.item.cells(1).text)dim dr as datarowdr = dataset1.tables(tblbrand).rows.find(delindex)找到该行在数据集中的编号dr.()将该行在数据集中删除sqldataadapter1.update(dataset1.tables(tblbrand)更新数据库表datagrid1.edititemindex = -1datagrid1.databind()end ifend sub新增按扭事件代码清单private sub button1_click(byval sender as system.object, byval e as system.eventargs) handles button1.clickdim dr as datarowdr = dataset1.tables(tblbrand).newrow()新增一行,并将该行插入到数据集dataset1.tables(tblbrand).rows.at(dr, ataset1.tables(tblbrand).rows.count)viewstate(add) = 1end sub其实datagrid中有很多很好用的特性,具体请参考msdn。其次,为实现一次性提交整张单据到数据库保存,采用了sqlaadapter与dataset结合,应用sqlaadatper的uapdate方法特性:对dataset 的数据行做检索,并发操作,update,三个命令,对删除行做数据库删除,更改的数据行做更新,新增的行做插入。最后,在web form的初始到消除整个生命周期也有了较全面的了解。但是感觉dotnet中的web form的生命周期中,所发生的事件有些凌乱,例如datagrid每一行的创建和数据绑定都是比较复杂的,在开发中涉及的技术较多,在此不一一阐述。第二是工作方面。在这个月中,同样发现了公司的开发工作有较多的问题。首先,人员工作地点变动大,不便于沟通。在开发工作中,由于人员没有固定工作地点,只是把任务分配了,接着就各自去完成,这样一来,在各个模块的协调中经常出现了问题,但又不能很及时的和相关模块的负责人商讨解决方法,工作效率也就随之下降。其次,对整个项目的规划,整个系统的设计,编码,测试等工作分工不明确且不统一。在项目开始时,只是草草的分了下模块,接着这个模块的设计、编码、测试就由这个模块的负责人来做,没有先对整个项目进行明确的整体的规划。而且在设计过程中缺少讨论,导致设计出来的模块独立性过高,没有考虑到公共的接口等问题。最后,对解决问题的速度慢。当在开发的过程中出现了问题,对问题的解决途径多固然是好,但是,解决方案出现分歧的时候难以敲定具体实施哪个方案,导致进展缓慢,进度延期。3、十月份十月份是整个重构活动的收尾阶段,该阶段需要完成的工作是数据报表的设计与实现。数据报表设计方面,沿用原有的纸质报表的结构,所以整个设计过程相对轻松。但是在实现阶段,由于在决定采用何种实现方式的决策问题上出现了飘忽不定的状况,使得进度上又有了少许的延期,最后采用了crystalreports来实现。抛弃了打印分页控制难的html方法,以及技术不成熟,安全性差的ms sql server reportingservice报表工具。在这个阶段,我负责了仓库管理、销售管理、采购管理以及生产管理等四个子系统的报表实现,在此期间学会了crystalreports的使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论