文档介绍:第七章面向对象分析(Object-Oriented Analysis)
李万龙
2013年秋
内容
分析过程
需求陈述
建立对象模型
建立动态模型
建立功能模型
定义服务
面向对象分析实例
难点
导引
分析:提取需求的过程
3项任务:分析={理解,表达,验证}
交流
建模全清到
分析模型={对象模型,动态模型,功能模型}
分析是迭代过程:利用原型做辅助工具
Requirement statement Rapid prototype Models
分析过程
① Object model: 最重要、最基本、最核心;
② Dynamic model:对于开发交互式系统(interactive system)很重要;
③ Function model:对于开发大运算量问题(如科学计算、编译系统等)很重要。
OOA:抽取和整理用户需求并建立问题域精确模型的过程。
分析过程
Object model 由五个层次组成(Coad&Yourdon, 1991),相当于把五张透明胶片(transparencies)叠在一起,每一层显示更多的细节。
主题指读者理解大型、复杂模型的一种机制(记忆的7+2原则)
分析过程
Category
Class-&-Object
Structure
1+
1+
Attribute
Method
请找错?
需求陈述
需求陈述的内容
问题范围、功能需求、性能要求、应用环境、假设条件等等。
陈述方式可繁可简
说明What 而不是 How。
举例
如果你要做一个银行的信用卡系统,你就可以这样描述软件需求:银行的卡部管理信用卡,每张信用卡只属于一个帐户。信用卡有卡号、余额。一张信用卡有多笔的交易记录。
Object Model
一、确定Class-&-Object
第1步:列出所有候选对象(candidates),它们可能是物理实体、人或组织、要处理的事件、对象间的活动、抽象概念等等
非正式分析:从需求陈述中挑出
名词 Class-&-Object
形容词 Attribute
动词 Method
Object Model
例:从ATM需求分析中提出的名词集合
银行、ATM、系统、中央计算机、分行计算机、柜员终端、网络、总行、分行、软件、成本、市、街道、营业厅、储蓄所、柜员、储户、现金、支票、账户、事务、现金兑换卡、余额、磁卡、分行代码、卡号、用户、副本、信息、密码、类型、取款额、账单、访问、通讯链路、事务日志
筛选时依下列标准删除:
冗余
无关
笼统
属性
操作既可为名词又可为动词的词,应慎重考虑。
实现
建立 Object Model
二、确定关联结构层
第1步:收集——
①需求陈述中涉及objets的动词短语:
分行计算机维护账户
柜员终端与分行计算机通信
柜员输入针对账户的事务
ATM与中央计算机交换关于事务的信息
中央计算机确定事务与分行的对应关系
ATM读现金兑换卡
ATM与用户交互
ATM吐出现金
ATM打印账单
系统处理并发的访问
ATM、中央计算机、分行计算机及柜员终端组成网络
总行拥有多台ATM
ATM设在主要街道上
分行提供分行计算机和柜员终端
柜员终端设在分行营业厅及储蓄所内
分行分摊软件开发成本
储户拥有账户
分行计算机处理针对账户的事务