建模软件

2024-09-01

建模软件(精选10篇)

建模软件 篇1

大量研究表明,系统的异构性、系统的扩展及系统的分布性引起了面向对象的分布式系统访问控制策略可管理性差。软件系统建模人们习惯于系统需求、结构、部署建模,而把安全作为系统建立后的补充;也因为如此,使得系统的安全扩充难、集成难,管理难。

为了解决上述问题,软件系统在进行通常功能建模的过程中加入相应的安全建模,就能使软件系统的安全性能大大提高。图1[1]描述的是系统安全分析、设计与通常系统UML建模过程的集成。

1 XACML

可扩展访问控制标记语言(Extensible Access Control Markup Language,XACML)是OASIAS制定的一种新的标记语言,它承诺可以使策略管理和访问决策标准化。作为一个OASIS标准,XACML定义了一种通用的用于保护资源的策略语言和一种访问决策语言可以取代各种信息访问控制的专有方法。

图2描述了XACML的体系结构和访问控制实施过程。在XACML中,访问请求首先到达策略执行点(policy enforcement point,PEP),PEP创建一个XACML请求并发送到策略决策点(policy decision point,PDP),后者评估请求并返回一个响应,该响应可以是允许访问的,也可以是拒绝访问的。PDP评估请求中的相关策略和规则后会做出授权决策。PDP需要向策略访问点(policy administration point,PAP)获得策略,PDP做出的授权决策被发送到PEP,PEP履行义务,并根据PDP发送的授权决策允许或拒绝访问[2]。

下面以学生成绩管理系统为例,用基于VBAC[1]模型来说明系统开发和安全需求建模,以及访问控制策略的生成。

2 软件系统建模以及安全建模集成

VBAC中的角色是较粗粒度的任务的抽象,表示的是一系列的功能[1]。VBAC的角色对应于UML中的参与者[1]。图3的用例图中定义三个角色:Student、Teacher和Administrator。

图3中Administrator继承了Teacher,Teacher能够访问用例addGrade。按继承的语义,Administrator也可以访问用例addGrade。但是从安全要求出发,这种访问不可行的,系统要求只有Teacher有这个权利访问addGrade。因此,对于Administrator,addGrade就是禁用用例。为了标识禁用用例,扩展角色和用例之间的关联的<>为<>。带有<>的关联称之为禁用关联,指的是未被授权的访问,而这些未被授权的访问必须被阻止。

系统开发者对系统的安全建模是通过用例模型中所描述的角色和用例之间的授权关系来表示。这里扩充用例图中的注释,以一种高层的、非形式的方式来描述系统中的角色访问权限。图4是加入安全建模的系统用例图,用例addReview对于Administrator是禁用用例,在Teacher与addGrade之间的关联上的注释中就能体现,同时Administrator与addGrade之间的关联的<>扩展为<>。

3 生成XACML规范的访问控制策略

使用XACML提供的策略语言来描述read Grade所形成的访问控制策略。

假设现在有这样一个请求:a user named zhansainan in the"PLA.edu.cn"namespace want to read his grade形成的request contex如下:

PEP把这个request发送给PDP,PDP对这个访问请求通过现有的访问策略来决定该request是否在现有的访问策略范围内,然后给出一个response。通过sun公司XACML Implementation提供的simplePDP.java这个文件,执行结果如下:

也就是说PDP根据现有的策略,同意了这个访问请求。实事上,subject,resource以及action都是和policy是匹配的。

4 结论

通过扩充UML图素、引入VBAC描述角色与授权之间的关联,生成XACML描述的访问控制策略,使软件系统UML建模与系统安全建模集成。

参考文献

[1]Brose G,koch M,Lohr K P.Integrating Access Control Design into the Software Development Process[C].Proc Of6th International Con-ference on Integrated Design and Process Technology(IDPT),2002.

[2]XACML规范[EB/OL].http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xacml.

建模软件 篇2

自2011年公司推广利用Revit软件建模进行BIM信息化管理已经有1年多时间,在此过程中我陆陆续续的参与了一些结构建模,在建模过程中遇到了很多麻烦,通过公司多次的培训、培训老师的过程指导以及领导、同事的帮助,这些麻烦也都一点一点解决,通过这些经历我对结构建模有着自己一点心得体会,希望我的这点体会能够给那些刚开始接触Revit软件的同事带来一点帮助,同时也希望领导和同事多提宝贵经验,下面个人就Revit软件建模谈几点自己的体会。

一、结构建模前,首先要做好准备工作,收集好建模需要的全部资料(如:建筑、结构施工图纸,设计变更图纸,项目总进度计划,项目总体施工部署)。

二、对于无法拆分为多个单体的中、大型综合建筑项目一定要使用工作集。Revit软件本身对电脑的要求配置很高,使用工作集以后能够将已建好的模型根据自己的需要在平、立、剖面视图或者三维视图里面任意的隐蔽,这样能够很大程度地减少电脑内存的占用,从而加速软件的使用速度。如果不用工作集除了画图过程中电脑会很卡甚至频繁出现死机以外,而且建出来的模型的结构构件没有系统性,无法拆分,模型的利用率也就大大降低。

三、结构建模创建项目工作集时,要根据工程的施工部署、总体进度计划综合考虑各种因素合理创建工作集。建议工作集的划分尽可能地细化为好,工作集的细化有如下几点好处:1)方便修改,不易发生混淆;2)方便结构模型的可视化管理,将结构模型逐层逐块分解,帮助参施人员更好的理解;3)Revit结构模型导出成Naviswoks文件时,方便在Naviswoks软件中对构件贴材质;4)工作集如果按照进度计划进行创建,运用Naviswoks软件进行建造过程动态施工模拟时,直接将Project进度计划文件直接导入就可以,从而避免重新定义结构树,提高工作的效率。

四、结构建模时,墙、柱、梁、板等构件的命名要严格按照图纸上面的标注进行命名(构件编号、楼层号、尺寸),这样命名可以让三维模型和二位图纸一一对应,在施工过程中图纸变更方便修改,另外方便材料统计,利用Revit软件导出来的材料清单才能和现场实际的清单对应,从而对实际的施工起到真正的指导作用。

建模软件 篇3

关键词:软件过程;系统动力学;建模;仿真

引言

如今软件所扮演的角色越来越重要,而与此同时也伴随着相关的许多问题:如费用超支、进度延期、质量低下等。这迫使人们对软件开发的关注点从软件设计开发的技术方面过渡到对技术和管理两方面并重。软件过程已经成为软件工程学中一个研究热点。研究表明软件工程的两大目标:减少费用和提高软件质量,都在很大程度上取决于软件过程的质量。

在现实开发中,软件系统的复杂性通常有着各种形式,主要表现为:系统不确定性和随机性、复杂的动态行为和反馈机制。过程的变更通常耗费巨大,而且后果对软件开发组织的影响很大。因此,采用一些合适的方法和技术来辅助用户尤为重要。软件过程建模和仿真就是其中一种比较合适的方案。软件建模有着多种方法,目前比较常用的是类似于工作流系统的针对软件开发过程分阶段进行的离散性建模方法。这种方法有其优点,但难以表达例如开发人员的经验、项目进度带来的压力、连续加班的疲劳程度等一直变化着的因素,以及这些相互关联的因素之间的因果关系和反馈回路对软件开发结果的影响。例如,项目进度的落后会增加开发人员的压力,激励他们提高生产率,项目组可能会选择加班以希望赶上进度。高压力下的加班一般会提高单位时间内的产量,但同时也会增加人员的疲劳程度,这样很有可能增加出错率,最终导致质量保证工作和返工的增加,并且当疲劳程度到达一定时候将降低生产率,最终很有可能赶不上进度。软件开发中这些经常被忽略的软因素对项目的成败有着重要影响,系统动力学作为一种连续性建模方法,能很好地解决这些问题。

1软件过程建模与仿真

软件过程可以被定义为“针对构思、开发、部署和维护软件产品的一系列相关的政策、组织结构、技术、程序和工件”。软件开发过程是一个复杂的动态系统,有着巨大的结构复杂度和规模。这些复杂性促成了系统的一些违背直觉的行为,使得系统行为难以靠人的经验来精确评价。这些系统有一些共同特性,比如有多个相互关联的组件构成,表现出复杂的动态行为和反馈回路,组件间的非线性关系和软数据操作。

软件开发涉及到管理相关的(如:人力资源,预算,调度,计划和控制等)和生产相关的(如:软件设计、编码、测试、验证和确认等)众多因素,比如:劳动力量,预算,项目完成成绩,人员生产率,产生的错误数,检测到的错误数,可供雇佣的劳动力数量等。这些变量相互影响,形成互动和反馈循环。软件过程建模是经常采用的一种基本手段。模型是现实世界或者概念化的复杂系统的一种抽象,通过减少或者去除不影响相关行为的细节,它设用来展示实际系统的主要特性。结合过程模型,应用计算机仿真技术来进行软件过程研究有着如下优势:

(1)大多数复杂的、现实世界的系统都存在众多关系复杂的元素,难以光靠一个不能运行的模型来表达并用以进行分析。而仿真是一种可行的研究方法。

(2)仿真允许研究者去估计实际系统在一些假设的操作环境下的性能。

(3)能够通过仿真对多种候选方法进行对比,以决定哪种能更好地符合需求。

(4)在仿真中,研究人员能够比真实试验更好地控制实验条件。

(5)仿真允许研究人员以较短的时间去研究一个现实中需要很长时间来完成的事情。

基于建模的目标不同,应该根据各种建模方法的特点来采用不同的建模技术进行软件过程研究。有时候根据建模需求并不需要关注每一个实体的每一个属性,而是要能够简单清晰地观察某些因素对系统层次上的影响,辅助管理者在整体层面上对项目做出决策。例如,连续型仿真建模方法就适合于策略分析、初始估算、长期趋势、高层(全局)视角观测。系统动力学就是一种典型的连续型建模方法。

2系统动力学方法及其应用实例

2.1系统动力学方法

系统动力学方法由MIT的Forrester开发,是一种针对强调系统模型结构特性的复杂问题解决之道。系统动力学主要依赖两种技术来构建模型:一是因果循环图(causal loop diagram),通过原因和结果关系来概念化系统,使得反馈回路得以显现。二是流图(now diagram),采用流(flow)、流率(flow rate)、存量(stock)、水平(Ievel)、辅助变量(auxiliary),常量(constant)和延迟(delay)等来表达系统。存量表示可以随着时间累计或者消耗的元素;水平表示存量在某个给定时间点上的元素数量;流率描述存量的变化。系统动力学是采用连续的时间模拟方法,在模拟中,时间被划分成预先设定好的时间间隔。模型变量在每个时间间隔的结束时计算,随着时间调整它们的行为。例如,在软件项目中,经验被认为是影响生产率的一个重要因素,经验水平值随着项目进展不断提高,同时,疲劳程度、进度压力将影响到生产率,但可能会起反作用,系统动力学方法连续模拟这些变量的相互作用,进行生产率的动态估算。

