面向本体的需求分析
需求分析范文

需求分析范文
在进行任何项目或产品的开发之前,都需要进行需求分析,以确保最终的成果能够满足用户的需求。
需求分析是项目开发的第一步,也是最关键的一步,它直接关系到项目的成败。
因此,需求分析的过程必须非常细致和全面。
本文将从需求分析的定义、目的、方法和步骤等方面进行详细介绍。
需求分析是指对用户需求进行系统的分析和整理,以明确用户需求的具体内容和实现方式。
它的目的是为了明确项目的目标和范围,以便在后续的开发过程中能够更好地进行规划和设计。
需求分析的过程中,需要充分了解用户的需求和期望,同时也需要考虑到项目的可行性和可实现性,以便在后续的开发过程中能够更好地进行规划和设计。
需求分析的方法和步骤包括:首先,需要收集用户的需求和期望,可以通过访谈、问卷调查、用户反馈等方式进行收集;其次,需要对收集到的需求进行整理和分类,以便更好地理解用户的需求;然后,需要对用户需求进行分析和评估,以确定哪些需求是必须满足的,哪些是可选的;最后,需要将用户需求转化为具体的功能和特性,以便在后续的开发过程中能够更好地进行设计和实现。
在进行需求分析时,需要注意以下几点:首先,需要与用户充分沟通,了解他们的需求和期望;其次,需要考虑项目的可行性和可实现性,以避免出现过高的需求和不切实际的目标;最后,需要将用户需求转化为具体的功能和特性,以便在后续的开发过程中能够更好地进行设计和实现。
总之,需求分析是项目开发过程中非常重要的一环,它直接关系到项目的成败。
只有通过细致和全面的需求分析,才能够确保最终的成果能够满足用户的需求,从而取得项目的成功。
因此,在进行任何项目或产品的开发之前,都需要进行充分的需求分析,以确保项目能够顺利进行并取得成功。
本体构建七步法

本体构建七步法
本体构建七步法是一种常用的本体构建方法,主要包括以下七个步骤:
1.需求分析:对本体构建的目的和应用场景进行分析,明确本体所
需要表示的概念、关系和约束。
2.概念定义:根据需求分析结果,对本体中的概念进行定义和命名。
3.关系定义:根据需求分析结果,对本体中的关系进行定义和命名。
4.模型构建:根据概念定义和关系定义,使用本体语言构建本体模
型。
5.数据维护:在本体模型基础上,维护本体数据,包括实例和知识
表示。
6.验证与评估:对本体进行验证和评估,确保本体模型的正确性和
完整性。
7.应用与更新:将本体应用于具体场景,并持续更新和优化本体。
需求分析怎么写模板

需求分析写作模板需求分析是软件开发过程中至关重要的一环,它是确定软件系统需要满足的需求和约束的过程。
合理的需求分析能够帮助开发团队明确项目目标、规划开发过程、控制项目进度以及最终交付满足用户需求的产品。
下面是一个简单的需求分析写作模板,帮助团队成员规范地撰写需求分析文档。
1. 项目背景项目背景部分主要描述项目的背景信息,包括项目名称、项目目标、项目范围、项目时间表等内容。
需要明确说明项目的背景信息,以便团队成员对项目有一个整体的认识。
2. 需求分析目标需求分析目标部分主要说明本次需求分析的目标和范围,明确需求分析的重点和方向,以便更好地进行后续的工作。
3. 需求概述需求概述部分是对用户需求的一个整体描述,包括用户需求的基本情况、需求的重要性和紧急性等内容。
需要尽可能清晰、全面地描述用户的需求。
4. 功能需求功能需求部分是对系统功能需求的详细描述,包括系统应该具备的功能、功能之间的关系、功能的优先级和实现方式等内容。
需要对每个功能需求进行详细的分析和描述。
5. 非功能需求非功能需求部分是对系统非功能需求的描述,包括性能要求、可靠性要求、安全要求、可用性要求等内容。
需要对每个非功能需求进行详细的分析和描述。
6. 需求确认需求确认部分是对需求的确认和审核,需要与相关人员共同确认需求的准确性和完整性,确保项目的顺利进行。
7. 参考资料•相关资料1•相关资料2•…以上是一个简单的需求分析写作模板,团队成员可以根据项目实际情况进行适当调整,确保需求分析文档的完整性和准确性。
需求分析是项目成功的关键,希望所有团队成员都能够重视需求分析工作,为项目的顺利进行贡献力量。
产品需求分析与产品配置设计

