




已阅读5页,还剩48页未读, 继续免费阅读
(管理科学与工程专业论文)软件需求分析方法创新研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 软件需求工程是随着计算机的发展而发展的,在计算机发展的初期,软件规 模不大,软件开发所关注的是代码编写,需求分析很少受到重视。后来软件开发 引入了生命周期的概念,需求分析成为其第一阶段。8 0 年代中期,形成了软件 工程的子领域需求工程。需求工程是指应用已证实有效的技术、方法进行需 求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征 的一门学科。它通过合适的工具和记号系统地描述待开发系统及其行为特征和相 关约束,形成需求文档,并对用户不断变化的需求演进给予支持。 面对千差万别的用户要求,如何能够快捷、准确的获取系统的需求并建立起 无歧义的、完整的需求模型已成为软件开发中的核心问题。本文首先对专家系统, 面向对象的技术和敏捷方法的思想等技术和方法作了简单的介绍,通过对现有技 术的了解,在软件需求捕获阶段引入专家系统,达到全面而细致地捕获用户大部 分需求的目的,从而大大缩短需求分析的周期:通过专家系统的初步分析后,借 助面向对象的建模方法和敏捷建模的基本思想和原则来描述用户需求,通过模型 进一步激发用户原来没有设想到或者遗漏的用户需求,并且修正用户提出的不可 实现需求:与此同时针对用户需求在系统建模后的不断涌现和变化,保证了模型 的最大扩展性,给系统需求的完善提供了最好的平台。最后,本文结合需求管理, 在原有的需求工程的理论上形成了新的理论模型,并详细介绍了模型的设计原理 与思路。 本文在第一章中介绍了研究背景和研究目的方法等;在第二章中介绍了软件 需求工程的基本概念;然后在第三章中介绍了相关理论基础,其中包括专家系统; 面向对象的建模方法以及敏捷建模的思想;第四章具体研究了基于专家系统的敏 捷建模思想的设计与实现;最后是结论和展望。 关键词:软件需求工程,专家系统,需求分析,面向对象,敏捷建模 a b s t r a c t a l o n gw i t h t h ec o m p u t e r d e v e l o p m e n t ,s o f t w a r er e q u i r e m e n t e n g i n e e r i n g d e v e l o p ,i nt h ei n i t i a lp e r i o do ft h ec o m p u t e rd e v e l o p m e n t ,t h es o f t w a r es c a l ei sn o t b i g ,w h a tt h es o f t w a r ed e v e l o p m e n tp a y sa t t e n t i o nt oi st h ec o d ec o m p i l a t i o n ,t h e r e q u i r e m e n ta n a l y s i s a t t a c h v e r y l i t t l e i m p o r t a n c e a f t e r w a r d s t h es o f t w a r e d e v e l o p m e n ti n t r o d u c e dt h el i f ec y c l ec o n c e p t ;r e q u i r e m e n ta n a l y s i sg o e si n t oi t sf i r s t s t a g e a l o n gw i t ht h es o f t w a r es y s t e ms c m ee x p a n s i o n ,t h er e q u i r e m e n ta n a l y s i sa n d d e f i n i t i o ni sm o r ea n dm o r ei m p o r t a n ti nt h ee n t i r es o f t w a r ed e v e l o p m e n ta n dt h e m a i n t e n a n c ep r o c e s s ,i tr e l a t e sd i r e c t l yt ot h es o f t w a r es u c c e s so rn o t p e o p l er e a l i z e d g r a d u a l l yt h a tr e q u i r e m e n ta n a l y s i si sn ol o n g e ro n l yr e s t r i c t e di nt h ei n i t i a ls t a g eo f t h es o f t w a r ed e v e l o p m e n t ;i tp a s s e st h m u 曲i nt h ee n t i r el i f ec y c l eo fs y s t e m d e v e l o p m e n t t h e8 0 。si n t e r m e d i a t es t a g e s ,h a v ef o r m e dt h es o f t w a r ee n g i n e e r i n gs u b - d o m a i n 一一r e q u i r e m e n te n g i n e e r i n g t h er e q u i r e m e n te n g i n e e r i n gw a sr e f e r s t ot h e d i s c i p l i n e t h a t a p p l yw i t h t h ev a l i dt e c h n o l o g ya n dm e t h o dt oc a r r yo nt h e r e q u i r e m e n ta n a l y s i s ,d e f i n e c l i e n t r e q u i r e m e n t ,h e l p e d t h e a n a l y s i s s t a f ft o u n d e r s t a n dt h eq u e s t i o na n dd e f i n eg o a ls y s t e ma l le x t e r i o rc h a r a c t e r i s t i c s t h r o u g h t h ea p p r o p r i a t et o o la n dt h et o k e n ,i ts y s t e m a t i c a l l yd e s c r i b e st h ed e v e l o p m e n ts y s t e m a n di t sb e h a v i o rc h a r a c t e r i s t i c sa n dt h ec o r r e l a t i o nr e s t r a i n t ,f o r m st h er e q u i r e m e n t d o c u m e n t s ,a n dg i v e st h es u p p o r tt o t h er e q u i r e m e n te v o l u t i o nw h i c hc h a n g e s u n c e a s i n g l y f a c i n gt h ei n f i n i t e l yv a r i e dr e q u i r e m e n t ,h o wt oq u i c k l ye x t r a c tt h ea c c u r a t e s y s t e mr e q u i r e m e n ta n de s t a b l i s h e st h en od i f f e r e n tm e a n i n g s ,i n t e g r i t yr e q u i r e m e n t m o d e lh a sb e c o m et h ec o r oq u e s t i o ni nt h es o f t w a r ed e v e l o p m e n t t h i sa r t i c l ef i r s t l y m a d et h es i m p l ei n t r o d u c t i o no ft h ee x p e r ts y s t e m ,o b j e c t o r i e n t e dt e c h n i q u ea n da g i l e m e t h o dt e c h n o l o g y , a n ds oo n b yt h ee x i s t i n gt e c h n i c a l ,ia p p l i e sw i t ht h ee x p e r t s y s t e m i nt h es o f t w a r er e q u i r e m e n t c a p t u r ep h a s e ,a c h i e v e s t h e t a r g e t t h a t c o m p r e h e n s i v e l ya n dc a r e f u l l yc a p t u r et h eu s e rm a j o r i t yo fr e q u i r e m e n t s ,t h u sr e d u c e s t h ec y c l eo fr e q u i r e m e n ta n a l y s i sg r e a t l y ;a f t e rt h ee x p e r ts y s t e mp r e l i m i n a r ya n a l y s i s , d e s c r i b e st h eu s e rr e q u i r e m e n t sw i t ht h eo b j e c t o r i e n t e dm o d e l i n gm e t h o da n dt h e a g i l em o d e l i n gp r i n c i p l e ,i tf u r t h e rs t i m u l a t e st h eu s e rr e q u i r e m e n tw h i c hi s n o tt o c o n c e i v e do r i g i n a l l yo rm i s s e d ,a n dr e v i s eu s e rr e q u i r e m e n tc a n n o tb ei m p l e m e n t e d ; a tt h es a n l et i m e ,a i m sa tt h eu s e rr e q u i r e m e n te m e r g i n ga n dc h a n g i n gu n c e a s i n g l y a f t e rt h es y s t e mm o d e l i n g ,i th a dg u a r a n t e e dt h em o d e lg r e a t e s te x t e n s i o n ,p r o v i d e d i i t h eb e s tp l a t f o r mt ot h es y s t e mr e q u i r e m e n tc o n s u m m a t i o n f i n a l l y , t h i sa r t i c l eu n i f i e st h er e q u i r e m e n tm a n a g e m e n t ,t h e o r e t i c a l l yf o r m e dt h e n e wt h e o r e t i c a lm o d e lo nt h eo r i g i n a lr e q u i r e m e n te n g i n e e r i n g ,a n di n t r o d u c e dt h e m o d e ld e s i g np r i n c i p l ei nd e t a i l k e yw o r d s :s o f t w a r er e q u i r e m e n te n g i n e e r i n g , e x p e r ts y s t e m ,r e q u i r e m e n t a n a l y s i s ,o b j e c t o r i e n t e d ,a g i l em o d e l i n g h i 武汉理工大学硕士学位论文 1 1 国内外研究现状 第1 章绪论 1 0 多年前,f r e db r o o h s 写道:t h eh a r d e s ts i n g l ep a r to fb u i l d i n ga s o f t w a r es y s t e mi sd e c i d i n gp r e c i s e l yw h a tt ob u i l d 。这句话说明了软件 需求在建造一个软件系统中的重要性。软件需求工程是随着计算机的发展而发展 的。在计算机发展的初期,软件规模较小,软件开发直接从代码开始,需求分析 f i 受到重视。后来软件规模的不断增大,出现了软件危机,软件缺陷的增加导致 软件系统无法运行,随着软件生命周期概念的出现,需求分析成为软件开发的第 一个阶段,通过国内外许多的案例分析认为:需求分析的结果直接影响到系统的 成功与否,需求分析活动不只是软件开发的第一阶段,它贯穿于整个系统开发的 生命周期。 但是在软件开发中,由于需求分析阶段出现问题而导致软件项目失败占绝大 多数。从美国于1 9 9 5 年开始的一项调查结果就足以看出这一点。在这项调查中, 他们对全国范围内的8 0 0 0 个软件项目进行跟踪调查,结果表明,有1 3 的项目 没能完成,而在完成的2 3 的项目中,又有1 2 的项目没有成功实施。他们仔细 分析失败的原因后发现,与需求过程相关的原因占了4 5 ,而其中缺乏最终用户 的参与以及不完整的需求又是两大首要原因,各占1 3 和1 2 。 在国内,虽然自”软件危机”提出以来,软件工程方法得到了长足的发展与进 步,但在去年的软件项目成功率仍然不足3 0 ,绝大多数的软件项目仍然超进 度、超成本。而在这些不成功的项目中,由于需求不清晰、需求不完整和需求的 不断变化等方面的因素,占到了6 0 左右。 同时,用户对于如何应用计算机软件并没有一个成熟的经验,在项目进行中 用户会频繁的改变和增加各种要求。当最终完成系统的建设时,却发现企业的业 务需求已经发生了很大的改变,一方面是系统的设计已经无法很好地满足新的需 求,另一方面是项目周期大大超过预期,项目发生亏损。 到目前为止,虽然在软件工程中,软件开发已经逐渐规范化,但如何有效而 又全面的掌握系统需求,仍然是值得国内外系统分析员深入研究的问题。 武汉理工大学硕士学位论文 1 2 研究动机 虽然软件需求工程的重要性不容质疑,然而并非所有软件开发者,都能清楚 地意识到需求工程中的缺陷会给软件项目带来怎样的风险。研究表明,在需求阶 段检查和修复一个错误所需的费用只有编码阶段的1 5 到1 t o ,而在维护阶段 做同样的工作所付出的代价却是编码阶段的2 0 倍。这就意味着在需求阶段和维 护阶段修复一个错误的比值可高达1 :2 0 0 。 由此可以看出:软件需求工程在整个软件生命周期是非常重要的,也是非常 基础的。做好需求的分析和管理,既可以减少软件开发中的错误,还可以减少修 复错误的费用,从而大大降低软件开发成本,缩短软件开发时间。本文通过对软 件需求工程的流程进行再设计,深入挖掘用户需求,缩短系统需求分析的周期, 为软件后期的设计与实施节省了成本,并为软件开发的成功打下了基础。 1 3 研究目的和意义 1 3 1 研究目的 在软件工程中,需求阶段是和用户交往最多的一段时间,而绝大部分用户是 不懂得需求分析方法的,他们不知道怎样全面而又准确无误地表达自己的需求, 因而对于需求分析人员来讲,需要掌握很好的方法与技巧,恰当地启发引导用户 表达自己的需求。本课题通过在系统需求获取阶段引入专家系统对用户需求进行 全面而又细致的初步捕获,并通过面向对象建模方法和敏捷建模的思想对用户需 求进行非形式化的描述和重定义,从而进一步完善用户需求,以便为项目的成功 提供一个很好的基石。 1 3 2 研究意义 由于软件需求工程是软件工程中最复杂的过程之一,其复杂性来自于客观和 主观两个方面。从客观意义上说,软件需求工程面对的问题几乎是没有范围的。 由于应用领域的广泛性,它的实施无疑与各个应用行业的特征密切相关。从主观 意义上说,软件需求工程需要方方面面的人员的参与( 如领域专家、领域用户、 2 武汉理工大学硕士学位论文 系统投资人、系统分析员、需求分析员等等) ,各方面人员有不同的着眼点和不 同的知识背景,沟通上的困难给需求工程的实施增加了人为的难度。所以,如果 能有专家系统作为用户与系统分析员之间沟通的桥梁,无疑会捕获用户的大部分 需求,从而大大缩短需求分析的周期。 通过专家系统的初步分析后,系统分析员可以借助面向对象的建模方法和敏 捷建模的基本思想和原则来描述用户需求,通过模型进一步激发用户原来没有设 想到或者遗漏的用户需求,并且修正用户提出的不可实现需求:与此同时针对用 户需求在系统建模后的不断涌现和变化,保证了模型的最大扩展性,给系统需求 的完善提供了最好的平台。 1 4 研究内容与文章架构 1 4 1 研究内容 本课题通过查阅国内外相关领域的研究成果,与传统需求分析方法进行对比 分析,找出两者的优缺点:通过在系统分析中引入专家系统,达到全面而细致地 捕获用户大部分需求的目的,并借助面向对象的敏捷建模思想对系统进行建模, 结合软件需求工程的理论知识,总结出一套完整的需求分析建模的方案: 本文的主要研究内容如下所示: ( 1 ) 提出一套基于专家系统的需求获取方法; ( 2 ) 与传统需求获取方法的比较; ( 3 ) 提出面向对象的敏捷建模方法; ( 4 ) 设计一套完整的需求分析建模的方案; 1 4 2 文章架构 本课题研究内容总共分为五章,在绪论中介绍了研究背景和研究目的方法 等;在第二章中介绍了软件需求工程的基本概念;然后在第三章中介绍了相关理 论基础,其中包括专家系统;面向对象的建模方法以及敏捷建模的思想;第四章 具体研究了基于专家系统的敏捷建模思想的设计与实现;最后是结论。本文具体 的结构如下图1 1 所示: 武汉理工大学硕士学位论文 图1 1 论文总体结构图 d 武汉理工大学硕士学位论文 第2 章软件需求工程概述 2 1 软件需求工程的发展历程 对于计算机软件而言,软件开发方与软件客户方是贯穿软件整个生命周期的 两个最基本的要素。无论软件的规划、开发、测试,还是软件的使用、维护。废 弃,都需要二者不同程度参与。正是由于二者自始至终的相互制约、相互合作, 爿椎动着整个计算机软件产业不断地向前发展。其中,需求分析是二者合作的基 石和关键所在。 需求工程是随着计算机的发展而发展的。在计算机发展的初期,软件规模不 大,软件开发所关注的是代码编写,需求分析很少受到重视。在软件系统的概念 提出后,软件系统的开发引入了生命周期的概念,需求分析成为其第一阶段。随 着软件系统规模的扩大,需求分析与定义在整个软件开发与维护过程中越来越重 要,直接关系到软件的成功与否。人们逐渐认识到需求分析活动不再仅限于软件 开发的最初阶段,它贯穿于系统开发的整个生命周期。8 0 年代中期,形成了软 件工程的子领域需求工程( r e q u i r e m e n te n g i n e e r i n gr e ) 如果说软件工程概念的形成是解决软件危机的必然结果,那么其子工程 需求工程的出现才真正体现出软件产品不同于其它产品的一个特性用户参 与整个产品过程的重要性。进入9 0 年代以来,需求工程成为研究的热点之一。 2 2 软件需求的层次 软件需求包括三个不同的层次业务需求、用户需求和功能需求也包 括非功能需求。不同层次是从不同角度与不同程度反映着细节问题。 软件需求各组成部分之间的关系如图2 1 所示。 武汉理工大学硕士学位论文 图2 一i 软件需求层次图 ( 1 ) 业务需求:由管理人员或市场分析人员确定。所有的用户需求必须与业务需 求一致。用户需求使需求分析者能从中总结出功能需求,以满足用户对产品 的要求从而完成其任务:而开发人员则根据功能需求来设计软件以实现必须 的功能。 ( 2 ) 功能需求:充分描述了软件系统所应具有的外部行为,应在软件需求规格说 明( s o f t w a r er e q u i r e m e n ts p e c i f i c a t i o n ,s r s ) 中加以说明。软件需求规 格说明在开发、测试、质量保证、项目管理以及相关项目功能中都起了重要 的作用。对一个复杂产品来说,软件功能需求说明也许只是系统需求的一个 子集,因为另外些可能属于软件部件。 ( 3 ) 非功能需求:作为功能需求的补充,描述了系统展现给用户的行为和执行的 武汉理工大学硕士学位论文 操作等,也应包括在软件需求规格说明中。它包括产品必须遵从的标准、规 范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量 属性。所谓约束指开发人员在软件产品设计和构造上的限制。质量属性是通 过多种角度对产品的特点进行描述,从而反映产品功能。多角度描述产品对 用户和开发人员都极为重要。 需求并未包括设计细节、实现细节、项目计划信息或测试信息。需求与这些 没有关系,它关注的是充分说明你究竟想要开发什么。 当然,软件项目也有其它方面的需求,如开发环境需求或发布产品及移植到 支撑环境的需求等等。尽管这些需求对软件成功也至关重要,但它们并非本文所 要讨论的。 2 3 需求工程的阶段 需求工程是一个不断反复的需求定义、文档记录、需求演进的过程,并最终 在验证的基础上冻结需求。8 0 年代,h e r bk r a s n e r 定义了需求工程的五阶段生 命周期:需求定义和分析:需求决策;形成需求规格;需求实现与验证;需求演 进管理。近来,m a t t h i a sj a r k e 和k l a u sp o h l 提出了三阶段周期的说法:获取、 表示和验证。 综合了几种观点,把整个需求工程研究领域划分为需求开发和需求管理两大 部分更为合适,如图2 2 所示。 需求获取 图2 2 软件需求工程阶段图 7 武汉理工大学硕士学位论文 其中,需求开发部分是整个需求工程的中心。需求开发可迸一步分为:需求 获取( e li c i t a t i o n ) 、需求分析( a n a l y s i s ) 、编写规格说明( s p e c i f i c a t i o n ) 和验 证( v e r i f i c a t i o n ) 四个阶段。各阶段的主要任务是: ( 1 ) 需求获取 通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获 和修订用户的需求; ( 2 ) 需求分析 为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述,并尽 可能多的捕获现实世界的语义; ( 3 ) 编写规格说明 生成需求模型构件的精确的形式化的描述,作为用户和开发者之间的一个协 约; 规格是一个预期的或已存在的计算机系统的表示。它可以作为开发者和用户 之间协议的基础,来产生预期的系统。规格定义系统所有必须具备的特性,同时 留下很多特性不做限制。通常,我们要求规格比组成特定系统的实际的软件和硬 件更简洁、更全面、更易于修改。 需求工程的主要结果是软件需求规格( s o f t w a r er e q u i r e m e n t s p e c i f i c a t i o n ,s r s ) ,s r s 是对外部行为和系统环境( 软件、硬件、通信端口和 人) 接口的简洁完整的描述性文档。项目管理者用它来对项目进行计划和管理, 在许多情况下,它也被作为是用户的使用手册或帮助用户理解系统的文档。它广 泛地适用于对各类应用领域中的客户问题进行理解与描述,实现用户、分析员和 设计人员之间的通信,为软件设计提供基础,并支持系统的需求验证和演进。 ( 4 ) 需求验证 以需求规格说明为输入,通过符号执行、模拟或快速原型等途径,分析需求 规格的正确性和可行性; 需求管理是一种与需求开发过程并行的需求工程活动;它支持系统的需求演 进,如需求变化和可跟踪性等问题。需求管理的主要活动可分为:需求变更控制、 需求版本控制、需求跟踪以及需求状态跟踪。 8 武汉理工大学硕士学位论文 2 4 小结 本文就是通过在原有的软件需求工程的流程上引入专家系统捕获需求,通过 面向对象的技术和敏捷方法进行系统分析,更加全面,系统的把握用户需求,从 而形成一套完整的需求获取以及需求分折的方案。下面我就对本文提出的软件需 求工程的新流程中所涉及到的方法及技术做一个简单的介绍。 9 武汉理工大学硕士学位论文 3 1 专家系统 第3 章相关理论基础 为了能够根据企业的具体情况提取合适的需求信息建立需求模型,需要配备 相应的专家系统对用户需求进行分析和整理,通过推理确定企业管理信息系统需 求模型所需的具体信息需求。下面对专家系统相关的知识进行简要的介绍。 3 1 1 专家系统简介 专家系统( e x p e r ts y s t e m ,简称e s ) 是用基于知识的程序设计方法建立起来 的计算机系统,它综合集成了某个特殊领域的专家的知识和经验,能像人类专家 那样运用这些知识,通过推理模拟人类专家做出决定的过程,来解决人类专家才 能解决的复杂问题。也就是说,面对某领域复杂的实际问题,专家系统能做出专 家水平级的决策,像专家一样解决实际问题。专家系统的出现,大大推动了人工 智能的发展,使人工智能真正从实验室走向实际,开始了以知识为中心的人工智 能新时代。 人类专家之所以成为某一领域的专家,关键在于他掌握了关于该领域中的大 量专门知识。e s 要能像某专家一样处理问题,它必须首先获得那些知识,然后 有效地组织存储起来以便利用。由此可见,专家系统是一门综合性很强的边缘科 学,它的研究重点是人类专家的专门知识的获取和利用。因此,专家系统开发技 术的研究主要涉及三个方面: ( 1 ) 知识获取:主要研究如何将特定问题领域的事实性知识和经验知识送入 知识库中,即如何从专家那里抽取知识、知识库完整性、一致性维护以 及通过学习自动获取知识等问题。 ( 2 ) 知识表示:主要研究如何将某专门领域的事实性知识和专家的经验性知 识转化为计算机可以利用的形式( 知识的形式化) ,这类问题常称为知识 库设计问题。 ( 3 ) 知识利用:主要研究如何利用已有的数据结构和已形式化的知识解决特 定的问题,这类问题常称为推理机制的设计问题。 l o 武汉理工大学硕士学位论文 3 1 2 与传统需求获取方法的比较 需求分析阶段的主要目的通俗地讲,就是使软件的开发者和使用者对要开发 实现的产品达到共识。但是在传统的需求获取方法中,由于用户对计算机系统认 识的缺乏,以及丌发人员对产品领域知识的不足,二者要达成共识存在许多的困 难。例如:用户往往无法提出完整的需求或者无法提出具体有效的要求:用户经常 过多地变动已提出的需求。使项目的开发停滞不前;用户可能会提出一些过高的、 难以实现的要求。 专家系统除了与一般程序相比具有优越性外,专家系统也具有一般系统及人 类专家无法比拟的优点。 ( 1 ) 专家系统具有很多人类专家无法比拟的优点它能高效率、准确、周到、 迅速和不知疲倦的工作; ( 2 ) 专家系统解决问题时不受周围环境的影响,也不会遗漏忘记; ( 3 ) 专家系统解决问题不受时间和空间的限制,以便能推广珍贵和稀缺的专 家知识和经验; ( 4 ) 专家系统能够汇集多领域专家的知识和经验以使他们协作解决重大问题 的能力,它拥有更渊博的知识、更丰富的经验、更强的工作能力。 因此,开发适合特定领域的、界面友好的、能够引导用户正确提出完整需求 的需求分析平台无疑是解决用户需求获取的最佳方法。 3 1 3 专家系统的架构 专家系统由领域专家及计算机程序工作者共同建造而成,它面向不同的领域 的问题,一般来说,它由知识库、数据库、推理机、接1 :3 、解释器和知识获取系 统等部分组成,如图3 1 所示;现对每一部分做一简单介绍。 图3 1 专家系统结构图 1 知识获取系统 专家系统解决问题的能力主要取决于它所使用的知识的数量和质量,建造专 家系统的关键之一也就是知识的获取问题。知识获取的一般方法是知识工程师与 专家以交互的方式进行,知识工程师将从专家那里归纳的知识录入到知识库中, 专家系统进行验证,然后与专家一同反复的修改达到最好的效果。熟悉计算机技 术的领域专家也可以使用智能编辑程序直接的与专家系统进行交互来建造知识 库。 在知识获取的过程中起主要作用的是知识工程师,主要任务是协助教学专家 将学科知识形式化,并建立知识库。 2 知识库( k n o w l e d g eb a s e ) 知识库( k n o w l e d g eb a s e , ) 用于存储某领域专家系统的专门知识,包括事实、 可行操作与规则等。为了建立知识库,要解决知识获取和知识表示问题a 知识获 取涉及知识工程师( k n o w l e d g ee n g i n e e r ) 如何从专家那里获得专门知识的问题: 知识表示则要解决如何用计算机能够理解的形式表达和存储知识的问题。知识库 中包括推理时所要用到的一般知识和领域知识,这些知识也就是知识获取系统所 提供的,系统所能使别的知识内部表示形式,如产生式规则、网络、过程等。知 1 2 武汉理工大学硕士学位论文 用到的一般知识和领域知识,这些知识也就是知识获取系统所提供的,系统所能 使别的知识内部表示形式,如产生式规则、网络、过程等。知识库通常与专家系 统的其它部分分开,这种方式的主要优点是在于透明性和灵活性。 ( 3 ) 推理机( r e a s o n i n gm a c h i n e ) 知识的推理的模块或程序也就是推理机,推理机用于记忆所采用的规则和控 制策略的程序,使整个专家系统能够以逻辑方式协调地工作。推理机能够根据知 识进行推理和导出结论,丽不是简单地搜索现成的答案。基于推理机的构造一般 包括推理和控制两大方面。依据知识的表示的不同,可以把基于知识的推理分为 基于谓词逻辑的推理、基于规则的推理、基于语义网络的推理等等。推理机中的 控制策略,主要解决知识的选择与应用的顺序;推理机的效果和效率和控制方式 密切相关。 ( 4 ) 接口系统( i n t e r f a c es y s t e m ) 接口又称界面,它能够使系统与用户进行对话,使用户能够输入必要的数据、 提出问题和了解推理过程及推理结果等。系统则通过接口,要求用户回答提问, 并回答用户提出的问题,进行必要的解释。接口是人与专家系统进行信息交流的 界面。它为用户提供比较直观方便的手段。接口系统接收用户的提问、已知数据 和其它信息,并进行一定的处理,再转交给专家系统。同时,接口系统也要将专 家系统对用户的提问、推理结果、对推理结果的解释以用户可理解的方式输出给 用户。 ( 5 ) 解释系统( e x p l a n a t o rs y s t e m ) 专家系统的另一个部分就是解释器( e x p l a n a t o r ) ,所谓解释,是系统对用户 或系统设计者所提出的问题,给出一个清楚的、完整的、易于理解的回答,也就 是对其行为和结果做出合理的说明。一般的专家系统都有解释机构,因为它能增 加系统的透明性,同时也增加了系统的可接受性。解释是辅助工程师发现和更正 知识库中知识的缺陷和错误的重要途径。解释的另外一个重要作用,在于能对初 级用户进行教育,使其同样具有专家知识。 ( 6 ) 全局数据库( g 1o b a ld a t a b a s e ) 全局数据库又称综合数据库,黑板用来记录系统推理过程中用到的控制信 息、中间假设和中间结果以及结论的数据库或工作存储器。专家系统开始运行时, 武汉理工大学硕士学位论文 首先将获得的初始事实放在黑板中,推理及根据这些事实以及知识库进行推理, 并不断的将中间结果和中间假设放在黑板中,直到问题的最终结论或得不出结果 而退出。 3 1 4 专家系统的工作原理 ( 1 ) 规则 规则( 或产生式规则p r o d u c t i o nr u l e ) 是人工智能领域用来描述事物因果关 系的术语,一条规则的基本形式为:“p 一 q ”或“i fpt h e nq ”,含义是:如果 前提p 满足,则可推出结论q 或执行q 所规定的操作。而且,q 又可以是某条规 则的前件。 规则前提p 往往是多个前提条件的组合,通常称i f 部分为前项( a n t e c e d e n t ) 或前件,称每个t h e n 部分为后项( c o n s e q u e n t ) 或后件。a l l e nn e w e l l 和h e r b e r t s i m o n 证明的最重要结果之一是:大部分的人类问题求解或认知,可以用i f t h e n 类型的产生式规则来表达。举个例子,”i f 天气很热t h e n 庄稼缺水”,实际 上是先存在着这样的规则,这是一个在特定论域中的规则;并且我们可以看出, 该规则决定了推理的逻辑。 ( 2 ) 知识表示 专家系统中的知识可以用多种方式来组织或描述,以利于计算机存储和推 理。描述或组织知识的方法称为知识表示。 在一般的程序设计中,我们针对问题建立数学模型,然后针对数学模型编制 算法:而智能活动则针对问题建立相关的知识模型,知识本身蕴涵了对问题的解: 然后针对该模型( 编制程序) 实旎推理,找出相应的解也就是说,知识表示就是 知识建模。 ( 3 ) 基于规则的系统 显然,规则也可用于描述专家知识,实际上,产生式知识表示方法即因用( 产 生式) 规则表示知识而得名,并且把按规则表示知识为基础的系统称为产生式系 统( 或基于规则的系统) 。 在产生式系统中,论域的知识分为两部分:用事实表示静态知识,如事物、 事件和它们之间的关系;用产生式规则表示推理过程和行为。由于这类系统的知 识库主要用于存储规则,因此又把此类系统称为基于规则的系统。 1 4 武汉理工大学硕士学位论文 ( 4 ) 推理 推理即根据一定的原则( 如规则) ,从己知的事实推导出新的事实的过程。 专家系统中用来求解问题的两个常用推理策略是正向链( f o r w a r dc h a i n i n g ) 或正向推理和反向链( b a c k w a r dc h a i n i n g ) 或逆向推理。正向链是从事实到结论 的推理,反向链则是从假设,即要证明的结论,到事实的推理。 在基于规则的系统中,推理机决定哪些规则的前件被事实满足。综合数据库 中可能包含关于问题域当前状态的事实,这些事实可能一个或多个同时在综合数 据库罩。如果推理机注意到某一个事实满足一条规则的条件部分,则将该规则放 到议程中。如果一条规则有多个模式,那么只有所有的模式同时得到满足时才把 它放到议程中,有些模式被满足还要通过在综合数据库中指定某些没有的事实。 把所有前件得到满足的规则称作是被激活的或者被例化的,多个被激活的规则可 同时在议程中。在这种情况下,推理机必须选择一个规则触发它。推理机不停的 循环工作,重复执行一组任务,直到某莉执行终止的判定标准出现。( 为了避免 无谓的循环,基于规则的专家系统采用了反射方法。即,如果某一规则在同样的 事实上一次又一次被触发,则专家系统不做任何事情) 。 3 2 面向对象的建模 通过对专家系统的描述,我们知道借助专家系统对用户需求进行分析和整 理,通过推理确定企业管理信息系统需求模型的方法可以大大节约系统开发前期 需求获取的时间,也增加了需求信息的准确性。 针对专家系统所捕获的需求信息,如何对企业信息系统进行准确的建模,这 在软件开发中占有很重要的地位,模型的好坏直接会影响信息系统的设计和实 施,好的模型会为系统的成功奠定一个良好的基石,通过面向对象的技术,我们 可以对企业的信息需求进行很好的描述,下面就来介绍一下面向对象的技术。 3 2 。1 面向对象技术的提出 ( 1 ) 面向对象技术的由来 面向对象技术的形成是从面向对象的程序设计语言开始的。面向对象语言的 出现是以6 0 年代末挪威奥斯大学与挪威计算中心共同研制的s i m u i a 语言为标志 武汉理工大学硕士学位论文 的。8 0 年代,以c + + 语言为首的面向对象的语言趋于成熟。c + + 语言,既支持面 向对象的概念,又保留了c 诺言原来的特征,因此被广泛的使用,掀起了面向对 象研究的高潮。1 9 8 6 年,g r a g yb o o c h 首先提出了“面向对象设计”概念。之后, 研究者将面向对象技术应用于软件开发的前期阶段和软硬件领域中,取得了很大 的发展。面向对象技术成为了当前软件领域的主流技术。 面向对象技术是一种与传统软件工程的功能方法完全不同的,以对象为中心 的方法。它不仅是一种程序设计技术,更重要的是体现了一种思维方法。 ( 2 ) 面向对象的概念 面向对象思想的基本出发点是尽可能的按照人类认识世界的方法和思维方 式来分析和解决问题。客观世界是由许多具体事物、抽象的概念和规则等组成。 我们将要研究的事物和概念都称为对象。面向对象的方法是以对象作为基本的元 素。它是分析问题和解决问题的核心。对象可以是具体的客观世界存在的事物, 也可以是抽象的规则、事件。对象具有状态( 属性) 和操作,并将两者封装在对象 的统一体中,具有良好的模块化的特点。 面向对象具有对象的唯一性、分类性、继承性、多态性。每个对象具有唯一 的标识,通过这个标识,找到相应的对象。对象具有多态性。具有相同属性和操 作的对象,可以抽象为类。类是这些对象的抽象描述,而每个对象是它的类的一 个实例。通过在不同程度上运用抽象的原则,可以得到一般的类和特殊的类,特 殊类继承一般类的属性和操作。复杂对象可以用简单对象作为其构成部分,称为 聚合。对象之间的消息通信表达对象之间的动态联系,对象之间的关联表达对象 之间的静态关系。 ( 3 ) 面向对象建模技术 在面向对象的软件开发中,分析阶段的任务就是要构造一个面向对象的需求 分析模型,正因为对象是对真实世界中实体的抽象,因而采用面向对象技术构造 出的需求分析模型,就能更加自然、准确地反映需求,从而为后续工作乃至整个 软件开发奠定一个良好的基础。 从面向对象的角度来看,任何一个需求所规定的功能都是由需求空间中的对 象相互协作来共同完成的。这就是说,在构造分析模型时,首先要找出需求空间 中的对象,分析这些对象所具备的属性和行为,找出这些对象之间的相互关系和 相互作用,最后生成一个面向对象的分析模型。 武汉理工大学硕士学位论文 在对需求进行描述的语句中,常常有一些名词或名词短语,它们在需求中扮 演一定的角色,是需求活动的主体,这些角色相互联系、相互作用共同来完成需 求所规定的功能,这些角色本身同时又包含了需求中的一些数据或信息,我们要 寻找的对象就来源于这些角色:角色在需求中的活动,就是对象所具有的行为: 角色所包含的数据或信息就是对象的属性。上面所提到的角色比较直观,能够直 接在需求描述中找到,还有另外一些角色,它们没有在需求描述语句中显式地给 出,而是需要对需求分析进行分析和综合,进而构造出来。以上所介绍的只是在 需求空阳j 中寻找对象的一些原则和方法,要真正把这项工作做好,很大程度上依 赖于经验。另外,不同的人在构造同一需求模型时,可能有不同的结果,这是允 许的,只要他构造的需求模型能够准确反映需求即可。 需求空间中的对象不是孤立的,它们之间既有分工又有合作,接下来的工作 就是要找出对象之间的关系或相互作用,可以归纳为四种:创建、包含、继承和 联系。如果一个对象的产生和撤消是受另一个对象控制的,则称这两个对象之间 是创建关系。如果一个对象是构成另一个对象的组成部分,则称这两个对象之间 是包含关系。如果一个对象可以通过继承另一个对象来构造,则称这两个对象之 间是继承关系,其中,被继承的对象成为基类对象,新构造的对象称为派生类对 象。在建立需求模型时,继承关系是通过归纳来找出的。面向对象的开发工具都 提供了继承机制。如果两个对象之间有相互作用,则称这两个对象之间是联系关 系,对象之间的相互作用在真实世界中普遍存在。对象之间的相互作用用消息传 送机制来实现。 前面所提到的对象之间的相互作用仅仅发生在两个对象之间。这是一个静态 的、局部的概念,要实现需求中规定的功能,就必须找出对象之间相互作用的有 序集合,正是这一序列的相互作用最终完成了需求中的部分或全部功能,我们把 对象之间相互作用的有序集合称为对象之间的动态联系。在面向对象技术中,对 象之间的相互作用用消息传送来表示。 3 2 2 与传统建模思想的比较 传统的面向过程的系统建模过程是一种顺序的线性过程,这种模型强调开发 中的每一过程的完整性和独立性,后一过程必须在前一过程之后才能进行,这显 1 7 武汉理工大学硕士学位论文 然不符合人们认识世界是一个渐进往复的过程这一客观规律;同时,传统方法以 功能分解为出发点,虽然容易较快地得到早期的系统结构,但只是一种短期行为, 从长远来看,这种行为具有灾难性:当功能发生变化或需求定义有欠缺时,设计 者将面临的是重新设计。而面向对象方法则不同,它以识别“对象”和“对象的 功能”为出发点,通过把问题域作为一系列相互作用的实体进行建模,把整个开 发阶段的每个过程看作是互相交迭的不断深化的过程,从而使得问题空间和求解 空间保持一致。相比较而言,“对象”要稳定得多,即使个别对象发生变化,对 全局造成的影响也小得多,因此,用面向对象的方法开发出的软件,系统易于扩 充和维护。 面向对象之所以能够如此迅速地发展,并渗透到软硬件的各个领域,关键在 于,它与传统软件开发方法不同。与传统方法相比,它具有以下的特点: ( 1 ) 面向对象看待现实世界的方式和现实世界的组织方式是一致的,能够直 接将问
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 项目进度汇报与问题解决方案表
- (正式版)DB15∕T 3262-2023 《混播人工草地放牧利用技术规范》
- (正式版)DB15∕T 3241-2023 《草原瑞香狼毒发生等级划分技术规程》
- (正式版)DB15∕T 3213-2023 《黄河流域西瓜、甜瓜主要病虫害绿色防控与蜜蜂授粉融合技术规程》
- 护理学三基简答题题库及答案
- 医院外科护理考试题库及答案
- 企业财务报告制作标准化指南
- 儿科护理学期末押题题库及答案
- 行业标准化操作指南汇编
- 农业科技园农业技术支持与培训协议
- 西畴殡葬管理办法
- 小学生意外伤害课件
- 银行外包人员管理办法
- 2024年法考主观题刑法真题(回忆版)解析与复习重点
- 数字媒体技术专业教学标准(高等职业教育专科)2025修订
- 妊娠合并心脏病疾病查房
- 消防安全评价管理制度
- 2025至2030年中国二手车金融行业市场行情监测及发展前景研判报告
- 2023年5月7日全国事业单位联考A类《职业能力倾向测验》试题真题答案解析
- 正念心理治疗
- 2025成人高考民法真题及答案
评论
0/150
提交评论