2.2应用实例:Brooks法则

在软件工程领域,有一个著名的Brooks法则,即在进度落后的项目中雇用新手加入以希望赶上进度,结果使得项目进度更加落后。下面我们将通过系统动力学模型和仿真来研究增加人手对生产率、总人月数和项目持续时间的影响。

建模首先要对问题域了解清楚,找出系统中的主要组成和因果结构关系。图1是因果关系图。一旦项目经理发现项目进度落后,积压增加,就开始招聘新员工,增加员工数量。员工数量的增加带来的直接影响是提高生产率以及通信和培训的代价,而通信和培训的代价的增加又会直接导致生产率的降低。生产率的提高会加大进度,减少项目积压。通过图1的因果关系图的分析,我们会发现众多元素形成一个反馈循环,增加员工对生产率的影响既有积极的也有消极的影响,因此难以直接通过定性分析来得出结论,结果如何还需要通过仿真的定量数据来说明。

图2是采用系统动力学建模仿真工具PowerSim建立的Brooks法则的系统动力学模型。需求会逐步被开发成产品,所以随着时间流逝,需求将减少而已经开发的软件数量不断增加。在本模型中,软件生产效率由多个因素共同决定,其中包括标准生产效率、通信损耗和开发人员的数量。开发人员的总数=新人员数量+有经验人员数量一负责培训新人员的有经验人员数量。通讯损耗为总人数的一个非线性函数,这里采用Abdel-Hamid模型中的数据(0.6*人数n的平方)。另外还假定一个有经验

人员可以培训4个新员工,training overhead取值为25%。Assimilation delay表示—个新员工培训为能胜任工作的有经验人员的平均时间为20天。标准生产效率(Nominal productivity)为1,表示每把一个需求任务转化为软件产品需要1个标准化人天。在本模型中,新员工的生产效率为标准生产效率的0.8倍,而有经验员工的生产效率为标准生产效率的1.2倍。

在我们的仿真运行中,设定初始条件为20个有经验员工去开发5000个需求任务的项目,结果显示为图3、图4中的reference曲线。总时间需要278天,总共耗费5500人天,生产效率为一条平行直线,值为18.24任务/天。

假设项目经理在开发过程中想加快项目进度,在100天的时候开始增加10名新的开发人员,仿真结果显示为图3、图4中的current曲线。总时间反而需要299天,总共耗费7870人天,平均生产效率曲线在100天时有个显著下降,然后再逐步上升,最后在为16.56任务/天时达到稳定。从结果对比中我们不难看出由于急剧增加的通讯损耗和培训新员工而占用有经验员工的正常开发时间,导致生产效率的下降。结果是项目进度并没有提前,而开发费用却急剧增加了。

图3和图4只是显示了模型仿真运行的某一个场景,反映了在某些情况下Brooks法则的正确性。事实上我们还可以通过调整增加人员的数量和进入时间来预测其他场景下的项目开发结果,从而选择相对较优的一个。比如,如果在100天的时候增加5个人,总时间能稍微较少一点,需要275天,但共耗费需要6295人天。

上面描述的Brooks法则模型只是一个经过简化的模型,但还是能够比较好地说明增加新开发人员对项目的影响。更符合实际软件开发过程的模型还需要进一步细化。例如,新人员开发出来的产品其缺陷率往往比有经验人员开发出来的要高,这样将增加项目返工的工作量。当然还有如前面提到过的进度压力、质量保证手段等其他因素的影响。

3基于系统动力学的软件过程相关模型

3.1 AbdeI-Hamid模型

Abdel-Hamid模型是把系统动力学运用到软件工程领域的第一个系统比较完备的模型,它的目标是研究项目管理政策和活动在软件开发中的作用。Abdel-Hamid模型被划分为4个主要子系统,包括人力资源管理、软件生产、项目计划和控制。人力资源子系统针对软件开发人员,其管理内容包括人员雇佣、解雇、人员流动以及培训。软件生产子系统为不同的开发活动分配可用的开发人员,比如培训、设计、编码、测试、返工和质量保证。该子系统还处理团队动机、开发人员疲劳程度、生产率消耗因素,比如通信和返工等。软件控制子系统测量软件生产活动,描述针对这些测量的管理措施。该子系统控制加班时间,进度压力和资金耗费等。软件计划子系统提供软件项目的初始化参数值,比如项目规模、初始团队规模、预期结束时间等。该子系统同样控制着高层管理人员对雇佣新员工的意愿等。

通过对模型仿真运行结果的研究,Abdel-Hamid等人在项目花费、进度估算、质量保证的经济性质,和项目人员管理等方面得出了很多有趣的结论,例如:

(1)在软件项目估算中更精确的估算,结果不一定会更好,因为不论原始估算进度如何,进度总是趋向于超过预计的。

(2)采用类比的方法来进行软件估算通常使得进度比本来所需要的要长。

(3)坚持过紧的进度会因劳动力的原因而增加费用。

3.2软件过程领域中的其他应用模型

基于系统动力学的建模和仿真已经被成功应用到很多领域,但在软件工程领域还没有得到广泛应用。其主要原因为相对物理系统来说,人和组织行为更难以精确建模,本节将从不同的应用方向介绍相关研究。

项目管理项目估算是软件开发管理的一个必须的环节,而且估算对项目的开展有着重要影响。基于系统动力学的项目管理由于考虑到了过程的动态性,通常能够比一般基于统计历史数据的估算模型要更精确合理。Dynamic COCOMO就是在COCOMO模型的基础上提出的结合系统动力学的估算模型。在项目进度控制方面,结合系统动力学的模型能够更好地考虑到任务之间的相关性、有限的资源和可能的返工循环带来的延迟,因此比传统的项目管理方法更能反映现状。

教育培训由于组织系统中的各种因素之间存在复杂的关联,经常会遇到一些违背直觉的现象。遇到问题如果只是简单地采取一些应对手段通常并不能取得预期效果,Brooks法则就是一个很好的例子。一般的教育方法很难说清问题本质原因,而利用仿真模型则可以进行有效的阐明。基于系统动力学仿真模型的教育培训还能使相关人员参与到仿真的软件开发活动中,去分析深层次原因。通过更改和设置不同参数,如雇佣率等来研究不同方法的结果,增强决策支持的能力。另外借助模型还能实现分布式培训,增强凝聚力和培训效果,节约费用。

风险管理项目通常会因为需求变更、人员变动、资金削减等原因而显得很脆弱。基于系统动力学的仿真有助于在项目早期识别风险,通过定量的预测决策变化带来的后果,能够帮助设计出更客观、低风险的策略。

过程改进在传统方法中,改变或者新增一个过程主要由操作经验决定。这种方式通常费用很高而且风险很大。建模仿真可以在一定程度上预见一个过程的运行状态。这种洞察力能够帮助过程设计者评估候选方案。这种基于数据的客观方法通常比主观评价方法更具有说服力。

开发方法系统动力学仿真建模还被运用到辅助验证新的开发方法论的有效性中。比如为极限编程Xp的开发过程建模,被用来研究采用Xp方法时需求变更带来的费用变化。

4结束语

软件开发是一个复杂的过程,采用系统动力学方法来对软件过程进行建模能很好地描述各个组成要素问的动态关联,尤其是对传统建模方法难以精确描述的软性因素,它以一种连续的方式从定性和定量两个方面对软件过程进行建模和仿真。因此系统动力学对软件过程的多个领域都能提供有效的策略支持。但该方法还不够成熟,在以下各方面还需要做进一步的研究。 工业数据分析与模型验证。建模和仿真的有效性主要取决于模型的有效性。组织模型需要处理人和其他难以量化的问题;不仅收集数据困难,而且这些数据的重现性也难以得到保证;模型只是现实世界的一种简化,因此它不可能完全和实际情况相一致。对已有工业数据进行分析,来验证模型是一个值得关注的课题。

数控车削仿真加工建模与软件实现 篇4

数控加工广泛应用于产品制造领域, 数控仿真也得到了广泛应用, 相对于传统的NC程序检验方法, 数控加工仿真更加安全、有效。它根据实际数控机床切削加工过程, 实现了系统的可视化建模仿真, 形象、逼真地模拟切削加工的全过程, 直观地显示切削过程中可能遇到的问题, 并通过反复修改、测试, 最终完成数控程序的编写与数控机床的调试。而数控切削仿真加工数学模型的构建成为系统实现仿真功能的关键和基础。

2 车削仿真加工模型的构建

仿真系统的车削加工模型由工件 (毛坯) 安装, 卡盘、顶尖装夹, 刀具装夹, 刀具车削等模型构成, 它们的数学模型结构如图1所示。

车削加工模型的数据结构是建立在VB的Picture Box控件Pic之中, 以Pic (left, top) 作为第一坐标系 (X1, Z1) 的坐标原点 (0, 0) ;系统加工环境建立在Picture Box控件Picture2中, 以Picture2 (left, top) 作为第二坐标系 (X1, Z2) 的坐标原点 (0, 0) , 第二坐标系原点位于第一坐标系坐标 (1200, 3400-50*D/2) 处, 它是一动点, 这样可以保持工件模型的轴心线始终穿过第一坐标系坐标点 (1200, 3400) , 从而固定工件模型的装夹与加工位置。工件模型建立在Picture4中, 其坐标 (left, top) 与Picture2 (left, top) 一致, 有利于工件、刀架、卡盘、刀具等相互关联的模型数据结构的建立。

3 工件毛坯建模

系统坐标值以VB默认的twip缇作为度量单位, 每英寸为1440twip, 因此每缇约为0.0176mm。为了便于计算和测量, 本系统中的坐标和最小移动单位均设定为每缇0.02mm, 建立坐标值单位 (毫米) 与VB单位 (缇) 之间的换算 (1mm=1twip×50) 。

工件毛坯模型的数据结构:Left=L*50, Top=D*50, 其中L为工件长度, D为工件直径。由于每堤为0.02mm, 因此工件的Left值为L*50 twip, Top值为D*50 twip。

工件毛坯数据模块主要是完成毛坯的外形、尺寸、材料等参数的选择与设定, 其交互界面如图2所示。

(1) 工件模型尺寸参数是以仿真系统的主窗体MDIForm1.Picture的 (Left, Top) 为坐标原点 (0, 0) 来设定的, 工件的直径参数:MDIForm1.Picture.Height=Val (Text2.Text) *50 (mm) ;毛坯的长度参数:MDIForm1.Picture.Width=Val (Text4.Text) *50;

