软件工程第十讲-面向对象分析.ppt

上传人:牧羊曲112 文档编号:6610907 上传时间:2023-11-17 格式:PPT 页数:29 大小:494.50KB
返回 下载 相关 举报
软件工程第十讲-面向对象分析.ppt_第1页
第1页 / 共29页
软件工程第十讲-面向对象分析.ppt_第2页
第2页 / 共29页
软件工程第十讲-面向对象分析.ppt_第3页
第3页 / 共29页
软件工程第十讲-面向对象分析.ppt_第4页
第4页 / 共29页
软件工程第十讲-面向对象分析.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《软件工程第十讲-面向对象分析.ppt》由会员分享,可在线阅读,更多相关《软件工程第十讲-面向对象分析.ppt(29页珍藏版)》请在三一办公上搜索。

1、第十章 面向对象分析,10.1 面向对象分析的基本过程10.2 需求陈述10.3 建立对象模型10.4 建立动态模型10.5 建立功能模型10.6 定义服务,一、面向对象分析(Object-oriented Analysis,OOA),提取用户需求 理解 表达 验证 建立三个模型 OM DM FM,1.分析过程,生成需求,建立模型,问题陈述,OMDMFM,用户,开发人员,管理人员,访问用户领域知识现实世界,设计过程,界限模糊,2.需求陈述(Requirement Statement),说明What 而不是 How内容 问题范围 功能需求 性能要求 应用环境 假设条件,【例】ATM系统,ATM,

2、ATM,中央计算机,分行计算机,分行计算机,帐户,帐户,帐户,帐户,柜员终端,储户,柜员,储户,ATM,【例】ATM系统的需求陈述,所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码唯一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些帐户。通常,一张卡可以访问储户的若干个帐户,但是不一定能访问这个储户的全部帐户。每张现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本。因此必须考虑同时在若干台ATM上使用同样的现金兑换卡的可能性。也就是说,系统应该能够处理并发的访问。当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获得有关这次事务的信息,并与中央计算机交换关于事

3、务的信息。首先,ATM要求用户输入密码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。如果用户输入的密码正确,ATM就要求用户选择事务类型(取款、查询等)。当用户选择取款时,ATM请求用户输入取款额。最后,ATM从现金出口吐出现金,并且打印帐单交给用户。,3.OM的五个层次,相当于把五张透明胶片(transparencies)叠在一起,每一层显示更多的细节,OM的五个层次,OMT大体顺序,寻找类-&-对象 识别结构 识别主题 定义属性

4、建立动态模型 建立功能模型 定义服务,不严格按照顺序 OOA不需要严格遵守自顶向下的原则,4.建立OM,确定Class-&-Object 确定关联 结构层 划分主题 确定属性 识别继承关系 反复修改 建立DM 建立FM定义服务,(1)确定Class-&-Object,第1步:列出候选Class-&-Object(candidates)物理实体 人或组织 要处理的事件 对象间的活动 抽象概念,列出候选Class-&-Object,某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计算机、分行计算机及柜员终端组成的网络系统。ATM和中央计算机由总行购买。总行拥有多台ATM,分别设在全市各主

5、要街道上。分行负责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属的各个储蓄所内。该系统的软件开发成本由各分行分摊。银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支票向自己拥有的某个帐户内存款或开新帐户。储户也可以从自己的帐户中取款。通常,一个储户可能拥有多个帐户。柜员负责把储户提交的存款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计算机通信,分行计算机具体处理针对某个帐户的事务并且维护帐户。拥有银行帐户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过ATM访问自己的帐户。目前仅限于用现金兑换卡在ATM上提取现金,或查询有关

6、自己帐户的信息(如帐户余额)。将来可能还要求使用ATM办理转帐、存款等事务。,列出候选Class-&-Object,所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码唯一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些帐户。通常,一张卡可以访问储户的若干个帐户,但是不一定能访问这个储户的全部帐户。每张现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本。因此必须考虑同时在若干台ATM上使用同样的现金兑换卡的可能性。也就是说,系统应该能够处理并发的访问。当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获得有关这次事务的信息,并与中央计算机交换关于事务的信息。首先,

