软件开发与案例分析_第1页
软件开发与案例分析_第2页
软件开发与案例分析_第3页
软件开发与案例分析_第4页
软件开发与案例分析_第5页
已阅读5页,还剩102页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程回顾软件工程 (Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。现代软件开发对人才的要求扎实的基础创新独立的工作能力主人翁精神和团队精神沟通与协调能力成就感、有

2、激情自觉的干好工作锲而不舍,从错误中学习软件工程的定义 IEEE在软件工程术语汇编中的定义:软件工程是:1.将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件;2.在1中所述方法的研究 目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。 软件工程的目标软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软

3、件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。 可修改性(modifiablity)。容许对系统进行修改而不增加原系统的复杂性。它支持软件的调试与维护,是一个难以达到的目标。 有效性(efficiency)。软件系统能最有效地利用计算机的时间资源和空间资源。各种计算机软件无不将系统的时/空开销作为衡量软件质量的一项重要技术指标。很多场合,在追求时间有效性和空间有效性方面会发生矛盾,这时不得不牺牲时间效率换取空间有效性或牺牲空间效率换取时间有效性。时/空折衷是经常出现的。有经验的软件设计人员会巧妙地利用折衷概念,在具体的物理环境中实现用户的需求和自己的设计。 可理解性(

4、understandability)。系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植或重用。 可靠性(reliability)。能防止因概念、设计和结构等方面的不完善造成的软件系统失效,具有挽回因操作不当造成软件系统失效的能力。对于实时嵌入式计算机系统,可靠性是一个非常重要的目标。因为软件要实时地控制一个物理过程,如宇宙飞船的导航、核电站的运行,等等。如果可靠性得不到保证,一旦出现问题可能是灾难性的,后果将不堪设想。因此在软件开发、编码和测试过程中,必须将可靠性放在重要地位。 可维护性(maintainability)。软件产品交付用户使用

5、后,能够对它进行修改,以便改正潜伏的错误,改进性能和其他属性,使软件产品适应环境的变化,等等。由于软件是逻辑产品,只要用户需要,它可以无限期的使用下去,因此软件维护是不可避免的。软件维护费用在软件开发费用中占有很大的比重。可维护性是软件工程中一项十分重要的目标。软件的可理解性和可修改性有利于软件的可维护性。 可重用性(reusebility)。概念或功能相对独立的一个或一组相关模块定义为一个软部件。软部件可以在多种场合应用的程度称为部件的可重用性。可重用的软部件有的可以不加修改直接使用,有的需要修改后再用。可重用软部件应具有清晰的结构和注解,应具有正确的编码和较低的时/空开销。各种可重用软部件

6、还可以按照某种规则存放在软部件库中,供软件工程师选用。可重用性有助于提高软件产品的质量和开发效率、有助于降低软件的开发和维护费用。从更广泛的意义上理解,软件工程的可重用性还应该包括:应用项目的重用,规格说明(也称为规约)的重用,设计的重用,概念和方法的重用,等等。一般来说,重用的层次越高,带来的效益也就越大。 可适应性(adaptability)。软件在不同的系统约束条件下,使用户需求得到满足的难易程度。适应性强的软件应采用广为流行的程序设计语言编码,在广为流行的操作系统环境中运行,采用标准的术语和格式书写文档。适应性强的软件较容易推广使用。 可移植性(portability)。软件从一个计算

7、机系统或环境搬到另一个计算机系统或环境的难易程度。为了获得比较高的可移植性,在软件设计过程中通常采用通用的程序设计语言和运行环境支撑。对依赖于计算机系统的低级(物理)特征部分,如编译系统的目标代码生成,应相对独立、集中。这样,与处理机无关的部分就可以移植到其他系统上使用。可移植性支持软件的可重用性和可适应性。 可追踪性(tracebility)。根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向追踪的能力。软件可追踪性依赖于软件开发各个阶段文档和程序的完整性、一致性和可理解性。降低系统的复杂性会提高软件的可追踪性。软件在测试或维护过程中或程序在执行期间出现问题时,

8、应记录程序事件或有关模块中的全部或部分指令现场,以便分析、追踪产生问题的因果关系。 可互操作性(interoperability)。多个软件元素相互通信并协同完成任务的能力。为了实现可互操作性,软件开发通常要遵循某种标准,支持折衷标准的环境将为软件元素之间的可互操作提供便利。可互操作性在分布计算环境下尤为重要。 软件工程的七条原理 用分阶段的生命周期计划严格管理这一条是吸取前人的教训而提出来的。统计表明,50%以上的失败项目是由于计划不周而造成的。在软件开发与维护的漫长生命周期中,需要完成许多性质各异的工作。这条原理意味着,应该把软件生命周期分成若干阶段,并相应制定出切实可行的计划,然后严格按

9、照计划对软件的开发和维护进行管理。 在整个软件生命周期中应指定并严格执行6类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。 坚持进行阶段评审统计结果显示: 大部分错误是在编码之前造成的,大约占63%错误发现的越晚,改正它要付出的代价就越大,要差2到3个数量级。 因此,软件的质量保证工作不能等到编码结束之后再进行,应坚持进行严格的阶段评审,以便尽早发现错误。 实行严格的产品控制开发人员最痛恨的事情之一就是改动需求。但是实践告诉我们,需求的改动往往是不可避免的。这就要求我们要采用科学的产品控制技术来顺应这种要求。也就是要采用变动控制,又叫基准配置管理。当需求变

10、动时,其它各个阶段的文档或代码随之相应变动,以保证软件的一致性。 采纳现代程序设计技术从六、七时年代的结构化软件开发技术,到最近的面向对象技术,从第一、第二代语言,到第四代语言,人们已经充分认识到:方法大似气力。采用先进的技术即可以提高软件开发的效率,又可以减少软件维护的成本。 结果应该可以清晰地审查软件是一种看不见、摸不着的逻辑产品。软件开发小组的工作进展情况可见性差,难于评价和管理。为更好地进行管理,应根据软件开发的总目标及完成期限, 尽量明确地规定开发小组的责任和产品标准,从而使所得到的标准能清楚地审查。 开发小组人员应该少而精开发人员的素质和数量是影响软件质量和开发效率的重要因素,应该

11、少而精。这一条基于两点原因:高素质开发人员的效率比低素质开发人员的效率要高几倍到几十倍,开发工作中犯的错误也要少的多; 当开发小组为N人时,可能的通讯信道为N(N-1)/2, 可见随着人数N的增大,通讯开销将急剧增大。 承认不断改进软件工程实践的必要性遵从上述六条基本原理,就能够较好地实现软件的工程化生产。但是,它们只是对现有的经验的总结和归纳,并不能保证赶上技术不断前进发展的步伐。因此,玻姆提出应把承认不断改进软件工程实践的必要性作为软件工程的第七条原理。根据这条原理,不仅要积极采纳新的软件开发技术,还要注意不断总结经验,收集进度和消耗等数据,进行出错类型和问题报告统计。这些数据既可以用来评

12、估新的 软件技术的效果,也可以用来指明必须着重注意的问题和应该优先进行研究的工具和技术。 类与实例构造方法方法重载属性和修饰符封装继承多态重构抽象类接口集合泛型面向对象什么是对象、什么是类?一切事物皆为对象,所有的东西都是对象,即一切可以看到的、听到的、闻到的东西,准确的说对象是一个自包含的实体,用一组可识别的特性和行为来标识,面向对象向编程就是针对对象来进行编程的意思。类与实例对象是什么?类是什么?对象:一起事物皆为对象,而且对象也是一个自包含的实体,用一组可标识的属性和行为来标识。类:是具有相同属性和功能的对象的抽象的集合(也可以说类用来描述某种具有相同属性和行为的事物),类是现实生活中存

13、在的一切对象,是一个抽象的概念,而对象是类的一个具体的体现者,是对类的实力,是一个具体的概念。因而对象不能离开类而单独存在。 类的字段(域):可以把字段理解为类级别的变量、常量,用以存储该类的实例的相关数据(用来存储类要满足其设计所需要的数据)。字段是每个类说独特的,一般设置为private(私有的)。字段如果设置为public(公有的),即在类外可以直接被调用(在类外一般以属性的形式来调用字段),而且在写程序时候有些字段类本身是不想让外界知道的,怕会产生异常甚至严重的后果,而且类的字段一般设置为private。 类的属性:简单理解为一个方法或一对方法;可以理解为对类的字段进行封装;将类的数据

14、暴露给类外。类的字段是private,私有的变量;类的属性是public,因而可以说类的属性是公有的变量,故外界调用字段一般以类的属性来实现。通过运用属性,可以设置字段的可读可写,也可以对字段进行逻辑判断。类的构造方法:特点:构造方法名与类名相同;构造方法没有返回值,在类实例化(new)时候调用。功能:对类的初始化和在类初始化时提供相关的数据。每一个类都具有构造方法,类默认会生成一个空有的构造方法,什么也不做。构造方法也不能被继承。所有类型和类型成员都具有可访问性级别,用来控制是否可以在程序集的其他代码中或其他程序集中使用它们。在声明类型或成员时使用以下访问修饰符之一来指定其可访问性publi

15、c访问修饰符:英文意思是公共的,可以在应用程序的任何地方调用,其访问时不受限制的。这是在CSDN上的解释:同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类型或成员。也就是说public修饰符可以跨程序集进行访问。private:英文意思是私有的,只能在类的内部调用,任何对象的实例都不能访问private成员或方法。csdn上的解释:有同一类或结构中的代码可以访问该类型或成员。 protected:英文意思是受保护的。CSDN上的解释:只有同一类或结构或者派生类中的代码可以访问该类型或成员。 特别针对于继承,protected修饰符只对其子类开放。 internal:英文意思是

16、内在的,内部的。CSDN上的解释:同一程序集中的任何代码都可以访问该类型或成员,但其他程序集中的代码不可以。也可以说internal访问修饰符不能实现跨程序集的访问(在一个解决方案中,只能在其下某个应用程序中调用,不能跨整个解决方案中调用)。 protected internal:英文意思受保护的,内部的。csdn上的解释:同一程序集中的任何代码或其他程序集中的任何派生类都可以访问该类型或成员。 其实可以简单的理解为是proteced修饰符与internal修饰符的相加。 封装:csdn上的解释:封装”意味着将一组相关属性、方法和其他成员视为一个单元或对象。对象可以控制更改属性和执行方法的方式

17、。简单的说封装可以使得每个对象都包含它能进行操作所需要的所有信息,因此对象不必依赖其他对象来完成自己的操作。 简单说下封装的好处:1、利于代码的复用 2、代码易读 3、使得对象对外提供了清晰的接口 4、减少耦合 例如对字段的封装就是属性继承:csdn上解释:基于现有类创建新类的能力。新类继承基类的所有属性、方法和事件,而且可用其他属性和方法自定义该新类。把共有的特性放在父类(基类)中,子类(派生类)可以继承父类(基类),共享父类的共有的特性。 注意:1、子类拥有父类除private的属性和功能 2、子类可以扩展父类没有的属性和功能 3、子类可以以自己的形式实现父类的功能(方法重写) 继承的好处

18、:1、利于代码复用 2、代码易读 多态:简单理解为一个方法,多种形态。也可以说不同的对象可以执行相同的操作,但是它们都是通过自己的方法来实现(方法重写,实现多态)。CSDN上解释:意味着可以有多个可互换使用的类,即使每个类以不同方式实现相同属性或方法。多态性是面向对象编程的实质,因为它允许使用同名的项,而不管此时在使用什么类型的对象。 注意:1、子类以父类的身份出现 2、子类在工作时以自己的方式出现 3、子类以父类的方式出现时,子类特有的行为不能出现 多态的好处:1、代码复用 2、代码易读 3、易于扩展抽象类:简单的说抽象与具体相对,是一个需要想象的概念。比如:在写程序的时候,动物可视为一个抽

19、象类,但你能描述一个动物是什么样子么?很显然不能,但是我们能描述一直猫长什么样子。动物:抽象;猫:具体。 特点:1、抽象类不能被实例化(动物不能实例化) 2、抽象方法必须是被子类重写的方法,而且抽象方法不含任何实现 3、如果一个类中有抽象方法,那么这个类一定是抽象类,不论其中是否含有一般方法。4、子类必须要(重写)覆盖其父类的抽象方法 运用:抽象类通常代表一个抽象的概念,它提供了一个继承的出发点,但设计一个抽象类时,一定是用来继承的。 好处:1、代码易读 2、代码复用 3、程序易扩展对象是一个自包含的实体,用一组可识别的特性和行为来标识。面向对象编程就是针对对象来进行编程的意思。类就是具有想听

20、属性的功能的对象的抽象的集合。 接口:接口是把隐式功能方法和属性组合起来,以封装特定功能的一个集合。一旦类实现了接口,类就可以支持接口所指定的所有属性和成员。声明接口与声明抽象类完全相同,但不允许接口提供成员的任何实现方式。 特点:1、接口可以看作虚的,即不能被实例化 2、包含未实现的方法 3、派生类必须实现未实现的方法 4 抽象类只允许定义属性、方法、索引器、事件等成员接口和抽象类的区别: 相同点:1:都不能被实例化 2:都包含未实现的方法,需要子类来实现 3、抽象类可以给出一些成员的实现,但接口不能,需要被子类完全实现。区别:第一:类是对对象的抽象,抽象类是对类的抽象,接口是对行为的抽象

21、第二:如果行为跨越不同类的对象,可以使用接口;对于一些相似类的对象,可以继承抽象类。 第三:从设计角度讲,抽象类是从子类中发现了共有的东西,泛化出父类,然后子类继承父类;而接口根本不知道子类的存在,方法实现还不确认,是预先进行定义的。 第四:.接口支持多重继承,而C中,类之支持单一继承,接口实际表示的是一种承载能力, 第五:抽象类不能被密封。 抽象类和接口的使用: 1. 如果预计要创建组件的多个版本,则创建抽象类。抽象类提供简单的方法来控制组件版本; 2.如果创建的功能将在大范围的全异对象间使用,则使用接口。如果要设计小而简练的功能块,则使用接口; 3.如果要设计大的功能单元,则使用抽象类。如

22、果要在组件的所有实现间提供通用的已实现功能,则使用抽象类; 4.抽象类主要用于关系密切的对象;而接口适合为不相关的类提供通用功能。 1.飞机会飞,鸟会飞,他们都继承了同一个接口“飞”;但是F22属于飞机抽象类,鸽子属于鸟抽象类; 2. 就像铁门木门都是门(抽象类),你想要个门我给不了(不能实例化),但我可以给你个具体的铁门或木门(多态);而且只能是门,你不能说它是窗(单继承),一个门可以有锁(接口)也可以有门铃(多实现)。门(抽象类)定义了你是什么,接口(锁)规定了你能做什么(一个接口最好只能做一件事,你不能要求锁也能发出声音吧(接口污染)。编码时注意:1、类名称首字母要大写。多个单词则各个首

23、字母大写。2、注意修饰符的使用。家庭视频监控系统第一讲 前言第二讲 系统功能结构第三讲 系统业务流程第四讲 编码规范第五讲 数据库设计第六讲 编写公共类第七讲 登录模块设计第八讲 视频监控模块设计第九讲 监控管理模块设计第十讲 录像回放模块设计前言本章使用C#3.5+视频采集卡制作一个简单的家庭视频监控系统,并将系统划分为几个模块,分块进行详细的讲解,通过各个模块的学习,掌握视频监控系统的开发技术及原理。本章主要内容:单元测试及常用单元测试工具Access2003数据库和数据表的创建如何在WinForms程序中操作Access2003数据库视频采集卡的使用Pelco-D协议进行云台控制如何读取

24、和写入注册表信息开发背景为了紧随逐渐加快的生活节奏,并适应不断增加的生活压力,视频监控系统成为了生活中的需要。该系统的主要作用是:当用户外出时,可以监控家里的各种情况,并可以将家里的变化情况录制成视频文件,以供后期查看。可行性分析 根据GB8567-88计算机软件开发文件编制指南中的可行性分析的要求,制定可行性研究报告。1.引言编写目的为了给企业的决策层提供是否进行项目的实施的参考依据。以文件的形式分析项目的风险、项目需要的投资与效益背景外出时,可以监控家里的各种情况,现委托相关公司开发一个视频监控系统,项目名称为家庭视频监控系统可行性研究前提要求系统要求能够提供视频监控、快照、录像和自动监控

25、功能。目标主要目标是保证家里的安全。条件、假定和限制项目需要在一个月内交付用户使用,系统分析人员需要两天内到位,用户需要三天时间确认需求分析文档,去除其中可能出现的问题。投资及效益分析支出根据系统的规模及项目的开发周期,公司决定投入三个人,公司将直接支付三万元的工资及各种福利待遇。在安装及调试阶段,用户培训员工出差等费用支出需要1万元。在项目维护阶段,预计需要投入1.5万元资金。项目累计投入需要5.5万元资金。收益用户提供项目资金10万元。对于项目运行后进行的改动,采取协商的原则,根据改动规模额外提供资金。从投资于收益效益比上,公司可以获得4.5万元的利润。结论根据分析,在技术上不会存在问题,

26、因此延期的可能性很小。在效益上公司投入3人,一个月获利4.5万元,比较可观;在公司今后发展上可以储备软件开发的经验和资源,因此认为该项目可以开发。编写项目计划书1.引言编写目的为了保证项目开发人员按时保质地完成预定目标,更好的了解项目实际情况,按照合理的顺序开展工作,以书面的形式将项目的生命周期中的各项的任务范围、项目团队组织结构、团队成员的工作责任、团队内外的沟通方式、开发进度、检查工作等内容描述出来,作为项目相关人员之间的统一约定和项目生命周期内的所有项目活动的行为基础。背景家庭视频监控系统是由家庭委托我公司开发的小型视频监控系统,系统主要用于监控家里的人员活动情况,项目周期为一个月2、概

27、述项目目标应该符合SMART原则,把项目要完成的工作用清晰的语言描述出来。家庭视频监控系统的项目指标如下。应交付的成果1、以光盘的形式提供家庭视频监控的源程序、系统数据库文件和系统使用说明书。2、系统发布后,进行无偿维护和服务6个月,超过6个月进行系统有偿维护与服务。项目开发环境开发本系统所用的操作系统可以是Windows 2000 server、Windows XP、Windows Server 2003、Windows 7,开发工具是Visual Studio 2008 +视频采集卡,数据库采用Microsoft Access 2003。项目验收方式与依据项目验收分为内部验收和外部验收两种

28、方式。在项目完成后,首先进行内部验收,由测试人员根据用户的需求和项目目标进行验收。通过内部验收后,交给用户进行内部验收,验收的主要依据为需求规格说明书3、项目团队组织组织结构人员分工系统功能结构业务流程图编码规范1、数据库命名规范2、程序代码命名规范单元测试单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。 单元测试不仅仅是作为无错编码一种辅助手段在一次性的开发过程中使用,单元测试必须是可重复的,无论是在软件修改,或是移植到新的运行环境的过程中。因此,所有的测试都必须在整个软件系统的生命周期中进行维护。 在一种传统

29、的结构化编程语言中,比如C,要进行测试的单元一般是函数或子过程。在象C+这样的面向对象的语言中, 要进行测试的基本单元是类。对Ada语言来说,开发人员可以选择是在独立的过程和函数,还是在Ada包的级别上进行单元测试。单元测试的原则同样被扩展到第四代语言(4GL)的开发中,在这里基本单元被典型地划分为一个菜单或显示界面。 经常与单元测试联系起来的另外一些开发活动包括代码走读(Code review),静态分析(Static analysis)和动态分析(Dynamic analysis)。静态分析就是对软件的源代码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和执行。动态分析就是通

30、过观察软件运行时的动作,来提供执行跟踪,时间分析,以及测试覆盖度方面的信息。 单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。例如,你可能把一个很大的值放入一个有序list 中去,然后确认该值出现在list 的尾部。或者,你可能会从字符串中删除匹配某种模式的字符,然后确认字符串确实不再包含这些字符了。 单元测试的优点它是一种验证行为。程序中的每一项功能都是测试来验证它的正确性。它为以后的开发提供支缓。就算是开发后期,我们也可以轻松的增加功能或更改程序结构,而不用担心这

31、个过程中会破坏重要的东西。而且它为代码的重构提供了保障。这样,我们就可以更自由的对程序进行改进。 优点二它是一种设计行为。编写单元测试将使我们从调用者观察、思考。特别是先写测试(test-first),迫使我们把程序设计成易于调用和可测试的,即迫使我们解除软件中的耦合。 优点三它是一种编写文档的行为。单元测试是一种无价的文档,它是展示函数或类如何使用的最佳文档。这份文档是可编译、可运行的,并且它保持最新,永远与代码同步。 优点四它具有回归性。自动化的单元测试避免了代码出现回归,编写完成之后,可以随时随地的快速运行测试。 视频监控模块设计家庭视频监控模块主要功能就是视频监控,视频监控模块主要用来

32、监控某一区域日常变化情况,用户可以通过云台控制和方法控制两大功能监控其他区域的日常变化。另外如果用户临时需要离开,可以将该区域的变化情况录制成视频文件,以便后期查看。视频监控模块技术分析视频监控模块,主要用到了视频采集卡厂商提供的SDK开发包以及串口通信技术。1.sdk开发包Sdk是视频采集卡厂商提供的开发视频监控系统的一组库函数,使用SDK开发包中的库函数,程序开发人员可以在不了解视频压缩、回放和网络传输等技术的前提下,进行视频程序开发。2、串口通信技术视频监控系统主要使用串口通信技术实现了对云台和方向的控制,主要用于控制串行端口文件资源,它提供同步I/O和时间驱动的I/O,对管脚和中断状态

33、的访问以及对串行驱动程序属性的访问。该类位于System.IO.Ports命名空间下。监控管理模块设计监控管理模块主要用来对系统登录用户进行管理,通过此模块,可以添加修改和删除用户信息监控管理模块技术分析监控管理模块实现时,主要用到了ADO.NET技术操作数据库使用ADO.net技术操作数据库时,主要用到了Connection、Command、DataAdapter和DataSet对象在线考试系统传统考试要求老师刻试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷。这是一个漫长而复杂的过程,已经越来越不适应现代教学的需要。在线考试系统是传统考场的延伸,它可以利用网络的无限广阔

34、空间,随时随地的对学生进行考试,加上Web数据库技术的利用,大大简化了传统考试的过程。本章主要内容验证不同身份的登录用户随机抽取试题如何实现考试计时功能如何实现试卷无刷新如何实现系统自动评分合理的创建后台管理开发背景 Internet技术的发展使得考试的技术手段和载体发生了革命性的变化,Internet的开放性、分布性的特点和基于Internet的巨大的计算能力使得考试突破了时间和空间的限制。与传统考试模式相比,在线考试具有无可比拟的优越性,它可以将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,几乎屏蔽了所有人工直接干预考试活动的可能性,不但能够节

35、约大量的时日、人力、物力与财力,而且还可以大幅度增加考试成绩的客观性和公正性。需求分析本系统的用户可分为管理员和普通用户两类。本系统共分成两个界面:一个界面用于管理员登录,主要负责进行基本资料、题库、试卷、成绩的管理以及查询等;另外一个界面用于普通用户登录,主要负责在线考试、查询以往考试。对管理员来说,包括试卷管理、题库管理、成绩管理。1、试卷管理:管理员可以从课程,各种题型的数量等方面对某份试卷提出一定的要求生成试卷规则,。同时,管理员还可以对库中已有的试卷进行修改和删除,添加新试卷等。4、学生管理:管理员可以对用户的资料进行查询、删除。2、题库管理:管理员可以对题库中的试题进行三种基本操作

36、:添加新的考题、删除旧有考题、修改原有考题,其中试题类型包括判断题、填空题、选择题;对于每种类型的试题,教师可以设置题干、答案等属性。3、成绩管理:管理员可以查看考生的考试成绩,并针对不同的课程进行成绩统计,包括考试人数、最高分、最低分、平均分以及各分数段得分人数等。4、学生管理:管理员可以对用户的资料进行查询、删除。对普通用户来说,包括在线考试、查询以往考试成绩、留言和在线交流等。1、在线考试:学生可以任选时间进行在线测试,考试结束后,系统会根据已有的标准答案进行在线判卷,考生可以立刻知道考试成绩。2、查询以往考试成绩:学生可以在线查询以前参加过的每门课程的考试相关信息。可行性分析1.引言为

37、了给学校决策层提供是否进行项目实施的参考依据,以文件的形式分析项目的风险、项目需要的投资和效益2.可行性研究的前提要求在线考试系统要求对考生进行登录验证、考生必须阅读考试规则、选择开始科目、随机抽取试题产生试卷、限制考试时间、交卷后自动评分,同时需要为学院管理人员提供试卷管理及后台管理员管理目标系统设计的主要目标是为学院减少不必要的浪费并且考核学生的成绩变得客观公正条件、假定和限制项目需要在3个月内交付使用。系统分析员需要在三天内到位,用户需要在5天内确认需求分析文档。去除其他客观因素,占用8天时间确认需求分析文档,那么程序员要在两个月零二十天时间内进行系统设计、程序编码、系统测试、程序调试和

38、网站部署。其间包括员工的休息时间评价尺度根据用户的需求,项目主要以在线考试为主,因此要求能对考生答题进行准确的评分,并且能够对试题信息进行修改和删除。此外出于安全和国法律方面的考虑,在先考试系统在受到黑客攻击的同时,应在10分钟之内进行恢复。3、结论根据以上分析,技术上不存在任何问题,因此项目延期的可能性很小,在效益上,公司投入6个人、3个月获利7万元,比较可观。在公司今后的发展上 ,可以储备在线考试系统开发的经验和资源。一次认为该项目可以开发 。项目计划书编码规范规范的编码风格不仅体现了一个人的技术水平,从某种意义上说也体现了一个企业的形象。好的、规范的编码风格,对于整个项目团队来说显得尤为重要。“程序员、程序员”顾名思义就是来编程序的人员。他们

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论