共享软件的开发范文

时间:2024-01-02 17:50:44

导语:如何才能写好一篇共享软件的开发,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

共享软件的开发

篇1

[关键词]面向对象;软件工程;开发

0前言

软件工程的设计在于对工程学的相关理论进行利用,并由此作为立足点来进行软件开发与维护。作为软件工程方法中的一大主流方向,面向对象的方法在近年来得到了较为广泛的应用。在该方法中,对象的主要特征属性在于数据与操作,其中数据对应于对象的内部属性特征,操作对应于对象的外部运动规律,通过利用面向对象的方法,软件开发与维护的便捷性可得到根本提升。本文特针对基于面向对象的软件工程开发进行了相关探究,现总结如下。

1面向对象的分析与设计概述

面向对象的分析过程主要包含以下两个阶段:①对用户需求进行提取与抽象概括;②建立模型。面向对象的设计过程主要是将用户的实际要求进行转换与设计,使其成为一个最优的方案。面向对象的方法在由分析到设计的过程中,所有已知条件处于不断扩充的状态,在对其进行优化与完善后,最终使其成为模型。分析与设计虽属于两个不同的阶段,但两者不仅相互联系、相互影响,甚至可相互产生制约。一方面,分析的准确性可对所建立模型的实际意义产生直接影响,同时也是设计结果的折射;另一方面,设计阶段并非可脱离分析阶段独立运行,反之,在这一阶段中需对分析的结果进行反复的理解,由此对其进行完善。

2面对对象的开发方法研究

2.1Booch方法

Booch这一方法主要分为微观与宏观两个过程,两个过程之间存在一定联合,同时相互区别,笔者在此进行区别概述。微观的过程可概括为以下几个方面:①将类和对象抽象化,在问题中进行类和对象的挖掘,同时确定实现对象功能的行为;②对抽象出来的类的状态及行为进行建立,主要对类图进行利用,由此建立起识别对象与类的关系,对类对象的边界进行确认,并对相互协同作用的类对象进行辨别;③对算法与数据结构进行优化设计,以实现对象类与对象。与微观过程不同的是,宏观过程对于风险与结构更为侧重。进行宏观软件工程开发时,一些相应的成果及活动随之得以确定,为风险评估工作与修改工作提供了便利条件。在宏观过程中,结构与完整性两个因素得到了重点强调,对概念化和需求的建立提出了新的要求。在概念化的过程中,对于创造性具有较高的要求,且无固定模式与框架,建立核心的需求是该过程中的根本任务。另外,在分析过程中,需对软件开发所需的模型进行提供,并充分对系统的行为引起重视,由此作为立足点,对系统的功能特点进行区分;设计过程中,主要侧重于系统结构的实现。

2.2OMT方法

OMT方法是一种在数据库的关系设计中具有广泛应用范围的方法,且在不断发展的过程中,在面向对象的分析与设计领域中也逐渐得到了应用。在实体与关系模型的基础上,OMT方法又做出了进一步拓展,主要包括类、行为、继承等。该方法的模型主要分为如下三种:①对象的模型。该模型主要对对象静态的结构进行表述,并对其相互之间的作用关系进行表达;②动态的模型。该模型主要对系统动态的变化特点进行描述,如随时间的变化等,状态与活动是其重要概念;③功能的模型。该模型主要将不同的数据值在系统内进行转换,如数据存储、数据流、控制流的概念等。总而言之,OMT方法对于分析数据密集型的信息系统具有重要的意义,同时具有较为广阔的发展前景。

2.3UML方法

UML这一建模语言的特点在于易于表达、思路清晰、功能强大,包含着静态、动态、系统环境模型等。在这一方法中,可通过可视化建模工具所提供的代码来对模型进行转换,使其成为一种编程语言,不仅如此,还可通过对相应的工具与方法进行利用,使其产生逆向转换,使其成为UML。在UML方法中,基于例图、对象图、类图的模型可划分为静态模型;基于状态图、活动图的模型可划分为动态类型。这一方法的优势在于对先前各种建模技术的经验与特点做出了综合与总结,并对其中的有利条件进行了吸收,形成一种标准的建模语言。例如,Web系统、数据的模型等新的思想均在UML技术中得到了充分体现,为其提供了深厚的内在支持。

3面向对象的软件工程开发的特点及优势

经实践研究表明,面向对象进行设计的软件工程在当前的计算机软件工程中具有较强的优势。第一,该方法与人类的思维方式更为贴近;第二,该方法具有较强的稳定性;第三,具有更强的可复用性;第四,在大型产品的开发与维护工作中可提供更为良好的便利条件。该方法的特点主要可概括如下:①对象属于基本元素,不同的基本元素之间可进行组合,形成复杂的软件对象,并由软件对象构成整体的系统;②在对不同的对象类进行划分时,可各自对应的数据与方法;③层次结构可通过子类与父类来进行设定;④不同对象之间可进行相互联系。

4结语

篇2

【关键词】软件工程 CAI课件 课件开发

随着多媒体技术的快速发展,计算机辅助教学的广泛普及,各类学科的教学课件应运而生。从理论上讲,大量的教学课件地运用可以减轻教师的工作量,提高教学质量,但实际上,在教学中真正用得好,用得巧的教学课件并不多。开发成本高,软件质量低,重复开发的现象屡见不鲜,很难满足当前日益增长的教学课件的需求。此种不良现象我们称之为“教学软件危机”。要消除此种软件危机,就要有正确的软件开发理念。本文结合软件工程的思想,论述一下如何能够更好地进行CAI课件的开发与制作。

1 软件工程思想概述

软件工程是指导计算机软件开发和维护的工程学科,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验证明正确的原理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。

软件危机是指在计算机的开发和维护过程中所遇到的一系列严重问题。包括如何开发软件以满足对软件日益增长的需求,和如何维护数量不断膨胀的已有软件。

软件工程借助工程的理论来指导软件开发,大量软件开发实例证明了采用软件工程方法进行开发,可以消除或缓解软件危机,提高软件开发的成功率和生产率。

2 软件工程与课件开发的类比

软件工程的基本思想是面对复杂的问题,让软件的开发按照工程的概念、原理、技术和方法模式来实施,要有计划地按照要求分阶段实现。对软件进行计划、开发和维护。软件工程中一个重要的概念就是软件生命周期。按照事物从发生到消亡的规律,一般将软件生命周期划分为计划、分析、设计、编码、测试及运行维护等阶段。这几个阶段的衔接,通常用软件生存周期模型做出直观的图示来加以表达。瀑布模型是目前软件工程中一种经典的软件开发模式。在瀑布模型中,各阶段的工作依线性顺序连接,并需产生一定规格的文档资料交付给下一阶段,下一阶段在上一阶段交付的文档资料的基础之上继续开展工作。这一开发思想在各个方面都被得到了广泛的应用和发展。

课件的开发属于系统工程,它也应该遵循软件开发的一般规律。因而,将面向对象的软件工程的原理运用于课件开发是较为自然合理的事情,开发人员在课件开发时应经历这样的一个过程:进行需求分析、按需准备材料(分析教学大纲,把握教学重点),概要设计(采集教学素材,编辑脚本),详细设计(选择好课件制作工具,程序设计),软件测试和维护。从课件的开发过程中我们不难看出软件工程与课件开发的可比性。.见图1和图2对比如下:

从上面的对比中我们可以看出在课件的开发中应用软件工程方法的必要性,它不仅体现在步骤上,而且也体现在应用软件工程的方法上。在制作课件的过程中应用软件工程的方法会大大提高课件的质量和可用性。

3 基于软件工程思想的课件开发过程

CAI课件作为一种辅助教学的软件,它的设计与开发过程中无不渗透着软件工程的思想。课件开发不同于一般的软件开发,它要涉及教育、心理、专业知识等各个方面。下面以基于瀑布模型的课件开发模型为例,将软件生存期划分为软件计划、需求分析、软件设计、软件实现和评价维护等阶段。每个阶段都有明确的任务,每个阶段都应建立完备的文档,前一阶段的工作完成后,下一阶段的工作才能开始;前一阶段产生的文档是下一阶段工作的依据。

3.1软件计划阶段

计划阶段首先要分析教学要求和教学对象,包括学科领域、教学大纲、教学内容及教学对象的层次、基础、特点和接受能力,分析课件所需的技术支持条件和运行环境,确定该学科课件开发的可行性,制定开发计划。

3.2需求分析阶段

需求分析阶段研究的对象是软件项目的用户要求。全面理解用户的各项要求并能准确地表达被接受用户要求,是需求分析的一个重要方面。首先应根据课程内容的总体要求和教学大纲确定教学总目标,充分考虑学生的层次、基础、特点和理解能力,制定课件的大体框架,涵盖该课程的主要内容。其次通过与用户反复交流获得用户的基本需求,在课件开发过程中,通过与学生和教师的交流充分了解目前教学的不足以及课件期望达到的效果,可以通过创建原型的方法征求教师和学生的意见。最后,对用户的基本需求进行反复求精、细化,经过多次的反复交流、修改,直到与用户的意见达成一致,得出对目标系统的完整、准确的需求描述,并进行认真审查,符合要求再进入下一步。

3.3软件设计阶段

该阶段完成的是教学设计和脚本编写。教学设计是一种用于计划教学、安排教学的系统方法,它的主要任务是针对学生特点和教学目标,对构成教学系统中的各种元素及其相互之间的联系进行设计。考虑到教学课件的特殊性,在设计时还必须遵循教育学和心理学的原则,其具体任务包括:根据教学目标和学生的具体接受能力,确定教学单元间的逻辑结构关系,并根据教学内容和教学经验选择合适的教学方式,确定教学策略及教学过程控制,设计学习评价标准等。脚本编写要特别注意吸取课程专家的经验,在章节编排、内容阐述、难点、重点处理方面,使之具有较好的逻辑性、严谨性、合理性和实用性,各个教学单元之间的联系要符合学习规律,教学内容的出现要适应学生的心理规律,并能充分调动学生的积极性,使课程专家的经验能最大限度地带进课堂,保证计划教学和实施教学的科学性和有效性。

3.4软件实现阶段

实现阶段要把设计阶段所得到的教学逻辑顺序、教学方式及教学过程控制利用各种开发工具通过软件制作加以实现。根据脚本的内容,收集相关素材,例如整理文本、扫描图片、创建图象和动画,制作片头等。程序员根据创作构思和界面风格,运用确定的素材完成各模块的制作。

3.5评价维护阶段

通过课件在实际教学中的试运行,让该课程教师和部分学生共同复审,从教与学两方面进行评价,根据教师和学生的建议对课件进行合理修改。在实际使用过程中,可根据教学内容的更新对课件及时更新或增加知识点,以保证课件的先进性和实用性。

4 结语

软件开发是一项系统工程,需要各类人员的积极参与合作。用户、系统分析员、程序员、开发管理人员在整个软件开发过程中都起到举足轻重的作用。课件开发也应是一项系统工程,需要学生、教师、技术人员、学校领导的积极参与与合作。这样才能让所开发的课件达到近善近美。因此,软件工程原理在课件开发中的运用是必须的,也是必然的。我们要在课件开发中引进软件工程的一些思想,并结合课件自身的特点,以此提高课件开发效率,保证课件质量。希望在不久的将来我们可以看到更多优秀的课件活跃在各类课堂,激发学生学习兴趣,提高教学质量,让课件给教学注入新鲜的血液,让更多人切身体会到计算机技术给教育、教学所带来的变革、腾飞。

参考文献

[1]张海藩.软件工程[M].北京:人民邮电出版社,2005,7.

[2]郑人杰.using software engineering[M].No.2. Beijing: QINGHUA UNIVERSITY,1996.

[3][美]Roger S.Pressman.软件工程实践者的研究方法[M].北京:机械工业出版社,2007,1.

篇3

摘 要:本文提出了一种全新的软件项目开发综合实训模式,该模式以实际项目贯穿始终,以软件工程思想贯穿全线,围绕学生完成一系列递进的典型工作任务来组织实训内容,覆盖不同课程串联不同知识。该模式是工作过程导向在软件技术实训教学上的运用,对当今高职院校进行课程改革具有重要的参考价值。

关键词:工作过程导向;学习情境;典型工作任务;项目开发;综合实训

中图分类号:G642 文献标识码:B

1 实训教学的现状和对策

我院的软件技术Java开发方向主干课程的设置包括:“Java程序设计”、“数据库基础及应用”、“JSP程序设计”、“UML基础与Rose建模”、“软件工程”、“软件测试”、“J2EE技术”。在每门课程的最后阶段都安排了课程实训,在此过程中,学生以个体或小组形式完成一个相对真实的工作任务。课程实训可以训练学生将该课程中不同的知识和技能串联起来,加以综合应用解决实际问题。由于各门课程相对独立,即使完成以上所有课程的课程实训,学生还是难以参与软件开发的全过程,难以获得对开发过程的整体把握。即使进入专业学习结束后的毕业设计阶段,由于毕业设计教学环节与大学生毕业就业成为近年来我国高校的一个非常突出的矛盾,尤其是高职高专院校的毕业生面临着严峻的就业形势,许多学生在最后一个学期几乎都在外出找工作,提前就业上岗。高职高专院校本来就学制短,毕业设计教学环节形同虚设,严重影响了正常毕业设计教学环节的实施和毕业生的水平。

在近几年的专业建设和课程改革中,我们越来越认识到培养学生的软件开发能力、团队合作能力、工程应用能力的重要性。为此,我们专门针对高年级学生设计和开发了工作过程导向的、具有专业总结和综合性质的项目开发综合实训,通过项目实践开阔学生视野,锻炼学生的团队意识和工程意识,全面培养学生的职业素养和工程应用能力。

2 基于工作过程的高职软件项目开发综合实训设计思路

基于工作过程的高职软件项目开发综合实训设计思路包含“两个贯穿一个分解一个覆盖”:即“工程项目贯穿”、“软件工程思想贯穿”、“典型工作任务分解”和“不同课程覆盖”。

2.1 工程项目贯穿

“工程项目贯穿”,即以一个工程项目全线贯穿于整个实训过程,学生从步入实训基地开始接受项目,到最后提交一个按照操作程序、操作规范完成的,满足一定质量标准的开发成果。在确定项目时,应该把握好以下两个原则:

第一,实训项目应具有一定的应用价值和实际意义。实训项目最好以实际项目为背景,或者直接就是从实际项目提炼而来,与企业实际生产过程或现实商业经营活动有直接的关系。这样的项目能培养学生的实战经验,极大地激发学生的积极性。但是要注意,业务流程太专业太复杂的项目不适于拿来作为全程的实训项目,因为这类项目在前期的业务分析和理解上将耗费太多的时间和精力,不利于后续工作的展开。