7、ATM要求用户输入密码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。如果用户输入的密码正确,ATM就要求用户选择事务类型(取款、查询等)。当用户选择取款时,ATM请求用户输入取款额。最后,ATM从现金出口吐出现金,并且打印帐单交给用户。,(1)确定Class-&-Object,第2步:去粗取精,例:从ATM需求分析中提出的名词集合,银行、ATM、系统、中央计算机、分行计算机、柜员终端、网络、总行、分行、软件、成本、市、街道、营业厅、储

8、蓄所、柜员、储户、现金、支票、账户、事务、现金兑换卡、余额、磁卡、分行代码、卡号、用户、副本、信息、密码、类型、取款额、账单、访问,筛选时依下列标准删除:,、通信链路、事务日志,冗余,无关,笼统,属性,操作 既可为名词又可为动词的词,应慎重考虑,实现,(2)确定关联 结构层,收集 Requirement Statement中的动词词组 根据问题域知识得出关联 筛选删除 已删除的class之间的关联 与问题无关/在实现阶段考虑的关联 反映瞬时事件的关联 三元关联 二元关联 冗余的关联 完善正名、分解、补漏、标明阶数,(3)划分主题,注意:按问题域而不是按功能分解 主题间的依赖和交互尽可能少,1.

9、总 行2.分 行3.ATM,(4)确立属性,Attribute 不表示 objects 之间的关系,只表示其本质性质需求陈述中与已确定的objects 有关的名词、形容词可能是属性选择的线索 领域知识和常识有助于确定属性 Attribute不要与链属性、限定词混淆 暂不考虑纯用于实现的 attributes,(5)识别继承关系,两种建立继承关系的方式 自底向上(Bottom-up)归纳induction 将具有相同属性的classes向上归纳出父类 自顶向下(Top-down)演绎deduction 将现有classes向下细化出子类(但分析阶段避免过度细化),(6)反复修改,若某class中

10、具有几个独立的功能,则考虑分解为几个classes对于某class中具有自己特有属性的部分,可考虑将之列为独立存在的class,且是原有class的组成合并无须分别考虑的若干classes,修改建立OM,归 纳,组 成,分 解,合 并,5.建立DM,第一步,是编写典型交互行为的脚本。第二步,从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象第三步,排列事件发生的次序,确定每个对象可能有的状态及状态间的转换关系,并用状态图描绘它们。最后,比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配,5.1 编写脚本,脚本是指系统在某一执行期间内出现的一系列事件。脚本描述用户(

11、或其他外部设备)与目标系统之间的一个或多个典型的交互过程,以便对目标系统的行为有更具体的认识。,5.2 设想用户界面,用户界面的美观程度、方便程度、易学程度以及效率等等,是用户使用系统时最先感受到的,用户对系统的“第一印象”往往从界面得来,用户界面的好坏往往对用户是否喜欢、是否接受一个系统起很重要的作用。,5.3 画事件跟踪图,为了有助于建立动态模型,通常在画状态图之前先画出事件跟踪图。因此首先需要进一步明确事件及事件与对象的关系。应该仔细分析每个脚本,以便从中提取出所有外部事件。事件包括系统与用户(或外部设备)交互的所有信号、输入、输出、中断、动作等等。从脚本中容易找出正常事件,但是,应该小

12、心仔细,不要遗漏了异常事件和出错条件。传递信息的对象的动作也是事件。应该把对控制流产生相同效果的那些事件组合在一起作为一类事件,并给它们取一个惟一的名字。从脚本中提取出各类事件并确定了每类事件的发送对象和接受对象之后,就可以用事件跟踪图把事件序列以及事件与对象的关系,形象、清晰地表示出来。,5.4 画状态图,状态图描绘事件与对象状态的关系。当对象接受了一个事件以后,它的下个状态取决于当前状态及所接受的事件。由事件引起的状态改变称为“转换”。仅考虑事件跟踪图中指向某条竖线的那些箭头线。把这些事件作为状态图中的有向边(即箭头线),边上标以事件名。两个事件之间的间隔就是一个状态。从事件跟踪图中当前考虑的竖线射出的箭头线,是这条竖线代表的对象达到某个状态时所做的行为(往往是引起另一类对象状态转换的事件)。,5.5 审查动态模型,各个类的状态图通过共享事件合并起来,构成了系统的动态模型。在完成了每个具有重要交互行为的类的状态图之后,应该检查系统级的完整性和一致性。,6.建立FMDFD+IPO+Pseudocode7.定义服务-常规行为-从事件导出操作-与DFD中的process 对应 method,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号