软件分析设计第一部

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

确定相互关系


确定用例的最后一个步骤就是描述关系。 关系包括:
参与者与用例之间的关系 用例之间的关系
参与者之间的关系。

关系类型包括:
包含关系、扩展关系和泛化关系。
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
用例之间的关系
登录验证
分离扩展路径


www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
1.需求获取
1.问卷调查 2.客户访谈 3.观察 4.研究竞争对手 5.涉众反馈
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
第一阶段

Pre Architecture
主要职责:抽取需求、建立用例文档、找出参与者
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
1.需求获取
1
需求 设计 编码 单元测试 验收测试
5
10
20
50
200
维护
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
1.需求获取
软件设计贯穿整个生命周期
⑵边界对象
边界对象用于描述拟建系统内部运作与外 部环境之间的交互。 边界对象主要用于描述三种类型的内容:

拟建系统和用户的界面, 拟建系统和外部系统的接口 拟建系统与设备的接口。
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
系统分析
具体来说,分析阶段的活动主要是: 识别对象 为对象分类 确定类的属性和操作 确定类之间的关系 确定对象之间的交互 确定对象的状态变化等
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
1.识别对象

复用已有的资料
用例模型和用例描述。 术语表、权威的术语定义集合

www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
结构化的用例描述文本

用例的描述应包括(Pre-Condition)和后 置条件(Post-Condition)
管理报表模板 财务主管 前置条件:登录
前置、后置都必须是系统能检测到的
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
如何找出用例
基于参与者识别用例 l)识别出与系统有关的参与者。 2)对每个参与者,识别出他们发起或参加 的过程。 3)对每个参与者,识别出向他们传递信息 的过程。 用例是参与者通过系统达到的目标,不是 参与者某个动作
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
确定系统边界

在确定参与者和用例的过程中也就确定的 了系统的边界, 用例是系统之中的, 参与者是系统外部的


www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
如何找出参与者
一般地,可以通过以下问题去寻找用例图中的参与者: 谁是系统的主要使用者? 谁从系统获取信息? 谁向系统输入信息? 谁从系统中删除信息? 谁需要系统支持他们的日常工作? 谁来维护、管理系统使其能正常工作? 系统需要控制哪些硬件? 系统需要与其他哪些系统交互? 对系统产生的结果感兴趣的是哪些人或哪些事物?
软件设计贯穿整个生命周期
UML建模设计

UML建模设计第一部
作者:王加位
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
UML建模

系统开发方法=建模语言+开发过程 建模语言是设计的表示符号,而过程则是描 述如何进行开发所需的步骤 开发过程=需求获取+系统分析+系统设计+ 实现+测试
序列图举例 边界对象 User 输入信息 控制对象 实体对象
输入信息 请求处理 数据处理
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
2.描述对象的协作关系

我们还需要详细了解对象在系统中的行为 和责任。 责任是响应消息的能力。消息被要求者提 出,责任由响应者承担。
⑵边界对象

通过检查在用例图中的参与者与用例之间 的关系,我们可以识别出边界对象。 通常,在分析模型中,每一对参与者/用 例都构成了一个边界对象。

www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
识别边界对象的可参考下列问题:

识别边界对象的可参考下列问题:
该对象是否描述了必须显示的信息以及必须
软件设计贯穿整个生命周期
建立用例模型时应注意的问题

①在大型的软件开发过程中,用例图可以 分层建立。 ②在建模的开始阶段,注意保持用例图是 对系统功能需求的高层次刻画,不要对它 进行过细的分解。

www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
第二阶段
Conceptual Architecture

www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
识别用例
用例将支持和维护的系统功能是什么? 必须提醒参与者的系统事件有哪些? 参与者必须提醒系统事件有哪些?怎样把 这些事件表示成用例中的功能?

www.chanjet.com www.chanjet.com
提供的服务? 该对象是否包含所有的接口设计细节? 该对象是否描述了与外部系统的交互?
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
⑶控制对象
控制对象用于描述对一个用例所特有的事 件流的控制行为。 控制对象相当于协调人 它自己通常不处理具体的任务,但它知道 那些类有能力完成具体的任务。 通常一个用例对应一个控制类。
主要职责:确定接口、分组、类之间关系、状态变化
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期

顶层设计确定系统未来的发展升级 任何设计长期来看都有局限性 矛和盾在物质运动中长期存在
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
参与者泛化关系

