阅读ICONIX方法笔记
主要步骤包括:
1、域建模(领域模型)
2、用例建模(动态模型)
3、分析建模
4、健壮性分析
5、交互建模(绘出时序图和设计级类图)
域模型(是一种由内向外的方式来分析系统的)
(1) 确定直实世界中的抽象,即系统中将涉及的主要的概念性对象。
(2) 域类(可以认为是实体类)的来源就是需求、领域知识以及问题陈述中的相关名词或名词短语等术语。
(3) 识别完了域类后,就可以进行问题域建模,即进行域类图的绘制(可以有类之间的关联和泛化等关系)
注意:这里的域类图只是一种表现形式,里面的一个类的层次关系临时安排,而最终的结果需要反复修订,等到设计级类图可以看到效果。
(4) 这个阶段也可以进行原型界面的设计(暂时不考虑,但是给学生介绍的时候,需要进行考虑)
用例建模(是一种由外到内的分析方式,以Actor为驱动,分析系统用例)
(1) 先给用例下个定义(参考调研的教材):
用例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果。
(2) 用例建模主要分为两步:
1) 识别参与者(Actor)
2) 确定用例(不需要进行用例的规格化,后续进行规格化),产生系统用例图
分析建模
将系统的用例进行规格化,主要注重用例的(基本事件流、扩展事件流和异常事件流),可以通过活动图对用例业务流程进行描述
健壮性分析(出对用例的健壮性分析图)
从用例的规格化中(基本事件流、扩展事件流和异常事件流)识别出相关的对象(域建模期间可能会遗漏一些对象)
该阶段使用了三种对象(对象的定义从参考资料中获取):
(1) 实体对象(entity object):
通常是来自域模型中的对象(也就是现实世界),它常对应于数据库表和文件,这些数据表和文件中存储了执行用例所需的数据。有些实体对象是“临时”对象(如搜索结果),当用例结束后将消失。
(2) 边界对象(boundary object):
参与者使用它来同系统交互,这通常包含窗口,屏幕,对话框和菜单。如果有GUI原型,将会知道许多主要的边界对象是什么。
(3) 控制对象(control object):
将边界对象和实体对象关联起来(通常被称为控制器,因为它们通常不是真正的对象),它包含了大部分应用逻辑,它们在用户和存储的数据之间架起一座桥梁。
个人插入一句话:联想一下MVC(Model、View、Control)思想,貌似有点儿相似????
强调:健壮性分析结束后需要根据分析结果更新一下域模型。将其中的关键属性(字段)分配到主要的类中,只有更新域模型后,健壮性分析才算完成,才能进入使用时序图的交互建模阶段。
交互建模(寻找对象之间的交互关系,进而进行方法(操作或行为)分配):
交互建模包括两种形式:
(1) 时序图(顺序图):在健壮性图中,使用控制对象(控制器)表示用例描述中的动词,这些控制器封装了控制流程。时序图负责将哪些方法分配给哪些边界对象和实体对象。
在交互建模期间,要实现的二个主要目标:
1) 列出用例涉及的对象之间随时间的变化进行的详细交互。在运行阶段,对象是通过彼此发
送消息进行交互的。对于用例中的每个行为单元,都必须确定所需的消息/方法。
2) 根据用例设计的对象之间的交互关系,最终确定类间的方法(操作)分配,完成设计级类图。
(2) 协作图(暂时不考虑)