知识管理系统需求说明书软件工程课.docx
- 文档编号:5208131
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:19
- 大小:157.15KB
知识管理系统需求说明书软件工程课.docx
《知识管理系统需求说明书软件工程课.docx》由会员分享,可在线阅读,更多相关《知识管理系统需求说明书软件工程课.docx(19页珍藏版)》请在冰豆网上搜索。
知识管理系统需求说明书软件工程课
项目名称:
知识管理系统
需求说明书:
一、引言
1.1编写目的
未来的世界将是知识经济的时代,知识逐渐成为各类组织中重要的资源,建立知识管理系统对增强企业和个人的核心竞争力发挥越来越重要的作用。
本文档为学习管理系统的设计、实现、测试以及验收提供重要依据,也为评价系统功能和性能提供标准。
本文档可供用户、项目管理人员、系统分析人员、程序设计人员以及系统测试人员阅读和参考。
1.2项目研究意义
新的世纪全球经济高速增长,知识及其精华--科学技术的贡献占70~80%,知识创新、科技进步已成为一个国家富强的源泉,成为人类文明的主要的动力。
二十一世纪,世界将由工业经济时代迈向知识经济时代,推动这一伟大潮流进展的正是知识革命。
知识管理是近几年兴起的一个新概念,一种全新的管理思想,并被管理者称为第五代管理。
它是管理科学、社会科学及信息科学的交叉学科,主要功能是存贮知识、交流并传播和创新知识。
本项目将注重研究知识管理系统的体系架构和技术实现层面的研究。
通过构建某一领域的知识管理系统为某一特定用户(比如:
旅游爱好者)提供有效的、持久的知识讯息。
根据可重构、可重用的设计开发原则,通过对这一特定领域(旅游景点)的分析和开发,尽可能做到将这一平台方便的移植到其他领域上,从而方便实现其他知识领域的开发和设计,满足不同用户的需求。
1.3项目背景
1、项目来源
软件工程课作业
2、项目规划
阶段
文档
提交日期
需求阶段
需求文档
2012.4.15
开发设计阶段
软件设计文档
2012.4.24
测试阶段
测试文档
2012.6.5
1.项目开发小组
开发人员
姓名
邮箱
组长
朱琳
1107509010@
组员
陈经欣
1040445071@
组员
杨康立
604911488@
组员
林骁龙
1436169993@
组员
蔡名哲
1299566949@
3、参考资料
二、任务概述
2.1目标
1.明确需求,严格完成需求定义的功能
2.严格按照项目进程完成软件开发
3.保证开发人员合格的工作效率
2.2运行环境
1.操作系统:
MicrosoftWindowXP/Win7
2.数据库:
SQLServer2005
3.开发工具:
Myeclipse(eclipse)
2.3条件与限制
1.处理器:
PumtiumII以上
2.运行环境:
3.内存需求:
4.由于组员开发能力和时间有限,数据库规模受限。
2.3用户特征
本软件比较适合具有如下特点的人群:
1.对某一领域(比如旅游景点)感兴趣并进行知识积累的人
2.较频繁使用到知识库知识,或添加知识到库中
三、功能需求
3.1功能划分
1.支持知识库自动更新和人工更新
2.支持基于系统和Web的知识查询搜素能力
3.提供工具,对Web页中知识的捕获和自动分类存入知识库
4.对基于系统的查询结果出了返回词条式的索引目录,同时能够返回知识地图和知识结构图,这是本系统特别和特色功能之处。
3.2功能描述:
1.利用知识链接到特定网址和利用程序spider,crawler,,或webwanderer进行自动更新
2.人工更新:
提供编辑器用户可以通过键盘输入和复制黏贴两种方式创建知识,并分类存入数据库。
用户可以有各种编辑知识的权限,比如:
添加、删除、修改、插入。
3.软件可以实现对网页知识的捕获,下载到本地电脑后,用户通过贴标签,系统自动识别分类存入数据库
4.支持对知识库中知识按标签和分类进行查询和搜索,利用全文搜索技术对知识库中知识按关键字进行分类和查询,同时利用决策支持技术得到结构化和结果话的信息来支持决策。
5.在知识库中建立知识网络结构图,能够实现基于系统查询时返回相关知识结构图。
4、性能需求
4.1数据精确度
a知识数据相关搜索时,有尽可能多的相连知识
b人工更新新知识时,需按规定数据库知识储存格式进行人手添加,不符合规格时自动弹窗提醒
4.2时间特性
a响应时间:
0.5秒以内
4.3适应性
a满足特定领域知识使用者的需求
b要求数据库具有较强数据更新能力,并能应对一般的并发事件且具有较强识别能力。
c操作系统:
MicrosoftWindowsxp/win7
4.4安全性
只设立Administrator(用户级)一级,可进行增,改等操作。
不能删除关联知识。
五、运行需求
5.1用户界面
5.1.1用户界面图例
采用格式,界面中包含多个板块,板块间相互独立又互相关联。
1.左上角菜单栏
菜单栏设计以美观简洁为核心
2.左方用户管理窗体试例
在搜索框中键如知识,可实现和选择基于本地知识库的搜索和基于Web的搜索。
3.右方编辑文档窗口示例
5.1.2界面使用说明
1.用户如果创建了笔记需要存入知识库,点击保存后,将显示如下页面:
(初步细化分类)通过用户手工贴标签和系统自动识别,实现知识自动分类。
2.用户可以选择新建各种模式的笔记,新建标签,甚至笔记本,笔记存储在笔记本中。
“编辑”框下包含一般word文档会有的编辑功能
3.“查看”栏下的有三种不同的视图模式,可以按视图按不同的方式排版。
4.在搜索框中键入想要搜索的内容,可以在笔记中查找到相应的资料
5.而编辑窗口则含有基本的word编辑功能。
6.运行该知识管理系统后,打开网页浏览器时会在下方显示浮动框,用户可以通过浮动框上的按键来实现对网页知识的复制及收藏。
5.3软件界面设计工具
1.DotNetBar,DevExpress拥有最漂亮也实用的界面,当然也是最好的选择,但需要付费购买。
2.WPF也很不错,只不过一切都得自己做,WPF不管从功能上要远大于Winform。
3.Winform做界面是最简陋的,且美化界面需要更多的代码。
5.2接口设计
5.2.1硬件接口
(1)处理器要求:
PumtiumII以上
(2)运行环境:
jdk6.0
(3)内存要求:
512MB或以上
5.2.2软件接口
(1)操作系统:
MicrosoftWindowXP/Win7
(2)数据库:
SQLServer2005
(3)开发语言:
Java
(4)开发工具:
Myeclipse(eclipse)
六、数据描述
6.1静态数据
景点ID、景点名称、景点资料日期、景点类别、景点标签、景点原链接、景点介绍、景点历史背景。
6.2动态数据
输入数据:
菜单选项、查询、新建游记、景点最新资讯的捕获。
输出数据:
查询结果的返回(包括相关知识)。
6.3数据库描述
采用SQLServer2005数据库。
针对旅游这一领域,建立相关知识库。
6.4数据词典
景点库
字段名
数据类型
主键
描述
景点ID
可变字符串
是
景点的ID号
景点名称
可变字符串
否
景点的名称
景点资料日期
日期
否
景点资料的生成日期
景点类别
可变字符串
否
景点的分类
景点标签
可变字符串
否
景点的标签
景点原链接
整型
否
景点资料获取的原链接(可为空)
景点信息
字段名
数据类型
主键
描述
景点ID
可变字符串
是
景点的ID号
景点名称
可变字符串
否
景点的名称
景点介绍
可变字符串
否
景点的介绍
景点历史背景
可变字符串
否
景点的历史背景
景点最新资讯
可变字符串
否
景点的最新资讯
景点游记
可变字符串
否
景点的相关游记
地点库
字段名
数据类型
主键
描述
景点ID
可变字符串
是
景点的ID号
景点名称
可变字符串
否
景点的名称
景点所属城市
可变字符串
否
景点所在的城市
景点所属省份
可变字符串
否
景点所在的省份
游记库
字段名
数据类型
主键
描述
景点ID
可变字符串
是
景点的ID号
游记标题
可变字符串
否
游记的标题
游记内容
可变字符串
否
游记的正文
6.5数据采集
(1)要求和范围
主要通过键盘输入、复制粘贴和网页捕获的方式获取数据。
(2)输入的承担者
人工更新为用户自行输入,自动更新为链接到特定网站的内容更新。
数据库检索:
引入著录标引管理功能:
在知识进入知识库前做好标准化处理,在知识库中建立知识名称和知识概念的一一对应关系。
七、检验标准
随着软件测试技术的不断发展,测试方法也越来越多样化,针对性更强;选择合适的软件测试方法可以让我们事半功倍。
以下是一些常用的软件测试方法。
7.1β测试_Beta测试
β测试,英文是Betatesting。
又称Beta测试,用户验收测试(UAT)。
β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。
开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。
当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。
这种测试一般由最终用户或其他人员完成,不能由程序员或测试员完成。
7.2α测试_Alpha测试
α测试,英文是Alphatesting。
又称Alpha测试。
Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由该系统的程序员或测试员完成。
在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。
这种测试一般由最终用户或其他人员来完成,不能由程序员或测试员完成。
7.3可移植性测试
可移植性测试,英文是Portabilitytesting。
又称兼容性测试。
可移植性测试是指测试软件是否可以被成功移植到指定的硬件或软件平台上。
7.4用户界面测试-UI测试
用户界面测试,英文是Userinterfacetesting。
又称UI测试。
用户界面,英文是Userinterface。
是指软件中的可见外观及其底层与用户交互的部分(菜单、对话框、窗口和其它控件)。
用户界面测试是指测试用户界面的风格是否满足客户要求,文字是否正确,页面是否美观,文字,图片组合是否完美,操作是否友好等等。
UI测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。
确保用户界面符合公司或行业的标准。
包括用户友好性、人性化、易操作性测试。
用户界面测试用户分析软件用户界面的设计是否合乎用户期望或要求。
它常常包括菜单,对话框及对话框上所有按钮,文字,出错提示,帮助信息(Menu和Helpcontent)等方面的测试。
比如,测试MicrosoftExcel中插入符号功能所用的对话框的大小,所有按钮是否对齐,字符串字体大小,出错信息内容和字体大小,工具栏位置/图标等等。
7.5冒烟测试
冒烟测试,英文是Smoketesting。
任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。
冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。
冒烟测试的执行者是版本编译人员。
7.6随机测试
随机测试,英文是Adhoctesting。
随机测试没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。
主要是根据测试者的经验对软件进行功能和性能抽查。
随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例(TestCase)没有覆盖到的部分。
另外,对于软件更新和新增加的功能要重点测试。
重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。
尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressivetesting)一起进行。
7.7本地化测试
本地化测试,英文是Localizationtesting。
本地化就是将软件版本语言进行更改,比如将英文的windows改成中文的windows就是本地化。
本地化测试的目的是测试特定目标区域设置的软件本地化质量。
本地化测试的环境是在本地化的操作系统上安装本地化的软件。
测试的内容主要包括软件本地化后的界面布局和软件翻译的语言质量,包含软件、文档和联机帮助等部分。
7.8本地化能力测试
本地化能力测试,英文是Localizabilitytesting。
本地化能力测试是指不需要重新设计或修改代码,将程序的用户界面翻译成任何目标语言的能力。
本地化能力测试中发现的典型错误包括:
字符的硬编码(即软件中需要本地化的字符写在了代码内部),对需要本地化的字符长度设置了固定值,在软件运行时以控件位置定位,图标和位图中包含了需要本地化的文本,软件的用户界面与文档术语不一致等。
7.9国际化测试
国际化测试,英文是Internationaltesting。
又称国际化支持测试。
国际化测试的目的是测试软件的国际化支持能力,发现软件的国际化的潜在问题,保证软件在世界不同区域都能正常运行。
国际化测试使用每种可能的国际输入类型,针对任何区域性或区域设置检查产品的功能是否正常,软件国际化测试的重点在于执行国际字符串的输入/输出功能。
国际化测试数据必须包含东亚语言、德语、复杂脚本字符和英语(可选)的混合字符。
国际化支持测试是指验证软件程序在不同国家或区域的平台上也能够如预期的那样运行,而且还可以按照原设计尊重和支持使用当地常用的日期,字体,文字表示,特殊格式等等。
比如,用英文版的WindowsXP和MicrosoftWord能否展示阿拉伯字符串?
用阿拉伯版的WindowsXP和阿拉伯版的MicrosoftWord能否展示阿拉伯字符串?
又比如,日文版的MicrosoftExcel对话框是否显示正确翻译的日语?
一旦来说执行国际化支持测试的测试人员往往需要基本上了解这些国家或地区的语言要求和期望行为是什么。
7.10安装测试
安装测试,英文是Installingtesting。
安装测试是确保软件在正常情况和异常情况下,例如,进行首次安装、升级、完整的或自定义的安装都能进行安装的测试。
异常情况包括磁盘空间不足、缺少目录创建权限等场景。
核实软件在安装后可立即正常运行。
安装测试包括测试安装代码以及安装手册。
安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。
7.11白盒测试
白盒测试,英文是WhiteBoxTesting。
又称结构测试或者逻辑驱动测试。
白盒测试是把测试对象看作一个打开的盒子。
利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功能。
白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。
其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
白盒测试是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
白盒测试常用工具有:
Jtest、VcSmith、Jcontract、C++Test、CodeWizard、logiscope。
7.12黑盒测试
黑盒测试,英文是BlackBoxTesting。
又称功能测试或者数据驱动测试。
黑盒测试是根据软件的规格对软件进行的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。
软件测试人员以用户的角度,通过各种输入和观察软件的各种输出结果来发现软件存在的缺陷,而不关心程序具体如何实现的一种软件测试方法。
黑盒测试常用工具有:
AutoRunner、winrunner、loadrunner。
7.13自动化测试
自动化测试,英文是AutomatedTesting。
使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试和功能测试中用得较多。
通过录制测试脚本,然后执行这个测试脚本来实现测试过程的自动化。
国内领先的自动化测试服务提供商是泽众软件。
自动化测试工具有AutoRunner和TAR等。
7.14回归测试
回归测试,英文是Regressiontesting。
回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性。
理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。
根据修复好了的缺陷再重新进行测试。
回归测试的目的在于验证以前出现过但已经修复好的缺陷不再重新出现。
一般指对某已知修正的缺陷再次围绕它原来出现时的步骤重新测试。
通常确定所需的再测试的范围时是比较困难的,特别当临近产品发布日期时。
因为为了修正某缺陷时必需更改源代码,因而就有可能影响这部分源代码所控制的功能。
所以在验证修好的缺陷时不仅要服从缺陷原来出现时的步骤重新测试,而且还要测试有可能受影响的所有功能。
因此应当鼓励对所有回归测试用例进行自动化测试。
7.15验收测试
验收测试,英文是Acceptancetesting。
验收测试是指系统开发生命周期方法论的一个阶段,这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。
它让系统用户决定是否接收系统。
它是一项确定产品是否能够满足合同或用户所规定需求的测试。
验收测试一般有三种策略:
正式验收、非正式验收或Alpha测试、Beta测试。
7.16动态测试
动态测试,英文是MomentTesting。
动态测试是指通过运行软件来检验软件的动态行为和运行结果的正确性。
7.17探索测试
探索测试,英文是ExploratoryTesting。
探索测试是指通常用于没有产品说明书的测试,这需要把软件当作产品说明书来看待,分步骤逐项探索软件特性,记录软件执行情况,详细描述功能,综合利用静态和动态技术来进行测试。
探索测试人员只靠智能、洞察力和经验来对bug的位置进行判断,所以探索测试又被称为自由形式测试。
7.18单元测试
单元测试,英文是UnitTesting。
单元测试是最微小规模的测试;以测试某个功能或代码块。
典型地由程序员而非测试员来做,因为它需要知道内部程序设计和编码的细节知识。
这个工作不容易做好,除非应用系统有一个设计很好的体系结构;还可能需要开发测试驱动器模块或测试套具。
7.19集成测试
集成测试,英文是IntegrationTesting。
集成测试是指一个应用系统的各个部件的联合测试,以决定他们能否在一起共同工作并没有冲突。
部件可以是代码块、独立的应用、网络上的客户端或服务器端程序。
这种类型的测试尤其与客户服务器和分布式系统有关。
一般集成测试以前,单元测试需要完成。
集成测试是单元测试的逻辑扩展。
它的最简单的形式是:
两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。
从这一层意义上讲,组件是指多个单元的集成聚合。
在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。
方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。
最后,将构成进程的所有模块一起测试。
此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。
集成测试识别组合单元时出现的问题。
通过使用要求在组合单元前测试每个单元,并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。
这种方法将可能发生的情况数量减少到更简单的分析级别
7.20系统测试
系统测试,英文是SystemTesting。
系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。
系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。
系统测试的对象不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。
因此,必须将系统中的软件与各种依赖的资源结合起来,在系统实际运行环境下来进行测试。
7.21端到端测试
端到端测试,英文是EndtoEndTesting。
端到端测试类似于系统测试,测试级的“宏大”的端点,涉及整个应用系统环境在一个现实世界使用时的模拟情形的所有测试。
例如与数据库对话,用网络通讯,或与外部硬件、应用系统或适当的系统对话。
端到端架构测试包含所有访问点的功能测试及性能测试。
端到端架构测试实质上是一种"灰盒"测试,一种集合了白盒测试和黑盒测试的优点的测试方法。
7.22健全测试
健全测试,英文是Sanitytesting。
健全测试是指一个初始化的测试工作,以决定一个新的软件版本测试是否足以执行下一步大的测试能力。
例如,如果一个新版软件每5分钟与系统冲突,使系统陷于泥潭,说明该软件不够“健全”,目前不具备进一步测试的条件。
7.23衰竭测试
衰竭测试,英文是FailureTesting。
衰竭测试是指软件或环境的修复或更正后的“再测试”。
可能很难确定需要多少遍再次测试。
尤其在接近开发周期结束时。
7.24接受测试
接受测试,英文是AcceptTesting。
接受测试是基于客户或最终用户的规格书的最终测试,或基于用户一段时间的使用后,看软件是否满足客户要求。
一般从功能、用户界面、性能、业务关联性进行测试。
7.25负载测试
负载测试,英文是Loadtesting。
负载测试是测试一个应用在重负荷下的表现。
例如测试一个Web站点在大量的负荷下,何时系统的响应会退化或失败,以发现设计上的错误或验证系统的负载能力。
在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。
负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。
此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
7.26强迫测试
强迫测试,英文是ForceTesting。
强迫测试是在交替进行负荷和性能测试时常用的术语。
也用于描述象在异乎寻常的重载下的系统功能测试之类的测试,如某个动作或输入大量的重复,大量数据的输入,对一个数据库系统大量的复杂查询等。
7.27压力测试
压力测试,英文是StressTesting。
和负载测试差不多。
压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。
压力测试的基本思路很简单:
不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。
通常要进行压力测试的资源包括内部内存、CPU可用性、磁盘空间和网络带宽等。
一般用并发来做压力测试。
7.28性能测试
性能测试,英文是PerformanceTesting。
性能测试是在交替进行负荷和强迫测试时常用的术语。
理想的“性能测试”(和其他类型的测试)应在需求文档或质量保证、测试计划中定义。
性能测试一般包括负载测试和压力测试。
通常验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。
或者执行同样任务时新版本不比旧版本慢。
一般还检查系统记忆容量在运行程序时会不会流失(memoryleak)。
比如,验证程序保存一个巨大的文件新版本不比旧版本慢。
可用性测试
可用性测试,英文是PracticalUsab
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 知识 管理 系统 需求 说明书 软件工程