分析模型.ppt

上传人:仙人指路1688 文档编号:2901309 上传时间:2023-03-01 格式:PPT 页数:21 大小:245.02KB
返回 下载 相关 举报
分析模型.ppt_第1页
第1页 / 共21页
分析模型.ppt_第2页
第2页 / 共21页
分析模型.ppt_第3页
第3页 / 共21页
分析模型.ppt_第4页
第4页 / 共21页
分析模型.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《分析模型.ppt》由会员分享,可在线阅读,更多相关《分析模型.ppt(21页珍藏版)》请在三一办公上搜索。

1、分析模型,Creating an Analysis ModelAnalysis Model TemplateUse Case RealizationsDocumenting ClassesDistributing BehaviorSequence DiagramsView of Participating ClassesSummary,Creating an Analysis Model,Analysis Model Template,Overviews包Domain Model diagramKey Abstractions diagramKey Controllers diagramUI

2、diagramAnalysis Building Blocks包$functional.area$use.case创建功能区域包,Use Case Realizations,用例表示的是系统应当“做什么”用例实现表示的是系统“如何做”用例中所规定的功能将用例与它们的实现分开,使得可以对每一项进行独立管理对于一个相同的功能,这些系统可能有多个实现在UML中,用例实现使用协作(collaboration)来表示,画作一个虚线的椭圆在分析时,要为用例模型中标识出的每个用例都创建用例实现创建用例实现,发现类,IBM RUP主张通过寻找边界类、控制类和实体类来为待开发的系统寻找类这三种衍型与MVC的观点

3、一致边界类、控制类和实体类如下图所示,实体类,实体类用来为那些通常长期存在的信息和相关行为建模这种类可能反映了真实世界的实体,也可能是系统内部为了完成任务而产生的实体通常,它们独立于应用,这就意味着它们可以用在不止一个应用中第一步是检查所标识的用例的事件流中所记载的职责(例如,系统必须做什么)实体类通常是系统完成某些职责所需要的那些类使用名词或名词短语来描述职责会是一个好的开始必须对最初列出的名词进行过滤,因为其中可能包含了一些问题域之外的名词、含义相同而只是语言表达不同的名词、冗余的名词和描述类结构的名词,边界类,边界类处理的是系统环境和系统内部之间的通信它们为用户或其他系统提供了接口(比如

4、参与者的接口)它们构成了系统中依赖于环境的部分。边界类用来为系统接口建模通过检查每个“自然的参与者应用场景”对来发现边界类在分析模型中所发现的边界类通常是高层次的例如,可以为一个窗口建模,但不要为每个对话框和按钮建模在此时,你应该记载用户接口的需求,而不应实现这些接口,边界类(续),用户接口需求往往非常模糊似乎使用了太多的用户友好和灵活性之类的术语对于不同的人,用户友好意味着不同的东西通过采用原型技术和故事板技术使客户能够得到系统的感受,并真正地捕获用户友好的意义要捕获边界类的结构和行为在设计期间,应对这些类进行精炼,从而考虑到所选中的用户接口机制如何实现它们为了便于与其他系统进行通信,也可以

5、增加边界类在设计期间,要对这些类进行精炼,从而考虑所选中的通信协议,控制类,控制类用来为专门用于一个或多个用例的有序行为进行建模控制类用来协调事件,这些事件是实现用例中所规定的行为所必需的可以把控制类看成一个“运行的”或“可执行的”用例,它们代表了用例的动态方面控制类通常是依赖于应用的类,控制类(续),在分析模型中,为每个用例增加控制类,控制类负责用例中的事件流控制类的使用是非常主观的很多专家都觉得:控制类的使用所导致的结果就是将行为与数据相分离如果一个控制类所做的不只是序列化,那么它所做的就太多了例如,在课程注册系统中,学生选择所提供的课程,并且如果课程可用的话,学生就被加入到这个课程中谁知

