android软件需求分析

2024-06-27

android软件需求分析(共9篇)

篇1:android软件需求分析

1、问题描述

许多医院存在高峰期挂号排队时间长,就诊等待时间长,倒号现象频发的问题。因此,构建一个网上预约挂号系统,通过推荐患者使用该系统进行出诊信息查询和医生预约,可以缓解就诊压力、节约患者的时间,并且可以在一定程度上保证预约者和就诊者一致,有利于提高医院的服务质量。为了更好的设计并实现这一系统,对系统进行需求建模和分析是十分必要的。

2、情景描述的主要成分

2.1、该系统所涉及的用户

本系统的用户包含患者、医生以及管理员三类。而且该三类用户各自的特征和所要面对的情景也是截然不同的。

对于患者来说,他们在年龄、计算机使用能力等方面存在较大差异,但面对的情景都一样,就是要预约挂号,挂号成功过后就诊。

对于医生来说,普遍具备较高的学历,在医疗方面具备专业知识,有一定的计算机使用能力。所面对的情景有查看挂号信息,确定要就诊的病人。

对于管理员来说,他们负责对出诊信息进行管理,是医院工作的安排者,具备较强的计算机使用能力。

不同的用户,对系统的要求也不相同。患者希望通过完成注册和登录后能够进行挂号预约,查询医生的出诊信息和个人预约信息,并且能够在规定的时间内完成挂号预约或者取消已有的预约;医生则希望能够在登录系统后可以查看病人的预约情况;而管理员希望可以修改出诊信息和调整预约挂号。这些都是功能性的需求。

同时对于所有用户都希望该系统是易用的,而且能够对自己的信息起到保护即系统安全性的要求,还有比如说系统的性能比较高效,能够及时处理自己的预约申请。当然开发系统的成本如果也能较低就更好了。这些都是非功能需求。

2.2、情景描述的主要成分

 目标和关键成功因素

预约挂号情景的目标是“让患者能够及时的挂号,并能顺利的就诊”,而可能的子目标包括:患者能够注册账号,患者能够登录账号,患者能够查询预约记录,患者能够取消已有预约,患者能够查询出诊信息。关键成功因素,要保证系统能够24小时正常稳定的运行,系统里的信息要是实时变化的,即可以预约的医生要和实际在值班的医生要匹配,不能出现挂上号了却没有医生就诊的情况。

 物理上下文和逻辑上下文 物理上下文:医院用于挂号的计算机可以正常的使用,情景中的可以被预约的医生应该是在医院值班的;而对于患者可以选择在医院进行预约,也可选择在家中进行预约,只要在预约时间内能到达医院就可。逻辑上下文:事件发生的条件是患者在系统中进行了预约,然后管理员会根据现有的资源(可以预约的医生)对预约进行处理,如果同意,下一步就是医生就诊;如果没有可以预约的医生或合适的时间,患者的预约就不成功,患者需要重新选择医生或时间进行预约。

 组成情景的主要事件和活动 主要事件:患者预约挂号,管理员对预约挂号的处理,医生就诊。主要活动:患者注册、登录系统,患者在系统中查询可以预约的医生和时间,患者取消已有预约,患者进行就诊;管理员接受或拒绝预约,管理员分配医生;医生查询预约信息。

 涉及的执行者和其他参与者

执行者:医院的医生,预约挂号系统的管理员。其他参与者:医院的相关人员,比如患者,前台咨询员等。

 要使用的信息和资源 要使用的信息和资源包括,可以预约的医生数量,所在科室等,医院中的设备,病房等。 要考虑的约束条件和要使用的规则 约束条件:同一医生同一时间段内只能接受一名患者的预约,根据医疗设备的属性决定是否要排他性的使用。

3、情景需求分析的步骤

需求规格说明输入过程需求目标列表1.目标分析系统模型目标,目的使用情景用户问题实例2.输入事件分析初始系统模型用户,环境事件情景脚本4.输出需求分析3.刻画系统输出情景结构模型系统输出类型信息需求5.社会影响分析Agent目标6.涉众分析需求规格说明

3.1 目标分析

在第2部分情景描述的主要成分中已经对目标进行了分析,即:预约挂号情景的目标是“让患者能够及时的挂号,并能顺利的就诊”,而可能的子目标包括:患者能够注册账号,患者能够登录账号,患者能够查询预约记录,患者能够取消已有预约,患者能够查询出诊信息。3.2 输入事件分析

对于该系统的输入事件可能会包括如下情况:初始使用该系统的用户需要先注册,而对于已经注册的用户在使用系统预约挂号时首先要登录系统。这是最基本的两个输入事件。3.3 刻画系统输出

对于系统输出我们要考虑系统输出的形式,比如消息显示,对话框等形式。不如用户在登录系统是输入的用户名和密码不匹配的时候要给出对应的提示信息,比如用户名未注册或密码不对等。在提交预约挂号申请后系统也应给出预约成功与否的提示。3.4输出需求分析

对于输出需求要根据用户的输入给出对应的输出。比如用户输入查询请求,那么系统应该能够给出详细的信息。系统只给出对应的输出还不够,同时要考虑输出的信息是否合适。比如用户要查询眼科医生的资料,系统的输出就应该只是眼科医生的信息,而没有必要把所有医生的信息都输出。3.5 社会影响分析

在进行社会影响分析时要同时考虑到积极和消极两个方面的问题。系统是否可以提高效率,减少人员的工作量。同时也要考虑过多的自动化是否会削弱人对整个系统的意识,导致人对意外处理的能力降低,比如系统临时出现问题,是否有一套应急措施使医院日常工作能够正常的进行。

4、需求说明文档

基于之前构建的模型,并参照IEEE 830-1998标准模板,撰写的系统需求说明文档如下。

4.1 引言

引言部分将对本文档的编写目的、系统的开发目的、名词定义以及参考资料进行说明,并对文档的后续内容进行概述。4.1.1 编写目的

网上预约挂号系统是基于Web开发技术完成的网站。为了更好的设计并实现这一系统,对系统进行需求建模和分析是十分必要的。因此,基于之前构建的各类模型,撰写系统的需求说明文档,并将其作为后续项目设计、项目开发和项目测试的指导。

本文档连同之前构建的模型,可用来与客户进一步明确需求,同时可供项目经理、设计人员、开发人员参考。4.1.2 系统目的

许多医院存在高峰期挂号排队时间长,就诊等待时间长,倒号现象频发的问题。因此,构建一个网上预约挂号系统,通过推荐患者使用该系统进行出诊信息查询和医生预约,可以缓解就诊压力、节约患者的时间,并且可以在一定程度上保证预约者和就诊者一致,有利于提高医院的服务质量。4.1.3 名词定义  患者预约系统

网上预约挂号系统的子系统,主要用于为患者提供预约挂号、信息查询等功能。 医生工作查询系统

网上预约挂号系统的子系统,主要用于为医生提供各时段预约患者的信息。 医务管理系统

网上预约挂号系统的子系统,主要用于为管理员提供出诊信息修改、预约挂号调整等功能。 账号控制系统

网上预约挂号系统的子系统,主要用于用户账号的注册及登录控制。 安全保障系统

网上预约挂号系统的子系统,主要用于保障系统的程序、网络及数据库安全。4.1.4 参考资料

[1]Objectiver: A KAOS tutorial.Respect-It(2004)[2]吴双兵,刘伟.网上预约挂号系统设计与实现[J].医学信息学杂志, 2015, 36(1):36-39.4.1.5 文档概述