注:MDIForm1.Picture为显示工件毛坯大小的Picture控件;Text2.Text为输入直径尺寸文本的Text控件;Text4.Text为输入长度尺寸文本的Text控件。

(2) 工件材料模块是利用Combo Box控件的List属性来实现下拉菜单式的材料材质选取功能。

(3) 轴类和孔类工件的选择是利用if语句来判断和实现Picture1和Picture4的Height、Width属性赋值, 从而建立轴 (孔) 类工件毛坯模型。

4 卡盘、顶尖装夹建模

4.1 卡盘夹具建模设计

车床加工工件时, 需要三爪自定心卡盘夹持工件进行车削加工。本仿真系统的卡盘夹具模型是利用User Control用户控件来实现卡盘夹紧功能 (如图3所示) 。

实现卡爪张开、夹紧 (卡爪由张开最大位置到夹紧位置) 的代码如下:

卡盘完成夹紧功能的源程序如下:

4.2 顶尖建模

在车削加工较长工件时, 为了增加工件刚性, 需要用顶尖加以辅助支撑。本系统的顶尖模型可以实现顶尖的装/卸与旋转。

(a) 装/卸功能的实现。顶尖User Control11控件默认是不可见的, 当经if语句判断需要安装时才显现, 并由此默认位置向工件方向移动并实现夹紧。添加的代码如下:

(b) 旋转功能的实现。通过Timer控件和Select () 语句实现顶尖User Control11和User Control21控件不停地交替显示, 从而达到旋转的视觉效果。

5 刀具装夹建模

刀具数据管理包括刀具数据的输入与浏览、选择等。该数据库能够完成刀具的数据管理和动态配置。仿真系统从刀具数据库中选择刀具数据参数, 并将其转化为文件的形式完成刀具配置, 系统仿真时从刀具文件中选择刀具作为仿真加工的切削刀具。

刀具模型主要包括三项数据信息: (1) 刀位, 同刀具库中的刀位一致; (2) 刀具类型, 描述该刀具所适用的加工类型 (外圆、端面、内孔、螺纹、沟槽等) ; (3) 刀具模型, 在加工仿真中的实体几何模型。

所有的刀具均放入刀具库中以备调用, 刀库由刀具文件支持。刀库中描述刀具模型的数据结构如下:

MDIForm1.User C11.Left=MDIForm1.Image01.Left′车削刀具Z方向位置MDIForm1.User C11.Top=MDIForm1.Image01.Top-1140′X方向位置MDIForm1.User C21.Left=MDIForm1.Image01.Left′隐藏刀具Z方向位置

当车削轴类工件时:

当车削孔类工件时:

其中:User C11为可见工作刀具;User C21为隐藏工作刀具;Text1.Text (Text3.Text) 分别为轴 (孔) 类工件的直径参数文本。

刀具模型的数据结构:显示刀具User C11 (left, top) 为 (Image01.left, Image01.top-1140) ;隐藏刀具User C21 (left, top) 为 (Image01.left, D*50-Image01.top) 。

6 仿真车削建模

6.1 系统双边切削的建模

车削仿真通常是利用刀具切削过程的建模逼真地反映出工件加工过程, 通过图像动态显示分析切削过程, 检验数控程序。刀具运动建模的最大问题是如何实现在前后两个切削位置处刀具图像的交替显示, 而且在图像的交替显示过程中的计算和显示的速度不能响应整个图形的动画效果, 常用的图像编辑方法和异或方法, 很难连续和平滑地显示整个仿真过程, 易造成动画过程中出现屏幕闪烁, 影响视觉效果。

为此, 仿真车削建模采用刀具运动动画法, 即在快速定位和插补等模块中每次计算出下一位置的坐标时, 刀架和刀具控件就移动到该点, 只要通过控制空间位置的连续变化就能实现这些部件的运动动画。利用时间钟 (Timer) 的定时功能绘图这种方法是基于上述两种方法的叠加。其基本原理是将一条曲线分解成足够多的有限微小线段, 然后利用Line/Circle方法通过时间钟 (Timer) 的定时功能来连续地画这些线段。当线段的数量足够多时, 所有线段的连接就形成曲线。这样一条曲线就可看成是有限微小线段的连续排列。

仿真车削建模不能只模拟单边的切削过程, 只有进行双边切削建模才能更具真实感, 更加直观。为此, 以被车削工件的轴心线为对称轴, 在切削车刀的对称侧配置一把隐形车刀 (车削时不可见) 。仿真时, 双边的车刀轴向车削时同向运动, 径向车削时相向运动, 从而实现双边仿真切削的动画效果, 如图4所示。

工件在被刀具切削时, 形态发生了根本的变化, 数控仿真系统利用Line方法画线实现切削动画。其采用的策略是首先通过添加Active X用户控件, 设计出背景色透明的刀具控件;然后, 在切削过程中刀具图片以刀位点为基点沿着切削轨迹进行位移, 同时沿着刀具的主、副切削刃进行画线, 用背景色覆盖在工件上, 实现工件被车削的动画效果。如90°精车刀进行车削加工时, 刀具的工作部分是由主切削刃AB和副切削刃AC两条切削刃组成, 如图5所示。因此, 仿真加工的实现是以精车刀的刀位点Left, Top (0, 0) 或Left, Top (0, 1160) (隐形刀具) 为基点画AB、AC两条线段, 并实时跟随刀具切削刃进行位移并画线 (颜色与背景色一致) 用以覆盖工件体, 从而实现工件被车削的效果。

6.2 双边切削建模的软件实现

90°精车刀实现切削 (画线) 的源代码如下:

7 结语

本文通过对仿真数控加工关键技术的研究, 根据车削加工工件的几何外形和成形特点, 提出了一种简易的仿真加工场景快速几何建模的方法。利用这种方法在VB6.0平台上建立了数控仿真车削加工场景的几何模型。实践表明该方法可快速建立仿真加工的场景, 且仿真加工系统具有较好的真实感、较逼真的动画仿真以及良好的独立性。

参考文献

[1]陈为国.虚拟仿真辅助数控车削对刀实训教学的探讨[J].机床与液压, 2012, 40 (18) :38-40.

[2]唐秋华, 易磊, 等.三自由度数控车削加工建模与仿真[J].机械设计与研究, 2012, 28 (5) :80-83.

[3]周静, 土新华.数控仿真培训系统的研究与开发[J].机床与液压, 2010, 38 (8) :4-7.

[4]李建广, 姚英学, 高栋, 等.提高虚拟车削仿真质量的工件建模方法[J].计算机集成制造系统-CIMS, 2002, 8 (3) :233-237.

[5]徐宏海, 吴晚云, 张超英.车削加工过程建模与MATLAB仿真分析[J].机床与液压, 2006 (6) :229-230.

[6]廉良冲, 周莉.仿真软件与数控教学的结合应用[J].机床与液压, 2010, 38 (4) :107-108.

[7]李春雷, 石皋莲.基于Open GL的虚拟数控加工场景快速几何建模技术研究[J].现代机械, 2009, (4) :53-55.

建模软件 篇5

【摘要】在软件工程中,UML建模技术的应用十分广泛,具有可视化、定义良好以及功能强大等优点。基于此,笔者从UML建模技术的概念和优势入手,对软件工程中UML建模技术的应用模式和应用流程进行了分析,主要介绍了用例图、类图、序列图和协作图在软件工程中的应用,并将人才招聘系统作为研究对象,阐述了UML建模技术的实践应用,以期为相关研究提供参考。

【关键词】软件工程;UML建模技术;需求分析

前言

在进行软件的开发时,技术人员大都会通过面对对象描述的方法进行建模,该方法是将软件系统的对象看做是构建模块。在进行建模的过程中,UML建模技术可以创建系统的静态结构以及动态行为,可以有效提高建模的效率和准确性。因此,对于软件工程中的UML建模技术研究具有一定的现实意义与理论指导价值。

1.UML建模技术概述

UML是一种规范定义、文档化或者可视化的最标准的建模语言,可以应用于软件工程的各个阶段。UML建模语言拥有统一的符号以及语义,可以将所有项目根植与一种建模语言中,并对这些项目中的所有概念进行明晰的表示与定义,在很大程度上扩大了系统的应用范围,使UML建模技术的应用更为灵活。在UML中,主要包括图、事物以及关系这三个基本构造。具体而言,UML建模技术在软件工程中的应用主要有如下优势:第一,UML建模技术可以在系统模型中实现完全独立,虽然UML建模技术会与其余建模工具进行配合应用,但是并不会与系统的开发过程不产生交集;第二,UML建模技术在软件工程中的应用是面向对象的,打破了传统建模语言的差异性,可以通过统一的模型元素进行方法与图形的表述;第三,UML建模技术可以捕捉软件系统中的静态行为信息与动态行为信息,静态行为信息主要是指软件系统中对象,动态行为信息主要是从时间角度和状态角度对对象通讯的定义;第四,UML建模技术的和具体的实现没有关系,适用于所有语言平台或者工具平台,还能够应用于具有代码生成功能的交互式可视化建模工具,该工具可以为UML建模技术提供多种编程语言代码和程序构筑模型[1]。

2.软件工程中的UML建模技术应用模式

在软件工程中,UML建模技术主要通过视图的应用进行软件开发,UML建模技术一共可以提供八种图,实现软件系统开发的可视化以及模型化,以此获取软件系统的主要资料,从而明确软件系统的架构与体系。本文主要对常用的四种图进行分析:第一,用例图。在UML建模技术中,用例图是最基本的图。在软件工程中,需求分析阶段的重点在于需求获取,需求获取的重点在于系统模型的构建,系统模型构建的最佳方法就是用例图。用例图可以构建的用例模型可以为系统软件的开发奠定良好的基础。第二,类图。在UML建模技术中,类图主要用于表示不同实体(包括人、数据或者事物等)间的相关关系。在软件工程中,类图能够表示软件系统的静态结构,包括逻辑类图和实现类图这两种。其中,逻辑类图是指业务人员所说的事物种类,如保险-住房抵押-信贷-利率等;实现类图是指程序员负责的实体,但是并不会通过相同的属性进行描述,因为实现类图会进行HashMap或者Vec-tor等事物的引用。第三,序列图。在UML建模技术中,序列图能够主要用于具体用例流程的详细定义,主要通过自描述进行用例流程的定义,还能够表示用例流程中不同对象的不同调用关系。在实际的应用过程中,序列图的绘制过程较为简单,在横跨图的上部区域,不同的框代表每个类的对象,每个框中类的对象名称和类的名称使用空格/冒号/空格进行分隔,比如,MyReportGenerator:ReportGenera-tor。如果其中一个类对象向另一个类对象进行消息的发送,需要通过带有指向接收性质的连线来实现,技术人员需要将消息/方法的名称标注于于连线上。如果发送的消息较为重要,技术人员需要绘制带有指向发起性质的虚线,并将返回值标注于虚线上。第四,协作图。在UML1.1版本的时候,协作图被称作Collabo-rationDiagram,翻译为中文是协作图;在UML2.0版本的时候,协作图被称作CommunicationDiagram,翻译为中文是通讯图。但不论哪一种翻译方式,协作图都可以看做是序列图的全新表达方式。对于UML建模技术来说,序列图注重前后顺序,通过循环图或者分支结构来表示,而协作图则更为注重协同关系,协作图不能通过图像来表示[2]。

