软件开发分析报告

2024-04-26

软件开发分析报告(通用8篇)

篇1:软件开发分析报告

汽车检具检测分析报告自动生成软件开发的论文

摘要:开发了汽车检具检测分析报告自动生成软件,能根据测量仪器提供的检测数据自动生成检具检测分析报告。软件以Visual Studio.Net为开发工具,基于Windows系统进行人机交互界面的设计、检测数据的录入与校验, 以及检测示意图的抓取,实现了图文并茂的检具检测分析报告的自动生成,大大提高了检测工作效率,降低了报告的差错率。

关键词:检测分析报告;数据录入与检验;图片抓取

1 引言检具由于结构简单、使用方便,被广泛应用于汽车等制造业,作为检测产品合格性和分析误差的工具,因此,检具本身的精度与误差分析就显得尤为重要。目前,汽车检具的检测一般采用三坐标测量机来完成,但由于客户化的检验报告格式繁多,误差分析要求各异。目前的测量系统大都不能实现自动分析误差和出具分析报告的.功能,主要依靠人工逐个选择和拷贝数据,生成指定模式的检测分析报告[1], 这就严重影响了检具检测的准确性和效率。因此, 规范汽车检具检测报告格式,开发方便、快捷、准确的检具检测报告智能生成软件是检测技术和汽车制造行业发展的必然趋势。

目前已有很多关于检测报告自动生成软件的研究,刘飞[2]等从测量系统分析和制造质量评估两个方面对检具的验收工作进行了分析,并由此建立了质量验收信息管理系统;李雷[3]等通过Lotus Notes 数据库管理软件对治具校正报告进行自动录入,并通过Lotus Notes邮件管理软件传输给主管进行签核;黄伟[4]等以Microsoft.net为平台,基于C#语言研究了Word文档自动生成技术。综合比较,发现现有研究存在以下缺点:(1)多数软件仅对Word进行开发,只能进行简单的文本操作,还不能满足很多行业对数据分析、校验处理的需求;(2)多数软件生成的检测报告仅提供了数据报表,没有图文结合,可读性差;(3)多数软件只能应用于某一专用(格式)检测报告的生成,缺乏灵活性与智能化,应用面受到制约。此外,目前还没有针对汽车检具检测分析报告自动生成软件的研究。本文基于Windows系统,在Visual Studio平台上,利用C#语言开发了汽车检具检测分析报告自动生成软件,软件采用最通用的微软公司的文字处理软件Microsoft Word和Microsoft Excel自动生成图文并茂的检具检测分析报告。

2 系统设计考虑到检测项目以及客户化模板格式需求的多样性,系统设计成“主界面框架+扩展插件”的开放形式,即软件的基本流程固定,但每个项目的具体流程可以灵活机动,当需要增加新项目时,只需增加新项目的“扩展插件”即可。系统架构如图1所示。系统通过智能化的导航功能,引导操作人员按界面提示,进行简单的操作,完成检测报告的生成。系统功能模块如图2所示,主要功能包括: 96工具技术图1 系统架构图 (1)引导用户填写项目信息,自动生成检测报告封页和表头; (2)测量数据坐标变换与格式自动转换; (3)进行测量数据的校验、误差分析与优化组合。在有效数据不足时,提示继续测量; (4)提供抓图与校验功能,图片自动保存到检测报告中; (5)自动生成客户化模板格式的检测分析报告;

篇2:软件开发分析报告

1.1项目背景

随着人们物质质量的提高和对信息需求增强,特别是对移动端信息获取的需求。各类手 机APP应运而生,在众多APP中,微信应该是取得最大成功的一个APP了。从2010年11月20日 立项,到2011年1月21日微信发布“微信1.0”版本,微信只是对QQ的扩展。但是到2012年9 月17日,微信用户已经达到2亿,到目前为止已经达到4亿用户。腾讯于2012年8月18日,正 式将“微信公众平台”对外开放。因公众平台提供了众多APP能够提供的文字、图片、语音、图文链接等功能,所以微信公众平台成为很多企业对移动端需求的必然选择。

科沃斯(苏州)机器人有限公司,是以生产、销售家庭服务机器人为主的企业,也就决 定了科沃斯必须赶在信息技术的前沿,加强与客户的沟通,第一时间响应客户需求。且面向 的用户绝大部分是微信的用户,这样使用微信平台开发与用户沟通的平台就应运而生了。

1.2术语定义

Java:Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具 有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人 PC、数据中心、游戏控 制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球 云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

Android:Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。该平台由操作系统、中间件、用户界面和应用软件组成。

Wifi:Wi-Fi是一种可以将个人电脑、手持设备(如PDA、手机)等终端以无线方式互 相连接的技术。

PHP:PHP,是英文超文本预处理语言HypertextPreprocessor的缩写。PHP是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C 语言,被广泛地运用。

微信是基于移动端的APP应用,那么就决定了PHP和Java语音成了它的最佳选择,同 时对于公众平台的开发者来说,这两种语言也是首选。

1.3参考资料

出版单位/来

源 腾讯 腾讯公众平台 老贼(网络作 者)文档名称

微信公众平台 公众平台开发指南 《微信公众平台入门到精 通》

版本号

日期 备注

微信 5.0 2013年 8月 8日

2012年 8月 18日 2013年 8月 6日

2.技术可行性

2.1功能说明

目前微信公众平台提供“编辑模式”和“开发模式”两种,二者只能选择其一。对于小

微型公司,采用编辑模式可以很简单的实现很多功能;而对于中型及以上的公司,可能有很

多的大量用户群和访问数据,并且需要对数据进行存储和应用,同时需要微信平台和其他系 统平台产生数据的交互,那就只有选择“开发模式”了。目前支持文字、图片、音乐、语音、链接、视频等格式。

2.2技术分析

见下表: 关键技术项 公众平台 ID php开发工具 要求 必备 必备

现有水平了解 了解

可以满足要求。