第二,要根据教学内容和专业培养目标确定项目内容与项目难度。高职软件技术Java开发方向旨在为社会输送合格的熟练的Java程序员,而J2EE编程是Java程序员追求的最高目标,所以我们确定的实训项目具有总结性和综合性,并具有一定的挑战性。经过前导课程“J2EE技术”的学习和实践,学生已经具备了用Servlet+JSP+JaveBean (EJB)或struts框架来实现MVC架构的能力,在实训项目中我们鼓励学生整合Struts、Hibernate和Spring三个框架,综合运用J2EE的组件、框架开发技术,开发一个满足J2EE架构的多层的企业应用。

2.2 软件工程思想贯穿

在传统的“软件工程”教学中,软件工程是一门独立的理论性较强的课程,学生们缺乏实战经验,难以在参与软件开发的全过程中获得感性体会,理解软件工程的精髓。

为了培养软件工程意识,使工程化思想成为学生从事软件开发工作的行动指南,我们将软件工程思想贯穿于整个综合实训的始终。综合实训以成熟的软件开发模型为基础,以具有一定应用价值和实际意义的项目为背景,学生以开发团队的形式,按照软件开发流程,在规定的时间点完成指定的任务,经历需求分析、建模、设计、编码、测试、部署的软件工程全过程。综合实训模拟企业运作机制,模拟企业中实际存在的项目压力和工作压力,模拟真实企业开发环境,以项目的进度检查作为监控,以项目开发成果作为最后的考评。学生在实训过程中,都有机会承担项目经理、设计人员、编码人员、测试人员等全部或部分岗位角色的职责,学生的综合能力得到极大的提高。

2.3 典型工作任务分解

典型工作任务是“基于工作过程”实训课程开发的精髓。所谓“任务”就是要求学生做一件事,重要的是,这件事是按实际工作的要求来操作的,包括操作程序、操作规范、质量标准等。学生在完成各项“任务”后,会呈现出不同的“结果”。这个结果是非标准答案的,即每个学生或每个团队的作品可以不一样,对作品的评价不是简单的对与错,而很可能是好与差。而“典型工作任务”能呈现出职业的典型的工作内容和形式,在整个企业的工作大环境里具有重要的功能和意义。

在工作过程导向设计原则的指导下,结合软件行业的岗位需求,通过分析完成软件开发需要完成哪些典型工作任务,我们设计了基于工作过程的实训流程。该流程以一个软件项目贯穿始终,将整个软件开发过程分解为一系列递进的实训情境,在每个实训情境要求学生完成一个独立的工作任务,完成所有的实训情境就完成了整个软件项目的开发。

基于工作过程的项目开发综合实训流程如图1所示,整个实训由递进的6个实训情境构成(水平方向),它们对应的工作任务依次为“需求分析”、“搭建开发环境”、“设计”、“编码”、“集成和测试”、“项目部署”。垂直方向则反映了为完成某项工作任务所采取的步骤和要提交的工作成果。

图1 基于工作过程的软件项目开发综合实训流程

2.4 不同课程覆盖

按照工作过程导向设计原则,将整个软件开发过程分解为递进的6个实训情境,每个实训情境覆盖了不同的课程内容。表1列出了每个实训情境对七门主干课程的覆盖情况,可以看到,它彻底地克服了传统的课程体系只重视每门课程自身的实验,缺乏覆盖不同课程,串联不同知识和技能的综合性实验的重大缺陷,它使得相对独立的各门课程整合在一起,使整个实训成为一个有机的整体。这样的训练能使学生将以前的所学融会贯通,能有效地培养学生的综合应用能力和创新能力。

3 基于工作过程的高职软件项目开发综合实训的实施

3.1 实训项目举例

依照确定项目的两个原则,我们把为我院开发“教学资源管理系统”定为综合实训的第一个项目,要求运用Struts、Hibernate和Spring三个框架,开发一个满足J2EE架构的多层的企业应用。

该项目的业务需求是“主要完成对多媒体课件和各种多媒体素材资源的管理,方便对各种电子教学资源进行分类维护,包括浏览,查询,下载;为教师提供一个方便快捷的课件渠道,把制作的课件或搜集的素材上载到该系统,实现资源共享。本系统分三级用户:系统管理员,教师用户、普通用户(包括学生);包括以下四个方面的功能:普通用户资源浏览和下载;普通用户资源检索;教师用户资源上载;管理员系统维护”。

项目开始时,教师只给出较为粗略的业务需求,给学生留有足够的发挥空间。因为“教学资源管理系统”就是为学生和教师服务,非常贴近学生的学习生活,理解起来没有任何障碍。至于界面做到什么样子,功能做到何种程度,留给学生在撰写详细的需求分析报告时去确定,教师需要把关的是工作量和技术难度,不能太简单而达不到实训的效果,也不能太难无法实现而挫伤学生的积极性。

3.2 实训组织方式

实训采用4个人一组,每人负责一个方面的功能开发,每组设一个项目组长,项目组长除负责一个方面的功能模块开发外,还负责各模块集成。由项目组共同提交一份需求分析报告。个人一旦选择某方面的功能开发,就要全权负责该部分的设计、编码和单元测试。此外,在测试情境中,开发小组进行角色转换,变成测试小组,选择别的小组开发的软件进行测试。

3.3 实训进度安排和任务要求

本综合实训历时一个月,共72学时(4周*18课时),进度安排如表2所示,各院校可根据自己的情况作适当调整或根据需要增加学时。下面是每个情境的具体步骤、任务要求的详细描述。

3.3.1 情境1:需求分析

本情境的典型工作任务是撰写详细的需求分析报告。

(1) 首先老师对实训项目提出业务需求,讲解应用的环境、功能要求、技术要求以及实训组织方式。

(2) 实训小组组成,组合出每个小组的成员,选出项目小组长。

(3) 每个小组对功能模块分工分配,确定每个人所承担的功能模块。

(4) 各小组讨论需求分析,每个人撰写模块的详细需求分析报告。

本情境结束后,要完成以下任务:

老师要汇总出小组划分、成员分工;

项目小组提交一份详细的需求分析报告。

3.3.2 情境2:搭建开发环境

本情境的典型工作任务是搭建J2EE开发环境。我们选择的开发环境为:

操作系统:Windows NT /Windows XP

Java 平台:JDK1.6 以上

服务器:JBOSS 4.0.4

数据库服务器:MySQL 5.0

开发平台:MyEclipse 5.5

建模工具: Rational Rose

单元测试:Junit

功能测试:手工测试

(1) 首先老师对开发环境进行讲解;

(2) 学生在自己的机器上完成以下任务:安装JDK环境、安装JBOSS服务器、安装MySQL服务器、安装MyEclipse集成开发工具、安装Rational Rose建模工具、安装Junit。

本情境结束后,要完成以下任务:

1) 学生在自己的机器上完成环境的搭建和测试。

3.3.3 情境3:设计

本情境的典型工作任务是撰写详细设计文档。

(1) 老师对需求分析进行点评,指出其中的问题和修改意见。

(2) 老师以其中某个模块为例,讲解所使用技术和技术线路。

