千文网小编为你整理了多篇相关的《软件开发项目实习报告(推荐6篇)》,但愿对你工作学习有帮助,当然你在千文网还可以找到更多《软件开发项目实习报告(推荐6篇)》。
2010年中国软件产业发展现状概况
2010 年,我国软件业实现新的突破,产业增速稳步回升,业务结构调整加快,企业发展和区域布局出现新的特点,在国民经济中的地位不断提升。
2010 年,实现软件业务收入13364 亿元,产业规模比2001年扩大十几倍,年均增长38%,占电子信息产业的比重由2001 年的6%上升到18%。在全球软件与信息服务业中,所占份额由不足5%,上升到超过15%。软件业从业人数由2001 年不足30万人提高到超过200 万人。
2010 年,信息技术咨询服务和信息技术增值服务收入分别为1233 和2178 亿元,同比增长37.2%和44.6%。软件产品收入4208 亿元,同比增长28.6%;嵌入式系统软件受通信类产品增长放缓影响,完成收入2242 亿元,同比增长15.1%。受集成电路行业复苏和软件外包市场增长带动,设计开发实现收入593 亿元,同比增长73.1%;系统集成和支持服务实现收入2910 亿元,同比增长31.8%。2010年全国计算机软件著作权登记量突破了8万件。
软件产业发展聚集趋势从过去主要集中在京粤地区转向沿海地区。2010 年,江苏、辽宁、福建、山东四省软件收入增长超过35%,占全国比重合计达35%,逐步打破过去京粤两地占全国一半以上的集中局面(两地占比下降为35.5%)。中心城市成为软件产业发展的主要聚集地,2010 年全国4 个直辖市和15 个副省级城市软件收入10643 亿元,占全国的比重为80%。在中西部地,成都、西安、重庆三个城市占西部地区的90%,武汉、长沙二个城市占中部地区30%以上。
软件产业面临的形势
从国际上看,全球软件产业格局充分洗牌,为后发国家实现追赶和跨越带来更大的机遇,软件技术和产业的格局正在孕育新一轮的重大调整,一方面跨国公司原有的技术垄断受到了挑战,对后发国家的技术锁定效应大大降低,所谓的技术锁定就是垄断,技术封锁效应。另一方面是云计算为代表的模式的创新对产业发展的影响日益突出,在这种背景下,软件技术创新速度将明显加快,服务的新业态新模式将不断的涌现。
从国内看,推进两化深度融合和培育战略性新兴产业给软件产业带来巨大的发展空间,我国作为后发国家,拥有大国优势,有庞大的潜在的消费市场。商务部统计,我国的消费是每年15%的速度在增长,其中有很大一部分是电子消费,满足不同层次和年龄的需要,推动两化深度融合,培育发展战略性新兴产业为我国新一轮信息技术发展提供了广阔的创新和应用空间,从云计算、物联网新兴业态的发展情况来看,我国和美国有一段距离,但是国际上物联网是这两年刚刚有的新的概念,我们觉得和日本韩国相比处在同一个起跑线上。
软件产业发展趋势分析
未来软件产业发展的趋势可以归纳为“五化”,分别是网络化、服务化、智能化、平台化、融合化。
网络化将成为信息技术发展的一个基本方向,互联网已经成为了软件开发部署和运行的一个平台,推动了整个产业的全面的转型,三代网、物联网和移动互联网云计算都是软件网络化趋势的具体体现。
服务化是网络转型的本质和特点,软件开发技术和应用模式正在向以用户为中心转变,云计算是软件服务化的模式,可以按照用户需要,动态的来提供计算、存储、应用等各类资源,具有可动态的伸缩性,使用成本比较低,可管理性好,节约能耗,安全便捷等优点,在服务化的大趋势下,向用户提供软件服务的体验,将来成为竞争的重要因素。
智能化是软件技术发展的永恒的主题,软件能够从复杂多样的海量的数据当中,自动高效的提取所需要的知识、信息进行加工处理,软件开发语言更加的高级化,开发工具也更加的集成化。
平台化是软件技术和产品发展的新引擎,操作系统、数据库、中间件和应用软件相互的渗透,向一体化的软件平台进行演变,平台化的趋势下,软件的竞争从单一产品的竞争发展为平台间的竞争,未来软件产业将围绕主流软件平台构造整个软件产业链。
融合化是软件技术和产业发展的新空间,软硬结合,软件与网络的结合,产品与业务的融合,软件产业与其他产业之间的相互渗透、相互融合不断深化,融合化趋势创造了巨大的市场需求。
什么是“软件工程”?
IEEE计算机学会将“软件工程”定义为:“(1)应用系统化的、学科化的、定量的方 法,来开发、运行和维护软件,即,将工程应用到软件。(2)对(1)中各种方法的研究”。(参见:IEEE Standard Glossary of Software Engineering Terminology。IEEE, Piscataway, NJ std 610.12-1990, 1990)
软件工程知识域
软件需求 Software Requirements 软件设计 Software Design 软件构造 Software Construction 软件测试 Software Testing 软件维护 Software Maintenance 软件配置管理 Software Configuration Management 软件工程管理 Software Engineering Management 软件工程过程 Software Engineering Process 软件工程工具和方法 Software Engineering Tools and Methods 软件质量 Software Quality 软件工程职业的乐趣
首先是一种创建事物的纯粹快乐;
其次,快乐来自于开发对其他人有用的东西;
第三是整个过程体现出魔术般的力量——将相互啮合的零部件组装在一起,看到它们精妙地运行,得到预先所希望的结果;
第四是学习的乐趣,来自于这项工作的非重复特性; 最后,乐趣还来自于工作在如此易于驾驭的介质上
软件工程职业的苦恼 首先,必须追求完美;
其次,是由他人来设定目标,供给资源,提供信息;
概念性设计是有趣的,但寻找琐碎的 bug 却只是一项重复性的活动;
最后一个苦恼,有时也是一种无奈——当投入了大量辛苦的劳动,产品在即将完成或者终于完成的时候,却已显得陈旧过时;
软件工程职业发展路线
从程序员到软件设计师
软件技术发展到今天,分工越来越细。程序员作为一个通用称谓已经无法确切定义各种工作的性质和特点。因为软件开发中各种职责区分不清,无论是刚刚写代码的新手还是具有多年经验的老手,一概被扣上程序员的通用名称,这也使得很多进入这个领域的软件开发人员无法制订自己未来的职业发展之路。
实际上,软件公司也认识到了对程序员分类的重要性开始将各种职位定义得更加准确。对于从事软件开发的程序员来说,更需要尽快明确自己的发展方向,并在此方向上将专业知识积累得更深厚,这才能尽快摆脱对未来发展方向的迷茫。
从程序员的技术方向发展来看,软件设计师无疑是职业生涯的顶峰。拿破仑说过“不想当元帅的士兵不是好士兵”,借用这句话,不想当软件设计师的程序员也不是好程序员。不过首先要了解什么是软件设计师,如何才能成为软件设计师。明了这些,才有可能向软件设计师发展,创造更辉煌的程序人生。
软件设计师的定义
软件设计师包括软件系统设计师(System Designer)和软件架构设计师(Architect)。
系统设计师应对“系统结构”所使用的软件技术非常了解,自身具备良好编程技巧,才能成为优秀的系统设计师。系统设计师的职责是把结构模型对应到实现模型上,从概念到实现期间规划和组合模型的优劣是决定软件系统设计师好坏的标准。
软件架构设计师是程序员技术方向的最终归属,也是成长链中最神圣的一环,架构设计师的贡献最大。架构设计师彻底摆脱了语言的束缚,知道软件发展趋势。他们会开发新一代产品或者制定新一代产品的方案。软件架构设计是面向未来的。全球大规模的软件公司并不多,很重要的一个原因是软件产品的发展都滞后于市场需求,即有需求后再研发产品,而不是预见需求,预先设计,因此往往软件设计局部是合理的,但从整体的角度看却不合理。要解决这些问题就要看的能力了。
软件设计的三个层次
软件设计可以分三个层次。
第一层属于标准层,像J2EE、.NET的框架设计;
第二种属于系统层的设计,比如Delphi这样的开发工具就是工具系统级的设计;
而应用最广泛的是第三层:应用软件设计。基于中国软件产业发展的现状,大部分设计都是这个层次上的基于应用的架构设计,本文非特殊标明,提到的软件设计师泛指应用软件系统设计师,当然有些也是架构设计师的能力所在。
//*从软件开发历史看,软件设计经历了很多阶段。最早是结构化设计,只是把复杂的问题逐层分解,通过流程图形式将任务标明,提到的软件设计师泛指应用软件系统设逐级细化;后来出现面向对象设计,从底层进行对象封装、继承、多态,这时更多的是考虑代码重用,面向的主要是类和对象。接下来出现组件设计,这主要是面向应用方面。这三种都是面向功能的设计。
从EJB、COBRA技术出现之后,人们开始基于框架进行设计,也就是架构设计。继续发展,就是基于规则的设计了,比如基于模块和工作流的设计,这时主要将客户化做的更详细以及考虑开放性、可扩展性、可靠性、效率方面的问题。*// 软件设计师的工作
随着大型软件开发越来越多,整体把握软件架构变的越来越重要。尤其当用户需求并不明确的情况下,就要开始做软件,如何防止交付的软件产品与用户的要求距离很远,这就需要软件系统设计师进行恰当的设计。
在应用软件开发中,软件设计师担当承上启下的角色也就是把用户的需求,基于应用的问题变成计算机系统中可以解决的问题。设计可以分为功能上的设计和技术体系上的设计,但在实际工作中,这两者很难区分清晰。
软件设计师的要求
做为应用软件开发中最顶层的角色,软件设计师需要各方面的能力更强,除了具备更强的编程技巧能力外,还需要了解系统结构、主流软件技术和软件趋势,同时要具备相当的专业知识。多年编程经验:
既包括在专业领域的经验,也包括在软件工程领域的经验。对于一个构架团队,这些素质要求可由各团队成员分别承担,但其中至少要有一名构架设计师能够把握项目的全局。和任何行业一样,经验是最重要的。软件设计不是纸上谈兵,一个软件设计师首先要是非常好的程序员。软件设计师在编程的时候,用的工具和普通程序员没有任何差别,但使用深度是绝对不一样的。抽象能力:
一个程序员刚写程序的时候,无非就是为了解决某个功能而进行代码编写。随着程序编写越来越多,他对自己所做的应用方面的理解也越来越多。不同的企业有不同的需求,但把这些企业放在一起来看,就会发现他们的一些共性。将这些共性提炼出来,这就是抽象的过程。抽象出来的共性形成的模型可以把这些企业的需求都包含进去,这是做通用软件必须要走的一步。面向对象的思想:
面向对象是软件开发出现以来最伟大的创新之一,这是每个程序员都追求的,但是否真正掌握了面向对象的思想,这是需要探讨的,面向对象并不受开发工具和语言的限制。很多程序员在用C++写面向对象代码时,实际上还是在写C代码。甚至使用C#这种完全面向对象的语言写出来的还是流程化的程序。面向对象可以应用的领域非常广泛。不仅在写代码的过程中要考虑到面向对象,在设计和分析阶段也要用到面向对象的方法。舍得抛弃:
软件设计是一个渐进过程,是通过不断碰壁,不断调整提高的。要想取得突破,就需要舍得抛弃。
很多人舍不得扔掉自己的代码,往往是不断的修改,最后进入一个恶性的循环。当然,这种抛弃也是有继承的抛弃,不同时期产品的架构之间也有连续性,不是一个架构就会完全取代前面的架构,好的东西还是可以继承的,像微软的.NET架构就是从DNA架构上发展来的。领悟和突破:
程序员技术的成长可以通过学习技巧而成长,也可以通过思想领悟而得到成长,后者更为重要。如果不能领悟开发的思想,仅仅掌握了技巧,一旦改换了平台和语言,又要从头学起,所以很多人在转型过程中失败了。而掌握了编程的思想,自动就移过去了。
即便是很小的软件,也可以锻炼突破性的编程思维。一种基本的设计原则和思路就是程序设计千万不要回溯,否则就会崩溃,这是多少人脑袋碰墙多少次之后才明白的。非软件知识:
提起软件设计师,人们很喜欢拿建筑师做比较,的确这两个行业有很多相似之处。古罗马建筑师维特鲁威说“理想的建筑师应该既是文学家又是数学家,他还应通晓历史,热衷于哲学研究,精通音乐,懂得医药知识,具有法学造诣,深谙天文学及天文计算。”软件设计同样如此。
从程序员到测试工程师
软件测试是一门非常重要的学科,目前研究的内容还很不深入。软件测试需要什么样的专业基础还没有定论,而且目前还没有一种很好的标准来衡量测试人员。但无可置疑,软件测试越来越受到软件公司的重视,软件测试工程师的作用也逐渐被人们所认可。这已经在像微软这样的国外大型软件企业中所证实,微软的一个开发人员会对应一至两个测试人员。
2002年4月份,微软公司董事长兼首席软件设计师比尔·盖茨让微软研发部门将所有手头正在进行的工作暂停,彻底检查了每一个微软的软件,将所有存在的漏洞全部修好,所有的开发人员全部成为了测试人员,为的是“可信赖的计算”。
国内软件公司对软件测试的态度令人担忧。软件测试不足,开发测试人员比例不合理。据调查,最好的企业中测试人员和开发人员的比例是1:8,有的是1:20大部分公司甚至没有专职的测试工程师。
重视测试首先需要有开放性的软件文化,而在很多公司中,测试工程师只是绝对服从的听命角色,没有发挥他们的积极性和创造性。一些管理人员对软件开发的流程管理经验不足,仍然用传统企业的方法进行管理,再加上对软件质量的控制理解不对,认为让程序员编完程序后经过简单的功能测试就可以发布了,而没有认识到软件测试是控制质量最好的方法。不过,国内还是有一些大型公司和专业公司已经在软件测试方面走上正规IBM软件测试项目,已经成为公司主体软件外包业务之一。
一提到软件测试工程师,很多人会想到那些反复使用软件,试图在频繁操作中寻找到错误发生的低层次人员或者软件用户。其实这是一种错误的概念,软件测试早已超越了用户使用来发现Bug的基本测试阶段。
现在软件测试工程师普遍分为三种:测试执行者(BasicSoftware Tester)、测试工具软件开发工程师(SoftwareDevelopment Engineer in Test)和高级软件测试工程师(Ad_hoc Tester)。
测试执行者负责理解产品的功能要求,然后根据测试规范和测试案例对其进行测试,检查软件有没有错误,决定软件是否具有稳定性,属于最低级的执行角色。测试工具软件开发工程师负责写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。产品开发后的性能测试、提交测试等过程,都有可能要用到开发的测试工具。对技术要求最强的是这些人因为他们要具备写程序的技术。“不同产品的特性不一样,对测试工具要求也是不同的,就像Windows的测试工具不能用于office,office的测试工具也不能用于SQLserver现在很多测试工程师就是负责专门为某个产品写测试程序的。”
软件测试工程师的素质:
因为软件测试仍然处在发展阶段,还没有上升到理论层次。对人员的评测,包括微软在内,都还没有一个统一标准,因此评定软件测试工程师只能根据工作实践进行自然淘汰了。
软件测试对逻辑思维、学习能力、反应要求很高,是否有严密的思维和逆向思维也非常重要。
做测试还要考虑到所有出错的可能性,做一些不按常规、非常奇怪的事。除了漏洞检测,测试还应该考虑性能问题,也就是要保证软件运行得很好,没有内存泄漏,不会出现运行越来越慢的情况;在不同的使用环境下,考虑软件的兼容性同样重要。软件测试同产品的规模也有很大的关系,因为软件的bug往往出在大型软件的连接处。
做软件测试工程师需要对软件抱有怀疑态度。这是因为开发人员喜欢想当然,总是找一些有利于自己程序执行的数据,有些开发人员甚至认为不利于程序执行的数据是对代码的玷污和亵渎。而软件测试却要策略性的准备各种数据,从每个细节上设计不同的应用场景,不去想当然的假定任何一个数据是可行的。
在职业素质和交际方面方面,并不是测试工程师爱挑别人毛病才好,反而这个工作要求很强的沟通能力。要经常和开发人员进行沟通,说话办事要很得当,不能指责别人,否则会事倍功半。软件测试工程师在工作中,对人和对事是完全不同的两个问题。
测试设计中需要考虑的22种测试类型:
1.黑盒测试:
不基于内部设计和代码的任何知识,而是基于需求和功能性。2.白盒测试:
基于一个应用代码的内部逻辑知识,测试是基于覆盖全部代码、分支、路径、条件。3.单元测试:
最微小规模的测试;以测试某个功能或代码块典型地由程序员而非测试员来做,因为它需要知道内部程序设计和编码的细节知识。4.累积综合测试:
当一个新功能增加后,对应用系统所做的连续测试。它要求应用系统的不同形态的功能能够足够独立以便在全部系统完成前能分别工作,这种测试可由程序员或测试员来做。5.集成测试:
一个应用系统的各个部件的联合测试,以决定他们能否在一起共同工作。部件可以是代码块、独立的应用、网络上的客户端或服务器端程序。这种类型的测试主要与客户服务器和分布式系统有关。6.功能测试:
用于测试应用系统的功能需求的黑盒测试方法。7.系统测试:
基于系统整体需求说明书的黑盒类测试;应覆盖系统所有联合的部件。8.端到端测试:
类似于系统测试;测试级的“宏大”的端点;涉及整个应用系统环境在一个现实世界使用时的模拟情形的所有测试。例如与数据库对话,用网络通讯,或与外部硬件、应用系统或适当的系统对话。9.健全测试:
典型的是指一个初始化的测试工作,以决定一个新的软件版本测试是否足以执行下一步的测试。10.衰竭测试:
软件或环境的修复或更正后的“再测试”。可能很难确定需要多少遍再次测试。尤其在接近开发周期结束时。自动测试工具对这类测试尤其有用。11.接受测试:
基于客户或最终用户的规格书的最终测试,或基于用户一段时间的使用后,看软件是否满足客户要求。12.负载测试:
测试一个应用在重负荷下的表现,例如测试一个 Web站点在大量的负荷下,何时系统的响应会退化或失败。13.强迫测试:
在交替进行负荷和性能测试时常用的术语。也用于描述象在异乎寻常的重载下的系统功能测试之类的测试,如某个动作或输入大量的重复,大量数据的输入,对一个数据库系统大量的复杂查询等。14.性能测试:
在交替进行负荷和强迫测试时常用的术语。“性能测试”(和其他类型的测试)应在需求文档或质量保证、测试计划中定义。15.可用性测试:
对“用户友好性”的测试。显然这是主观的,且将取决于目标最终用户或客户。用户面谈、调查用户对话的录象和其他一些技术都可使用。程序员和测试员通常都不宜作可用性测试员。16.安装/卸载测试:
对软件的全部、部分或升级安装/卸载处理过程的测试。17.恢复测试:
测试一个系统从如下灾难中能否很好地恢复如遇到系统崩溃、硬件损坏或其他灾难性问题。18.安全测试:
测试系统在防止非授权的内部或外部用户的访问或故意破坏等情况时怎么样。这可能需要复杂的测试技术。19.兼容测试:
测试软件在一个特定的硬件/软件/操作系统/网络等环境下的性能如何。20.比较测试:
与竞争伙伴的产品的比较测试,如软件的弱点、优点或实力。21.Alpha测试:
在系统开发接近完成时对应用系统的测试测试后,仍然会有少量的设计变更。这种测试一般由最终用户或其他人员员完成不能由程序员或测试员完成。22.Beta 测试:
当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其他人员完成不能由程序员或测试员完成。
如何成为优秀的软件人才
专业知识技能
软件人员的专业知识技能 大学的计算机专业知识技能 软件工程知识与实践 项目管理知识与实践 企业研发管理
本科学历是必需的,硕士学历是受欢迎的,博士学历是可有可无的
IT人才要珍惜青春,切勿沉沦于纸上谈兵、自欺欺人的“学问” 打好专业基础最重要,做学生不要急功近利。学习时“扬长补短”,工作时“扬长避短”。至关重要的综合才能
表达能力:说和写
业界通病:软件人员的表达能力远远低于其开发能力(例如不会写文档)
错误的思想根源:认为表达能力是可有可无的,技术才能才是最重要的
大学教育失误:培养优秀的工程师而不是领导人。无论那个领域的风云人物,都是“能说会写”之人
如果一个人不在乎自己的文才与口才,实际上他已经选择了平庸之路。
不要怨“英雄无用武之地”,因为别人不知道你能成为英雄!如果你想干一番事业,必须练好你的文才和口才。管理能力
管理能力决定你的“仕途”!误区:没有机会锻炼管理能力
不同行业有不同的管理方法。先从软件项目管理入手(麻雀虽小五脏具全)。
搞技术要用脑子,搞管理要用心。
职业道德和工作态度
职业道德
上班时间不干与工作无关的事情 不损害集体利益 不干危害社会的事情 工作态度
认真负责 服务意识
如何高效率地工作
观念
在有生之时,为个人、家庭、集体、国家多做贡献 但是不要天天辛苦的工作,辛苦地生活。应该愉快地工作,愉快地生活。上班族的经验
合理安排一天的时间:上午,中午,下午,晚上
减少路上花费的时间:时间比钱更值钱,前者浪费了无法追回!正确地开会:明确会议目的,限定人员与时间,不要把上班时间切割得很零碎
处理电子邮件:不要即时响应电子邮件,早中晚三次收发邮件就够了。
随时记录问题与灵感:因为我们大部分人不是天才,靠日积月累才能产生成果!总结
通过这次认识实习,我了解了一些关于软件工程的职业以及怎样做好它们,使我明确了以后的发展方向。
一、关于实习公司
我所实习的南京xxxx软件有限公司简称xxxx公司,公司成立于xxxx年,主营软件开发和信息系统集成,专门从事工程建设项目管理信息系统开发和实施,具有自主知识产权的项目管理软件产品xxxx项目管理系列软件(包括xxxx投资控制合同管理软件、xxxx 进度控制计划管理软件、xxxx质量控制安全管理软件、xxxx项目管理门户、xxxx城建项目管理平台等),并已经在全世界第一大桥苏通长江大桥、国内的开发区苏州工业园区以及南水北调工程实施和应用,目前正与南京城建集团合作,开发城建项目管理平台。
二、实习的内容
今年xxxx月xxxx日开始,我正式走进xxxx开始了实习工作,并被调到了江苏省建筑质量检测中心,参加正在进行的一个检测项目。由于我才大三,本身对企业的经营方式等都很陌生,公司让我们的王工带我学习,以师傅带徒弟的方式,指导我的日常实习。在王工的热心指导下,我依次对此次项目的业务流程和大概框架进行了了解,并积极参与相关工作,注意把书本上学到的理论知识对照实际工作,用理论知识加深对实际工作的认识,用实践验证大学所学确实有用。以双重身份完成了学习与工作两重任务。跟公司同事一样上下班,协助同事完成部门工作;又以学生身份虚心学习,努力汲取实践知识。我心里明白我要以良好的工作态度以及较强的工作能力和勤奋好学来适应公司的工作,完成公司的任务。
三、实习的提高与收获
实习收获,主要有四个方面:
一是通过直接参与企业的运作过程,学到了实践知识,同时进一步加深了对理论知识的理解,使理论与实践知识都有所提高,圆满地完成了本科教学的实践任务。
二是提高了实际工作能力,为就业和将来的工作取得了一些宝贵的实践经验。
三是一些学生在实习单位受到认可并促成就业。
四是为毕业后的正式工作做好了准备。
四、结语
到公司实习并没有我想象中的难以融入,通过慢慢的学习,发现在公司用的到得知识在我们的学校学习中都会遇到。至暑期结束,从不懂到渐渐的做了几个检测项目。学到不少的东西。实习生活还没结束,开学了我还是会继续留在公司我的学习和探索。
时间过的真快,一眨眼时间我在xx科技实习三个多月了。回顾这三个多月在公司的工作生活,我感到很庆幸和满意。庆幸的是我比其它一部分同学多了三个月在软件公司工作的经历,这使我毕业后能够更好更快地适应软件公司的工作生活和节奏。满意的是公司为我提供了良好的工作学习环境,我刚到公司不久公司就为我提供了电脑和相应的座位,当我在学习C#过程中遇到不懂问题的时候,同事都会毫不吝啬的为我讲解,让我感受到公司团结向上的氛围,软件公司最重要的也就是这种团队合作的精神。
在这三个多月的时间中,我进一步学习了编程语言C#,面向对象编程以前在学校的学习没有真正自己实践,是在老师带领下完成的项目。现在我对C#有了基本的认识,也具备了用C#开发Windows应用程序和Web应用程序的能力。现在我再去理解。NET,C#,我发现它们真的是很强大,它的强大也体现在方便的集成开发环境。NET是个强大的新平台,而C#则是该平台下最佳的开发语言。在思想认知上面也得到了很大提高,上班了,不能像在学校那样随心所欲,天大的事有父母顶着,自己不用操心。现在走上社会,就是大人了,应该有责任心,对自己的言行负责。工作中,我也严格要求自己,每天早早到公司,为同事开机,打扫卫生。和同事和睦相处,不迟到,不早退。对自己编码能力还不是太满意,有待进一步提高。现在通过学习,总觉得自己学得不够好,要用到的知识时感觉头脑一片空白,很后悔当初在学校为什么不多学一点,多练一点。后悔也没用,只能自己努力。灰心时给自己打气,哭过之后擦干眼泪,继续工作。整个的实习过程是紧张而愉快的,我的工作态度和成效也得到了总经理和同事们的一致称赞。作为我在踏出社会之前的为数不多的几次实践中,这次的.实践的确给予了我很多。
今后,我将继续保持认真负责的工作态度,高尚的思想觉悟,进一步完善和充实自己,争取在以后的学习中更好的完善自己,在以后的实践中更好的运用去自己的知识,做一个合格的大学生,将来做一名对社会有用的人。 零距离的与社会接触,更能使我将书中的所学与社会需求紧密的联系起来,进一步的锻炼我的意志,提高我的专业水平以及个人素质。同时又进一步的让我懂得交流。所以与其是一次生产实习不如说是一次检阅,一次考验――是社会对我们多年在学校所学的检阅,是对我们个人综合素质和能力的考验。面对明日的挑战,也许很坎坷很困难,但是满怀信心的我绝不退缩。因为这是一片广阔无垠的天宇。
一、关于实习公司
我所实习的南京xx软件有限公司简称xx公司,公司成立于xx年,主营软件开发和信息系统集成,特地从事工程建设项目管理信息系统开发和实施,具有自主学问产权的项目管理软件产品xx项目管理系列软件(包括xx投资限制合同管理软件、进度限制安排管理软件、xx质量限制安全管理软件、xx项目管理门户、xx城建项目管理平台等),并已经在全世界第一大桥苏通长江大桥、国内最大的开发区苏州工业园区以及南水北调工程实施和应用,目前正与南京城建集团合作,开发城建项目管理平台,软件工程实习报告。
二、实习的内容
今年xx月xx日起先,我正式走进xx起先了实习工作,并被调到了江苏省建筑质量检测中心,参与正在进行的一个检测项目。由于我才大三,本身对企业的经营方式等都很生疏,公司让咱们的王工带我学习,以师傅带徒弟的方式,指导我的日常实习。在王工的热心指导下,我依次对此次项目的业务流程和也许框架进行了了解,并主动参加相关工作,留意把书本上学到的理论学问比照实际工作,用理论学问加深对实际工作的相识,用实践验证高校所学的确有用,实习报告《软件工程实习报告》。以双重身份完成了学习与工作两重任务。跟公司同事一样上下班,帮助同事完成部门工作;又以学生身份虚心学习,努力吸取实践学问。我心里明白我要以良好的工作看法以及较强的工作实力和勤奋好学来适应公司的工作,完成公司的任务。
三、实习的提高与收获
1、通过干脆参加企业的运作过程,学到了实践学问,同时进一步加深了对理论学问的理解,使理论与实践学问都有所提高,圆满地完成了本科教学的实践任务。
2、提高了实际工作实力,为就业和将来的工作取得了一些珍贵的实践阅历。
3、一些学生在实习单位受到认可并促成就业。
4、为毕业后的正式工作做好了打算。
四、结语
到公司实习并没有我想象中的'难以融入,通过渐渐的学习,发觉在公司用的到得学问在咱们的学校学习中都会遇到。至暑期结束,从不懂到慢慢的做了几个检测项目。学到不少的东西。实习生活还没结束,开学了我还是会接着留在公司我的学习和探究。
一、实现目的
在大三第一学期开学后,继续在学校学习本专业知识有一个月,在这一个月,我越来越发现,自己的专业知识掌握的并不牢固,或者说是当时大一大二自己感觉学的还不错,当真正让我自己去做一个项目的时候,我并不能将整个流程一连串的做下来,必须参考老师之前做的模板来做。所有我离校,去校外培训继续深入的学习专业知识。
半年的培训结束后,找一家实习单位来,磨合自己踏入社会前的就业准备。在学校学到的理论知识运用到实际工作中,并借此机会提高自己的社会阅历,工作经验。
提高自己对于社会的认知能力,扩大知识面,同时提高自己的专业技能、实践能力,以及让理论联系实际,让自己迅速适应社会工作环境。逐步实现自己由学生到社会的转变,培养自己初步担任技术工作的能力,以便培养自己成为能够主动使用社会主义现代化建设需要的复合型人才。这对我在正式工作前有很重要的意义,不论是专业技能,还是综合素养,以及实际中的人际关系都是十分宝贵的经验。
二、实习内容
(一)实习单位
xx有限公司
(二)岗位介绍
岗位职责:
1、按照需求和技术框架要求进行项目或产品开发;
2、对自己负责的项目进行全程跟踪,根据客户需要迭代优化;
3、与客户进行现场沟通,能够充分理解客户需求;
4、保质保量的完成分配给自己开发的模块或系统
任职要求:
1、熟悉JAVA开发和安卓系统开发;
2、熟悉主流开发架构和开发流程;
3、熟悉软件开发流程及软件管理;
4、有3个以上相关项目开发经验;
5、计算机相关专业优先;
注:动手能力强的应届生也可以考虑。
(三)实习时间
20xx年xx月xx日
(四)实习安排
测试准备上线的PC端,及客户端的APP程序。检测是否程序漏洞及不足。通过SVN上报问题。并详细描述问题的情景问题。分配给指定的分修改。
(五)过程介绍
本次实习共四周时间,我实习的岗位是软件测试工程师。
第一周:
1.熟悉本公司的工作环境,跟着指导老师了解公司相关业务和产品,学会使用公司所开发的应用软件和各种产品设备,熟悉和了解一贯的操作方法和可能出现的问题,了解软件测试的正常工作流程。
2.看产品介绍和说明书,熟悉它的大致结构。由于自己的方向不是测试,测试经理就给我大概讲了一下所有的测试流程,以及测试的相关文档以及文档应该包括的内容,根据公司现有的项目具体让我学习怎样进行测试。
3.看以前的提交过的bug详细信息,学习怎样将发现的bug描述的更加专业和准确,方便开发人员了解bug,以及学习怎样写测试报告和了解日报的格式。
第二周:
熟悉了相关软件和硬件的操作和基本故障诊断之后,我也成为工作之中的一员,正式投入工作岗位。
1.我首先还是通过跟踪产品一下已存在或者修复过的bug信息,熟悉具体功能和业务逻辑,并对这些bug进行验证。在我验证bug信息的时候,每一个bug对于我来说都是新的,完全不同的,即使是针对同一个模块的相关子模块,所以每在我验证完一个bug之后,都会对相关的业务相对的熟悉一些。另外在我学习验证bug信息的过程中,我熟悉了管理工具SVN的使用,以及相关测试环境的搭建与维护。因为很多bug存在于不同版本的产品上,所以我经常处于卸载与安装软件的工程中。
2.搭建相关环境。在搭建测试环境时也废了不少功夫,搭建需要测试项目的运行环境后,安装好测试需要的相关软件。
3.开始对公司项目进行测试。选择正确的版本号测试,如果那个模块的功能出现了问题,及时与开发人员来进行交流,通过SVN提交详细的bug信息(最好加上截图附件),让开发人员对bug一一进行修改。
4.记下每天的工作内容,每天提交日报给指导老师,每周再以周报的形式提工作总结交给指导老师。指导老师会对我写的周报进行检查,对其中存在的问题以邮件的方式发给我,以便之后工作中好改正。
5.为了能更加了解软件中各种功能的关联关系,公司把客户请来,和客户沟通了解整个项目的功能及流程。同时自己也要把bug和负责项目的技术人员进行沟通。和一切相关的人员交流,不同的交流渠道,获得消息是不同的,角度也是不同的。和开发人员交流,会了解开发人员怎么实现软件功能的,和项目管理人员进行交流,会知道开发进度及遇到的困难,和客户进行交流,了解的是在现实生活中需求背景。
6.协调项目的内部测试,本项目中测试后期一轮测试,包括软件硬件结合的测试。比如:实际测试需要用到写字板连接教师手机客户端,将写字板的信息同步到教师客户端,同时学生客户端也能收到解答信息。认真完成项目的测试工作,和技术支持共同保证项目质量。
7.项目测试的问题跟踪及处理采用每日进行修改问题回归测试工作,每日同步更新问题跟踪单的模式,按照规划时间完成系统更新测试。作为此次项目测试的成员之一,对于日常的测试流程、测试任务分配、测试执行、缺陷跟踪、协调内部测试及协调客户测试方面能力均得到了进一步提高。
三、实习体会
实习期两周的感觉,收获颇多,不管是从工作技能上还是从为人处世上,我都感觉自己个人能力有了很大的提高,或者说是看到了自己有待提高的地方有很大的的空间。
(1)工作技能
一个月的实习期,自己所从事的是软件测试的工作,并不是自己专业选修的方向。所以一切都是从头开始的,而更需要自己的努力、耐心和细心。这些都是自己欠缺的,但是在工作了2周后,参与了企业的`运作过程,最后发现自己真的在实践能力上有了很大的改善。要想成为好的测试人员,首先得了解自己要测试的软件的相关知识。要了解软件产品的架构是什么样的。要了解软件的市场需求,在接触软件之初要可以多看看用户的反馈信息,这些才是用户最关心的,也是在测试中需要注意的问题,满足客户是最大的需要。但是了解软件需求之后要学会要多读些软件系统的技术文档,软件设计文档,这些文档可以帮助了解产品如何工作。还有多看看公司Bug库中的问题,这些存在的问题可以帮助自己了解软件产品哪些地方存在缺陷,软件系统那些地方会出现错误。软件是运行在一个大环境中,如果对系统不熟悉,那么有些问题你不能从一个更广阔的层面考虑,学习操作系统的知识,有助于你发现缺陷,定位问题更加准确。比如软件运行在Windows或者Linux,如果不懂操作系统,你就无法建立测试环境,有些时候时候软件的组件发生问题,就是自己系统配置造成的,对系统不熟悉,会把外在原因归结为软件本身。所以要学习关于和软件系统相关的知识,比如编程,网络,数据库等。不一定要学习到多好的程度,只是通过这些扩展的知识面,可以在发现问题,解决问题上不会局限在狭小的圈子里。虽然离真正的软件测试工程师的要求还有很大的距离,但是自己一定会努力,向着自己的目标前进。
(2)为人处世
也让自己成熟了许多。在实习过程中成立的小团队,彼此之间互相沟通,互相帮助,为了我们的目标而努力,圆满地完成了此次实习的实践任务,让我看到了大家对于工作的热情。
总之,通过这次实习,确实让自己成长了许多。在实习期间,我学到了许多东西,遇到了一些困难,也看到了自己本身存在着的许多问题。在测试时要想使自己的工作做得更加周全。总会遇到这样那样的问题,当前的软件的功能日趋复杂,不学到一定的深度和广度是难以在实际工作中应付自如的。因此反映出学习的不足,缺点疏漏。需再加以刻苦钻研及学习,不断开拓视野,增强自己的实践操作技能,为以后能做好以后的工作而努力。
四、知识技能应用
实习已经两周,关于专业知识暂时没用到多少,因为实习期侧重的是软件测试,通过测试来加深对项目的理解及功能实现的应用。
在实习期学到之前从没接触过的知识有很多。
1.测试环境(网络环境,windows环境等)
2.数据库管理
3.编程技巧(java编程设计,脚本语言,设计工具,XML编程)
4.软件测试技术(测试理论,方法,流程,文档写作,测试工具,自动测试)
5.测试技术实践
软件测试的基础知识(黑盒测试,白盒测试,单元测试,系统测试)
软件测试的基本工具(测试管理工具,自动化测试工具,性能测试工具)
本周是实习的第一周,很幸运碰到了产品部很有耐心的leader詹老师。 实习第二天他让本人做一个H5的游戏类应用, 主要用于微信中分享。之前对于自己的水平是否能完成完全没底,但感觉第一次实操确实也有点让人兴奋,之前关于产品开发的印象只停留在书本上。
詹老师让本人模仿“过家家gogaga”所开发的“打电话认师姐”微信小游戏写一个类似的应用。 本人把原始应用找出来便开始抠代码, 第一步是将套在微信接口中的原始应用抠出来(套在微信接口的原始应用只能在微信浏览器中运行,无法在电脑上测试),周二开始做, 一开始本人的效率非常低, 因为本人很多测试方法并不熟悉, 在参阅了微信JS―SDK后总算把原始代码抠出来, 厘清该应用的基本逻辑后开始重写, 在詹老师的耐心地指导和对基础知识的讲解下,本人们将原始代码中120行的CSS代码优化到60行,将五百多行的JS代码优化到只有60行,这事实上是在原有的逻辑上完全重写了,这让本人开始有点成就感了。
也第一次感受到产品开发中的大局观,这种大局观更多的是体现在细节上,比如代码变量名的设置需要与文件存放联合考虑,以便日后修改和维护。 詹老师在讲代码逻辑的时候亲自写了一个例子让本人体会, 虽然消化这些用了快一天,但感觉真的收获很大, 有拔云见日之感。
实习一周后所遇到的种种困难也让本人意识到自己很多问题,归纳如下:
1、尽管之前对于书本的学习有一定积累,但还是暴露出代码的不熟练,细节方面处理能力差,在细节上耗费时间太多。
2、缺乏基本的软件开发测试思路, 比如之前不知道chrome具有相当强大的错误测试功能,它对于没有触发的函数也有错误提示。
3、 缺乏专注的习惯,比如詹老师让本人先完成功能方面,但本人却习惯于去找找界面的素材, 这就导致两边都没有做好。虽然认识上知道不该这么做,但是习惯上却很难改。
4、自己很多时候虽然有问题但是不能完全阐述清楚,所以跟leader沟通的时候往往支支吾吾,以后有问题自己首先得想清楚,将问题讲明白也是很关键的能力。
另外也记录一些自己的浅薄感受:
1、工科出身的詹老师对于代码的运行效率有很多的考虑,但对于用户体验和交互效果似乎稍微少点,当然也可能是本人新来并不了解的原因。
2、 公司在做小应用的时候并不会在用户测试和产品结构功能上讨论太多,公司要的是迭代效率, 就是要快速出应用,然后再快速上线下一个。
本周接到新的任务,为中国教育在线制作H5的招聘页面, 之前的“给师姐打电话”的H5应用还没有优化好,能做的改进的地方还有很多,leader詹老师让本人先把招聘网站做好, H5应用先放放, 他给了本人大街网做的“中国好Offer”作为参考, 拿到之后确实感觉这些页面都做得很好, 詹老师搜集的资源确实十分丰富,从实习到现在他发给本人的参考很实用,在看完了五六十个H5的招聘页面之后开始构思, 在将产品架构基本做好后,测试又发现很多问题, 有技术层面的,但更多的设计本身的问题。技术的细节的问题:基于jquery mobile的开发框架国内的资料十分有限,不得不查阅原始的英文API,很多问题也只能去JQM的论坛查找,这些都十分考验英文阅读能力。CSS的布局问题繁杂,在各个浏览器,各个应用的渲染都不一样, 也是很折磨人的过程,本人现在就碰到了css中font―weight属性在Safari没有渲染的问题,至今没有解决。
逐渐体会到前端工作的繁琐与细节, 需要学的东西很多, 有时候可以凭自己一些小聪明在当前解决,但并没有摸到问题的根源,扬汤止沸不是长久之计,但又好像没有足够的时间来系统的摸索,本人只能先将这些问题一一记下来。这些技术的体会是一方面,另一方面便是产品的设计层面, 现在就是因为产品快做好后发现有很多地方犯了低级错误, 以往的纸上谈兵头头是道,等到自己亲身实践却感到把握不住很多设计原则, 比如界面设计给用户造成的不必要的干扰, 功能可见性的不足,逻辑上的不严谨, 以下本人归纳了下岗做好的H5界面存在的交互问题:
1、页面的设计初衷是左右滑动来切换页面,但给几个朋友测试后都不能进入页面后就自然而然的知道是左右滑动。
2、join us的图标给用户是按钮的错觉,在测试中很多用户以为是按钮,都会下意识的点击。
3、交互效果的乏善可陈,与滑动的逻辑似乎也没有太大关联,只是单纯的加入了一些css3的动画。
4、用于提示左右滑动的动态箭头会让用户以为是点击作用
改进:
1、放弃join us 图标
2、改为上下滑动,箭头提示更改
3、重新设计图标摆放结构
总结: 这次的H5页面主要在于设计问题, 事先并没有完全构思好原型就急切投入到代码的编写中,这种开发方式本身是十分幼稚的!
推荐专题: 软件公司实习报告 软件开发实习报告 软件开发项目实习报告