虽有欠缺,但通过学习、指导和培训,应该在短期 内可以达到要求。

SAE可以提供 10G的数据存储量,不过数据的安 全性不高。如果需要保证数据的安全性且数据量较 大的,需要自备服务器(必须提供 80端口)。

开发者实名 认证 应用需求调

研 公众平台限

制 必备 必备

熟悉 熟悉

从提供必要的认证资料到审批结束大概 1到 2周。

对照分析

服务器 必备 熟悉

参照软件需求调研

必备 了解

每月只有一次群发消息权利及小表的限制

3.资源可行性

3.1人力资源

本项目需要一名精通php和微信平台开发的软件工程师主持开发,并要求需求部门的密 切配合。

3.2软件资源

服务器系统平台 Windows Server2003/Windows XP/Windows7及以后 客户端系统平台 Android操作系统5.0及以后

3.3客户端系统平台 Android操作系统5.0及以后设备资源

服务器硬件要求:唯一服务器,且对外开放和指定域名,硬件符合一般服务器要求和使用要 求。

客户端硬件要求:支持android操作系统的嵌入式平台,支持wifi功能,支持GPS定位,带触摸屏功能,具有音频、视频输出等

3.4时间资源

预计项目调研、开发、研究,与产品测试,市场推广所需时间为三至四个月。

5.社会可行性

5.1法律可行性

该产品没有侵权或者抄袭等违法情况,也没有被申请过专利,故可行。

5.2政策可行性

无国家政策限制,也无地方政府(或其它机构)的限制。

5.3使用可行性

对于客户端的使用会涉及到各种类型的游客人群,不要求用户对其特别的熟悉,因此可 以做到让使用方法简单易懂,操作方法尽量浅显明了,使用户能够在短时间内借助简易的说 明快速上手。为了提高系统的实用性,要求具有较强的可靠性和较大的吞吐量。

对于服务端的操作人员,软件属于一次成型产品,后期如需更改机构性或实质性内容则 需要重新立项,使用端不提供修改功能。

篇3:敏捷软件开发应用分析

1敏捷软件开发价值观及开发原则分析

1.1敏捷软件开发价值观分析

对敏感软件的开发有着相应价值观, 在经典软件工程方面旨在定义完备的过程规范, 从而使得软件开发运作犹如机械设备运转一般, 人在其中知只是起到零件更换的作用。敏捷软件还提出了实施软件开发要能对人的积极创造性充分发挥。从重型方法观念层面来看其认为软件等于文档加代码。敏捷软件开发对客户参与有着强调, 并给客户调整需求机会对客户的需求得到了有效满足。

1.2敏捷软件开发原则分析

敏捷软件开发过程中要能够遵循相应的原则, 最为主要的是满足客户的需求, 开发出真正有价值的软件, 即便是到了软件开发后期也要能够对对需求充分重视, 将其放在首要位置。通过开发的变化对客户创造出竞争优势, 要能经常性交付可工作软件, 在间隔上最好是愈短愈好。并且在整个项目开发当中开发人员和业务员的关系要保持融洽, 这样才有利于软件的实际开发, 然后要能围绕被激励的个体对项目加以构建。敏捷过程要提倡可持续开发速度, 开发简单的软件是根本目的。

2敏捷软件开发方法特征及敏捷管理优势

2.1敏捷软件开发方法特征体现

对敏捷软件开发有着显著的特征, 主要体现在灵活性以及简捷性等层面, 其中在灵活性层面主要是通过迭代式开发流程, 把整体开发过程细化成比较独立并完整的阶段进程, 这样在每阶段进程中开发人员就能对产品方向随时进行调整。和传统的设计模型相比较而言, 这一开发就比较方便适用于现代的软件产品研发, 在灵活性特征方面以及持续性方面的体现就使得其应用的广泛性也能得以突出。另外, 在敏捷软件开发的简捷性特征层面主要是对客户需求比较重视, 在此基础上将软件开发的应用性能也能有效提升。

2.2敏捷管理的主要优势分析

敏捷管理方法对软件的开发有着重要意义, 也有着诸多优势呈现, 有着允许用户需求变化的优势, 在这一变化方面能够将成本降到最低程度。还有是对设计的错误有了相应减少, 在未经编程想象的设计实施编程阶段就可能发现有的地方是错误的, 而敏捷管理方法就是把设计工作和编码实现工作得到有机融合, 从而就能够减少错误情况的发生。同时也能将项目风险得以有效降低, 敏捷管理的方法主要是对尽快发布可运行及有价值软件有着强调, 也提出了明确需求。由于这一管理的方法对传统方法的繁重文档维护成本得到了有效降低, 所以就在时间成本的减少层面有了显著体现。最后就是在评估进度以及工作量方面较为方便化, 所以通过敏捷管理的方法在软件开发中的作用还是比较突出的。

3敏捷开发在维护性软件开发中的可行性及开发模型

3.1敏捷开发在维护性软件开发中的可行性

软件维护性开发和软件全新开发项目两者就有着一些不同, 从软件维护过程方面主要有更改需求获取以及程序设计实践变化等等, 在每次的软件维护方面就是小型严格的需求限制活动。根据实际的软件维护过程就能够看出, 软件维护开发有着特定特征就能够适应敏捷软件的开发, 这些特征主要体现在软件开发中维护人员和对软件系统结构较为熟悉, 还有是软件维护性开发当中的是最终结果, 并且对时间过程文档资料的要求相对较少。软件维护开发中更改需求要和需求人员进行充分有效的沟通。软件维护是在软件系统交付使用后对其实施的有效更改, 其最为主要的目的就是修改缺陷将软件性能进行有效提升。

3.2敏捷开发在维护性软件开发中的开发模型