客户需求与建模
客户需求是客户用自己的语言表达的对产品的定制要求。在面向大 规模定制设计中,客户需求是驱动产品开发的直接动力。客户需求是产品 配置设计的最初信息来源,是配置的依据和源头。客户需求的提取、表达、 转化是产品配置设计中最为关键也是最困难的一个环节,它直接关系到产 品设计的成功与否。对客户需求正确描述,建立准确、完备、易于理解的 需求模型是成功实施MC的前提和基础。 。
(1)需求的模糊性 需求的模糊性即不确定性,是指客户对产品提出的定制要求是不明确、不具体的,在需求表达中常采用一些诸如—— 略大于、稍微、较好等具有模棱两可含义的词语。 (2)需求的动态性 需求的动态性是指需求是变化的,一方面,由于客户需求贯穿于产品的全生命周期,同一客户需求在产品的不同阶段 表现为不同的形式。例如,客户提出产品总重量需求,这一要求在总体设计阶段表现为对总体结构方面的考虑,而在 零部件选型阶段则表现为零部件重量方面的考虑。另一方面,由于客户在最初对产品提出定制要求时,大多是出于自 身的偏好和使用习惯,缺乏对产品属性、结构或性能等客观的了解,需求之间存在矛盾,或者随着产品设计的进行, 某些需求与设计要求之间存在矛盾或不能同时满足,这时需要对某个或某些客户需求进行适当的修改或调整,这种情 况下的客户需求也表现为需求的动态性。 (3)需求的多样性 客户需求的多样性是大规模定制生产的一个重要特点,需求的多样性可以从两个角度来理解。从需求的覆盖面角度看, 客户需求对产品的定制要求有内在的和外在的,有设计方面、制造方面、管理方面、以及使用性能方面的等等:从需 求的表现形式角度看,客户需求不仅有自然语言描述形式,而且还有图形、表格、符号等多种表现形式。 (4)需求的优先性 需求的优先性是指需求之间具有重要差异之分,即需求的重要性和满意度是不相同的,不同的需求具有不同优先满足 的区别,有些客户需求是必须满足的(如一些基本的功能需求),有些需求是尽量满足的(如产品的一些性能指标、技术 参数等),有些需求是期望满足的(如客户提出的一些心理上要满足的需求)。
需求分析模板

需求分析模板一、项目背景在进行需求分析之前,我们需要了解项目的背景和目标。
请提供项目的背景信息,包括项目的名称、目的、重要性以及预期的目标。
二、业务需求在这一部分,我们将详细讨论项目的业务需求。
请提供项目的业务需求列表,并对每个需求进行描述和解释。
三、用户需求用户需求是指最终用户或项目的关键利益相关者对系统或产品的期望和要求。
请提供用户需求的列表,并对每个需求进行描述和解释。
四、功能需求功能需求是指软件或系统必须提供的功能和任务。
请列出所有的功能需求,并对每个功能需求进行详细的描述和解释。
五、非功能需求除了功能需求之外,还有一些非功能需求需要考虑。
非功能需求包括性能要求、安全要求、可用性要求等。
请提供所有的非功能需求,并对每个需求进行详细描述和解释。
六、数据需求数据需求是指项目在运行和实施过程中所需的数据。
请提供项目的数据需求列表,并对每个数据需求进行描述和解释。
七、约束和限制项目开发中常常会受到一些约束和限制的影响,例如时间限制、预算限制、技术限制等。
请提供项目的约束和限制,并对每个限制进行详细描述和解释。
八、风险分析在项目进行过程中,可能会面临一些潜在的风险和障碍。
请提供项目的风险分析,并对每个风险进行评估和解释。
九、关键里程碑为了保证项目的进展和达到预期的目标,确定关键的里程碑是非常重要的。
请提供项目的关键里程碑,并对每个里程碑进行描述和解释。
十、参考文献在需求分析过程中,可能会参考一些相关的文献和资料。
请提供参考文献列表,并确保列出的文献是可供参考的。
以上是一个需求分析模板的基本框架,可以根据具体的项目需求进行相应的调整和修改。
希望这个模板能对你的项目有所帮助!。
基于领域本体面向问题的需求分析与领域建模

( 西北 大 学 软件 工程研 究所 , 西 西安 70 2 ) 陕 117
摘 要: 为了鹪决 传 统 的 以应 用领 域 为 目 、 标 以问题解 决 方 案 为 中心 的 需求 分 析 方 法造 成 的 开 发人 员 与 需求 人 员 以及 客
户 三者之 间的误 解 , 需求 分析 不可 再 次使 用进 而导致 系统 开 发效率 低 下 , 户满 意 度低 等 问题 , 中 提 出 了基 于本 体 面 向 客 文 问题 进行 需求分 析 的方法 。阐述 了基 于本 体 面向 问题进 行 需 求分 析 的 必要 性 、 本体 的相 关概 念 和设 计 原则 、 体 的 描述 本
维普资讯
第
卷
20 0
7 年 肯 8期 月
( ) PUTER M TECHNOI AND X Y DEVEL OPM ENT
计算机技术与发展 g 07
基 于领 域本 体 面 向问题 的需 求分析 与领 域建模
语言 以及基 于 L u 建立 领域 本体 的实例 与需 求分 析过 程 , A 并论证 了利用该 方 法可进 一 步提 高需求 分析 的 质量 。 关键 词 : 本体 ; 域本 体 ; 向问题 领 面 中 图分类 号 : P n .2 T 3 5 文献标 识码 : A 文章 编号 :63 2X(07 0 —09 — 4 17 —69 20 )8 0 9 0
o y a d po lm — o ine eui me t nay i,t eae o cp s h rn il fd ina d d srp in l u g ,o fr h o— g rbe n re tdr q r e n sa lss h rltd c n e t ,t ep icpe o e g ecit a e s s n o ng a e fe st ed m a ntlg isa c sn LAU a dt epo eso e urme sa ay i n dd m o tae ha h a e no tlg n d p o e — i o O o y n t euig n n n h rc s fr ie nt n lssa e n rtst tteb sdo n oo ya rblm q s o e t e urme t n lsscn i r v h u ly frq i me t n lss i rn e r ie nsa ay i a mp o et eq ai o e ur d q t e n sa ay i,
项目式学习本体分析

