??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲jizzjizz少妇,伊人亚洲综合青草青草久热,久久精品国产亚洲av麻豆http://www.tkk7.com/landy/category/51223.html敏感、勤学、多?/description>zh-cnWed, 18 Jul 2012 14:52:55 GMTWed, 18 Jul 2012 14:52:55 GMT60构徏SOA风格的应?/title><link>http://www.tkk7.com/landy/archive/2012/07/18/383436.html</link><dc:creator>q途书?/dc:creator><author>q途书?/author><pubDate>Wed, 18 Jul 2012 13:19:00 GMT</pubDate><guid>http://www.tkk7.com/landy/archive/2012/07/18/383436.html</guid><wfw:comment>http://www.tkk7.com/landy/comments/383436.html</wfw:comment><comments>http://www.tkk7.com/landy/archive/2012/07/18/383436.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/landy/comments/commentRss/383436.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/landy/services/trackbacks/383436.html</trackback:ping><description><![CDATA[<p>当下QSOAq个词已l深入h心,几乎没有Z说自p计的应用是遵从SOA的?/p> <p>很多人对SOA的理解就是分层、模块化、面向对象。。。这U理解对不对后面再说。先看一些问题:</p> <p>我今天看了一个开发团队的开发工E包l构Q部分类的命名及l织产生了如下印象:</p> <ul> <li>每个usecase是一Ҏ烟囱</li> <li>烟囱与烟׃间连模型都没有共享。其实业务模型是有设计的Q主要是实现模型没有保持业务模型的结构特征,全部成了“值对?#8221;Q开发h员天天把q些值对象叫做领域对象?/li> <li>有三层,是Struts帮忙定义的,三层分别Ҏusecase分包</li></ul> <p>q也是我们U的SOApȝQ!Q!q最基本的模型设计、模块设计、分层设计都没做好,难怪年q重构、年q完成不可能完成的Q务!Q!我确信这U重构、这U不可能完成的Q务还会年q持l下去!Q!</p> <p>I竟什么是W合SOA风格的系l?先看看SOA宗师IBM的一文章:</p> <p><a >http://www.ibm.com/developerworks/cn/architecture/ar-soastyle/</a></p> <p>我来ȝ一下?/p> <p>SOA能达C么目的:</p> <p>1.实现业务与IT的一致性;</p> <p>2. 创徏更灵zȝ反应更敏LIT基础设施Q?/p> <p>3. 化集成实玎ͼ</p> <p>SOA要怎么做?</p> <ol> <li>从应用程序到程和服务。消除应用程序,Y件系l创Zؓ一l由业务程q行协调的交互服务。每个服务实C业上下文中定义的特定业务目标或功能,业务程表示必须实现的业务解x案。这个讲的比较抽象,我的解读是服务表示一个最l粒度的业务目标或功能,׃务流E来~排q些服务Q实现更大粒度的业务目标或功能,业务程也是服务。注意,q里隐式的定义了服务的概念,服务是自ȝQ可替换的,可被多个程~排的,不耦合程上下文的Q是直接面向业务目标或功能的Q不是一个公共函数库Q服务不是封装了数据和方法的cR?/li> <li>SOA的服务基于业务资源(对象Q定义,不支持操作者的执行上下文,而是支持业务资源Q对象)。这里的业务资源是指业务实体。业务实体也是来自业务的。所以,SOA能保证IT与业务的一致性?/li></ol> <p> </p> <p>别再说你的应用程序或烟囱遵@SOA的架构风|</p><img src ="http://www.tkk7.com/landy/aggbug/383436.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/landy/" target="_blank">q途书?/a> 2012-07-18 21:19 <a href="http://www.tkk7.com/landy/archive/2012/07/18/383436.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软g架构设计Q四Q?amp;mdash;&mdash;软g架构设计q程http://www.tkk7.com/landy/archive/2012/07/08/382543.htmlq途书?/dc:creator>q途书?/author>Sun, 08 Jul 2012 08:46:00 GMThttp://www.tkk7.com/landy/archive/2012/07/08/382543.htmlhttp://www.tkk7.com/landy/comments/382543.htmlhttp://www.tkk7.com/landy/archive/2012/07/08/382543.html#Feedback0http://www.tkk7.com/landy/comments/commentRss/382543.htmlhttp://www.tkk7.com/landy/services/trackbacks/382543.html3.10 定pȝ需?/strong>