敏捷开发在维护性软件开发中的开发模型分析也是比较必要的, 为能够有效满足保险应用系统维护性开发的需求, 就要能够将敏捷开发的方法进行有效适用, 从而才能获得良好效果。结合软件维护特征以及敏捷软件开发特征在多次软件维护过程实践中总结了相应的开发模型, 通过开发模型就能够对整个过程得到明晰。从开发模型中的名词解释方面来说就有着行业标准以及内部编码规范等内容, 例如在行业标准方面就有业务需求类型以及开发类型, 前者主要是涉及到的行业规范, 而后者则是在开发时候所涉及到的行业标准。

另外就是开发模型中的项目开发过程, 这就有着项目参与人员以及需求讨论等内容, 在参与人员方面就有着开发人员以及需求人员, 开发人员是参与需求讨论和对系统开发完成的。而需求人员是对模型的审核以及确认等测试来进行参与的。需求讨论方面则主要是结合行业标准开发人员结合需求实施修改模型获得需求人员认可等。

4结语

总而言之, 对于敏捷软件的开发应用理论分析基础上, 能够进一步了解当前的软件开发过程以及重要性, 为软件开发应用创造出有利发展条件。此次主要就敏捷软件开发应用的特征以及优势等层面进行了理论分析研究, 希望能够在此次的努力下为敏捷软件开发的效率提升有所裨益。

参考文献

[1]丁志平.敏捷软件开发中的风险管理[J].信息与电脑 (理论版) , 2014 (01) .

[2]高志升.改造敏捷模型在高校软件开发中的实践[J].电脑知识与技术, 2014 (07) .

[3]桑大勇.敏捷开发过程中的需求分析[J].程序员, 2014 (02) .

[4]马波.敏捷开发方法在游戏软件开发中的应用[J].电脑知识与技术, 2013 (06) .

篇4:面向对象的软件开发方法分析

【关键词】面向对象 软件开发方法 问题 分析

相比传统的软件开发方法,面向对象的软件开发方法(OMT)实现了质的飞跃,采用了一种自底向上的归纳、自顶向下的分解方法,通过对对象建模的建立,彻底解决了软件开发在需求分析、可维护性以及可靠性三大环节上的问题,同时也大大提高和改善了系统的可维护性。可见,面向对象的软件开发方法,作为一种归纳和演绎思想的综合体现,其对软件设计、软件开发所起的促进作用是毋庸置疑的。

一、传统软件开发方法存在的问题

(一)软件复用性差

在软件开发工程所追求的目标当中,软件复用性是重点之一,同时也是节约人力和提升软件生产率的重要渠道。虽然近年来软件当中的结构化分析、结构化设计和结构化程序开发给软件产业带来了巨大的进步,但是还不足以从根源上解决软件重复使用的问题。

(二)软件可维护性差

传统的软件开发方法过于侧重一致、完整的文件合成最终的产品,以致在整个开发过程中,软件的可测试性、可读性和可修改性成了衡量一个软件产品优劣的重要标准。事实上,在软件的实际应用中,我们可以发现这类产品的维护性差,且所消耗的成本相当高。

(三)开发出的软件不能满足用户需要

传统的结构化方法所涉及的知识领域比较广泛,以致使用它开发大型软件时,一旦遇到系統需求模糊或者系统发生动态变化,就会影响开发效率,导致最终开发出来的软件脱离用户实际需求。

(四)软件质量难以保证

传统的软件开发方法所开发出来的复杂型大型软件,或者是需求模糊的系统,绝大多数都是难以成功投入市场使用的。归其原因,主要有以下两大因素:第一,软件开发人员对用户的实际需求理解不够透彻,以致最后开发出来的软件和用户的期待不相符;第二,所开发出来的软件灵活性低,无法适应用户需求的经常性变化,再加上部分用户有时会在软件的一些使用性能方面提出部分要求,倘若系统的设计和开发是基于过程中,那么软件系统的可扩充性和稳定性就会无法适应变化,而这种变化也会对软件系统自身的机构造成影响,设计、开发的成本也会随之提高。

二、面向对象的软件开发方法

现阶段,面向对象的软件开发方法的研究已经日趋成熟,市场上也不断有新产品涌现。面向对象的软件开发方法有Coad方法、Booch方法和OMT方法等。

(一)Booch方法

Booch方法的最突出特点就是它能够反映出系统的各个方面是如何相互联系和作用的。在一系列的面向对象的软件开发方法中,Booch方法是最早描述当中的基础问题的,其首先提出面向对象是区别于传统软件开发的一种方法。Booch方法认为面向对象的软件分解更接近人们对客观事物的认知,它并没有对各个开发阶段进行明确的周期划分,把主要的工作都集中在软件设计阶段。

(二)Coad方法

Coad方法是通过多年来大型系统开发的经验与面向对象概念的有机结合,该方法在对象、结构、属性和操作的认定方面,提出了一套系统化的原则,并完成了从客户需求角度进一步进行类和类层次结构的认定。Coad方法把软件系统的开发划分为分析和设计两个阶段,虽然说Coad方法没有引入类和类层次结构的术语,但事实上它已经在分类结构、消息关联等概念中呈现了类和类层次结构的特征。从某种程度上来说,Coad方法的概念虽然简单易懂,但是它对各个面向对象和行为的描述不够全面,对象模型的语言表达能力也不突出。

(三)OMT方法

OMT方法是一种跟随OOP向OOD和OOA发展而形成的面向对象的软件开发方法,它的方法涵盖了软件分析、软件设计以及软件实现三大步骤,贯穿于软件开发的全程。OMT还建立了对象模型、动态模型和功能模型三个模型,这三个模型在一定程度上完善了软件,使软件开发更加清晰,也更易于维护。可以说,作为一种以真实世界为对象建模而进行的独立语言设计,OMT方法彻底实现了传统软件开发方法没有完全实现的目标,为绝大多数领域的应用软件提供了一种实际的、高效的、可操作的保证。

(四)UML语言