有时参与者之间存在 一些共性,为了便于 描述参与者之间的区 别,使用参与者泛化 关系来描述参与者之 间的关系。
客户
公司客户
个人客户
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
可以找到实体对象的几个办法
①考虑解决问题所需要的全部数据和行为, 然后将数据按相关性分组。 ②识别出重要的名词,并将它们作为实体对 象,然后确定每一个实体对象包含的数据 和行为。 ③列出所有的数据、行为以及听起来很重要 的名词,然后将数据和行为分配到不同类 型的实体对象中。
www.chanjet.com www.chanjet.com

www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
三种对象类型

分析模型中最常用的三种对象类型,它们 是:
实体(Entity) 边界(Boundary) 控制(Control)
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期

www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
发现扩展关系

系统分析员检查每个用例,如果发现一个 用例比较大,并且其中既包含了一般处理 又包含了特殊处理,那么就应该将特殊处 理的部分提取出来,创建单独的用例,并 且用扩展关系连接这个用例与相关的用例。

这样会降低原来的用例复杂性,处理更简 单。
软件设计贯穿整个生命周期
如何确定用例的粒度
不要把用例划分的过大,也不要把用例划 分得过于琐碎细小。 通常,用例的行为都是用事件流描述,并且 会产生显著的目标。这是用例粒度的底线。 即每个用例都应当是一个完成有意义的业 务目标的事件流集合。

www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
用例的识别
输入用户名
输入密码、
Customer
提交
用例??
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
一般认为合适的把握
Login
Customer Puchase
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
发现对象
从用例模型和用例描述中找出名词来 但名词可能是参与者、对象和对象属性, 所以还要区别它们 参与者通常比较容易区别,区别对象和对 象属性可以通过分析是否有行为, 对象是有行为的,而属性只是单纯的信息
软件设计贯穿整个生命周期
参与者→职责→用例
财务人员:设计报表模板 帐套主管:设计单据

www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
识别用例
通常,在确定用例前应考虑以下问题: 参与者需要使用系统吗? 对于各个参与者,哪些任务会涉及到系统? 系统与参与者之间有哪些交互? 系统需要何种输入输出?输入从何处来?输出 到何处去?
需求理解错误
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
1.需求获取
1.产品愿景(Vision)、概要需求、详细 需求 2.业界现状 3.需求{业务级、用户级、开发级}
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
如何找出参与者
除把直接使用系统的人员确认为参与者外。 凡是与系统进行信息交换(包括数据信息 和控制信息交换)的外部事物均可被确认 为参与者。 外部事物指的是:人员、设备、外部系统、 事件。

www.chanjet.com www.chanjet.com

优化原则: 独立 集中 拆分

www.chanjet.com www.chanjet.com
பைடு நூலகம்
软件设计贯穿整个生命周期
划分用例的优先级
定义用例的优先级是为了区分需求的优先 级。 区分用例的优先级是为了确定哪些用例要 先行开发,哪些用例要放在随后的迭代工 作中开发。 区分的依据是前面活动生成的概要用例模 型、补充需求说明和术语表。
用来判断应使用哪种关系的规则:
当处理一般与特殊的关系时,采用泛化关 系。 当避免两个或多个例出现重复描述时,采 用包含关系 当描述用例的某种异常动作。采用扩展关 系

www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
用例的优化
用例是否有重复的功能出现(合并) 是否有功能上的包含(合并) 用例是否复杂、太大(拆分)

www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
识别控制对象可参考下列问题:
是否对业务逻辑进行控制? 是否将业务逻辑提交给实体对象?

www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
顺序图中的边界对象,控制对象和实体对象
同一业务目的 的不同技术实 现
财务主管
管理报表模板
找出制定模板
密码验证
安全证书验证
设计模板
登录
提取 公共
帐套主管
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
发现包含关系
系统分析员应该检查模型中的每个用例, 提炼出公共的部分,创建单独的用例,并 用包含关系与基本用例连接。 这样会降低原来的用例复杂性,增加用例 的复用性。
1.需求获取
需求的理解、权衡、取舍和补充决定 系统的质量
www.chanjet.com www.chanjet.com
软件设计贯穿整个生命周期
2.建立用例图

为了能够准确的描述用户的需求,就要使 用用例。 首先需识别用例,然后才能建立用例。

www.chanjet.com www.chanjet.com
相关文档
最新文档