千文网小编为你整理了多篇相关的《软件工程实践报告(5个)》,但愿对你工作学习有帮助,当然你在千文网还可以找到更多《软件工程实践报告(5个)》。
作为一个软件开发工程师(我也是一名软件开发工程师),所实在的如果每年只做那么一两个项目,年终工作总结写起来也应该得心应手的,我们只需要把本年度该项目的基本情况简历表述一下,自己在项目中的角色以及自己在项目中遇到的重点问题及解决方案描述一下,最后展望一下下一年度的工作计划,OK,本年度的工作总结基本完成。下面我给大家看一篇别人写的我认为比较好的个人年终工作总结范文:
软件开发工程师个人年终工作总结范文
20xx年2月2日,我有幸成为北京超图一员,应聘为公司的java软件工程师。入任职以来,在部门领导的带领下,自己感觉无论学习、技术、生活等方面都有很大的提升。 20xx年里我主要完成的工作有三方面:
1、荆门石油石化巡检系统的调研和开发。
该项目是我工作以来第一次涉及到调研,对我来说算是一个不小的挑战。在调研过程中,让我学会了如何通过和客户的沟通来了解客户的需求。由于自己的工作经验不足,在调研工作中体现出一些问题。不能很直接的在和客户沟通中非常准确的了解客户的更多需求,有很多需要和客户交流沟通多次才能明白客户的最终需求,也没有把自己作为最终用户并站在用户的角度上来考虑问题,这些都是我在以后的工作中需要提高和改进的地方。在巡检系统的开发工作中,让我进一步巩固和加强了自己的开发能力。
2、电信12530增值业务的开发与维护。
从5月以来我就开始接手公司的主要业务之一,12530电信增值业务。由于前面负责这个项目的同事突然离职,导致这个项目的交接工再做得不够好,对我顺利接手这个项目造成很大的困难。而刚一接手这个项目,马上就需要新上一个投票活动,并要对一些主要代码进行修改,让我倍感压力,几乎都快放弃。最后在金总的指导和鼓励下,顺利的完成这次活动。在完成这次投票活动后,为了避免下一个接手这个项目同事与我遇到同样困难,我第一时间将这个项目的相关技术文档补充完全,保证别人能够顺利的进行该项目工作。通过这个项目,让我加强了自己在高强高压下工作的能力,也让我找到更多自信。
3、襄樊、鄂州家政网络服务中心的开发与实施。
在这两个项目中,除了承担开发工作以外,也逐渐涉及到项目管理的职责,让我在个人能力上有所提高。为了这两个项目能够顺利完成,除了完成自己的工作外,还主动关心其他同事的工作完成情况。让我在项目管理和项目进度的把控能力有很大的提高。将襄樊、鄂州家政网络服务中心顺利实施,为我公司拿下湖北省其他市的家政网络服务中心奠定基础。在工作之外,我也注重个人能力的提高。工作之余,主动学习一些新技术,与同事沟通配合,搭建一个ssh的开发框架。也学习spring security知识,这些新知识的积累,对我以后的工作有很大帮助。
20xx年工作展望:
1、将学习的springsecurity整合到我们自己搭建的ssh框架,进一步完善框架。
2、利用搭建的ssh框架,开发一套oa系统平台。
3、做好襄樊、鄂州家政网络服务中心的维护工作。
4、希望公司能够大量拿下湖北省其他市的家政网络服务中心,继续开发和实施湖北省其他市的家政网络服务中心。
5、继续学习新技术,努力提高自己的个人能力。为以后能够更好,更顺利的工作奠定基础。
6、希望通过自己的进步和努力,能为公司的发展做出自己最大的贡献,体现出自己的最大价值。
1、实习目的
通过实习联系理论,从而更好的掌握所学的知识.
培养独立意识,生活能力.
2、实习内容
一、校内实习
1.讲座内容、总结
(1)讲座名称:云计算
总结:云计算事实上就是一个新的商业模式,其技术方面就是由分布式计算、并行处理和网格计算发展来的。它将计算任务分布在大量计算机构成的资源池上,使用户能够按需获取计算力、存储空间和信息服务。
中国云计算网将云定义为:云计算是分布式计算(Distributed Computing)、并行计算(Parallel Computing)和网格计算(Grid Computing)的发展,或者说是这些科学概念的商业实现。
Forrester Research的分析师James Staten定义云为:“云计算是一个具备高度扩展性和管理性并能够胜任终端用户应用软件计算基础架构的系统池”。
虽然目前云计算没有统一的定义,结合上述定义,可以总结出云计算的一些本质特征,即分布式计算和存储特性,高扩展性,用户友好性,良好的管理性。
云计算具有以下特点:
1)虚拟化技术:这是云计算最强调的特点,包括资源虚拟化和应用虚拟化。每一个应用部署的环境和物理平台是没有关系的。通过虚拟半台进行管理达到对应用进行扩展、迁移、备份,操作均通过虚拟化层次完成。
2)动态可扩展:通过动态扩展虚拟化的层次达到对应用进行扩展的目的。:可以实时将服务器加入到现有的服务器机群中,增加“云”的计算能力。
3)按需部署:用户运行不同的应用需要不同的资源和计算能力。云计算平台可以按照用户的需求部署资源和计算能力。
4)高灵活性:现在大部分的软件和硬件都对虚拟化有一定支持,各种IT资源,例如,软件、硬件、操作系统、存储网络等所有要素通过虚拟化,放在云计算虚拟资源池中进行统一管理。同时,能够兼容不同硬件厂商的产品,兼容低配置机器和外设而获得高性能计算。
5)高可靠性:虚拟化技术使得用户的应用和计算分布在不同的物理服务器上面,即使单点服务器崩溃,仍然可以通过动态扩展功能部署新的服务器作为资源和计算能力添加进来,保证应用和计算的正常运转。
6)高性价比:云计算采用虚拟资源池的方法管理所有资源,对物理资源的要求较低。可以使用廉价的PC组成云,而计算性能却可超过大型主机。
按需部署是云计算的核心。要解决好按需部署,必须解决好资源的动态可重构、监控和自动化部署等、而这些又需要以虚拟化技术、高性能存储技术、处理器技术、高速互联网技术为基础。所以云计算除了需要仔细研究其体系结构外,还要特别注意研究资源的动态可重构、自动化部署、资源监控、虚拟化技术、高性能存储技术、处理器技术等。
目前,云计算还处于起步阶段,毫无疑问云计算前景光明。它可能彻底改变用户对计算资源的使用方式,使得用户从以桌面为核心转向以Web为核心。云计算不仅仅是一个计算问题,它需要融合许多技术和成果。我们相信,随着越来越多的参与者加入到云计算的研究与发展中,云计算会出现一些新的结构模式、开发平台和应用软件,推动云计算及其应用日益走向成熟。
2.讲座内容、总结
(2)讲座名称:无线传感器网络
总结:无线传感器网络(wireless Sensor Networks,WSN)就是由大量的密集部署在监控区域的智能传感器节点构成的一种网络应用系统。由于传感器节点数量众多,部署时只能采用随机投放的方式,传感器节点的位置不能预先确定;在任意时刻,节点间通过无线信道连接,采用多跳(multi-hop)、对等(peertopeer)通信方式,自组织网络拓扑结构;传感器节点间具有很强的协同能力,通过局部的数据采集、预处理以及节点间的数据交换来完成全局任务。
1.无线传感器网络具有以下特点:
①大规模网络。为了获取精确信息,在监测区域通常部署大量传感器节点,传感器节点数量可能达到成千上万,甚至更多。通过不同空间视角获得的信息具有更大的信噪比;通过分布式处理大量采集的信息能够提高监测的精确度,降低对单个节点传感器的精度要求;大量冗余节点的存在,使得系统具有很强的容错性能;大量节点能够增大覆盖的监测区域,减少洞穴或者盲区。
②低速率。传感器网络节点,通常只需定期传输温度、湿度、压力、流量、电量等被测参数,相对而言,被测参数的数据量小,采集数据频率较低。
③低功耗。通常,传感器节点利用电池供电,且分布区域复杂、广阔,很难通过更换电池方式来补充能量,因此,要求传感器网络节点的功耗要低,传感器的体积要小。
④低成本。应用WSN时,监测区域广、传感器的节点多,且有些区域环境的地形复杂,甚至连工作人员都无法进入,一旦安装传感器则很难更换,因而要求传感器的成本低廉。
⑤短距离。为了组网和传递数据方便,两个传感器的节点之间的距离通常要求在几十米到几百米之间。
⑥高可靠。WSN的`信息获取是靠分布在监测区域内的各个传感器检测到的,如传感器本身不可靠,则其信息的传输和处理是没有任何意义的。
⑦动态性。对于复杂环境的组网,其覆盖区域往往会遇到各种电、磁环境的干扰,加之供电能量的不断损耗,易引起传感器节点故障,因此要求传感器网络具有自组网、智能化和协同感知等功能。
2.无线传感器网络在很多方面都有应用:
①军事应用。由于其具有可快速部署、自组织、隐蔽性强和高容错性的特点,因此能够实现对敌军地形和兵力布防及装备的侦察、战场的实时监视、定位攻击目标、战场评估、核攻击和生物化学攻击的监测以及搜索等功能。
②环境应用。可以用于气象和地理研究,自然和人为灾害(如洪水和火灾)的监测,监视农作物灌溉及土壤、空气变更的情况、牲畜和家禽的环境状况,以及大面积的地表检测和跟踪珍稀鸟类、动物和昆虫,进行濒危种群的研究等。
③医疗应用。可以用于检测人体的生理数据和健康状况,对医院药品进行管理以及用于远程医疗等医疗领域。
④家庭应用。嵌入家具和家电中的传感器和执行单元组成的无线网络与Internet连接在一起,能够为人们提供更加舒适、方便和具有人性化的智能家居环境。
⑤工业应用。可以用于车辆的跟踪、机械故障的诊断、工业生产的监控、建筑物状态的监测等。
⑥其他应用。在太空探索方面,可以实现对星球表面长期的监测。在商务方面,可用于物流和供应链的管理。
传感器网络是目前国内外的最新研究热点,具有广阔的应用前景,将是未来社会应用最广的网络,需要各种技术支撑。通过近几年的研究,人们对传感器网络固有特点的认识已经逐渐明确,并在相关技术方面取得了一些进展。但是,传感器网络要真正实用化,在基础层、网络层等方面还有许多基础性问题和关键技术需要解决。
总之,无线传感器网络是一门全新的技术,还有许多课题需要科技工作者坚持不懈的努力。相信在各界人士的努力之下,无线传感器网络将会呈现出一片新的局面,并且将会更好、更广的应用于各个行业,造福于社会。
3.讲座内容、总结
(3)讲座名称:嵌入式软件发展及物联网
总结:随着IT技术飞速发展,互联网已经进入了“物联网”时代。如果说,之前互联网上大量存在的设备主要是以通用计算机(像大型机、小型机、个人电脑等等)的形式出现,“物联网”的目的则是让所有的物品都具有计算机的智能但并不以通用计算机的形式出现,并把这些‘聪明’了的物品与网络连接在一起,这就需要嵌入式技术的支持。嵌入式技术是计算机技术的一种应用,该技术主要针对具体的应用特点设计专用的计算机系统——嵌入式系统。嵌入式系统是以应用为中心,以计算机技术为基础的,并且软硬件可量身订做,它适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
嵌入式技术和通用计算机技术有所不同,我们知道通用计算机多用来和人进行交互并根据人发出的指令进行工作;而嵌入式系统大多数情况下可能根据自己‘感知’到的事件自主地进行处理,所以它对时间性,可靠性要求更高。一般来说,嵌入式系统应该具有以下一些特征:专用性、可封装性、实时性、可靠性。专用性是指嵌入式系统用于特定设备完成特定任务,而不像通用计算机系统可以完成各种不同任务。可封装性指嵌入式系统一般隐藏于目标系统内部而不给操作者察觉。实时性指与外部实际事件的发生频率相比,嵌入式系统能够在可预知的时间内对事件或用户的干预做出响应。可靠性是指嵌入式系统隐藏在系统或设备中,一旦开始工作,可能长时间没有操作人员的监测和维护,因此要求它能够可靠运行。
嵌入式计算机系统同通用计算机系统相比具有以下特点:
1、嵌入式系统通常是面向特定应用的,嵌入式CPU与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,它通常都具有功耗低、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计小型化,移动能力大大增强,跟网络的耦合也越来越紧密。
2、嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
3、嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除不需要的多余功能,力争在更小的硅片面积上实现同样的性能,这样才能在具体应用中更具有竞争力。
4、嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
5、为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘等载体中。
6、嵌入式系统本身不具备自主开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套与通用计算机系统连接的开发工具和环境才能进行开发。
嵌入式的关键部分还在于核心芯片的选择,嵌入式核心芯片的特点有:
1、可扩展的处理器结构,以能最迅速地开展出满足应用的最高性能的嵌入式微处理器。
2、嵌入式微处理器必须功耗很低。
3、对实时多任务有很强的支持能力。
4、具有功能很强的存储区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区保护功能,同时也有利于软件诊断。
信息时代,数字时代使得嵌入式产品获得了巨大的发展契机,为嵌入式市场展现了美好的前景,网络化、信息化的要求随着互联网技术的成熟、带宽的提高日益提高,也使得以往单一功能的设备如电话、手机、冰箱、微波炉等功能不再单一,结构更加复杂。在不久的将来嵌入式软件及物联网会深入到我们的千家万户当中,造福我们的生活。
4.讲座内容、总结
(4)讲座名称:信息技术在造船行业的应用
总结:船舶工业是我国制造业应用计算机最早的行业之一,上个世纪70年代,我国一些大型造船厂就开始应用计算机。上个世纪80年代后期,我国船舶工业开始大规模应用二维计算机辅助设计(CAD)系统和部门级管理信息系统(MIS),随着造船CAD和MIS技术的应用,新产品开发设计周期有效缩短,造船企业现代化管理水平得到提高,造船企业初具国际竞争力。
上个世纪90年代中后期,我国造船企业根据自身的条件,引进了国外三维CAD/CAM(计算机辅助制造)软件系统,通过消化吸收实现了船舶产品的三维设计,建立了包含设计、制造与生产管理等综合信息的船舶产品数字化模型,提高了设计质量与制造管理水平,有效缩短了产品建造总周期。
从上世纪90年代末开始,国内计算机应用基础较好的船舶企业开始进行CIMS系统应用的探索和研究,信息化应用由单个系统走向系统集成,开发的软件涉及船舶设计、制造和管理等各方面,实现了制造信息共享和企业制造资源优化,为进一步实现企业信息集成奠定了基础。
在产品设计方面,集成各种工程分析与仿真软件的船舶三维设计平台已在我国绝大部分船厂建成,形成了全船船体结构、舾装、电装的三维设计能力。在船舶产品制造方面,我国先后开发了具有自主知识产权的全自动套料软件,各骨干企业先后大量引进自动化加工设备,也提高了造船生产效率。同时,各大船厂还与国内软件公司协作开发以及引进国外软件进行二次开发的方式建立了相应的造船生产计划、物流及车间作业控制等管理系统,提高了管理自动化水平。
船舶工业信息化的建设,为我国造船行业发展起到了不可低估的推动作用,截至2008年,我国造船产量已从上世纪80年代初的34.2万载重吨增加到2881万载重吨;造船份额从占世界总量的0.7%上升到29.5%;造船模式已经从传统的造船模式转变为基于总装造船的现代模式。造船效率明显提高、造船成本明显下降,具备了成为造船大国、强国的基本条件。
虽然我国造船行业信息化建设取得了较大的成果,但与先进造船强国的差距还很大。世界造船强国从计算机辅助应用(CAX)开始,由逐步实施CIMS和敏捷制造技术向虚拟企业方向发展,已经形成集船舶产品开发、设计、建造、验收、使用、维护于一体的船舶产品全寿命周期的数字化支持系统。目前,世界造船业已经进入了“数字化”造船阶段,正在研究全球化的资源优化集成,以全面数字化、模块化和网络化技术为支撑,建立基于知识密集、以模块为导向的异地并行设计、异构生产组织动态联盟的造船体系。我国造船业要想在这个未来的动态联盟中占有一席之地,就必须通过实施现代造船模式,利用数字化技术提升竞争力。
展望未来,我国造船业信息化建设将集中在以下7个方面:系统地规划数字化总装造船体系;深化数字化造船工艺研究;构造数字化造船的管理和控制体系;建立数字化造船技术规范和标准;建立造船虚拟仿真实验验证平台;开发具有自主知识产权的数字化造船软件;培养造船行业自主创新人才。
二、校外实习
市场调研报告
在假期我对今年中国计算机市场进行了调查,其中硬件市场品牌调查包括CPU、内存、硬盘、主板、显卡、显示芯片、光驱、机箱、电源、散热器等细分市场。
(1)从CPU市场上看,英特尔以53.9%的关注比例胜出。
在两大巨头的较量中,英特尔处理器最终夺得了冠军的宝座,获得53.9%的关注比例。AMD的关注度不敌英特尔,获得46.1%的关注比例。
(2)从内存市场上看,金士顿以43.3%的关注比例占据领军地位。
金士顿以高达43.3%的关注比例成为度中国市场关注度最高的内存品牌。威刚是关注度仅次于金士顿的内存品牌,获得15.5%的关注比例。其他品牌的关注比例均在8个百分点以下。可以看出,内存市场的品牌格局呈现金士顿一家独大的态势。
(3)从硬盘市场上看,希捷是领头羊,独占67.1%关注份额。
希捷是硬盘市场上的领头羊,以67.1%的关注比例坚守硬盘市场的霸主地位。日立、西部数据与三星三个品牌分列排行榜的第二至第四位,依次占据18.5%、8.3%、6.1%的关注比例。
(4)从主板市场上看,华硕、技嘉与微星包揽47.3%的关注比例。
华硕、技嘉与微星一线大厂的实力突出,关注比例合计达到47.3%。其中,华硕以25.8%的关注比例成为中国市场最受用户关注的主板品牌。另外两大一线品牌技嘉与微星分列第二和第三位,关注比例分别为11.4%和10.1%。
(5)从显卡市场上看,七彩虹、XFX讯景与影驰占据35.3%关注份额。
七彩虹、XFX讯景与影驰优势明显,占据整体市场35.3%的关注份额。其中,七彩虹成为中国市场关注度最高的显卡品牌,占据14.5%的关注比例。XFX讯景、影驰分列第二和第三位,关注比例分别为10.5%与10.3%。
(6)从光驱市场上看,“铁三角”格局彰显,三星、先锋、华硕关注比例均保持10%以上。
光驱市场的品牌格局是稳中有变,“铁三角”格局进一步彰显其中。三星以33.5%的关注比例在光驱市场遥遥领先,成为中国市场关注度最高的光驱品牌。先锋以23.8%的关注比例占据排行榜的第二位。华硕以10.9%的关注比例位居先锋之后。
(7)从机箱、电源、散热器市场上看,两强对峙的局面凸显。
在机箱市场上,金河田、多彩的优势明显,二者关注比例合计达到35.0%;在电源市场上,航嘉、长城两大品牌关注比例合计达到63.2%;散热器市场形成两强对峙的局面,Tt与酷冷至尊占据了整体市场58.2%的关注份额。
三、实习收获与体会
通过对软件工程的认识实习,我受益良多。以前一直对软件存在一些偏见或者是误解,认为软件就是程序,软件的开发就是编写程序,只要编写完了程序,就可以完成任务。但是通过认识实习,我认识到了我以前的错误,软件其实不仅仅是程序,软件开发其实也不仅仅是编写程序,软件是思想在硬件上的载体和体现,处理的是逻辑和信息。唯有对软件和软件工程的开发过程,有充分的认识,才能开发出好的软件产品。
从认识实习中我也发现,编程其实是一种乐趣与苦恼共存的创造性活动,变成不仅仅能够满足我们内心深处进行创造的渴望,还能预约我们的内心情感。
通过在认识实习中的自主学习,我知道我需要掌握如何在最小的成本中,训练自己的基本工程素质和能力,如何激发自己的积极性等,也让我明白了扎实的专业基础的重要性和团队协作能力的重要性。剧本这些能力会让我们在今后的学习和将来的工作中少走弯路。
认识实习虽然结束,软件之路才刚刚开始,也许在学习和今后的工作中会疲惫会有很多失败很多挫折,但是既然选择了这条路并且对其保持有充分的热情,就不会放弃,相信我会在软件行业走得更好,走的更远。
一、实习目的
根据所学课程的理论知识,结合企业的运营实际,掌握软件开发的一般过程,软件的生命周期和作为一个开发人员就应具备的基本潜力,并撰写实习报告。使学生进一步巩固所学理论知识,同时提高观察问题、分析问题、解决问题的潜力。
二、企业实习地点
深圳市百盛佳信息咨询有限公司
三、实习时光
20xx年12月5日――20xx年4月5日
四、实习资料
1、java软件开发
五、实习总结
在Internet飞速发展的这天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。目前系统的架构一般有c/s架构和b/s架构,但是c/s架构的应用系统,每升级一个版本,客户端都需要自我下载更新,而b/s架构不需要,因为它是基于浏览器的。因此b/s架构的应用系统,在Internet上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。
计算机将具备更多的智能成分,它将具有多种感知潜力、必须的思考与决定潜力及必须的自然语言潜力。除了带给自然的输入手段(如语音输入、手写输入)外,让人能产生身临其境感觉的各种交互设备已经出现,虚拟现实技术是这一领域发展的集中体现。这天人们谈到计算机必然地和网络联系起来,一方面孤立的未加入网络的计算机越来越难以见到,另一方面计算机的概念也被网络所扩展。二十世纪九十年代兴起的Internet在过去如火如荼地发展,其影响之广、普及之快是前所未有的。从没有一种技术能像Internet一样,剧烈地改变着我们的学习、生活和习惯方式。
全世界几乎所有国家都有计算机网络直接或间接地与Internet相连,使之成为一个全球范围的计算机互联网络。人们能够透过Internet与世界各地的其它用户自由地进行通信,可从Internet中获得各种信息。人们已充分领略到网络的魅力,Internet大大缩小了时空界限,透过网络人们能够共享计算机硬件资源、软件资源和信息资源。“网络就是计算机”的概念被事实一再证明,被世人逐步理解。
(一)、实习过程遇到的困难
1、一进入企业,就立刻被分配开发任务,我的任务是质量信息管理系统的一个功能点,PDI退改车,有新增,删除,查询,审核,统计的操作。该系统使用的是struts2springibates模式,一开始什么都不明白,oracle数据库没用过,jquery框架没有用过,ibates框架没用过。所以给我的开发带来了很大的困难。
2、在第二个项目中,我的开发任务是,一线通管理系统中的设备查询,设备修改,还有一些报表的`功能,发运环节主要异常事件,销售部工单月统计报表,储运部工单月统计报表等等,这些报表功能都需要有折线图和饼状图,还要有导出excel的功能,而我对于如何生成折线图或饼状图,如何导出excel,从未接触过,这些都是这次开发中的难点。
3、在益凌进销存系统中,也就是第三个项目,因为是刚刚开始,所以主要的任务是做设计,就是把那些业务流程图转化为静态网页。这事看起来好像不难,不就是做静态网页嘛!
当初我是这样想的!
但是到真正做的时候,就发现了其实并不是想象中的那么简单,例如,如何抽象数据字段,也就是说,别人给你一张真实的业务表,你该如何把那些有用的字段显示在你的界面上,业务流程中的每个点之间又有没有关系,这些都需要你去想的问题。初次接触,所以做起来也很棘手。
(二)、如何解决问题:
作为一个开发人员,遇到这些问题是在所难免的,因为很多技术都在不停的更新,你要不断的去学习,要有学习新知识的潜力,而且如今网络资源是如此的丰富,只要在internet上搜索一下,很多问题都会迎刃而解。
Oracle数据库简单的应用,jquery框架和ibaties框架的应用也是透过网络资源一边学习一边应用来实现我的目的的,当然也少不了跟同事的沟通。对于那个报表中用到的折线图和饼状图,我们采用了一个叫Jfreechat的框架,关于如何应用,也是从网上获取相关例子,然后经过我们的加工,就很顺利的解决了问题。透过这次,感觉收获还是挺大的。对于进销存管理系统的设计问题,我压根就什么都不懂,看了一段时光的业务流程图,还是不明白要做什么,要在网页界面上体现哪些字段,每个界面之间又有什么联系,这些都不太明白。
“这些东西要靠自我想的”,项目负责人跟我说了,之后他就跟我说了一大堆如何抽象字段,要把每个业务点的关系理清,然后再透过他们的关系抽象有用的字段。听他说了之后,恍然大悟,原先是这么一回事。之后,每次遇到不懂的,就立刻去和他沟通。完成了这些设计,我感觉我对软件开发,又有了更深的认识,同时也让我意识到沟通在软件开发中真的是一件很重要的事。
六、实习心得
经过为期4个月的专业实习,令我更深一步的了解和学习了软件开发的一般过程,不再是以前那样,都不明白软件开发是什么东西。对于一个应用系统他们为什么要那么多人来做,而这么多人一齐做,代码又是如何进行管理的。对于每一个应用系统,企业到底用到哪些技术,他们为什么要选取这些技术,我们开发人员的主要任务是什么等等,这些概念都渐渐的清晰。
人,孰能无过,过而改之,善莫大焉!
没有谁,在编写代码的过程中永远不会犯错,即使他十分的厉害,那也是从不断的犯错过程中锻炼出来的,但亦有“犯错”的时候,因为需求是不断的改变的,即使你当时没错,但需求改了之后,你的代码不贴合需求,那也是你的错。有错那当然就要调试咯,以前老是害怕出错,找不到问题所在是件令人烦恼的事。但是当调试的错误多了之后,你就会发现,每当一看到相类似的错误之后,你就会立即明白这个错误是什么原因造成的!
所以,我们不就应害怕出错,就应把调试错误当成一种提高个人潜力的方式。
对于测试人员发回来的bug我们要认真的对待,造成这种bug就证明了我们的思路还是不怎样的清晰,所以有必要再去看看相关的资料。沟通是人与人之间传递信息的途径,好的沟通能很完美的传达你的思想,你的见解。在企业中,每一个系统的开发过程一般来说都不是一个人从头做到尾的,一般都有分工的,如此一来,沟通就必不可少了,因为你要把你做的工作,你为什么这样做,告诉别人,别人才更好的去完成他的任务。
这次实习,是进行实战性工作,学到了很多东西,我相信对以后的生活和工作都有很大的帮忙。
一、 前言
xxx学院成立于20xx年x月,由xx市xx新城科教产业园、美国xxx大学软件教育培训中心以及国内领先的软件外包服务企业xxx信息技术(集团)有限公司三方共同创办, 是经由江xx省xx市教育局批准成立的高级IT人才培训学院。
学的课程和专业教育体系,结合国内领先软件服务外包企业的专业实训案例,以覆盖多领域全生命周期的IT教学与培训,为企业提供全方位国际化软件服务外包人才,为乐于从事IT行业的有识之士提供快速的职业发展通道。xxx目前已经与多家著名高等学府和国内外知名IT企业建立了长期的战略合作伙伴关系,拥有专业资深的师资团队,开创出一整套独有的人才培养方式,提供全方位多层次软件外包服务国际化专业人才解决方案,在国内软件培训行业趋于领先地位,是国内外软件领域培训交流的桥梁和窗口。
xxx学院拥有雄厚的师资力量,讲师均获得世界顶尖学府博士或硕士学位/学历,经由xxx大学软件教育培训中心的严格培训并获资质认证。讲师团队均拥有多年海外跨国公司或高端教育机构的工作经验,掌握国际IT技术最新流行趋势以及发展方向,并具有精湛的英文交流能力和深厚的专业素养,精通金融,保险,电信和高科等领域大型项目的开发和管理过程。
xxx学院引入先进的嵌入式国际化高等教育模式和行业广泛认可的软件系统开发(SSD)认证课程体系,在纯正的英语或中英文双语的教学环境中,感受美国xxx大学的系统化教学体系,并结合最新流行趋势进行实际项目演练,为来自不同层次和专业的高中毕业生、大学生以及在职IT专业人士,量身打造最先进的专业技能和职场“软技能”课程,提供全方位多层次软件外包服务国际化专业人才解决方案。学院采用全英文授课、双语辅导的模式,以美国式的教育理念,让学员体验到全生命周期的IT项目实训。学院xx小时全天候学习环境,贴近学生的一站式教学跟踪服务,零距离接触企业真实工作环境,立足培养国际一流IT人才资源的多层次技能。
xxx学院在人才输出渠道方面独具优势,目前已与多家国内外知名企业建立了战略合作关系,其中包括xx动力、xxx、xx公司、xx银行,SalesForce等著名国内IT领头企业和跨国公司,成为其人才输出基地。
xxx学院位于xx新城科教产业园,毗邻风光秀丽的xx之滨,周边知名跨国公司林立,基础设施完善齐全。学院教学面积达xxx平米,可以同时进行xxx名学员的培训,整体硬件设施一流,共设有xx多个多媒体教学计算机室和数十个会议讨论室,全天候开放以供操作演练和授课讨论。在教学区和生活区范围里,均可免费使用无线上网服务,随时随地感受高科技、多媒体教学设施带来的便捷。
立足高位,加速远航。xxx学院将以最前端教学模式,紧随日新月异的全球IT行业变革潮流,为中国软件行业培养出具备国际化专业视角的高级复合型人才。金牌品质,成就一流,加入xx学院,为腾飞助力,共创无限未来!
二、 实习目的
1.学会将理论运用在生产实践,让自己知识更加牢固,调和理论与实际的关系。
2.了解并接触良好的职业素质,恪守职责,勇于创新。
3.通过实习,参加一定的业务活动和管理实践,了解企业的管理现状/所具备的基础及存在问题,为学生毕业设计和走入社会奠定良好基础。
4.通过实习,调查、了解企业的运行机制和业务管理过程,参与企业具体管理工作,提高社会实践能力,增强调查研究,人际沟通,谋略决策,随机应变等独立工作能力与管理能力。
5.培养独立分析问题、解决问题的能力;熟练使用Android开发工具。
6.提高个人的实践能力、科研能力和解决本专业实际问题的能力。
7.培养积极的创新精神、严肃认真的科学态度和严谨求实的工作作风,增强个人综合素质以及毕业后对IT职业的适应能力。
8.培养团队合作精神。
三、 实习时间
xxx年x月x日。
四、 实习地点
xx省xx市xx区xx路xx号。
五、 实习单位和部门
xxx学院。
六、 实习内容
本次实习主要是完成一个竞赛类的项目命题,通过实际操作来提升自己的动手能力,对于尚未掌握的的技术则采用“即用即学,现学现用”的方式。
项目名称:xxx 项目性质:校园综合类应用。
项目背景:经调查问卷发现,大学生并非满足于现今的生活方式,存在各种各样的问题。首先是新生,对于不熟悉的大学,需要开学志愿者指引,造成大量人力物力的浪费,于是我们设计入学导航,便捷的导航说明,简单的路线,直接指引新生认识校园,减少学校劳力。对于老生,我们发现,他们容易忘记课程,我们设计了课程辅助的模块,提供课表和作业资料等的辅助。很多人喜欢把食堂菜带回宿舍吃,原因食堂太挤,有许多人因为排队太长而不吃饭,所以我们开发点餐系统,随时随地点外卖,省却排队的时间。由于我们院特有志愿服务,为此,我们特意开发志愿者系统,可以联系需要志愿服务的老师,签订志愿服务。
项目开发采取团队写作方式,我负责编写其中的点餐模块。
20xx年11月28日,我怀着提高并实现自我价值的心态,跨进E软件技术有限公司的大门,开始了自己第一份实习工作。这是一家国内知名的专业软件外包企 业,在深圳华南地区位居行业前列。易软自开始从事软件外包业务以来,服务合作模式从人力资源外包发展到项目外包、离岸开发和OEM产品合作等模式。业务领 域包括电信业,金融业,制造业等。特别在电信行业有多年积累,在电信业务领域涉及固网,智能网、移动通信、光网络,电信增值服务等业务领域。易软公司总部 设在深圳, 在上海、南京、北京,广州,重庆,苏州,武汉,大连等地建立了分公司或办事处,就近为客户提供外包服务。
转眼间,三个月实习 时间就过去了。回想起这段时间的工作过程,我从一名普通的大学生到一个为社会服务的软件测试人员,思想觉悟有了很大的提高,作为一个刚刚步入企业的年轻人 来说,什么都不懂,没有任何实践经验,不过在各位同事的帮助下,我很快的融入到了这个新环境,还学到了很多在学校学不到的东西,也认识到了自己很多的不 足,感觉受益匪浅。以下是我在这几个月实习期间对工作的总结以及一些自己的心得体会。
要想成为好的测试人员,首先得了解自己要测试的软件 的相关知识。要了解软件产品的架构是什么样的。要了解软件的市场需求,在接触软件之初要可以多看看用户的反馈信息,这些才是用户最关心的,也是在测试中需 要注意的问题,满足客户是最大的需要。但是了解软件需求之后要学会要多读些软件系统的技术文档,软件设计文档,这些文档可以帮助了解产品如何工作。还有多 看看公司 Bug 库中的问题,这些存在的问题可以帮助自己了解软件产品那些地方存在缺陷,软件系统那些地方会出现错误。软件是运行在一个大环境中,如果对系统不熟悉,那么 有些问题你不能从一个更广阔的层面考虑,学习操作系统的知识,有助于你发现缺陷,定位问题更加准确。比如软件运行在 Windows 或者 Linux ,如果不懂操作系统,你就无法建立测试环境,有些时候时候软件的组件发生问题,就是自己系统配置造成的,对系统不熟悉,会把外在原因归结为软件本身。所以 要学习关于和软件系统相关的知识,比如编程,网络,数据库等。不一定要学习到多好的程度,只是通过这些扩展的知识面,可以在发现问题,解决问题上不会局限 在狭小的圈子里。
和一切相关的人员交流,不同的交流渠道,获取消息是不同的,角度也不同。和客户交流,会在测试中从客户的角度发现问题;和开发人员交流,会了解开发人员怎么实现软件功能的;和项目管理人员交流,会知道开发进度以及遇到的困难。
在这实习期间,我就参与了一个项目,这对我在软件测试方面有了一定的认识和需要注意的地方。
在滕邦国际的项目中,我主要负责的是wap网站、Symbian客户端和后台管理系统,对有关用户界面的测试和测试执行流程有了一定的了解,学会了对bug管理工具Bugzilla的使用。
一、有关用户界面的测试
1、图形测试
图形包括图片、动画、边框、颜色、字体、背景、按钮等。
(1) 要确保图形有明确的用途,应用系统的图片尺寸要合理,并且要能清楚的说明某件事情,一般都链接到某个具体的页面。如在滕邦项目中,wap网站跟客户端的标志图形就不一样,酒店模块、机票模块和旅游模块的图片也是不同的。
(2)验证所有页面字体的风格是否一致。
(3)背景颜色与字体颜色和背景色相搭配。如本项目以该企业颜色为主。
2、内容测试
内容测试用来检验应用系统提供信息的正确性、准确性和相关性。信息的正确性是指信息是可靠的还是误传的。信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web站点中的所谓"相关文章列表"。
如在滕邦项目中,在查询机票的时候出现一个不应存在奥林匹克航空,查询机票深圳―北京时,出现美国联合航空 UA,属于国际票务,也是不应该查询到的。
3、整体界面测试
整体界面是指整个 应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?
整个应用系统的设计风格是否一致?
在滕邦国际项目中,除了wap网站外,还有Symbian、Android、WinMobile三个客户端,所以在事先没有标准的情况下,各个平台的导航不统一,各关键字段也不一致。
二、bug管理
1、在进行测试前,首先必须理解业务和需求。需求和业务理解了,才知道客户想要系统实现什么。然后按照需求来进行测试,不满足需求要求的.都可以认为是BUG。
2、和开发人员沟通。这里说的沟通并不仅仅指通过沟通试图让开发人员修改每个BUG,这个当然需要沟通,但是并不是指所有的BUG都需要修改,这中间涉及到成 本、技术,还有别的问题。除此之外,通过和开发人员搞好关系,对于BUG我们可以问他发生该BUG的原因,修改的大致方法,甚至不修改的原因等等,这有助 于以后测试中多注意、多发现这样的问题,甚至提出修改建议。
如在Symbian客户端测试中,会出现“内存不足,请关闭一些应用程序后再试”的警告,是属于正常现象。
3、决定BUG严重性的时候,可以根据该被测对象在整个系统中充当的角色,实现的功能来判定如果该对象出现错误会对整个系统产生什么样的影响,对产生的影响打 分,从而定义BUG的严重程度;决定BUG优先级的时候,可以先假设不修复该BUG,出现的这些问题会产生哪些影响,然后判定这些影响的严重性来判定 BUG的优先性。
如在项目中,旅游模块页面中,时自动退出系统,本是属于High单,而我提的是Medium单。
4、容易产生BUG的情况:虽然在开发过程中,软件需求通常都会发生改动,所以如果某一部分的软件需求频繁发生变动,那么就会导致和这部分相关的编码和设计会相应的频繁变动,那么在测试中,这部分编码设计实现的部分出现BUG的可能性就很大。
如果在开发的过程中,大量使用了第三方的组件,或者从别的软件中移植了大量的代码,那么和这些第三方的组件和代码相关部分出现BUG的可能性就很大。
软件工程(SE)
软件是计算机系统中与硬件相互依存的另一部分,它包括程序、相关数据及其说明文档。软件工程(Software Engineering,简称为SE)是针对软件这一具有特殊性质的产品的工程化方法。SE涵盖了软件生命周期的所有阶段,并提供了一整套工程化的方法,来指导软件人员的工作。任何事物都是从无到有的,软件当然也不例外。上世纪中期,软件产业从零开始起步,经过半个多世纪的发展,其大致经历的3个阶段:程序设计阶段、软件设计阶段和软件工程时代,现已成为推动人类社会发展的龙头产业,随着信息化时代的发展,软件对人类社会也将越看来越重要。人们对软件的认识自然经历了一个由浅入深的过程,在得到巨大需求的同时,也遇到了一系列严重问题,即软件危机。所谓软件危机,是指在计算机软件的开发和维护过程中所遇到的一些严重问题,其实质是软件产品的供应赶不上需求的增长。概括的说包含两方面的问题:
一、如何开发软件,以满足不断增长,日趋复杂的要求;
二、如何维护数量不断膨胀的软件产品。为研究和解决软件危机,一门新兴的学科——软件工程,应运而生。
软件工程的概念是为了有效地控制软件危机的发生而被提出来的,它的中心目标就是把软件作为一种物理的工业产品来开发,要求“采用工程化的原理与方法对软件进行计划、开发和维护”,它的主要对象是大型软件,它的最终目的是摆脱手工生产软件的现状,逐步实现软件开发和维护的自动化。软件工程的概念自提出来后,经过几
十年的发展,虽然软件危机没有得到彻底的解决,但在软件开发方法和技术方面已经有了很大的进步,提出了软件工程知识体系、软件工程三段论、软件工程生存期模型、服用原则等等。
软件开发过程大致经过7个阶段:可行性分析、需求分析、概要设计、详细设计、编码、测试、提交与维护。接下来逐一分析本人见解:
一、可行性分析:顾名思义,就是看项目究竟“能不能做”。有3个方面:技术可行性、经济可行性和操作可行性。要确定项目,首先要客观的、科学的了解项目的规模、难度和时间限制,才可以确定应该投入多少人力、物力和财力去做这个项目,必须准确的估计项目的规模与难度。看项目是否有价值去做,如果没有价值,就放弃;如果有价值,就要看目前的资源是否能满足项目的开发。如果项目有价值,且有必需的资源,那么就可以确定能做这个项目了。
二、需求分析阶段:解决“做什么、不做什么”的问题。围绕两个核心问题开展需求分析:应该了解什么?通过什么方式去了解?
一、了解什么:应该先了解宏观的问题,再了解细节的问题。最好为每个需求注释“为什么”,这样可以让程序员了解需求的本质,以便选用最合适的技术来实现此需求。同时,需求说明不可有额二义性,更不能前后矛盾,如果有二义性货前后相矛盾,则要重新分析此需求。然后,选择合适的生存周期,建立合适的需求模型;
二、通过什么方式去了解:直接与客户交谈;有些需求客户讲不清楚,分析人员又猜不透,这是就要请教行家。需求分析是非常重要的阶段,如果做不好 的话,后果很麻烦。
三、概要设计:解决“怎么做”的问题。将需求描述的“做什么”问题变为一个实施方案的创造性过程,使得整个项目在逻辑上和物理上能够得意实现。概要设计是第一个开发活动,也是最重要的活动,是软件项目实现的关键阶段。设计质量的高低直接决定了软件项目的成败,缺乏或者没有软件设计的过程会产生一个不稳定的、甚至是失败的软件系统。一个良好的软件设计是进行快速软件开发的根本,没有良好的设计,会将时间花在不断的调试上,无法添加新功能,修改时间越来越长,随着给程序打上一个有一个的补丁,新的功能需要更多的代码实现,就变成一个恶性循环了。概要设计是软件设计级别中的高级设计,是从需求出发,描述了总体上系统架构应该包含的要素。概要设计尽可能模块化,因此描述了各个模块之间的关联,主要是根据需求规格或规格定义,合理、有效地实现产品规格中定义的各项需求,完成软件模块的划分并描述模块之间的关系,并不断分解系统模块,从高层分解到低层分解。它注重框架设计、总体结构设计、数据库设计、接口设计、网络环境设计等,将产品分割成一些可以独立设计和实现的部分并保证各个部分可以和谐的工作。此过程中画数据流图、IPO图、E-R图、界面设计等。
四、详细设计:解决“具体做什么”的问题,将解决问题的办法进行具体化。软件设计的低级设计,亦即详细设计,主要描述实现各个模块的算法和数据结构以及用特定计算机语言实现的初步描述,是针对程序开发部分来说的,但这个阶段不是真正编写程序,而是设计
出程序的详细规格说明,这种规格说明类似于其他工程领域中工程师经常使用的工程蓝图,程序员根据其中所包含的必要的细节写出实际的程序代码。用另一种方式说就是,详细设计是将概要设计的框架内容具体化、明细化,将概要设计转化为 可以操作的软件模型,但在实际项目进行过程中,依据项目的具体情况和项目要求,这个过程可能可以省略(逻辑上没有省略,表现在概要设计阶段或者编码阶段),直接按照概要设计进行编码;不过,个人认为最好有,有详细设计可以更好的保证编码顺利的进行,可以预先扫清编码过程中的障碍,提高代码的质量和编码的效率。主要包括模块描述、算法描述、数据描述,可以采用图形、表格或者文字描述等方式表达出来。
五、编码:实现项目。由项目的概要设计和详细设计,将设计变为代码需要通过编码过程来完成。实现设计有很多种选择,有很多实现语言、工具等可供选择,但一般而言,在设计中会直接或间接地确定了实现语言。编码过程的一个主要标准时变成与设计的对应性和统一性。如果编码没有按设计的要求进行,设计就失去意义了。设计过程中的算法、功能、接口、数据结构都应该在编码过程中体现。如果需求发生变更,设计业对应地发生变更,同时代码也应该一致地发生变更,这可以通过配置管理配置控制。可见,如果编码和设计不一致,很容易“跑偏”,走火入魔。编码时要严格遵循编码标准和规范,并提供必要的程序注释,增加可读性。另一个就是重构的理解,所谓重构是对软件内部的一种调整,目的是在不改变软件基本功能和性能的前提下,提高其可理解性,降低成本,当添加功能、修改代码和复查
代码的时候,更不要错过重构,另外,重构可以和设计互补。还有一点值得注意,要在必要的时候部署编码文档。
六、测试:看软件是否符合标准。软件编码完成之后,将软件提交给用户之前,需要对软件进行测试,这是保证软件产品质量的一个重要标准,也是评估产品质量的主要手段。软件测试是从软件工程中演化出来的一个分支,有着非常广泛的内容,并且随着软件产业的发展,它已经变得越来越重要。软件与生俱来就可能存在缺陷,为了防止和减少这些可能存在的缺陷,进行软件测试是有必要的,测试是最有效的的排错和防止缺陷和故障的手段。最原始的测试莫过于直接运行软件了,后来测试手段逐渐多样化。测试手段有静态测试、动态测试面向对象的测试、自动化测试等等之分。静态测试或称静态分析是指一种不通过执行程序来进行测试的一种技术,主要是检查软件的表示和描述是否一致,覆盖程序的编码格式、程序语法、检查独立语句的结构和使用等,主要包括代码检查、静态结构分析、代码质量等等,可以通过人工进行,亦可借助工具(如:语法分析器)自动进行。动态测试是运行被测试的程序,通过输入测试用例,对其运行情况进行分析,以达到检测的目的,显然动态测试封像我们通常意义上的“测试”。动态测试主要包括白盒测试、黑盒测试、灰盒测试(介于黑盒和白盒之间)。其他测试不再一一介绍。
七、提交与维护:测试完之后,就要把软件交给用户使用了。提交不是剪裁,给人家就行了,还要教会客户怎么使用这个系统。如果用户不会使用系统,就会不满意系统的性能,那之前的努力就白费了,打水漂了。为了保证成功地将我们开发的软件提交给用户,我们需要对用户进行培训,同时提交必要的文档及用户手册软件。维护就不用多说了,就是售后服务了。维护需要分析人员、编码人员和设计人员等角色的参与,有纠错行维护、适应性维护、完善性维护、预防性维护等。维护后,要写软件维护过程文档,至少提交一个软件维护记录。
以上是软件工程及其几个阶段的介绍,知道怎样开发软件只是软件工程的一部分,搞好团队合作也是很重要的。项目是一个很大的工程,需要一个团队的统筹规划,团结协作,集思广益,举一反三,才能够按预期完成。
推荐专题: 软件公司实习报告 土木工程实习报告 软件工程实践报告(5个)