UML语言是一种建模语言,它是软件工程领域的重要成果之一,在未来,UML语言将会成为面向对象技术领域内的标准建模语言。UML不仅结合了Booch方法、OMT方法、OOSE方法的优势,而且还对其做了进一步的发展,汲取了面向对象技术领域中的其他流派优秀的开发思想,融入了软件工程领域的新思想、新方法、新技术。总而言之,UML是一种通用的标准建模语言,适用于以面向对象技术为基础的任何类型的软件系统,而且还能够在系统开发的不同阶段使用,从需求规格描述直至系统完成后的测试和维护。

综上所述,由于面向对象的软件开发方法所具备的诸多优点,相信面向对象的软件开发方法在未来会有更广阔的前景。可见,开展面向对象的软件开发方法的研究工作,也有着十分重要的现实意义。

【参考文献】

[1]唐黎黎.面向对象的软件工程应用研究[J].现代商贸工业,2010(22).

篇5:软件项目开发可行性分析报告

1、引言

1.1编写目的随着网络技术的日益普及和信息化建设的重视,网络硬盘作为一种新型安全的网络存储系统,主要适用于个人文件存储,可以用作个人的一个网络U盘,网络硬盘是一块专属的存储空间,用户通过上网登录网站的方式,可方便上传、下载文件。只要能上网,就可以用网络硬盘登录到服务器上进行个人文件的上传、删除及文件目录的新建、修改、共享等操作,随时随地存储自已的个人文件。而且不用担心文件丢失的状况,安全方便。

1.2项目背景

1.2.1 项目名称:网络硬盘文件资源管理系统

1.2.2 用户:网络存储用户

1.2.3 说明:很多用户把重要文件存储在自己的手机或电脑的硬盘上,结果因为手机、电脑的丢失导致这些重要文件也都丢失了,在很多时候,文件的价值往往比手机和电脑本身还要高。而且网络硬盘可以用作个人的一个网络U盘,无论在家里,办公室里或旅馆里,只要能上网,可以通过网络硬盘调用自己的文件或记事本;网络硬盘是一块专属的存储空间,用户通过上网登录网站的方式,可方便上传、下载文件,而独特的外链功能更突破了传统存储的概念。只要能上网,就可以用网络硬盘登录到服务器上进行个人文件的上传、下载、删除及文件目录的新建、修改、删除、文件预览等操作,随时随地存储自已的个人文件。

2、可行性研究的前提

2.1要求

2.1.1 功能要求

用户能登陆注册,用户文件空间界面必须以文件目录的形式展示文件列表,目录结构清晰。能实现文件批量选择上传,操作必须要方便快捷简单,常用格式文件必须要能打开预览。为方便操作,文件夹能打包压缩下载。用户能对文件实现批量操作。能设置外链文件。

2.1.2 性能要求

为了满足储户的要求,系统必须要有高的运作速度,用户的操作事件,系统必须能快速及时作出响应,迅速处理各项数据、信息。所以要求很高的信息量速度和大的主存容量;由于要存贮大量文件和数据,也还要有足够大的磁盘容量;安全性也是系统最重要的性能需求之一,文件管理系统系统必须有可靠的安全措施,以保证储户的存储安全。

2.1.3完成期限

初步确定开发期为2个月,系统计划于2012年低正式完成2.2目标

网络硬盘是一种类似U盘的一种文件存储系统,所以,第一、系统必须要稳定、安全,保证上传的文件不丢失,能正确下载。第二、文件浏览界面必须要友好,能提供清晰的文件目录列表。第三、必须要有方便快捷的操作,保证良好的用户体验。

2.3可行性研究方法

采用归纳方法:通过对现在流行、大型的网络硬盘系统详细研究与比较来获取自己系统需求分析所需资料,在对这些系统的设计、制造和运行状况进行分析研究的基础上,根据所设计的系统的功能要求进行多次选择,然后对少数几个同类系统作出相应修正,最后得出一个理想的系统。

3、对现有系统的分析

当前大多数网盘都还没有实现对文件的预览功能,有部分实现了对图片的预览功能,但实现对文档、音乐、视频预览的确很少。给予用户的体验不足,达不到用户所期待的功能。基于这种原因,我所实现的系统能对图片、文档、音乐、视频的预览以及文件夹的压缩下载。

4、技术可行性分析

网络硬盘文件系统的实现技术有多种,可以采用传统的客户机/服务器型的B/S型架构,即文件内容放在远程的服务器上,用户通过在其他计算机上登陆服务器。进入网络硬盘系统。由于受条件所限制,数据库服务器端采用大型数据库系统,这有利于缩短大批量数据的吞吐时间,使整个系统管理规范化,数据的完整性、安全性得到保障.应用服务器端采用中间件计算模式(IBMWebSphereApplicationServer),分模块层次结构,多模块分立,允许系统的分布处理,以提高系统的工作效率。所使用的技术主要是S2SH(struts2、hibernate、spring)以及javascript、jquery、css、html,这些技术都已经开设过课程,我也已经掌握了。开发系统的计算机硬件已经非常普及,所以完全没有问题;现在的计算机各方面的技术都非常成熟,相对来说开发此系统的技术也要求比较简单,因此在技术方面是可行的。

5、经济可行性分析

可以通过推广发布广告、个人付费、流量收费来维持网盘的运营,并通过网盘服务带来大量用户到其他关联产业。经济上市是没什么问题的。

6、社会因素可行性分析

6.1法律因素

全部软件购买正版;机器设置通过正当途径购得;所有软件都用正版,技术资料都由提出方保管,数据信息均可保证合法来源。所以,在法律方面是可行的。

6.2用户使用可行性

篇6:软件开发人员辞职报告

我很遗憾自己在这个时候向公司正式提出辞职申请。

来到Xx公司两年多了,正是在这里我开始踏上了社会,完成了自己从一个学生到社会人的转变。有过欢笑,有过收获,也有过泪水和痛苦。公司平等的人际关系和开明的工作作风,一度让我有着找到了依靠的感觉,在这里我能开心的工作,开心的学习。然而工作上的毫无成熟感总让自己彷徨。