定pȝ需求即定pȝ用例。方法以Ҏ业务用例实现场景分析入,分析每个pȝActor的系l用例。每个系l用例一定是一个完整的事g,注意业务用例和系l用例的区别Q业务用例是一个完整的业务目标Q而系l用例是一个完整的事g,是业务目标中的一个环节,如客户代表申请开h一个完整的pȝ用例Q但不是一个完整的业务目标Q其包括多个面操作?/p>

 

3.11 用例实现分析

Ҏ个系l用例,识别其可能的实现路径Q每个实现\径就是一个用例实玎ͼ然后针对每个用例实现Q分析hZ互,使用zd囄制用例实现场景?/p>

 

3.12 分析模型

使用分析对象Q实现所有的用例实现场景Q识别出三种分析对象。在q个q程中,也可以徏立界面原型,和客戯一步达成需求的一致理解。分析模型是需求到设计的桥梁,分析cȝ层次高于设计实现Q需求通过分析c{成计机语言。后l做pȝ设计的时候,可直接将分析模型转换成设计模型?/p>

在考虑分析模型的过E中Q有可能识别Z些公共模块,比如开戗销戯E中都会有一些业务规则校验,需要引入规则引擎的支持Q那么类D则引擎这L公共模块需要添加到逻辑架构中去?/p>

 

3.13 非功能性需求设?/strong>

以性能Z讲一下对非功能性需求设计的q程?/p>

1、确定性能目标Q要支持多少用户、多在U用戗多ƈ发操作、操作响应时间要求等Q?/p>

2、以一个简单的三层架构v点,Ҏ性能目标Q识别瓶颈。比如,如果数据库撑不住Q那么需要考虑最佳的分库设计Q如果是逻辑层撑不住Q则要考虑负荷分担Q状态同步的逻辑层方案设计,如果操作响应旉要求很高Q则可根据不同场景,分析其操作的数据的读写特点,采用合适的~存Ҏ。如要支撑高q发低时延的大数据量查询QTwitter采用了垂直~存Qraw~存的设计方案?/p>

3、验证性能设计。抽取典型场景,实现一个prototype来验证性能设计是否满性能目标?/p>

在质量属性设计中Q如果需要新增模块,则需要修攚w辑架构?/p>

有一些约束类需求也是非帔R要的Q不能遗漏分析?/p>

l过q一个阶D,我们能够得到一个比较完整的逻辑架构Q运行架构、开发架构、物理架构、数据架构的输入了。剩下的工作是~的工作了?/p>

 

3.14 架构~档

有了上面的工作作为铺垫,~非常容易了Q这个就不细讲了?/p>

]]>
软g架构设计Q三Q?amp;mdash;&mdash;软g架构设计q程http://www.tkk7.com/landy/archive/2012/07/08/382527.htmlq途书?/dc:creator>q途书?/author>Sun, 08 Jul 2012 07:17:00 GMThttp://www.tkk7.com/landy/archive/2012/07/08/382527.htmlhttp://www.tkk7.com/landy/comments/382527.htmlhttp://www.tkk7.com/landy/archive/2012/07/08/382527.html#Feedback0http://www.tkk7.com/landy/comments/commentRss/382527.htmlhttp://www.tkk7.com/landy/services/trackbacks/382527.html3.4 分析业务用例场景

分别针对上节中业务用例视图中的每一个用例,分析该业务用例在实际工作中是如何做的Q一般用业务活动图来表qC务场景。在q个阶段Q有几点需要特别注意的地方Q?/p>

1、关注参与业务用例的各个参与者是如何协同的,如一个简化的用户开L程是填写营业员提交开戯?》主审批订?》施工h员行订单;

2、对一个业务用例,如果有不同的实现路径Q需要做不同的场景分析。例如,用户订购产品Q分|上订购和营业厅订购q两U场景,两个场景大不相同Q?/p>

3、场景的步骤_度Q用L一个完整操作目的,如用户开P则用户填写订单是一个步骤,而不用细化到用户取单、拿W填单等Q?/p>

 

3.5 产生业务对象模型