需求说明文档主要分为三个部分。本节属于引言部分,主要用于对文档本身进行定义和描述。文档的第二部分为系统的整体描述,包括系统的预期目标、限制条件以及用户的需求、特征。文档的第三部分是需求说明,包含对系统需求的明确定义。

4.2 整体描述

本节将对系统预期、用户需求、用户特征、条件与限制、假定与依赖以及需求分配进行说明。

4.2.1 系统预期

为了方便用户在不需安装任何软件的情况下使用系统,本系统整体采用B/S结构,用户可以通过浏览器对其进行访问。4.2.2 用户需求

参照之前完成的目标模型,对用户的需求进行整理和定义。由于系统整体较为复杂,因此本小节只包含已构建目标模型的功能性需求和非功能性需求。 功能性需求

1.患者进行预约选择

为了实现患者进行预约选择的目标,系统应完成的需求如下。(1)系统拥有患者预约页面以及预约按钮:

系统的预约页面可以显示未来1至3天的出诊医生及其所有可被预约的出诊时段。其中,尚未被预约的时段拥有预约按钮;已被预约的时段无法被其他患者预约,因此无预约按钮。(2)系统接收到预约请求:

当患者点击预约按钮,系统可以接收到预约请求。(3)患者被告知预约选择结果:

系统可以对患者是否预约成功进行判定,如果成功则跳转至信息确认页面,否则弹出对话框给予患者相应提示。2.患者确认预约信息

为了实现患者确认预约信息的目标,系统应完成的需求如下。(1)系统拥有预约信息确认页面以及预约提交按钮:

系统的预约信息确认页面会显示预约的医生和时段,患者的个人信息,以及预约提交按钮,患者可以在提交预约前核对这些信息。(2)系统接收到预约提交请求:

当患者点击提交按钮,系统可以接收到预约提交请求。(3)患者被告知预约提交结果:

系统可以对预约是否提交成功进行判定,并弹出对话框给予患者相应提示。 非功能性需求 1.安全的系统

为了保证预约挂号系统的安全性,系统应完成的需求如下。(1)用户程序安全:

系统应明确区分不同类别用户的权限。并且在用户登录时,输入的密码不可见、不可复制。(2)系统网络安全:

系统应采取安全的网络传输协议,网络数据在被传输前应进行加密。(3)数据库安全:

数据库中存储的数据应具备完整性,且密码应在加密后被存储到数据库中。此外,数据库中的数据应该可以被备份和恢复。2.低成本的系统 为了保证预约挂号系统的低成本,系统应完成的需求如下。(1)系统开发成本低:

开发团队应具备合理的项目管理,且在开发前应尽可能明确系统的需求。(2)系统运营成本低:

系统在运行过程中,应该尽可能少的占用资源。(3)系统维护成本低:

系统应该健壮可靠,出现问题后应该易于修复,且系统的功能应该易于扩展。考虑到系统健壮可靠与系统开发成本低存在一定的冲突,因此需要进行一定的权衡。4.2.3 用户特征

本系统的用户包含患者、医生以及管理员三类,其特征如下。 患者

个体间在年龄、计算机使用能力等方面存在较大差异。 医生

普遍具备较高的学历,在医疗方面具备专业知识,有一定的计算机使用能力。 管理员

负责对出诊信息进行管理,是医院工作的安排者,具备较强的计算机使用能力。4.2.4 条件与限制

为了保证系统的可移植性和可扩展性,本系统应使用Java语言进行开发。4.2.5 假定与依赖

本系统假定提供的大、中、小三种字体大小可以满足不同患者的需求,并且患者可以在系统的引导和提示下正常使用系统。4.2.6 需求分配

由于文档中并未列出系统的全部需求,因此无法对所有需求进行优先级排序。但已经列出的均为系统较为核心的功能性需求和非功能性需求,应具有高优先级。

4.3 需求说明

需求说明部分将参照之前完成的模型,对系统结构、对象模型以及操作过程模型进行详细描述。

4.3.1 系统结构

本部分将主要参照图 3-1所示的责任模型,根据主体对需求进行划分。考虑到系统较为复杂,因此只列出主体“患者预约系统”的相关需求。 患者预约系统

系统拥有患者预约页面以及预约按钮。

系统接收到预约请求。

患者被告知预约选择结果。

系统拥有预约信息确认页面及预约提交按钮。

系统接收到预约提交请求。

患者被告知预约提交的结果。4.3.2 对象模型

本部分将主要对图 4-1所示的对象模型的结构进行解释。

网上预约挂号系统可以被详细划分为患者预约系统、医生工作查询系统、医务管理系统、账号控制系统、安全保障系统等五个子系统。患者预约系统、医生工作查询系统、医务管理系统的使用者分别为患者、医生和管理员,这些用户通过系统提供的页面与系统进行交互。

对象模型中所涉及的名词在4.1.3小节中有具体解释。4.3.3 操作过程模型

本部分将主要对图 5-1,图 5-3和图 5-4所示的操作过程模型进行说明,并以表格的形式列出各操作过程的参与主体及对应需求。 患者进行预约选择

患者点击预约按钮后,患者预约系统会收到患者的预约请求,并触发预约验证操作,得到预约验证结果。接下来,患者预约系统会以得出的预约结果为基础,进行预约结果判定,进而执行页面跳转或消息框弹出操作。 患者确认预约信息

患者点击提交按钮后,患者预约系统会收到患者的预约提交请求,并触发预约提交操作。接下来,患者预约系统会根据提交结果弹出包含相应信息的提示框。

以上部分涉及到的操作过程及与之对应的主体、需求如下表所示。

以上部分涉及到的操作过程及与之对应的主体、需求如表 4-1所示。

操作 预约验证 参与主体

对应需求

患者预约系统 系统接收到预约请求,患者被告知预约选择结果

预约结果判定 患者预约系统 患者被告知预约选择结果 预约提交 患者预约系统 系统接收到预约提交请求,患者被告知预约提交结果

篇2:android软件需求分析

软件需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。进行需求分析时,应注意一切信息与需求都是站在用户的角度上。尽量避免分析员的主观想象,并尽量将分析进度提交给用户。在不进行直接指导的前提下,让用户进行检查与评价。从而达到需求分析的准确性。分析员通过需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发提供一种可转化为数据设计、结构设计和过程设计的数据和功能表示。在软件完成后,制定的软件规格说明还要为评价软件质量提供依据。

需求分析的任务

开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难。目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间接口是系统开发人员最头痛的问题。对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的。但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢?然而,即便并非出于商业目的的软件需求也是必须的。例如库、组件和工具这些供开发小组内部使用的软件。当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价,这些血的教训正在国内的软件开发者身上发生。近来,我遇到一个开发小组开发包括代码编辑器在内的一套内部使用的计算机辅助软件。不幸的是,当他们开发完这个工具后,发现这个工具不能打印出源代码文件,使用者当然希望有这个功能。结果这个小组只好手工抄写源代码文档以供代码检查。这说明那怕需求明确无误并构思准确,如果我们没有编写文档,软件达不到期望目标也只能是咎由自取了。相反的情况,我曾见一个要集成到“错误跟踪系统”中的简单界面写了一页需求说明。而操作系统系统管理员在为处理脚本时发现简单的一张需求清单竟是如此有用。他们依据需求对系统进行测试时,此系统不仅非常清晰地实现了所有必需功能,而且未发现任何错误。事实上,需求文档在开发过程中一直起指导作用。需求的类型