记得您曾说过,工作上如果两年没起色就该往自己身上找原因了。或许这真是对的,由此我开始了思索,认真的思考。尽管我一思考,上帝便会发笑,但这笑带着一丝苦涩,思考的结果连自己都感到惊讶――或许自己并不适合软件开发这项工作。否定自己让自己很痛苦,然而人总是要面对现实的,自己的兴趣是什么,自己喜欢什么,自己适合做什么,这一连串的问号一直让我沮丧,也让我萌发了辞职的念头,并且

让我确定了这个念头。

或许只有重新再跑到社会上去遭遇挫折,在不断打拼中去寻找属于自己的定位,才是我人生的下一步选择。从小到大一直过得很顺,这曾让我骄傲,如今却让自己深深得痛苦,不能自拔,也许人真的要学会慢慢长大。

能为公司效力的日子不多了,我一定会把好自己最后一斑岗位,做好项目开始前的属于自己的所有工作,尽力让项目做到平衡过渡。

离开,目前的公司,离开许多曾经同甘共苦的同事,很舍不得的,忘不了领导们的尊尊教诲,舍不得同事之间的那片真诚和友善。

最后也愿公司在今后的工作中发挥优势,扬长避短,祝愿公司兴旺发达。

申请人:XX

篇7:软件开发实习报告

在这个信息时代,信息都是电子化。很多方面根本不在是一些手把手的管理,而是在电脑面前操作一下即可,让我们真正享受到高科技的待遇。在软件开发领域,做一个项目的出发点是提高办事效率。而在项目制作的过程中我们要使一个软件简洁实用,人性化,快捷方便。

这次实习的主要任务是图书管理系统的开发。项目运行的平台是WindowsXp,运用系统主要是Microsoft Visual Studio 2005,Microsoft SQL Server 2005,运用的知识主要有我们学习过的知识数据库技术,以及实习过程中所提及的知识。在软件开发果过程中首先要了解三层结构的的含义及其设计模式思想部署企业级数据库业务系统开发。三层结构是一种成熟、简单并得到普遍应用的应用程序架构,它将应用程序结构划分三层独立的包,包括用户表示层、业务逻辑层、数据访问层。其中将实现人机界面的所有表单和组件放在表示层,将所有业务规则和逻辑的实现封装在负责业务逻辑组件中,将所有和数据库的交互封装在数据访问组件中。其结构如下图1所示:(未显示出)

三层结构示意图

三层结构是一种严格分层方法,即数据访问层只能被业务逻辑层访问,业务逻辑层只能被表示层访问,用户通过表示层将请求传送给业务逻辑层,业务逻辑层完成相关业务规则和逻辑,并通过数据访问层访问数据库获得数据,然后按照相反的顺序依次返回将数据显示在表示层。

下面介绍图书管理系统开发技术:

一 系统的功能设计

首先对系统进行需求分析,我们必须要知道要做一个系统“用来干什么”,这需要在对用户需求进行充分调研的基础上,深入理解并描述出软件的功能、性能、接口等方面的需求,可以使用UML建模作为需求分析和系统设计的有效方法。图(1)给出了本图书管理系统的功能结构图,其工作流程为:普通用户直接登录主页面,只能浏览、快速查询图书、注册新用户、修改自己的密码以及查看图书的详情,管理员用户除了可以完成普通用户的操作外,还可以进入图书管理模块进行图书添加、修改和删除的操作,实习报告《软件开发实习报告》。

1、系统的功能特点:

(1)操作简单、界面友好:插入表格的页面布局,使得图书的录入工作更简便;许多选项包括图书类别、来源等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。

(2)即时可见:对图书的处理(包括图书添加、修改、删除)将立即在主页的对应栏目显示出来,达到“即时处理、即时见效”的功能。

(3)功能完善:包括常见网站的图书管理的各个方面:图书新增、浏览、删除、修改、检索等各个方面,完整地实现了网站对即时图书的管理要求。

(4)方便移植:针对不同的图书馆,只需要稍作修改就可以开发出适合本企业特点的网站图书管理系统。

2、系统的详细设计

系统的主要功能是通过几个功能模块来实现的。具体的设计过程如下:

⑴ 系统登录:该模块负责将用户分为普通用户和管理员用户来实现用户权限的管理。

⑵图书类别管理:该模块只有管理员才有的权限,管理员可以对图书的大、小类进行添加、更新、删除等操作。

⑶库存图书浏览:该模块负责分页列出图书馆中所有图书的信息,包括图书名称、作者、出版社,图书状态,每条记录后面都有一个查看详情,查看详情被做成一个超链接,点击它们就能跳转页面可以查看更多的详情如图书封面、图书数量、图书出版年份。

⑷库存图书添加:该模块是图书管理员进行图书的添加,权限仅限管理员,在此页面中的大小类实现了联动作用,点击其大类,小类的下拉列表中就会显示与之对应的小类,从中选择即可。

⑷ 图书快速查询:该模块提供了图书快速查询功能,输入待查找的图书名称可以快速地找到符合条件的图书,并输出查询结果,点击产看详情字样就可以查看图书的详细信息。

⑸编辑系统用户:该模块负责分页罗列注册用户的具体信息,普通用户本人或管理员可以对用户进行删除、修改。非普通用户或系统管理员外不具有对该用户的处理权限,所以不同普通用户进入此页面将显示不同的内容。

⑹修改用户密码:普通用户本人用户录入所需要的内容,包含用户名、真实姓名、权限类型、旧密码及新密码,点击更改即可修改密码,并写入数据库中保存。

⑺系统名称设置:该模块为管理员权限,管理员可以更改图书系统的名称。普通用户为不可见状态。

⑻系统使用说明:主要是供普通用户和管理员阅读,使之更好地了解本系统的权限以及用法。

下面给出系统后端数据存储方案:

利用Microsoft SQL Server 2005建立数据库及其存储过程。这里给出几个必需的数据表,主要有system,bigClass,smallClass,users,Books。

