软件开发部软件开发工程师毕业实习报告(精选7篇)
1.软件开发部软件开发工程师毕业实习报告 篇一
软件开发实习生毕业实习报告
学
院:物理与信息工程
专
业:物联网工程
姓
名:陈xx
学
号:
11XX02
实习单位:xxxx时代教育科技有限公司
实习时间:XX.7.13-XX.9.26
实习单位(全称)
xxxx时代教育科技有限公司
邮编
xx
实习单位地址
xx
电话
xx
实习单位指导
教师姓名
邱xx
邮箱
xx
联系电话
xx
实习岗位
c++软件开发实习生
实习内容
xxxx时代教育科技有限公司是xx集团旗下的一家子公司。主要从事教育行业的子公司,特别是中高职物联网教育这一块。公司位于福建省福州市马尾区儒江西路1号xx科技园区。公司内部工作氛围好工作相对轻松。我在公司的岗位是c++软件开发实习生。主要完成公司中一些关于c++软件的开发与程序的完善修改的工作。由于我所属的开发部没有专门的c++软件工程师,所以经理让产品部的工程师作为我的导师,这让我的工作难度大于其他的实习生。在公司期间我搭建了“智慧城市”物联网系统、嵌入式冷链系统的修改,以及帮助修改51驱动和newlab51部分书籍的排版。
1、“智慧城市”物联网系统。主要是测试的工作,目的测试这套系统功能的完整性。结果我们顺利地搭建好了这套实验设备,并完成了功能的测试。我感觉自己完成的很好,挺开心的。
2、嵌入式冷链系统的修改完善。要求:
1、了解这套系统;
2、学会neat和microsoftvisualstudio的开发环境的搭建和开发;
3、对嵌入式冷链系统程序的烧写;
5、对嵌入式冷链系统进行修改;
5、按照不同要求进行功能的完善。完成情况:我完成了前面4项,最后的功能完善是由其他同事进行的。对这套陌生的系统进行修改完善对我来说有一定的难度,他不但要求我要了解硬件,还要熟练的c++编程技术并且还要学会xx自己开发的neat开发平台涉及的知识面很广不过我还是很开心自己能完成这么多,但是我明白我不过努力不然自己一定可以完成这套系统的所有工作的。
3、以及帮助修改51驱动和newlab51部分书籍的排版。排版由我完成,但是驱动部分我只测试修改了一部分,另外的交接给新同事做了。
自我评价
总体上前期中期的表现还不错,但是自己还可以更加努力的工作把事情做得更好。后期由于学校事务,参加招聘会等事和公司外聘的编书老师那边协调不好,最终没把握好时间问题,这是自己在未来工作中要非常主义的一点。
实习过程
第一周:XX.7.13-XX.7.17
任务要求:1.neat开发平台的搭建
2.熟悉嵌入式冷链系统
任务进度:1.完成对neat开发平台的搭建
2.完成熟悉嵌入式冷链系统
出勤情况:全勤
第二周:XX.7.20-XX.7.24
任务要求:1.搭建“智慧城市”物联网系统
2.烧写嵌入式冷链系统
任务进度:1.完成搭建“智慧城市”物联网系统
2.未成烧写嵌入式冷链系统
出勤情况:全勤
第三周:XX.7.27-XX.7.31
任务要求:1.熟悉linux系统
2.烧写嵌入式冷链系统
任务进度:1.完成熟悉linux系统
2.完成烧写嵌入式冷链系统
出勤情况:全勤
第四周:XX.8.3-XX.8.7
任务要求:1.学习neat编程和巩固c++基础知识
任务进度:1.完成学习neat编程和巩固c++基础知识
出勤情况:全勤
第五周:XX.8.10-XX.8.14
任务要求:1.学习neat编程和巩固c++基础知识
2、修改嵌入式冷链系统
任务进度:1.学习neat编程和巩固c++基础知识
2.完成修改嵌入式冷链系统
出勤情况:全勤
第六周:XX.8.17-XX.8.21
任务要求:1.修改嵌入式冷链系统
任务进度:1.完成修改嵌入式冷链系统50%
出勤情况:请假1天
第七周:XX.8.24-XX.8.28
任务要求:1.修改嵌入式冷链系统
任务进度:1.完成修改嵌入式冷链系统80%
出勤情况:请假2天
第八周:XX.8.31-XX.9.4
任务要求:1.修改嵌入式冷链系统
任务进度:1.完成修改嵌入式冷链系统
出勤情况:请假2天
第九周:XX.9.7-XX.9.11
任务要求:1.掌握newlab系统的使用
2.完成51单片机实验
任务进度:1.完成掌握newlab系统的使用
2.完成51单片机实验10%
出钱情况:全勤
第十周:XX.9.14-XX.9.18
任务要求:1.排版51单片机实验手册
2、完成51单片机实验
任务进度:1.排版51单片机实验手册30%
2.完成51单片机实验30%
出勤情况:请假1天
第十一周:XX.8.20-XX.9.25
任务要求:1.排版51单片机实验手册60%
2、完成51单片机实验
任务进度:1.排版51单片机实验手册60%
2.完成51单片机实验60%
出勤情况:请假1天
实习中存在的问题
实习中存在的主要问题:主要是接触的东西是比较陌生的,许多知识网上没有都需要请教导师等人,而导师相对比较忙,一直不怎么有空,对我这一块的东西了解也是半桶水。我问问题的人太多大家给的信息量大且乱我没有很好地分清及时的分清信息的正误,做好规划导致最后的进度偏慢。
实习总结
每件事的规划很重要,导师虽然忙但我们作为学生要积极抓导师空余时间与导师沟通,谦虚好学这样才能最好最快的完成任务。
2.软件开发部软件开发工程师毕业实习报告 篇二
随着软件规模的不断扩大, 应用领域的不断扩展, 软件开发的前期工作变得越来越重要, 软件需求开发是软件开发的第一步, 同时也是决定性的关键工作。目前, 80%以上项目失败的根本原因是需求不清楚, 最终导致产品的反复修改, 需求开发阶段隐藏的Bug会随着后续阶段工作的开展, 相应的Bug数会出现倍增效应, 因此, 需求分析是否彻底与成功直接影响到软件开发的质量。需求开发的目的在于产出并分析客户、软件产品及产品组件的需求, 这些需求明确相关干系人的需要, 包括与产品生命周期各阶段及产品属性有关的需要, 也包括选择某设计解决方案而产生的约束限制条件等。需求开发一般包括需求的获取与分析、需求确认、编写文档等阶段, 本文将从以上几个方面分别阐述, 重点讲述在工程实践中编写需求文档时客户需求与产品需求的区别与方法[1,2,3]。
2 需求的获取与分析[4,7,8]
需求获取是通过调研, 获取清晰、准确的需求信息。获取需求是软件开发中最困难、最关键、最易出错及最需要交流的工作, 需求的获取只有通过与客户有效的合作才能成功, 对需求问题要进行全面考察, 不仅要考虑问题的功能需求方面, 也要考虑其非功能需求方面。需求获取是一个高度合作的活动, 并不是客户需求的简单拷贝。
分析需求的过程既是通过识别开发场景建立并维护必要的功能定义, 分析需求项以确保其是否必要和充分, 其过程包括:
分析干系人的需要、期望、限制及外部接口, 以移除矛盾, 并总结成相关主题;
分析衍生需求, 以决定是否满足更高层需求的目标;
分析需求以确保其是完整、可行、可实现及可验证的;
识别对成本、进度、功能、风险或绩效有重大影响的关键需求;
分析操作观念及场景, 以调整客户需要、限制及接口, 并发现新的需求;
简单地说需求分析过程最终确定的是对目标系统的综合要求, 并提出这些需求的实现条件, 以及应达到的标准, 也就是解决要求所开发的软件要做什么, 做到什么程度。
客户需求和产品需求因需求的基础不同, 获取和分析的方式也各不相同。
2.1 客户需求
开发客户需求是指收集干系人 (例如:客户、最终使用者、供应商、配置人员、测试人员等) 的需要、期望、限制及接口, 并转换成客户需求, 用于产品需求的开发, 获取客户需求的方法包括:
诱导, 诱导技术包括有技术展示、问卷调查、访谈、操作审查、原型和模型、头脑风暴、试用版本的试用、使用案例等, 诱导要积极识别尚未经客户明确提出的新增需求, 这些需求来源一般包括有经营策略、标准、环境要求、技术、现有产品或产品组件 (可复用产品组件) ;
收集关键人员的需要;
转化关键人员需要、期望为客户需求, 把相关干系人的各种输入, 经过合并, 确保无遗漏的信息, 以及解决冲突等过程, 并记录为客户需求, 获取的客户需求还包括与验证和确认有关的需要、期望和限制。
在实践中, 需求开发工作者经常会忽略执行验证和执行确认时的客户限制, 造成后期验证阶段还要进行需求的重大变更, 给项目的进度、成本等带来很大的损失, 为确保需求开发的充分性, 所有与产品生命周期相关的过程都应考虑, 并及时地进行决策。另外一些客户的隐形需求经常被忽略, 善于去引导客户, 发现其潜在的隐性需求也会规避很多的需求变更。
2.2 产品需求
开发产品需求是指在客户需求的基础上, 进行进一步的细化分析, 并衍生成更精确的需求, 用于产品开发, 其过程包括:
建立产品与产品组件需求, 以客户需求为基础, 建立并维护产品组件需求;
强调对客户、经营、项目目标以及相关属性的满足, 同时产品需求还应分析是否存在因设计决策引入的衍生需求;
识别接口需求, 即定义功能之间 (或对象之间) 的接口, 必须识别产品和产品组件的内部接口和外部接口 (例如:功能分割或对象之间的接口) 、开发已识别的界面需求等。
衍生需求是经常容易被忽略考虑的, 而技术的选用必定会引进其他的衍生需求, 衍生需求考虑是否充分会直接影响到后期的产品开发进度。
在实践中, 需求开发人员经常会把用户需求和产品需求混为一谈, 而实际上两者是有实质的不同, 一是客户需求是以客户术语的形式表示, 且以较不具技术的方式描述, 产品需求则是以专业术语的方式表示这些客户需求, 以用来进行设计的决策, 二是用户需求是软件产品确认的依据, 而产品需求则是软件验证的依据。
3 确认需求[5,6]
确认需求一方面是为了保证需求符合客户的期望, 没有冲突和二义性, 二是为了需求得到各方面的同意, 以保证需求在项目过程中顺利进行。确认需求包括的方法有:
分析需求以识别最终产品是否存在不能在使用者环境下运行的风险;
以产品展示的方式 (如:原型、仿真、模型等) 获得相关需求人员的反馈, 以确保需求的足够性和完整性;
当设计成熟时, 在需求确认环境下进行设计的评价和度量, 以确定偏差, 并找出未说明的需要和客户需求。
确认需求的环节决不能省略, 通过需求的确认环节, 进一步确认需求是否满足相关干系人的需要和期望, 最大程度地减少需求变更。
4 需求文档
需求开发的最终成果是将获取并确认的需求文档化, 需求文档不仅是系统测试和用户文档的基础, 也是设计和编码的基础, 作为产品需求的最终结果必须具有综合性, 且包含所有的需求项。
5 需求开发的工程实践
在工程实践中, 参照CMMI模型RD过程域, 结合本企业实际开发的情况, 在定义产品生命周期时, 将需求分析定义在两个阶段进行, 即用户需求分析阶段和方案设计阶段, 产出的成果物分别是软件技术规格书和软件需求分析说明书, 这两个成果物在软件开发V模型的对应位置如图1的虚线框所示。
5.1 软件技术规格书
软件技术规格书是依据输入的用户需求相关文件, 对项目产品的用户需求进行分析。
通过既有的产品原型向用户进行演示与需求讲解, 以获得对需求的确认;建立需求跟踪矩阵, 对分解出的用户需求开始进行纵向、横向跟踪。
技术规格书内容包括软件的功能要求、性能要求、接口要求、RAMS要求、使用条件、验证测试要求、兼容性要求、服务培训要求等。
5.2 软件需求分析说明书
软件需求分析说明书是依据软件技术规格书, 对软件需求进行分析和分解。
对操作逻辑相关需求, 编制软件操作说明, 对有显示界面相关需求的编制软件用户界面说明。
软件需求分析说明书的内容包括功能需求、数据流程图、软件界面简略图、操作说明、状态迁移、软硬件接口、RAMS要求、约束条件等。
软件需求分析的目的是详细界定待开发软件的边界, 从而可以进行下一步工作——软件结构设计, 对于一个典型的单CPU上的全部软件来说, 边界如图2所示。
软件需求是进行软件验证的依据, 为便于软件验证, 需求分析说明书中的内容一定要具有可验证性, 对于软件需求分析说明书的不同部分, 可验证性的要求也是不同的, 详细的情况如下:
1) 用户界面
达到可以作为使用手册使用的程度;
定义出具体的每个界面和界面间迁移的事件;
定义出每个界面中控件的颜色、大小等详细信息。
2) 功能需求
定义出每个功能的使用过程和计算公式。
3) 状态迁移
明确每个状态及状态迁移的事件、时间等。
4) 可用性、可靠性、可维护性、安全性
定义具体的方法或者度量的指标。
5) 操作说明
定义硬件控制寄存器的具体参数;
定义硬件端口输出和输入波形。
6) 硬件信息、硬件接口
定义硬件的接口类型和数量。
7) 通信协议
定义协议的名称、格式、内容等。
5.3 技术规格书与需求分析说明书的异同点
在开发过程中, 若是纯软件立项的项目则通过用户需求分析总结出软件技术规格书, 若软件属于某系统或部件的附属产品否则是由系统、部件的开发人员出具软件技术规格书, 软件开发人员再依据软件技术规格书进行软件需求分析, 编写出软件需求分析说明书。
这两个文档在开发过程中的作用是不一样的, 不能够省略任何一个, 也不能互相替代, 其主要的区别是:
1) 软件技术规格书是从客户的业务角度出发;
软件需求分析说明书是从实现产品的技术出发。
2) 软件技术规格书是使用客户术语进行描述;
软件需求分析说明书是使用软件技术术语进行描述。
3) 软件技术规格书是基于客户环境和水平;
软件需求分析说明书是基于业界主流的环境和发展。
4) 技术规格书指导用户验证;
软件需求分析说明书指导软件验证。
下面以性能要求和RAMS要求为例具体说明其编写方法的不同。
1) 性能需求
软件技术规格书示例:系统能够快速启动;
软件需求分析说明书示例:系统启动时间<10s。
2) RAMS要求包括可用性、可靠性、可维护性、安全性。
(1) 可用性需求:描述软件使用上的便利性要求, 仅仅考虑软件使用上的要求, 而不是结构上的要求。
软件技术规格书:软件要方便操作和使用。
软件需求分析说明书:提供API编程参考手册、允许二次开发应用人员配置硬件端口 (针对平台软件) ;可以进行必要的参数配置 (针对嵌入式产品软件) ;提供用户手册和安装说明 (针对PC软件) 。
(2) 可靠性需求:描述软件使用上的稳定性要求。
软件技术规格书:平均无故障时间为1万h。
软件需求分析说明书:软件验证缺陷率=0.1个缺陷/KLOC
(3) 可维护性需求:描述软件使用时升级和诊断的恢复要求。
软件技术规格书:软件要便于维护, 可通过以太网或串口下载和上传文件。
软件需求分析说明书:通过LOG文件进行故障记录、出现故障时, 把故障码发送到显示器显示, 允许通过U盘更新程序 (针对嵌入式软件) , 用户可以进行数据库备份和恢复功能 (针对PC软件) 。
(4) 安全性要求:描述软件使用时保密和防范生命财产损失的要求。
软件技术规格书:软件要有一定的安全防护考虑。
软件需求分析说明书:一个部件发生故障是通过软件进行隔离;更新程序时输入密码;按照适用人员级别不同允许使用不同的功能。
6 结论
需求开发模型与企业实际业务目标的结合, 可有效地帮助企业规范需求开发流程。
提高需求开发的效率, 减少需求文档的矛盾与冲突, 便于软件的测试验证, 从而实现了软件产品质量的提高。本文介绍的方法是笔者在实际工作中得到的一些过程经验, 鉴于CMMI模型的理念是不断地进行过程改进, 需求开发过程还需要同企业的快速发展而不断地进行改进和优化。
参考文献
[1]陈宏烨, 赵文刚.基于软件开发的需求开发及需求管理[J].甘肃科技, 2008, 24 (2) :31-34.
[2]刘家雷.评述需求工程及其验证[J].和田师范专科学校学报, 2006, 26 (4) :170-171.
[3]黄怡强, 郭钦祥, 等.浅谈软件开发需求分析阶段的主要任务[J].中山大学学报论丛, 2002, 22 (1) :262-265.
[4]何新贵.软件能力成熟度模型CMM的框架与内容[J].计算机应用, 2001, 21 (3) :2-4.
[5]杨海平, 黄会民.软件开发需求工程研究[J].信阳农业高等专科学校学报, 2005, 15 (1) :44-45.
[6]王玲.软件项目中的需求开发和管理[J].长沙通信职业技术学院学报, 2005, 4 (2) :63-67.
[7]杨一平.现代软件工程技术与CMM的融合[M].北京:人民邮电出版社, 2002.
3.软件开发部软件开发工程师毕业实习报告 篇三
摘要:随着信息技术在教学应用的深入,教学软件的需求量不断增长。由于开发团队及开发方法的不足,导致教学软件不但质量良莠不齐、开发成本过高、开发周期过长,而且会出现重复开发、使用困难等问题。而基于软件工程开发模式,可以缓解教学软件危机,降低开发成本,提高软件开发成功率。
关键词:软件工程教学软件软件危机开发模式
0引言
随着计算机技术在教育领域的深入应用,教学软件的需求量不断增长,虽然理论上教学软件的应用可以降低教师的工作量,提高教学质量,但实质上,教学软件的消费比低、应用范围窄、灵活性差、重复开发严重,不能满足当前日益增长的教学软件的需求。这些问题可称之为“教学软件危机”。该危机的出现是因为没有正确的开发理念所造成的,要消除这些危机,就要有正确的软件开发方法和开发模式。结合软件工程学和已有的软件开发经验,我们可以从中探索出一种基于软件工程的教学软件开发模式,这种模式可以缓解教学软件危机,降低开发成本,提高软件开发的成功率和产出率。
1软件工程的基本理论
软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
软件危机是指在计算机软件的开发和维护过程中所遇一系列严重问题。包括如何开发软件以满足对日益增长的需求和如何维护数量不断膨胀的已有软件。
软件工程借助工程的理论来指导软件开发,大量软件开发实例证明了采用软件工程方法进行开发,可以消除或缓解软件危机,提高软件开发的成功率和产出率。
软件方法学中使用最广的是传统方法学和面向对象方法学。不管采用何种软件方法学,在软件开发中都包括问题定义,可行性研究、需求分析、软件设计、编码和单元测试、
综合测试软件维护这几个阶段。问题定义是弄清楚“要解决的问题是什么”。可行性分析是对所定义问题是否有可行通得过的解决方法。需求分析是准确地描述目标系统必须做什么,是发现、求精、建模、规格说明和复审的过程。软件设计又分概要设计和详细设计。概要设计是以比较抽象概括的方式提出解决的方法,详细设计就是把解法具体化。编码和单元测试是写出正确的容易理解、容易维护的程序模块。综合测试是通过各种类型的测试使软件达到预定的要求。软件维护是通过各种必要的活动使系统持久满足用户的需求。
2基于软件工程的教学教学软件开发过程
教学软件也是软件,因此软件工程的开发理论同样适用,考虑其特殊性,我们必须同时结合教育学和心理学的理论进行开发。借助软件工程成功的开发经验,我们把教学软件的开发分为一下几个阶段:
2.1问题定义开发者首先弄清楚要解决什么问题,即为什么要这个教学软件和要达到的目标。比如开发《C语言程序设计》这一门课的教学软件,这门课目前教学主用教室板书和上机练习,或用零散的课件和实例进行教学。在教室板书容量少,有些知识也讲不清楚;采用零散的课件和实例教学要好些,但是由于课件零散,缺乏整体性,教师每次备课必须花大量的时间进行查找和整理,费时费力。我们开发这一门课的教学软件就是为了解决以上这些问题。我们可以初步构思该软件所要达到的目标。如提供教学软件、练习和试题库、资料和案例、问题答疑和操作帮助等。
2.2可行性分析首先对要开发的教学软件进行市场调查,主要调以前有没有这一门课的教学软件,如果有,存在那些优缺点,经过分析在决定有没有必要开发或重新开发。如果有必要开发,则需要提出各种可能实现的方案,然后针对这些方案从技术、经济和社会因素等分析其可行性。比如开发《C语言程序设计》这门课的教学软件,就需考虑所用到的技术能否达到开发目标。还有开发周期,开发人员配置,开发费用和版权问题等,如果一切可行就可进入下一个阶段。
2.3需求分析需求分析是分析、求精、建模、规格说明和复审的过程。需求分析的第一步是了解用户情况,发现用户面临的问题;第二步是通过与用户反复交流获得用户的基本需求,第三步是对用户的基本需求反复求精细化,最后得出目标系统完整、准确和具体的要求。如开发《C语言程序设计》这门课的教学软件,首先是了解目前各门课的教学情况。
通过与学生、教师的交流,充分了解目前教与学中存在的不足,以及他们希望开发的教学软件所能达到的效果。可以通过创建原型的方法征求教师和学生的意见。经过多次反复交流反复修改直到与用户意见达成一致。写出相应的需求报告,建立相应的模型并进行认真的审查,符合要求侯再进入下一步。
2.4课件设计首先对教学软件进行分解,分成若干子系统也就是模块化,比如《C语言程序设计》这门课的教学软件按照其目标和功能我们可以划分成以下几个模块(图1):
接着下来对模块进行细化,主要确定整个教学软件框架和风格以及系统流程图及伪代码,考虑到教学软件的特殊性,在设计模块时还必须遵循教育学和心里学的原则,比如知识点的安排,界面风格设计等都必须考虑有利于教师的教和学生的学。
2.5收集和整理素材前期工作完成后,就进入了程序编制步骤。首先根据模块功能及伪代码的内容,收集相关素材,例如整理文本、横扫图片、创作图像和动画、制作片头等。注意素材尽量做成积件式,这样有利于提高素材的重用率,降低软件的大小。
2.6制作合成程序员根据需求分析和界面风格,完成各自模块的制作,也就是根据总体的框架结构和伪代码进行编程,将确定的素材寓意制作、运用,并进行单元测试,然后把各自模块合成进行综合测试,还可通过试用的方法进行综合测试,从而发现并修改存在的错误和不足。
2.7运行维护软件试用正常,可以发布,转入正常试用阶段。当然由于学科是在不断变化的,因此所开发的教学软件也应不断维护和修改,如及时修改所发现的错误和漏洞,完善存在的不足,优化用户界面,扩展新增模块等。
3开发人员的配置
在教学软件的开发过程中,开发人员的配置也是至关重要的。在很多商业教学软件不能推广使用的原因之一就是缺乏专业教师和学生的参与。而是很多教师开发的教学软件不能长久使用,其原因是缺乏专业的计算机开发技术,致使开发的教学软件功能低下,很难更新和使用。因此教学软件的开发队伍要配置合理。一是必须有学科专家参与,他们对课程熟悉,对软件所能提供的功能有选择判断能力;二是必须有计算机专家,即计算机开发技术人员。她们熟悉开发平台,有丰富的开发经验,能准确实现需求,完成功能的实现。当然一般还需要根据软件的规模和开发周期来配置一定数量的开发技术人员。另外还要建立完善的开发管理制度,在教学软件开发中学生也是不容忽视的一群开发实体,通过她们可以了解目前教学的优缺点,以及对所开发软件的期望值,还可以同感哦他们测试所开发的软件,帮助我们尽可能多的发现错误和不足。
4结语
4.软件工程毕业实习总结 篇四
软件工程毕业实习总结篇一
时间过的很快,转眼间已经实习将近5个月,其中有2个月是属于完全被流放的。
最先在内部系统组参与内部管理系统开发(struts+mysql+spring+hibernate),之后是去做网络交换机软件的脚本测试。现在又回归内部系统,虽然在脚本组期间,编码能力被别人甩在后头,但至少具有了一些测试经验。
至少自己做的东西,是真正交付到了客户手上,到也稍微有些成就感。
1、浅谈测试
一直以来,我都认为测试是脱离了软件工程范围的工作,不以为屑。但在实际情况中,测试是既重要且难以精湛的.其真正的压力,在于找不到bug,责任在你,而不在于编码人员。一般的测试人员不懂编码,他们靠的是日以累计的经验总结和想象力。而要做到高级测试工程师,则一定要懂编码,因为这是你完全掌握整个系统的方方面面具体运作的前提。但占主导地位的,还是大型系统的集成测试经验。实际项目中,编码时间一般只占30%左右,真正耗费时间的是IT阶段的找 bug与对应bug,此阶段基本评定了coder的编码质量。
2、程序员的困惑
有些人,以为教学视频和代码看多,自己就懂的多,实际做起来,却不知从何下手,问题在那?如何定位?如何解决?通通跟一样能力有关,debug追踪能力,也称调试。在项目组工作不愁源码资源,但问题是蛋糕摆在面前,你如何去消化?
有位同事告诉我:代码看几遍都没用,要去抄,例如一个查询模块,在此基础上去做具体记录的历史记录查询模块,你可能会觉得很简单,但实际情况却往往报一堆异常,配置问题涉及到方方面面,以及数据库字段,传值问题等等,一大堆对于新人来说很郁闷的问题。但不用怕,只要学会调试,一个个问题去追踪,一个个去解决,自然而然,那段“源码”才真正属于你。
3、如何调试追踪
如果你能在短短的时间内就看到问题点在那,放下断点去追踪,出去找工作,绝对没问题。出现问题的时候,不要光看代码,要用实际行动去追踪运行期间的具体值,那是最好途径。eclipse是个很爽的ide,这点做的很好。例如页面内容显示不是自己想要的数据,我们要先从数据库查询语句去下手,设置断点,一步一步step over,让sql字段(存取最终sql语句的字符串)运行到有值,inspect进去看,如果还看不出来,就点击它,copy后在sql客户端去实际运行,看看实际查询出来的表是什么,如果是对的,有可能就是页面调用的错误或者action逻辑的传值问题。
页面错误的调试,基本方法是用右键点击实际网页查看源代码,copy到editplus,就能看到具体错误发生在那几行。通常有几种常见的错误,例如:缺少对象这种很多时候是有些被你调用的字段有可能为空的情况出现的,可以加if(___=null)语句加保护。追踪的方法基本就是用alert语句,放在有可能出错的地方。4、一些习惯
遇到问题先自己思考,无从下手再找高手帮忙看看,注意他帮你看的思路,别在一旁闲着,看多了自己也会了,不然你一辈子都停留在那种水平,从人身上学到的东西远远比书多的多。
解决了一个问题后,要去究根问底去找到问题产生的起因,以防你下次遇到类似的问题再浪费同样的时间。
把代码写的漂亮,注释、空行、规范一样不能少,可读性是放在第一位。曾经看过一个高手写的代码,真的一看就是不同水平的人写的,几乎很完美,读起来很流畅,方便自己也方便别人。
任务完后不要呆着,去要求经理给你更有挑战性的任务,只要你肯去尝试,他们就会对你另言相看,把三天的任务一天加班搞定,效率和忠诚都有了,路也比较好走了。
软件工程毕业实习总结篇二
进入公司初期参加的入职培训,使我对公司有了一个全面的了解,在公司工作的这段时间,我深切的体会到了公司深厚的经营理念,感受到了公司浓厚的文化氛围。在每期的刊物上我都有了解公司的近期新闻内容,同时也了解了公司的相关的规章制度,在工作上有领导的关心和同事的帮助,让我更加顺利的度过我的试用期。
一、关于实习公司
我所实习的南京__软件有限公司简称__公司,公司成立于20__年,主营软件开发和信息系统集成,专门从事工程建设项目管理信息系统开发和实施,具有自主知识产权的项目管理软件产品__项目管理系列软件(包括__投资控制合同管理软件、进度控制计划管理软件、__质量控制安全管理软件、__项目管理门户、__城建项目管理平台等),并已经在全世界第一大桥苏通长江大桥、国内最大的开发区苏州工业园区以及南水北调工程实施和应用,目前正与南京城建集团合作,开发城建项目管理平台。
二、实习的内容
今年__月__日开始,我正式走进__开始了实习工作,并被调到了江苏省建筑质量检测中心,参加正在进行的一个检测项目。由于我才大三,本身对企业的经营方式等都很陌生,公司让我们的王工带我学习,以师傅带徒弟的方式,指导我的日常实习。在王工的热心指导下,我依次对此次项目的业务流程和大概框架进行了了解,并积极参与相关工作,注意把书本上学到的理论知识对照实际工作,用理论知识加深对实际工作的认识,用实践验证大学所学确实有用。以双重身份完成了学习与工作两重任务。跟公司同事一样上下班,协助同事完成部门工作;又以学生身份虚心学习,努力汲取实践知识。我心里明白我要以良好的工作态度以及较强的工作能力和勤奋好学来适应公司的工作,完成公司的任务。
三、实习的提高与收获
实习收获,主要有四个方面:
一是通过直接参与企业的运作过程,学到了实践知识,同时进一步加深了对理论知识的理解,使理论与实践知识都有所提高,圆满地完成了本科教学的实践任务。
二是提高了实际工作能力,为就业和将来的工作取得了一些宝贵的实践经验。
三是一些学生在实习单位受到认可并促成就业。
四是为毕业后的正式工作做好了准备。
四、结语
到公司实习并没有我想象中的难以融入,通过慢慢的学习,发现在公司用的到得知识在我们的学校学习中都会遇到。至暑期结束,从不懂到渐渐的做了几个检测项目。学到不少的东西。实习生活还没结束,开学了我还是会继续留在公司我的学习和探索。
软件工程毕业实习总结篇三
在这次软件工程课程中,我学到了很多东西,第一次深刻的体会到了什么叫做用工程化的思想来编写软件,以前自己也写过一些小型软件,没有做过大型的项目,直到这次课堂我担任组长并组织组员共同完成“个人图书管理系统”这个项目,第一次和别人合作,才发现运用工程化的思想来做是如此的有必要。
从这里,我才真正的意识到实施一个软件工程并不是说简单的会编码就能够解决问题的,我们更多的精力不是放在编码上,编码只是一个很小的模块,只占到那么小的一个部分。这个事实在很大程度上颠覆了我以前的思想,在我以前的认识中,似乎整个软件就是编码,除此无它,还好有老师的指导,不然真的会出现老师所说的,撞得头破血流之后才想起来用软件工程的思想来完成这个工作。
刚真正开始工作之前,我们费了很多的时间来完成一些前端工作,如需求分析和可行性分析,这块工作在别人看来可能是相对无关紧要,甚至是多于的,其实,换做在以前,我也会这么认为。可是,我现在算是深深地明白了磨刀不误砍柴工的道理,这些工作的完成太有必要了,太重要了,要想你的软件有用有市场,能被别人接受和认可,在进行过程中不会出现崩溃性的问题,这些工作缺一不可。
还有就是接下来的一些设计模块,此模块与软件编码涉及比较紧密,主要是解决一些参数传递和接口通讯的问题,此模块对我的触动远没有上两个模块对我的影响大,因此再次也不做过多的介绍。
在整个活动的完成过程中,作为组长,我收获很多,我发现,要是组里有个人不怎么想做事情时,他对于整个组织的影响是毁灭性的,正所谓“一颗老鼠屎,能坏一仓谷”,以后我的组织里要是出现这样的人,我绝不会给他继续留下来的机会,我会在第一时间将他清除出去。还有就是,作为组长,你要做的最重要的事情,不是发挥自己的聪明才智,而是创造出一个平台,让别人去发挥,你所要做得,出了保证这个平台的完整性和公平性外,还有就是协调好各组员之间的关系。
5.毕业软件开发实训感想 篇五
实习生活,感触是很深的,提高的方面很多,但对我来说最主要的是工作能力的进步。毕业实习主要的目的就是提高我们应届毕业生社会工作能力,如何学以致用,给我们的一次将自己在大学期间所学习的各种书面以及实际的知识,实际操作、演练的机会。自走进美国硅谷我开始积极肯干,虚心好学,工作认真负责的态度,积极主动的参加各个项目开发。
实习过程中我跟自己总结了一下几点对工作有用方法,要充分的利用强大的网络资源。要充分认识项目管理在软件开发中的重要作用,制定严格的管理规章。培养积极的团队意识,组员之间要分工协作。注意制作详细的开发日志,保留质量高的相关数据。进行准确到位的需求分析,编写详尽的需求文档,为下一阶段的开发设计奠定坚实的基础。测试数据尽量详细、全面,并设计出合适的测试用例。
这几个月给我的东西我想用有形的和无形的两部分概叙,有形的当然就是技术水平的长进,虽然其中肯定有很多的不足,但纵向对比2010年,我得到了锻炼,对于不足的部分,我希望在2011年继续努力加快弥补。无形的就是人性的成长,在社会大学的摔打远比在养老院式的大学校园更能让人成长,对社会的看法,对人际关系的看法,对价值的看法,不再是以前一种近乎浪漫的眼光审视着这一切。社会的现实让你更加学会提高,人际关系的复杂让你更加学会斡旋,价值的体现让你更加学会抉择。
6.软件开发工程化及其发展趋势 篇六
1 软件工程思想
1.1 面向过程的软件开发思想
面向过程的软件开发是软件工程领域中的一个重要和传统的思想, 该设计和开发思想主要是通过对整个项目进行结构化的规划, 基于数据流图, 逐步开发每一个功能构件。遵循该思想进行的软件开发一般有较好的阅读性, 同时能够在开发过程中灵活的调整工期, 划分阶段。
面向过程的软件开发思想将整个开发过程划分为七个环节。第一个环节称为系统分析, 即明确整个软件要完成的功能目标和实现的效果。第二个环节是可行性分析, 软件开发部门要基于其已有的技术积累、经验, 相关的法律、法规, 经济利益、社会效益等各个方面的因素, 决定该项目是否可行, 如果项目具备可行性, 则要对项目中存在的风险进行分析和预测。第三个环节是软件需求分析, 在该环节要基于数据流程图, 形成针对整个系统的需求分析文档。第四个环节是总体设计环节, 该环节主要是基于软件需求分析的结果, 映射结构图, 并进一步形成总体设计方案。第五个环节是详细设计环节, 该环节中要对总体设计环节中形成的各个功能进行详细的模块划分, 并明确各个模块的功能和相互之间的接口。第六个环节是代码实现环节, 即将前面总体设计和详细设计的各个模块通过合适的变成语言实现出来。第七个环节是测试环节, 在该环节中, 要通过合理的测试方案和测试技术, 对整个软件进行各种测试, 尽量减少软件当中存在的漏洞。
1.2 面向对象的软件开发思想
面向对象的软件开发思想是近些年被提出来的, 随着软件工程项目的日趋复杂和庞大, 该思想已经被行业内的软件开发人员广泛接受。该思想的核心是将软件开发过程中涉及到的客观实体或概念通过抽象映射为包含基本数据和功能函数的对象, 具有相同属性和方法的对象的集合称为类。考虑到实体或概念之间的共性和差异, 面向对象思想引入了继承的概念, 实现了代码的重用。在遵循该思想开展的软件开发活动当中, 开发人员一般会分析涉及到的实体、概念以及他们之间的关系, 进而设计对象、类和抽象、继承关系, 最终通过支持面向对象的变成语言来实现项目开发的目标。利用该思想进行软件项目的开发可以有效的提高代码的重用性, 支持模块化开发, 降低内部代码的耦合性和软件维护的难度。
2 软件工程技术的发展趋势
2.1 软件复用与软件中间件开发
我们知道, 随着软件项目规模的不断增大, 功能目标日趋复杂, 完全的从头开发无疑会效率地下, 浪费人力和财力资源。通过软件复用, 合理利用以往开发的项目中形成的代码, 可以有效的提高开发效率, 而软件的中间件开发技术正式软件复用的核心和基础。
在软件的中间件开发技术发展过程中, 开发环境、构件库管理技术、架构设计思想等方面的革新是至关重要的因素。目前, 国际上对于支持软件复用技术的开发环境的研究和开发已经成为了一个热点问题, 该方面取得的进展极大的促进了软件复用的便捷性和易用性。
软件复用的一个重要方面是形成完善的中间件体系。一般来说, 中间件不考虑具体的、详细的业务处理方法, 只是通过抽象思想保证分布式工作和基本功能、接口的定义。中间件的开发很大程度上依赖一个便捷高效的运行环境。此外, 在软件行业发展过程中, 要充分重视标准化工作。目前行业中被普遍接受到的两个标准分别石油国际标准化组织和美国提出, 我国国内的标准化工作还有待进一步提高, 需要我们的不懈努力来共同解决软件复用和中间件的开发。
2.2 软件产品线技术
软件产品线技术一般表现为一个产品不断推出新版本、新功能。通过该技术, 能够有效的改善软件维护状态, 同时, 在产品升级过程中可以有效的利用已有的软件框架和代码, 提高开发效率。目前, 在国外很多软件公司的产品开发中均采用了该思想, 以模块化思想为指导, 通过模块化和构件化的形式, 形成了完善高效的软件开发技术流程, 提高了软件开发的效率和利润。
3 结束语
随着软件项目规模和复杂性的变化, 软件开发中的很多技术也在不断出现和创新, 在实际的开发过程中应该根据项目特点和自身技术现状, 合理选择技术。在现阶段的软件开发过程中, 要充分利用构件开发技术、产品线技术、软件复用技术, 提高开发效率, 不断推动软件产业的标准化和工业化进程。在生产实践过程中, 软件生产线的开发使用, 为工业化生产提供了新的技术支撑, 改善了体系结构, 实现了软件系统的动态行为和结果超预期目标发展的良好势头。软件生产线和构件技术结合是软件工程的重要实践方向, 实现软件利用的最大化是现在振兴软件产业的重要方面, 还需要大家的共同努力。
参考文献
[1]米晨, 杜斌.软件开发实践中工程技术的探究[J].信息安全与技术, 2013, 01:38-39.
[2]罗海丽.不同软件工程方法在软件开发实践中的比较与整合[J].科技资讯, 2010, 07:29.
7.软件开发部软件开发工程师毕业实习报告 篇七
关键词:企业实践 Java软件项目开发岗位 职业能力 教学改革
笔者积极响应学校号召,暑期期间到济南维库软件科技有限公司进行了一个月的企业实践,顺利完成企业的工作任务,现将一个月的实践收获总结如下。
一、转化角色,虚心、耐心、专心做一线有责任心的企业员工
1.遵守企业制度,认真承担并履行责任
在一个月的企业实训中,笔者谨记学校领导的嘱托,严格要求自己,认真遵守企业制度,从未发生迟到、请假、早退现象,进入公司后将自己由受人尊重的老师转变为一名初到公司的企业员工,做到慎独、慎微、慎初,强化工作责任心,主动处理好分内与分外的相关工作,勤奋扎实地工作,不敷衍应付,认真对待工作中的每一个问题,完成企业交给的每一个工作任务。
2.不畏工作困难,耐心解决项目开发中的各种问题
企业实训为真实软件开发项目:山东高速集团采购系统。由于项目庞大复杂,涉及知识点琐碎,项目开发工作困难重重,笔者认真细致学习企业教师讲解的知识点,分析需求说明书,钻研软件算法和代码的实现,面对项目中遇到的各种错误代码和异常,耐心查错排错,认真解决软件开发过程中出现的各种错误,并及时记录解决方案和问题,为下一步软件开发工作和教学实训积累了丰富的经验。
3.放下教师架子,虚心向企业有经验老师请教
学校主要工作是教书育人,企业工作是开发高质量软件产品。工作任务的不同,使笔者慢慢放下了教师的架子,主动地向实践操作能力较强的“小兄弟”请教。虽然他们年龄较小,学历不高,却有丰富的项目开发经验。笔者向他们虚心请教,反复讨教工作中不明白的问题,从他们那里学到了课本上没有的工作技巧和技术,更领略了他们一丝不苟、沉着耐心和认真细致的工作作风。
二、企业实践锻炼内容
企业实训内容主要基于目前软件公司的热点需求——Java软件开发岗位进行设计和选取,包括相关知识内容的培训和山东高速集团采购系统项目的实训两部分内容,具体知识包括:Java知识(JDK的安装配置、Myeclipse开发工具使用、数据类型和运算符、流程控制、面向对象开发)、HTML知识、MYSQL知识和SSM知识(JSP应用、Sevlet应用、Spring-MVC应用、Spring依赖注入、Mybats框架应用及整合)。
三、企业实践锻炼收获与心得
1.课程设置应与岗位需求相匹配
高等职业院校人才培养模式定位于技术技能型人才的培养,为地方区域经济服务,为地方社会经济发展提供人才保障和智力支持,因此专业课程的设置应该以岗位工作任务和岗位能力需求为出发点。以Java软件开发岗位为例,目前学校开设的都是传统的数据库知识和web前端知识课程,但是IT技术发展迅速,真正的软件开发大多通过相关框架实践,如SSM框架、SSH框架等,因此,学校要适应目前社会的需求,与时俱进,及时更新课程标准和授课内容。
2.教师实践操作水平是培养高素质技术技能性人才的重要因素之一
目前企业对参加职业技能大赛获奖学生毕业生比较青睐,所以企业高职院校的评价主要通过高职院校技能大赛进行,而学生技能大赛成绩的结果反映了教师的实践操作水平。俗话说“老师要给学生一杯水,自己首先要有一桶水”,因此教师应首先提高个人实践操作水平,而提高教师实践操作水平的主要方式之一就是通过企业实践锻炼。据悉,山东省在不久的将来将启动高职院校教师职业技能大赛,因此教师要将提高实践操作水平作为自己以后工作的努力方向。
四、未来的努力方向
1.基于企业岗位需求进行教学改革
(1)教学模式和教学方法遵循职业发展规律。高职院校推行“工学结合、知行合一”的人才培养模式,因此要基于企业工作岗位和工作任务进行教学改革。
第一,推行教、学、做一体化教学模式。在教学中,应该以培养学生的职业能力为主,师生双方边教边学边做,理论和实践交替进行,直观和抽象交错出现,理中有实,实中有理,突出学生动手能力和专业技能的培養,充分调动和激发学生学习的兴趣,使学生真正变成学习的主人。要培养学生的终生学习和持续发展能力,推行教、学、做一体化教学模式对加强学生的动手操作能力和解决实际问题的能力有很大好处。
第二,推行翻转课堂教学方法。为提高学生的主动性和创新能力,在教学过程中,推行翻转课堂的教学方法,将学习任务布置给学生课下完成。学生利用信息化技术查阅需要的材料,还可以在网络上与别的同学讨论,完成老师分配的任务,并在课上分享任务完成过程和心得体会。由老师进行评论,师生间还可以进行充分的交流,这样可以满足学生的个性需要,有利于学生创新能力的培养。
(2)教学过程基于软件开发工作过程。将教学过程与企业软件开发过程相结合,教学过程围绕企业真实的软件开发项目展开,将要学习和掌握的知识技能,转化为一项项工作任务,学生分组按照行动导向的六个步骤(资讯-计划-决策-实施-检查-评估)进行,使学习任务既是一个完整的学习过程,又是一个工作过程,教师成为学生学习的引导者和促进者。
2.技能操作的提升与社会岗位前沿技术的了解
(1)技能操作的提升。以后,笔者将会继续积极参加企业实践锻炼,参加省级培训,完成每5年必须累计不少于6个月到企业或生产服务一线实践的目标,通过企业真实工作过程提高自己的实践操作水平和职业能力,并将其应用到教学过程、实验实训过程和学生技能大赛中。
(2)社会岗位前沿技术的了解。为推导社会技术的变化和教学知识的更新,在以后的工作中要经常深入企业,了解企业的生产组织方式、工艺流程、产业发展趋势等基本情况,熟悉企业岗位职责、操作规范、技能要求、用人标准、管理制度、企业文化等,学习所教专业在生产实践应用中的新知识、新技术、新工艺、新材料、新设备、新标准等,及时更新人才培养方案、课程标准,适应社会岗位对教学知识的需求。
五、小结
【软件开发部软件开发工程师毕业实习报告】推荐阅读:
软件开发工程师培训11-17
java软件开发工程师 简历10-13
软件开发公司实习心得10-19
软件开发项目总结报告11-14
软件开发实习生面试08-19
软件开发专业调研报告09-06
计算机工程-计算机软件开发试题(中级)_答案5则范文07-21
软件开发流程心得06-27
软件开发面试问题08-10
软件开发技术合同10-27