针对每个业务用例Q根据业务用例场景,分析该用例中涉及的业务实体,q绘制业务对象模型图?/p>

 

3.6 产生业务用例实现视图

业务用例实现指业务用例的一U实现\径,一个业务用例实现对应着一个业务用例场景。业务用例实现视图是表述业务用例实现的视图?/p>

 

3.7 分析业务用例实现场景

业务用例实现场景着重描q如何通过人机交互来完成业务,是业务用例场景的具体化。一般用zd图来表述人机交互程。这里每个步骤的_度是h与系l或pȝ与h的一ơ交互?/p>

3.8 领域建模

领域模型是描q特定问题域的对象及其相互关pR领域模型对业务对象做了q一步的_֌。领域徏模的步骤如下Q?/p>

1、确定问题域Q如CRM中的客户模型比较关键Q我们决定对其进行领域徏模,则需要将设计客户业务实体的用例全部识别出来;

2、领域徏模:逐一分析涉及到操作客h型的业务用例场景Q识别领域对象以及对象之间的关系Q?/p>

3、验证领域模型:使用序列图作为工PZ领域模型来编排实现各业务场景Q如果能实现Q证明领域模型ok?/p>

领域对象跟业务对象有区别Q我认ؓQ业务对象不是领域对象。业务对象来自于业务用例Q是业务中客观存在的Q而领域对象是对业务对象做q一步抽象、精化后的结果,是h对业务的主观认识Q这是Z么不同厂商的产品模型会不一L原因Q而且q不是所有的领域对象都是Ҏ业务对象分析而来的。比如,某CRM产品面向全球市场Q可定制能力是关键,为提升可定制性,需要构Z个快速开发框Ӟq个快速开发框架也是Y件系l的一部分Q也是有领域模型的,但是它的领域模型跟业务对象没半点关系?/p>

 

3.9 产生逻辑架构草稿

通过上述步骤Q我们已l有了部分领域模型,针对每一个可直接映射C务对象一U的领域对象Q可规划相应的业务模块,如有开戯单,那么可以有订单管理,有客L理等。业务模块的划分_度可依据大概的工作量而定Q保证最低别的业务模块的工作量是大致均匀的。这仅仅是一个徏议,可以Ҏ目的实际情况决定?/p>

Z上述的成果,我们q只能Z个逻辑架构的草E,因ؓ我们q没有分析质量属性,后箋对质量属性做设计的时候,q有可能会引入新的模块。比如要让业务流E可快速编排、定Ӟ我们希望引入工作,那么逻辑架构中也要引入一个工作流模块?/p>

 

