采用[ICONIX] 方法实践分析和设计之五 [初步设计复核](转)

这一篇文章的内容有些对不住大家了。因为公司正在准备发布新产品(Discuz!NT2.0),大家的心思

全在产品上,因此构思内容和写作的时间几乎没有了,本人就偷了个懒,把书中认为很有必要让大家了解的

内容简单的抄上来。同时因为这一章主要的内容都是进行相应的用例文本和健壮性图的检查,以及更新域模

型(使之逐步向详细类图逼进),所以如果大家感兴趣的话,可以找几个人一起研究一下,相信大家一定会

有所收获的。最后我也希望在产品正式发布之后能够回过头来有时间进一步完善和补充相应的内容。再次向
大家致歉了:(

    好了,开始正文吧。

   
初步设计复核(PDR)指的是对要构建的每个场景的用例文本和健壮性图进行复核, 确保它们一致,

并完整正确地表示期望的系统行为;同时确保域模型和健壮性图一致,即域模型中包含了健壮性图中的所有

的实体对象。同时还要确保给这些实体类分配了属性,使我们能够通过实体类,在系统屏幕之间跟踪数据流,
并可能进入到存储了永久性数据的底层数据库表。

      
   
当前内容在ICONIX方法中所处位置如下图:
   

    和需求复核一样,
PDR也应有客户代表,开发小组代表和经理参加。但这是客户修改其需求的最后
机会,而开发人员之后将根据指定的用例继续推进,最终编写出代码,因此
PDR被看作是一个分水岭,
过了该分水岭后,客户的主动参与将不再受欢迎。

   
本阶段还要对文本的改进,将其性质从纯粹的用户手册角度变为对象模型上下文中的使用描述。PDR
应对照所有的用例文本和健壮性图进行复核。

    相应流程是:
        .
阅读每一种操作流程;
        .
用手指指向相应的健壮性图中的对应内容;
        . 确保图文一致。


   在健壮性图中,使用控制对象(控制器)表示用例文本中的动词。这些控制器封装了控制流程。它

们是边界对象和实体对象之间,边界对象和边界对象之间以及实体对象和实体对象之间的“粘合剂”。在

静态模型中,就将哪些方法分配给哪些边界对象和实体对象以及哪些控制器应成为真正的对象做出决策,

还为时过早。这种决策将在绘制时序图时做出,而不是在绘制健壮性图的过程中做出。
    在这里不妨举一个例子:

    如果我们在PDR阶段时复核并确定了“浏览评论”用例的文本和相应健壮性图后,绘制相应的时序图
如下:

  


    通过这张图可以看到“浏览评论页面(边界对象)”和“评论列表(实体对象)”都有相应的方法(操

作),这时当进行详细设计复核之后我们就有了足够的信息(至少您希望如此)来将相应的方法(操作)
分配给相应的对象或某个控制对象(20%原则)。


    另外本阶段还应对技术体系结构做出一系列决策,这些决策包括使用何种如编程语言(是采用JAVA
还是VB,
C#),如何创建和分发组件(是采用 EJB还是 DCOM, CORBA,Web Serivce等), 是使用

jsp,php还是asp等)进行决策并有所反映。
   
比如:如果要使用EJB和JSP的技术体系结构,则健壮性图中将反映“屏幕中的控制”模式;因此,

健壮性分析让您能够快速地对设计进行粗略的描述,让您能够核实对要创建的场景而言,选择的技术体

系结构是否有效,而健壮性图复核将变为对该体系结构“做(do)能力”的检查。

   十种最常见的PDR 错误


   10. 不确保客户知道这是他们修改行为的最后机会,之后将开始构建系统。

          
在健壮性分析期间,用例的内容将被确定下来,之后开发小组将进行详细设计。开始绘制
      
时序图之前,用例必须是铁板钉钉的。因此在PDR期间,客户必须在用例上签字。如果在PDR之

      
后,仍允许客户修改用例,将增加“特性变化”的风险,同时很可能遇到这样的情况,即当您

      
进行设计时,需求仍在不断变化。       

    9. 不确保用例文本和健壮性图之间的一致性。

          
复核健壮性图的人员必须阅读用例文本中的操作流程,将手指指向健壮性图中的对应地方,
      
并确保图文一致。如果图文不一致,则必须重新编写用例文本,重新绘制健壮性图或这两件事

      
都要做。如果用例没有通过这种简单的检测,则不能根据它们来绘制时序图,也就不能完成优

       秀的详细设计。

    8.
不确保将新的实体对象加入到域模型中。

          
进行健壮性分析的目地之一是加速初始(问题空间)域模型到最终(解决方案空间)类模
      
型的演进过程。您给用例涉及到的所有对象分配行为,从而建立最终的类模型。如果开始绘制

       时序图之前,静态模型中还未包含所有的类,则无法正确地完成行为分配工作。

    7. 不考虑域类的属性。

          
对一组用例进行健壮性分析时,应获得域模型中类的完整属性集。这些属性很大部分对应
      
于边界对象中的元素,如窗口或屏幕上的字段;其它属性则与系统内容的功能有关。如果绘制

      
时序图之前,没有找出这些属性,则当您就哪些类应执行哪些操作做出决策时,拥有的信息将

       是不足的。

    6. 期望PDR
期间已经将操作(方法)分配给了类。

          
控制器用作功能和系统行为占位符。不应在健壮性图中将方法分配给类,因为此时可能没
      
有足够的信息。将在时序图中做出行为分配方面的决策。

    5.
不再次向客户重申,用例文本是开发人员和客户之间的契约。

          
在绘制时序图期间,应将用例文本复制到时序图的左侧。这样当您进行设计时,总能看到
      
要求的系统行为。这再次向设计人员强调了这样一点,即用例是客户和开发人员之间的契约;

       则对于客户,应在PDR期间就重申这一点。

    4. 要求在初步静态设计中大量使用设计模式。

          
找出健壮性图的模式(尤其是那些容易对应到已有的设计模式的模式或您发明的模式)是
      
对的;但将健壮性图中出现的简单的初步设计模式扩展为详细设计模式却是错误的。后一种工

       作应留到时序图和高级类图中去完成。

     
    3.
不对健壮性分析的名词/动词规则进行复核。

          
在时序图中,名词同其他名词交互是完全可以接受,因为支词表示的是对象之间的消息,
      
因此边界对象可以同其他边界对象或实体对象交互,实体对象也可以同其他实体对象交互。这

      
样做是帮助您确保用例被正确地表达。而整个项目中的用例文本必须采用统一的表达风格,这

       将有助于确保您继续使用用例来驱动设计时,很容易进行到时序图绘制。

    2. 期望健壮性图中包含完整的详细设计而不是概念设计。

          
用例,类图,时序图是永久性的,而健壮性图不是,因此不应试图让健壮性图十全十美而
      
浪费时间。
 
    1.
仔细复核健壮性图中每个箭头的方向,而不是进行快速跟踪以核实是否考虑到了所有的行为。

          
健壮性分析是一种“快速而粗略”的技术,旨在帮助您改进用例,发现对象,并为详细设
      
计打下良好的基础。健壮性较是一种实现目的的手段,花大量时间去确保箭头的正确性无疑是

      
浪费时间。您的工作重点是使时序图而不是健壮性图十全十美。

采用[ICONIX] 方法实践分析和设计之五 [初步设计复核](转),布布扣,bubuko.com

时间: 2024-10-09 21:32:10

采用[ICONIX] 方法实践分析和设计之五 [初步设计复核](转)的相关文章

采用[ICONIX] 方法实践分析和设计之三 [需求复核](转)

需求复核旨在确保用例和域模型同时满足客户的功能性需求.同时确保客户知道开发小组将根据这些需求做何种设计.同时它也是系统分析阶段的一个里程碑(milestone).      这一阶段在ICONIX方法中的位置如下图:      三巨头的首次聚首:客户代表,开发小组代表,经理就已有的工具(用例,原型和域模型)帮助客户理解其需求,并确定系统的功能需求.在这一过程中,ICONIX方法认为可跟踪性(traceability)是非常关键的,它强调清楚每种需求是如何转换为一个或多个用例,以及域模型中的一个或

采用[ICONIX] 方法实践分析和设计之六 [时序图](转)

采用[ICONIX] 方法实践BLOG设计之六 [时序图] 在前几篇文章中,我们分别进行了域模型和用例建模,并使用 Robustness工具进一步分析验证了相应用例的处理流程,并在相应模型(域模型)的基础上,通过Robustness方法引入相关的边界对象,控制对象(控制器),并更新了相应域模型中类的属性(字段).下面就可以进入到交互建模阶段了.如下图:    作为交互建模本身,就是要通过寻找对象之间的交互关系,进而进行方法(操作或行为)分配.    正所谓"只有在所有的用例为所有事件进程建立了交

采用[ICONIX] 方法实践分析和设计之四 [健壮性分析]

在前三章中通过(问题域)建模和用例分析之后,在许多的UML书中可能接下来就要进行时序图和协同图的绘制了.但是问题好像还没那么简单,因为这里有一条鸿沟还没有跨过去,正如下图所示:                    在我刚学开始学习 UML时,在拿到用例文本时要去画时序图总感觉有些别扭,不知如何才能将文本中的意思完全用图的形式表达出来,总是感觉分析出来的文本中缺了一些很重要的东西, 而这些被丢掉的对象最终可能会导致无法绘制时序图,但又找不出用例文本中到底还有什么东西被遗漏,最终导致设计瘫痪.后来

采用[ICONIX] 方法实践分析和设计之二 [用例建模](转)

在上一篇文章中我们了解并进行了域建模,换言之我们有了一个好的开始,起码开发人员对自己要开发的软件已有了初步的认识,且也得到了进行交流时可以使用的术语表. 本章将会在前一篇的基本上进一步阐述使用ICONIX方法实践用例建模,同样在文章的最后还会有在这个阶段最容易犯的10个错误,以给大家提醒或在分析过程中进行参照.     本文在ICONIX方法中所处的位置如下图(红圈标记的地方)     在开始进行用例建模之前,我们需要对这一过程有一些粗线条的认识,如果您以前做过或学习过这方面的知识,可以把下面的

采用[ICONIX] 方法实践分析和设计之一 [问题域建模](转)

前言:自从加入 Discuz!NT开发小组开始.我就放弃了以前的软件设计思想,转而去使用项目组所规范使用的架构设计思想和开发模式来进行开发.这样的时间一直持续到了今天.虽然我向往面向对象的开发方式,且向来对不够OO的设计存有偏见.但人必定要生存,特别是已经做了父亲的程序员来说,这种压力是不容回避的. 但今天开始的这一系列的文章将会说是一次对OO的一种回归.也可以说是对已有的设计思想的一种思考.在我从这中书柜上拿出这本已有两年多没再看的"用例驱动的UML对象建模应用--实例分析"(App

组合逻辑电路的分析和设计方法是怎样的呢?

组合逻辑电路的分析方法: 分析一个给定的逻辑电路,就是要通过分析找出电路的逻辑功能来. 1.从电路的输入.中间输入输出.输出逐级写出逻辑函数式,最后得到表示输出与输入关系的逻辑函数式. 2.(Optional)用公式化简法或卡诺图化简法将得到的函数式化简或变换,以使逻辑关系简单明了. 3.将(最简化之后的)逻辑函数式转换为真值表的形式,从而一目了然地得出电路的逻辑功能. 组合逻辑电路的设计方法: 根据给出的实际逻辑问题,求出实现这一逻辑功能的最简单逻辑电路,这就是设计组合逻辑电路时要完成的工作.

测试用例设计方法---边界值分析法

边界值分析法学习目标掌握边界值分析法设计测试用例掌握边界值分析法取值范围的确定掌握离点的划分方法 1.为什么要学习边界值分析法案例:两位数加法计算器要求:输入两个1-100之间整数的和请猜测程序为什么会出现上述问题?输入的参数值必须大于0同时小于100的整数,边界条件设置错误:把>写成了>=,把<写成了<=[注意]有效数据和无效数据的分界点,往往作为程序员编写程序的判断点,是程序员容易犯错误的地方, 也是测试人员重点测试的内容.2.什么是边界边界是指对于输入等价类和输出等价类而言,

基于SCRUM方法实践的西油计科党建设计与实现-个人实践流程清单

基于SCRUM方法实践的西油计科党建设计与实现 个人实践流程清单 一.Alpha版本冲刺个人在SCRUM团队任务清单: 时间 我这个三天做了什么 实际解决燃尽图项目数量 我遇到了什么问题 我下一个三天要做什么 预计下三天完成燃尽图项目数量 2019.10.9 将大家在国庆完成的组织管理.党员管理小程序前端代码与自己本地微擎小程序后带代码整合,并做单元测试,搭建本地微擎后台.认证个人小程序号.购买认证域名.域名解析绑定服务器 8 SSL证书一直审核出现问题.整合前端组织管理的小程序代码一直显示一直

结构化方法与面向对象方法的分析比较

软件开发方法指:在项目投资规模和时间限制内,设计.实现符合用户需求的高质量软件,根据软件开发的特点,提出的多种软件开发策略.在计算机软件领域,很多新的方法与技术都起源于程序设计语言,这种发展趋势具有十分重要的意义,它使那些富有生命力的新方法和新技术就此形成自己系统化的技术体系,它极大地推动了计算机软件技术的发展. 结构化方法和面向对象方法都是计算技术中常用的软件开发方法,两种开发方法目前都非常流行,选择哪一种方法要根据分析者的熟练程度和项目的类型而定.就目前而言,十全十美的开发方法是不存在的,真