下面这些定义是需求工程领域中常见术语的定义。软件需求包括三个不同的层次:业务需求、用户需求和功能需求(也包括非功能需求)。1.业务需求(business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。2.用户需求(user requirement)文档描述了用户使用产品必须要完成的任务,这在使用实例(usecase)文档或方案脚本说明中予以说明。3.功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。在软件需求规格说明书(SRS)中说明的功能需求充分描述了软件系统所应具有的外部行为。软件需求规格说明在开发、测试、质量保证、项目管理以及相关项目功能中都起了重要的作用。对一个大型系统来说,软件功能需求也许只是系统需求的一个子集,因为另外一些可能属于子系统(或软件部件)。作为功能需求的补充,软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为和执行的操作等。它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性。所谓约束是指对开发人员在软件产品设计和构造上的限制。质量属性是通过多种角度对产品的特点进行描述,从而反

篇3:android软件需求分析

如今Android平台的逆向分析主要应用于恶意代码检测, 从根本上来说这是对逆向技术的一种合理运用和发展。Android平台的逆向分析技术, 主要分为静态分析和动态分析两类。静态分析和动态分析是相对的概念, 动态分析需要观察软件实际运行的情况, 而静态分析只需要从一个正常工作的软件出发, 分析的对象是该软件的源码。

1 问题描述与定义

静态分析是指不运行代码的情况下, 采用词法分析、语法分析等各种技术手段对程序文件进行扫描从而生成程序的反汇编代码, 然后阅读反汇编代码来掌握程序功能的一种一种技术, 在实际的分析过程中, 完全不运行程序是不现实的, 需要通过运行目标程序来寻找程序的突破口。静态分析强调的是静态, 在整个分析过程中, 阅读反汇编代码是主要的分析工作。

1.1 静态分析对象

Android应用程序的后缀的.apk, APK文件其实是zip格式的文件, 可以使用Winrar打开, 得到它的目录结构。如图1所示, 主要包括五个部分, 一是META-INF目录, 用来存放签名信息, 保证apk包的完整性和系统安全;二是res目录, 用来存放资源文件, 包括程序图片等内容;三是AndroidManifest.xml文件, 用来描述应用的名字、版本、权限和引用的库文件等信息;四是class.dex文件, 是java源编译后生成的java字节码文件;五是resources.arsc文件, 是编译后的二进制资源文件[1]。在这五个部分中, 最重要的是AndroidManifest.xml和class.dex文件。我们可以通过对应用程序的AndroidManifest.xml反编译后进行分析, 得到该程序运行的权限设置等信息, 分析该程序的恶意行为。同样的可以通过反编译class.dex文件得到程序源码, 对程序进行分析。

1.2 静态分析方法

Android静态分析主要在于恶意代码的匹配及信息泄露等, Android源码的量非常大, 如何对问题代码快速定位是分析Android源码的基础。主要的分析方法[2]:

⑴信息反馈法是指先运行目标程序, 然后根据目标运行时给出的反馈信息作为突破口寻找关键代码。通常情况下, 程序中用到的字符串会存储在String.xml文件或者硬编码到程序代码中, 如果是前者, 字符串在程序中会以id的形式访问, 只需在反汇编代码中搜索字符串的id值即可找到代码处;如果是后者的话, 在反汇编代码中直接搜索字符串即可。

⑵特征函数法, 无论程序做出任何动作或者反馈, 都需要调用Android SDk中提供的相关API函数来完成的。

⑶顺序查看法是指从软件的启动代码开始, 逐行的向下分析, 掌握软件的执行流程。

1.3 静态分析分类

静态分析根据分析对象的不同, 主要分为二进制程序分析和源代码分析[3]。对二进制程序进行分析, 通过比较二进制文件中是否包含恶意行为特征码, 判断程序是否具有恶意行为。对二进制文件进行特征码分析, 只能针对已经出现的病毒、木马进行查杀, 不能检测未知病毒, 面对不断出现的新病毒或病毒变种, 必须不断更新病毒库。源代码分析, 是指分析软件的源代码, 通过与预先定义的引起恶意行为的API调用进行比对, 判断程序中是否含有恶意行为。以“恶意扣费”为例, 引起扣费行为的发生, 往往是由于恶意应用以发送短消息的方式, 注册了相关的SP服务。分析Android应用反编译后的源代码, 通过查询源代码中是否包含发送短消息相关的API调用, 并判断相应的API参数, 是否为某些特定SP服务注册码, 从而检测Android应用中是否包含“恶意扣费”等行为。

分析Android应用反编译后的源代码, 由于源代码逻辑结构更为清晰, 查找更精确。引起恶意行为发生是相关的API调用导致的, 而无论恶意行为如何变种, 在源代码中都必须调用关键的底层系统API。对源代码进行检测, 只需查找关键的系统API调用进行判断, 对于不断更新的病毒、木马变种, 并不需要频繁地更新相应的检测规则。

2 静态分析技术研究现状

目前在对Android程序进行静态分析时, 主要采取以下两种方法:一是阅读反汇编生成的Dalvik字节码, 可以使用IDA Pro分析dex文件, 或者使用文本编辑器阅读baksmali反编译生成的smali文件;二是阅读反汇编生成的java源码, 可以使用dex2jar生成jar文件, 然后使用jd-gui阅读jar文件的代码。

2.1 静态分析的一般流程

2.1.1 Android软件预处理

在静态分析过程中获得反汇编代码是主要的分析工作, 首先要选取一个强大的反汇编工具, 本文选取的是开源的Dex2jar工具。Dex2jar采用d2j-dex2jar***.apk命令获得java字节码, 获得java字节码后就可以通过反编译工具jd-gui直接以源码的形式显示jar文件中的内容。在反编译得到的文件中包含AndroidManifest.xml文件和java源代码, 在xml文件中获得源码的元信息 (包括Activity、Service等的注册信息和入口) 和权限申请信息。Android软件预处理的流程如图2所示。

一个Android程序由一个或多个Activity以及它的组件构成, 不同的Activity实现不同的功能。每个程序有且只有一个主Activity, 也是程序启动和显示的第一个Activity。在程序中使用到的Activity都需要在AndroidManifest.xml文件中手动声明, 声明Activity使用的activity标签。在反编译出的AndroidManifest.xml中找到主Activity后, 可以直接去查看其所在类的OnCreate () 方法的反汇编代码, 对大多数软件来说, 这就是程序的代码入口, 所有的功能都从这里开始得到执行, 然后可以追踪软件的执行流程。

2.1.2 控制流图生成

抽象语法树 (AST) 作为程序的中间表现形式, 是基于JavaCC工具得到的, 在经过对源码预处理, 然后经过词法语法分析得到的。能够直观地表示出源程序信息, 存储效率高, 但是无法表示复杂的控制流信息, 如选择、循环语句。可以基于抽象语法树得到源码的控制流图和数据流以及函数调用图, 以便进行静态分析。控制流图是程序的中间表示形式, 作为函数依赖分析、控制流分析和数据流分析的基础, 可以很好的反映语句以及模块之间的调用和执行流程。控制流图生成流程如图3所示。

2.1.3 安全规则解析

解析安全规则[4], 查找规则中定义的关键API调用, 以及API调用和某个参数、返回值或某些资源的关系, 从而判别安全问题的存在。安全分析规则, 一般规定对程序中关键信息元素的约束, 如关键类、关键方法等。如果类、方法的相应属性符合规则定义的约束条件, 则报告分析结果。规则的内容上主要涉及自动耗费、隐私窃取、系统破坏等常见恶意行为。

2.2 Android软件常见恶意行为的静态分析

基于java编写的Android应用程序, 有着移动终端普遍的安全问题。具体的恶意行为可分为以下几类[5]:

2.2.1 耗费用户钱财行为

这些行为包括没有用户提示自动连接网络、自动发送短信息、自动拨号等。查找连网行为, 可以通过查找网址URL字符串以及Android执行连网行为的关键API调用进行判断。针对此类恶意行为, 可以分析程序方法间依赖关系, 通过定位在执行网络连接前, 是否弹出对话框等, 提示用户有网络连接行为, 判断在程序在执行时是否有用户提示。

2.2.2 窃取用户隐私行为

涉及未经用户许可读取个人隐私数据, 包括短信息、Email电子邮件、通讯录、通话记录、日程安排、多媒体资料和手机IMEI标识, 以及监控、记录、处理话音记录, 启动GPS全球定位系统监控物理位置并将其发送到特定网站等。

进一步考虑下面获取手机IMEI标识, 并将其发送到特定网站的恶意代码:

TelePhonyManager tm= (TelePhonyManager) getSystemService (”phone”) ;

String userld=tm.getDeviceld () ;

URL url=newURL (“http://www.myweb.com.cn:80?id=”+userld) ;

url.openConnection () ;

首先可以通过查找关键API调用定位到程序的第3、4行。程序首先定义了一个URL类的对象url, 并调用url的openConnection方法企图进行网络连接。在URL类的构造函数中, 以userId变量的内容作为“http://www.myweb.com.cn:80”URL的参数传递给网站, 进一步分析, userId报讯的是通过调用telephonymanager对象的getDeviceId方法返回的结果, 并且telephonymanager是利用TelephonyManager类调用其静态方法getSystemService (“phone”) 获得的。由此得知, userId正是通过调用Android系统的API获得手机设备的IMEI标识。上述程序把手IMEI标识通过URL参数上传给指定网站。

此外, 一些恶意代码也会调用Location类的getLatitude和getLongitude方法获取手机设备当前位置的纬度和经度, 再作为URL参数发送给指定网站, 这些可疑的恶意行为都可以根据上下文, 查找关键API调用和参数变量的取值检测出。

2.2.3 破坏用户数据的行为

破坏用户数据行为包括删除用户数据, 终止其他进程或系统服务的运行等。删除用户数据, 包括删除以文件形式保存的系统文件、配置文件和数据文件, 以及删除保存在数据库中的通讯录、日程、短信息记录等。对文件的删除, 可以通过查找关键API调用并定位所要删除文件的绝对路径, 判断是否属于系统文件。对数据库中记录的删除, 通过查找程序中调用的SQL语句, 并判断所要操作的数据库表是否是保存用户数据的表等。另外, 如果程序在运行过程中, 终止其他进程或系统服务的运行, 造成对系统的破坏, 也属于恶意行为。常见的系统服务, 包括电话服务、通知服务、输入法服务、网络连接服务、声音服务、账户服务等。具有恶意行为的程序, 会在程序运行过程中, 枚举系统中当前正在运行的进程和系统服务, 获取到进程或服务所在Package的名字, 并将其作为参数调用系统API, 终止进程或服务的运行。

为了防止恶意行为的发生, 需要进行用户行为判别。对于自动连接网络、自动发送短信、自动拨打电话等恶意行为, 检测系统应判断出连网、发送短信、拨打电话等行为是用户发起的, 还是程序未经过用户许可, 直接发起的请求。如果程序中使用了SMS、MMS、WII、WEB/WAP等敏感API, 那么就需要对追踪信息进行分析, 如果是用户提交的请求, 那么认为调用是安全的;如果所调用的API并不是用户提交的, 参数为敏感信息, 那么就认为可能存在后门隐患。

2.3 静态分析中存在的问题

静态分析的目标就是在不运行待测程序的基础上分析程序的源代码或者Dalvik字节码, 检测出程序中存在的恶意行为。静态分析需要获得源码、安全规则和模式库, 并且分析效果的好坏往往取决于模式库和安全规则。对于已知恶意行为的检测能够做到高效、准确, 但是在对恶意行为关键特征的搜集、提取并制定相应规则方面还需要进一步完善, 目前的安全规则还不全面, 某些恶意行为的实现方式会有很多种情况, 并不仅仅局限于一些关键API的调用。由于在分析时不能考虑实际运行情况, 因此需要分析所有的路径, 误报率较高, 会产生大量的分析结果, 增加了分析的难度。如何提高静态分析的效率和准度是安全领域重要的研究方向。

3 进一步研究

随着Android安全问题日益突出, 静态分析技术被运用得越来越广泛, 这项技术也会更加成熟, 结合静态分析技术的特点, 今后的研究方向主要有:

⑴设计基于静态分析的Android应用程序恶意行为通用检测模型, 集成各种静态分析方法, 以提高静态分析的效率。

⑵不断完善安全规则, 随着Android平台的不断发展, 会出现更多的恶意行为, 现有的安全规则还不完善, 需要不断更新, 与时俱进, 才能提高静态分析的准确性, 降低误报率。

⑶将静态分析与动态分析以及污点传播分析技术结合, 设计一个自动化恶意软件检测系统。自动提取终端上的应用程序进行自动化分析, 实现对应用程序的离线安全检查。

参考文献

[1]王世江, 余志龙, 陈昱勋, 等.Google Android SDK开发范例大全[M].第二版.北京:人民邮电出版社, 2010.

[2]唐宇敬.Android平台下软件安全漏洞挖掘方法研究[D].邯郸:河北工程大学, 2013.

[3]路程, 张淼, 徐爱国.基于源代码静态分析技术的Android应用恶意行为检测模型[J].中国科技论文在线.201111-54.

[4]余建, 韩双霞, 黄云龙.软件安全性的静态分析[J].计算机工程与设计, 2006, 27 (8) :1411-1414.

篇4:浅谈软件工程之软件需求分析

【关键词】软件工程 软件需求 需求工程 需求开发 需求管理

【中图分类号】TP311.5【文献标识码】A 【文章编号】2095-3089(2015)06-0181-02

软件工程师所需解决的问题往往十分复杂,了解问题的性质可能是非常困难的,尤其当系统是全新的时候。

1.综述

软件工程中包含需求、设计、编码和测试四个阶段,其中需求工程是软件工程第一个也是很重要的一个阶段,这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。本文以企业人事信息管理系统为例详细介绍了需求工程的构成和进行方法。

2.需求的标准

定義需求标准有所不同,但在思想上是相同的,都是为了保证项目的顺利进行。一般的标准为:明确(Clear)、完整(Complete)、一致(Consistent)、可测试(Testable),还有可跟踪、可修改等等。

明确:目前大多数的需求分析采用的仍然是自然语言,自然语言对需求分析最大的弊病就是它的二义性。所以对需求分析中采用的语言应该做某些限制尽量采用主语+动作的简单表达方式。还有,不要使用计算机术语。需求分析最重要的是和用户沟通,可是用户多半不是计算机的专业人士,如果在需求分析中使用了行话,就会造成用户理解上的困难。

完整:需求的完整性是非常非常重要的,要做到需求的完整性是很艰难的一件事情,它涉及到需求分析过程的各方各面,贯穿了整个过程,从最初的计划制定到最后的需求评审。

一致:用户需求必须和业务需求一致,功能需求必须和用户需求一致。严格的遵守不同层次间的一致性关系,就可以保证最后开发出来的软件系统不会偏离最初的实现目标。

可测试:需求的几项标准都是为了保证需求的可测试性,只有系统的所有需求是可以被测试的,才能够保证软件始终围绕着用户的需要,保证软件系统是成功的。

需求工程分为了需求开发和需求管理两个阶段:下面就以这两个阶段说明:

3.需求开发

需求开发又分为需求获取、需求分析、编写规格说明书和需求验证。以下列出和讲解分析常规的步骤,当然应按照项目的大小和特点等实际情况我们应该自己确定合适的步骤。

3.1需求获取:

这是该阶段的一个最重要的任务。以下为获取用户需求需要执行的活动。

了解客户方的所有用户类型以及潜在的类型。然后,根据他们的要求来确定系统的整体目标和系统的工作范围。

对用户进行访谈和调研。交流的方式可以是会议、电话、电子邮件、小组讨论、模拟演示等不同形式。需要注意的是,每一次交流一定要有记录,对于交流的结果还可以进行分类,便于后续的分析活动。例如,可以将需求细分为功能需求、非功能需求(如响应时间、平均无故障工作时间、自动恢复时间等)、环境限制、设计约束等类型。

需求分析人员对收集到的用户需求做进一步的分析和整理。

需求分析人员将调研的用户需求以适当的方式呈交给用户方和开发方的相关人员。大家共同确认需求分析人员所提交的结果是否真实地反映了用户的意图。

3.2需求分析

需求分析是软件定义时期中很重要的一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。在很多情形下,分析用户需求是与获取用户需求并行的,主要通过建立模型的方式来描述用户的需求,为客户、用户、开发方等不同参与方提供一个交流的渠道。这些模型是对需求的抽象,以可视化的方式提供一个易于沟通的桥梁。用户需求的分析与获取用户需求有着相似的步骤,区别在于分析用户需求时使用模型来描述,以获取用户更明确的需求。

用于需求建模的方法有很多种,最常用的包括数据流图(DFD)、实体关系图(ERD)和用例图(Use Case)三种方式。DFD作为结构化系统分析与设计的主要方法,已经得到了广泛的应用,DFD尤其适用于MIS系统的表述。DFD使用四种基本元素来描述系统的行为,过程、实体、数据流和数据存储。DFD方法直观易懂,使用者可以方便地得到系统的逻辑模型和物理模型,但是从DFD图中无法判断活动的时序关系。

ERD方法用于描述系统实体间的对应关系,需求分析阶段使用ERD描述系统中实体的逻辑关系,在设计阶段则使用ERD描述物理表之间的关系。需求分析阶段使用ERD来描述现实世界中的对象。ERD只关注系统中数据间的关系,而缺乏对系统功能的描述。如果将ERD与DFD两种方法相结合,则可以更准确地描述系统的需求。

3.3编写规格说明书

项目视图和范围文档包含了业务需求,而使用实例文档则包含了用户需求。你必须编写从使用实例派生出的功能需求文档,还要编写产品的非功能需求文档,包括质量属性和外部接口需求。软件需求规格说明阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件,它不仅是系统测试和用户文档的基础,也是所有子系列项目规划、设计和编码的基础。它应该尽可能完整地描述系统预期的外部行为和用户可视化行为。

采用软件需求规格说明模版:采用需求规格说明书模板在你的组织中要为编写软件需求文档定义一种标准模板。该模板为记录功能需求和各种其它与需求相关的重要信息提供了统一的结构。注意,其目的并非是创建一种全新的模板,而是采用一种已有的且可满足项目需要并适合项目特点的模板。

3.4需求验证

需求分析阶段的工作结果是开发软件系统的重要基础,大量统计数字表明,软件系统中15%的错误起源于错误的需求。为了提高软件质量,确保软件开发成功,降低软件开发成本,一旦对目标系统提出一组要求之后,必须严格验证这些需求的正确性。一般说来,要按以下步骤进行需求验证:

1)审查需求文档;2)依据需求编写测试用例;3)编写用户手册;4)确定合格的标准。