3.软件工程中的UML建模技术应用流程

在软件工程中,RationalRose能够满足现有全部建模环境的需求,在软件开发过程中,支持开发人员、分析人员和系统工程师将需求以及系统的机构转变为代码,从而实现需求以及系统的可视化。一般来说,软件开发过程包括需求分析、方案设计、方案实现、测试与配置等环节。

3.1需求分析环节

在软件工程的需求分析阶段,技术人员主要应用UML建模技术中的用例图,了解系统的所有需求,并对需求进行相应的描述。对于用例图而言,技术人员通过事件的应用实现用户与系统间的交互作用,并在用例图中表明用户能够实现的目标,还能够将功能分析以及需求分析中包含的系统模块,根据角色平均分配到不同用户中,提高系统模型的清晰度。

3.2设计环节

在软件工程的设计阶段,技术人员需要全面考虑所有软件开发技术的局限性,对需求分析阶段的系统模型进行进一步的扩展与细化。设计阶段的目标在于将系统模型转变为代码,对需求分析阶段提取的系统属性与操作进行细化,并添加更多的类处理,比如,用户接口、设备、数据库以及通信等。一般来说,软件工程的设计阶段包括两个部分,其一,结构设计,又被称作高层设计,主要任务是对包(即子系统)进行定义,主要定义的内容为包与包之间的依赖性以及通信机制,进一步实现结构的清晰化与简化,尽量减少各部分的依赖性,避免双向依赖关系的构建;其二,详细设计,这一部分主要是对包的细化,技术人员可以通过详细设计了解所有类的清晰全面描述。设计阶段中UML建模技术的应用包括类图和序列图这两种。首先,类图的应用,在软件工程中,类图属于静态视图,可以通过以下两种方式进行定义:通过问题域的概念进行定义、通过该类实际表示的内涵进行定义,技术人员需要根据系统需求分析以及系统用例进行类图的构建;然后,序列图的应用,在软件工程中,序列图属于动态视图,主要用于描述系统中各个对象的交互以及通讯,技术人员可以根据序列图了解对象实现某种功能时,是如何进行序列消息的发送与接受。

3.3实现环节

在软件工程中,实现环节就是指构造或者实现环节,主要工作内容为类的编程。一般来说,技术人员会将C#语言作为软件系统的开发环境,因为C#语言在逻辑试图转变为代码部件这一映射过程中,有显著的优势。在UML建模技术中,主要有以下几种图用于编码过程:第一,类的规格说明,不同类的规格说明体现了不同的属性与操作;第二,类图,能够显示软件系统中类的静态结构以及类之间的关系;第三,状态图,能够体现软件系统中类的对象现有的状态、需要处理的转移和转移需要触发的操作;第四,动态图,在编程过程中,动态图主要包括顺序图、活动图以及合作图这三种,主要用于体现对象应用该类对象的过程;第五,用例图及其规格说明,能够体现出软件系统的需求以及结果。

3.4测试与配置环节

当软件工程的系统编码全部完成之后,技术人员需要进行系统的全面测试,保障软件工程的质量。具体而言,测试环节分为系统测试、单元测试、验收测试以及集成测试这几种。对于系统测试来说,技术人员可以应用UML建模技术的用例图,测试开发的软件系统是否充分满足了用例图描述的需求;对于单元测试来说,技术人员可以应用UML建模技术的类图以及类的规格,对软件系统中单独的类或者成组的类进行测试;对于集成测试来说,技术人员可以应用UML建模就似乎的组件图以及合作图,测试软件系统中各个组件的合作状况[3]。

4.软件工程中的UML建模技术的应用实例

本文主要将在线人才招聘系统的市场管理和信息管理作为实例分析对象,进行软件工程中UML建模技术的应用研究。4.1人才招聘系统的登录界面设计对于人才招聘系统软件而言,登录界面的设计可以提高系统的管理水平。在进行登录界面的设计时,技术人员可以应用CustomLoginUI进行界面参数的传递,当用户输入登录信息并点击确定按钮之后,系统可以自动进行“sendMessage”,并应用HTTP进行服务器请求,在接收到CustomLoginUI的合法回复之后,即为用户登录成功,可以应用人才招聘系统进行相应的操作。4.2人才招聘系统中用例图的应用分析第一,人才招聘系统的管理人员会通过管理功能设定系统的基本信息,比如,招聘的岗位、岗位的任职要求和岗位的薪酬待遇等内容,招聘信息主要通过Web形式上传到Internet上。第二,应聘人员通过CustomLoginUI界面进行人才招聘系统的登录操作,当系统确认应聘人员的身份之后,即可登录系统。应聘人员可以在招聘信息下面填写个人信息,系统会将应聘人员的个人信息上传到在线人才管理系统中,个人信息也会通过Web形式上传到Internet上。第三,招聘人员可以在系统中查看应聘人员的个人信息,根据岗位的.要求以及应聘人员的履历,决定是否邀请应聘人员面试。需要邀请应聘人员时,招聘人员可以通过系统进行E-mail的发送。与此同时,管理人员需要将应聘人员的信息添加到人事档案库中,以数据文本的格式进行存储。第四,当招聘工作完成之后,管理人员需要将人才招聘系统关闭。在关闭的过程中,管理人员的决策可以看作是抽象角色,通过“fromUseCaseView”表示。管理人员实施的操作主要包括招聘活动的启动与停止、招聘信息的管理、人事档案与招聘信息的导出等。4.3人才招聘系统中类图的应用分析第一,类图的选择,技术人员需要根据人才资源系统的特点,通过同时得到类图的方式,应用stereotypeobject-entity、control、boundary等方法,确保角色可以有效应用于对象的通讯过程中,还能够保障序列图和协作图间的有效转换。第二,组件设计,技术人员需要将上一个步骤得到的类图进行实体映射,以此得到类图表。具体的映射方法如下:首先,将人才招聘系统中的实体进行单独的表的定义;然后,将实体表的继承网络结构删除,确保不同层次的实例具备一致的属性;最后,将人才招聘系统中的子类文件状态配置于相应的表中,并在组件中建立数据库,用于TaxDate等映射表的存储。第三,组件图的构建,技术人员需要通过控制类组件进行组件图的构建,如果技术人员采用的编程语言为C++,可以将控制类组件存储为(.h文件)或者(.ccp文件)。另外,对于源代码文件,技术人员可以应用包进行源代码的分组,并通过关联进行序列图的类信息显示。当组件图构建完成之后,技术人员需要将能够执行的主程序(即.exe文件)以及java语境链接库加入到组件图中,实现人才招聘系统的开发[4]。

5.结论

综上所述,UML建模技术可以提高软件开发的效率和有效性,值得推广应用。通过对软件工程中的UML建模技术分析可知,开发人员需要深入了解UML建模技术的各种视图及应用特点,在软件工程的各个阶段正确应用视图,充分发挥出UML建模技术的作用,提高软件工程的质量。希望本文可以为技术人员进行软件开发提供帮助。

参考文献

[1]陈冠元.软件工程中的UML建模技术[J].电子技术与软件工程,2018(05):47.

[2]刘传会.基于UML2.0顺序图的高可信实时软件建模技术研究[A].中国航空学会、中国航空研究院,2017,8.

[3]夏志龙.使用UML和Event-B构建基于云平台的应用软件模型[D].江苏科技大学,2016.

面向方面软件体系结构建模研究 篇6

基于构件软件开发CBSD(Component-Based Software Development)通过组装已存在的构件来实现软件系统,为软件的高开发费用、低生产率和不可控制的软件风险提供了有效的解决途径。但是,CBSD遇到了由于横切属性引起的代码分散和代码混乱等问题。面向方面编程AOP(Aspect-oriented Programming)[1]是1997年由施乐公司帕洛阿尔托研究中心(Xerox PARC)开发的一种新的编程范型,它提供了一种明确捕获和模块化横切关注点的机制,有效解决了由于横切属性引起的代码分散和代码混乱等问题。然而AOP不够成熟,并且目前的研究大部分还在代码阶段,不易实现方面(Aspect)的复用。因此,将CBSD与AOP两种方法结合起来对双方都有益[2]。

软件体系结构为CBSD提供了构件组装的基础,有利于对系统整体结构和全局属性进行规约、分析、验证和管理。将AOP引入到软件体系结构模型的研究中既有利于发现系统中高层的横切属性,同时也可以解决由横切属性引起的代码分散和代码混乱的问题。面向方面软件体系结构建模是目前研究的热点问题。UML作为由OMG(对象管理组织)确立的一种通用的、图形化的、面向对象的建模语言,现已被业界、学术界广泛承认和使用,并越来越多地用于表示非UML标准的各种视图。文献[3]提出了扩展UML建模面向方面程序的方法,但只是在面向对象(OO)环境下实现了UML向面向方面的扩展;文献[4]提出了使用UML建模软件体系结构的方法,但是并没有考虑由特定平台实现的非功能属性问题,也没有将其在软件体系结构模型中清晰地描述出来。

鉴于此,本文将面向方面编程思想引入到软件体系结构模型的研究中,提取体系结构中的横切属性,并以方面连接件的形式对其进行建模,然后提出基于UML的面向方面体系结构元模型,最后通过图书管理系统实例说明具体建模过程,对传统体系结构模型和面向方面体系结构模型进行比较分析,结果显示了面向方面软件体系结构模型具有更高的实际应用价值。

1面向方面软件体系结构模型

1.1软件体系结构中基本元素

