- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE #
PAGE # 软件工程导论(第五版)
PAGE #
PAGE # 软件工程导论(第五版)
软件工程导论(
软件工程导论(第五版) PAGE #
第10章面向对象分析
10.1面向对象分析的基本过程
不论采用哪种软件工程方法开发软件, 需求分析的主要
工作都是:理解需求、表达需求和验证需求,下面的图概括 地表示了参照当前系统建立目标系统的过程。
怎么做做什么表达需求
怎么做
做什么
表达需求
图:参照当前系统建立目标系统
面向对象分析(Object-Oriented Analysis,简称 00A)的
关键就是识别出对象与类,并分析它们之间的关系,最终建 立对象模型、动态模型和功能模型。
10.1.1 概述
系统分析员要善于学习、勇于实践,更重要的是一切从实
际出发。
[注] “00A就是抽取和整理用户需求并建立问题域 精确模型 的过程。”(P231)――这在一开始能做到吗?一一扯蛋
10.1.2 3个子模型与5个层次
面向对象建模需建立包含系统的三个要素:1
面向对象建模需建立包含系统的三个要素:
1)静态结
构(对象模型)、2)交互次序(动态模型)、3)数据交换(功 能模型)。
iterations )式的自顶
iterations )式的自顶
向下的求精过程。对于一个大型复杂系统来说 对象模型一般
由下述5个层次组成:
软件工程导论(
软件工程导论(第五版) PAGE #
PAGE #
PAGE # 软件工程导论(第五版)
软件工程导论(
软件工程导论(第五版) PAGE #
图10.2复杂问题的对象模型的 5个层次
其中主题层是指从一个更高(高于“类”)的抽象层次
来描述对象模型(即从一个相当高的层次上描述总体模型) 通过划分“主题”把一个复杂系统的对象模型分解成几个不 同的概念范畴。
其实上述5个层次就是 00A中建立对象模型的 5项主
要工作:找出类和对象,识别结构(类或对象之间的关系) 识别主题、定义属性、定义服务。我们知道动态模型和功能
模型中都包含了对象模型中的操作, 因此人们在定义每个类 中的服务前,往往先建立起动态模型和功能模型,这样说来 00A大体上可按下列顺序进行:
确定类和对象
确定关联 划分主题 定义属性
确定继承关系建立动态模型
(7)建立功能模型 (8)定义服务
需要注意地是在这里我们根本不强调顺序, 更不是谈什
么步骤。
10.2需求陈述
需求陈述的主要任务是准确地回答“系统必须做什
么?”,而不是“系统应该怎么做?” 10.2.1书写要点
1022例子
我们用 “ ATM 系统”(ATM 是 Automatic Teller Machine 的缩
写,意即自动柜员机)的开发作为 OOAOOD的实例。
系统
图
10.2ATM
10.3建立对象模型
10.3.1确定类与对象
1.
找出候选的类与对象(例:P236 ATM
系统)
2.
般来说,大千世界中的客观事物可分为
5类:
1)
2)
3)
4)
5)
可感知的物理实体,如:飞机,汽车,
人或组织的角色,如:教师,医生,计算机系,学生
应该记忆的事件,如:飞行,演出,访问,交通事故
对象的相互作用,如:购买,结婚,纳税
概念,如:政策,刑法,泛化,集合
筛选出正确的类与对象
我们需要确定的类与对象是:
(1) 应该记录的对象
(2) 需要它提供服务的对象
同时要关注下述6个方面:
1)冗余:去掉冗余的类(如“用户”2)无关:
1)
冗余:去掉冗余的类(如
“用户”
2)
无关:去掉无关的类(如
3)
笼统:去掉笼统的类(如
“银行”)
4)
属性:区分属性和类(某个性质若具有很强的
独立性应当作为“类”)
5)操作:区分操作和类(本身具有属性且需独立存
在的“操作”应当作为“类”)
6)实现:忽略实现内容(应当去掉仅和实现有关
的“类”,如“事务日志”)
1032确定关联
对象之间的相互依赖、相互作用的关系就是关联。在分
析的起始阶段,我们不必花过多的精力去区分关联和聚集, 聚集不过是一种特殊的关联,是关联的一个特例。
1.初步确定关联
软件工程导论(
软件工程导论(第五版) PAGE #
PAGE #
PAGE # 软件工程导论(第五版)
软件工程导论(
软件工程导论(第五版) PAGE #
4
4) 标明重数:但无需花过多精力
通过分析动词词组我们可以得出大多数关联(例:P
通过分析动词词组我们可以得出大多数关联(例:
P 238
ATM系统)
2.筛选
筛选时要关注下述5个方面:
1)已删去的类之间的关联也要删除
3)描述瞬时事件的关系不应作为关联(关联应该描
述问题域的静态结构)
4)三个或三个以上对象的关联要作分解或描述成限
定关联
5)冗余关联要删除
3.
原创力文档


文档评论(0)