4.需求管理

需求开发的结果应该有项目视图和范围文档、使用实例文档、软件需求规格说明及相关分析模型。经评审批准,这些文档就定义了开发工作的需求基线。这个基线在客户和开发人员之间就构筑了计划产品功能需求和非功能需求的一个约定。需求约定是需求开发和需求管理之间的桥梁,需求管理包括在工程进展过程中维持需求约定集成性和精确性的所有活动。

5.企业人事管理系统

5.1企业人事管理系统概述

企业人事管理系统是针对企业人事方面的大量业务处理工作而开发的管理软件。根据用户的要求,实现人员基本情况管理、工资管理、和考勤管理等几个方面的功能。用户通过输入工资、考勤、职工履历等基本信息,由系统自行生成相应的统计数据及各类统计报表以供用户查询、打印。

5.2系统功能分析

系统开发的总体任务是实现企业人事信息关系的系统化、规范化和自动化。

系统功能分析是在系统开发的总体任务的基础上完成的。经过按照以上分析过程进行分析,分析出企业人事信息管理需要完成功能。

6.总结

以上详细介绍了软件需求分析过程。软件工程中包含需求、设计、编码和测试四个阶段,其中需求工程是软件工程第一个也是很重要的一个阶段,要想做好一个项目,必须先做好需求分析,需求工程分为了需求开发和需求管理两个阶段:需求开发又分为需求获取、需求分析、编写规格说明书和需求验证。需求管理就是对需求变更控制的过程。通过介绍企业人事信息管理系统的需求分析阶段,更好地说明了需求分析过程。

