




已阅读5页,还剩104页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Java的规则引擎目 录1.简介31.1业务规则31.2规则引擎产生背景32.规则引擎52.1业务规则52.2规则引擎52.3规则引擎的使用方式52.4规则引擎架构与推理62.5规则引擎的算法73.Java规则引擎83.1Java规则引擎商业产品83.2规则引擎产品特点分析93.2.1IBM WebSphere ILOG JRules93.2.2Redhat JBoss Dools123.2.3JESS124.Java规则引擎API(JSR94)144.1简介144.2简介Java规则引擎API体系结构143.2.4规则管理API143.2.5运行时API154.3Java规则引擎API安全问题164.4异常与日志164.5JSR94小结175规则语言181. 简介1.1 业务规则一个业务规则包含一组条件和在此条件下执行的操作它们表示业务规则应用程序的一段业务逻辑。业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技术人员使用面向对象的技术语言或脚本来定制。业务规则的理论基础是:设置一个或多个条件,当满足这些条件时会触发一个或多个操作。1.2 规则引擎产生背景复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business logic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时(即商务时间)可以动态地管理和修改从而提供软件系统的柔性和适应性。规则引擎正是应用于上述动态环境中的一种解决方法。企业管理者对企业级IT系统的开发有着如下的要求:1. 为提高效率,管理流程必须自动化,即使现代商业规则异常复杂;2. 市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新;3. 为了快速、低成本的更新,业务人员应能直接管理IT系统中的规则,不需要程序开发人员参与。而项目开发人员则碰到了以下问题:4 程序=算法+数据结构,有些复杂的商业规则很难推导出算法和抽象出数据模型;5 软件工程要求从需求-设计-编码,然而业务规则常常在需求阶段可能还没有明确,在设计和编码后还在变化,业务规则往往嵌在系统各处代码中;6 对程序员来说,系统已经维护、更新困难,更不可能让业务人员来管理。基于规则的专家系统的出现给开发人员以解决问题的契机。规则引擎由基于规则的专家系统中的推理引擎发展而来。2. 规则引擎2.1 业务规则一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑。业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技术人员使用面向对象的技术语言或脚本来定制。业务规则的理论基础是:设置一个或多个条件,当满足这些条件时会触发一个或多个操作。2.2 规则引擎什么是规则引擎?规则引擎是如何执行规则的?这可以称之为“什么”与“如何”的问题。到底规则引擎是什么还是目前业界一个比较有争议的问题,在JSR-94种也几乎没有定义。可以这样认为充分定义和解决了“如何”的问题,“什么”问题本质上也迎刃而解。也许这又是一种“先有蛋还是先有鸡”哲学争论。今后标准规则语言的定义和推出及相关标准的制定应该可以给这样的问题和争论划上一个句号。本文中,暂且这样述说什么是规则引擎:规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据规则做出业务决策。2.3 规则引擎的使用方式由于规则引擎是软件组件,所以只有开发人员才能够通过程序接口的方式来使用和控制它,规则引擎的程序接口至少包含以下几种API:l 加载和卸载规则集的API;l 数据操作的API;l 引擎执行的API。开发人员在程序中使用规则引擎基本遵循以下5个典型的步骤:l 创建规则引擎对象;l 向引擎中加载规则集或更换规则集;l 向引擎提交需要被规则集处理的数据对象集合;l 命令引擎执行;l 导出引擎执行结果,从引擎中撤出处理过的数据。使用了规则引擎之后,许多涉及业务逻辑的程序代码基本被这五个典型步骤所取代。一个开放的业务规则引擎应该可以“嵌入”在应用程序的任何位置,不同位置的规则引擎可以使用不同的规则集,用于处理不同的数据对象。此外,对使用引擎的数量没有限制。2.4 规则引擎架构与推理规则引擎的架构如下图所示:规则引擎的推理步骤如下:a.将初始数据(fact)输入至工作内存(Working Memory)。b.使用Pattern Matcher将规则库(Rules repository)中的规则(rule)和数据(fact)比较。c.如果执行规则存在冲突(conflict),即同时激活了多个规则,将冲突的规则放入冲突集合。d.解决冲突,将激活的规则按顺序放入Agenda。e.执行Agenda中的规则。重复步骤b至e,直到执行完毕Agenda中的所有规则。任何一个规则引擎都需要很好地解决规则的推理机制和规则条件匹配的效率问题。当引擎执行时,会根据规则执行队列中的优先顺序逐条执行规则执行实例,由于规则的执行部分可能会改变工作区的数据对象,从而会使队列中的某些规则执行实例因为条件改变而失效,必须从队列中撤销,也可能会激活原来不满足条件的规则,生成新的规则执行实例进入队列。于是就产生了一种“动态”的规则执行链,形成规则的推理机制。这种规则的“链式”反应完全是由工作区中的数据驱动的。 规则条件匹配的效率决定了引擎的性能,引擎需要迅速测试工作区中的数据对象,从加载的规则集中发现符合条件的规则,生成规则执行实例。1982年美国卡耐基梅隆大学的Charles L. Forgy发明了一种叫Rete的算法,很好地解决了这方面的问题。目前世界顶尖的商用业务规则引擎产品基本上都使用Rete算法。2.5 规则引擎的算法大部分规则引擎产品的算法,基本上都来自于Dr. Charles Forgy在1979年提出的RETE算法及其变体,Rete算法是目前效率最高的一个Forward-Chaining推理算法,Drools项目是Rete算法的一个面向对象的Java实现,Rete算法其核心思想是将分离的匹配项根据内容动态构造匹配树,以达到显著降低计算量的效果。详情请见CIS587:The RETE Algorithm,The Rete Algorithm,RETE演算法,专家系统原理与编程中第11章等。3. Java规则引擎目前主流的规则引擎组件多是基于Java和C+程序语言环境,已经有多种Java规则引擎商业产品与开源项目的实现,其中有的已经支持JSR94,有的正朝这个方向做出努力,列出如下:3.1 Java规则引擎商业产品Java规则引擎商业产品主要有(Jess不是开源项目,它可以免费用于学术研究,但用于商业用途则要收费):组织/厂商名称主页说明JSR 兼容性ILOGJRules/software/cn/websphere/ilog/products/jrules/index.html已被IBM收购JRules 4.6DroolsDrools/drools.html已被Redhat JBoss收购,转向商业化,仍有社区版本基于JSR94和Rete算法Sandia LabsJESS/jess/JESS 6.1 p6JLisaJLisb/商业化/社区支持TmaxSoftProRule/jsp/main.jspFair Isaac, Blaze AdvisorBlaze Advisor/fic/cn/fic/cn/index.htmPegaSystems Inc.PegaRULES Process Commander/CRM行业的解决方案供应商,转向BPM领域3.2 规则引擎产品特点分析这里对目前市场上几个比较重要的基于Java的商业规则引擎产品进行特点分析。3.2.1 IBM WebSphere ILOG JRules作为企业IT基础设施的关键部分,业务流程管理越来越重要了。在BPM产品套件平台上,可以建模、部署、执行和监视企业的业务流程,业务流程可以包含业务规则。例如,在银行的账户验证过程中,评估客户资格或确定价格的业务策略很复杂,而且在快速发展的市场中常常会变动。把这些策略硬编码在过程中是不合适的,因为很难在运行时管理和维护业务规则。通过把业务规则和业务流程分隔开,单独地执行和管理它们,可以提高整个业务流程的敏捷性和扩展性。ILOG的JRules在融入到IBM的WebSphere套件体系后,在架构层面和技术层面充分体现了这种业务流程与业务规则分离的思想,如下图所示:ILOG JRules是先进的业务规则管理系统(Business Rule Management System,BRMS),提供编写、部署和管理业务规则等业务功能,支持高效地修改策略和快速部署策略。ILOG JRules提供一种建模、实现和部署业务规则的系统化方法。它支持以有秩序的高效的方式进行协作。它包含的工具针对不同用户的技能和知识优化过,因此策略经理、业务分析师和开发人员都可以获得所需的支持,可以尽可能发挥BRMS的价值。下图是JRules的架构: 下面简要介绍ILOG JRules架构的每个部分:ILOG Rule Studio:用于开发规则应用程序的基于Eclipse的开发环境。它允许合作编辑和调试Java代码和规则。特性包括:l Eclipse集成l 编辑规则时的自动纠正l 代码生成向导l 单一接口存储库l 源代码控制集成l 冲突和重复探测l 简便的部署ILOG Rule Team Server:这是一个Web环境,分布式业务团队可以通过它协作、创建、管理、验证和部署业务规则。l ILOG JRules Rule Execution Server提供一个健壮的与J2SE和J2EE兼容的执行环境,用于部署和执行业务规则。Rule Execution Server包含对业务规则进行同步、异步和基于Web服务的调用的组件,还包含一个Web管理控制台。它与ILOG JRules Rule Studio和Rule Team Server完全集成,支持开发人员和业务用户部署业务规则。l ILOG JRules是IBM WebSphere系列产品之一,可以与Process Server和Integration Developer等其他WebSphere产品集成。ILOG JRules让业务用户可以快速地创建和修改规则以满足经常变化的业务需求,不需要IT人员协助。它还有助于在整个企业内确保业务规则的可见性、可跟踪性和质量,让业务经理可以更快、更好地做出决策。由于这些原因,ILOG JRules很适合与IBM BPM产品集成,从而为客户的业务流程场景提供策略和决策服务。下图给出一个从Process Server中的业务流程调用JRules服务的示例。说明了JRules如何与WebSphere集成:3.2.2 JBoss DoolsDrools 也是基于Charles Forgy s 的Rete 算法,专为Java 语言所设计的规则引擎。Rete 算法应用于面向对象的接口将使基于商业对象的商业规则的表达更为自然。Drools 是用Java 写的, 但能同时运行在Java 和.Net 上。Drools 提供了声明式程序设计(Declarative Programming) , 并且使用域描述语言(Domain Specific Languages,DSL ) 为问题域定义了某种模式的XML,从而可以用来描述用户问题域。DSLs 包含的XML 元素(Element) 和属性(Attribute)代表了问题域中各种要素。例如:规则集是符合特定模式的XML文件。规则“语言”实际就是Portal 表达软件包的使用, 可以扩充以满足规则引擎的额外要求。Drools规则集的扩展名为.rls, 一般包括标签cr:rule- set、规则cr:rule、每个规则中又定义有测试条件cr:condition与动作cr:actions。例如:rule-set name=test rules com.zhang.rules x.getStatus().equals(y:borrower) vo.setMassage(z,late book) 3.2.3 JESS在JESS中,规则的表达形式沿用了CLIPS的语法结构,通过对规则前件和后件的限定,它可以支持内容丰富的模式匹配语言。另外,Jess支持面向过程的编程方式,它提供了一些语句来控制规则后件的操作流程,如使用if.then.else和while.do.语句,这样它就能很有效地利用面向过程编程的优势。总之,JESS的这些特性使系统拥有很强的知识表示能力。例如:( defrule library- rule- 1 ( book ( name ?X) ( status late) ( borrower ?Y) ) ( borrower ( name ?Y) ( address ?Z) )= ( send- late- notice ?X ?Y ?Z) )这套规则可以被翻译作中文这样理解:This rule might be库规则#1:如果出现一本超期的名字为X的书,它是名字为Y的人所借,并且,Z知道借者的地址, 则给Y发送一条关于X书的通知到Z处。4. Java规则引擎API(JSR94)4.1 简介过去大部分的规则引擎开发并没有规范化,有其自有的API,这使得其与外部程序交互集成不够灵活。转而使用另外一种产品时往往意味需要重写应用程序逻辑和API调用,代价较大。规则引擎工业中标准的缺乏成为令人关注的重要方面。2003年11月定稿并于2004年8月最终发布的JSR 94(Java规则引擎API)使得Java规则引擎的实现得以标准化。Java规则引擎API由javax.rules包定义,是访问规则引擎的标准企业级API。Java规则引擎API允许客户程序使用统一的方式和不同厂商的规则引擎产品交互,就像使用JDBC编写独立于厂商访问不同的数据库产品一样。Java规则引擎API包括创建和管理规则集合的机制,在Working Memory中添加,删除和修改对象的机制,以及初始化,重置和执行规则引擎的机制。4.2 简介Java规则引擎API体系结构Java规则引擎API分为两个主要部分:运行时客户API(the Runtime client API)和规则管理API(the rules administration API)。3.2.4 规则管理API规则管理API在javax.rules.admin中定义,包括装载规则以及与规则对应的动作(执行集 execution sets)以及实例化规则引擎。规则可以从外部资源中装载,比如说URI、Input streams、XML streams和readers等等。同时,管理API提供了注册和取消注册执行集以及对执行集进行维护的机制。使用admin包定义规则有助于对客户访问运行规则进行控制管理,它通过在执行集上定义许可权使得未经授权的用户无法访问受控规则。管理API使用类RuleServiceProvider来获得规则管理(RuleAdministrator)接口的实例。规则管理接口提供方法注册和取消注册执行集。规则管理器(RuleAdministrator)提供了本地和远程的RuleExecutionSetProvider。在前面已提及,RuleExecutionSetProvider负责创建规则执行集。规则执行集可以从如XML streams、input streams等来源中创建。这些数据来源及其内容经汇集和序列化后传送到远程的运行规则引擎的服务器上。大多数应用程序中,远程规则引擎或远程规则数据来源的情况并不多见。为了避免这些情况中的网络开销,API规定了可以从运行在同一JVM中规则库中读取数据的本地RuleExecutionSetProvider。规则执行集接口除了拥有能够获得有关规则执行集的方法,还有能够检索在规则执行集中定义的所有规则对象。这使得客户能够知道规则集中的规则对象并且按照自己需要来使用它们。3.2.5 运行时API运行时API定义在javax.rules包中,为规则引擎用户运行规则获得结果提供了类和方法。运行时客户只能访问那些使用规则管理API注册过的规则,运行时API帮助用户获得规则对话并且在这个对话中执行规则。运行时API提供了对厂商规则引擎API实现的类似于JDBC的访问方法。规则引擎厂商通过类RuleServiceProvider(类RuleServiceProvider提供了对具体规则引擎实现的运行时和管理API的访问)将其规则引擎实现提供给客户,并获得RuleServiceProvider唯一标识规则引擎的URL。URL推荐标准用法是使用类似“com.mycompany.myrulesengine.rules.RuleServiceProvider”这样的Internet域名空间,这将有助于访问URL的唯一性。类RuleServiceProvider内部实现了规则管理和运行时访问所需的接口。所有的RuleServiceProvider要想被客户所访问都必须用RuleServiceProviderManager进行注册。注册方式类似于JDBC API的DriverManager和Driver。运行时接口是运行时API的关键部分。运行时接口提供了用于创建规则会话(RuleSession)的方法,规则会话如前所述是用来运行规则的。运行时API同时也提供了访问在service provider注册过的所有规则执行集(RuleExecutionSets)。规则会话接口定义了客户使用的会话的类型,客户根据自己运行规则的方式可以选择使用有状态会话或者无状态会话。无状态会话的工作方式就像一个无状态会话bean。客户可以发送单个输入对象或一列对象来获得输出对象。当客户需要一个与规则引擎间的专用会话时,有状态会话就很有用。输入的对象通过addObject()方法可以加入到会话当中。同一个会话当中可以加入多个对象。对话中已有对象可以通过使用updateObject()方法得到更新。只要客户与规则引擎间的会话依然存在,会话中的对象就不会丢失。RuleExecutionSetMetaData接口提供给客户让其查找规则执行集的元数据(metadata)。元数据通过规则会话接口(RuleSession Interface)提供给用户。使用运行时Runtime API的代码片断如下所示:RuleServiceProvider ruleProvider = RuleServiceProviderManager.getRuleServiceProvider(com.mycompany.myrulesengine.rules. RuleServiceProvider);RuleRuntime ruleRuntime = ruleProvider.getRuleRuntime();StatelessRuleSession ruleSession = (StatelessRuleSession) ruleRuntime.createRuleSession(ruleURL, null, RuleRuntime.STTELESS_SESSION_TYPE);List inputRules = new ArrayList();inputRules.add(new String(Rule 1);inputRules.add(new Integer(1);List resultRules = ruleSession.executeRules(inputRules);4.3 Java规则引擎API安全问题规则引擎API将管理API和运行时API加以分开,从而为这些包提供了较好粒度的安全控制。规则引擎API并没有提供明显的安全机制,它可以和J2EE规范中定义的标准安全API联合使用。安全可以由以下机制提供:如Java authentication and authorization service(JAAS),the Java cryptography extension(JCE),Java secure Socket Extension(JSSE),或者其它定制的安全API。JAAS能被用来定义规则执行集的许可权限,从而只有授权用户才能访问。4.4 异常与日志规则引擎API定义了javax.rules.RuleException作为规则引擎异常层次的根类。所有其它异常都继承于这个根类。规则引擎中定义的异常都是受控制的异常(checked exceptions),所以捕获异常的任务就交给了规则引擎。规则引擎API没有提供明确的日志机制,但是它建议将Java Logging API用于规则引擎API。4.5 JSR94小结JSR94为规则引擎提供了公用标准API,仅仅为实现规则管理API和运行时API提供了指导规范,并没有提供规则和动作该如何定义以及该用什么语言定义规则,也没有为规则引擎如何读和评价规则提供技术性指导。JSR94规范将上述问题留给了规则引擎的厂商。5 规则语言JSR 94中没有涉及用来创建规则和动作的语言.规则语言是规则引擎应用程序的重要组成部分,所有的业务规则都必须用某种语言定义并且存储于规则执行集中,从而规则引擎可以装载和处理他们。由于没有关于规则如何定义的公用规范,市场上大多数流行的规则引擎都有其自己的规则语言,目前便有许多种规则语言正在应用,因此,当需要将应用移植到其他的Java规则引擎实现时,可能需要变换规则定义,如将Drools私有的DRL规则语言转换成标准的ruleML,JESS规则语言转换成ruleML等。这个工作一般由XSLT转换器来完成。规则语言的详情这里不作详细介绍,名称及其网址列出如下:规则语言名称URLRule Markup language (RuleML)/Simple Rule Markup Language (SRML)/srml.htmlBusiness Rules Markup Language (BRML)/brml.htmlSWRL: A Semantic Web Rule Language Combining OWL and RuleML/2003/11/swrl/多种规则语言的使用使得不同规则引擎实现之间的兼容性成为问题.通用的规则引擎API或许可以减轻不同厂家API之间的问题,但公用规则语言的缺乏将仍然阻碍不同规则引擎实现之间的互操作性。尽管业界在提出公用规则语言上做出了一些努力,比如说RuleML、SRML的出现,但距离获得绝大部分规则引擎厂商同意的公用标准还有很长的路要走。 109*本科毕业设计(论文)管理暂行规定毕业设计(论文)是本科人才培养的重要实践性教学环节,也是学士学位评定的重要依据。为了切实做好我校的毕业设计(论文)工作,规范毕业设计(论文)工作的管理,提高毕业设计(论文)的质量,特制定本规定。一、毕业设计(论文)的主要目的(一)培养学生运用所学知识独立地分析和解决本专业范围内一般问题的能力,培养学生的创新意识和实践能力,使学生从事学术研究的能力得到初步的训练;(二)培养学生理论联系实际的工作作风和严谨认真的科学态度;(三)培养学生分析设计能力、研究实验能力、工程实践能力、经济分析能力、外文阅读能力和计算机的运用能力,以及社会调查、文献资料查阅和论文写作能力。二、毕业设计(论文)的基本要求(一)按照各专业“毕业设计(论文)教学大纲”的要求进行;(二)要具有学术性,要对自然科学或社会科学内某一领域进行专门、系统的研究,并表达其研究成果;(三)要具有创见性,要对学术或工程的某个问题有新的发现、新的构想或新的发展和完善;(四)要具有科学性,要求论述系统而完整,首尾一贯而不前后矛盾,实事求是而不主观臆造;(五)要具应用性,要能解决生产实际问题,在技术改造、生产管理等通过方面有所创造;(六)应做到观点正确、论据充分、推理严密、计算准确,层次分明、条理清楚、语言精炼,有必要的图表和相关资料等;(七)应参阅一定数量的外文资料,并要求在毕业设计(论文)中反映出来。三、毕业设计(论文)的工作程序毕业设计(论文)工作程序分为选题、开题、撰写论文或设计、中期检查、答辩、归档等环节。四、毕业设计(论文)的时间安排毕业设计(论文)工作时间为812周,时间安排应按*本科生毕业设计(论文)工作流程执行,集中用于毕业设计(论文)的时间不得少于专业培养计划规定的周数。五、毕业设计(论文)的领导与管理全校毕业设计(论文)在分管教学副校长领导下进行,分级管理,层层负责。(一)教务处毕业设计(论文)管理工作职责:1、汇总各院(部)毕业设计(论文)题目和指导教师安排,协调有关问题;2、做好毕业设计(论文)前期、中期、后期检查工作,对未达到各阶段进度、质量要求或违反有关规定的院(部)提出整改要求;3、开展学校毕业设计(论文)工作评估和研究工作。(二)院(部)毕业设计(论文)管理工作职责:各院(部)成立毕业设计(论文)工作领导小组,确定毕业设计(论文)指导教师,布置毕业设计(论文)工作任务,检查本院(部)毕业设计(论文)工作落实情况。院(部)毕业设计(论文)管理工作职责为: 1、审查毕业设计(论文)选题、下达任务书,安排指导教师,布置毕业设计(论文)有关工作;2、定期检查毕业设计(论文)工作进展情况,协调处理毕业设计(论文)中的有关问题,督促检查指导教师的工作;3、对学生毕业设计(论文)按规范化要求进行形式审查,组织毕业设计(论文)答辩和成绩评定工作。对答辩小组提出的优秀的毕业设计(论文)及评阅答辩中有争议的毕业设计(论文),组织答辩委员会进行复议,最终确定成绩;4、按学校有关要求,保存与毕业设计(论文)有关的电子和纸质文档;5、做好本院(部)学生毕业设计(论文)总结与评估工作。(三)毕业设计(论文)指导教师职责:1、指导学生选题,拟定任务书,安排学生做开题报告,编写指导方案,制定计划和工作程序;2、对学生提出具体要求,指定主要参考资料和社会调查内容,规定学生应完成的查阅中外文资料、文献综述、开题报告、各项实验数据、计算工作(包括上机)、设计(论文)等;3、采取多种方式检查学生的工作进度和工作质量,及时解答和处理学生提出的有关问题,并认真填写毕业设计(论文)指导记录表;4、做好学生外文翻译的评阅工作,指导学生按规范要求正确撰写毕业设计(论文);5、在学生答辩前对毕业设计(论文)(包括设计说明书、计算资料、实验报告、图纸或论文等)进行审查,认真填写毕业设计(论文)评语,指导学生参加答辩;6、根据院(部)安排参加答辩工作。(四)学生在毕业设计(论文)过程中必须做到:1、重视毕业设计(论文)过程,明确各环节目的、意义和要求,虚心接受指导教师和实验技术人员的指导,保质保量地完成毕业设计(论文);2、独立完成规定的工作任务,不弄虚作假,不抄袭、剽窃他人成果;3、认真填写*本科毕业设计(论文)研究过程记录表;4、毕业设计(论文)成果、资料应于答辩结束后及时交指导教师收存,凡涉及到国家机密、知识产权、技术专利、商业利益的成果未经院(部)许可,学生不得擅自带离学校。六、毕业设计(论文)的选题与开题(一)选题原则1、原则上一生一题,当一个课题比较大时,可以分成几个小课题,每个学生完成一个小课题时必须保证其主要部分为独立进行的工作,使每个学生都受到较全面的训练;2、选题应体现本专业的培养目标,达到毕业设计(论文)大纲的教学要求;3、选题应特别注意有利于学生综合应用所学知识,有利于学生能力的培养,并能保证各专业所应当具有的基本技能的训练;4、选题应与社会、生产、教学、科研等实际相结合。理工科毕业设计(论文)的选题应注重在具有实际应用前景、具有创新构思的课题中选取,鼓励理工科学生进行毕业设计,其中,工科毕业设计所占比例应不少于80%;文科及经管类的选题需注重分析解决当前经济改革、社会现实生活和理论研究中的热点、难点、焦点问题;。毕业设计(论文)在实验、实习、工程实践和社会调查等社会实践中完成的比例要在50%以上。5、选题难度和工作量要适当,使学生能在规定的时间内完成任务;6、选题要有一定层次区分,有利于各类学生提高水平,鼓励学生有所创新;7、各专业的选题数须多于本专业当届的毕业生数。每学年选题应适当更新,不同届选题重复率须控制在20%以内;8、各专业选题须经院(部)严格审查并报教务处备案。(二)选题、开题程序1、指导教师提出的毕业设计(论文)课题须经院(部)审查后向学生公布,通过师生双向选择或经协商分配,确定学生毕业设计(论文)题目及指导教师。选题和指导教师一经确定,不得随意更改;2、各院(部)应不迟于第七学期第十四周结束前完成选题工作,毕业设计(论文)任务书不迟于第七学期第十五周前下达给学生,院(部)应将毕业设计(论文)选题汇总表于第七学期第十六周结束前报教务处;3、毕业设计(论文)开题工作应在第七学期结束前完成,包括文献调研、文献综述、开题报告等,院(部)应根据本院(部)毕业设计(论文)工作的具体计划,安排学生在指导小组范围内作开题报告;七、毕业设计(论文)任务书 (一)毕业设计(论文)任务书是学生进行毕业设计(论文)的指导性文件,每个学生都必须有自己的任务书; (二)任务书的内容包括:设计(论文)研究的背景和依据、任务和基本要求、进程安排等;(三)任务书由指导教师填写,交教研室审查,经院(部)批准后方可实施;(四)毕业设计(论文)结束后,任务书要与毕业设计(论文)一起送交院(部)保存。八、毕业设计(论文)指导教师配备(一)毕业设计(论文)指导教师应由具有中职及以上专业技术职务的教师或工程技术人员担任,助教等初级职称人员不能单独指导毕业设计(论文),但可根据需要安排协助指导教师的工作。指导教师名单由院(部)毕业设计(论文)工作领导小组审定后,报教务处备案;(二)指导毕业设计(论文)期间,指导教师必须坚守岗位,各院(部)要严格控制指导教师出差。确因工作需要出差的,须经院(部)分管教学副院长批准,并委派水平相当的教师代理指导;(三)对于在校外进行毕业设计(论文)的学生,院(部)可聘请相当于中级专业技术职务及以上的工程技术人员或研究人员担任指导教师,但院(部)必须指定专人进行检查,掌握进度,保证质量,协调解决有关问题;(四)每位指导教师指导的学生数原则上不超过8人,科研、教研能力突出的高级职称教师或具有博士学位人员可适当增加指导人数(最高不超过10人)。指导教师对每个学生的指导每个环节不得少于1次,总计不得少于3次。九、设计(论文)的撰写1、毕业设计(论文)的撰写按“*本科毕业设计(论文)撰写规范”执行;2、设计(论文)正文字数:文科(除外语类)10000字以上,理工科及外语、艺术类6000字以上;3、所有设计(论文)应按规定格式打印1份,学生所在院(部)留存。另外应将电子版报送教务处。十、毕业设计(论文)答辩及成绩评定(一)毕业设计(论文)完成后必须进行答辩。对通过毕业设计(论文)答辩并达到毕业基本要求的学生方可发给毕业证书。各专业成立答辩小组,具体负责本专业毕业设计(论文)答辩和成绩评定。各院(部)成立答辩委员会,对答辩小组提出的优秀的毕业设计(论文)及评阅答辩中有争议的毕业设计(论文)进行审查、复议,最终确定成绩。答辩工作原则上不聘请校外专家参加,如确因课题需要,必须聘请校外人员参加时,须经院(部)批准;(二)毕业设计(论文)答辩按“*本科毕业设计(论文)答辩程序和实施办法”规定程序进行;(三)毕业设计(论文)的成绩评定,采用五级记分制,即优、良、中、及格和不及格,具体评分标准按照“*本科毕业设计(论文)量化评分参考标准”执行。要求优秀与良好比例之和控制在70%以内,优秀率在15%左右(最多不超过20%)。其中优秀、不及格等级须写出具体理由,其余等级须写出简要评语;(四)凡毕业设计(论文)成绩不及格者,按结业处理。十一、毕业设计(论文)工作所需的经费(含开题费、实验费、答辩费、指导教师课时津贴等)由学校按各院(部)毕业生每人350元,统一发放至各院(部),由各院(部)制订分配细则。十二、本规定自公布之日起执行,由教务处负责解释。附件1:*本科毕业设计(论文)撰写规范附件2:*本科毕业设计(论文)量化评分参考标准附件3:*本科毕业设计(论文)答辩程序和实施办法附件4:*本科毕业设计(论文)工作评估办法二七年十一月十三日附件1:*本科生毕业论文撰写规范为进一步规范本科生毕业论文的撰写工作,提高论文撰写质量,加强论文的管理工作,特制定本规范。1论文结构及写作要求论文(设计说明书)应包括:封面,目录,中文题目、中文摘要与关键词、英文题目、英文摘要与关键词,正文,注释,参考文献,致谢,附录(可选)等部分。1.1 目录 目录独立成页,包括论文中全部章、节的标题及页码。1.2 题目 题目应该简短、明确、有概括性。论文题目一般中文字数不超过25个字,外文题目不超过15个实词,不使用标点符号,中外文题名应一致。标题中尽量不用英文缩写词,必须采用时,应使用本行业通用缩写词。1.3 摘要与关键词1.3.1 摘要 摘要是对论文(设计说明书)内容不加注释和评论的简短陈述,要求扼要说明研究工作的目的、主要材料和方法、研究结果、结论、科学意义或应用价值等,是一篇具有独立性和完整性的短文。摘要中不宜使用公式、图表以及非公知公用的符号和术语,不标注引用文献编号。中文摘要一般为200字左右。1.3.2 关键词 关键词是供检索用的主题词条,应采用能覆盖论文主要内容的通用技术词条(参照相应的技术术语标准),一般列38个,按词条的外延层次从大到小排列。中英文关键词应一一对应。1.4 论文正文论文正文部分包括:绪论(或前言、序言)、论文主体及结论。 绪论是说明论文工作的选题目的和意义,国内外文献综述以及论文所要研究的内容。 论文主体是论文的主要组成部分。要求层次清楚,文字简练,通顺,重点突出。 结论是整个论文的总结,应做到重点突出,言简意赅。正文字数原则上文科(除外语)不少于10000字,理工科及外语、艺术类不少于6000字。1.5 注释论文中有名词或情况需要解释,或者引用他人的观点及原话、主要数据等必须加注说明,注明出处。1.6 参考文献参考文献反映论文的取材来源、材料的广博程度。列出的只限于那些作者亲自阅读过的,最重要的且发表在公开出版物上的文献或网上下载的资料。参考文献不少于10篇,其中外文文献不少于2篇。1.7 附录如有不宜放在正文中但有重要参考价值的内容(如公式的推导、程序流程图、图纸、数据表格等)可编入论文的附录中。1.8 致谢向给予指导、合作、支持及协助完成研究工作的单位、组织或个人致谢,内容应简洁明了、实事求是,避免俗套。2书写及打印要求2.1 论文书写论文(设计说明书)要求统一使用Microsoft Word软件进行文字处理,统一采用A4页面(210297)复印纸打印,版芯尺寸:页边距为上2.8 cm,下2.5 cm,左2.5 cm,右2.5 cm;字间距为标准,单倍行距。页眉:宋体、五号,居中排列;页眉内容为:*本科毕业论文;页码在页下居中放置,用五号字体。论文封面和目录不编页码,页码从目录后开始编排。页码用阿拉伯数字(1、2)编排。论文文字错漏率不能大于万分之五。2.2 目录目录应包括论文中全部章节的标题及页码,含摘要与关键词(中、外文)、正文章、节题目(可视论文需要进行,编写到23级标题)、参考文献、附录、致谢等。目录题头用四号黑体字居中排写,隔行书写目录内容。目录中各章节题序及标题用五号宋体。2.3 摘要与关键词中、外文摘要与关键词单独成页置于目录后,编排上中文在前,外文在后。摘要、关键词题头均用小四号黑体字排写,内容文字用五号宋体字,英文用Times New Roman。关键词各词条间用分号“;”隔开。2.4 论文正文2.4.1 章节及各章标题 章节标题应突出重点、简明扼要,字数一般在15字以内,不使用标点符号。标题中尽量不采用英文缩写词,对必须采用者,应使用本行业的通用缩写词。正文除章节条款的标题外均用五号宋体。2.4.2 层次层次根据实际需要选择,以少为宜。各层次标题不得置于页面的最后一行(孤行)。层次代号格式要求参照表2-1和表2-2。表2-1 自然科学类论文层次代号及说明章1 顶格,小三号黑体节1.1 顶格,四号黑体条1.1.1 顶格,小四号黑体款(1) 顶格,五号黑体 首行空两格,五号宋体项顶格,五号宋体 首行空两格,五号宋体表2-2 社会科学类论文层次代号及说明章一、顶格,小三号黑体节(一)顶格,四号黑体条 1顶格,小四号黑体 空两格,五号宋体(正文)款 (1)顶格,五号黑体 空两格,五号宋体(正文)项 顶格,五号宋体 首行空两格,五号宋体(正文)2.5 注释与参考文献注释一律采用尾注。正文中应按顺序在需要注释处的文字右上角用标明,中序号应与“注释”中序号一致,具体标注格式如下:著作图书类文献序号 作者书名版次出版地:出版者,出版年:引用部分起止页翻译图书类文献序号 作者书名译者版次出版地:出版者,出版年:引用部分起止页学术刊物类文献序号 作者文章名学术刊物名,年,卷(期):引用部分起止页学术会议类文献序号 作者题名见:编者,文集名,会议名称,会议地址,年份出版地:出版者,出版年:引用部分起止页学位论文类文献序号 学生姓名学位论文题目学校及学位论文级别答辩年份:引用部分起止页报纸文献序号 作者文章名报纸名,出版日期(版次)在线文献序号 作者文章名电子文献的出处或可获得地址,发表或更新日期/引用日期(任选)正文之后一般应刊出主要参考文献。列出的只限于那些作者亲自阅读过的,最重要的且发表在公开出版物上的文献或网上下载的资料。以下为社会科学类论文参考文献的标注格式:著作图书类文献序号 作者书名版次出版地:出版者,出版年翻译图书类文献序号 作者书名译者版次出版地:出版者,出版年学术刊物类文献序号 作者文章名学术刊物名,年,卷(期)学术会议类文献序号 作者题名见:编者,文集名,会议名称,会议地址,年份出版地:出版者,出版年学位论文类文献序号 学生姓名学位论文题目学校及学位论文级别答辩年份报纸文献序号 作者文章名报纸名,出版日期(版次)在线文献序号 作者文章名电子文献的出处或可获得地址,发表或更新日期/引用日期(任选)自然科学类论文可不要注释,参考文献标注格式与社会科学类论文注释格式相同。2.6 公式原则上居中书写。若公式前有文字(如“解”、“假定”等),文字顶格书写,公式仍居中写。公式末不加标点。公式序号按章编排,并在公式后靠页面右边线标注,如第1章第一个公式序号为“(1-1)”,附录2中的第一个公式为“(-1)”等。文中引用公式时,一般用“见式(1-1)”或“由公式(1-1)”。 公式较长
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全法培训时间要求课件
- 服务业安全生产培训课件
- 2025-2030工业激光器件下游应用渗透率及替代传统工艺效益评估报告
- 注销户口申请书死亡
- 2025-2030工业废水零排放行业发展趋势分析与未来投资战略咨询研究报告
- 2025-2030工业废水零排放技术经济性与政策补贴分析报告
- 2025-2030工业废水处理设备产业排放标准技术路线及区域市场差异报告
- 2025-2030工业废水处理技术创新与区域市场准入政策报告
- 2025-2030工业大数据平台数据治理框架与价值挖掘路径报告
- 影视基金申请书
- 专业人才培养方案论证报告(2篇)
- 安全保密管理方案(2篇)
- 常用非金属材料
- 中建八局后备安全总监竞聘
- 2024年北京控股集团有限公司招聘笔试参考题库含答案解析
- 介入在呼吸系统的应用
- ICD编码手术主导词练习
- 耗材售后服务承诺书
- 一元二次方程-相似三角形-锐角三角函数复习
- 冰皮月饼的制作方法课件
- 在职党员到社区报到登记表“双报到”登记表
评论
0/150
提交评论