(3) 进行模块设计和数据库库表设计,模块之间接口的定义,数据库中测试数据的准备。

本情境结束后,学生要完成的任务:

对需求分析报告进行修改和完善。

撰写详细设计文档,包括类图和时序图。

详细设计包括以下组件的设计:模型实现类和DAO组件;业务逻辑组件;MVC层组件;表现层组件

撰写数据库表的设计以及测试数据,数据库表设计包括库表名称、字段定义,测试数据以表格的方式形成。

3.3.4 情境4:编码

本情境的典型工作任务是依照设计进行代码编写,以及单元测试。

老师对学生的模块设计和库表设计进行点评,指出其中的问题和修改意见。

在编码过程中,老师要对学生进行指导,帮助解决问题。学生之间应互相配合,及时修正模块设计中的错误。

本情境学生要完成的任务包括:

修订详细模块设计和数据库库表设计;

用测试数据填充数据库;

制定编码进度;

模型实现类和DAO组件的编码和测试;

业务逻辑组件的编码和测试;

MVC层组件的编码和测试;

表现层组件的编码和测试。

3.3.5 情境5:系统集成和测试

本情境的典型工作任务是小组模块集成和功能测试。

(1) 小组成员之间相互配合,完成整个系统的集成。

(2) 选择另一个小组开发的系统,根据他们的需求分析报告,撰写测试用例。

(3) 进行功能测试并提交测试报告。

本情境完成,学生要完成以下任务:

将小组内各成员开发的模块进行系统集成;

选择另一个小组开发的系统撰写测试用例,进行功能测试,并提交测试报告。

3.3.6 情境6:项目

本情境的典型工作任务是部署项目、提交成果。

(1) 学生将实训成果进行演示

(2) 学生提交可以部署的包和按工程组织的源代码

(3) 老师对各个项目小组的成果进行考评。

(4) 老师对整个实训进行点评。

本情境完成,学生要提交以下程序和文档:

源代码和可以部署的包

实训报告

4 新的综合实训模式对教师提出了更高的要求

基于工作过程的高职项目开发综合实训,覆盖面广,综合性和工程实践性强,要求按照软件工程的要求,指导学生进行软件项目开发实训,因而对指导教师的教学素养、主导作用、工程实践经历提出了更高的要求。为此我们组建了一支以具有工程实践经验的核心教师为首,由各科任课教师组成的教师团队。进入实训项目的教师必须首先对项目本身有足够的认识和理解,并且亲自做过,才能在其参与指导的实训情境中指导学生完成该情境所指定的典型工作任务。而核心教师经历过企业软件开发项目的全过程,熟悉软件开发项目的管理过程,熟悉软件开发程序的设计规范、调试过程、软件质量测试方法,以“项目经理”的身份指导学生进行软件开发实训,其关键作用是不可置疑的。

同时,新的综合实训模式必须有新的教学观念、讲授模式和管理模式。在实训过程中绝对不能再是“教师讲授学生听”,而是以学生为主体,以任务为驱动,教师重点放在讲解每个任务的需求,完成该任务所要采用的知识、方法、工具和步骤,然后由学生自己进行分析、建立问题模型,自己掌握开发的进程。教师则更象一位项目经理,控制项目进度,评定软件质量。

5 结束语

基于工作过程的高职项目开发综合实训,是一种全新的软件项目开发综合实训模式。该模式以工程项目贯穿始终,以软件工程思想贯穿全线,围绕学生完成一系列递进的典型工作任务来组织实训内容,覆盖不同课程串联不同知识。该模式是工作过程导向在软件技术实训教学上的运用,对当今高职院校进行课程改革具有重要的参考价值,同时对指导教师提出了更高的要求。

参考文献

篇4

在共享软件作者与其所在单位之间,经常会出现各种各样的利益纠纷,例如:这个软件作品是你的作品,还是你单位的作品?如果个人进行销售是不是侵犯了单位的权利,是不是要承担责任?

消灭盗版的首要一点,就是应当斩断盗版软件传播渠道,使侵权者无法通过贩卖、传播盗版软件(或者注册机、注册码)赚钱。

共享软件作者可能会面临比较大的从业风险,因此,一定要对相关的法律法规有所了解。

著作权与商标权、专利权不同,作品一旦创作完成,作者就自动享有该权利,不需要做登记手续,甚至不需要作者发表。

属人原则与属地原则的共同作用,会导致双重征税问题。

共享软件不同于传统的商业软件,其特殊性在于销售方式的变化和使用程度的提高。共享软件一般是以“先使用后付费”的方式销售的享有版权的软件。根据共享软件作者的授权,用户可以从各种渠道免费得到它的拷贝,也可以自由传播它。用户总是可以先使用或试用共享软件,认为满意后再向作者付费;如果认为它不值得花钱买,可以停止使用。

与普通软件相比,共享软件面临的法律问题更复杂。笔者试图对共享软件作者经常遇到的盗版问题、销售问题、税收问题等进行分析,与大家共同探讨。

共享软件的版权问题

共享软件作者遇到的问题首先是盗版问题。根据《中华人民共和国著作权法》的规定,未经著作权人许可,非法复制、发行、销售他人软件的行为是严重的侵权行为。问题的关键是我们要怎么消灭盗版,或者至少应该通过某种办法减少盗版带来的危害。

首要的一点,就是应当斩断盗版软件传播渠道,使侵权者无法通过贩卖、传播盗版软件(或者注册机、注册码)赚钱。

经过分析,我们认为盗版软件的销售渠道主要有P2P交易平台销售、自建网站销售、专业下载站点销售等几种。

对于有人通过淘宝、易趣以及一些新的P2P网站直接销售盗版侵权软件的情况,业界一直反应非常强烈。笔者建议被侵权的共享软件作者按照著作权法、信息网络传播权保护条例的规定,先给淘宝、易趣发一个函,明确告诉它们,某一个商户、某一个连接地址正在销售的软件是侵权软件,要求删除,如果此交易平台未能在收到此函后及时删除,共享软件作者可以直接要求此P2P网站承担责任。同时,删了还不算完,共享软件作者还有权利要求淘宝、易趣提供销售人的资料,并且追究该侵权人的责任。

有一些侵权人则采用冒充共享软件官方网站的办法贩卖盗版共享软件,比如注册与共享软件官方网站域名很相似的域名。不过,这种情况比较容易打击。因为我国有网站备案管理制度,如果某一域名没有备案,托管商不得进行域名转发、域名主机托管以及虚拟主机的提供。而此类网站一般都没有进行备案,权利人可以直接发函给该网站的托管商要求托管商停止它的空间和域名的解析。我们可以向当地公安机关举报,要求他们追究该责任;也可以向当地通信管理局举报,要求通信管理局直接查处该网站。还有一些比较大规模的破解站点,我们也可以向当地通信管理局举报,追究它的责任。

共享软件作者的从业风险

在共享软件作者中,有一些是专业的共享软件作者,但绝大部分都应该是业余的共享软件作者,他们有自己的本职工作。因此,在共享软件作者与其所在单位之间,经常会出现各种各样的利益纠纷。例如:这个软件作品是你的作品,还是你单位的作品?如果个人进行销售,是不是侵犯了单位的权利,是不是要承担责任?