软件体系结构是由构件(Component)、连接件(Connector)和约束(Constraint)组成的配置格局。考虑到系统中包含的非功能属性,这里将引入AOP来模块化系统中横切属性。然而,非功能属性模型还没有一个统一公认的定义,使用最广泛的是以AspectJ[5]语言中对Aspect定义为基础的模,AspectJ中Aspect是在程序执行过程中,当条件(切入点Pointcut)满足时,在连接点(Jointpoint)处执行一段代码(通知Advice),即(when and where do what)。而在软件体系结构中构件被考虑成黑盒,连接件在特定的交互(who does what and when)中提供构件交互的规则和所需要的辅助机制。考虑到AspectJ中Aspect和连接件的相似性,将Aspect表示成方面连接件(A-connector),系统中的连接件表示成系统连接件(C-connector)。由此得出,面向方面软件体系结构由构件、系统连接件、方面连接件和约束四种元素共同构成,具体细节如下:

(1) 构件是指具有一定功能、可以明确辨识的软件单位,构件之间是相对独立的,并隐藏其具体实现,只通过接口(Interface)提供服务,接口由多个端口(Port)组成,分为输入端口(Require)和输出端口(Provide)两类,每个端口都定义了一组事件,用来描述其行为。

(2) 系统连接件是用来建立构件间的交互以及支配这些交互规则的体系结构构造模块。与构件相似,它也通过接口与外界交互,通过角色实现与构件的绑定。

(3) 方面连接件用来描述系统中的横切属性,也通过接口与外界进行交互,由切入点和连接点实现与构件的绑定,因此切入点在方面连接件接口处定义,而连接点在需要绑定的构件端口处定义,通知作为方面连接件的内部实现。

(4) 约束用来描述软件体系结构的配置和拓扑要求,表示构件和连接件的组合方式。

1.2软件体系结构元素到UML元素的映射规则

UML是一种支持面向对象分析与设计的可视化建模语言,能够帮助用户对软件系统进行面向对象的描述和建模,它的一个重要特点就是提供了扩展功能,这有利于描述软件体系结构,并且UML与具体程序语言和开发过程无关。因此,可以选择UML作为建立软件体系结构模型的工具。软件体系结构元素到UML元素的映射规则如表1所示。

1.3面向方面软件体系结构的元模型

面向方面软件体系结构的元模型由一组相互协作的构件组成。构件之间通过系统连接件和方面连接件来实现交互和协作,并由这些构件及其协作关系定义了软件体系结构,同时软件体系结构通过约束(Constraint)来判断构件组合后是否能够达到所期望的语义结果,如图1所示。

2实例验证

为了具体说明建模过程,本文采用一个简化的图书管理系统进行验证,并分别给出引入方面前后的体系结构模型,系统主要实现功能包括:

用户登录:提供用户登录系统功能,并对用户授予权限;

图书业务:提供处理图书查询、借阅和归还等业务功能;

系统管理功能:提供图书添加、删除和用户的添加、删除等系统维护功能。

2.1传统体系结构模型

通过分析以上系统功能可以得到,系统包括三个构件:登录构件Log、图书业务构件Transaction、系统管理构件Manage和一个连接件Lm。登录构件提供通过输入用户名,密码登录系统和获得权限的功能;图书业务构件提供图书的借阅、查询和预订等功能;系统管理构件提供图书管理和用户管理等功能。连接件Lm用于将相应的端口绑定在一起来实现构件连接。由于图书业务构件和系统管理构件执行操作之前都要先进行用户权限验证,因此这两个构件模型中都包含权限验证的代码,如图2所示。

2.2面向方面软件体系结构模型

从图2模型可以看出,在图书业务构件和图书管理构件模型中都有权限验证的代码,如果权限验证的代码需要修改,必然要对这两个构件模型进行适应性修改,加强构件模型之间的依赖性。因此,本文将权限验证功能提取出来,表示成方面连接件Access,权限验证的代码作为Advice写到方面连接件的内部实现中,Pointcut在方面连接件的Role中定义,Jointpoint在相应构件的Provide端口(图中用dir:p来表示)处定义。由于本文需要在进行业务和管理之前进行权限验证,因此通知使用Before Advice实现在连接点之前执行相应权限验证的代码。同时方面连接件中的Around Advice可用来实现系统连接件所具有的基本连接功能,至此完成了方面连接件Access的建模,模型如图3所示。

图3 面向方面软件体系结构模型

2.3两种模型比较

传统的软件体系结构模型中,构件的非功能属性通过特定平台映射到构件模型中,这加强了构件模型之间的依赖性;而在面向方面软件体系结构模型中,不仅实现了功能属性和非功能属性的分离,而且还实现了非功能属性的无缝编织,编织过程隐含在连接件和构件端口的绑定中。与传统的体系结构模型相比,其具有如下优点:

(1) 对构件模型影响 本文所提出的新模型最大的优点就是降低了构件模型之间的依赖性。构件之间的依赖性通过构件的Require端口(图中用dir:r来表示)描述,并且构件的开发者也需要知道外部功能的确切位置或外部功能被连接的点,但是构件通过Require端口描述依赖性给开发者描述接口的完整语义带来了负担。而引入方面连接件以后,构件无需考虑外部依赖性的问题,而是通过AOP中的Jointpoint和Pointcut机制来实现。另外,使用方面连接件也增强了构件的可配置能力,如果系统中并不需要某个构件Provide端口提供的所有功能或者不能传递Require端口所需要的所有参数,这样可以通过方面连接件中的Advice来实现增加或者去除某些参数或功能。同时构件的可配置能力增强,构件的复用性也随之增强。

(2) 对系统影响 使用方面连接件增强了系统的适应性。例如,上述实例中要在每次图书业务和管理之后增加日志功能,只需在方面连接件Access中添加after: log{…} 的代码,而不需对构件Transaction 和 Manage都进行适应性修改。

3结论

本文将AOP思想引入到软件体系结构中,将非功能属性以方面连接件的形式在体系结构中模块化实现,并提出基于UML的面向方面软件体系结构元模型,最后通过对比说明面向方面软件体系结构模型具有更高的实际应用价值。

进一步工作包括:实现UML向软件体系结构描述语言的转化,并考虑方面连接件之间的组合关系。

参考文献

[1]Kiczales G,Lamping J,Mendhekar A,et al.Aspect-oriented program-ming.Proceeding of ECOOP’97,springer verlag,1997.

[2]Houssam F,Noury B,Laurence D.Towards integrating aspects and components.Proceeding of ACP4IS Workshop at AOSD’o4.2004.

[3]刘瑞成,张立臣.基于UML的面向方面的实时系统的建模方法.计算机应用研究,2005,25(8):18741877.

[4]邓勇,丁峰,沈钧毅.基于UML的软件体系结构建模方法的研究.小型微型计算机系统,2001,22(10):12061209.

软测量建模软件的设计与开发 篇7

就苯乙烯、丙烯腈、乙烯及丁二烯抽提等化工装置而言,产品质量数据主要是产品的纯度。针对这一特点,本软件采用基于数据驱动的建模方法,并考虑到实际的工业过程对象复杂多变,软件采用了线性回归建模和非线性神经网络建模两种方法来设计软测量软件。最后,根据工艺机理,我们通过建立苯乙烯装置乙苯塔塔顶乙苯含量软测量数学模型,完成了对塔顶乙苯含量的准确预测。

1 乙苯含量软测量模型的建立

1.1 软测量

软测量的工作原理(见图1),就是在常规检测的基础上,利用辅助变量与主导变量的关系,通过软件计算,得到主导变量的测量值。软测量技术的核心是建立用来预测主导变量的可靠的软测量模型。初始软测量模型是对过程变量的历史数据进行辨识而来的。在应用过程中,软测量模型的参数和结构并不是一成不变的,随时间迁移工况和操作点可能发生改变,需要对它进行在线或离线修正,以得到更适合当前状况的软测量模型,提高模型的适合范围。因此,软测量结构可分为历史数据处理、离线建模、在线运行(包括校正)三大模块。

1.2 辅助变量的选择

通过对苯乙烯装置乙苯塔工艺机理研究,我们选择通过DCS收集的1000组过程参数作为建模样本集,300组过程数据作为校验样本集,运用统计学方法将样本数据中隐含的对象信息进行浓缩和提取,通过工程师的经验以及多元回归分析方法,寻找最优变量来建模,从而建立主导变量和辅助变量之间的数学模型,见表1。

2 软测量建模软件的实现

2.1 软件框架

选用微软VC++6.0开发环境[6],软件的整体设计采用面向对象的程序设计方法,考虑到软测量仪表本身侧重于数值计算和参数的频繁传递,因此选用基于对话框的应用程序框架。该软件框架结构简单,易于人机参数传递。从程序的角度来说,软件总共分四个主要模块:主对话框模块、算法模块、矩阵运算模块、图形编辑模块。如图2所示。

1)主对话框模块:即人机界面UI,提供基本的人机交流界面,以及数据文件操作。

2)算法模块:是整个软件的核心,包括了软件中所有的算法程序,并且留有扩充借口,可随时根据软件的升级增加新的算法。软件在调用算法时需要用户传递的参数和算法结果的返回利用子对话框来传递。该模块分为三个子模块:(1)数据归一化模块:主要功能是对原始样本数据进行归一化处理;(2)样本数据分析模块:主要功能是对辅助变量进行相关性分析和主元分析;(3)建模算法模块:偏最小二乘法建模、神经网络建模。

3)矩阵运算模块:主要功能是为算法模块提供必需的矩阵运算支持。软件中数据归一化、样本分析、建模的大多数算法在数学上表现为大量的矩阵运算,微软MFC基础类库并没有提供可以直接使用的矩阵运算类。为了使得建模算法代码更为简洁,易于修改。矩阵运算模块将常用的矩阵运算操作写成一个类———矩阵类,供算法程序调用。

4)图形编辑模块:主要功能是按照需要对工作空间中的数据进行曲线图形显示。作用是当离线建模完成后,需要对所建立的模型进行拟合试验,将试验结果以曲线的形式表现出来,软件允许用户自己设定坐标范围和图形标题。

2.2 偏最小二乘回归法

偏最小二乘回归是建立在主元分析原理上的化学计量学方法。它通过多元投影变换的方法,分析两个不同矩阵间的相互关系。在主元分析中,提取主元的过程只是强调了主元对辅助变量信息的最大综合能力,并没有考虑主导变量。偏最小二乘法不仅利用对系统中的数据进行分析和筛选的方式辨识系统中的信息和噪声,从而克服变量的多重线性相关性对建模的影响,而且在提取主元时还考虑主元和因变量的相关性,即主元对主导变量的解释作用。因此,偏最小二乘回归可以集多元线性回归,主元分析,典型相关分析的基本功能为一体。

该算法原理如下:

假设有两个数据矩阵X和Y,其中X∈Rn×m,Y∈Rn×1,X和Y之间的关系表示如下:

式中:e表示残差;β表示自适应因子。

自适应因子β的估计值β赞可以用最小二乘法得到,即:

如果数据矩阵X具有较强的相关性,则式(2)中存在病态矩阵的求逆,结果误差较大,而部分最小二乘法可以避免对病态矩阵求逆。其基本原理是将式(1)中的X和Y的关系分解为两个内部关系和一个外部关系:式(3)、(4)和(5)。

其中,矩阵T=[t1t2…tα],U=[u1u2…uα];分别称为X和Y的得分矩阵,而th和uh分别称为矩阵X和Y的第h主元。P=[p1p2…pα]和Q=[Q1Q2…Qα]称为荷载矩阵,U和T之间的关系表示如下:

式中:E、F、R为残差矩阵。

该算法将高维空间信息投影到由几个隐含变量组成的低维信息空间中,隐含变量包含了原始数据的重要信息,且隐含变量间是互相独立的。

2.3神经网络法

基于人工神经网络(Artificial Neural Network,ANN)的软测量建模方法是近年来研究最多、发展很快和应用范围很广泛的一种软测量建模方法[7,8]。能适用于高度非线性和严重不确定性系统,因此它为解决复杂系统过程参数的软测量问题提供了一条有效途径。

化工装置产品含量预测建模通常处理的是非线性建模问题,而多层前向网络已被证明具有以任意精确度进行复杂非线性函数的拟合能力[7],因此选择前向网络结构。网络层数方面,除了网络必须包含的输入输出层外,对于化工装置产品含量预测这类软测量建模,问题的复杂程度一般要求隐层数目为1。因此,软件中采用包含一个隐含层的三层结构前馈网络。

确定好网络结构后,神经网络用于软测量建模实际上就是利用产品的历史数据经过一定的算法来确定网络的连接权值和阈值。BP算法是应用较早的学习算法,它充分利用了前向网络的结构优势,在正反传播过程中的每一层计算都是并行的。但BP算法存在两个缺点,即训练时间长和容易陷入局部最小。针对此缺陷,本软件在设计时采用了带动量因子的改进方法来加快网络训练速度。改进的BP神经网络的网络设置和参数设置如图3所示。

神经网络建模算法采用BP算法,算法不再是简单的矩阵操作。根据前馈神经网络的结构将神经网络用两个类来描述,即神经网络类和神经网络层类。经过处理后,主程序算法简洁,可读性强。如果要改进BP算法,代码的修改只需在类的方法中修改即可,不必修改主程序。神经网络类的设计和神经网络层类的设计主要代码如下:

神经网络类

2.4 软测量模型的在线校正

由于软测量对象的时变性、非线性及模型的不完整性等因素,必须经过模型的在线校正才能适应新工况。根据被估计变量的离线测量值与软测量估计值的误差,对软测量模型进行在线修正,使软测量仪表能跟踪系统特性的缓慢变化,提高静态自适应能力。一般采用在线校正算法为常数项修正法,即通过化验值或分析值计算新的偏差,并把新的偏差写入软测量仪表,修正偏差。即:

新偏差=(采样时刻计算值-化验值)×偏差权重+旧偏差×(1-偏差权重)

3 工业应用

乙苯含量是乙苯精馏塔塔釜采出产品中一个十分重要的质量控制指标[9],通过辅助变量塔顶压力、塔顶温度、塔灵敏板温度、回流量及塔釜温度来预测乙苯含量变化趋势。通过本软件进行仿真,乙苯含量软测量偏最小二乘建模数据拟合图如图4所示。其中,红线为实际值,绿线为拟合值。误差平方和:0.765762856683714,均方误差:0.0033294037247118。

针对某装置淀粉含量预测问题选择神经网络方法进行仿真研究,均方误差:9.14971253690028e-009;拟合曲线:红线为化验值,绿线为拟合值。淀粉含量软测量神经网络建模数据拟合图如图5所示。

4 结束语

本文采用了微软基础类库(MFC)提供的基于对话框的应用程序框架实现了软测量建模软件的开发。软件主要是从数学的角度分别研究了线性和非线性软测量建模算法,重点强调了建模算法对给定历史数据的拟合和泛化能力。在具体的应用中,根据工艺知识对软测量问题进行初步数学抽象,然后以本软件作为一种工具建模,辅以必要的工艺机理分析检验模型的合理性。通过对实际中两个化工过程进行的仿真表明,该软件基本具备了软测量建模预测产品含量变化趋势的能力,可以得到较好的效果。

参考文献

[1]王树青.先进控制技术及应用[M].北京:化学工业出版社,2005.

[2]Morris A J,Montague G A,Tham M T.Soft-sensors in industrial process control[C].London,UK:Applied developments in process control,1989.

[3]王跃宣.先进控制策略与软件实现及应用研究[D].杭州:浙江大学,2003.

[4]俞金寿.软测量技术及其在石油化工中的应用[M].北京:化学工业出版社,2000.

[5]马勇,黄德先,金以慧.动态软测量建模方法初探[J].化工学报,2005,56(8):1516-1519.

[6]侯俊杰.深入浅出MFC[M].2版.武汉:华中科技大学出版社,2001.

[7]薄翠梅,张湜,李俊,等.基于神经网络的软测量技术在精馏塔上的应用[J].过程工程学报,2003,3(4):371-375.

[8]尚长军,陈曦,钱积新.基于PCA-BP神经网络的精馏塔产品组成软测量模型[J].工业仪表与自动化装置,2003(4):33-36.

建模软件 篇8

在下二门油田H2Ⅳ油组开展精细油藏描述的过程中,该区地质构造的复杂性使得仅依靠传统研究手段很难准确把握其油藏潜力。采用油藏建模技术,应用Petrel建模软件开展系统的建模工作,建立构造模型、岩相模型和属性模型,精细刻画了油藏地质特征,为油藏开发和综合调整提供了依据,指明了方向。

1 下二门油田区域地质概况

下二门油田位于南襄盆地泌阳凹陷东部的下二门构造,地质储量2.09×107 t,分为8个开发层系。H2Ⅳ油组是下二门油田最大的开发单元,含油面积3.1 km2,地质储量4.54×106 t,年产油量占下二门油田总产量的25%。

由于油气聚集受构造、岩性、断层等因素控制,下二门油田H2Ⅳ油组油藏类型主要为断层-岩性油藏、断层-背斜-岩性油藏和岩性油藏。它的构造形态为被断层复杂化的轴向近南北向的短轴背斜,背斜两翼不对称:西翼及南、北端部地层较缓,形态较完整;东翼被下二门边界断层切割,发育了6条主控正断层,将短轴背斜划分为4个断块,储量集中分布在Ⅱ断块,该断块含油面积2.1km2,地质储量3.85×106 t,占全油组地质储量的84.8%。H2Ⅳ油组属候庄近源三角洲沉积,砂体平面几何形态为扇状,河口坝、水下分流河道微相为主要油气储集单元。

2 基础数据库的建立

建立三维地质模型需要使用井位坐标、井斜、测井、钻井分层等大量的基础数据,而且三维地质建模软件具有较强的三维图形显示和成图功能。数据加载过程就是基础数据库的建立过程。

按照Petrel软件格式要求,对井位坐标、井斜、测井、钻井分层和断点数据等基础数据进行加载。利用建模软件的可视化显示功能可对数据进行质量检验,修正因数据错误造成的油井轨迹异常显示,并对测井曲线的异常显示井段进行校正。

3 精细三维地质建模

3.1 构造模型的建立

构造建模是地质建模的基础和关键,由建立断层模型和层面模型组成。构造模型反映的是储层的空间格架,精细的构造模型可以细致地描述地层的构造特征。

第一步,建立断层模型。最基本的要求是断层面要与钻井断点位置完全吻合。利用前人的层面解释成果建立初步断层模型,然后根据钻井断点数据,在三维空间对断面形态进行校正,达到断面与钻井断点在三维空间完全吻合。

第二步,以高精度的三维断层模型为基础,结合钻井分层数据(即地层界面数据)和以往的地质认识,建立以小层为基本单元的精细构造模型,利用钻井分层数据来计算小层构造模型。研究工区平均井距为200 m,以井距的1/10为网格间距,确定平面网格大小为20 m×20 m。然后,根据钻井分层数据对计算结果进行手工编辑、校正,逐层校正构造面使之与钻井分层数据完全吻合。对于没有分层数据控制的区域,则利用整体构造趋势落实其三维构造形态,其构造研究工作达到了以往二维构造研究所不能达到的精度。

研究过程中注重了构造模型的三维可视化交互编辑与地层重新对比的结合。所建立的下二门油田H二Ⅳ油组构造模型总节点数约为34万个(见图1)。再通过纵向上的网格细化,细化后模型的总节点数达到125万个。这样建立的精细构造模型,既可以控制住有效储集层和泥岩隔层的分布,又不会产生过多的网格单元。

3.2 岩相模型的建立

研究工区没有开展过系统的沉积微相研究工作。考虑到对于油藏开发生产的实用性和可操作性,研究工区用岩相模型来替代沉积微相模型,作为属性建模的约束条件。在研究工区内,根据泥质含量(Vsh)的不同粗略划分了砂岩、泥质砂岩和泥岩3种岩相。具体标准为,砂岩:Vsh≤40%;泥质砂岩:40%60%。

岩相模型是一种离散数据模型。根据Petrel建模软件提供的算法,本文选择了随机建模方法中贯序指示算法。计算模型时,涉及到的参数最重要的是变差函数。变差函数为区域化变量Z(x)在x,x+h两点处的值之差的方差之半,

变差函数是通过对粗化后的测井曲线进行统计获得的,主要参数是变程、基台值和块金。根据他人经验,实际计算时按照块金值为0,变程值取平均井距的3~4倍,即可以获得满意的计算效果。通过计算得出的砂体整体分布较连续,与地质认识较吻合[1]。

3.3 属性模型的建立

油藏属性建模是地质建模的重要目的。油藏属性建模是在所建立构造模型的基础上,采用插值法或随机模拟法预测井间属性参数分布,建立油藏属性的三维空间展布模型。以岩相模型作为相控建立孔隙度模型,再以孔隙度模型作为渗透率模型建立的约束条件[1]。

1)测井曲线的粗化。测井曲线粗化的作用是将测井曲线的采样率与地质模型的纵向网格单元相匹配,并将数值赋给过井的网格单元。属性建模主要是对测井解释成果中的孔隙度和渗透率数据进行粗化处理。粗化算法主要有算术平均法和几何平均法两种。其中,算术平均法主要针对数据变化比较连续的属性;几何平均法主要针对数据变化范围比较大的属性。

比较以上两种算法的针对性,孔隙度模型采用算术平均法,渗透率模型采用几何平均法[2]。