参考文献:

篇5:软件工程中软件需求分析的论文

参考文献:

[1]蔺茹;软件工程中面向对象方法的优势分析[J];电子技术与软件工程;2014(24).

篇6:软件系统需求分析案例

小品:模拟商场关系系统需求分析

小品角色:

主角:商场经理,系统分析员

配角:商场秘书,分析员助手

小品断片台词:(可以进行适当增删)

场景A

商场经理:我们建立一套完整的商业管理软件系统,包括商品的进、销、调、存管理,是总部-门店的连锁经营模式。通过通讯手段门店自动订货,供应商自动结算,卖场通过条码扫描实现销售,管理人员能够随时查询门店商品销售和库存情况。

系统分析员:我已经明白这个项目的大体结构框架,这个对于我们来说是非常重要的,但在制定计划之前,我们必须收集一些需求。

商场经理:(作惊奇状)我刚才不是告诉你我们的需求了吗?

系统分析员:实际上,你刚才跟我说的只是整个项目的概念和目标,真正开发这个项目,我还需要跟真正将要使用这个系统的业务人员进行讨论,需要了解和掌握使用系统的业务人员的工作业务流程和每个岗位、每个环节的职责,……

(商场秘书出现,打断谈话,突出经理很忙)

商场经理:他们都很忙的,你们有没有类似的现有的系统可以参照一下,差不多就可以了!系统分析员:……(欲言)