笔者之前参与研讨的一个案件就非常具有代表性。犯罪嫌疑人甲之前刚刚从大学毕业,和一个做企业短信的公司签了一个开发合同。之前甲就有一个自己的共享软件,叫DD短信软件,被该公司看中了。公司建议甲开发一套企业的软件。当时甲把该合同签了,3000元钱。在合同里面写了,该软件开发出来以后甲自己仍然可以自行使用。该软件开发出来交给了企业,企业就进行市场销售,相安无事,3000元钱也给了。再后来,一位从该企业出来的离职员工乙加入另一家公司,和原公司是竞争关系,乙找到甲,希望给乙现在的企业再开发一个软件,还是企业软件,而且尽可能和原来的相似。甲一想,原来合同只收了3000元,另外我在合同里也说了还可以自行使用,那就给乙开发。甲就给后来的这家厂商又开发了一套软件进行市场销售,前面的厂商发现后面厂商的软件和自己的几乎完全一样,就直接后面的厂商侵犯了自己的软件著作权。到法院,后面的厂商说我没有侵犯,我这也是花钱委托别人开发的,还花了1万多元钱,就把这位共享软件作者甲追加为该案第三人。

这个案子在北京市第二中级法院判下来了,原告的诉讼请求得到了支持,法院认为版权应当归属第一个厂商。正在上诉的过程中,原告直接举报到了公安局,公安机关以涉嫌侵犯商业秘密为由将后一厂商的法定代表人和这位共享软件作者甲关押到了看守所,目前还没有开庭。

讲这个案例主要是想提醒大家,共享软件作者可能会面临比较大的从业风险。因此,一定要对相关的法律法规有所了解。

有一些厂商要求开发者在版权页里面把他的名字打进去,那么,委托合同中就要明确注明:“版权页对于版权归属的说法,仅是为甲方方便销售使用,并不是双方对于版权的约定。”当然,如果我们已经把版权归属委托方,后面再编写同类软件时要尽可能重打鼓、另开张,不要在前面已经编制的软件或版权归另一方的软件修改加工。尽管这软件是你编的,也依然属于侵权行为。

另外还有关于职务作品的问题。《中华人民共和国著作权法》规定,接受单位工作任务开发,并且主要利用单位的物质基础条件的作品,由单位承担责任的,视单位为作者,由单位享有版权。除此之外,为了完成单位的工作任务所完成的作品,是职务作品,单位有权利优先使用。

关于软件著作权登记

知识产权领域的三大支柱包括著作权、商标权、专利权。商标权是申请商标注册并且经过发证以后才能拥有的权利,专利权也是。而著作权和另外两大支柱完全不同,作品一旦创作完成,作者就自动享有该权利,不需要做登记手续,甚至不需要作者发表。

但是从实际操作来看,共享软件作者通常无法简单地证明作品是自己创作完成的。比如我昨天晚上加班,夜深人静只有我一个人的情况下,我完成某一个软件,当天晚上就有黑客从我机器里拿出去在网上发表,这时候我们怎么主张我的版权?可以说昨天晚上创作完成我就享有了版权,但我如何去举证证明这一点呢?

法律主张的是有证据证明的事实。官方的登记是最有效的证据。除此之外,您可能认为同宿舍的舍友或自己的配偶可以证明,这是错误的。因为这些评价都是“利害关系人”。

鉴于软件著作权登记可以避免软件作者在发生版权纠纷时不能举证,也可以帮助软件厂商的合作方方便地核实软件著作权归属情况,所以我国《软件著作权登记办法》明确规定:国家实行软件著作权自愿登记原则,国家鼓励进行软件著作权的登记。

共享软件的商业运作

首先是共享软件的商业销售行为。由于共享软件本身的特点,共享软件一般是通过网上销售的方式来进行的,并且一般情况下都会采取先试用后付款的销售策略。对于一些大的共享软件厂商,可以自行搭建销售平台,建立回款渠道进行。但是,对于国内大量刚刚起步的共享软件作者来说,更好的方法还是通过类似于“共享软件注册中心”这类营销平台来进行。通过这类营销平台,共享软件作者可以免去自行建立销售渠道和回款渠道的麻烦,用更多的时间来投入到自己所擅长的软件开发工作中去。

其次,还有一个大家比较关心的问题:我们在海外销售软件的时候涉及的税收问题。

国内的税收征管体制是以国家监管之下的发票记账体制进行制约的,这种体制执行起来并不是特别完善。据中国共享软件联盟介绍,目前中国共享软件作者中,有很大一部分是面向国外市场的。因此,在考虑税收问题时,我们还要考虑到国外的税收征管体制。

一般来讲,各国的税法无非有这样两个原则:属人原则和属地原则。

属人原则就是按照营利主体的国籍来决定征税与否。例如,你是我这个国家的人,你的收入就应当按照我的税法纳税,我们大家是中国人,首先按照中国法律纳税。

属地原则是按照营利收入来源来决定征税与否。例如,你这笔收入是从我这个国家来的,你要在我这个国家纳税。

属人原则与属地原则的共同作用,会导致双重征税问题。例如,一个中国人从美国取得了一份收入。那么,他先要按照属人原则在中国交一部分税,然后又要根据属地原则在美国交一部分税。这显然是非常麻烦的。世界各国为了避免这种情况的出现,经常会通过签署《避免双重征税条约》的方式予以约定。据笔者所知,目前我国已经与世界上70多个国家签署了双重征税的条约。大家如果有兴趣,可以进行查阅。

篇5

过去一直盯着硬件节能和硬件环保循环回收说事,现在上升到了软件层面,大谈虚拟化、云计算、SaaS,围绕的主题就是减少服务器的使用,甚至用户把多种应用尽量通过虚拟化技术放在同一台服务器上,或者干脆连虚拟主机也不要租用了,直接在现在的几朵云上使用应用就可以了。

撇开这些热词不谈,咱们先归于平淡,谈谈“绿色”应用软件。

打造“即插即用”软件

现在的应用软件越做越大,动辄就上G,下载也非常耗费时间和带宽。所以,绿色应用软件第一层是如何做“浓缩”型的软件,希望开发者把软件尽量做小一些。

软件厂商已经开始实践“绿色”了。体积大这个弊端,不容易解决,那就将软件做出“即用即插”型的。所谓的“即用即插”,就是软件一开始体积很小,很快就能下载安装并且使用最常用的20%功能,另外80%的功能都有菜单。用户点击菜单的时候,它其实并不是直接在本地电脑上运行,而是在后台自动下载并自动安装后运行。现在很多技术。如OSGi、SOA、AOP等等,其实都是暗合了这种绿色“即用即插”的需求。

“绿色”软件应用到生活

绿色应用软件的一个绊脚石,就是咱们老提到流氓插件了。过去我们严打声讨过一段时间,但是这个灰色地带因为有很高的商业金钱诱惑,所以有众多软件制造者仍然在一边骂别人的软件流氓,一边自己制造着流氓。

要提倡绿色应用软件,每一个层面都涉及到利益,所以肯定很不容易。就连那些做共享软件的开发者都在大倒苦水,声称此为中国特色。因为中国盗版严重,优秀的共享软件开发者想了很多加密方法也阻拦不住盗版破解高手,共享软件开发者想要保生存还想求发展,如果没有插件捆绑这个盈利模式出现,估计很多共享软件都无法坚持到如今。我们在讲绿色应用软件的时候,我们更应该思考如何有更好的盈利模式来帮助我们的国产软件,而不是现实的逼着他们与广告插件合作。