二、ASp部分设计

1、连接数据库

访问数据库信息的第一步是和数据库源建立连接。ADO 提供 Connection 对象,可以使用该对象建立和管理应用程序和 ODBC 数据库之间的连接。Connection 对象具有各种属性和方法,可以使用它们打开和关闭数据库连接,并且发出查询请求来更新信息。

要建立数据库连接,在中链接到数据库

2、数据的绑定

数据的连接分为直接连接和间接连接,前面所举例子用的是直接连接,下面用间接地方法对数据进行绑定。主要是利用数据适配器SqlAdatapter(),下面的函数方法是对数据绑定:

此方法也可以插在所要调用的函数中,但是将这个方法单独提出有利于后面的利用,后面对数据进行绑定时就可以用这个方法,避免做重复的工作,减少工作量。

3、加密方法

本系统的加密方法是MD5,以一个例子来说明:

String oldpassword=this.Textpassword.Text;

String newpassword= System.Web.Security.FormsAuthentication.HashpasswordForStoringInConfigFile(password, “md5”);

篇8:软件开发分析报告

开源软件起源于自由软件, 但又不同于自由软件。自由软件宣扬人人享有对软件代码进行复制、修改及传播的权利, 开放源代码, 并通过订立协议要求对使用自由软件代码进行二次开发的衍生作品也必须按照协议开放源代码。自由软件浓烈的理想主义色彩, 让商业软件公司对自由软件敬而远之。开源软件与自由软件不同, 它更注重与软件产业相结合, 对商业化更加友好。商业软件公司可以通过重用现成的开源软件节省开发成本, 缩短开发时间, 在风云变幻的软件业, 这种效率上的提高对于软件开发商具有重要价值, 因此, 越来越多的商业公司加入到开源软件的开发中, 并成为主导力量。

自1998年开源软件促进会 (Open Source Initiative, 简称OSI) 成立至今, 十余年间, 越来越多成功的开源项目走进了人们的视野, 如Linux操作系统、A-pache Web服务器、MySQL数据库、Eclipse开发平台、Firefox浏览器等。它们的出现打破了专有软件独霸天下的局面, 也为其他软件制造商进入开源领域提供了先验经验。

虽然开源软件的发展繁荣了全球软件产业, 也给我国软件产业带来了巨大的机遇, 但在使用开源软件进行商业软件开发时还存在一定的风险。这些风险主要来自于法律方面。同商业软件一样, 开源软件仍然受到知识产权相关法规的保护, 如果使用不当, 极有可能受到来自开源组织或其他商业软件公司的法律追究, 我国的某些软件公司已经出现了这样的问题。其他的风险还包括代码的稳定性, 以及对开源软件是否为国产软件的争论问题。本文将结合近年来的一些典型案例逐一讨论使用开源软件进行商业软件开发时可能遭遇到的风险。

2、使用开放源代码进行商业开发的法律风险

2.1 著作权

商业软件受著作权 (即版权, Copyright) 保护。著作权授予软件著作权所有者诸多的权利, 主要包括人身权和财产权两大部分。人身权包括署名权、发表权、保护作品完整权和修改权;财产权包括复制权、发行权、出租权、汇编权、翻译权等。开源软件的发布采用Copylef方式。它的授权方式与版权不同。Copyright的概念是为了限制他人任意使用创作物的自由。Copyleft则是为了保护这种自由而定义的概念[1]:它允许他人任意的散布、修改作品, 惟其散布及修改的行为和作法, 亦限定以Copyleft的方式行之。Copyleft作品是有版权的, 即开源软件同样受到著作权法的保护。开源软件著作权所有人通过授权许可协议放弃一部分权利, 如复制权、修改权等, 但其他权利仍受到著作权法的保护。所以, 那些认为既然可以免费获得源代码, 就可以对开放源代码为所欲为的观点是错误的, 更是危险的。

侵犯开源软件著作权的行为可能是有意的, 也有可能是无意的。无意的行为可能出于没有正确理解开源协议, 或是当前法律对开源软件的界定还不够明确。有意的侵权行为则是恶意地使用开源软件的源代码而不遵守开源协议, 或是包含了商业软件的代码, 对其他商业软件公司造成了侵权。2009年6月, 我国国内公司开发、国家工业和信息化部出资购买供全社会免费下载使用的上网过滤软件"绿坝-花季护航" (下面简称绿坝) 就面临违反开源协议和侵犯知识产权的法律诉讼[2]。绿坝被指其用于不良图像过滤的核心识别程序文件和其他一些程序文件均来自Intel公司资助的开源软件OpenCV, OpenCV采用的是BSD许可证, 但绿坝并未按照BSD许可证的要求在软件版权信息中附上BSD声明, 并且删除了源文件中所有的版权信息。另外, 绿坝还涉嫌抄袭美国一个名为Cybersitter的软件逾三千行源代码。2010年12月, 美国法院已经受理了有关绿坝的侵权诉讼, 原告Cybersitter软件的开发商美国Solid Oak公司向绿坝软件开发商、预装绿坝软件的个人电脑生产商和中国政府索赔22亿美元[3]。由此可见, 这种盗用开源软件以及商业软件源代码的行为, 不但会招致诉讼风险, 面临经济上的巨额损失, 更会损害公司形象, 影响公司商誉, 甚至累及国家。

另外, 开源软件自身也存在着著作权归属不明的问题。开源软件通常具有非常复杂的血统, 这是由其特有的开发模式导致的。开源软件提倡集合世界各地的开发人员的力量共同开发, 一个开源软件的代码贡献者可能动辄几人, 多则数十人、上百人, 而像Linux这样的大型项目更是数以千人计。这些参与者的背景各不相同, 很难保证他们贡献的代码都没有问题。这种知识产权归属混乱和复杂的状况使得不少开源软件时时处在被指控侵权的风险之下。Linux就曾经涉嫌侵权美国SCO集团拥有知识产权的UNIX程序代码[4]。对于开源软件自身存在的侵权问题, 开源软件许可证也不提供任何特别的条款或者其他保证, 确保源代码的贡献者没有侵犯其他人的知识产权, 这些许可证对于第三方的侵权指控不提供任何免责保护。这也加大了使用开源软件进行商业开发的风险。