6、道如何增加学生呢?是控制类还是课程类?正确的回答是课程类控制类知道什么时候应当加入学生;而课程类知道如何加入学生。如果控制类不仅知道什么时候加入学生,还知道如何加入学生,这就不是一个好的控制类,撰写类的文档,应该对类建立文档文档应当陈述类的目的,而不应陈述类的结构例如,一个Student类应当有这样的文档:学生就是现在注册在大学上课的人如果为类命名和编写文档很困难,那就说明它可能不是一个好的抽象可以标识出名称并给出清楚简洁的定义好的候选类可以标识出名称,但它的定义和另一个类相同结合这两个类可以标识出名称,但需要很大的篇幅才能讲清楚它的目的分解类不能确定名称或定义需要做进一步的分析才能确定正确的

7、抽象,寻找ESU课程注册系统中的边界类、控制类和实体类,“浏览课程目录”用例主要能力是让学生能够浏览课程的目录寻找边界类用例的规格说明表明:学生可以按照课程浏览目录,也可以搜索特定的所提供的课程将创建一个叫做BrowseCatalogHome的边界类,以使学生能够进行这一决策因为有两种不同的浏览目录的方法,所以还要增加两个额外的边界类:CourseList和CourseOfferingList最后,学生可以选择查看某个特定CourseOffering的详细信息,所以创建一个CourseOfferingDetail边界类增加一个控制类对于这个用例,要增加个控制类来管理其事件流,我们把它叫做Cou

8、rseCatalog,寻找实体类,寻找实体类的第一步是在用例规格说明中寻找名词可以找到如下这些名词:课程目录、课程、所提供的课程、学科领域、课程信息和搜索条件(即course catalog,course,course offering,subject area,course information,and search criteria)接着研究每个名词以查看它是否能构成一个好的类如果试着写出这些名词的文档,通常就可以确定它们是否适合作为候选类,寻找实体类(续),课程目录控制类课程在大学中要学习的一个特定领域。课程要按照学科领域来组织课程信息一个课程的详细信息所提供的课程一个已经为某个学期分

9、配了具体时间和位置的课程学科领域一种对课程进行分类的方法(比如,数学)搜索条件你想要找的所提供的课程的编号根据实体类的定义并运用上面这些定义,可以得出这样的结论:Course(课程)和CourseOffering(所提供的课程)是好的候选实体类,Sequence Diagram,显示了按照时间顺序排列的对象交互复杂性让它们保持简单对于条件逻辑的处理可以通过检查sequence diagram来评估对象模型,“浏览课程目录”用例实现中的行为,两个sequence diagram一个是按照分类浏览一个是搜索某个所提供的课程分析模型模板中已经包含了用于基本流的图用于备选流的图combined fra

10、gment,结构,使用类的属性来描述对象的结构,参与类的视图,参与类图(participating classes diagram)这一视图显示了用于特定用例实现的所有类和类之间的关系将使用这个图来创建类之间的关系可以通过检查用于该用例实现的序列图来寻找关系如果在两个对象之间存在一个消息,那么在这两个类之间必然存在一个关系在开发的早期阶段,会使用两种关系:关联和聚集,小结,用例表示的是系统将做“什么”。用例实现表示的是系统“如何”完成用例中所规定的功能对象是一个具有定义良好的边界并对应用有意义的概念、抽象或事物系统中的每个对象都有3个特性:状态、行为和标识符类描述了一组对象,它们有共同属性、共

11、同行为(操作)、共同的与其他对象的关系和共同的语义实体类为那些通常长期存在的信息和相关行为建模边界类处理的是系统环境和系统内部之间的通信控制类为专门用于一个或多个用例的有序行为而建模。控制类协调了实现用例中所规定的行为而需要的事件通过在参与到用例实现中的分析类之间分配行为,可以提供用例中所规定的功能序列图显示了按照时间顺序排列的对象交互使用类的属性来描述对象的结构参与类的视图这一图显示了用于特定用例实现的所有类和类之间的关系,DeveloperWorks Links,A.4.1Crain,A.The simple artifacts of analysis and design.developerWorks,June 2004:http:/G.Getting from use cases to code(two-part series).developerWorks,July 2004.Chapter 4:http:/D.UML basics:The class diagram.developerWorks,September 2004:http:/D.UMLs sequence diagram.developerWorks,February 2004:http:/,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号