进一步,绿色应用软件如何帮助我们的生活和工作环境更加“绿色”。服务器节电、IT设备用环保材料制造、虚拟化、云计算、SaaS之类的,还是只限于IT领域做文章。我们拥有IT技术,我们何不把眼光放到更长远,帮助我们的生活和工作环境绿色环保起来呢?

如节电、节水、节油等等类似的话题,我们现在有许多电子技术可以帮助我们实现。我们最常见的公共场所水龙头,传统的就是人拧开人关住,有人公德不好,拧开用完就不管了。如果换了智能节水控制设备,就有自动化方法控制了。另外在节水技术中,这次奥运会“鸟巢”就使用了很高科技的废水雨水回收净化循环利用系统,在运动员公寓也使用了高科技的节电家电和节电控制系统,这都是电子IT技术大力发挥的领域。

篇6

关键词:Android;综合指导;毕业年级

中图分类号:TN912.2 文献标识码:A 文章编号:1007—9599 (2012) 14—0000—02

一、Android简介

随着移动通信的发展和互联网向移动终端的普及,网络和用户对移动终端的要求也愈来愈高,而Symbian,Windows Mobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开放性很强的平台,为此,2007年11月,Google公司正式推出了一个专为移动设备设计的软件平台——Android。

Android是一套真正意义上的开放性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。2011年11月数据显示,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%。

二、综合指导制度

毕业年级综合指导制度[5]是我校2009年提出的一项新制度,其指导思想是以加强人才培养工作连贯性和毕业年级工作力度为主旨,以提高毕业年级学生的综合素质和岗位竞争力为根本,以抓好毕业年级学生的实习实训、毕业设计和就业工作“三个环节”为重点,切实增强学生的实际应用能力、设计创新能力和就业竞争能力,全面提高人才培养质量,培养适应经济社会发展需要的应用型、技能型人才,该制度的工作任务是实习实训指导、毕业设计(含论文、创作)指导和就业指导,实行任务“三位一体”、指导教师包干负责的机制。

三、系统模块分析

我校主页(http:///)上的综合指导系统(http:///guard/)由学校网络中心自主开发,自2010届毕业生开始投入使用,为师生联系和互动以及问题的及时发现与解决提供了保障,取得了较好的效果。

但是学生在顶岗实习期间,分布在全国各地,从事各行各业,部分学生存在不具备随时上网的条件,导致其不能及时接收到指导教师的通知、帮助和指导,或者不能及时的跟进相关信息。而如今,学生中大部分都拥有一部智能手机,于是开发基于Android平台的综合指导系统,使得学生可以随时随地通过手机方便快捷的使用该系统,弥补上述不足之处,使得综合指导制度发挥更大的作用。

(一)系统功能介绍

本系统实现学校、系部以及综合指导教师对学生进行就业指导、毕业设计(含论文、创作)、实习指导等功能。教务处管理员登录后可以为教师和学生分配帐号(初始帐号和密码分别为教师的教工号和学生的学号),可以学校和教务处的各项通知,可以对系部管理员等进行管理;系部管理员登录后可以对本系综合指导教师和本系学生进行管理;综合指导教师登录后可以在线指导日志(包括就业指导信息和实习指导信息,如各项通知、符合本组学生的招聘信息等)和毕业设计指导内容(如毕业设计/论文的选题、要求以及格式等),可以对学生进行分组管理、修改学生的基本信息,可以在公共讨论区回答学生的提问和发言、与学生互动交流;学生登录后可以查看相应指导教师的日志,修改个人信息(如修改密码、当前实习信息等)以及在公共讨论区进行提问等。

(二)系统模块分析

本系统用户主要包括四类:教务处管理员、系部管理员、综合指导教师和学生。详细功能划分如下所示:

1.教务处管理员

功能:通知

为教师和学生分配帐号和密码

设置系部管理员

修改、删除、查看系部管理员

修改、删除、查看综合指导教师

修改、删除、查看学生

在公共讨论区发言等

2.系部管理员

功能:通知

管理综合指导教师和学生

在公共讨论区发言等

3.综合指导教师

功能:指导日志

毕业设计/论文相关指导内容

重置学生密码(将忘记密码的学生密码设置为初始密码)

在公共讨论区发言等

4.学生

功能:查看各级通知

查看相应指导教师的指导日志

查看相应指导教师的毕业设计/论文指导内容

查看、修改个人信息

在公共讨论区发言等

(三)系统数据库设计

本系统数据库中成员数据表如下:

(四)系统实现环境

本系统主要涉及以下工作环境:Java JDK(共享软件);Eclipse集成开发环境(共享软件);Android SDK(共享软件);ADT插件(共享软件);各种实验样本代码包(国内外实验室共享)。详细代码不再赘述。

四、结语

Android平台因其优异的性能和开放性,日益在智能手机、平板电脑、车载导航仪、数字电视等嵌入式终端系统获得广泛应用。本研究提出了一种基于Android平台的综合指导系统的研究和设计方案,分析了各个模块的功能并进行了设计,进行了系统开发并测试,使其不但能够在模拟器上运行,更能运行在3G手机上,该系统在毕业生中拥有广泛的应用前景。但是,系统部分功能还不够完善,需要进一步提高。

参考文献:

[1]樊澜,刘珺,张传雷等.3G智能手机操作系统的研究和分析[J].电信科学,2009,08

[2]杨丰盛著.Android应用开发揭秘[M].北京:机械工业出版社,2010

[3]赵炯著.Linux内核完全注释[M].北京:机械工业出版社,2004

篇7

你知道吗?

侯延堂与FlashGet

与响当当的软件相比,作者侯延堂的名字实在不算出名,这和他低调的性格有关,就连FlashGet新版本的会都没有参加。从1998年FlashGet面世之后,一直是他一个人在更新、推广这款软件,以至于更新频率一直不快。在这8年间,有包括Google在内的很多大公司与他谈过收购事宜,但最终他选择了ZCOM,这也是目前推出最新版FlashGet的公司。

最大悬疑――下载速度如何?

对于一款下载工具,用户最为关心的莫过于其下载速度了,迅雷之所以后来者居上夺得半壁江山靠的就是P2SP技术,从下载速度上抢占了先机,那么这一次FlashGet 1.8Beta 3会不会在下载速度上扳回一局呢?

我们的测试环境是CPU:CY2.4G,内存:256MB DDR,硬盘:80GB,Windows XP SP2操作系统,北京歌华小区宽带。考虑到测试的实用性、公平性,我们让快车和迅雷先后从百度、华军软件站下载多个文件,其下载的速度和所需时间如图所示。其中,MP3类文件,均为百度MP3搜索排行榜中软件,软件均下载自华军。

从测试数据来看,FlashGet在下载速度上的确有了很大提高,在下载几十MB的大文件时,快车还要比迅雷快。不过,在下载小文件用时就要长一些,当然小文件的用时是可以忽略不计的。

Vista兼容性:Vista时间不长,我们特意在Windows Vista中进行了测试,FlashGet 1.8已经比较好地兼容了Windows Vista,不再像以前有些版本那样出错了。

我有人无,BT搭上顺风车

网虫10人9“变态”(BT),通过BT下载自己需要的资源是网虫们重要的网事之一。在FlashGet1.8中加入了BT文件下载功能,做到了人无我有,抢先了一步。那么,在FlashGet中如何进行变态下载呢?其下载的速度如何?能与bitcomet下载相媲美吗?

1.进行BT下载

首先在BT下载站点搜索自己需要的下载种子,种子下载完毕,直接双击,如果系统中未安装其他BT下载软件,FlashGet1.8会自动与此种子文件关联,启动快车进行BT下载。如果系统中已经安装bitcomet等BT下载软件,需要首先启动快车,单击菜单栏的“任务打开BT种子文件”命令,在弹出的打开对话框中打开此前下载的种子文件,这样才能进行BT下载。在下载过程中,可以实时监控下载情况,各种信息一目了然(见图1)。另外,BT下载功能还保持了FlashGet一贯的下载风格,以“.FB!”为后缀名显示未完成,并且会将最终下载文件保存在相同的目录中,而不是像BT下载软件那样缓存文件和最终的下载文件分别保存。

2.进行BT设置

快车还专门提供了BT下载的设置,单击“工具选项”,打开选项窗口,单击切换到“BT”选项卡,在这里可以设置BT下载的优化模式、上传下载的速度限制以及所使用的缓存(见图2)。

尽管FlashGet 1.8加入了BT下载功能,下载速度很不错,但系统资源占用方面比较大,通常都在10MB~13MB之间,不过功能上还是简单了一些,毕竟快车是兼职BT。

专防“捆绑”的提前报警

流氓软件、恶意插件已经成为互联网一大公害,但这种插件形式的“寄生虫”很容易和共享软件一起被下载到你的电脑中,在安装软件之前难以被发现。FlashGet 1.8增加了捆绑扫描的功能,当你从网站下载软件(特别是共享软件)时,FlashGet会自动扫描,如果有捆绑插件,会在下载列表右侧的资源窗口中列出插件的名称,你可以根据自己的需求选择是否继续下载(见图3)。

小提示:这个显示窗口在没有下载任务的时候,是一个资源窗口,显示出最常用的下载资源。如果想关闭它,只要在“查看打开右侧推荐框”中取消对勾即可。

巧用下载规则自动分类软件

文件管理功能是快车的一大特点之一,这次的升级增加了下载规则的功能。通过此功能,我们能实现类似邮件过滤分类这样的功能,当完成下载之后,软件将根据你所定义的规则自动转移到你所设定的分类中去。

依次打开“工具下载规则”,单击“新建”打开新增规则设置对话框,接着依次就“规则条件”、“规则操作”等参数进行设定即可(见图4)。

Just Do It

下载规则和邮件规则十分类似,请你设置FlashGet,把下载到的MP3、RAR文件、EXE文件分别自动移动到MP3、RAR和EXE文件夹中。

FlashGet Q&A

1.FlashGet中捆绑了Google工具条,这会是今后的发展道路吗?

ZCOM总裁黄明明:Google这样的跨国公司在选择合作伙伴时是非常慎重的,我们也会选择有实力的、对用户有帮助的工具。

2.FlashGet会把BT功能独立出来单独吗?

目前来说没有这种可能。

3.据说FlashGet的BT模块使用了比特精灵的技术,是这样吗?

在网上看到这样的谣言后,我很为我的开发团队自豪,因为他们独立开发的模块让人和专业的BT软件相提并论了。

FlashGet的其他新功能

下载Flash:鼠标移动到Flash画面上会出现“下载”的浮动图标,方便用户下载。

篇8

关键词:下载程序;BitTorrent协议;torrent;B-encoding

中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)12-21661-02

