@1234567890
2018-01-04T09:28:24.000000Z
字数 2808
阅读 1577
设计
好像总是没有足够的时间来完成建模、 分析和设计工作,总是过早地进入到 编码阶段
以最少的投入,完成需求到编码的过渡
问题 | UML工具/技术 |
---|---|
用户与用户活动? | Use-case |
“现实世界”对象? | 高层类图 |
为每个用例建立对象? | Robustness分析 |
对象交互? | 顺序图/协作图 |
实时控制活动? | 状态图 |
如何建立? | 低层类图 |
产出:用户界面原型、用例模型、领域模型、高层类图
里程碑:需求评审
产出:用例图、健壮性图、领域模型、类图
里程碑:初步设计评审
产出:时序图、完整的类图、(协作图、状态图)
里程碑:详细/关键设计评审
画时序图注意点:
产出:代码
里程碑:交付
领域概念:
问题域,一个包含现实世界事务与概念的领域,在用例建模中起一个术语表的作用
领域建模目的
确定真实世界中的抽象,确定对象以及他们之间的关系
域类的最佳来源
高层级需求、详细需求描述、问题空间的专业知识
领域建模的任务:找到代表现实世界中的事务与概念的对象
这些活动的执行没有固定必然的顺序,是不断重复细化的
所有
名词应该是属性关联类拥有关联和类特性:一个关联类可以看作是一个拥有类特性的关联,或者可以看作是一个拥有关联特性的类。
它不仅仅是用于连接一些分类器,而是还定义了属于关联关系本身的特征,这些特征是只属于关联关系本身而不属于任何关联分类器的
高层类图
用例
用于表示系统所提供的服务,它定义了系统是如何被参与者所使用的,它描述的是参与者为了使用系统所提供的某一完整功能而与系统之间发生的一段对话。
参与者
是指存在于被定义系统外部并与该系统发生交互的人或其他系统,他们代表的是系统的使用者或使用环境。
用例图使我们对系统的功能有了一个整体的认知,我们可以知道有哪些参与者会与系统发生交互,每一个参与者需要系统为它提供什么样的服务。
用例描述的是参与者与系统之间的对话,但是这个对话的细节并没有在用例图中表述出来,针对每一个用例我们可以用事件流来描述这一对话的细节内容。
确定系统中所包含的参与者、用例和两者之间的对应关系,用例图描述的是关于系统功能的一个概述。
针对每一个用例都应该有一个用例规约文档与之相对应,该文档描述用例的细节内容。
简要说明 (Brief Description)
简要介绍该用例的作用和目的。
事件流 (Flow of Event)
包括基本流和备选流,事件流应该表示出所有的场景。
用例场景 (Use-Case Scenario)
包括成功场景和失败场景,场景主要是由基本流和备选流组合而成的。
特殊需求 (Special Requirement)
描述与该用例相关的非功能性需求(包括性能、可靠性、可用性和可扩展性等)和设计约束(所使用的操作系统、开发工具等)。
前置条件 (Pre-Condition)
执行用例之前系统必须所处的状态。
后置条件 (Post-Condition)
用例执行完毕后系统可能处于的一组状态。
我们通过健壮性图进行健壮性分析:先绘制健壮性图,仔细检查用例文本,检查每一个 句子,然后根据句子的描述绘制出参与者、边界对象、实体对象和控制器以及图中不同元素间的关系。然后评审健壮性图,通过观察用例文本和图是否‘图文一致’ 来发现问题,修改用例文本,当然也要修改静态模型。在这个阶段,因该把一些关键属性添加到类图中。
边界对象
参与者使用该对象与系统进 行交流,窗口、屏幕、对话框、菜单, 从原型、用例文本中识别
实体对象
来自域模型;映射到数据表; 存取数据
控制对象
该对象在边界对象与实体对象中扮演粘合剂;也称为控制体,体系 应用程序的逻辑;体现业务规则及策略; 在实现的时候可能不会是独立的类
用例:进行交易
动态模型的核心,描述了系统在运行时间的行为,包括系统如何完 成这些行为
1、将用例描述复制到时序图的左 边空白处
2、添加实体对象
3、添加边界对象与参与者
4、设法解决控制体,一次一个, 然后弄清楚如何在协作对象中分配 行为