软件工程见习报告

在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。因此网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。计算机将具备更多的智能成分,它将具有多种感知能力、一定的思考与判断能力及一定的自然语言能力。除了提供自然的输入手段(如语音输入、手写输入)外,让人能产生身临其境感觉的各种交互设备已经出现,虚拟现实技术是这一领域发展的集中体现。

一、见习目的
通过见习,培养综合运用Java语言的面向对象编程能力;培养动手能力;培养良好编程规范、编程方法;以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力;增强自己的团队协作意识,了解软件开发的思考角度和主要流程。通过理论与实际的结合、学校与社会的沟通,进一步提高自己的思想觉悟、业务水平,尤其是观察、分析和解决问题的实际工作能力,以便培养自己成为能够主动适应社会主义现代化建设需要的高素质的复合型人才。为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。
二、见习单位基本情况介绍
西安粤嵌通信科技股份有限公司(广州分部),即粤嵌。粤嵌创立于2005年,是全球性规模经营的IT技术产品研发及教育服务机构,目前粤嵌已拥有IT技术培训、教学仪器、数字医疗系统、动漫游戏机产品四大品牌产业。公司已于 2016 年登陆新三板正式挂牌上市。 公司经过多年的发展,秉承"行业引领,齐商共赢,开拓创新,服务诚信"的核心经营理念,为业界提供全面的IT技术服务和产品,在发展过程中,粤嵌形成了在IT技术自主创新方面的优势和能力,已成为国内外IT技术领域的知名企业。粤嵌公司一直秉承软件提高效率、与社会共创信息化新时代的理念,致力于为用户提供具有自主知识产权的系统软件、安全软件、平台软件、各类应用软件以及全方位的解决方案和相关服务。
三、实训内容
(1)Java实训
① 通过本次实习,我对Java语言的各种特性有了更进一步的体会:
Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担心。
② Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
③ Java语言支持Internet应用的开发,在基本的Java应用编程接口中有   一个网络应用编程接口(java.net)它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
④ Java语言是体系结构中立的Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
⑤ Java语言是可移植的,这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
⑥ 在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
⑦ Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。   
(2)数据库实训——SQL Server2018
在此次实习中,与Web服务器相连的数据库采用的是大型关系数据库管理系统——SQL Server 2018。它是基于客户机/浏览机模式的数据库管理系统;它支持ODBC、ADO等技术的应用,可无缝的与Windows 2018 Server 和 IIS 集成,提供高效安全的数据访问服务;有利于整个系统管理规范化,使数据的完整性、安全性得到保证。
数据库设计实际上主要是所要处理的数据的表示方法和存储结构的设计。在采用数据库技术之前,这些工作分散在应用程序中进行;在采用数据库技术之后,这些工作可以通过数据库设计集中起来系统地进行。
进行数据库设计的首要任务是考虑信息需求,也就是数据库要存入什么样的数据。创建数据库并不是仅仅为了存储数据,更主要的目的是从中提取有用的信息。除了考虑数据存储什么数据外,还应考虑存取方式,也就是处理需求。即要根据用户提出的存取要求来设计数据模式和应用程序。
社会人教育 社会人教育也可以称为职业道德教育,是指从事一定职业的人们在职业活动中所应遵循的道德规范以及该职业所要求的道德准则、道德情操和道德品质的总和。成功的大学生职业道德教育可以为大学生以后从事本职工作打下良好的职业道德基础,为他们从业后具备良好职业道德修养提供理论、知识、情感前提。因此公司对新职员开展了职业道德教育课程,主要课程包括职前职业道德教育,即通过教育使大学生自觉认识到自己将来所从事职业的社会价值,使他们深刻感受到自己肩负的社会责任和使命,确立正确的就业意识和择业取向;表现在将来的从业行为上,通过教育使他们热爱本职工作,尽职尽责地履行职业义务,有较强的敬业和奉献精神。
四、实训经验
1.Java怎样选择项目
(1)最终的项目一定是真实的项目,也就是要把学员训练到能够独立开发实际应用,通常我们还不能选最简单的项目,因为学员的吸收还要有一个折扣,所以最终的项目应该选实际项目中中等难度的项目。
(2)最终项目定下来过后,开始分解这个项目,看看为了达到完成这个项目需要哪些技术和知识点,以及每部分知识点的深度,然后定出每个分阶段的任务
(3)然后开始选择分阶段的项目,分阶段的项目应该比刚才分析出来的分阶段任务稍稍复杂点,这样才能达到训练的目标。定下分阶段项目后,同样去分解,定出为了完成他所需要的各部分知识点和深度。
(4)然后是选择上课期间的演示项目,演示的项目是为了做分阶段项目服务的,可以认为是分阶段项目的分阶段项目。
(5)最终把要求掌握的知识点和要求掌握的深度,分散到日常教学和练习中。
好了,把上面的分析用正向描述就是:
日常教学和练习中学习和掌握的知识 ==〉演示项目 ==〉分阶段项目 ==〉综合项目 ==〉胜任企业实际开发需要。
2.真实工作
(1):真项目
项目一定要真实,要是企业实际应用的,不能是教学性的项目,否则会脱离实达不到项目实训的效果。还有一个一定要是最新的项目,企业的要求也是在不断变化的,应用技术的方向和层次也在不断变化,这些都体现在最新项目的要求上,旧项目所要求的技术和层次很可能已经过时了,根本达不到训练的目的。
java的做法是:没有固定项目,每个班做项目之前会从企业获取最新的项目需求,然后经过挑选和精心设计,以保证既能训练技术,又能得到实际的开发经验。这样实现了跟企业的同步,企业做什么,我们就学什么,然后也跟着做什么。
(2):真流程
开发的流程也要跟企业的实际开发保持一致。从项目立项开始,到需求分析、概要设计、详细设计、编码、测试的各个环节,都要完全按照真实的开发流程来做。
java的主力老师都是实战出身,在java开发方面都至少有七年以上的开发经验,同时具备多年的项目管理经验,所以能够完全按照企业开发的流程来训练学生。
(3):真环境
开发的环境也要跟企业一样,包括常用的开发工具、开发平台、应用服务器、常用插件、测试工具、项目管理工具、项目管理文档等等。
java的做法是:构建跟企业完全一样的环境,然后跟企业开发一样,分团队开发。老师就相当于项目经理,一个班分成多个小组,每个组有自己的team leader,大家分工合作,共同完成项目。
(4):真开发
这是java最与众不同的一点,java深知:软件是做出来的,而不是听出来或者看出来的,企业需要能实际开发的人员,而不是只听过、看过但不能做的人。所以java非常强调:项目一定要让学生动手写出来。
java的做法是:老师做为项目经理,带领着大家一起去做需求分析、概要设计、数据结构设计、接口设计、重要业务流程的分析设计等,然后由学生们分团队进行开发,实现整个项目。这里有几个与众不同:
<1>:现场带领学生一起做分析和设计,而不是预先做好了来讲讲。因为需要学生学习的是分析设计的过程和方法,而不是已经做好的结果。
<2>:java选用的项目基本都是企业最新的项目,很多都是java的学生和企业在同期开发,所以是不配发源代码的。
这是一个典型的误区:觉得通过看人家的代码能够加快自己的学习。这个方法对有经验的人来讲是对的,但是对于还在学习期间,没有经验的来讲,就是一个认识的误区了。因为你也许能看懂代码的语法,但根本看不懂代码背后的含义,看不懂代码的设计,看不懂为什么要这么实现,看不懂代码所体现的思想,其实,看了跟没看没有多大区别。
事实上,java界最不缺的就是代码了,那么多开源软件,小到一个工具,到企业级erp都有开源的,而且很多都是大师级的作品,说实话比你参考的那些代码质量高多了,但是又有多少人能真正看明白呢,原因就在于达不到那个水平,看不懂代码背后所体现的设计和思想以及为什么要这么做,效果也就不好了。
当然不排除有这样的高人是能够完全能理解和掌握这些大师级作品的,但估计不会是刚开始学习java开发的学生,自己能写出来的功能才是你真正掌握的功能,而不是你看得代码或者是听老师讲的,就算讲过看过,但是自己做不出来,那都不算会。
<3>:java在课堂上除了带领学生去分析设计外,还会分析一些重点、难点功能的实现机制和原理,然后指导学生去实现。
(5):真技术
java在每个项目中,特别会抽取有难度的部分让学生们在老师指导下实现,专门啃硬骨头,那才能真正锻炼学生的开发能力。
比如:在做oa类的项目时,会重点去做工作流、公文收发、在线office控制等;在做crm类项目时:会重点去做销售自动化和市场块的业务;在做人力资源类项目的时候会重点去做人力跟踪和人力评测模型等。
java在每个项目中,都会使用目前企业最新最流行的技术,按照最新的难度去要求,从而让学员能更符合企业的需要。
(6):真经验
java的项目都是企业最新的真实项目,经过开发训练,学员能够积累足够的真实的开发经验,以胜任企业的工作需要。在进行项目分析时,还会全面讲解项目所要求的业务,让学员从业务和技术上都能充分积累。
(7):真实力
作为就业培训,项目的好坏对培训质量的影响非常大,常常是决定性的作用。这篇文章是关于在学习java软件开发时练习项目的总结,简单总结为以下几点:事实上,不采用有源代码的教学性项目对java的要求非常高。另外一个,由于是全真的项目,在开发的过程中,肯定会有很多的问题出现,这些都要老师去解决,由于不像教学项目那样预先做好,又需要老师能很快地解决各个问题,这对老师的真实开发水平有极高的要求,这可是需要真功夫的.
3.就业岗位
(1)Java就业岗位之一Java程序员
Java程序员岗位要求精通Oracle, SQLServer等数据库;了解Javascript、Ajax、XML等方向HTML;熟悉J2EE技术体系;掌握Applet、EJB,JSP, Servlet的编写技巧;对Linux和Unix操作系统有一定的了解。
(2)Java就业岗位之二Java工程师
Java工程师要求掌握J2EE架构、Struts/hibernate/Spring/Spring、MVC3.0,以及Eclipse开发平台和.熟悉apache,tomcat等服务器JSP、Servlet、XML、Ajax、Jms编程;C#与面向对象系统分析与设计方法;JavaScript与Ajax等。
(3)Java就业岗位之三高级系统工程师
Java系统工程师要求了解J2EE架构的软件系统架构分析、设计及原型实现;掌握软件工程理论,精通至少一种软件工程方法,有较强的系统分析;有大型系统构建经验,精通服务器架构,精通各种主流数据库。
(4)Java就业岗位之四数据工程师
Java在很多人看来就是做开发,实际上也不完全是开发,除了懂得开发技术以外还需要掌握数据库方向,基本要求是熟悉SQL2000/2005/2008、Mssql/Mysql/ORCLE数据库设计、开发、维护,精通数据建模,数据库查询语言T-SQL开发,精通数据的存储过程。
Java不仅仅岗位众多,同时java也存在于不同的行业,对于不了解的人来说,感觉java是专业计算机课程,那么工作肯定是在IT企业,其实不然,java在的工作岗位也是不分企业性质,例如银行、手机运营商、网络运营商、教育机构、网站架构等都需要java工程师。
五、见习总结
1.透过直接参与企业的运作过程,学到了实践知识,同时进一步加深了对理论知识的理解,使理论与实践知识都有所提高,*地完成了本科教学的实践任务。
2.提高了实际工作潜力,为就业和将来的工作取得了1些宝贵的实践经验。
3.学生在实习单位受到认可并促成就业。并为毕业后的正式工作进行了良好的准备。
4.透过实习,我对我国软件行业发展有了大致的了解,也准备在实习结束后,借回校的机会,抓紧时光,学习更多相关的理论知识,提高自我的专业水平,为正式工作准好准备思想上的转变,我本次实习还有的收获是透过自我的观察和与同事的交谈思想有一个很大的进步,人生的价值观。透过这次实习,让我受益非浅,如此感慨万分!

你可能感兴趣的:(软件工程见习报告)