商场经理:(电话响)我真的很忙,请你马上开始开发,随时将你们的进展情况告诉我 场景B

分析员助手:(电话)经理你好,我们想约一下您进行系统需求分析的调查,请问您什么时候方便?

商场经理:什么,我上次不是跟你们说过叫你们开始开发了吗?还没有开始的啊?我真的没有时间啊,你们马上开始吧,就这样!(挂机)

(系统分析员将一个超市的管理系统进行了简单修改送给商场使用)

场景C

商场秘书:经理,XX店说有顾客退货,那个系统那里办理不了,还有……

篇7:浅论软件需求分析的论文

关键词:软件需求分析;过程;原则;工具;方法

1.软件需求分析的过程

软件需求分析的具体过程可分为软件需求目标的认定、分析与综合、制定规格说明和最终评审。首先来看如何对软件需求目标进行认定,软件需求的目标是指系统分析工程师和程序开发工程师在软件需求分析过程中,确定目标软件工程的综合要求,并提出实现这些要求所需要的条件,以及需求应达到的标准。这些需求具体包括:

(1)功能需求:列举出所开发软件在功能上应做什么。

(2)性能需求:给出所开发软件的技术性能指标。

(3)环境需求:软件系统运行时所处环境的要求。例如硬件环境:主机类型、外围设备、数据通信接口;软件方面:系统软件平台(包括单机操作系统、网络操作系统及应用软件、数据库管理系统等等);以及使用部门在操作人员方面应达到怎样的条件。

(4)可靠性需求:按照实际运行环境对所开发的软件提出要求,尽量在需求分析阶段将所有的问题进行暴露。对于运行实效后可能产生的后果要有充分估计,应对软件运行的可靠性提出较高的要求。

(5)安全保密要求:在软件的需求分析过程当中应当对所开发的软件的安全性进行特殊设计分析,使其在实际开发完成之后的运行过程中安全性能得到必要的保证。

(6)用户界面的需求:对于用户界面的细致性以及易用性进行需求分析使其达到客户要求。

(7)资源使用需求:通过需求分析使得所开发的软件在运行时所需的系统资源处于用户可接受范围。

(8)软件成本消耗与开发进度需求:通过需求分析对软件开发的进度和各步骤的费用提出大致要求,作为开发管理的依据。

(9)最后对于所开发系统得最终所能达到的目标进行分析,以便在开发过程中对系统进行必要的修改与补充。在我们的需求分析过程中这些问题都是必需要得出分析结果的,并且结果应当得到软件开发工程师的认可。

在实际的软件需求分析中,单单依靠上述过程是不够的,有时候我们还需要通过对所得结论的分析与综合来得出工程系统的详细逻辑模型。

例如,在面向对象的软件工程当中进行软件需求分析时,通过对整个工程的需求进行分析,我们得出的仅是该软件工程的综合项目需求。这时就需要整理逻辑模型。在这个过程中,分析与综合工作需要反复的进行。而常用的分析方法有面向数据流的结构化分析方法、面向数据结构的Jackson方法(简称JSD法)、面向对象的分析方法(简称为OOA)等,以及用于建立动态模型的状态迁移图或Petri网等工具。

通过这一步之后,我们就可以将所得到的分析结果描述成软件需求规格说明书(简称SRS),并编写初步的标准格式用户手册。进行软件需求规格说明书以及标准格式用户手册时,不仅需要正确详实的需求分析数据,还需要较好的文字表达和组织能力。需求分析评审则是指在需求分析的最后阶段,对整个系统的需求分析工作给出其在正确性、完整性和清晰性等几个方面的最终评价。

2.软件需求分析的原则和工具

软件需求分析方法很多,其所使用的描述方法也各不相同,但他们都有着共同的基本准则。首先,他们都必须能够表达和理解问题所包含的数据域和功能域;其次,他们必须按照自顶向下、逐层分解的方式对问题进行分解和不断细化;最后,他们都要能够给出系统的逻辑视图和物理视图。这就说明在需求分析当中无论我们采取什么样的分析方法,都无一例外的会回归到对问题数据域与功能域的分析上来,并且对于问题的分析会自然而然的逐渐细化。

3.软件需求分析的方法

在软件需求分析中方法很多,不同的分析方法也都引入了不同的记号和分析策略。但与此同时,他们也具有着一些共同的性质,具体可以概括为:在支持数据域分析机制方面,所有的方法都直接或间接地涉及到数据流、数据内容或数据结构等数据域的属性。

多数情况下,数据流特征是用将输入转化为输出的变换过程来描述的,数据内容则用数据字典机制来明确表示,或者通过描述数据或数据对象的层次节后隐含地表示;在功能表示方法方面,功能一般用数据变换或加工来表示。还有在接口定义、问题分解的机制以及抽象的支持、逻辑视图和物理视图以及系统抽象模型方面都有着相同或相似的机制。在这里我们重点分析快速原型方法。在传统的软件工程方法学中,一贯强调的是自顶而下的分阶段开发,在每阶段实际开发之前必须对所开发项目进行严格要求的分析和定义。但实践表明,在系统建立起来之前很难仅仅依靠分析就确定出一套完整、有效的需求应用,并且这样预先定义的策略也无法适应用户需求的不断修正与变化。

由此,快速原型方法应运而生,他自顶向下的开发模式,是目前应用十分广泛的开发模式。快速原型方法是根据软件系统的需求快速产生出软件系统一个早期原形的过程。该原型能够表现出目标系统的功能和行为特征,但不一定符合其全部的实现需要。

通过这个方法,软件设计者可以利用原型得到系统可用性的反馈信息,未来用户也可以利用原型得到宝贵的早期经验。并且利用这样的一个快速原型尽早的获得更完整、更正确的需求与设计。

在软件的开发过程当中即使客户对于系统的要求发生了更改,也可以通过对原型就行改进而得到新的目标系统,不必再从头做起。而且在现实中存在的快速原型建造工具可以大大缩减创建系统的时间,可以在短期内迅速有效地建立起系统的原型,充分提高软件开发效率,提高软件质量、减少测试和调试的工作量,最终减少软件开发的总成本。

在快速原型法的实现过程中,由于建立原型的目的不同,实现原型的途径也有所区别,大致划分为以下三类:

(1)探索型。为研究探索而建立的原型。主要强调澄清目标系统的需求及所要求的特征。

(2)实验型。为实验而建立原型。主要强调在正式进行目标系统的大规模开发工作之前,通过建立原型来确定所提出的解决方法是否恰当。这种原型方法通常针对用户的问题的某个方案做出原型以供试验评估,该原型所实现的功能与最终产品的功能是有差别的。

(3)进化型原型。为演示而建立的原型。主要强调通过逐步的分析改进使系统适应变化了的需求。并最终生成一个演进式的系统开发模式。当采用进化型原型方法时,必须进行原型与产品间的变换,除了在开始阶段时采用单独的研究探索性原型方法及实验性原型方法外,圆形的生产环境必须与产品的生产环境集成在一起。

总而言之,快速原型法是具有相当大优势的。因为它可以为开发出较为有用的系统做出极大贡献,并且不会增加总的软件开发费用,开发原型所增加的投资可以因减少误解而节省下来。

参考文献:

[1]王继成,高珍.软件需求分析的研究[J].计算机工程与设计,2002,(8):18-21.

篇8:android软件需求分析

关键词:项目管理,管理实践,软件

一、前言

