您好,欢迎光临本网站![请登录][注册会员]  
文件名称: Disable Browser Caching in JSF
  所属分类: 其它
  开发工具:
  文件大小: 981kb
  下载次数: 0
  上传时间: 2019-03-24
  提 供 者: weixin_********
 详细说明:NULL 博文链接:https://liang-wenfu.iteye.com/blog/1017556翻译:大碗喝酒 群 在 时代,部署的速度、柔性来适应业务的变化变得更加重要 显示建模可以改善项目分析业务规则的完整性及佔算的质量 你能想象到维护现存系统业务规则意味着什么。它可能花費大量的资金来实觋,当然 也需要更长的时间来上市。对于一个强大的分析、设计及实现的框架的需求非常清楚 的 显小建模并分类业务规则有下列好处 它可以帮助我们更精确地佔计设计及建造所需的开发时间 可以帮助我们分析和发现可能遗漏的规则 这可以帮助开发人员确定所有需要定义规则的位置 这可以提供一个业务规则的总体情况,便于用户之间的沟通 这提供了一个校验所有规则是否实现的机制 分析阶段记录规则 在使用面向对象的方法进行分析时,人们通常将业务规则记录在相应的用例中,然而 这种情况导致业务规则在多处记录,甚至以不一致的方式进行。因此,一种可以完整地把握 所有的业务规则,以消除或防止不一致性是重要的,建议把它记录到他们自己的对象上,比 如约束是有价值的 典型地,你可以将约束绘制到类图或业务组件图上。类图是一个分析 模型(从实现中抽象出来),而业务组件图则是一个设计模型。业务规则通常是在需求分析 时发现的,你可以在类图中捕获这些规则。不论哪种情况,你可以将约束附加 到恰当的类上,你可以将相同的约束包含在用例图中并附加到恰当的用例上 类模型提供了结构化的记录约朿的机制。例如,绝大多数关联规则可以用类关联来记录。由 于在类模型中不能用标准的符号来记录(图是模型中的约束而图是业务组什中的 约束),用约束和关联可以在两个类中创建 约束的定义包含:名字,描述,规则类型,触发事件 图 类模型中的约束,图:业务组件中的约束 mana31dEmployeos s iLSt oe >L alary nust be >0 Attribute velidlster ailA:kess Sr ng ALTIUS astOn。:tin FOSacod=: 5.Irg alary Lurker AtIeⅤa Commission Number StreetName strin salesman. lon mCmINn Postalcode: String Lve lu. str i1l Ally slI III% sales" mLIST nave A TeleptoneNunbet BarkAccouT Number Update Employee job, Employee Figure 1: Constraints on a UML Class Model Figure 2: Constraints on a Business nts model 也提供对象约束语言,这是在模型中描述衣达式的止规语言。这些衣达式考 虑的是園定条件,它用于系统建模或通过模型中描述对象诖行查询。当应用到类建模时,你 可以使用描述约束,在 上你可以找到很多关于如何使用的书籍和文章 相关规范可以在对象管理组的网站( )找到。 翻译:大碗喝酒 群 如果你决定不使用而用自然语言来记录你的约束,如果这样的话,在记录约束时下 列信息应该使用 约束名用于确认约束的逻辑名 措述给开发人员提供有关用于实现规则的足够详细的信息 你应该用简短的句了来描述规则,如果规则需要更多的解释,它可能需要分解为了规 措述还应该在违犯规则时用于错误信息 措述达应该能够用」测试的基木场景 规则类型将在下一节规则分类中讲解 列出规则在哪些事件中检查,这些事件应按如下阶段进行分类: 创建实体对象 删除实体对象 修改实体对象属性 考虑在开始时定义名字和描述,只有在对模型满意时才添加规则类型和事件 让我们看一个规则的例子: 例:“销售员”职位的职员有佣金的值 在这个例子中,我们有一个规则在单个实例中要检査多个属性,这种情况检查特殊职位 的值。当你掌握更多纽节以后,你会明白这是·种实例规则的了规则实例校验。实例规则 是一种在实例级而不是属性级检查的规则。随后你将学习更多有关实例规则的子规则。 在考虑什么事件触发这个规则时,我们可以看到只有三种选项可能违犯这个规则,当你创建 新员工,或者更改员工的职位或者更改佣金。因此,我们在删除员工或修改其它属性时不用 检查这个规则。这个信息帮助我们在实现这个规则时如何优化性能。因此我们的约束应该包 含以下内容 例销售员岗位的职员必须有佣金值 规则类型:实例校验 触发事件:创建 更新职员的岗位属性 更新职员的佣金属性 注意:以下类型的触发事件是不言而喻的,不需要显示地记录在约束中 属性规则(所有子规则)通常在创建实体及修改该属性时蝕发 缺少规则在创建实体实例吋触发 删除规则删除实体实例时触发 应用实例 以下章节将涉及到所有业务规则的详细内容。提供定义、例」及指南。这个例子是从图 所示的业务组件模型中派生出来的。 这是个相当简单的模型,公司有部门及职员,这些职员可以安排到项目中去,更进 步,公司有供应商和客户,他们都是一种业务关系。供应商提供产品,而客户订购这些产品, 最终,职员为客户操作项目 图:本书例」的类模型 夲书中提到类模型是指概念模型。然而,在实际应用代码中业务关联,供应商和客户映射成 了单的实体对象,同吋有供应商和客户视图对象,但没有视图关联。 例子中业务规则的实现 本书例子中的以下业务规则都实现了 部门 翻译:大碗喝酒 群 每个部门不能多于一个办事员 规则类型:父结点 触发事件创建职员更新职员的岗位、职员的部门代码 不能超过个部门(本系统中) 规则类型集合无父触发事件创建部门 职员工资必须大」 规则类型:属性校验 职员岗位必须是: 规则类型:属性校验 职员的邮政编码必须是荷ˇ格式的(四位数字一个空格两个大写字母) 规则类型:属性校验 职员用户必须至少包含五个字符 规则类型:属性校验 职员婚姻状态必须是 规则类型:属性校验 婚姻状态可以从单身、鳏大、寡妇变为结婚,也可以从结婚变为鳏大、寡妇 规则类犁:属性校验 岗位为“销售员”的职员必须有佣金 规则类型:实体校验 触发事件:创建职员,修改职员的岗位、佣金 翻译:大碗喝酒 群 支时n streeNlaire: stI p streetNumicer strr postaLcode: strinG crested . sTng cre=tirDa:匚dt 萨 mniAcires Stre lagtpddsdBr aroctodEy:卧 ieitcndate: dale adepartmen d: rt 育 snAre sling dgt: int uNIt It strai ie:rho CLs,EI9'Td postacGGc: Et'i1d shilly count"y: =tre products a rders 1 projects telephone、uher:stng 口Hs iOrder 超aA:t bankAcoart ing Il civitate stry Eatsrdero: Date gb st descr pian string cateshipped: Date hireDate ate t created strng crested: Stng acLals: pale commissOn IT createnDatE: Dste crEstianDate: Date userid: SinI lssllylaedDy: Tried as updetedDy: string 于:ccBy:tin creed.sru acTI deBBie. DHe erpstrnLir: Lgtr g l09Upd1cdB "r1 u=t-Fkwdate:Date luspdal Das Dul rplYs:C1 ode Lines dernE pJ∈= [Asi nomen enclose e n Eities E ProectAsslgmment ineRter rt prID= :Int D油:D qmr"‘ eHEc: strip crAarFrRyNTrI 〓2 iEndo:ct2 creaionDar .Lt= FAcentareA located: in astprtecey; sring MUlLa·8rg laψplsd:tr" lnallyucMdr「lm 4砒Jxt:口t器 radway sing Heaigncie Daie igure 3: Class Model for Examples in this Paper 创建职员时职员取数据厍中序列号的下一个值 规则类型:缺省 日志表 规则类型:其它变化事件 触发事件:修改职员的工资和佣金 客户 客户预算必须在 到 规则类型:属性校验 项目 项目预算必须在到 之间 规则类型:属性校验 当项目开始时间变化时,自动改变所有己分配项目的那些开始时间于旧项目开始时间或在新 翻译:大碗喝酒 群 项目开始时间之前的时间为新的开始时间 规则类型:其它变化事件 触发事件:修改项目廾始时门 岗位为 的职员只能查看他或她被分配的项目 其它职员可以查看所有的项目 规则类型:授权 项目结束时间必须不迟于开始时间 规则类型:实例校验 触发事件:创建项目更新项目开始时间,修改项目结束时间 项目分配 如果项目当前是活动的话,不能改变项目已经分配的比率、角色和百分比 规则类型:实例校验 触发事件:修改项目的比率,角色或者分型的百分比 项目分配的开始时间必须在项目开始和结束吋间之间 规则类型:其它多实体 触发事件:修改项目开始时间、结束时间,创建项目分配时间,更新项目分配开始时间 不能创建一个已经关闭项目的项目分配(结束时间已经过去) 规则类型:其它实体 他发事件:创建项日分配 在廾始创建业务组件前,设置一个框架扩展类将有利」实现业务规则 在项目分配结東时间改变时经项目经理发邮件 规则类型无操作的事件 触发事件更新项目分配结束时间 订单 货物发运后可以删除订单 规则类型删除规则 触发事件删除订单 订单细项 创建订单绀项吋,将下订单吋的产品价格作为订单价格的默认值 规则类型:缺省值 金额 翻译:大碗喝酒 群 派生值为数量单价 规则类型:缺省值 触发事件:创建订单细项,修改订单数量、单价 所有类 对于所有类,记录创建时间、创建人,最后修改时间及修改人 规则类型:改变历史 触发事件:创建,修改 设置框架基类 在 开发指南的建议创建一个完整的框架层的扩展类,并以些作为默认层, 即使你没有特定的需求。你可以而且应该在创建任何业务组件以前立即做好这件事,这样你 就可以做很多需要在单个业务组件中要做的一次性完成。在本书提供的例子中你将在实体欢 畅扩展类实现一个方法,你在创建任何其它实体之前创建它: 创建一个定制实体类作为基类,例如 一个业务规则是:用于系统状态的限制,系统状态的改变或者授权使用系统,或者在系统状 态改变时自动蝕发一个动作 编译类 到项目属性业务组件基类 在实体对象行域,输入你刚才创建的 当你创建新类时,它将自动继承这个实体对象类 业务规则分类 这一节将提供业务规则分类,这有助于理解应用逻辑类型如何进行业务规则建模,同时也提 供了复杂任务如何在 中实现的最佳方法 分类是基于以下对业务规则的定义 个业务规则可以是 应用于对系统状态的限制 系统状态的改变 授权使用系统 系统状态改变时自动触发一个动作 如果你认为你可以将以下部分概念映射为建模 固定条件在系统稳定点对应用系统状态的限制 前提条件某事发生前必须满足的条件 后置条件某事发生后必须满足的条件 固定条件通常包含在类模型中,前提条件和后置条件常常是用例的属性 不象 其它的没有自动处理的概念。因此,按业务规则组的说法,自动处理甚至不被认为是业务 规则。基于实用的理由,本白皮书将自动处理也作为业务规则来考虑。 本书将讨论三种主要的业务规则 约束规则 翻译:大碗喝酒 群 更改事件规则 授权规则 约束规则定义的是对系统状态或者对系统状态改变的限制。 更改事件规则定义的对系统状态的改变进行的自动处理。自动处理可以是对数据库数据(插 入、修改、删除)的处理,也可以是对数据库外进行的比如发送邮件的动作或者打印报 表 授权规则定义的对系统授权的限制。在 中的授权则是前提条件, 在考虑授权规则以前,在 层本身,已终具备了不用仟何定制编码即可实现授权规 则的解决方案,定制方案在本书中不予讨论。有关保障 应用安全的概览在 上有一篇文章“在 中实现安全管理的介绍”可供参考。 分清约束规则和更改事件规则并不是直接了当的,这是因为很多约束规则也可以用更改事件 规则来实现。换句话说,当你碰到错误时你可以仅仅抛出一错误信息(约束),也可以为用 户自动更正它(更改事件)。 这些主要的规则将分解为数个子规则来进行详细探讨。以下部分将详细讨论这些类型 约束规则 约束规则定义的是对系统状态的限制或者允许对系统状态的改变。 对系统状态的改变也就是常说的固定条件,允许对系统状态进行改变的限制也就是前 提条件。前提条件只在数据改变时才会检查是否允许该改变。同定条件检查一个动作,也可 以用于检査系统现有对象。 如果你准备用工具来对现有对象进行检验的话,区分固定条件和前提条件还是有益的。 考虑到固定条件和前提条件在 中的实现的相同的,两种情况及其例子均包含在本 节 以下子约束规则可以区分为:规则的区分是非常简单的,因为它只看规则涉及的内容: 类型 了子类型 约束规则 属性 实例 实体 多实体 在实体对象实例中只涉及一个属性的叫属性规则( 涉及实体对象实例中两个或两个以上属性的叫实例规则( 涉及同一实体的多个实例的叫实体规则() 涉及多个实体的多个实例的叫多实体规则( 这个子分类是按复杂度的增加来进行的。当估算一个规则实现的工时的,考虑到属性规 则相对来说比较简单,实例规则则复杂得多,以此类推。当然无父集合规则是个例外。 属性规则 属性规则定义的属忙的值哪个是允许的。子规则还可以细分为: 个属性规则定义的是单个属性允许的值,检査的是在单个实体的一个实例中的一个属 性的值。 类型 子类型 规则类型 约束规则「属性规则□ 属性类型 域 属性校验 翻译:大碗喝酒 群 属性特性 属性特性是一种限制属性状态并具有特定类型的规则,在 中以此种规则记录。 你可以用以下方式记录 类型:定义属性的类类型 部门编码必须是数宇型的 强制属性确定一个属性是否必需的 职员的名是必须的 有儿种属性规则可以用预定义的类型来实现 你可以用域来定义一组可用于多个有类似要求的特性 可修改确定已经存在的实例属性能否修改 订单细项不能转化为另一个订单(订单项的是不能修改的) 在类图中有些属性具有其特性,如类型,初始值(缺省值)及可更改性(可修 改性) 记录属性特怛 在 中属性特性用预定义的特性米记录,在编辑实体对象的向导的属性设置标 签臾中你可以编辑这些特性(图) Attribute uPdatable Name: Id Type: Number ○Ay5 Defau此 O while New O Neyer v Persistent Pri ary key 回 Mand=tory Unique Refresh after ■ Discriminator Queryable □ Change Indicator History column Selected in Query I Update M Precision Rule Insert Figure 4: AttribUte Propertics 域 当你发现重复一组类似属性规则时,比如电子邮件地址,同邮政编码或者是否等,你 可以使用域来定义一次并在所有类似属性上重用。 个域就是一个继承了任何类,包括定义的诸如 和,你可以定义个通用的属性特性作为个域,用于属性 规则。你也可以定义域的校验方法,这个方法在校验成功时会返回一个逻辑值,失败时 则返回非常类似下面我们要讨论的方法校验器。对于域,你不能使用内置的比较、列 表或范围校验器 例是一个可选的数字,插入后必须刷新 是·个强制输入的字符串,必须为“或“” 记录域 为了添加域,你可以在业务组件面板或业务组件包并选择新建域业务规则
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: DisableBrowserCachinginJSF
 输入关键字,在本站1000多万海量源码库中尽情搜索: