当前位置:
文档之家› 结构化分析方法分析模型:数据流图( 共46页
结构化分析方法分析模型:数据流图( 共46页
0..1
1
Item quantity
1..* Contained
* Stocked-in
关联
1
1
Sale
Store
属性
date time 1
Address name
1 Paid-by
1 Houses
1
1..*
Payment
Captured-on POS
amout
1
商店问题域中的概念(UML 中的类)
• 成员 • 约束 • 关联、属性、操作
动态模型
用来描述系统与时间相关的动态 行为即系统的控制逻辑,表现对象彼 此间经过相互作用后,随时间改变的 不同运算顺序。
动态模型以“事件”(Events)和 “状态”(States)为其模型的主要概 念。
动态模型以状态图形式呈现,
• 事件: 瞬时发生的行为;
事件
抽象概念 过程
规则、手册
记录
目录 金融工具、服务机构
举例
销售、会议 出航、着陆、坠机
商店 机场 退货政策、雇员手册 取消策略、修理手册 收据、分类帐目、合同 维护日志 产品目录、零件目录
信用卡、股票
POS系统问题域的候选概念
•POS机(POS) •商品项(Item) •商店(Store) •销售项(Sale) •支付(Payment) •产品目录(ProductCatalog) •产品规格说明(ProductSpecification) •销售项条目(SalesLineItem) •出纳员(Cashier) •顾客(Customer) •管理员(Manager)
建立概念模型(UML中的类图)
•确定并定义类 •建立关联 •添加属性 •描述系统行为:系统顺序图等
建立关联
对象之间的静态联系称为实例 连接(Instance Connection) ,它通过 对象的属性来表现对象之间的依赖关 系。
面向对象术语中把对象之间的实 例连接称为链接(Link),把类之间的 实例连接称为关联(Association)
金额计算器
金额
累加 找零 重置
属于 属于
贩卖机
饮料号码 价格
投币-接受 饮料掉出 金额显示 按纽 退币杆
属于 属于
售完显示
存量计算器
饮料号码 存量
递减 售完显示 重置
退币杆 被拉动
退币杆状态
拉动
购买
顾客
姓名 硬币 投币-置入 拿取饮料
选取
选择钮
选择钮状态
灯亮 灯熄 售完灯亮 按钮
建立数据字典
为所有模型实体准备一个数 据字典,精确描述每一个对象类, 包括:
定义移动电话系统的对象(简化)
手机包括的对象:
• 手机屏幕 • 手机按钮 • 手机(屏幕、按钮以外的部件) 其它对象:
• 基站
MButton
MmobileStation
MDisplqy
MmobileHandset
移动电话系统的类图
移动电话系统对象间的通信
1:pushDigButton() 3:pushSendButton() 2:displayButtonNumber()
OMT支持整个软件生命周期:
需求分析、系统设计、系统实现、 测试与维护。
1. 分析阶段
理解应用问题,建立对象模型、动态 模型和功能模型,说明对象关联、控制流及 数据变换。
2. 系统设计阶段
确定系统框架,考虑并发任务、通讯 机制和数据存储策略。
3. 对象设计阶段
1. 打电话者拿起听筒 2. 电话忙音开始 3. 打电话者拨数字(8) 4. 电话忙音结束 5. 打电话者拨数字(2) 6. 打电话者拨数字(3) 7. 打电话者拨数字(7) 8. 打电话者拨数字(3)
9. 接电话者的电话开始振铃
10. 铃声在打电话者电话传出 11. 接电话者回答 12. 接电话者电话停止振铃 13. 铃声在打电话者电话中消失 14. 通电话 15. 接电话者挂断电话 16. 电话切断 17. 打电话者挂断电话
Address name
1 Paid-by
1 Houses
1
1..*
Payment
Captured-on POS
amout
1
范例:移动电话系统
移动电话系统的功能: • 用手机做移动通讯 • 下载铃声 • 下载图案 • 管理电话簿
移动电话系统的使用用例图
Talk to Others Download Icons Mobile user Download Rings Mobile Network Manage Phonebook
MDisplqy
displayError() displayButtonNumber() displayConnectSuccess() displayIncomingCall()
MmobileHandset
connectStation() disconnectStation()
connectSuccess () Diaconnectsuccess()
移动电话系统的类图之二
对象模型技术 (OMT, Object Model Tech)
基本模型:
对象模型 动态模型 功能模型
三个模型分别从不同角度分析系统
分析模型
•对象模型: 描述静态结构, 定义做
事情的实体
•功能模型: 描述处理(数据变换),
指明系统应“做什么”
•动态模型: 描述交互过程, 规定什么
事件
动作
当前时间=目标时间+20 重新设置闹钟
按下按钮(任意按钮) 重新设置闹钟
下一个状态 正常 正常
动态模型表示方法
• 状态图 状态和事件的网络,侧重描述每一类对象 的动态行为。
• 状态图
初始 事件
状态1
事件1[条件1] / 动作1 状态2
结束 事件
Do:活动1
.…...
例:
空闲
左边按钮按下/显示弹出菜单 左边按钮弹起/擦除弹出菜单
displayConnectSuccess() connectSuccess ()
MButton
pushDigButton() pushSendButton() pushDisconnectButton()
MmobileStation
createConnection() destoryConnection () responseError()
设置
一个饮料自动售货机可以放置五种不同或部分相同的 饮料,可由厂商根据销售状况自动调配,并可随时重 新设置售价,但售货机最多仅能放置50罐饮料,其按 钮设计在各种饮料样本的下方,若经金额计算器累计 金额足够,则选择键灯会亮;若某一种饮料已销售完 毕,则售完灯会亮。
销售
顾客将硬币投入售货机,经累加金额足额的饮料选择 键灯亮,等顾客按键选择。顾客按键后饮料由取物楼 掉出,并自动结算及找钱。
时候做
OMT模型系统分析和设计过程概观图
产生需求
分
问题描述
析
建立模型
阶 段
对象模型、动态模型、功能模型
结构及对象
设
设计
详细的对象模型
计
详细的动态模型
阶
详细的功能模型
段
实例:饮料自动售货机系统
设置
一个饮料自动售货机可以放置五种不同或部分相同的 饮料,可由厂商根据销售状况自动调配,并可随时重 新设置售价,但售货机最多仅能放置50罐饮料,其按 钮设计在各种饮料样本的下方,若经金额计算器累计 金额足够,则选择键灯会亮;若某一种饮料已销售完 毕,则售完灯会亮。
• 状态: 对象属性和对象关联的抽象形式
状态的特征表示方法举例:
状态:闹铃响
描述:闹铃响表示预定时间到
产生本状态的事件序列: 设置闹钟(预定时间) 不包括清除闹铃的任何后续操作 当前时间=预定时间
表征本状态的条件:
闹铃=开,从预定时间起没有按键的情况下,
目标时间当前时间 目标时间=20秒
本状态接受的各种时间:
概念就是一个想法、事物或对象
概念的描述 记号(Symbol) — 代表一个概念的单词或图形 内涵(Intension) — 一个概念的定义 外延(Extension) — 概念应用的一组实例
商店和销售领域的一个部分概念模型(UML的类图)
概念
Sales LineItem quantity
Records-sale-of
引起对象状态转换的控制信息。
事件类和属性举例:
飞机起飞(航线、航班号、城市) 按动鼠标按钮(按钮、位置) ……..
• 脚本和事件踪迹
脚本是系统某一次特定运行时期内发 生的事件序列。(脚本也叫场景)
• 事件追踪图
侧重说明发生于系统执行过程中的一 个特 定“场景(scenarios)”。
通话脚本(只包括影响电话线的事件)
顾客 售货机 金额计算器 选择键 存量计算器 售完灯
投入硬币
显示总额 选择按纽
累加 总额
金额总够
灯亮
饮料
选择键 #
结算 余额
找零
扣减存量
存量为零
灯亮
3. 功能模型
用来描述系统中数据的变换。
传统DFD + 控制流
对象A
数据流
过程 1
控制流
过程 2
对象B
数据存储区
基于三个模型的分析步骤
• 需求陈述
• 对象建模 • 动态建模 • 功能建模 • 添加操作反复建模
Store
POS
Sale
识别概念
候选概念类型
物理的或实在的对象 规格说明、设计或事物描述 地点 事务 人的角色 系统外部的其他系统或设备 组织