所谓的项目管理即在相应的制约因素下, 为了有效的达到项目业主的要求, 将项目经理作为项目的总负责人, 并将项目看做是一个单独的个体来实施相应的经济核算, 同时以项目的具体情况为依据来合理的对其进行相应的管理。

针对软件项目进行相应的管理时一般要以以下几个方面的内容为宗旨:一是在管理时将项目的生命周期划分为不同的阶段, 并对各个阶段进行管理;二是确保对各个阶段实施评审;三是对生产的产品进行有效的控制;四是确保其技术的先进性;五是确保可以有效的对其结果进行审查;六是确保开发人员不要过多, 但一定要有精湛的技术;七是要对软件实践进行完善和改进。文章对软件项目管理的实践研究进行了深入的分析。

二、项目管理实践研究

1. 生命周期模型选择

增量模型有效的将瀑布模型的组成结构以及原型所具有的迭代特性结合在一起, 其使用的是线性序列, 即根据时间的不断推进随之产生交错现象, 而增量就是通过线性序列而产生的, 并且通常情况下其核心产品即为序列所产生的首个增量。而与之相邻的增量的功能及特性就是以用户的体验及评价为依据来设置的, 通过对所有增量的持续重复从而制造出完善的产品。

由于安卓软件所涉及的功能非常的多, 比如触摸板、游戏控制、文件浏览等等, 因此工作人员要通过增量模型法来对软件的产品进行相应的设计、测试, 并以测试结果为依据来逐渐的对软件进行改进和完善。

根据增量模型的特点, 可以将安卓系统的开发过程划分为几个不停的阶段, 一是需求分析;二是系统设计和编码;三是检测和运行。项目管理即对其各个阶段的质量、进度以及资金投入等进行管理。

2. 需求分析

该阶段是软件快发的前提条件, 其主要作用是对系统需求变化进行全面的查找、记录以及跟踪, 同时确保用户以及项目队伍能同步的对系统需求进行改变。只有获得全方位的需求信息才能避免开发过程走不必要的弯路。在项目开发过程中要确保工作人员通过多种方法的使用来获得多种客户以及多种平台的多种需求, 同时对获取的资料进行深入的分析, 主要使用的分析法有以下几种, 一是原型展示;二是定期召开研讨会;三是调差问卷等。同时要安排工作人员对所有的调查以及会议进行全面的记录, 并在会议结束后采取有效的措施进行改善。

3. 系统设计和编码

系统设计主要分为两个部分, 一是概要设计, 该阶段又将系统分为十个不同的模块, 即连接模块、帮助模块、退出程序模块等等;二是详细设计, 该阶段则是详细的介绍了各个模块的数据结构、控制流程以及算法等。由于不同模块的层次不一样, 因此, 在实际的操作过程中一定要安排技术精湛的负责人来完成较为复杂的模块设计。同时要严格的对完成的模块进行相应的检测和改进, 确保其稳定性, 尽量将其风险最小化。

在编码阶段要通过专门的管理软件来对其进行管理, 从而确保其各部分的功能能有效的实施, 同时使其各个部分彼此的补充, 从而消除短板现象, 实现开发风险的最小化。

4. 测试和运行

测试环节贯穿了项目的全程, 开发人员要以实际情况为依据设置严格的检测方案, 安排专门的工作人员对各个模块进行严格、多次的测试, 并认真的记录检测过程中发现的问题以及相应的解决方法。同时在编写测试用例时还要认真的记下目标、数据、结果等数据, 并且要将该数据制作成相应的文档。

在运行过程中, 要在各个小模块试运行成功的前提下再对软件进行试运行, 同时工作人员还要认真的对结果进行记录。除此之外, 工作人员还要针对运行过程及结果制作成相应的用户手册或者PPT来对其进行解释和说明, 同时为了方便用户反馈要在其中注明自己的有效联系方式。

5. 团队管理

项目的成功需要通过各个部门、各个环节的有效配合来实现, 不同工作人员所负责工作不同, 同时也会对其他工作人员的工作产生相应的影响, 所以一个精湛的团队对于项目的开发和研究有着至关重要的作用, 因此, 软件项目管理中除了要加强对开发环节管理的重视之外同时还要加强对开发团队的管理。要制定严格的管理规范来对工作人员进行约束, 比如:规定开发人员每天定时的回报工作进度;定时的对工作内容进行总结分析;定期的工作内容进行检查;设立严格的奖惩制度等等。

三、总结

软件项目管理对于软件的开发研究有着至关重要的作用, 它贯穿了项目的整个过程。因此, 在管理的过程中要加大对项目各个环节的管理, 同时也要加强对团队管理的重视。不断的积累管理经验, 从而为今后的项目开发提供可靠的保障。

参考文献

[1]方明;田野;户银龙.基于Android平台的嵌入式软件项目组织方法[J].电脑知识与技术.2011, 6 (34) :50-52.

[2]邹兴;张磊.3G智能终端软件开发试验教学改革的思考[J].试验科学与技术.2012, 4 (3) :98-99.

篇9:教育软件市场需求分析

在学校建立和完善网络的同时,教育软件的应用业已成为这些已经建立自己校园网的学校目前最为关注的问题。“校校通”工程更是进一步推进了教育软件市场的发展,据赛迪顾问调查,2001年教育软件市场规模达到16.3亿元。

教育软件市场现状

目前市场上的教育软件种类很多,但基本上可以划分为教育资源库、辅助教学软件、教育管理软件和针对个人的学习软件几大类。学习软件包括各类语言、电脑教育,以及题库等类型的针对个人学习的软件,这类软件在教育软件中占有较大的比率,教育资源库自2001年以来一直保持快速增长,2002年上半年资源库在教育软件中占26.1个百分点。

教育软件区域市场分布的特点是华东、华南比较强,西部地区较弱,城乡差别突出。此类软件的主要采购地区仍然是信息化工程比较领先的大中城市,这说明原有的市场进一步提升,尚未开发出的西部市场,以及农村中小学的信息化工程仍然有待支持。

目前从事教育软件开发的厂商有200多家,产品也有3000多种,并且不断地有新产品问世。教育软件的市场份额占整个软件市场的17%左右。

科利华、翰林汇、金洪恩、中教育星等公司在教育软件领域都有一定的市场份额。这些厂商都开发包括资源库、课件库、网络教室、电子图书馆,以及学科同步学习软件等系列产品,并且能够提供相对完整的应用方案。各个开发商在教育软件市场中也有其侧重点,例如科利华学习软件市场占有量比较大,中教育星注重资源库的开发等。

随着教育行业信息化的不断深入,教育软件的需求量也不断在增长。其中资源库、辅助教学软件、教育管理软件等类别的教育软件的增长也各有不同。由于参与教育软件市场竞争的厂商不断增多,产品层出不穷,价格战无法避免。2002年上半年教育软件的价格普遍有所下降,教育软件价格的下降刺激用户对于学习软件的需求,英文学习软件的销售量增长非常突出,带动了原本不够活跃的学习软件市场。与此同时,其它软件的销售额的增长比率相对于销售量的增长比率都有不同程度的下降。

教育软件市场存在主要问题

据调查,我国68万所中小学实现信息化建设的不足10%,其中能有效应用信息化手段辅助教学和改革传统教育的更是很少。其中一个重要的原因是教育软件的应用水平远远不能达到教育信息化的需求。其中有学校的原因,也有开发商对学校教育缺乏足够的认识的因素。教育软件市场依然突显以下几个主要问题。