Development of Downloading Procedure Based on BT Protocol

ZHOU Ke1, ZHANG Yan-na2

(1.Henan University College of Computer and Information Engineering,Kaifeng 475001,China;2.Henan UniversityHenan University, Department of Facility and Laboratory Mangement,Kaifeng 475001,China)

Abstract:This paper analyses the BitTorrent protocol in details and sums up its characteristics. Then, in the basis of torrent file format and Bencoding encoded mode,The torrent file had been successfully analysed precisely. According the analysis, one method of developing the downloading procedure was described.

Key words:Downloading Procedure;BitTorrent protocol; torrent; Bencoding

1 引言

传统的网络服务模式,所有的下载开销都在服务器上,由于服务器性能和带宽的限制, 服务器往往要限定用户的数量和访问速率;而使用基于BT协议的共享软件,可以把下载的开销分摊到每个下载者那里,在理论上支持无限多个下载者下载同一个文件,充分提高文件共享效率。本文简要分析了BT协议的工作原理,并给出了一种采用C#的下载程序的分析部分的实现,基于这种分析程序,借助C#中TCP协议的助手类就可以快速的开发出实用的下载程序。

2 BT协议的工作原理

BT协议将这种文件共享模式分为Tracker服务器和Client两部分。Tracker服务器的任务是搜集Client的信息,并帮助BT Client相互发现对方,进而能互相下载所需的资源。每一个Client即一个Peer 在下载开始以及下载过程中,要不断地与Tracker服务器进行通信,报告自己的信息并获取其它Peer的信息。Tracker对所有下载者的信息进行维护,当它收到一个请求后,先把发出请求的Peer的信息记录下来,然后将其他参与下载同一个文件的下载者的信息返回给该Peer。Peer在收到Tracker的响应后,与其它下载者建立连接下载本地所没有的文件资源。为了使别的客户端也可以从本地获取文件资源,该客户端还要监听某个端口,用于接收其它Peers的连接请求。

3 torrent文件及其分析程序的实现

BT协议的主要特征,集中体现torrent文件中。下面就torrent文件的内容及格式先做介绍,最后给出用C#语言实现该类文件解析的方法。

3.1 torrent文件及其编码

BT客户端开始下载资源时首先需要寻找torrent文件, torrent文件包含了完整的资源下载信息:包括资源名、大小、资源的创建者,创建时间,指向Tracker的url列表等信息。

torrent文件采用B-encoding编码来保存数据。B-encoding编码提供四种类型的数据表示:strings(字符串)、integers(整数)、lists(列表)、dictionaries(字典) 。编码规则如下:

(1)strings的编码规则为::

字符串长度单位为字节,没有开始或结束标记。

(2)integers的编码规则为:ie

开始标记为i,结束标记为e。没有大小限制,0不能出现在负的或者是整数的最高位。

(3)lists的编码规则为:le

开始标记为l,结束标记为e,列表里可以包含任何B-encoding编码类型,包括字符串、整数、列表、字典。

(4)dictionaries的编码规则为:de

开始标记为d,结束标记为e,关键字必须为B-encoding字符串,值可以为任何B-encoding编码类型,包括字符串、整数、列表、字典。

torrent 文件格式是由若干字段确定的,torrent 文件中关键字段如表1所示:

表1 torrent 文件中关键字段

info字段用于确定资源是由单文件还是多文件构成的,info后面的第一个字符串为length 或files,二者只能出现一个。length表明是单文件结构,files表明是多文件结构,其详细区别如表2所示:

表2 info字段的内容

3.2 torrent 文件分析程序的实现

B-encoding的编码规则只有前述的四种类型的数据,列表和字典中允许包含这四种数据类型,整个文件本身就是字典。在实现的这种文件的分析时采用如下的分析方法,算法流程如图1所示:

(1)字符串分析。调用四个函数来判断字符串是否为B-encoding编码的四种数据类型:字符串分析函数readstring、整数分析函数readint、列表分析函数 readlist和字典分析函数 readdict。