2)孔隙度模型的建立。采用贯序高斯模拟法计算出孔隙度模型(见图2-a)。在计算中,岩相模型的约束是保证孔隙度模型能正确描述地下储集单元层特征的重要环节[2]。

3)渗透率模型的建立。渗透率对于评价油藏的生产能力起决定性的作用(见图2-b)。在研究工区,采用贯序高斯模拟法,通过协克里金函数,利用相控孔隙度模型为约束条件,计算出渗透率模型[2]。

4)Net/Gross(净毛比)模型的建立。有效厚度与地层厚度的比值称为净毛比(见图2-c)。通过设立孔隙度或渗透率的门限值,对孔隙度、渗透率模型之间进行计算,可计算出Net/Gross模型。该模型能够对有效储集单元进行描述。根据研究工区属性资料的分布范围,以孔隙度值13%、渗透率值0.076μm2为门限,即只保留孔隙度值大于13%、渗透率值大于0.076μm2的储集砂岩为条件,计算出Net/Gross模型。

4 结论

1)通过精细的构造建模、相建模和油藏属性建模,能够建立符合油藏实际的地质模型,能够精细、准确地刻画出油藏细部特征。

2)建立的构造模型和属性模型不仅能够为数值模拟提供静态模型,还能用于地质研究,为油藏开发和综合调整提供依据。

3)Petrel软件三维可视化功能,可比较直接客观显示区块的内部构造形态,直观地判断区块内砂体展布和油水连通等状况。

参考文献

[1]欧阳明华,谢从姣.精细油藏描述中的储层建模[J].新疆石油学院学报,2004,16(1):47.

软件可靠性建模思想的比较研究 篇9

随着科学技术的飞速发展,随着社会信息化程度的不断提高,计算机在社会中扮演着越来越重的角色,同时社会对计算机软件的需求也就越来越大,各行各业的日常运行也都越来越依赖于软件系统,这就意味着软件系统的失效给社会带来的影响也会越来越大。这也就促使了社会越来越注重软件质量的提高。众所周知,为了保证软件的质量,对软件进行穷尽测试是不现实的。那么,如何有效地评价软件的质量,在客户和开发商之间找到一个可以接受的平衡点,就成了广大的科研人员和软件开发工作者共同关注的焦点。

2 软件可靠性的概念

可靠性表示人们可以指望系统完成所期望功能的这样一些特质,它包含很多因素,如成熟性、容错性及易恢复性等。1983年美国IEEE计算机协会对“软件可靠性”正式做出如下定义:

1)在规定条件下,在规定时间内,软件不引起系统失效的概率,该概率是系统输入和系统使用的函数,也是软件中存在的错误的函数;系统输入将确定是否会遇到已存在的错误(如果错误存在的话);

2)在规定的时间周期内,在所述条件下程序执行所要求的功能的能力。

软件可靠性源于传统工业的硬件可靠性,由于软件的抽象性和高度的复杂性软件可靠性与传统的硬件可靠性有着本质上的区别。

如何快速有效的评价一个软件系统的质量好坏,是我们研究软件可靠性工程的核心。其最根本的问题就是如何建立起一个合理的、可用的软件可靠性模型以及正确的、有效的评估方法,从而保障软件的质量。从上个世纪60年代至今,国内外已经有很多的杰出的科学家们,在这个问题上取得了大量的进展,研究出了上百种软件可靠性模型。但是,到目前为止还没有研究出一个“万能”的软件可靠性模型来应用于所有的软件系统的质量评估。各种模型各有其优缺点和适用范围。

3 几种模型的主要思想

在实际的软件可靠性评估过程当中,由于软件的抽象性、复杂性和实际操作环境的不同,使得要完全精确的得出一个具体的数字是不现实的。因此,针对于不同的环境和不同情况,以及便于对问题的处理,到目前为止,绝大多数的软件可靠性模型都是建立在一定的假设条件上的,即各种模型都是一定意义上理想化的模型,不可能完全精确的反应软件的可靠性,他们反应的都是在一个可以接受的范围内的一个软件的可靠度。这也决定了各种不同模型的特点和适用范围。

3.1 J-M模型

马尔科夫过程模型是一类典型的随机过程类的软件可靠性模型,这类模型一般都是假定错误的出现率在软件无改动的区间内是常数,并且随着错误数目的减少而下降,J-M模型是最具代表性的马尔科夫模型。

基本假设:

1)程序中的固有错误数No是一个未知的常数。

2)程序中各个错误是相互独立的,每个错误导致系统发生失效的可能性大致相同,各次失效间隔时间(即错误发生间隔时间相同)也相互独立。

3)测试中检测到的错误都被排除,每次排错只排除一个错误,排除时间可以忽略不计,在排错过程中不引入新的错误。

4)程序的失效率在每个失效间隔时间内是常数,其数值正比于程序中残留的错误数,在第i个测试区间,其失效率函数为:

式中:i=1,2,…,N;

准———比例常数;

Xi———第i次失效间隔中以i-1次失效为起点的时间变量。

5)程序测试环境与预期的使用环境相同。

3.2 G-O非齐次泊松过程模型(NHPP)

G-O非齐次泊松过程模型也是一类典型的随机过程模型,其建模思想是用非齐次泊松过程开刻画软件的故障过程。

基本假设:

1)软件是在与预期的操作环境相似的条件下运行。

2)在任何时间序列|t0

3)每个错误的严重性和被检测到的可能性大致相同。

4)在t时刻检测出的累积错误数[N(t),t≥0]是一个独立增量的过程,N(t)服从期望函数M(t)的Poisson分布,在(t,t+Δt)时间区间中发现的错误数的期望值正比于t时刻剩余错误的期望值。

5)累计错误数的期望函数m(t)是一个单调有界增函数,并满足:

式中:a———最终可能被检出的失效总数的期望值。

6)错误被检测时失效是独立的。

3.3 Musa执行时间模型

Musa执行时间模型由Musa1975年提出,此模型是应用最为广泛的可靠性模型,它是最先将软件部件在计算机上的实际执行时间用于建模过程的模型之一。该模型以CPU时间为基础描述程序的可靠性特征,建立了CPU时间与日历时间的联系,并且该模型表明了程序的可靠性特征和测试过程中资源消耗的关系。

基本假设:

1)程序是在与预期操作相似的环境中运行。

2)错误的检测是相互独立的。

3)所有的软件失效都能够观察到。

4)各次失效间隔时间分段服从指数分布,即在任何一个测试区间中失效率为常数,进入下一个区间失效率改为另一个常数。

5)失效率正比于程序中残留的错误数。

6)测试中错误改正率正比于错误发生率。

7)错误识别人员,错误改正人员和计算机时间这三项资源的数量在测试过程中是固定的。

8)程序的MTBF从增加到时,资源的消耗增加量可以近似的表示为:

式中:Δγk-----指第k项资源的消耗量;

Δτ------执行时间增量,用CPU时间表示;

Δm------失效次数增量;

θk------第k次资源消耗的时间系数;

9)在测试过程中,错误识别人员可以充分使用的计算机时间是常数。

10)测试过程中错误改正人员的使用要受错误排队长度的影响,错误排队长度可由假定错误改正过程中服从Poisson过程得出,所以错误排队长度也是一个随机变量。

在这十项假设当中,前六项是研究软件可靠性特征所必须的假设,后面四项假设仅在研究软件可靠性特征与资源消耗的关系时用到。

3.4 时间序列分析模型

时间序列是指按时间顺序排列的随时间变化的数值的集合,这些数值通常是等时间间隔的测得的数据。在实际的生活中,时间序列普遍的存在,如股票的每日价格,产品销售的记录,地区的降雨量等等。在金融,经济,工程,天气预等领域时间序列建模分析的思想已经得到了广泛的应用,并且都能得到比较好的效果。

在软件可靠性建模研究当中,科研人员也正在研究应用时间序列的分析思想来进行建模,虽然研究的时间还比较短,但是也取得了一些很好的成果。

时间序列分析方法是软件可靠性建模当中的非随机过程分析方法之一,该方法是将失效数据作为时间相关序列,根据现在和过去的时序值来预测未来的时间相关的数据,同时能给出这些预测值的准确度。该方法主要考虑故障发生过程的动态特性,不需要对故障过程进行任何先决条件的假设就可以进行数据的分析,广义上来说,适用的范围相对于以上的几种模型来说要大。有效的避免了当模型的假设条件与实际的工程实践情况不一致时,导致的软件可靠性评估的无意义。

正是由于时间序列分析方法在基于传统的分析方法上,对于假设条件的要求逐步的弱化,因此,该方法引起了很多科研人员的关注,对于经典的时间序列模型在软件可靠性建模上的应用也取得了很多阶段性的成果,但是总体上来说,该类方法目前还处在尝试阶段,没有前几种方法研究的透彻。该方法的缺点也很明显,数学依赖太强,需要反复的修改模型,在选择最后模型的时候过程比较复杂。

4 各模型的比较分析

不论是在简单的短期预测中还是在较长时间段的预测中,各种模型所表现出来的可靠性度量的准确性差异很大,目前还无法给出一个普遍适应的模型,我们在评价软件可靠性模型的时候需要充分的考虑到它们与各种系统软件和实际操作环境之间的关系。

1)预报的有效性:预报的有效性是模型从软件系统现在和过去的故障行为(即失效数据)来预报其将来的故障行为的能力,即模型是否能够准确的反映出软件的可靠性,这是最重要的。

2)模型的能力:这取决于软件工程师、软件管理人员以及用户的具体要求,他们对软件可靠性评价结果的精确度的一个令人满意的要求。特别地,对于不同的用户,可能对于软件可靠性各项指标的可靠度要求并不一样,不同的模型也侧重于不同的可靠性指标。

3)假设条件的品质:模型的基本假设条件应该尽量的和实际的工程实践环境相一致。这样的模型才能更加真实的反应出软件的可靠性,得到的结果才有意义。

4)模型的适用性:模型的适用性就是模型对于不同规模、结构和功能的软件产品的适用程度。可以从软件的规模、结构;运行剖面;开发环境;测试策略;软件的完善程度等五个方面进行评价。

5)模型的易用性:应该充分的考虑到模型在实际应用中的易用性,这就需要模型具备以下三个特点:

(1)最重要的是在模型收集所需要的数据时应尽可能简单且代价较低;

(2)模型的概念简单明了,在实际应用中易于理解;

(3)模型中的参数应易于理解且估值过程简单。

5 结束语

软件可靠性工程研究已经成为了软件工程学科领域的一个重要的研究方向,其受重视程度也越来越高。基于计算机软件在各行各业中都发挥着至关重要的作用,一旦软件失效,或者出现故障,那么随之带来的损失将会及其的惨重,有时候甚至能够危害到人类的生命。