2.2 专利

与著作权相比, 专利保护的特点是保护期短、保护力度大、需公开技术。以专利保护计算机软件的特点是, 专利权是一种绝对权, 且专利保护延及过程和方法, 所以专利法的保护力度远强于著作权法, 对技术具有更强的垄断性。专利法保护的是软件作品发明创新的技术方案, 其他人只要沿用其技术方案, 即使完全重新编码也不允许。但开发一段程序通常需要组合上千个技术, 即便这些技术中的一些来自开发者本人的创新, 其他的技术也一定是来自于开发者以前看过的其他软件。而如果这些技术都被打上专利的标记, 每一个大程序都可能会侵犯几百条专利权。开发一个大程序就置身于几个百潜在的法律诉讼之中[5]。长期以来, 开源界一直都很排斥对软件实行专利保护, 认为专利保护限制了软件技术的发展。商业软件公司则与开源界持相反态度, 事实上, 商业软件公司更乐于利用专利来对开源软件形成威慑。

有关于开源软件涉嫌侵犯商业软件专利的法律纠纷案件不胜枚举。仍以Linux为例, 2004年8月, 以专营开放资源保险业务的开放源代码风险管理公司公布, 经调查, Linux操作系统含有可能引发专利侵权纠纷的美国专利共有283项[6]。2007年5月, 在一次《财富》杂志访谈中, 微软首席法律顾问声称开源软件包括Linux侵犯了其235项专利, 但出于多方面考虑, 微软公司没有提出诉讼[7]。

如今备受追捧的Android手机操作系统也正面临专利侵权的诉讼。Android由谷歌开发且对外开源, 手机制造商可以在Android上进行二次开发, 并免费用作手机的操作系统。2010年8月, 甲骨文公司控告谷歌Android侵犯Java的知识产权[8]。随后不久, 微软也声称Android侵犯专利, 手机制造商使用Android存在风险[9]。为了避免争端, 最大的Android手机制造商HTC已经向微软缴纳了专利费[10]。苹果公司起诉HTC的Android手机侵犯了一系列苹果的专利也印证了微软这一说法[11]。而对于这起专利纠纷, 谷歌也只给HTC提供道德而非法律上的支持。

为了应对商业软件公司的专利策略, 开源社区联合支持开放源代码运动的商业公司共同展开了反击战。2005年, IBM与SUN公司先后向开放源代码界开放了逾2000项专利。与此同时, 开源界也注意到专利是一把双刃剑, 既可以作为进攻武器, 也可以用作防御武器。开源软件也开始使用专利制度来降低专利带来的威胁。主要的办法有: (1) 鼓励主动申请软件专利后在开源软件许可证下发布; (2) 尽早将软件开发的发明思路在公共论坛上发表; (3) 在技术上使软件结构易剔除侵权代码; (4) 出现软件专利侵权诉讼时, 开源社区一起提供能有效推翻其专利权的证据等。

2.3 开源软件许可证

开源软件与商业软件的本质区别体现在许可证的定义上。在传统商业软件的许可证中, 一般明确许可方的版权归属及权利义务;作为被许可方支付软件使用许可费的回馈, 许可方一般提供缺陷担保、违约责任, 并涵盖支持、维护等技术服务内容及其费用。而在开源软件许可证中, 主要规定被许可方是否能够发布该演绎作品的源代码、对源代码进行修改应满足的要求等, 一般不涉及软件许可费、维护支持的内容。

OSI于1998年成立后取得了认证开源软件许可证的资格, 只有使用了经过其认证的开源许可证的软件才能被称为开源软件并准许使用其商标。目前, 经OSI认证的开源许可证共有74种, 这些许可证大致可分为两类, 一类是以GNU通用许可证 (GPL) 为代表的强“Copyleft”型许可证, 另一类是以BSD为代表的宽容型许可证。GPL给予任何人自由复制、修改和发布GPL代码的权利, 但作为回报, 所有以GPL协议发布的源代码的衍生作品, 也必须按照GPL发布。虽然GPL协议并没有规定以GPL协议发布的软件不允许用作商业用途, 但GPL的这种病毒效应使得GPL无法与商业走得太近。而BSD许可证则宽松得多。BSD许可证仅要求被许可者附上该许可证的原文以及所有开发者的版权资料。它允许原作品及其修改版发行时不公开源代码或以其他许可证发行, 它不像GPL具有"病毒效应", 为开源软件转化为商业产品敞开了大门。但不论是GPL许可证还是BSD许可证, 都没有明示专利授权, 且都有拒绝担保的声明。这也就意味着, 使用以GPL或BSD发布的开放源代码时, 不能不顾及专利以及版权问题带来的风险。

侵犯开源软件的著作权通常是由不遵守开源协议造成的。有些人对"自由"与"开源"没有正确的理解, 认为免费获得也就意味着随意使用。但不论是自由软件还是开源软件, 它们都受到著作权法的保护。

另有一些商业公司存在矛盾与侥幸的心理, 一方面想直接使用以GPL协议发布的源代码, 节省开发成本, 另一方面又不想公开技术, 发布其衍生代码, 抱着当前法律对开源软件的保护还不完善的侥幸心理, 封闭源代码, 用作商业用途, 这种行为极有可能招致法律问题。2008年8月, 美国联邦上诉法院在判决中第一次承认"开源协议"是一种著作权协议, 违反协议就是侵权行为[12]。违反开源协议的二次开发商要么遵照协议, 公布源代码, 要么被终止使用授权, 删除衍生作品中所有的开放源代码。

2007年, 华硕公司推出易PC, 易PC推向市场后不久即遭遇到著作权问题[13]。由于华硕易PC采用了开源软件Linux作为其操作系统, 却违反了开源软件的GPL协议, 未公开其对于高级配置与电源接口的部分程序文件修改结果的全部源代码。此事曝光后, 华硕迫于压力, 不久后即公布了原先未公布的全部源代码。前文提及Google开发的Android手机操作系统涉嫌专利侵权。2010年年底, 红帽公司的Matthew Garrett爆出大多数Android平板电脑制造商未遵守GPL协议, 没有按照许可证公布源代码[14]。一旦开源社区集中力量对违反协议的Android平板电脑制造商展开攻势, 经济上的损失将难以避免。

2.4 商标权

关于开源软件的法律风险问题, 开源软件的商标问题远不如其著作权及专利问题讨论的激烈。但商标也是使用开源软件的一个潜在风险, 不应被忽视。

商标是商品生产者、经营者或服务提供者为了让其自有商品或服务区别于其他商品或服务所采用的由文字、图形、数字等单独或组合形成的可视化标识[15]。商标使消费者联想到商品本身, 消费者凭借商标来选购商品。商标的滥用会导致消费者误以为经营者与商标注册人存在某种联系, 同时也侵犯了商标注册人的权利。利用商标对软件进行保护, 可以拓展软件的版权保护和专利保护的保护范围, 同时可以通过对商标的续展获取更长的保护期限, 且对于商标侵权的认定也较版权与专利更为容易。商标法不但适用于商业软件, 同样适用于开源软件。许多开源软件产品注册了商标, 并订立了严格的商标使用许可协议, 如数据库MySQL[16]。

在使用开源软件进行商业软件开发时, 涉及的商标问题一般有两种情况。第一种情况是使用原有开源软件的商标, 这种情况不涉及商标注册的问题, 主要的风险在于是否合理使用开源软件商标。使用开源软件的商标有被动使用与主动使用之分。许多开源软件许可证都要求"保留源代码中所有企业标识", 即要求对源代码进行衍生作品开发的作者需要将先前开发者的商标或企业标识原封不动地植入自己的作品中, 这种情况就属于被动使用商标, 因为受到了许可协议的约束。前文已经提到, 不遵守协议的后果是随时可能被终止使用授权。主动使用开源软件商标一般是为了借助原开源软件的知名度来推广衍生作品。开源软件开发商虽然允许在遵守协议的前提下自由使用源代码, 却不会允许自由使用其商标, 事实上, 任何人要想在软件产品中使用先前开源软件的商标, 都要向商标注册者缴纳一定的费用, 且遵守商标使用协议。以MySQL为例, 该软件对商标的使用有着近乎苛刻的规定, 即使允许使用MySQL标识, MySQL也可单方撤回授权, 即随时收回许可权利, 而使用商标过程中的风险则由使用者承担[16]。

另外一种情况是为自己的演绎作品申请商标。除非先前开源软件的商标所有人授权, 否则开源软件的衍生产品无权使用与原来产品相同的商标。例如, Debian Linux对Mozilla的Firefox浏览器进行了修改, 删除了一些装饰性的功能, Mozilla也拒绝让Debian继续使用Firefox这个商标。结果, Debian版的浏览器被命名为"Iceweasel", 虽然在功能上它与Firefox几乎完全一样[17]。

商标有"商品商标"与"服务商标"之分。由于源代码不可视为一种商品, 如果需要为开源软件申请注册商标, 则只能就围绕该开源软件所提供的服务、技术支持等申请"服务商标"。但对于与硬件有关的开源软件产品, 开发商可以就该开源软件产品的周边硬件商品申请商品商标。

3、使用开放源代码进行商业开发的其他风险

开放源代码商业模式的出现无疑为我国软件业的发展带来了新的机遇, 但如何运用好开源模式, 开发出具有自主知识产权的国产软件依然是值得思考的问题。当前, 我国众多参与开源软件商业开发的企业都是直接从开源社区中"拿来"程序, 经过修改、演绎或者打上补丁之后进行销售。这样的软件是否是国产软件, 是否具有自主知识产权, 进入市场后遭遇法律诉讼的几率有多大, 这些问题都是开源软件商业开发的隐患。

另外, 尽管开放源代码的质量问题一般对开发开源软件的影响较小, 但由于参与开源软件的开发者可能来自身份、背景都不相同的不同领域, 技术水平的高低不同可能会影响开放源代码的质量, 因此在对开源软件进行商业开发时, 不得不考虑开源软件的成熟度问题。对于这一问题, 企业需要规范管理, 规范开发, 建立严格的代码审查制度, 为每一段代码验证身份, 禁止程序员在网上抓取身份不明的代码。

4、总结

开源软件作为软件开发的一种商业模式正在日渐成熟, 它改变了软件产业的格局, 有利促进了软件技术的传播与发展, 并终将成为未来软件开发的主要模式。对于软件产业相对落后的我国, 应该鼓励软件企业尤其是中小型企业进行开源软件的开发。如今, 在开源软件的法律保护还不甚完善以及开源模式还没完全成熟的现状下, 使用开放源代码开发商业软件存在一定的风险, 这些风险不应被忽视, 但也不应被夸大。了解风险, 正视风险, 采用合理规避策略, 在开放源代码基础上开发拥有自主知识产权的商业软件, 才是我国软件企业在未来发展过程中应该重视的问题。

摘要:开源软件是当前日渐流行、同时也是争议最多的软件开发模式。在我国, 越来越多的软件开发商正加入到开源软件的开发中来。结合典型案例, 探讨了在使用开源软件进行软件开发过程中可能遭遇到的来自著作权、专利、开源许可协议、商标法等法律风险问题, 以及国产开源软件的知识产权归属和开放源代码质量问题。希望借此帮助我国开源厂商、开发者认清使用开源软件进行软件开发的各类风险。

上一篇:爱的魔法读后感下一篇:张淑演讲稿