待箋。。?/p>

]]>
参与需求调研后的思?/title><link>http://www.tkk7.com/landy/archive/2012/06/26/381548.html</link><dc:creator>q途书?/dc:creator><author>q途书?/author><pubDate>Tue, 26 Jun 2012 13:52:00 GMT</pubDate><guid>http://www.tkk7.com/landy/archive/2012/06/26/381548.html</guid><wfw:comment>http://www.tkk7.com/landy/comments/381548.html</wfw:comment><comments>http://www.tkk7.com/landy/archive/2012/06/26/381548.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/landy/comments/commentRss/381548.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/landy/services/trackbacks/381548.html</trackback:ping><description><![CDATA[<div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">刚在某客户做?个月的需求调研,亲自体验了需求调研的q程Q有一些感惻Iȝ下来?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">客户斚w备了BA和SAQBA是业务专ӞSA是技术专Ӟ负责输出一个描qC务需求文档XXXSQ将程和需求都记述在该文档中,和大多数客户一P客户的优势在于对他们的业务比较了解,但是对于如何L象业务,比较pȝ的把他们的业务需求归U_ƈ描述下来Qƈ不擅长,臛_很多Z擅长Q这导致客h的XXXS文中通常是一些需求片D和样例?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">我方对一个topicQ分配了SA和BAQ其中SA负责技术方案,而BA负责理解业务q澄清业务,topic的输Zg有XXD和XXSQXXD主要记述业务程和topicU的solutionQXXS主要记述pȝ的功能?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">XXD中的业务程Q准的来讲Q应该改名叫pȝ程Q是讲述业务功能操作是如果由解决Ҏ各个内部子系l及外部pȝ协同完成的。这其中的actor是系l,因此Q是从系l的角度来描q的?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">XXXS中,模板像系l用例文,但是里面的一个个单元是叫功能Q功能与用例的差别就是,一个是从系l的角度出发Q一个是从ActorQ即用户Q的角度出发Q对每个功能Q有功能描述Q功能的前置条g、后|条件、功能的用户角色、业务规则,输入规格Q输|如果涉及到界面,有界面原型。具体的内容Q通常pre-condition是千一律的Q如用户必须已登录什么的Q后|条仉常是结果,而角色通常是一个很泛的一个ȝQ比如在厨房q活的分切菜的,炒菜的,l称厨子Q?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">对于客户Ҏq的不清楚或者只描述了几个片D|例子的需求,我们采用prototype的方式,先按照自q理解做prototypeQ然后给客户LC,由客h军_是否W合他们要求?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">是不是看上去很完?</div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">再看看几个问题:</div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">问题一Q对客户方的某个需求,我方一直不理解客户方ؓ什么会提这么怪异的需求,觉得不可思议Q而客h一直坚持要q个功能Q?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">问题二:客户方ƈ不具备多么深厚的业务抽象功力Q我们自己通过蒙着眼睛摸象的方式作出原型给客户方评审,客户方say okokQ不ok׃okQ客h不会犯错误吗Q客h会照你其它客户的需求吗Q我们拒l客h的理由通常是实C了,或者工作量太大。我们绝大多Ch没法使用客户的业务语a告诉客户Q你的目的是什么,你要求怎么来做Q这样做有什么样的坏处,我徏议这么做Q这么做能获得什么样的好处?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">问题三:我们把一些业务角色用的功能和运lh员用的功能攄于一个界面中Q从功能上来Ԍ我们可以自豪的告诉客P我们实现了你要的功能?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">。。?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">我相信我了解到的问题l不是全部,q有很多我不知道的问题?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">对这U状况,我逐一分析了一下原因:</div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">问题一Q因为我们理解的业务概念跟客L解的客户概念不一P虽然我们叫的是同一个名词,但实际上q不是同一个东西,从而导致我们觉得客h的要求匪h思;</div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">问题二:我可以说Q其实我们的做法是去摸清楚客戯什么,但没有去理解他ؓ什么要Q?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">问题三:很明显,我们实现了功能,但忽略了功能的用者是谁;</div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">q一切的Ҏ是什么?我认为,q根源是我们一直从pȝ的角度去思考问题,思考我们的pȝ功能Q思考我们的pȝ程Q对一个经验丰富的专家来讲Q也怼考虑的比较全面,但绝大多Ch往往是重视了功能的描qͼ而且描述是基于我方的语言Q忽略了功能的用P而我们没有一个万能的客户和万能的专家帮我们指Z付g的所有的问题?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">即便是我们成功交付了一个系l,我们q是没有消化客户Z么要q么做的原因Q对业务pȝ来讲Q这是最核心的hg一?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">我们要怎么改?我的是:</div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">1?strong>加入</strong>?#8220;用户需求背?#8221;的调研,即真正的“业务调研”Q在q个阶段的主角是BAQBA是业务专Ӟ对IT技术不熟,q是他的优势Q这个阶D늚输出件要包括客户的业务架构,包括l织l构Qh员角Ԍ业务程Q是各业务h员如何协同来完成工作Q跟pȝ程有本质区别)Q业务模型(用户做的事情中涉及到的一些概念,q里指纯业务概念Q客戯感知的,非系l概念)。经q这个阶D,我们应该能明白客户ؓ什么会提这个那个需求,能够有效避免因ؓ客户的片面和狭隘D我们跟着片面和狭隘,q且我们知道了客戯的概念A是指什么,概念B是指什么,跟我们^常所说的有什么不同?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">2?strong>扭{</strong>“功能分析”的角度,׃pȝ的角度分析{变成qL角度分析。把功能变成用户Zpȝ所做的操作分析Q系l用例)Q首先搞清楚是谁Q然后是要基于系l做什么事情,有什么业务规则,前置条g和后|条件是什么,再次是系l通过什么样的界面或接口来支持。输出的内容看似都差不多Q但因ؓ是从用户的角度出发分析的Q提供的功能自然会更贴用L心?/div> <div style="padding-bottom: 5px; text-indent: 15px; margin-top: 14pt; margin-right: 0px; margin-bottom: 14pt; margin-left: 0px; ">3、我们要明白一个基本原则,业务架构是不依赖于ITpȝ存在的,ITpȝ是规范业务运作和提升业务效率的工PITpȝ中的软g概念是业务概念在软gpȝ中的投媄Q千万不能从技术的角度出发Q视囑֎重定义业务概c?/div></div><img src ="http://www.tkk7.com/landy/aggbug/381548.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/landy/" target="_blank">q途书?/a> 2012-06-26 21:52 <a href="http://www.tkk7.com/landy/archive/2012/06/26/381548.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一?amp;ldquo;订单&rdquo;引发的思?/title><link>http://www.tkk7.com/landy/archive/2012/06/24/381377.html</link><dc:creator>q途书?/dc:creator><author>q途书?/author><pubDate>Sun, 24 Jun 2012 08:29:00 GMT</pubDate><guid>http://www.tkk7.com/landy/archive/2012/06/24/381377.html</guid><wfw:comment>http://www.tkk7.com/landy/comments/381377.html</wfw:comment><comments>http://www.tkk7.com/landy/archive/2012/06/24/381377.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/landy/comments/commentRss/381377.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/landy/services/trackbacks/381377.html</trackback:ping><description><![CDATA[<p>某司CRM产品Q认业务程的业务才是订单。按照这U理解,退货,换货是订单,而充g是订单?/p> <p>I竟什么是订单?</p> <p>订单作ؓ一个业务Actor皆可感知的重要业务实体,其是qITpȝ而存在的QITpȝ所做的仅是其在Y件系l中以对象的形式表现出来Q不能依据系l实玎ͼ改变订单的定义。要正确的给订单下定义,d掉ITpȝQ从业务的角度给出定义?/p> <p>企业一般会有售前,售后Q销售,服务{部门,而订单是产生在销售活动中的,表示客户对企业品或服务的一ơ订购。依此理解,退换货是服务,不是订单Q而充值是订单。走不走程Q仅仅是订单实施的方式?/p> <p>q个案例告诉我们Q系l的业务模型Q要从业务的视角来徏QITpȝ是将业务模型用Y件概忉|表述Q不能改变业务概c?/p><img src ="http://www.tkk7.com/landy/aggbug/381377.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/landy/" target="_blank">q途书?/a> 2012-06-24 16:29 <a href="http://www.tkk7.com/landy/archive/2012/06/24/381377.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何定用例和场景的优先U?/title><link>http://www.tkk7.com/landy/archive/2012/05/11/377858.html</link><dc:creator>q途书?/dc:creator><author>q途书?/author><pubDate>Thu, 10 May 2012 20:56:00 GMT</pubDate><guid>http://www.tkk7.com/landy/archive/2012/05/11/377858.html</guid><wfw:comment>http://www.tkk7.com/landy/comments/377858.html</wfw:comment><comments>http://www.tkk7.com/landy/archive/2012/05/11/377858.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/landy/comments/commentRss/377858.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/landy/services/trackbacks/377858.html</trackback:ping><description><![CDATA[<span style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; "><br />在做需求分析时Q特别是在设计分析用例模型时Q很多h可能到q这L问题Q如何准划分优先Q根据我的经验,一般需求分析h员对用例的优先划分上没有具体的原则和标准,往往跟着感觉赎ͼ要么是客戯为重要的Q急着要实现的功能Q优先񔞮高Q当然也很重要。对于什么关键用例,什么重要用例,什么是辅助用例或一般用例,都没有具体分得很清楚Q因Z们觉得优先的都重要,反正都是要开发的Q客戯什么功能最急需要,那么完成它Q其余所有用例都Z般用例?/span><br style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; " /><span style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">其实我也很赞成这部分人的观点Q主要是l合实际目Q这U情况太普遍了,所以往往只区分重要和非重要来得更方便。不q既然RUP以及软g工程的需求分析阶D都有这么个概念Q而且对用例(场景Q类Q都分ؓ三个{Q关键(首要Q,重要Q其ơ)Q辅助(不错Q。那么ؓ了准理解,q在目中应用,我个为理解清晰它Q也q是有必要的。而最重要的是掌握其划分原则。最q参加了些需求分析方面的培训Q也了解了一些不同h的观点,l合RUPl出的解释,我做了些ȝ?/span><br style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; " /><span style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">下边说说我的理解。因为用例,场景Q类都有q三个等U划分,所以ؓ了解释方便,下边直接通过用例说明问题?/span><br style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; " /><strong style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">W一 关键Q或首要Q用?/strong><br style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; " /><span style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">RUP中解释是q样的:该等U的用例于系l的首要dQ基本功能以及待开发的功能有关。如果这些关键用例缺失,pȝ无法完成首要Q务。他们还促进架构设计Q而且往往是最频繁使用的用例。其实这个理解很好懂Q我也比较赞成,一句话是pȝ必不可少的功能,如果把系l无限羃,C能再~小了(再羃系l都无法使用了)Q这时剩下的用例是关键用例。而关键需求决定架构,所以这些关键用例往往Ҏ构设计的影响是很大的。所以分析用例模型时要特别重视关键用例的识别。有时候不能直接听客户所谓的优先U高的用例。因为客户不懂系l实玎ͼ他们只关注功能,不关注你如何设计Q如何分析。当然他们提的优先功能固然不可不重视Q但是我们不能局限于q些Q我们需要认真分析,把那些客为非优先Q但是通过分析Q我们认为确实是关键需求的用例扑և来,否则以后{用户去发现q些“关键用例”Q然后再提需求变更就ȝ了,因ؓ原来的关键需求识别上没有做好Q现在要变更需求,可能影响到架构,搞不好系l整个都要整改,那就ȝ了。我的识别方法时Q客L中的“优先”功能 + pȝ最实现的功能。把握了q个原则Q识别关键用例还是不隄?/span><br style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; " /><strong style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">W二 重要Q或其次Q用?br /></strong><span style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">RUP中的解释是这LQ?/span><br style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; " /><span style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">该等U的用例于系l功能的支持有关Q比如统计数据编译,报告生成Q监督和功能试{。如果他们缺失,pȝ仍然可以再一定时间内完成基本dQ但服务质量所有下降。这cd能其实相比之下不太好识别Q因为特征不够明显,不过识别原则q是很清晎ͼ是与系l功能的支持有关。比如常见的pȝ的用L理模块,理模块Q系l分cL块等Q都是ؓ了支持整个系l其他关键用例服务的。没有他们系l还是可以用Q但是相对质量不高。这c重要性用例的识别Q我的方法时抓住一?#8220;支持”2字的理解比较好识别了,分析多了Q就自然有了感觉Q而且Q结合关键用例和辅助性的用例的分析,用排除法也可以分析得更加准?/span><br style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; " /><strong style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">W三 辅助性(一般)用例</strong><br style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; " /><span style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">RUP中的解释是这LQ?/span><br style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; " /><span style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">q些用例和类着重舒适性的功能 Q与pȝ的主要Q务无养I但有助于pȝ的用和市场定位。我的理解,一句话Q就是系l扩展的功能Q生动一点说Q就是锦上添q功能。根据这个特征,q列用例q是比较好识别的?/span><br style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; " /><span style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; ">ȝQ一般来_不同{的用例对架构的媄响程度跟他们的关键程度是成正比的。但是也应该明确Q有些关键用例没有或基本没有影响力,反过来也是一P某些辅助性的用例可能对系l架构生比较大的媄响。所以,Ҏ论的东西没有l对的正,只是利用q些理论分析相对有效。呵呵,在现实中l常发现Q爱因斯坦真了不P相对论用途那么广泛,有时不自觉感受到其存在了Q而在学生时代q远理解不到q个层次.</span> <br />转蝲自:<a >http://blog.csdn.net/chuan122345/article/details/5167035</a><img src ="http://www.tkk7.com/landy/aggbug/377858.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/landy/" target="_blank">q途书?/a> 2012-05-11 04:56 <a href="http://www.tkk7.com/landy/archive/2012/05/11/377858.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>业务建模一般步骤和Ҏhttp://www.tkk7.com/landy/archive/2012/03/24/372626.htmlq途书?/dc:creator>q途书?/author>Sat, 24 Mar 2012 13:46:00 GMThttp://www.tkk7.com/landy/archive/2012/03/24/372626.htmlhttp://www.tkk7.com/landy/comments/372626.htmlhttp://www.tkk7.com/landy/archive/2012/03/24/372626.html#Feedback3http://www.tkk7.com/landy/comments/commentRss/372626.htmlhttp://www.tkk7.com/landy/services/trackbacks/372626.htmlhttp://hi.baidu.com/parryblog/blog/item/2d1ae59a72b043bcc9eaf4a0.html 
本篇开始之前先扯点闲话Q商业应用系l开发经历了三个阶段Q?br />  W一个阶D以计算Z心,分析设计围绕E序的运行效率,法优劣Q存贮优化来q行?0q代的大学课E讲的都是这些?br />
  W二阶段以数据ؓ中心Q分析设计围l数据流q行Q以数据程来模拟业务流E。这也就是所谓的面向q程的分析模式?br />
  W三阶段以hZ心,分析设计围绕人的业务需求,使用要求Q感受要求进行。这也就是现在的面象对象分析模式?br />
  使用OOҎ建立商业模型必须先定义涉众。商业系l无论多复杂Q无Z么行业,其本质无非是人,事,物,规则。h是一切的中心Qh做事Q做事生物Q规则限制h事物。h驱动pȝQ事体现q程Q物记录l果Q规则则是控制。无论OO也好QUML也好Q复杂的表面下其实只是一个简单的规则Q系l分析员弄明白有什么hQ什么h做什么事Q什么事产生什么物Q中间有什么规则,再把人,事,物之间的关系定义出来Q商业徏模也基本完成了。这时候可以说Q系l分析员已经完全了解了用户需求,可以q入pȝ建模阶段了?br />
  书归正传Q上笔者归U了一些典型的涉众cd及他们的普遍期望。接下来Q就是要他们这些期望定义出来。这个过E,是业务用例获取的过E。笔者可以跟大家分n的经验是通过以下步骤q行Q这些步骤ƈ非唯一正确Q对于经验不多的pȝ分析员来_q些步骤很有指导意义?br />
  W者做了一个徏模实例,有需要有读者请到笔者的BLOG资源中心下蝲Q实例以上一所q网上图书馆需求ؓ蓝本建立了业务用例模型,之后的概忉|型、系l模型则抽取了其中的借阅q程作ؓ例子。不记得了可以后头找找?br />
  建模W一步,从涉众中扑և用户。ƈ定义q些用户之间的关pR在ROSE中,应该使用business actor cd。参考上一的需求描qͼ下蝲实例

