软件工程第10章ppt.ppt
《软件工程第10章ppt.ppt》由会员分享,可在线阅读,更多相关《软件工程第10章ppt.ppt(69页珍藏版)》请在三一办公上搜索。
1、第10章 面向对象分析,1 面向对象分析的基本过程2 需求陈述3 建立对象模型4 建立动态模型5 建立功能模型6 定义服务,1.不论采用哪种方法开发软件,分析的过程:都是提取系统需求的过程。2.分析工作主要包括3项内容:理解需求 表达需求 验证需求 为什么要验证需求?,3.面向对象分析(OOA)的关键:是识别出问题域内的类与对象,并分析它们相 互间的关系,最终建立起问题域的正确模型。4.在用面向对象观点建立起的3种模型:对象模型 动态模型 功能模型 哪个模型是最基本、最重要、最核心的?,1.面向对象分析:就是抽取和整理用户需求并建立问题域精确模型 的过程。2.面向对象分析的过程:(1)面向对象
2、分析过程从分析陈述用户需求的 文件开始。文件的来源有哪些?,10.1 面向对象分析的基本过程10.1.1 概述,2.面向对象分析的过程:(1)面向对象分析过程从分析陈述用户需求的 文件开始。(2)在分析用户需求的过程中,系统分析员需 要和用户反复协商,必要时,建立一个“原 型系统”,以正确地提炼出用户的需求。(3)在深入理解用户需求后,要进行问题域建 模,在建模的过程中,要考虑OOA的“可 重用性”,仔细研究相同的或类似的问题域 进行OOA的结果。,3.3个子模型与5个层次 面向对象建模得到的3个模型:对象模型 动态模型 功能模型 复杂问题(大型系统)的对象模型通常由 下述5个层次组成:如下图
3、所示:,图10.1 复杂问题的对象模型的5个层次,抽象,具体,什么是主题?.主题又叫范畴,是指导读者理解大型、复杂模型 的一种机制。.读者:指的是?.也就是说,通过划分主题把一个大型、复杂的对 象模型分解成几个不同的概念范畴。.面向对象分析从下述两个方面来体现Miller原则:控制可见性和指导读者的注意力。,上述5个层次对应着在面向对象分析过程中建立 对象模型的5项主要活动:找出类与对象,识别结构,识别主题,定义属 性,定义服务。通常在完整地定义每个类中的服务之前,需要 先建立起动态模型和功能模型。,综上所述,在概念上可以认为,面向对象分析 大体上按照下列顺序进行:(1)寻找类与对象,(2)识
4、别结构,(3)识别主题,(4)定义属性,(5)建立动态模型,(6)建立功能模型,(7)定义服务。但是,正如前面已经多次强调指出过的,分析 不可能严格地按照预定顺序进行,大型、复杂 系统的模型需要反复构造多遍才能建成。,1.需求陈述的内容有哪些?2.书写需求陈述时,要注意哪些问题?3.总结,10.2 需求陈述 10.2.1 书写要点,10.2.2 例子,图10.2 ATM系统,1.面向对象分析首要的工作:是建立问题域的对象模型。这个模型描述了现实世界中的“类与对象”以及 它们之间的关系,表示了目标系统的静态数据 结构。2.建立对象模型时的主要信息来源:需求陈述 应用领域的专业知识 关于客观世界的
5、常识,10.3 建立对象模型,3.建立对象模型的典型工作步骤是:(1)确定对象类和关联(2)进一步划分主题(3)给类和关联增添属性;(4)合并和组织类(5)最后确定类中的操作,工作步骤:1.找出候选的类与对象2.筛选出正确的类与对象,10.3.1 确定类与对象,1.找出候选的类与对象1)可感知的物理实体2)人或组织的角色3)应该记忆的事件4)两个或多个对象的相互作用5)需要说明的概念,10.3.1 确定类与对象,另一种更简单的分析方法:非正式分析1)以用自然语言书写的需求陈述为依据,2)把陈述中的名词作为类与对象的候选者,3)用形容词作为确定属性的线索,4)把动词作为服务(操作)的候选者。,1
6、0.3.1 确定类与对象,下面以ATM系统为例,说明非正式分析过程。银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问。,通常,在需求陈述中不会全部写出问题域中 所有有关的类与对象,因此,分析员应该根据领域知识或常识进一 步把隐含的类与对象提取出来。例如,在ATM系统的需求陈述中虽然没写“通信链路”和“事务日志”,但是,根据领域 知识和常识可以知道,在ATM系统中应该 包含这两个实体。,2.筛选出正
7、确的类与对象,(1)冗余(2)无关(3)笼统(4)属性(5)操作(6)实现,2.筛选出正确的类与对象冗余如果两个类表达了同样的信息,则应该保留在此问题域中最富于描述力的名称。例如:ATM系统中的“储户与用户”,“现金兑换卡与磁卡及副本”(2)无关仅需要把与本问题密切相关的类与对象放进目标系统中。例如:ATM系统中的候选类“成本”、“市”、“街 道”、“营业厅”和“储蓄所”应该去掉。,(3)笼统在需求陈述中常常使用一些笼统的、泛指的名词,但在需求陈述中有更明确更具体的名词对应它们所暗示的事务,因此,通常把这些笼统的或模糊的类去掉。例如:ATM系统为例,“银行”实际指总行或分行,“访问”在这里实际
8、指事务,那么在本例中 应该去掉“银行”、“网络”、“系统”、“软 件”、“信息”、“访问”等候选类。,(4)属性在需求陈述中有些名词实际上描述的是其他对象的属性,应该把这些名词从候选类与对象中去掉。当然,如果某个性质具有很强的独立性,则应把它作为类而不是作为属性。例如:在ATM系统中,“现金”、“支票”、“取款 额”、“账单”、“余额”、“分行代码”、“卡 号”、“密码”、“类型”等,实际上都应该 作为属性对待。,(5)操作在需求陈述中有时可能使用一些既可作为名词,又可作为动词的词,要正确地决定把它们作为类还是作为类中的操作。例如:谈到电话时通常把“拨号”当作动词,当构 造电话模型时确实应该把
9、它作为一个操作,但是,在开发电话的自动记账系统时,“拨 号”需要有自己的属性(例如日期、时间、受话地点等),因此应该把它作为一个类。总之,本身具有属性需独立存在的操作,应该作为类与对象。,(6)实现例如:在ATM系统中,“事务日志”是对一系列 事务的记录;“通信链路”在逻辑上是一种联系,在系统 实现时它是关联类的物理实现。总之:应该暂时去掉“事务日志”和“通信链路”这两个类,在设计或实现时再考虑它们。综上所述,在ATM系统的例子中,经过初步筛选,剩下下列类与对象:ATM、中央计算机、分行计算机、柜员终端、总行、分行、柜员、储户、账户、事务、现金兑换卡。,1.初步确定关联2.筛选3.进一步完善,
10、10.3.2 确定关联,1.初步确定关联.在需求陈述中使用的描述性动词或动词词组,通 常表示关联关系。.通过分析需求陈述,还能发现一些在陈述中隐含 的关联。.分析员还应该与用户及领域专家讨论问题域实体 间的相互依赖、相互作用关系,根据领域知识再 进一步补充一些关联。以ATM系统为例,经过分析初步确定出下列关联:,10.3.2 确定关联,(1)直接提取动词短语得出的关联.ATM、中央计算机、分行计算机及柜员终端组成 网络。.总行拥有多台ATM。.ATM设在主要街道上。.分行提供分行计算机和柜员终端。.柜员终端设在分行营业厅及储蓄所内。.分行分摊软件开发成本。.储户拥有账户。.分行计算机处理针对账
11、户的事务。.分行计算机维护账户。,.柜员终端与分行计算机通信。.柜员输入针对账户的事务。.ATM与中央计算机交换关于事务的信息。.中央计算机确定事务与分行的对应关系。.ATM读现金兑换卡。.ATM与用户交互。.ATM吐出现金。.ATM打印账单。.系统处理并发的访问。,(2)需求陈述中隐含的关联.总行由各个分行组成。.分行保管账户。.总行拥有中央计算机。.系统维护事务日志。.系统提供必要的安全性。.储户拥有现金兑换卡。(3)根据问题域知识得出的关联.现金兑换卡访问账户。.分行雇用柜员。,2.筛选(1)已删去的类之间的关联例如:以ATM系统为例,由于已经删去了“系统”、“网络”、“市”、“街道”、
12、“成本”、“软件”、“事务日志”、“现金”、“营业厅”、“储蓄所”、“账单”等候选类,因此,与这些类有关的下 列8个关联也应该删去:,ATM、中央计算机、分行计算机及柜员终端组 成网络。ATM设在主要街道上。分行分摊软件开发成本。系统提供必要的安全性。系统维护事务日志。ATM吐出现金。ATM打印账单。柜员终端设在分行营业厅及储蓄所内。,(2)与问题无关的或应在实现阶段考虑的关联例如:在ATM系统中,“系统处理并发的访问”并没有标明对象之间的新关联,它只不 过提醒我们在实现阶段需要使用实现并 发访问的算法,以处理并发事务。,(3)瞬时事件关联应该描述问题域的静态结构,而不应该是一个瞬时事件。例如
13、:在ATM系统中,“ATM读现金兑换卡”描述 了ATM与用户交互周期中的一个动作,它 并不是ATM与现金兑换卡之间的固有关系,因此应该删去。类似地,还应该删去“ATM 与用户交互”这个候选的关联。,(4)三元关联三个或三个以上对象之间的关联,大多可以分解为二元关联或用词组描述成限定的关联。例如:在ATM系统中,“柜员输入针对账户的事 务”可以分解成“柜员输入事务”和“事务 修改账户”这样两个二元关联。(5)派生关联应该去掉那些可以用其他关联定义的冗余关联。例如,在ATM系统中,“总行拥有多台ATM”实质 上是“总行拥有中央计算机”和“ATM与中央 计算机通信”这两个关联组合的结果。,进一步完善
14、,(1)正名(2)分解(3)补充(4)标明重数,进一步完善(1)正名应该仔细选择含义更明确的名字作为关联名。例如:“分行提供分行计算机和柜员终端”不如改为“分行拥有分行计算机”和“分行拥有柜员终 端”。(2)分解为了能够适用于不同的关联,必要时应该分解以前确定的类与对象。例如:在ATM系统中,应该把“事务”分解成“远程 事务”和“柜员事务”。,(3)补充发现了遗漏的关联就应该及时补上。例如:在ATM系统中把“事务”分解成上述两类之 后,需要补充“柜员输入柜员事务”、“柜员 事务输进柜员终端”、“在ATM上输入远程 事务”和“远程事务由现金兑换卡授权”等关 联。(4)标明重数应该初步判定各个关联
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 10 ppt
链接地址:https://www.31ppt.com/p-6610895.html