缺乏统一的规范和标准

教育行业是比较特殊的行业,各学校之间、学校与教委之间需要数据交换,但目前的情况却是各个学校在应用不同的产品之后形成了数据壁垒,这在很大程度上影响了信息化进程,而其中必然会产生资源浪费。“校校通”教育城域网的推进更突显了这一问题。

近日,国家教委颁布了《教育管理信息化标准》(第一部分:学校管理信息标准)。《教育管理信息化标准》将为教育部门对教育数据进行总体的规划和组织,建立起统一的数据平台提供有力的技术保证;它将带动教育管理信息存储、访问、更新、传递方式的变革,进一步减轻学校人力资源和财政管理的负担。

建立教育管理软件认证制度,防止一些低劣的管理软件进入教育系统,影响教育管理信息化工作的健康发展。同时,配合标准的实施工作,加快标准应用示范软件的开发与应用。《教育管理信息化标准》的出台,无疑会使得很多厂商的教育管理软件面临重大调整。

而对于整个教育软件行业,国家教育部将逐步出台教育信息化软件方面的标准和规范,要求教育软件开发商必须从全局考虑教育软件的设计。教育软件的整体规划是指设计上有超前意识,要通盘考虑,而不仅仅是着眼于眼前要实现的功能,要使整体方案具有良好的扩展性。

开发商对教学理解得不够深入

我国各类学校校园网已有一定规模。对于已经建立校园网的学校,最主要的任务已经由建网转向如何充分利用已有的校园网络、教育软件产品等教学资源,进一步加强教育理念、教学内容与方法的改革。对于这些学校来说,他们迫切需要的是采用一套软件系统,能够将已有的硬件设备整合起来,充分发挥其系统化、立体化的作用。

目前市场上资源库类教育软件虽然很多,但并未真正走进学校。资源库的设计在很大程度上忽视了教材的特殊性和教师、学生的互动性。教师教学比以往更加注重创新,为了提高教学效率,他们需要丰富的教学资源。但是,教学方法的不同,使得教师在应用资源的时候,会加入自己的理解,他们希望能利用已有的资源制作出能比较准确表达自己教学思想的课件。开发商提供的产品具有很好的原创性才能有更强的吸引力,这主要是解决了技术和设计上的问题,为了教师教学提供便利,尤其是对于教学难点的阐释,资源库具有很强的应用功能。资源库不一定要以量取胜,关键是要切合教学需要。但是,很多资源库软件开发工作缺乏针对性,对目前国内教育结构和教材、以及学生心理认识不够,设计出来的产品不能准确、灵活地表达教学的内容。另外,厂商更重视开发理科类教学软件,其他领域涉及的还不够充分。艺术类、体育类的教育软件很少涉及。教育软件在学科分类上需要更为丰富和清晰。

教育软件的应用尚未进入实质性阶段

尽管政府和教育部门在积极推进教育信息化工程,但是多数学校对于教育信息化的理解仍然停留在概念性的层次,还没有实质性的实施。原因也是多方面的,有些开发商在没有能力整合软件硬件,不具备系统集成能力的情况下,只向学校提供价格昂贵的硬件或随便搭配软件,导致应用无法开展。除此之外,一些学校受厂商影响,片面追求硬件设备的先进性和网络建设一步到位,结果软件和应用跟不上,设备闲置浪费。开发商和学校对于教育行业软件的应用的认识还没有与实际很好地结合。

教育信息化的一个重要内容是要对教师和学生进行信息化技术培训。由于目前教育软件厂商还不够重视产品服务,以及学校设备、师资条件的不足,教师和学生都没有能够得到良好的技术培训,致使大多数学校的信息化资源没有发挥应有的作用,教师对于教育软件资源的利用观念还没有提升到信息化要求的层次。

应试教育影响教育软件走向

需求是市场导向,教育软件的用户的应试教育思想成为影响教育软件发展的主要因素。首先是学校方面,有经验的教师大都在35岁以上,升学率的压力使他们没有更多的时间去了解教学软件,更无法有效应用。另一方面,主要表现在学习软件上,绝大多数个人用户在选择学习软件的决定因素是软件是否与教材同步,大都要考量软件是否紧扣课本。由于各地同一年级所有的教材亦有所不同,要找到完全符合用户理想需求的同步学习软件比较困难。2001年教学大纲调整以后,很多软件在用户眼里已经是过去式,目前市场上的学习软件大都标明是按照新的教学大纲设计等字样。应试教育思想在一定程度上阻碍了学习软件的转型。

软件价格影响市场规范

教育软件因为开发技术等方面原因,价格一直相对较高。例如,资源库的价格一般要上万元,应用于学校的资源库软件目前也只有几千套。大多数学校因为教育经费的问题,没有能力系统地购买教育软件。

教育软件厂商市场分割不明确,几乎每个厂商都涉及的所有类型的教育软件的开发。开发商上演的价格战让用户受益的同时,也使软件在质量上、满足用户需求方面大打折扣。抄袭情况严重,加之盗版的问题,教育软件市场要走向专业化、标准化还需要一定时间。

教育软件市场的发展前景

尽管教育软件市场还没有完全跟上教育的步伐,但其潜在的市场容量,国家政策支持,以及厂商与用户的有效沟通都在从不同方面推进教育软件的发展。目前,全国台式PC年销售量在1000万台以上,其中有50%以上进入了家庭,而知识经济时代所显示出来的知识的价值又让人们充分认识到了学习、教育的重要性。广大用户对教育软件的投入也有很大的增长,而这种增长的趋势还将因为国家教育政策以及教育软件市场的特性进一步升温。未来几年里,教育软件的需求量增长每年都将超过50%。

由于教育布局的调整,2001年全国职业类学校招生人数略有下降,而普通高中招生人数增长了85.29%万人,高等教育的招生规模继续快速增加,2001年普通高等教育招生268.28万人,比上年增加47.67万人,增长21.61%。成人高等教育招生增长25.48%。据赛迪顾问调查,全国各类学校拥有台式PC的数量至少在500万台以上,每年仍至少有10%的增长。这是一个动态市场。

政府不但从政策上支持高科技软件企业的发展,而且还投入大量资金建设教育基础设施,积极发展素质教育,这也就为教育软件市场提供了良好的成长空间。“西部大学校园计算机网络建设工程”项目于2002年上半年正式启动。该项目建设总投资9亿元。

未来的教育软件的目的将是为了真正完善人们的知识结构,提高人们的综合素质和竞争力。教育软件要适应新课程改革的需要,深入理解和考虑教材、教师、学生、环境等要素。教育软件不仅要具有开放性、交互性,前瞻性,也要有较好的二级开发能力。

从用户的角度考虑,教育软件应该内容精良,适用性强。教育软件的用户包括学生和教师,不同的人有不同的需求,软件的灵活性和创造性是尤其需要突出的。据了解,74%的教师表示非常需要教育软件来辅助教学。这说明,目前的教学软件还远远不能满足需求。

随着网络技术的飞速发展和网络使用频率的持续提升,人们将会越来越多地在网上接受教育,所以教育软件的网络化趋势是不可避免的。网络教学是今后学校教育的一个重要方向。软件与网络、教育与网络的融合是今后发展的必然趋势。

上一篇:新时代我们的使命担当作文800字下一篇:零售学习经验总结