W二步,扑և每个用户要做的事Q即业务用例Q在ROSE中应使用Business use casecd。请参考《用例的cd与粒度》一文以帮助定用例的粒度。笔者强烈徏议ؓ每一个business actorl制一个业务用例图Q这能很好的体现以hZ心的分析模式Qƈ且不Ҏ漏掉business actor需要做的事。至于以参与者ؓ中心的视囑֮易漏掉某个业务用例的参与者的担心Q可以在W四步中得到消除。下载实?br />
  W三步,利用业务场景囑ָ助分析业务流E,在ROSE中,q个阶段最好用活动图Activity diagram。在q个阶段Q业务场景图非常重要Q在l制q程中,pȝ分析员必采用第一步中定义的用户名字作为泳道名Q用第二步中定义的业务用例名作为活动名来绘制。必这么做的原因是Q如果你无法把利用已l定义出来的 business actor ?business use case完备的描l业务流E,那么一定是前面的定义出问题了,你需要回头审视是?business actor ?business use case定义不完善或错误。如果不是所有的business actor ?business use case 都被用到Q要么应该检查业务流E调研时漏了什么,要么应该查是否定义了一些无用的business actor ?business use case 。同Ӟl制业务场景图也非常有助于选择合适的用例_度q保持所有的用例都是同一_度。下载实?br />
  W四步,l制用例场景图。与业务场景图不同的是,用例场景囑֏针对一个用例绘制该用例的执行过E。笔者仍然强烈推荐用activity diagram。在用例场景囄l制中,必须使用W一步中定义的业务用户作为泳道。必这么做的原因是Q它能帮助你发现在定义业务用例图时的错误Q比如是否漏掉了某个业务用例的潜在用者。不是每个业务用例都需要绘制场景图Q只有两三个步骤的业务用例是不必一定绘制业务用例图的,但仍焉要在业务用例规约文档中写明。下载实?br />