而尽管软件的可靠性问题非常重要,全世界的科研人员也都积极努力的在研究,并且也取得了许多阶段性甚至革命性的成果,但是至今仍然没有得到一个普遍的行之有效的方法来解决该问题。对于目前研究出来的数百种模型来看,不同的模型有不同的特点,适用范围以及它的侧重点。软件工程师在考虑对自己的软件系统进行可靠性评估时,应该充分的综合各方面的因素以及自己主要要求的指标来选择合适的模型。

参考文献

[1]姚珍.基于失效数据的软件可靠性评估及分析工具的实现[D].成都:电子科技大学,2007.

[2]马飒飒,王光平,赵守伟.基于时间序列的软件可靠性预测模型研究[J].计算机工程与设计,2007,28(11):2520-2523.

[3]孙勇.软件可靠性模型应用研究[D].南京:东南大学,2004.

[4]白晓波.实用软件可靠性模型探讨[J].计算机与网络,2005,7(10):149-150.

[5]邹丰忠,刘海青,王林.软件可靠性综合模型[J].武汉大学学报:工学版,2003,36(1):86-88.

建模软件 篇10

现代主流软件工程技术主张采用模型驱动的软件开发方法。模型是现实系统的一个抽象,它提供了系统的蓝图,每个系统都可以从不同的方面用不同的模型来描述。所谓软件建模就是构建软件模型的过程,它是用户与开发者之间最主要的沟通渠道,同时也是整个软件系统开发过程中最重要的环节之一。

一、UML的建模机制

UML是由Rational公司三位著名的信息系统和面向对象方法学专家Grady Booch、James Rufnbaugh和Ivar Jacoboson联合开发的面向对象的建模语言,1997年被OMG批准作为面向对象建模语言的标准。UML作为一种通用的标准建模语言,易于表达、功能强大,不但适用于任何以面向对象技术来描述具有静态结构和动态行为类型的软件系统,而且能够应用于从需求规格描述至系统测试和维护等软件系统开发的不同阶段。因此,UML被广泛应用于可视化描述和构造软件系统,在信息管理系统的建模与开发中得到较为广泛的应用。

作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。UML语义用于描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致和通用的定义性说明,使开发者能在语义上取得一致,从而消除了因人而异的表达方法所造成的影响。而UML表示法定义了UML的表示方法,为开发者或开发工具使用这些符号和文本语法进行系统建模提供了标准。

UML用模型来描述系统的静态结构或动态行为特征,共定义了5种视图,包含了9种描述系统的图,可以从不同的视角为系统构架建模,从而形成系统的不同视图。

1. 用例视图

用例视图用于描述系统应该具有的功能集,强调从用户的角度看到的或需要的系统功能,是对系统的抽象表示。用例视图通常用用例图表示,用例图用于显示若干角色,以及这些角色与系统提供用例之间的连接关系,主要从用户的角度描述系统的功能,并指出各功能的操作者。用例图有助于系统开发者与用户进行交流,以获取系统需求。

2. 静态视图

静态视图用于对应用领域中的概念,以及系统实现有关的内部概念建模,静态视图包含类图、对象图、包图三种图。类图描述系统的静态结构,用于模拟保证系统正常工作的所有必要资源;对象图描述系统在某个时刻的静态结构,用于模拟资源的示例或事实;包图用于描述系统的分层结构。

3. 动态视图

动态视图包含以交互的名义对行为进行建模的图,有顺序图、状态图、协作图和活动图。顺序图表示对象之间在时间和顺序上的一种动态协作关系,主要目的是表现随着时间推移发生在对象之间的交互情况;协作图描述对象之间的交互关系,以及对象之间的联系;状态图描述的是一个单独的对象,在其生命周期中,由外部激励所导致的状态变化;活动图显示系统中从一个活动到另一个活动的流程,强调对象之间的流程控制。

4. 构件视图和配置视图

构件视图体现系统实现环境的结构和行为特征,用构件图表示。构件图描述系统的元素的组织,用于模拟实现视图,是实际的软件模块。配置视图体现系统实现环境的结构和行为特征,用部署图表示。部署图描述了环境元素的配置,并把实现系统的元素映射到配置上,它模拟的是硬件环境,图上的每个节点都代表某种类型的硬件。构件图和配置图都是对面向对象系统的物理方面建模时使用的图形。

从应用的角度看,当采用面向对象技术进行系统设计时,我们第一步应用用例视图进行系统的需求分析;第二步根据需求建立系统的静态结构;第三步是描述系统的动态行为。其中第一步和第二步都是静态的,是UML的静态建模机制,而第三步中所建立的模型,或者是可执行的,或者表示执行时的时序状态和交互关系,是UML的动态建模机制。因此,标准建模语言UML的主要内容可以归纳为静态建模机制和动态建模机制。

二、学习管理系统软件建模过程

1. 学习管理系统的需求建模

学习管理系统是一个开放的、基于Web的自动化信息管理系统。系统不仅需要具备教师对课程、作业、考试等进行的管理功能,而且要通过计算机网络向分布在不同地理位置的学习者提供课程浏览、课程学习、资源搜索、在线作业、在线考试等服务功能。同时,系统还要充分利用数字化网络学习环境,方便学习者通过异步讨论和实时交流进行协作学习。

为了正确获取用户需求并方便与用户沟通,我们可使用UML用例图建立模型表示系统的详细需求。用例图描述一组用例、参与者和它们之间的关系。参与者用人形图标表示,用例用椭圆符号表示,连线描述它们之间的关系。一般情况下,我们可以先给出顶层用例图,然后根据用户的要求,进一步细化用例,在细化过程中利用泛化关系、包含关系和扩展关系等对用例进行分解和组织。

学习管理系统的角色有三类:管理员、教师和学生。管理员使用该系统进行用户管理;教师使用该系统对学生课程学习、作业、考试试题和学生成绩进行管理;学生则可以使用该系统来进行课程学习、在线作业、在线考试和成绩查询。教师和学生还可以利用该系统进行在线交流、离线讨论、查看学习记录和查看系统信息等活动。每一种活动代表一个用例,这些用例还可以进一步细化,如课程管理用例可进一步细化为课程登记、开设课程、课程查询等用例。整个学习管理系统顶层的用例图如图1所示。

2. 学习管理系统的静态建模

完成系统需求建模后,对用例的分析推导,我们可以画出系统的静态模型。静态模型用类图、对象图、包图来定义系统中类 (对象) 与类 (对象) 之间的关系。类是具有相同属性、操作、关系的对象集合的总称,通常在UML中用矩形表示。类图是描述类、接口、协作和它们之间关系的图,主要用来描述软件系统的静态结构。因此,类图在静态视图中是必须的,也是最为重要的。对象图与类图比较一致,对象之间的链接关系表明类之间的关系。包图由包和类构成,描述系统类与包的分层结构。类图、对象图、包图共同组成对系统静态视图的描述。

学习管理系统中“课程管理”用例的类图如图2所示。

在“课程管理”用例中,有“课程类 (Course) ”、“开设课程类(CourseOffering)”、“人员类 (People) ”、“教师类 (Professor) ”、“学生类 (Student) ”、“学生登记类(StudentRegistion)”、“课程登记类(CourseRegistion)”等。其中,学生类和教师类是人员类的子类,学生登记类和课程登记类是开设课程类的子类。父类和子类之间的关系用三角符号表示,一般的联系用连线表示。

除了一般类外,系统还定义了“课程信息表单 (CourseInfoForm) ”、“查询课程表单(SearchCourseForm)”、“课程登记表单 (CourseRegistionForm) ”等接口类,可以分别为教师、学生、管理员提供课程登记、课程查询、课程信息管理等功能。

3. 学习管理系统的动态建模

在系统静态模型的基础上,我们需要分析和设计系统的动态结构,并建立动态模型。动态模型描述系统随时间变化的行为,在UML中,动态模型主要是建立系统的交互图和行为图。交互图包括时序图和协作图,而行为图则包括状态图和活动图。时序图用来显示对象之间的关系,并强调对象之间的设计顺序,同时显示对象之间的交互;协作图主要用来描述对象之间的交互关系;状态图描述对象所有可能的状态及引起状态转换的条件;活动图是一种特殊形式的状态机,用于对计算流程和工作流程的建模。

学习管理系统中“在线作业”用例的时序图如图3所示。各构件之间的依赖关系。一个构件可能是一个源代码、二进制文件或一个可执行文件构件。构件不仅包含逻辑类或实现类的有关信息,而且构件之间存在依赖关系,这种依赖关系有助于分析和理解构件之间的相互影响程度。学习管理系统中部分构件的构件图如图4所示。

图4中,“学习管理”构件包括系统执行程序(LearningManagement.exe)、“课程管理”构件实现课程管理的动态库(Course.dll)、“成绩管理”构件实现成绩管理的动态链接库(Score.dll)、“作业管理”构件提供作业管理的动态库 (HomeWork.dll) 等。另外,学习管理系统中还存在“考试管理”构件、“分组管理”构件等构件。“学习管理”构件通过接口依赖于“课程管理”、“成绩管理”和“人员管理”等构件,而“课程管理”构件依赖于“课程”、“开设课程”等构件。

配置图主要用于对系统的构件视图建模,主要描述系统中各个物理组成部分的分布、提交和安装过程。学习管理系统基于Web网络设计,将数据库服务器、应用服务器、学习管理系统的相应构件配置在不同的节点上。各个部分通过网络相互通信,实现一个“浏览器/服务器”结构的分布式系统。

在学习管理系统的设计和开发中,UML可以用于设计和开发的各个阶段,能够从更高的抽象层次对系统进行调整和维护,从而可以快速实现系统的重构和修改,大大提高开发效率。

参考文献

[1]丁永刚.利用UML开发基于J2EE的在线课程学习系统[J].教育技术装备, 2005, (10) .

[2]胡锡伟, 陈德人.基于UML的汽配行业销售管理建模与实现[J].计算机工程与设计, 2005, (4) .

[3]吴立春, 卞良, 严军.基于UML的网上考试系统的设计[J].宁夏医学院学报, 2004, (8) .

[4]时培芳, 张永胜.基于UML的工作流管理系统模型的研究[J].计算机系统应用, 2005, (10) .

[5]吴建, 郑潮, 汪杰.UML基础与Rose建模案例[M].北京:人民邮电出版社, 2005.

[6]李虎, 王美英, 万里威.UML基础、案例与应用[M].北京:人民邮电出版社, 2004.

[7]Ivan Porres.Modeling and AnalyzingSoftware Behavior in UML[EB/OL].http://www.tucs.fi/publication/phd phdthesis/phd-porres01a.pdf.

上一篇:手势控制下一篇:三维拾取