产品软件开发部述职报告(精选7篇)
产品软件开发部述职报告 篇1
软件产品委托开发协议
甲方:乙方:
地址:公司地址:
技术中心:
邮编: 邮编:
电话: 电话:
甲方委托乙方,乙方接受甲方委托,开发“ 股票软件”产品,双方就合作事宜达成如下协议:
一 、合作方式:
乙方根据甲方的要求定制开发软件产品,并向甲方提供技术培训;甲方向乙方支付费用。
二、软件内容要求及验收标准:
1、依据本合同约定,甲方委托乙方开发的软件产品为:“ 股票软件”
2、总体设计原则: 乙方根据自身已获得自主知识产权的证券软件的技术标准为甲方开发证券分析软件,证券软件完成后,乙方将软件包括附属软件移交给甲方,且乙方负责售后服务及相应升级,同时乙方向国家版权局申请注册属甲方所有的软件著作版权。
3、软件的构成及功能需求、验收标准通常包括软件的功能描述、验收标准、验收期限、验收方法、产品缺陷的确认和补救等内容,可以根据委托项目的特点经双方协商一致后予以增减。例如我方的详细设计已经完成,只需要承包方编写代码,此时就不需要功能描述
三、工作进度:
乙方应按本合同所附的《 软件开发进度计划》(见《附件》)完成软件开发及相应的配套工作
四、费用支付:
1、本项目总费用为__ __元,双方同意按现金方式银行电汇汇款。
2、付款期限:在乙方按本合同第三条规定的时间表完成工作进度并验收合格的前提下,甲方将按如下日期向乙方支付:
(1) 签订合同后2日内首付合同款 元。
(2) 乙方完成软件制作后,将软件完整版交给甲方,同时加上国家版权局正式受理通过的软件函,甲方支付余款__ _元。(含软件著作权申请费用 元) ;
(3) 乙方将制作完整的软件提交给甲方使用,需要提供相当的视频教学和图文说明书。
(4) 甲方在今后的销售中,每一个数据终端按 元一个软件帐号向乙方购买。
3、上述费用包含甲方应当向乙方支付的的所有费用
五、双方权利和义务
1、如系统设计存在缺陷,导致整个系统无法正常运行,甲方保留追回所有投入的权利;
2、如设计缺陷导致部分功能无法正常运行,乙方应在甲方要求的时间内解决问题,如问题不能按期解决,导致影响甲方正常使用 ,甲方有权扣除部分费用;
3、系统设计必须符合甲方设计要求,否则甲方有权拒付款项
4、乙方需协助甲方安装调试,直至甲方验收合格;
5、乙方负责为甲方培训软件操作使用及安装人员一名,甲方接受培训的人员应达到熟练操作并能解决简单问题的程度;
6、乙方应亲自完成本开发项目的全部工作
7、乙方必须在交付使用时作出该系统技术升级、功能扩展的计划,升级、扩展所需费用由乙方承担。
8、系统维护: 系统验收合格并交付使用后,乙方负责免费维修12个月。系统出现紧急问题,乙方应现场解决。
9、乙方为甲方开发“ 股票软件” 软件产品,并附相关的软件特色指标说明,软件注册系统和软件加密系统。
10、乙方为甲方制作软件LOGO、软件名称、启动图片、内嵌网站网址等相应软件信息。
11、乙方承诺,自合同签订之日起软件运行期间提供免费一年的技术维护和基本升级。
升级标准为:乙方软件现有功能和及时将乙方所获得的.交易所所有对外公布的无偿基础数据信息形成乙方自身软件信息,另外,乙方自身软件功能性升级的程序也给予甲方免费升级。
12、乙方负责协助甲方解决软件在运行过程中遇到的需要解释和需要明显bug改进的地方的有关问题。
13、乙方保证所提供的软件符合甲方的要求,并且没有瑕疵。如软件在运行过程中发生问题,乙方应无条件免费进行修改或更替维修
14、乙方确保提供给甲方的软件在运行过程中不存在任何bug,一旦出现问题,乙方承诺在24小时内解决。
15、乙方免费为甲方提供软件升级,乙方如有软件扩充功能,则提供升级程序给甲方使用,以充分保障软件的升级扩展。如甲方对软件另有需求,双方协商解决。
六、协议的补充、变更和终止:
1、协议的补充、变更、修改:如因业务发展需要对本协议现有内容进行补充、变更、修改,由双方或任何一方提出补充、变更、修改的建议和方案,经双方协商并达成统一意见后,以书面形式确认,并由双方签字盖章后补充为本协议的附件,与本协议具有同等法律效力。
2、协议的终止:本协议在履行过程中,如因乙方不能正确履行协议义务而导致项目开发受到严重影响,甲方有权单方解除合同,提前3天以书面形式通知乙方。
七、违约责任:
1、如乙方擅自中断开发,甲方有权终止合同。乙方应自甲方发出书面通知起2日内返还甲方已支付的全部费用,给甲方造成其他损失的,应予赔偿。
2、乙方提交的工作成果验收合格后,甲方应按时履行付款义务,如甲方无正当理由迟延付款,每迟延一日,应向乙方支付迟延支付部分金额的10%作为违约金。
八、管辖:
本合同在履行过程中如发生争议,由双方当事人协商解决。协商不成,双方同意由上海仲裁委员会依据其现行有效仲裁规则予以裁决。
九、其他:
1、本合同附件如下: 软件开发进度计划》本合同附件与正文具有同等效力。
2、本合同一式二份,自双方签字之日起生效。
甲方: 乙方:
(盖章) (盖章)
签字: 签字:
日期: 日期:
签约地点:
产品软件开发部述职报告 篇2
轴承作为机械结构中的重要零部件,已成为工业中的大量需求品。但由于轴承种类繁多,适用场合不同,轴承生产企业如何向用户有效地演示企业生产的各类轴承,及时提供产品信息,成为一个棘手的问题。本文通过设计一款轴承演示软件,实现轴承型号分类、产品演示、信息描述等功能来解以上问题。
2 软件功能分析
根据实际需要,本文设计的软件主要实现三方面功能:(1)轴承功能演示功能;(2)用户编辑功能;(3)其他功能。软件的功能框图如图1所示。
轴承演示功能是软件的核心功能,可实现产品、零件的外观演示功能,并将相应产品、零件的有关信息显示出来,每类产品有一个构造视频,演示该类产品的整个构造过程。
由于轴承种类繁多,无法一次性将所有轴承类型枚举出来,软件提供了用户编辑功能,以便于用户进行编辑和扩展。企业可以根据实际生产情况,自由添加所需的轴承类型,方便对产品、零件视频及相应信息的添加、修改和删除等操作。
为使软件更人性化,软件增加了编辑启动和结束视频的功能,并可添加背景音乐。用户可通过对启动视频、结束视频以及背景音乐进行编辑。
3 软件的方案设计
3.1 开发环境的选择
本文中的软件的开发环境主要使用微软公司的Visual C++,主要框架使用Visual C++提供的MFC框架。MFC是微软基础类,用于在C++环境下编写应用程序的一个框架和引擎。利用MFC可以进行快速的软件开发,实现软件界面功能和消息映射机制。
3.2 控件选择
视频播放的功能通过使用Windows Media Player软件开发工具包(SDK)来实现。通过使用Windows Media Player SDK可以扩展独立Player的功能,并将播放功能嵌入到自己的应用程序中,也可以将Player嵌入Web应用程序或基于Microsoft Windows的应用程序中。同时,Windows Media Player具有模块化体系结构,可以只使用所需的部分,尤其是用户界面与音频和视频内容的播放功能相互独立。Windows Media Player提供了外观功能,可以使用该功能创建个性化的Player外观,也可以基于Player创建截然不同的功能。还可以创建插件来扩展Player的主要功能,方法是向用户界面添加新的交互式控件,在Player呈现音频或视频数据前对其进行修改,然后在Windows Media文件中呈现非标准数据流。
3.3 数据的表示方式
软件有效组织产品及零件信息,需要合理的数据表示方式。根据分析产品和零件特点,得到的产品和零件的类图如图2所示。
零件类为产品类的子类,故数据的表示结构可分为产品、零件两级。使用树控件更易于表现出数据的层次结构。由于产品和零件的类的结构存在差异且有从属关系,树控件的后台数据源宜使用XML进行表示。XML是一种依赖于内容的技术,是当前处理结构化文档信息的有力工具,通过使用XML可以有效地表示具有不同结构的类。XML可以简单地使用DOM提供的接口进行读写操作。但考虑到企业的产品宣传人员一般为非软件人员,为了易于软件的维护,本文将采用文件的目录结构作为树控件的后台数据源。用户可以简单地修改对应的目录结构及文件内容实现直接操作后台数据。通过建立、删除目录以及改变相应文件内容实现用户的编辑功能,使用读取目录结构及文件内容获得的数据来形成树控件,树控件的数据显示过程如图3所示。
4 软件操作界面
软件的主界面如图4所示。
软件主界面左侧为视频演示区,中部为信息显示区,右侧为产品目录树。点击目录树中对应的产品、零件,将在视频演示区播放对应产品、零件演示视频,并在信息显示区显示对应产品、零件信息。选中某一产品,点击构造按钮,播放对应产品的构造视频。菜单和工具栏上的对应按钮可实现对视频和背景音乐的控制。
用户可通过点击“编辑”按钮,来实现对产品、零件信息的编辑功能。用户编辑界面如图5所示。
左侧产品列表中列出对应产品,选择产品列表中某一产品,零件列表中将出现对应产品包含的零件。选中某一产品、零件,界面右侧区域将出现对应信息,可以对相应的信息进行编辑。
使用“添加新产品”按钮可以向产品列表中添加新产品,使用“添加新零件”按钮可以向添加新零件。添加新产品及添加新零件的界面如图6和图7所示。
在“添加新产品”的界面中填写对应信息,对应产品即出现在产品目录树中。在“添加新零件”的界面中必须选择零件从属的产品,才能进行添加工作。
5 结语
为了满足工业生产的需求,各类产品都逐步向多样化发展。使用软件可以有效地对各种产品进行分类演示,解决了产品介绍和演示困难的问题。
本文通过设计一款轴承演示软件,有效地解决了轴承产品由于品种多样而带来的演示困难的问题。当今工业界越来越多的引入各种CAM、CAE等辅助软件,来实现产品的自动化。在产品宣传和演示的过程亦需要有效的软件引入,才能进一步提高企业整体的自动化水平。
参考文献
[1]NYHOFF L R.C++数据结构导引[M].北京:清华大学出版社,2005.
[2]李永红,程耀瑜,隋海洋.基于SDK的软件设计方法[J].科技情报开发与经济,2006,16(6):228-230.
产品软件开发部述职报告 篇3
关键词高空;探测;系统软件;埃玛图
中图分类号P41文献标识码A文章编号1673-9671-(2010)081-0121-01
高空气象探测资料,历来在天气预报中都起到了举足轻重的作用。但以往由于探测手段及计算方法的落后,对于高空探测人员来说,每次探测结果只局限于对每个高度层的温、压、湿和风向风速的的简单分布情况的初步了解,然后编发报文上报和传资料给预报科进行天气分析,对探测人员来说并不知道所得出的这些数据怎样与天气形势分析相联系。而如今采用L波段雷达探测系统观测,不仅提高了高空探测的准确度,而且还能输出除了常规探测结果之外的许多丰富的气象产品,可以让我们从事高空探测的人员对于探测的结果做到更深层次的认识、了解和学习研究。下面就该软件输出的几个气象产品的实际应用作进一步的分析。
1埃玛图
在L波段探测系统软件的“数据处理软件”的“图像显示”菜单下,第一项显示的就是埃玛图,埃玛图其实就是温度对数压力图,是气象台站分析预报雷雨、冰雹等强对流天气的一种基本图标。它能反映探空站及其附近上空各种气象要素的垂直分布情况,在天气分析和预报中应用非常广泛。埃玛图的纵横坐标分别表示气压的对数()及温度(T),与常规的图略有不同,在该软件上输出的图上只绘有三条基本曲线,分别以红色、黑色和绿色表示。红色表示层结曲线,也就是实际温度的变化曲线,表示测站上空温度垂直分布状况,绿色线是露点曲线,表示测站上空水汽垂直分布状况,而黑色线是状态曲线,表示气块在绝热上升过程中温度随高度而变化的曲线。另外上面还标注有位势高度和各高度上的风向风速、凝结高度、零度层高度、对流层顶等。使用该图解具体可以实现:
1)方便而清晰地分析大气层结特性及湿空气在升降过程中状态的变化,判断大气静力稳定性及对流不稳定性。①根据曲线的分布情况:如果状态曲线位于层结曲线的右边,这时状态曲线和层结曲线所围成的面积叫做正不稳定能量面积,若状态曲线位于层结曲线的左边两条曲线所围成的面积称为负不稳定能量面积,图中所围成的正不稳定面积越大,大气越不稳定。②利用计算一些常用的稳定度指标的方法判断。(1)沙氏指数s=T500-TS,T500为500毫巴的实际温度,TS为气块从850毫巴开始沿干绝热线抬升到凝结高度,再沿湿绝热线抬升到500毫巴的温度,如果s>0表示稳定,如果s<0,则表示不稳定。(这在埃玛图页面的右下角有显示)(2)气团指标(k);k=〔T850-T500〕+〔Td〕850-〔T-Td〕700,其中〔T850-T500〕为850毫巴和500毫巴的温度差,〔Td〕850为850毫巴的露点,〔T-Td〕700为700毫巴的露点差。这些量在高空记录里很容易获得,计算出的K值愈大越不稳定。(3)还可根据等压面假相当位温的变化来判断。在埃玛图显示页面的右边显示有300毫巴以下等压面的假相当位温θse,如θse随高度减小,称为对流性不稳定,相反称为对流性稳定。
2)根据埃玛图上层结曲线的变化情况和可以判断逆温层的性质。①辐射逆温:这种逆温是由地面强烈辐射冷却而造成的,一般厚度不大,(自地面向上几十到几百米),逆温层下限与下垫面接触,湿度较大,逆温层定向上由于稳定层阻碍水汽向上输送,湿度较小。②下沉逆温:这是整层空气下沉时由于气层压缩而形成的,它的特征是在一定高度上,气温与露点之差很大,而且这种差值随高度升高而增大。③锋面逆温:因暖空气凌驾于冷空气上造成的,一般暖空气中湿度比冷气团大些,所以锋面逆温湿度与温度同时随高度升高而增加。
当然有时往往几种原因混杂在一起,很不容易判断,那就要根据逆温层出现的时间、地点和天气条件等加以具体分析。
3)根据埃玛图上个高度层风向风速的变化,还可以判断有没有锋面的存在及锋的类型。因为锋附近风随高度变化有明显的特征,锋区内热成风很大,有冷锋时风向随高度逆转,有暖锋时风向随高度顺转。判断风的变化还可以看“数据处理软件”“图片显示”下的第二项“风随高度的变化曲线”。在这个页面上显示两条曲线,其中红色的代表的是风速,蓝色的代表的是风向。从这个图上也可以很直观地就看出了高空各个层次风向风速的变化情况。
2L波段数据处理软件还有一个比较直观的气象产品就是气球的飞行轨迹背景地图
L波段数据处理软件还有一个比较直观的气象产品就是气球的飞行轨迹背景地图,每个台站可根据自己的需要测得各点离本台站的距离和方位等地理信息,生成相关文件后就能在每次放球后得到本站气球的飞行轨迹图,根据此图可以很直观地看到探空气球所测得数据的具体范围,对气候的分析和研究、空域申请等很有利用价值。
L波段高空探测系统软件输出的的气象产品还有很多。其实我们每个业务人员都可以在保证观测资料质量的基础上,学会对本地观测资料的分析和应用,这样可以不断更新知识,开阔视野,自身的业务能力和技术水平也可以得到进一步的提高。从而也达到提高业务服务水平的目的。
参考文献
[1]L波段高空气象探测系统业务操作手册.中国气象局监测网络司.
[2]天气学分析.气象出版社.
作者简介
软件项目开发需求报告 篇4
1.1 编写目的:阐明编写需求说明书的目的,指明读者对象。1.2 项目背景:应包括
● 项目的委托单位、开心单位和主管部门;
● 该软件系统与其他系统的关系。
1.3 定义:列出文档中所用到的专门术语的定义和缩写词的愿文。
1.4 参考资料:可包括
● 项目经核准的计划任务书、合同或上级机关的批文
● 文档所引用的资料、规范等
● 列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源 2 任务概述 2.1 目标 2.2 运行环境 2.3 条件与限制 3 数据描述 3.1 表态数据
3.2 动态数据:包括输入数据和输出数据。3.3 数据库描述:给出使用数据库的名称和类型。3.4 数据词典 3.5 数据采集 4 功能需求 4.1功能划分 4.2功能描述 5 性能需求 5.1 数据精确度
5.2 时间特性:如响应时间、更新处理时间、数据转换与传输时间、运行时间等。
5.3 适应性:在操作方式、运行环境、与其他软件的接口以及开发计划等发生变化时,应具有的适应能力。6 运行需求
6.1 用户界面:如屏幕格式、报表格式、菜单格式、输入输出时间等。6.2 硬件接口 6.3 软件接口 6.4 故障处理 7 其他需求
如可使用性、安全保密、可维护性、可移植性等。
需求分析的格式 需求分析要对目标系统提出完整的、准确的、清晰的和具体的要求。
1.综合需求: 项目 说明 备注
1)功能要求 描述软件用来做什么
能够进行度量衡的相互转换,如:长度公制之间的转换,公制和英制的转换等。能够添加或创建新的度量衡。能够按照用户自己的需要进行排序。能够作为其他软件的插件或辅助工具使用。能够知道度量衡所应用的范围,如:国家,行业等。
2)性能要求 软件能达到什么性能
数据的最大存储量,数据的转换要有连续性,软件对每项操作的响应时间,更新处理时间,数据转换和传送时间,软件的输入输出数据精度,软件失败和成功的定义。
3)运行要求
软件能正常运行在微软中文版WINDOWS系列的可以独立运行的安装包或可执行文件
开发软件的开发工具清单。是否需要外部存储器和数据通信接口。
4)升级要求
是否可以升级,是否可以进行扩充。是否容易进行维护。能够作为什么软件的插件或辅助工具使用。如何添加新的公式
5)对应关系
用户需求和软件功能的对应关系 说明每一个模块对应实现什么功能。
2.数据要求: 项目 说明 备注
1)数据输入
来源、准确性、取值范围、格式、非法值的处理、出错信息
2)数据输出 目的地、准确性、数值范围、格式、非法值的处理、出错信息
输出的数据可以修改,如:1米=100厘米=1000毫米,将100厘米改为90厘米时,相应的1米就自动改为0.9米,1000毫米变为900毫米。
3)数据存储 最大存储量
4)数据的安全性 访问的权限
5)数据备份 能否导入和导出
可以将输出的数据保存为文本格式
6)数据流图
在分析过程中得出的数据流图
7)数据筛选
能够将选择的几个度量单位进行汇总
8)主要算法
简要描述软件的主要算法
3.界面要求:请参照“界面样式图” 项目 说明 备注
1)软件名称 为软件起一个名字 可以发挥自己的想象力
2)功能模块
有几个功能模块,分别是什么
3)颜色
采用什么底色,窗口是什么颜色
4)字体
字型、大小,字间距,颜色
5)按钮
颜色、字型、大小、样式
4.软件描述:从用户的角度来描述软件,相当于一份初步的用户手册。项目 说明 备注
1)功能描述
能实现,不能实现什么需求 应用范围。什么人员可以使用
2)性能描述
最低配置,操作系统,需要安装什么辅助软件
3)操作步骤 如何使用软件 主要步骤和方法
4)用户责任
用户在操作过程中的注意事项 出现问题时如何解决 如何写需求分析报告
近来学校的一些科研项目又在申报了,一些学弟开始Q我一些软件工程上书面的问题。大概的总结了下,写到这里。本文涉及到的是需求分析部分的书写,主要是根据国家标准文档中的要求来的。
在互联网公司或者一些敏捷开发的公司里,其实大家都是秉承着重开发,重讨论,而轻文档的态度。这个轻文档并不是指没有文档或者几乎不做文档,而是在严格的文档流程中解脱出来,只把最最实际的部分写出来。这个特征是有互联网本身迭代周期短,版本发布快等特点决定的。而在实际的兼职项目的时候,同学们就要注意了,最重要的应该就是在签合同的时候一定要附上最清楚的一份需求分析,虽然这份需求说明可能不是按照某些标准文档而来的,描述清楚每个功能达到的效果,而这个效果一定要让客户点头确认,而不能出现“应该是”、“可能是”、“也许是”这样的模糊回答。否则在项目后期就会比较难过了。在学校申请的项目和大型公司项目开发中,是重视文档流程的,一部一部来。所以还是看情况来对待文档的深度和标准。
一、目录: 目录要用word的 “引用”—>”目录”,自动生成目录,一般都是要三级目录。通常这部分基本都不需要改结构,直接更新页码即可。
二、内容部分。国家标准软件需求说明书G856T-88下载 1引言 1.1编写目的
说明编写这份软件需求说明书的目的,指出预期的读者。(这部分说明需求分析报告的概况,例如:本X需求分析报告是为S系统而编写的。+S系统的两句话概述。+本X报告旨在使U1(需求者)明确S系统的要求和细节,给U2(开发人员)了解需求实现的难度和困难,最终提供给U3(审核人、管理者)讨论和审核,达到沟通效果)
1.2背景 说明:
a. 待开发的软件系统的名称; b. 本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;
c. 该软件系统同其他系统或其他机构的基本的相互来往关系。
(这部分可以将a,b,c分为2部分,例子如下: 1.2.1项目概况
本需求分析报告所预期开发的软件系统是:S。S是(不是则无)SS系统的某一个功能子模块,S和S1、S2等系统之间的联系,以及概述其他系统的状态等等。1.2.2任务分配
a.任务提出者:xxx b.软件开发者:xx c.产品使用者:xx d.文档编写者:xx e.预期产品使用者:xx)1.3定义
列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
(这部分很简单,就是描述专业词汇,比如
1.XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。2.Word2, 解释。。)
1.4参考资料
列出用得着的参考资料,如:
a. 本项目的经核准的计划任务书或合同、上级机关的批文; b. 属于本项目的其他已发表的文件;
c. 本文件中各处引用的文件、资料、包括所要用到的软件开发标准。列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。2任务概述 2.1目标
叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的关系。如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。|(本模块开发主要是为SS的整体服务,完成SS工作中的XX部分以及相关的工作。其涉及的范围就是,从下达A、B命令后,到给出C结果的过程。具体描述:B1,来完成B11功能;B2,来完成B22功能; 等等。本部分是(否)耦合在分词工具包其他部分中的,主要为嵌入方式和先后方式相互交互。图
图1.该系统的组成同其他各部分的联系和接口)
2.2用户的特点
列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使甩频度。这些是软件设计工作的重要约束
(例如:二次开发和系统调用人员:具有很高的专业知识水平,理解XX的运行机制。可以对开放代码进行阅读和分析,以完成其系统独特的需求,提供给这部分用户开放API手册和Debug版本的源代码即可;预期这部分用户会占本系统总用户量的多大部分。
xx使用者:具有一定的计算机操作能力和知识,了解xx领域的相关概念和用途。提供给这部分用户操作手册即可。预期这部分使用者主要是来简单的xx操作。
维护人员:具有较高的计算机专业水平,可以对常见的系统Bug进行追踪和分析,具有一定的测试能力。这部分用户主要是采用了本系统之后的后期工作维护者。等等)
2.3假定和约束
列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。(这部分重要是对你有的技术力量、资金状况、人力资源等情况的假设,以使得你可以在什么样的情况和时间范围内完成工作。工期约束,经费约束,人员约束,地理约束,设备约束等几个方面列举说明。)3需求规定 3.1对功能的规定
用列表的方式(例如IPO表即输入、处理、输出表的形式),逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明软件应支持的终端数和应支持的并行操作的用户数。(例如: INPUT输入 PROCESS处理 OUTPUT输出 LOAD负载量
A 预处理,做怎样的动作,AA CC B BBBB Bb v C CCCC cc v
表
一、xx模块IPO表 对IPO表的简单文字描述。)
3.2对性能的规定 3.2.1精度
说明对该软件的输入、输出数据精度的要求,可能包括传输过程中的精度。(例如:
Xx目标处理:1Byt–10M,包括左右边界值。yy精度范围:„.ZZ的精度:由于xx的特殊性,本系统均采用xx型来进行字符统计运算,概率部分以及其他比率部分精度精确到0.0x%。)
3.2.2时间特性要求
说明对于该软件的时间特性要求,如对: a. 响应时间; b. 更新处理时间;
c. 数据的转换和传送时间; d. 解题时间;等的要求。(这部分只要一一列举就可以:
由于xxx过程中,需要大量xxxx操作或怎样,故xx解题时间占总时间的最大部分。其次就是xx转换和存储的开销。其具体时间特性要求,如下: a. xx响应时间:xxms左右; b. yy更新处理时间:yy;
c. zz数据的转换和传送时间:zz; d. vv解题时间:vv。等等)3.2.3灵活性
说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,如: a. 操作方式上的变化; b. 运行环境的变化;
c. 同其他软件的接口的变化; d. 精度和有效时限的变化; e. 计划的变化或改进。
对于为了提供这些灵活性而进行的专门设计的部分应该加以标明。
(这部分按列举来即可,由于本模块第一目的是用于xxx,其次则是xxxx。故本模块的灵活性在于实际应用者的不同。当需求发生某些变化时,该软件对这些变化的适应能力。具体情况如下: f. 操作方式上的变化:采用集成运行制和独立运行制两种模式,集成运行制是把本模块嵌入到分词工具包的主框架中,提供给用户具有一定UI的可操作软件;独立运行制是可以独立运行于后台,并提供给各种程序调用的模式的工作方式,以增强其生命力。
g. 运行环境的变化:主采用Windows平台的编译版本运行和调试,在时间允许的情况下,同步开发支持SUSE Linux的服务器版本。;
h. 同其他软件的接口的变化:在尽量保证接口不出现变动的情况下,允许接口的重载和再定义。但接口的命名规则是统一的;
i. 精度和有效时限的变化:精度在必须调整的条件下,可以上下浮动10个百分点;有效时限则依据现实的测试情况允许稍大范围的变化。
j. 计划的变化或改进:工作时间安排会存在必然的浮动,这部分要协同分词工具包课题设计组其他成员一同来进行商定,前期的计划可以稍微有些变动,后期的安排尽量按照计划执行。等等)3.3输人输出要求
解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。
(这部分可以把输入输出分为 3.3.1输入要求和3.3.2输出要求,如下给出一个单元的例子。XXX输出
数据名称:XXX输出数据 实际含义:用于XX,表示XXXX 数据类型:Character(字符串)数据格式:XX 数据约束:由于xxx,,大小在xx以内)
3.4数据管理能力要求
说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。(根据实际系统要求列举即可 Name名称 Number数量 Size大小 Increase增长
词典xx xx xxxx 并行执行,其大小依据实际xx大文本而增长)
3.5故障处理要求
列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。
(包括软件压力,内存不足,硬件损坏等,这部分可以根据百度到其常见故障。)3.6其他专门要求
如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。
(例如安全保密性:密钥更换等; 预期扩展:扩展兼容等;OS更换:Slackware转SUSE等)
4运行环境规定 4.1设备
列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:
a. 处理器型号及内存容量;
b. 外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;
c. 输入及输出设备的型号和数量,联机或脱机; d. 数据通信设备的型号和数量; e. 功能键及其他专用硬件(列举说明即可)4.2支持软件
列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。(操作系统和版本:xxxx 支撑环境和版本:xxxx 备用IDE环境和版本:xxxx 与该软件有关的软件组件:xxxx 后续可能扩展环境:xxxx)4.3接口
说明该软件同其他软件之间的接口、数据通信协议等。(例如:
a.用户和主程序调用接口(图中接口1)。这个接口采用封装API形式和函数调用形式,分别以外部调用和内部调用的方式为不同用户提供使用本机械分词工具的入口。例如以xxxx方式调用DLL文件,以xxxx方式调用函数。如下图2所示。图2.软件接口调用图 b.xx接口(图中接口2)。这里是一个xxx的接口调用过程。xxxx)4.4控制
说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源。(例如:
下面通过图表的形式,将本模块以及涉及到本模块的软件模块的运行方法、控制信号,以及这些控制信号的来源,其中箭头所指方向对应的模块的控制信号来自箭头另一方向的模块,具体情况如下: 图3.控制流程图
图3的具体说明情况如下表所示: Name模块名称 Method运行方式 Signal控制信号 Forward控制去向
主程序模块 运行框架 用户调用或运行 1.调用xx模块 2.调用xx方法 3.调用标准输出模块
软件开发公司实习报告 篇5
软件开发公司实习报告
一、实习目的根据所学课程的理论知识,结合企业的运营实际,选定企业管理中的某一具体问题进行调查研究,并撰写调查报告,反映问题的具体表现,其中包含的企业管理理论,以及对问题的解决方案建议。使学生进一步熟悉企业运作实践和调查报告写作方法,同时提高观察问题、分析问题、解决问题的能力。
二、企业实习地点
北京慧点科技有限公司
三、实习时间
2x13年7月29日——2x13年9月8日
四、实习内容
1、网站开发及建设
2、电子商务的基础工作
五、实习总结
在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。因此网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。
计算机将具备更多的智能成分,它将具有多种感知能力、一定的思考与判断能力及一定的自然语言能力。除提供自然的输入手段(如语音输入、手写输入)外,让人能产生身临其境感觉的各种交互设备已经出现,虚拟现实技术是这一领域发展的集中体现。今天人们谈到计算机必然地和网络联系起来,一方面孤立的未加入网络的计算机越来越难以见到,另一方面计算机的概念也被网络所扩展。二十世纪九十年代兴起的Internet在过去如火如荼地发展,其影响之广、普及之快是前所未有的。从没有一种技术能像Internet一样,剧烈地改变着我们的学习、生活和习惯方式。全世界几乎所有国家都有计算机网络直接或间接地与Internet相连,使之成为一个全球范围的计算机互联网络。人们可以通过Internet与世界各地的其它用户自由地进行通信,可从Internet中获得各种信息。人们已充分领略到网络的魅力,Internet大大缩小时空界限,通过网络人们可以共享计算机硬件资源、软件资源和信息资源。“网络就是计算机”的概念被事实一再证明,被世人逐步接受。
(一)、实习过程遇到的困难
1为以后我们能够在工作中顺利做事,辛苦的找来实习项目,这是一个建设门户网站的项目名称是“网贸通”,网站分为近三十个板块,然后我们可以选择那些没有完成的项目来做,我们组选的是“在线管理子平台”这一块。由于不经常接触企业管理的内容,范围比较广而且内有多而杂,所以给我们的搜集带来很大的困难。
2、在建设网站之前我们必须先要把我们的网站策划方案拿出来,所以实习的前两天我们一直在讨论关于网站策划的问题。讨论到网站主题色、网页布局、栏目分类等一些问题时大家都有不同的意见,所以我们是经过自信分析才决定下来网站的一些问题。
3、在网站的建设当中大家会遇到一些想象不到的问题,例如:用PS技术美化图片文字时遇到的技术问题,用Flash做出来的动态广告不是我们想要达到的效果,有时网页之间链接不上,遇到这些技术上的问题
(二)、如何解决问题:
在遇到这些问题是我们都感觉太累太复杂,所以也有想过放弃,想过只不过是一个作业,想办法完成就可以。可是再看看我们为这份作业忙这么些日子也应该要一些更多的收获,这才在老师和同学的帮助下完成此次实习任务。
在实习的过程中我们也体会到,不应该为完成作业而去做作业,应该把它当做自己的工作,自己有义务去完成它,在完成工作的过程中真真正的学到一些东西,才是最主要的。
通过学习实践和公司技术人员的指导。使我真正对所学的软件融会贯通,熟练在手。制作网页用的软件是Dreamweaver,Fireworks,Flash软件。Dreamweaver大大加速网络时代电子交易应用中的项目交付。它提供网页和表单的动态生成到企业级的解决方案,如电子商店,库存管理系统和企业内部局域网的数据库应用等功能。Fireworks是目前最流行的网页图象制作软件。只要将Dreamweaver的默认图象编辑器设为Fireworks,那么在Fireworks中制作完成网页图象后将其输出就会立即在Dreamweaver中更新。Fireworks还可以安装使用所有的Photoshop滤镜,并且可以直接导入PSD格式图象。更方便的是它不仅结合Photoshop位图功能以及CoreIDRAW矢量图的功能,而且提供大量的网页图象模板供用户使用,例如,网页上很流行的阴影和立体按纽等效果,只需单击一下就可以制作完成。当然,其最方便之处是,它可以将图象切割,图象映射,悬停按纽,图象翻转等效果直接生成HTML代码,或者嵌入到现有的网页中,或者作为单独的网页出现。Flash是目前最流行的矢量动画制作软件,与其他Wed动画软件相比,它具很多优点。制作的是矢量图形。只要用少量矢量数据就可以描述一个复杂的对象,而占用的储存空间只是位图的几千分之一,非常适合在网格上使用。同时,矢量图象不会随浏览器窗口大小的改变而改变画面质量。使用插件方式工作。用户只需安装一次插件,以后就可以快速启动并观看动画,而不比像Java那样每次都要启动虚拟机。Flash插件也不大,只有170KB左右,很容易下载并安装。还提供其他一些增强功能。例如,支持位图,声音,渐变色和Alpha透明等。拥用这些功能,用户就完全可以建立一个全部由Flash制作的站点。Flash影片也是一种流式文件。这就是说,浏览者在观看一个大动画时,可以不必等到影片全部下载到本地再观看,而是可以随时观看,即使后面的内容还没有完全下载,也可以开始欣赏动画。主图是一个网页的门面,它能体现出这个网页的整体风格。
软件开发公司实习报告
不知不觉,在大庆实习的日子快过去半个月,记得刚来大庆的头几天,感觉非常不适应,软件开发公司实习心得。首先是环境:这里吃的东西很贵,而且这里的物价很高。其次是大庆人:大庆人办事的效率很高,这就是铁人的精神吧。
对于以上种种,待3,4天基本就适应,难怪一些长辈老是说:习惯,就好。
来的第一天,我们听付丽萍老师讲一节课,可以说完全不知所云,但还是可以听到一些东西的,譬如:工作环境的适应,人与人之间的交际,处理各种事情的能力,其中最重要的就是养成良好的工作习惯。有良好的工作习惯,才会被上司,老板和同事认可,将来也会比同辈有着更快更多的升职机会,而且一个良好的工作习惯,无论你从事哪个行业,都是受用终生的。然后,就是认识我们的董亮老师,一个可亲可爱的老师,传说中他们一个月会赚十几万呢!天文数字,望尘莫及啊。
在随后的一段时间里,我们被分为八组,每组六七个人,有一个组长带领。我们组织作一个项目——论坛,在第二,第三个礼拜感觉没有刚来时那么拘谨,我更明显感觉到自我计划,制定目标的重要性。在我们犯错误的时候,老师会惩罚我们,陈发的方式很另类——唱歌或者讲笑话,不算是体罚大事可以达到对我们的约束。然而,歇息期间有组织我们做游戏,看似很简单的游戏其实是想培养我们合作意识。
在实习的过程中,我深刻的体会到三点:第一,项目是以迎合客户和使用者为目的的,不可能像教师那样为我们制定一套教学计划,心得体会《软件开发公司实习心得》。想要知道些什么,渴望懂得些什么,全要靠你自己想学,你自己不问,没人会主动来告诉你。第二,“纸上得来终觉浅,绝知此事要躬行!”在短暂的实习过程中,让我深深的感觉到自己在实际运用中的专业知识的匮乏,在行业中的经验真的很重要。
第三,能更早的接触你所在行业的真实情况。不出来自己转一圈,根本不知道自己学的一些专业知识,哪些是十分重要,十分实用的。就比如说英语。以前听老师说过,听朋友也说过,将来工作,英语相当有用,外企就更不用说。当时没什么感觉,但当我频繁的看到一打打英文资料手册、帮助文档时,我已经切身地,的的确确地感受到英语的重要性。
软件开发专业调查报报告范文 篇6
才
需
求
调
查
报
告
班级:计算机XX班 姓名:XXX 学号:08030100 时间:2009年2月5日 软件开发专业调查报报告
1946年,世界上第一台电脑在美国诞生。1999年,中国大学扩招计算机专业大学生,计算机一直在发展,而且以一种翻天覆地的速度再发展。随着社会经济的发展,对信息化的高度要求,IT行业在2003年进入一种火热的发展趋势。到了今天,根据近几年的大学生毕业就业调查显示,计算机专业成为了各种就业低下的专业之一。很多人认为计算机专业将成为,或者已经成为一个冷门的专业了。这是事实吗?
作为计算机专业的一名学生当然对这些问题十分的关注,我们关注自己的专业,关注自己未来的工作,未来计算机行业的发展,为此,在寒假生活里,我特地通过各种渠道,对自己的专业做了个比较全面的调查,希望对自己的未来能获得一个清醒的认识,进而对现在做个更好的规划,是自己始终在发展的社会中立于不败之地。
我们不能否定的是随着科技的进步和信息事业的发展,尤其是计算机技术的发展与网络应用的逐步普及,电脑已成为人们工作和生活中不可缺少的东西。IT行业迅猛发展,就业工作岗位也比比皆是,在最近几年内,IT职场排行榜仍旧处于所有行业中的“老大”。计算机专业学生就业方向也应该有所提高,但据统计表明,计算机专业学生就业率有明显的下降,这是为什么呢?虽然说计算机这行就业单位很多,但是面临的竞争更加激烈。只有对基础知识的学习才可以受用终身。由于网络的普及,有人认为计算机是随便专业的学生都可以抢饭碗的专业。大家都说计算机是“民工专业”,随便一个学数学,生物,甚至物理化学的学生都可以很容易踏足这个方向,然后一脚踢开科班出生的计算机专业学生,拿到offer。但是我们从实际调查了解到的情况,的确很多搞计算机很厉害的人并非科班出身。毕竟,计算机现在成了大众消费品,门槛低,一台PC,再买几本书,就可以学了。做实验也都是下载网上数据,然后实施, 而如VB之类写个小程序跑跑就行了。确实不像生物,化学,物理这些,需要严格昂贵的实验设备才能做。可是,有很多学科,比如数学,平面设计,现代文学,连PC都可以不要,只要铅笔和白纸就可以做了,那不是更 “民工化”?仔细想想在国内工业界,还是学术圈认识非科班出身的IT们,知识体系或许多多少少是有缺陷的, 虽然他们在局部领域有很不错的工作。我的一个叔叔很喜欢计算机。他自学J2EE。从基本的Web开发,JSP,一直到大型的JBOSS,轻量级的Spring,都是无一不精通。甚至还自学了TCP/IP,Linux下大规模多进程的开发。这里说的精通,不是纸上谈兵,会背书和考试的标准。他的精通,都是在真实的大型服务器上有过实际的产品开发作为依据的。这样人在国内拿个月薪一万应该算保守吧。但是,他始终在计算机理论方面的学习无法跟进科班出身的同学相比。专业出身的人和他合作之初的时候,发现他在处理实际优化问题上,几乎只会做两件事情,一个是缓冲,第二就是Hash索引。由于没有深入学习算法,数据结构,操作系统等理论知识,所以在他看来,很多优化策略都是如此教条式的策略。遇到实际问题的时候,不见得就有效了。真正一个合格的科班计算机学生是应该能够根据实际问题分析缓冲,Hash索引的平均时间复杂度,空间复杂度的。而对于他这样来自文科班,光是求数学期望结合概率问题,就足够麻烦了,自然看不明白深入的算法分析。还好,凭着他个人对计算机无限的兴趣,后来他自己也逐步完善自己的知识体系。而在优化的实际的软件开发,产品设计,需要处理大规模数据的时候,涉及到了很多数据库,操作系统的知识,就发现自己很难适应。比如说,为什么实际系统里面瓶颈都是数据库?数据库里面的聚集索引为什么快,为什么读数据的策略要顺序读?为什么一定要使用异步I/O,如何使用„等等一系列的问题,让一个完全没有操作系统,数据库,网络背景的人会感到无所适从。而我们都知道,这些东西在实际的应用环境下的优化很多时候比数理计算上的优化更重要。缺乏了实际基础知识而做的理论优化,很多都是空中楼阁。CS毕竟是一个应用学科,脱离了实际应用的研究是没有意义的。其实身边的非科班出身最后学得比科班出身还好的人也大有人在。但是,他们私底下付
出的汗水也是有相当的份量,并非所谓外行人所说的,轻轻松松就可以抢IT 的饭碗。即便能轻松抢到的,也不见得是什么好饭碗。可以打一个比方。国内现在职业技术培训学校很多,很多教3DMax也可以快速培养出一个美工来。但是,真正能够在各大游戏公司里面做美术总监,原画设计的人,始终都还是从大学里面学平面设计出来的。真的美工设计,都要从基本的色彩,素描,构图一步一步学过来的,不是只会一点3DMax就可以速成的。从我自身的感受来说,要是真的打算好好学习CS专业,大学本科到硕士期间需要不断地学各种基础数理知识,专业课程,同时也要不断地做各种Project汲取工程经验。计算机学科算是一个相当综合的领域。既需要科学家一样的数理头脑,同时又要有工程师那样的系统头脑,能同时最好这两点真的很不容易。即便是在科班出身的人,也往往只能在其中一个方面突出。但是,科班出生的学生们,真的不需要惧怕外专业的竞争者。老天给所有人的都是一天24个小时。遇到学数理厉害的,我们可以跟他比工程,遇到工程厉害的,我们可以跟他们比数理。如果真的遇到两者都很厉害的,那么认命也不会亏。
对此,计算机专业出身的我们只有不断的完善自我才能使自己在趋于白热化竞争的IT行业找到立足之地,实现自身的价值与追求。我们应该从以下几个方面从大学生活开始就不断的提高自身素质。
一、要生活在群体之中,群体是我们生活的灵魂。
二、锻炼自己的表达能力。
三、学好专业知识,基础知积功底要好,社会知识渊博。
四、对生活、对工作要积极主动、充满热情、灵活自信。
五、锻炼自身管理经验和能力,提升自我的天资、号召力、管理能力。
六、诚信做人、严于律己、宽以待人。
当然,做到以上几点并不意味着就可以找到好工作,挣到大钱了,大学生在学校时,如果想在计算机高层职业有所突破,就要学好数学和英语,特别是在算机应用、算法和编程。同时要不断地挑战自我、完善自我,让自己的一生过得精彩和充实。用业余时间去做点兼职工作,开阔眼界。同时要注重自己的人际关系。把握好自己的发展方向。无论在哪个行业,干好都是不容易的。在今天这个充满机遇和挑战的时代里,在软件产业这个高速发展、不断创新的领域内,只有那些不懈努力、善于把握自己、勇于迎接挑战的人才能取得真正的成功。中国高新技术产业能够在新世纪中蓬勃发展,中国的人才能够在事业上不断取得成功。所以,大学里要好好把握机会,培养自己的学习能力、交流能力和团队合作能力,诚信处事。学会与人相处,这也是大学中的一门“必修课”。
这些年计算机有些专业确实已经发展的有饱和之势,然而计算机的迅猛发展同时也提出了对软件的不断更新与测试,同时在安全保护计算机方面也出现了高度的发展空间。2011年各行业就业依然严峻,据2月22日在北京举行的全国就业工作座谈会得知。2010年应届毕业生规模是本世纪初的6倍,2011年高校毕业生人数为660万人,“十二五”时期应届毕业生年平均规模将达到近700万人。“高校毕业生,是就业工作的重中之重。”人力资源和社会保障部部长尹蔚民在会上强调,“我们必须下大气力抓好高校毕业生就业工作。”
而据国内某知名网站统计,目前软件测试工程师的需求逐年增加,据相关数据统计未来软件测试的工作岗位需求将突破40万大关。如果你认为软件测试只是对计算机专业的人来说是个好工作,那么你就错了。其实的软件测试这个行业的入门门槛很低,它不像开发人员那样要熟练编写程序代码,掌握JAVA、c++等语言,测试人员只要能看懂程序代码,掌握基本的C语言知识,了解数据库等相关知识即可。和开发相比而言门槛算是很低了,因此很多非计算机专业的人学习起来也都是很快的。更重要的是它不像开发那般重男轻女,测试人员一般要求对工作更加耐心、细致、敏感,这从某种程度上来说更适合女性。在很多公司里,相比开发人员的“阴阳失调”,测试人员的男女比例更加均衡。而且测试的职业生涯比开发
要长很多。一般的开发人员到了40岁的时候都要转行了,但是测试人员却是个越老越吃香的职业,很多人在50多岁的时候仍然从事测试行业,工作时间越久,测试经验越丰富。软件测试已经在国外非常成熟,国内的发展也是刚刚起步,同时国内大专院校没有相关软件测试专业,目前从事测试的人员都是从开发人员转测试工作,对系统的软件测试工作理解不到位。国内目前只有少数软件测试的培训机构,其中北测教育作为国内最专业的软件测试工程师培训机构,每年帮助上千名应届生顺利入职国内外知名IT企业。
在新浪求职上显示,IT行业巨头争夺软件测试人才,当然也不能说其他的计算机行业就难以就业,对此专家建议切忌有病乱投医的行为,大学毕业生应理智看待自身条件,合理选择职业。在凭借自身专业能力无法突破瓶颈时,可以放宽视野,通过职业培训转变行业,选择进入就业前景好的行业。大学毕业生该选择哪些专业?专家认为如软件测试师等一批朝阳职业就值得选择,并对软件测试行业做出了相应的分析。
近年来,中国软件产业保持了迅猛发展的态势,但是,由于一直以来中国许多软件企业存在着“重开发、轻测试”的倾向,在造成软件产品质量问题日渐突出的同时,也突显了中国软件测试人才的极度匮乏。这不但已经成为影响中国软件产业发展的瓶颈,制约着软件整体质量的提高,同时也加重了软件产业的开发和服务成本负担。因此,如何尽快建立软件测试人才的系统培养机制、进而保障软件业的健康化发展已成为现阶段亟需解决的当务之急。
为了同国际IT行业接轨,软件测试行业近几年有了飞速发展,以前人们认为的“重开发、轻测试”倾向有了很大改观,测试人员的缺口越来越大,2006年软件测试人才的缺口超过30万,据专家预测,在未来5到10年中这一数字还将继续增大。统计显示,在中国一百二十多万软件从业人员中,真正能担当软件测试职责的不超过5万人。在软件业发达国家,软件测试人员与开发人员之比接近11,而在中国该比例仅为18左右,很多企业没有专门的测试职位。在目前已有的IT职业中,软件测试工程师职业寿命长,发展前景广阔,待遇优厚等特点,已经成为现在求职者关注的职业。
IT行业是一个充满挑战和机遇的行业,只要我们有勇气,能坚持,有决心,一定可以在计算机行业找到自己的成功,实现自己的理想。
个人认为未来计算机安全和软件测试以及计算机网络的发展会有很大的发展空间。通过这次调查我对计算机获得了更深刻的认识,但依然浅薄,希望自己在以后的学习之中获得更大的进步,在未来的发展过程中始终进步,始终立于不败之地。希望自己在专业方面可以获得突破。
产品软件开发部述职报告 篇7
由于软件需求变化等原因引起的持续的软件演化经常会导致软件代码质量发生退化[1]。代码质量的退化体现在软件开发的各个方面,例如软件的可理解性变差、代码过于复杂使得修改代码变得困难以及耦合度过高使得代码变得难以测试。软件的退化使得开发人员在软件开发和维护时需要花更多的时间和精力,而完成的代码却更易出错。因此,为了减少软件维护过程中的成本,实时监控项目中软件代码质量的变化,并且快速定位导致软件退化的原因,对项目管理人员具有重大意义。
在软件开发团队中,如果软件项目的规模比较大、复杂性比较高,仅仅依靠项目管理人员的经验来评估软件质量将变得不可行。因此,人们常常使用自动化的代码度量值分析工具来评估软件的质量。代码度量工具提供了一系列代码的静态度量指标( 比如软件的内聚度、耦合度、方法长度等) ,可以从多个角度来客观地评价软件的内部质量。另一方面,通过使用版本库和bug库,项目管理人员可以通过软件开发过程中的历史数据( 比如某一个文件的在历史上的更改频率、或者与某一个文件相关的开发人员信息) 和项目出现的bug来了解开发活跃程度、代码责任人变更以及代码缺陷等信息。
然而,仅仅依靠上述工具并不能很好地帮助项目管理人员在宏观上把握软件质量变化的趋势,也难以帮助他们快速定位引起软件退化的原因。首先,上述工具难以做到数据之间的关联和对比。历史上的版本变更往往需要关联到静态度量值之间的变化,同时,项目管理人员需要对比各代码度量值之间变化趋势分析软件中存在的问题。其次,项目管理人员难以从原始的、 细节的信息中获取软件变化趋势的宏观信息。无论是代码度量值分析工具提供的度量值还是历史信息,过于庞杂的细节信息使得项目管理人员很难直接得到有意义的结论。因此,这些信息需要汇总、提炼和进一步抽象。最后,一些有意义的信息需要深度挖掘和分析。比如,通过对历史上bug出现的情况进行缺陷预测可以让开发人员关注更容易出错的代码,从而有助于测试工作。
本文提出了一个基于软件开发过程数据的可视化产品监控工具,结合了历史信息和静态度量指标来帮助项目管理人员实时监控并发现软件代码质量的变化。同时,工具进一步对原始数据进行关联、整合和对比,从版本、开发者、模块等多维度展现软件产品的当前状态,由此能够帮助相应人员及时分析变化的原因。最后,该工具还展现了一些数据深度分析的结果( 比如缺陷预测的结果) ,为软件的维护和测试工作的决策提供依据。
1 相关工作
软件演化软件演化一直是软件工程领域比较重要的课题。文献[16]提出了一个结合需求实现与软件演化的可视化工具,用于发现演化模式。文献[14]提出了基于软件架构演化的一套度量值,并根据度量值研究了软件价格的连续演化和非连续演化的情况。文献[17]基于类级别和包级别的软件度量值变化研究了软件演化的可视性,和本文工作不同的是,文献 [17]仅仅研究了度量值的变化,没有度量值以及bug的关联分析,以及bug的预测。文献[5]研究了4个开源项目,分析了它们的软件演化过程,提出开源项目的演化可以分为研究导向、实用导向和服务导向。文献[19]提出了一种基于版本间模块化差别分析的方法,监控软件产品设计的退化,并为软件决策提供有用的反馈。
软件度量值软件产品度量值包括代码度量值和设计度量值。文献[9]验证了产品度量值与代码缺陷存在相关性。文献 [10]提出了6个面向对象度量值( 内聚度、耦合度等) ,文献[2, 11]验证了这6个面向对象度量值不仅适用于开发项目,也在工业项目中有很好的表现。一些研究人员也提出了其他度量值, 例如变更信息文献[13],从他们的结论中可以得知,这些过程度量值能够更好地建立更加适合的缺陷预测模型。然而这些度量值收集比较困难,对于新项目或者管理不当的项目,更是无法收集。
缺陷预测许多经验研究表明,使用软件度量值建立缺陷预测模型用以预测软件产品的缺陷是一种十分有效的方法。通常,建立缺陷预测模型可能用到的分析技术有线性回归[2,3,4,18]、 逻辑回归[2,3,6,18],神经网络[2,7]、贝叶斯网络[2,8]、随机树[2,12]。 其中,线性回归、逻辑回归、贝叶斯网络和决策树模型使用最为广泛。线性回归模型通常用以预测软件代码中的缺陷个数,而逻辑回归、贝叶斯网络和决策树模型通用于预测软件代码是否包含缺陷。
2 方法与实现
2. 1 领域模型
基于软件开发过程数据的领域模型如图1所示。领域模型中,实体包括文件、模块、文件版本、度量值、提交、bug和开发者。其中,一个模块拥有多个文件,一个文件对应多个文件版本,每个版本的文件都具有各种度量值,包含内聚度、耦合度、代码长度等。一个开发者可以有多次提交,一次提交对应多个文件版本。每次提交可能是修复一个bug或者没有修复bug,而每个bug,可能在一个或者多个版本中修复。一个bug可以出现于多个文件版本,而一个文件版本也可能产生多个代码bug。
度量值未在图中列全,计算的所有度量值如表1所示。这些度量值被广泛应用于很多研究[2,10,15],故本文采用这些度量值作为可视化数据。这些度量值一般针对类( 文件) 级别计算而得,用于表现某个类( 文件) 的设计,描述类( 文件) 的内聚、耦合等。工具中,基于模块的度量值是模块中每个类的度量值的均值。
2. 2 工具实现
工具开发使用Java语言,系统框架如图2所示。本工具所构成的平台主要分为三层: 数据接入层、数据分析层和监控结果展示层。首先,数据接入层接入各个数据源( Git库、SVN库等版本库以及Bugzilla等bug库) 。本工具的数据接入层在数据源方面做到了平台无关性,即,可以接入各种版本库和bug库以保证整个平台的通用性。其次,根据数据接入层所获得的数据源,数据分析层接入各个数据处理平台( 如Understand、SPSS等分析平台) ,进行数据的整合、关联、汇总并作一定程度数据挖掘来得到有意义的数据。最后由监控结果展示层把数据分析结果以可视化的方式展现出来。
2. 2. 1 数据接入层
目前的数据源主要接入源代码版本信息和bug信息。源代码版本信息包括各版本的开发者、提交时间、修改文件、各版本源码等。bug信息包括bug提交者、修复者、bug描述、bug级别、 bug状态等。
2. 2. 2 数据分析层
数据分析层主要进行数据的整合、关联和分析。
( 1) 数据关联
数据关联主要负责各类数据之间的关联,其中最主要的是利用启发式规则关联bug信息与历史版本信息。bug与修复版本的匹配主要是基于版本提交时的提交日志。版本提交日志中一般包含版本的提交信息,如果该版本是为了修复某个bug,那么该版本的日志中一般都会有fix或者bug字样,并加#号后接bug id。因此,如果一个提交版本的日志中包含了fix,bug字样,我们就认为这是一次用于修复bug的版本提交,同时如果该日志中包含了某个bug的ID号,那么我们就认为该次提交与具有该ID号的bug相关,并进行关联。
( 2) 度量值分析
度量值模块根据每个版本文件的源码计算相应度量值。度量值计算模块可以接入各种数据处理平台来分析软件的度量值。本工具实现过程中,度量值计算集成了工具Understand。 Understand是一个支持多语言的源代码分析工具,其中计算软件产品度量值是其十分重要的功能之一。同时该工具提供API方便外部程序调用。
( 3) 缺陷预测分析
缺陷预测模块进行缺陷预测,该模块的实现接入了SPSS平台,并可以使用多种缺陷预测模型。SPSS是一款统计分析软件,提供了各种功能基于python的程序接入。本工具的初步实现中缺陷预测模型使用的是多元线性回归模型,这是一种标准的统计模型[2,3,4,18]:
式中,xi是度量值,ai是系数,c是常数。因变量y表示含有缺陷的个数。
缺陷预测中,选择当前版本所有文件中已经发现bug的作为训练集,文件全体作为测试集。y的预测值为负无穷到正无穷的实数,表示文件中可能含有的bug的个数。
2. 2. 3 监控结果展示层
监控结果展示即UI模块,主要UI界面对象使用的是Java Swing,从数据处理模块获得合成的数据后,调用JFree Chart相关接口生成相应的图表。为了能够多维度展示结果,UI模块能够完成版本间以及模块间比较,实现针对版本和开发者过滤,并最终生成柱状图、折线图和饼图。因此,工具能够实现的功能如下:
( 1) 质量趋势分析
版本变更中文件( 类) 、模块、以及整个项目,度量值( 包括bug数、缺陷预测值) 的变化趋势。根据趋势,可以分析代码质量的发展走向。如果项目管理人员发现影响代码质量的度量值越来越差,则需要立马做出调整,防止这种趋势进一步恶化。
( 2) 数据分布
同一版本,各模块度量值( 包括bug数、缺陷预测值) 的分布。根据分布的差异,可以找到问题所在的模块,缩小问题查找范围。
( 3) 出错代码推荐
根据度量值以及历史bug计算的缺陷预测值,并作为代码是否包含bug的参考。
( 4) 版本提交统计
版本变更中,对文件的修改次数统计。
( 5) 过滤分析
基于特定开发、特定版本、特定文件以及特定模块的单一过滤以及多元过滤分析,更加有针对性的发现问题。
工具界面展示如图3所示,其中左边区域为监控度量值选取,可单选也可多选; 右边区域筛选开发者、版本号以及文件等; 中间区域为图表展示。
3 案例研究
3. 1 案例说明
本文提供的 案例采用Eclipse中eclipse. jdt. core模块, eclipse开发组提供了该模块的开发Git库以及bug库。eclipse. jdt. core模块是eclipse中jdt的核心模块,截止本工具的开发版本,该模块的代码库包含55 086个提交,bug库中,状态为已修复的bug记录包含5279条。本文挑选了早期的部分版本做了分析,以下图片均来自本文工具截图。
3. 2 过程分析
( 1) 发现异常值
图4为整个项目连续几段时间内的发现bug数,其中x轴表示时间段,y轴表示bug数。从图中可以发现,前几个时间段内,发现bug数都在5个左右,而最后一段时间发现17个bug,较平时增加迅速。因此,看到这个数据,项目管理人员可以提出疑问,是否这段时间内的代码存在问题。
( 2) 原因细化
于是项目管理人员针对该段时间发生的bug做进一步调查。图5为在该段时间内,模块间bug数量的分布比较,本工具中把项目根目录下的第一个文件夹作为模块,bug数为选中版本的均值。可以发现,compiler这个模块bug数量所占比39% , 远高于其他模块。图6是compiler模块的该段时间内各版本的缺陷预测值。这里,每个版本的缺陷预测值用该版本的源码分析出的度量值与该版本前已修复的bug数建立缺陷预测模型计算而得,模块的预测值为模块中各文件的预测值的平均值。可以发现,compiler模块最后几个版本的bug预测值上升了将近一倍。由此,可以推断bug数量增多的背后有一定原因。
( 3) 度量值比较
于是项目管理人员针对该模块的各个度量值进一步分析。 图7为各模块间内聚度、耦合度以及圈复杂度的对比,度量值为选中所有版本的均值。从图中可以发现,compiler模块比其他模块,无论内聚度、耦合度还是圈复杂度并无明显的差异。由此可以说明,compiler模块从设计上,并无明显的复杂于其 他模块。
图8为compiler模块该段时间内11个版本的内聚度、耦合度以及圈复杂度的对比。从图中可以发现,compiler模块该段时间内聚度、耦合度和圈复杂度都无明显的突变。由此可以说明,compiler模块在该段时间内的变动并无对其整体结构产生很大的影响。
( 4) 开发人员的修改
最后,项目管理人员对该段时间内的提交次数做调查。图9为该段时间内几个版本中,各模块的修改次数,从图中可以发现compiler模块改动次数较多,有的版本甚至达到了20几次修改。因此,可以推断是否是多次的修改导致compiler模块bug增多。图10为某个开发人员该段时间内连续几个版本对compiler模块的修改次数。从图中项目管理人员最终发现,开始的版本,这个开发者没有对compiler模块做过任何修改,而后期突然增多。再次调查这位开发人员的信息,则得到该开发人员是新加入的成员的信息。最终,该项目管理人员得出一位新加入的开发人员在他不太熟悉的模块上频繁修改代码导致了更多bug的结论。
通过本案例研究的分析,一个项目管理人员可以通过软件质量变化的趋势检测代码质量的变化。同时,他还可以通过数据关联和分析的手段比较快速地定位导致变化的原因。由此采取相应的措施以防止软件质量的退化。
4 结 语
本文介绍了一个基于软件开发过程数据的可视化产品质量监控工具。通过度量值的计算以及各版本、各模块的多维度整合、关联和比较,该工具可以有效地展示软件产品的当前状态与走势,帮助项目管理人员尽可能早地发现软件开发中的问题。 该工具还集成了缺陷预测技术,用于更好地帮助项目管理人员分析软件退化的原因。
同时本文进行了一个基于eclipse中jdt的核心模块的案例分析。案例分析从宏观入手,通过版本间以及版本内模块间的多维度比较,逐层深入,并最终发现问题所在。该案例结果表明,本文的工具在实际应用中具有一定的意义。
【产品软件开发部述职报告】推荐阅读:
软件产品开发08-27
软件产品市场调研报告10-28
产品追溯软件09-05
通用软件产品06-30
软件产品企业标准08-16
软件产品营销策略09-01
软件产品购销合同11-19
嵌入式软件产品07-21
软件项目产品质量管理07-28
软件产品管理办法08-31