(2)分析结果存放。定义一个基类和四个由该基类派生的子类,四个子类分别对应于四种数据类型。字符串和整数数据分别定义CBEncodeString 和CBEncodeInt类的对象存放结果;列表类型的数据使用C#中的List泛型类定义一个列表:

public List m_listObj= new List()暂存分析列表的结果,m_listObj的数据类型定义成基类以便同时存放四个子类的分析结果;字典分析结果的存放用SortedList泛型类定义一个字典类型:

public SortedList m_mapObj = new SortedList()暂存分析字典的结果;同时,在字典类中,还需要定义一个列表类型m_listObj,因为torrent文件在字典结构中包含有列表,这样的结构有利于数据的读取。而字典类型中的值定义为基类型,以便于兼容四种数据类型,类似的列表也需要定义为基类。

由于分析的结果有多种,而且结构不同,使用list泛型类定义一个基类型的列表类型m_listObj按序返回分析结果,torrent文件本身就是一个字典,所以保存返回值的列表只有索引值为0的一项,该项存储的内容是已经分析好的整个文件,结构为一个字典。还要需将最终分析结果由列表m_listObj[0])中的内容强制转换成字典CBEncodeDict类型,而字典中又有Bencoding编码中的四种数据类型深层嵌套,分析整个文件的结构,要把所有的格式都考虑到,在输出结果的过程中根据具体情况要进行不同类型和不同次数的强制转换。

4 结论

本文对BT工作原理进行了分析,根据B-encoding编码规则和torrent文件的格式,在C#.NET 2005环境下开发出了对torrent 文件进行解析的Windows应用程序。借助于此程序,将分析结果提供给下载程序就可以开发出BT下载软件。当然,在使用BT软件进行文件共享带来方便的同时,对磁盘的频繁操作可能会引起磁盘老化,占用过多带宽,这些问题都需要在开发有关基于BitTorrent协议的共享软件时给予足够的重视。以较小的代价获得较好的网络文件共享功能。

图1 算法流程

参考文献:

[1]Cohen B.Incentives BuildRobustness in BitTorrent[Z/OL]..

[2]王珏,BitTorrent下载技术研究.科技广场,2005(2).

[3]孔彬,徐良贤,BitTorrent原理分析及改进.计算机工程2004.30(12).

篇9

1、加强区域性档案信息资源的整合

要实现一定区域内档案信息资源的共享,首先要实现将分散在区域内的各级综合档案馆和专门档案馆的馆藏档案信息资源进行整合,档案信息资源的整合是共享的基础。

区域性档案信息资源的整合,首先需要确定公开档案信息数据的范围,制定统一的整合规范和标准,建立统一的元数据字段格式,然后由各馆依据公开范围、整合的规范以及数据库的统一格式,建立档案信息目录数据库。考虑数据库的可扩充性、来源的多样化以及检索的多途径,字段的设置尤为重要,是整个数据库的核心和基础。一个高质量的数据库,既要保证其数据的准确性、内容的完整性,还要考虑数据的规范化、稳定性以及可扩充性,因此,共享数据库的建立必须从数据的整合开始,严格按照统一的元数据标准进行。由于整合涉及的部门和范围比较广,因此共享数据库的建立,可分批、分阶段地实现,并优先考虑整合利用率高、使用面广的档案信息资源。数据是共享的基础,只有充分整合的数据,才能为区域内公众利用档案信息提供便捷的全方位的服务。

2、充分运用多种技术手段

档案信息资源的整合与共享是以计算机、网络及信息技术为主要手段的系统工程。因此,它的实现依赖于各方面技术的成熟和普及状况。在档案信息资源共享建设过程中,我们要综合运用多种技术手段,实现档案信息资源的共享,方便、快捷地满足各类用户的利用需求。

运用多种技术手段实现档案信息资源的共享,首先是硬件技术的运用。硬件技术主要指使用配置较高的硬件设施,如高配置的计算机、扫描仪、存储设备等,这些硬件设施为档案信息资源的共享创造了良好的硬件环境。其次是软件技术的运用。既包括共享软件平台管理系统,也包括共享平台运行的网络环境。对于软件平台的选择,不仅要考虑软件的先进性,还要考虑其兼容性,要根据区域内档案信息资源的实际建设及应用情况,选择和开发合适的软件平台;而对于共享平台运行的网络环境,保障其安全是重中之重。网络环境安全的保障主要需做好基础防护工作,具体有服务器及时打上补丁、防病毒软件的安装与升级更新、防火墙设置以及数据库系统的安全防护,另外还需要做好数据的备份。档案信息数据的整合花费了大量人力物力,如果因安全问题造成数据丢失必将造成重大的损失,因此,需要及时做好对档案数据的异地异质多套备份,以确保信息资源的安全。

3、开展多种形式的利用服务

我们实现区域内档案信息资源共享的目的,就是为了整合现有档案信息资源,为社会各领域提供方便、实用、有效的档案信息利用服务。档案人员要拓展思路,改变传统的服务模式,充分利用区域内档案信息资源共享平台,开展多种形式的网络服务。各级各类档案馆将特色馆藏通过共享平台向公众展示、宣传,通过共享数据库,提供多字段、多种方式的信息检索服务,并依托共享网络平台为社会公众提供论坛、E-mail、表单式以及在线实时咨询服务。同时,区域内各级各类档案馆可以指定专人负责,根据具体的咨询要求,有针对性地及时向利用者提供相关的档案信息或查找线索,实现区域内档案利用的联合咨询服务网络。网络环境下多种形式的利用服务的开展,更好地增强了档案信息资源服务社会的能力,也提升了区域内各档案部门档案资源的利用率。

4、利用需求反馈信息的收集与分析

篇10

刚巧,快进入大学四年级的表弟打电话过来咨询我实习方面的经验,作为“交换条件”我向他取了取漫画经。等表弟听说了我的“刷屏控”后,电话那头传来了一阵大笑,“哥呀,现在都什么年代了,查更新这种工作就交给WebMon这个助手干吧。”原来表弟因为学习忙,就在网上找了个监控网站软件,当漫画更新时它会第一时间通知他,这样就不用像我那样抓狂了。

共享软件WebMon下载地址:/soft/softdown.asp?softid=384

点击软件工具栏上的第一个按钮“Add web page”,然后添加上常用的海贼王在线漫画地址/comic/55/,一路点击OK即可完成设置,以后网站上一有风吹草动,WebMon就会在任务栏里跳出“通知”为我们通风报信。

小提示

由于软件是通过解析所监控的网页Html语言元素的变动来判断网站是否有更新,所以哪怕是一个广告的更新,WebMon都会负责任地告诉我们。为了避免让我们空欢喜,软件开发者还为我们提供了更详细的更新判断设置。

在软件界面上选择刚才添加的以网站标题为名称的网站监控点,如爱漫画网海贼王专题就是“海贼王 海贼王漫画”,然后按快捷键Ctrl+M调出设置对话框,点击左下角的“Specify content to check”(即详细监控点设置),在“Start checking”和“Stop checking”分别输入需要监控网站页面更新的起点与终点关键字。

例如我在爱漫画海贼王专题中把即将更新的615话设为监控起点(在Start checking中输入“海贼王615话”),为了不错过漫画的番外篇,我把0话设为终点(在Stop checking中输入“海贼王000话”)。

小提示