W五步,从第三步或第四步中绘制的zd图中扑ֈ每一步活动将使用到的或生的l果。这是找到物的过E。找到后Q应当徏立这些物之间的关pR在ROSE中,q称Z务实体模型。应该用business entity cd。下载实?br />
  W六步,在上q过E中Q随时补充词汇表Glossary。将此过E中的所有业务词汇,专业词汇{一切在建模q程中用到的需要解释的名词。这份文档将成ؓ模型建立Z读者就模型达成一致理解的重要保证?br />
  W七步,Ҏ上一中提到的业主,老板{涉众的期望审视建立好的模型Q确定业务范_军_哪些业务用例在系l徏设范围内。那些不打算U_范围内的业务用例有两U情况,一U是该业务用例是被调用一方,那么应该把它改ؓ boundary cdQ意味着来它是一个外部接口。另一U是该业务用例主动调用系l内业务用例Q那么应该将它改为business actorcd。与普通business actor不同的是Q由业务用例转换而成的business actor不是人,而通常是一个外部系l进E,因此应该在被调用的系l内业务用例与它之间增加一个boundary元素Q意味着我们的系l将样一个外部进E提供一个接口。严格来_那些需要纳入徏设范围的business use case 应当对应的生成一?business use case realizationQ?以后的设计工作将归纳到这些实现用例中。但W者觉得这一步ƈ非很关键的,实际中本Zl常省略q一步,而将协作图,象活动图Q类交互囄直接在business usecase下说明。不q本实例中笔者还是按照正规方法来建模的。下载实?br />
  需要说明的是,上述的步骤ƈ非一ơ性完成的Q在每一个步骤中都可能导致对以前步骤的调整。即使徏模已l完成,当遇到变化或发现新问题时Q上q步骤应当从头到ֆ执行一ơ。这也是RUP倡导的P代开发模式?br />
l过以上的步骤,我们已经建立了一个完整的业务模型。但q决不是建模工作的全部,以上q程只说明了建立一个完整业务模型的q程Q不能说q样徏立了一个很好的业务模型。因Zq的q程中ƈ没有提及业务分析q程。分析过E全凭系l分析员的经验,对OO的理解和对行业业务的把握能力Q对原始业务模型q行归纳Q整理,抽象Q重构,以徏立一个更高效Q合理,扩展性更强的模型。这个过E无法以步骤说明。或总后笔者会专门针对模型分析写点东西。另外除了模型,q至需要写业务架构文、用例规U和补充用例规约三种文档。因为模型虽然可以较好的体现业务架构Q但很不好表达业务规则和非业务需求,q些需要在文中说明。例如用例的前置条g和后|条件就是一U业务规则。读者可以在RUP文中找到这些文的模板?img src ="http://www.tkk7.com/landy/aggbug/372626.html" width = "1" height = "1" />

]]>
վ֩ģ壺 91㽶Ƶ| 91㽶߹ۿȫ| ڵĤѿ | ²߾ƷƵѹۿ| Ļ߹ۿ| ʮ˽Ļվ| ޵ӰպƷ| ߳׽ˮAƬ | ղƷaëƬþ| ɫַȫ| ˳ۺ| ˾ƷƵȫ| ޾Ʒ޿һ| ɫƬѿ| ۺϼ| +ɫ++| Ůһ18| a߹ۿ| һƵվ| ͵͵ͼƬ| ÿĻ2019| avۺ߹ۿ | ޾ƷһۺϾԴ| žȾþƵ| ޹Ʒվ߲ | Ƶۿ99| ޺ݺۺϾþѿ| va˳Ƶվȫ| aѹۿƵ| һĻߵӰ | ˼Ƶ| žžþùƷ6| ޹Ʒlv| ˳վ| AVþþƷ| Ůˬ̼ƵѲ| һƵ| Ļ޵һ| ҹ˽ӰԺ| aëƬȫ| ޸Ƶַ|