项目式学习本体分析
项目式学习是一种基于个人学习的教育模式,旨在根据学生的学习和发展需求,利用合作学习、多媒体技术等多种教学工具,帮助学生以项目的形式完成特定的任务。
本体分析的概念可以用来解释和反映项目式学习的过程。
本体分析注重对整体概念和内部结构的分析。
它提供了一种方法,将学习中不同的目标、任务、技能等联系起来,提升学习质量。
在项目式学习中,本体分析允许学生运用更复杂的任务,也可以帮助他们更好地理解项目的内容。
首先,学生可以检查目标和任务,并对自己的学习计划做出调整。
其次,学生可以将所学技能应用到实践中。
最后,学生可以通过评价自己的任务完成情况,进而掌握项目学习的全部流程,重新调整自己的学习策略,更好地完成今后的任务。
项目式学习是一种学习方式,它能够增强学生的学习能力,提高学习效果。
与其他学习模式相比,它更能够刺激学生的积极性,促使他们更好地发挥自己的优势,从而获得理想的学习成果。
本体分析可以有效地帮助学生组织信息、安排任务,有效提高学习效果和提高学习能力。
需求变更自动化管理模型与实现

需求变更自动化管理模型与实现郭新峰;马世龙;吕江花;武俊生;邵回祖【摘要】Changes of software requirement are uncontrollable. Requirement change and its chain reactions are the most influential risk factor for the project quality during any stages of software development. Automatical requirement management can minimize the negative impact of requirements change. Automaticity of requirement change management relies on formal level and degree of standardization. Based on ideas of recursion and decomposition, this paper analyzes the requirement analysis method, referred to ROB. ROB is closer to reality. ROB is easily understandable and acceptable. ROB is a requirements modeling approach based resource, organization and business. It makes an improvement on management processes and management organization, designs the storage model by formalizing the requirement as a tree. It achieves the automatical and intelligent requirement change management by modify the tree under certain rules and constraints. In practical applications, the effectiveness of our approach has been indicated with a software tool.%需求变更不可控,需求变更常对软件开发产生严重影响,需求变更管理是控制影响的直接途径。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ISSN1000-9825 Jour na l o f Softw ar e 软件学报2000,11(8):1009~1017面向本体的需求分析X陆汝钤 金芝 陈刚(中国科学院知识处理与人机交互实验室 北京 100080)(中国科学院数学与系统科学研究院数学研究所 北京 100080)(中国科学院管理、决策与信息系统开放实验室 北京 100080)E-mail:{r qlu,zhijin,cg}@math03.m 摘要 提出了一种新的需求分析方法——面向本体的需求分析OO RA(onto lo gy-o rient ed r equir ements analy sis).该方法的主要特点是,用本体作为对象关联的手段,以增强面向对象方法的表达能力.文章首先定义了O OR A的需求模型,然后结合实例讨论了信息系统需求分析中的两种主要的本体类型,最后给出了O OR A 方法的主要步骤.关键词 需求分析,需求重用,本体,信息系统.中图法分类号 T P311面向对象分析在当前需求分析方法中最具代表性.目前,研究者们已经提出了很多成功的方法,如Jaco bso n的O OSE(object-or iented softw ar e eng ineer ing)方法[1]、Rumbaugh的OM T(object mo deling techno log y)方法[2]、Shaler和M ello r的OO SA(o bject-o rient ed system analysis)方法[3]以及Co ad和Y ourdon的O OA(o bject-o rient ed analysis)方法[4]等.这些方法有一个共同点,就是它们都是基于单个对象分析的,正如文献[5]所述,这些方法都是以对象和对象类为中心进行的,其他方面的属性,如对象属性、对象间的关系、对象间的消息传递、对象的用户界面等,则相对处于次要地位.如果从一个更接近于我们所描述问题的角度来分析,不难发现如下基本事实:在一个大型软件工程项目的分析过程中,并不总是对象和对象类在起着首要的作用,有时对象或对象类之间的各种关系显得更为重要.其主要原因是,首先,由于项目和软件本身可能极其庞大和复杂,要确切掌握不同对象或对象类之间的关系比理解单个的对象模块更为困难.我们知道,构成物质的原子只有百余种,但由这些原子构成的分子的种类却无法计数.软件工程师往往需要付出更多的时间和精力来分析对象类之间的关系,而不仅仅是只分析对象本身.其次,从软件重用角度来看,软件开发者的注意力不应被个体对象的具体内容所吸引,而应集中考虑如何利用所获得的大量可重用软件构件去构造新的软件.由此,软件构件之间的关系描述理应受到足够的重视.最后,仅从软件构件的角度考虑软件重用还很不够,软件框架的重用对大型软件开发来说更有价值,这实际上是大粒度软件重用的一种方式.软件框架重用的一个重要方面是软件体系结构的重用.目前已经有许多软件体系结构描述语言(archit ect ur e descr iptio n lang ua ges,简称A DL)[6],A DL的两个主要部分就是构件以及描述构件之间关联的连接器.综上所述,在需求分析过程中,除了需要识别对象或对象类、构造对象层次结构以外,另一个重要的方面就是分析对象之间的其他关系以及对象的组合方式.事实上,几乎所有的面向对象分析方法都已经注意到这一点,它们中的大多数除了能表示对象的类层次结构外,还或多或少地提供了一些手段来表示对象之间的其他关联.如:许多面向对象方法都用association,using,ag gr eg atio n等分别表示对象间的逻辑关联、引用关联和聚簇关联X本文研究得到国家自然科学重点基金(No.69733020)、国家自然科学基金(No.69983010)、国家“九五”重点科技攻关项目基金(No.98-780-01-07-09)、国家863高科技项目基金(No.863-306-ZT02-01-2)和国家教委留学回国人员科研启动基金(No.J9905)资助.作者陆汝钤,1935年生,研究员,博士生导师,中国科学院院士,主要研究领域为人工智能,软件工程.金芝,女,1962年生,博士,副研究员,主要研究领域为人工智能,软件工程.陈刚,1968年生,讲师,主要研究领域为基于知识的软件工程. 本文通讯联系人:陆汝钤,北京100080,中国科学院数学研究所 本文2000-01-17收到原稿,2000-03-17收到修改稿等,这些关系名是相应方法中表示对象关联的词汇或语法.如果我们将从这些词汇到软件设计的映射称为它们的语义,从这些词汇到应用描述的映射称为它们的语用的话,则针对当前的面向对象方法,人们可能会提出如下问题:(1)这些词汇对表示对象关联是否足够,或对某类需求足够?(2)它们的语义是否有明确的定义?(3)它们的语用是否有明确的定义?提出第1个问题的必要性是明显的,足够的词汇保证足够的表达能力.第2个问题中所确定的语义可以规范从需求模型到软件设计的转换.而第3个问题的着眼点在于如何将应用领域描述准确地表达为需求模型.有效地解决这些问题,对于构造完整而准确的需求模型和进行有效的需求分析起着重要的作用.本文提出一种新的需求分析方法——面向本体的需求分析OO RA (o ntolog y -or iented r equir ements analy sis),用以增强面向对象方法的表达能力,满足软件需求分析的要求.本体论最早是一个哲学上的概念,从哲学的意义上说,本体是指关于世界某个方面的一个特定的分类体系,这个体系不依赖于任何特定的语言.近年来,许多知识工程学者应用了这个概念.在知识工程界,最早给出本体概念的是Neches 等人.在文献[7]中,他们将本体定义为“相关专题的基本术语和关系,以及利用这些术语和关系构成该专题的规则的集合”.后来,G ruber在1998年又给出了本体的一个更为流行的定义,即“本体是领域概念模型的显式表示”[8].具体来说,某个领域的本体就是关于该领域的一个公认的概念集,其中的概念含有公认的语义,这些语义通过概念之间的各种关联来体现.本体通过它的概念集及其所处的上下文来刻画概念的内涵.总之,本体强调相关领域的本质概念,同时也强调这些本质概念之间的关联.我们提出的O OR A 方法就是借鉴本体论研究的这种观点,在面向对象方法中引入对象关联,并给出各种关联的语义语用内涵,试图建立一种新型的需求模型,支持需求获取和需求分析的自动化.1 对象和本体的结合观点1.对象是本体的基本元素概念是本体的基本组成元素.在目前许多关于本体的研究中,本体中的概念是无结构的,这些概念不能再分为更细的组成成分.我们在仔细研究了信息系统设计中本体的应用后发现,如果我们不考虑这些概念元素的结构,则本体似乎并不具备足够的描述能力和模型构造能力.但是,如果我们假定本体是一组结构化成分的组合,那么这些成分又将是什么呢?我们对该问题的回答自然而又直接,即它们都具备对象的结构.换句话说,我们把对象视为本体的基本组成成分.这里的对象不仅起到本体内部元素的作用,在信息系统的分析和领域建模中,对象和本体具有同等重要的意义,就像点和弧在图中所起的同等作用一样.观点2.用关系连接对象在面向对象方法中,对象和对象类构成层次结构.它们按一种垂直方式组织,这种垂直的组织方式仅说明元素之间具有父子关系.在现实世界中,对象之间还存在着其他重要的关系.例如,考虑3个对象:人、计算机和文稿,三者之间并不存在任何父子关系,而“人使用计算机撰写文稿”这一情景却隐含着如下关系:人是使用计算机的用户,计算机是撰写文稿的工具,人是文稿的作者.如果把这些关系简单地看作是某一对象的属性显然不太自然.一种较好的办法是用“文稿撰写”之类的动作关系作为本体将所有这3类对象组合起来.因此,关系在组成本体的各对象之间起到了至关重要的作用.用本体连接对象还有另外一个优点.我们曾经谈到,增大对象的粒度是面向对象方法中用来降低软件复杂性的基本技术.对象聚类是增大对象粒度的基本方法.但是,由于简单的对象归并操作没有对这些对象的功能关系和界面作出严格定义,常常导致对象状态的混乱.而用本体连接对象则有可能解决这个问题.这是我们提出用本体连接对象的另一个理由.观点3.本体之间存在继承层次由前述两个观点我们可以得到OO RA 中的本体的一个直观认识,即本体是一个由对象节点和关系节点以及这些节点之间的连线组成的网络.那么在我们的需求分析过程中,是只有一个全局本体,还是存在多个本体但它们同处于一个抽象层次,或存在多个本体且它们按某种抽象原则形成继承层次?我们的回答是第3种情况.不同层次的对象组成的本体形成不同抽象程度的本体,并形成本体间的继承层次,这种结构除了具有模块化、封装—1010—J our nal of S of tw are 软件学报 2000,11(8)性等好处外,对需求分析的最大好处在于,父本体作为对子本体的一种约束,成为需求一致性和完整性检查的主要约束条件.2 OORA 需求模型的结构2.1 对象作为基本元素任何信息系统都具有下面3种基本成分:执行活动的角色(如岗位、机构、部门,或其他同类名词)、角色执行的活动和活动作用的数据.因此,我们定义3种主要的对象.定义1.定义如下3种基本对象类型:(1)角色对象.一个角色是一个社会机构、一个岗位或一个计算机程序,角色对象描述角色可能执行的活动,并指定角色访问特定数据时的权限,其表示范式为角色对象→多个活动+多个(数据,访问权限)对.(2)活动对象.一个活动是一个数据处理过程,或一个抽象的动作,活动对象定义输入数据、输出数据和基于输入数据产生输出数据的处理操作,其表示范式为活动对象→多个输入数据+多个输出数据+单个(多参数)操作.(3)数据对象.一个数据对象是一个结构型数据,它用一组属性来规范这些数据,并定义了在这些数据上可能执行的动作的集合.我们把可以修改的数据对象称为数据池对象,数据库和数据表就属于数据池对象.不能修改的数据对象称为数据工具对象,数据字典和数据仓库则属于数据工具对象.数据对象的表示范式为数据对象→数据结构(带数据)+多个(单参数)活动.2.2 建立对象间的关联定义2.对象之间可能存在如下7种关系:(1)存在于多个角色之间的关系;(2)存在于多个数据之间的关系;(3)存在于多个活动之间的关系;(4)存在于多个角色和多个活动之间的关系;(5)存在于多个角色和多个数据之间的关系;(6)存在于多个数据和多个活动之间的关系;(7)存在于多个角色、活动和数据之间的关系.综合这些关系和信息系统需求的结构,我们提出如下信息系统需求本体中的主要关系.定义3.构成信息系统需求本体的主要关系有:机构关系:Or g (角色集,社会关系,角色集);数据传递关系:T r an(角色,数据集,角色集);活动分解关系:Sub -A ct (活动,活动集);数据处理关系:DP(数据集,活动,数据集);角色处理关系:RP (数据集,角色,活动,数据集);工具处理关系:T P (数据集,数据工具集,活动,数据集);混合处理关系:M P (数据集,角色,数据工具集,活动,数据集).这里,角色集是角色对象的集合,角色指角色对象.数据集是数据对象或工作缓冲区的集合.社会关系是一种标志,它的含义依赖于上下文,并在相应的应用程序环境中定义.活动指活动对象.数据工具集是一组数据工具对象的集合,数据工具指数据工具对象.其中DP,RP ,T P 和M P 都具有数据处理功能.例如,Or g ({主管,部门主管},领导,{部门})是一个机构关系.M P ({报表1,报表2},数据分析员,{数据字典,模糊数据字典},月记帐,{月总结报告})是一个混合处理关系.定义4.本体定义为一个六元组(N ,F ,A ,B ,R ,S ),其中N 是本体的名字;F 是N 的父本体名;A 是本体的—1011—陆汝钤等:面向本体的需求分析属性集合;B 是组成该本体的对象集合;R 是本体网格,由B 中元素之间的关系组成;S 是附加到该本体的方法集.定义5.设r 是一个本体关系,则op (r )代表r 的关系符,ar ity (r )表示r 的参数个数,arity /n (r )表示r 的第n 个参数.定义6.设b 1,b 2是两个对象,则b 1<b 2(或b 2>b 1)表示b 1是b 2的祖先.b 1≤b 2(或b 2≤b 1)表示b 1=b 2或b 1<b 2.在上述六元组的6个元素之中,最重要的是B 和R .因此,如果不致引起二义性,我们可以只用三元组(N ,B ,R )来表示一个本体.2.3 用网络同态概念来定义本体的继承关系定义7.令O 1=(N 1,B 1,R 1)和O 2=(N 2,B 2,R 2)是两个本体.我们说存在一个由O 1到O 2的同态映射M ,如果:(1)映射M 由3个局部映射组成:M (O 1)=M (N 1)∪M (B 1)∪M (R 1),(2)M (N 1)=N 2,(3)M (B 1)=∪{M (e 1)ûe 1∈B 1},其中,对B 1中的每一个元素e 1,有且仅有B 2中的一个元素e 2,满足M (e 1)=e 2≥e 1,(4)M (R 1)=∪{M (r 1)ûr 1∈R 1},其中,对每个关系r 1∈R 1,存在关系r 2∈R 2,满足:(a)op (r 1)=op (r 2),(b)ar ity (r 1)=a rit y(r 2),(c)对i =1到ar ity (r 1),如果ar ity /i (r 1)是一个集合,则对ar ity /i (r 1)中的每一个元素e 1,有且仅有ar ity /i (r 2)中的一个元素e 2,满足M (e 1)=e 2≥e 1,否则,令e 3=arity/i (r 1),e 4=ar it y/i (r 2),则有M (e 3)=e 4≥e 3.命题1.令O 1,O 2,O 3是3个本体,如果存在一个从O 1到O 2的同态映射M 1和从O 2到O 3的同态映射M 2,那么组合M 2(M 1)是从O 1到O 3的一个同态映射.证明:结论明显成立.定义8.令O 1=(N 1,F 1,A 1,B 1,R 1,S 1)和O 2=(N 2,F 2,A 2,B 2,R 2,S 2)是两个本体.我们说O 1是O 2的父本体(或O 2是O 1的正则子本体),如果:(1)F 2=N 1,(2)A 1是A 2的子集,(3)S 1是S 2的子集,并且(4)存在一个从(N 1,B 1,R 1)到(N 2,B 2,R 2)的同态映射.当然,在某些特定环境中,子本体并不需要完全继承父本体内的所有属性.这意味着,子本体可能与父本体在同一属性上的取值不同;同样,子本体与父本体在执行方法上也可以有所不同.这些特征超出本文讨论的范围.3 静态本体和动态本体下面给出两个典型的O O RA 分析实例.首先,让我们考虑一个医院管理信息系统的例子.该系统包含一个数据资源集,它由医院人事数据库、病人库、传染病人数据仓库、药品库所组成.为医学研究方便起见,该系统采用数据过滤和数据采掘等技术,从原始数据库中获取大量历史数据建立了一个数据仓库.例如,数据仓库记录了所有失败的外科手术案例和所有复杂但仍然成功的治疗案例等.该系统还能提供大量的数据表和视图数据,供医生、护士和管理人员使用,例如,记录目前需要特别护理的病人数据表、记录重要病人和严重病人病情转变情况表等.该系统还可提供一些数据表和视图供院外用户使用.例如,提供给医药卫生管理部门的传染病案例和传染源分布的数据表.上述的数据表和视图—1012—J our nal of S of tw are 软件学报 2000,11(8)采用各种不同的表现形式,如图表和柱状图.该系统通过多种不同的用户界面将数据输入到数据源中,包括图形方式输入、数据扫描输入和交互式输入等.还有大量的小应用程序(applets)用于特定问题的处理,如专门用于数字统计的计算程序、数据采掘程序、例外处理程序等.将上述信息组织成O O RA 中的一个本体,则得到如下结构:对象:源数据元素(data ): (1)医院人事库,(2)病人库,(3)药品库,(4)传染病人库,(5)外科手术库,生成和保存数据元素(data ):(6)失败外科手术案例数据仓库,(7)成功治愈复杂疾病案例数据仓库,现场数据元素(data ):(8)特别护理病人表,(9)重要病人或病情严重病人表,(10)当前传染病例及其区域分布表,数据分析元素(ro le ):(11)数据统计包,(12)数据仓库生成器,(13)数据挖掘程序,(14)实时例外处理程序,外部支持元素(too l ):(15)数据字典,(16)模糊概念词典,外部通道(ro le ):(17)数据输入界面,(18)图形输入界面,(19)数据表输出,(20)图形输出,活动(a ct ivity ):(21)数据录入,(22)数据查询,(23)案例生成.关系:(a )输入: RP ({},(17),(21),{(1),(2),(3),(4),(5)}),(b)产生:RP ({(2),(5)},(12),(23),{(6)}),(c)产生:RP ({(2),(3),(5)},(12),(23),{(7)}),(d)输出:DP ({(2),(5)},(22),{(8),(9)}),(e )输出:DP ({(3),(4)},(22),{(10)}).以上是医院管理信息系统中的一个本体的简化描述,许多细节诸如元素的属性、关系的属性、数据库的操作和系统的用户等均被忽略.现在让我们考虑另一种类型的本体:医院医疗设备购买本体.这个从申请购买医疗设备到该设备到达,并在医院的财产清单上登记注册的过程,在O ORA 中可以表示为如下本体:对象:角色(r o le ): (1)申请者,(2)医院领导,(3)会计师,(4)投标者,(5)评价者,现场数据元素(data ):(6)购买设备的预算报告,源数据元素(data ):(7)医院的现金帐务,(8)医院本年度预算,数据分析元素(ro le ):(9)配置优化器,—1013—陆汝钤等:面向本体的需求分析支持型元素(data ):(10)设备生产者企业清单,(11)医疗设备价格清单,输入数据(data ):(12)申请报告,(13)签字批复,收到数据(data ):(14)销售者标书,输出数据(data ):(15)医疗设备,发送数据(data ):(16)宣布中标者名单,活动(a ct ivity ):(17)数据录入,(18)设备优化.工作流:(a )输入: RP ({},(1),(17),{(12)}).(b)传输:T r an ((1),{(12)},{(9)}).(c )产生:M P ({(12)},(9),{(11)},(18),{(6)}).(d )传输:T r an ((9),{(6)},{(1)}).(e )传输:T r an ((1),{(6),(7)},{(2)}).(f )总结:RP ({(6),(7)},(2),(17),{(13)}).上述第1个例子描述了数据源之间的数据流关系,第2个例子描述了数据处理过程中的工作流关系,这些都是O OR A 方法所关注的主要本体类型.我们称第1种本体为静态本体(static ontolo gy ),称第2种本体为动态本体(dynamic o ntolog y ).它们共同构成OO RA 本体簇的基础.4 OORA 方法4.1 面向最终用户和自动开发的策略一般地,软件需求分析由软件工程师来完成.但是,他们通常都不是领域专家,因此,要让他们理解应用领域的全部细节比较困难.另一方面,领域专家也不熟悉软件工程的原理,他们提供的需求定义常常不完全,并且经常要作变更.由于缺少共同语言,这两类人之间的合作都不很成功.结果是导致基于这种需求的软件不能付诸实践.如果我们能开发出一种让软件工程师和最终用户都可以接受的语言,那么它将在消除这两类人之间的通信障碍方面起到重要作用.更进一步地,如果我们能找到一种可以使这种语言可执行的方法,比如,有一种方法如果能够把用这种语言写出来的任何代码转换成一个可执行的信息系统,那么应用开发的过程几乎可以自动化.这种自动方法实现的关键是开发出一个领域知识库,它支持把上面提到的定义转换成一个可以运行的信息系统.O O RA 就是基于这个观点提出来的,它不仅面向软件工程师,而且还面向最终用户.4.2 OORA 方法的主要步骤基于上述总体策略,OO RA 分4个阶段完成.第1阶段.用一种类自然语言BI DL (business info rmat ion descr iptio n lang uag e)描述企业事务.第2阶段.确认隐含在BI DL 文本中的本体和对象.第3阶段.将这些本体和对象转换成另一种语言Ononet (ontolo gy and object -or iented netw or k),得到用O no net 书写的需求预定义.第4阶段.在采用Ono net 作为知识表示形式的领域本体知识库中搜索相关的知识,并和前面的需求预定义合并,得到完整的需求定义.注意,完整性和一致性检查在O ORA 中没有形成一个分立的阶段,这是因为:(1)在开发/维护/演化阶段,领域本体知识库的一致性和完整性已经得到了保证;(2)合并知识的完整性和一致性检查包含在合并过程中.4.3 BIDL 语言BI DL 是一种类自然语言.先解释一下类自然语言的概念,这种语言有3个主要特征.(1)它非常接近于自—1014—J our nal of S of tw are 软件学报 2000,11(8)然语言,因此可以将它看作是中文自然语言的一个子集;(2)它不包含软件工程学和软件技术的术语,所以领域专家们可以很容易地用它来描述他们的应用知识;(3)它是一种可被编译器分析和理解的形式语言.以下是BIDL 语言的一个简要介绍.每个BIDL 程序描述一个具体应用的情况,它被组织成如下7段:(1)企业的总体特性,(2)企业要处理的任务,(3)企业内外部的职权范围,(4)和企业相关的外部信息,(5)企业的信息结构,(6)企业的决策策略,(7)企业的背景和统计数据.下面,我们以“地方税务局”信息管理系统为例来示例BIDL 的特征:(1)地方税务局由市政府领导.(2)地方税务局的任务包括所得税管理、消费税管理、运输执照税管理.(3)地方税务局的领导负责整个地区的地方税务管理.(4)对每个税种,要维护一个全地区的收税数据库.(5)运输执照税数据库包括3个表:年度小汽车执照税务表、年度卡车执照税务表、年度自行车执照税务表.(6)每月,打印数据表给没有及时交税的公司,打印数据表给各交税的公司.(7)每迟交税1个月增加滞纳税款罚金百分之一.(8)整个地区有137家高科技公司,他们可以免税30%.BI DL 语句的语法规定了一套关键字(上面给出的例子中用黑体和仿宋体表示).关键字分为两级:系统级关键字和领域级关键字.前者用常规的黑体打印,而后者用仿宋体字.有关BIDL 语言的更详细的描述参见文献[9].4.4 本体和对象的识别需求的原始信息可以通过与专家对话或从现有文字材料中获取.修改作为需求分析起点的BIDL 文本就可以较容易地重写原始信息,利用类自然语言极大地简化了我们的工作.对BIDL 文本的面向本体分析可以用自顶向下或自底向上或两者混用的方法.自顶向下分析首先标识出本体集,再找出它们的构件——对象;自底向上分析首先标识的是对象,再根据本体的概念将它们分类;当两种方法混用时,确定对象(类)和本体是交互进行的.算法1.以“活动”为中心的自顶向下方法.(1)标识出领域最顶层的本体概念,即顶级本体;(2)标识出领域中所有的活动并构成一个集合,记为A ct ;(3)标识出A ct 集合中的所有父-子关系,并形成A ct 中的继承层次;(4)如果某个活动x 可以被分解成子活动,那么认为x 是一个本体并且把它的所有子活动加入到A ct 中;(5)如果x 不能被分解成子活动,那么认为x 是一个活动对象;(6)对A ct 中的每一个活动,确定活动的作用者;对A ct 中的每一个活动对象,确定活动操作的数据.例:(1)语句“x 由y 领导”蕴含:存在一个表示机构关系的静态本体,x 和y 都属于这个本体;(2)语句“x 的任务包括y ,z ,...”蕴含:存在一个数据处理类型的动态本体x ,同时蕴含:在y ,z ,...和x 之间存在着部分-整体关系;(3)语句“x 被分为y ,z ,...”蕴含:在x 和y ,z ,...之间存在着父-子关系;(4)如果实体y 出现在语句“x 的任务包括y ,z ,...”中,但是不存在语句“y 的任务包括u ,v ,...”,蕴含:y 是一个活动对象.—1015—陆汝钤等:面向本体的需求分析算法2.以“角色”为中心的自底向上方法.(1)标识出所有文本中提及的角色,构造一个R ol 集;(2)对Rol 集中的每一角色x ,找出所有由这个角色操作的活动,构造集合A ct (x );(3)act 是A ct (x )中的一个活动,如果act 不可分解,那么认为它是一个活动对象,否则是一个本体,将其所有子活动加入A ct (x )中;(4)如果A ct (x )中的几个活动可以组成一个更大的活动,那么为这些活动创建一个本体,加入A ct (x )中;(5)合并所有的活动集构成一个集合,记为A ct ;(6)标识出A ct 集合中的所有父-子关系,并形成A ct 的继承层次;(7)对A ct 中的每一个活动对象,确定活动操作的数据.4.5 Ononet 语言Ononet 语言是一种综合表示本体和对象的形式化语言.在这种语言中,对本体和对象分别给出了明确的定义.对象定义与面向对象语言中的对象定义基本一致,只是增加了指向它从属的本体的指针,这些指针在参数(p ar ameter )部分以如下形式给出定义:Par ameter -of (r 1:o n 1,r 2:on 2,...,r n :on n )这里,o n i 是对象从属的本体的名称,r i 是对象在相应本体中的作用.本体定义在名称、父类、属性、方法上与对象定义基本一致,但有两个主要的区别.(1)本体只包含指向它所联系的对象的指针,表示为如下形式:Par ameter -of (r 1:o b 1,r 2:ob 2,...,r n :ob n )这里,ob i 是本体联系的对象的名称,r i 是对象在这个本体中的作用.(2)Ononet 是一个本体网络,它描述了对象如何通过本体互相联系.Ononet 中关系的表示已在第2节给出,它的工作机制也已在第3节给出详细的讨论.5 结 论我们在90年代初就开始着手做PR OM I S(pro tot yping m anag ement info rmation systems )项目[9~12],其主要目的是在领域分析和领域模拟的基础上自动生成信息系统.在P RO M IS 中,我们主要依靠两种类型的知识,即软件工程知识和领域知识.除这两类知识外,类自然语言BID L 是该项目的一个主要特点,该语言不包含软件工程方面的专业术语,并且十分接近于自然语言表达方式,任何一个没有计算机编程经验的领域专家都可以用它来描述有关应用的具体信息.另一方面,用这种语言编写的程序(实际上是一个文本)可以像通常的计算机程序一样被理解和编译,整个过程得到上述两类知识的支持,编译的结果是一个可在Client /Serv er 环境下直接运行的信息系统.基于以上理由,我们称支持上述整个过程的方法为K ISSM E 方法(kno w ledge intensive softw ar e system manufacture eng ineering )[13].本文进一步提出结合面向对象和面向本体的技术.综合分析现有的需求分析方法,可以发现两种基本的模式:以控制流为中心的需求分析和以数据流为中心的需求分析.前者的典型代表是Jackson 方法,而面向对象方法恰恰是后者的代表.这两种方法到底孰优孰劣还没有定论.本文提出的O O RA 方法试图将上述两种方法结合到一个模式中,希望能综合利用这两种方法的优点.致谢 我们感谢杨芙清教授和她的青鸟软件工程组对PR OM IS 项目的有力支持.我们也感谢李师贤教授和他的工作小组与我们的成功合作.参考文献1 J acobson I,Chris ters on M ,Joss on P e t al .Object-Oriented Softw are Engineering:A Use Case Driven Approach.New York :Addis on-Wesley Pu blis hing Company,19922 Ru mbaugh J,Blah a M ,Premerlani W et al .Object-Orien ted M od elin g and Des ign.Eng lew ood C liffs ,NJ:Pr entice Hall,Inc.,1991—1016—J our nal of S of tw are 软件学报 2000,11(8)。