收藏 分享(赏)

09、面向对象分析.ppt

上传人:dzzj200808 文档编号:4052994 上传时间:2018-12-06 格式:PPT 页数:68 大小:1.87MB
下载 相关 举报
09、面向对象分析.ppt_第1页
第1页 / 共68页
09、面向对象分析.ppt_第2页
第2页 / 共68页
09、面向对象分析.ppt_第3页
第3页 / 共68页
09、面向对象分析.ppt_第4页
第4页 / 共68页
09、面向对象分析.ppt_第5页
第5页 / 共68页
点击查看更多>>
资源描述

1、 2008 BUPT TSEG,第九章 面向对象分析 修佳鹏 ,软件工程模型与方法 Models & Methods of Software Engineering, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,本章内容,9.1 面向对象分析综述 9.2 用例建模 9.3 创建领域模型 9.4 绘制系统顺序图 9.5 创建系统操作契约, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,9.1 面向对象分析综述,面向对象分析(Object-Oriented Analysis,简称OOA)就是运用面向对象的方法进行系统分析,强调运用面向对象方法,对问题域和系统职责进

2、行分析和理解,找出描述问题域及系统职责所需的对象,定义对象的属性、服务以及它们之间的关系,目标是建立一个符合问题域、满足用户需求的OOA模型。 问题域(problem domain):被开发系统的应用领域,即在现实世界中由这个系统进行处理的业务范围 系统职责(system responsibilities),所开发的系统应该具备的职能, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,OOA与OOD的职责划分,OOA针对现实世界中的问题域与系统职责,用面向对象的方法建立起针对问题域和系统职责的模型,作为分析的结果。OOA模型不考虑与系统的具体实现相关的因素(譬如,采用什么程序设计

3、语言和数据库),从而使OOA模型独立于具体的实现环境。 OOD则是针对系统的具体实现,运用OO方法进行系统设计。其中包括两方面的工作:一是根据实现条件对OOA模型做某些必要的调整和修改,使其成为OOD模型的一部分;二是针对具体实现条件,建立人机界面、数据存储和控制驱动等模型。这些部分与OOA采用相同的概念和表示法。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,软件分析所面临的问题,1对问题域和系统职责的理解 2交流问题 3需求的不断变化 4软件复用的要求, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,面向对象分析步骤,(1)利用用例以及用例图来捕获和描述用

4、户的需求,从而建立系统的功能需求模型。为创建需求模型,首先要从业务需求描述出发,识别参与者和使用场景;对场景进行汇总、分类和抽象,形成用例;确定参与者和用例、用例和用例之间的关系,形成用例模型。 (2)从业务需求描述和用例描述中提取“关键概念”,形成领域模型。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,面向对象分析步骤,(3)从用例出发,将系统看作一个黑盒子,识别出参与者和系统交互的系统事件,在系统顺序图中进行描述,并进一步识别出系统操作。 (4)从系统顺序图和领域模型出发,建立系统操作契约,描述响应系统事件的系统操作执行后对系统状态的影响,从而回答系统“做什么”的问题。

5、此处的系统状态变化指的是领域模型中概念的创建和删除,概念属性的修改以及概念之间关联的建立和删除。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,在线考试系统功能描述,本系统主要是为程序设计类课程考试而设计,但是也应该能适应到其他的课程。目的在于: 1.增加考试灵活性,减轻任课教师的出题、判卷和统计工作; 2.避免纸面考程序设计题的一些缺陷; 3.增加一些统计分析功能,便于老师及时跟踪学生对知识点的掌握情况。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,系统用户,教师 学生 助教, 2008 B

6、UPT TSEG 北京邮电大学 通信软件工程中心,子系统描述,1. 题库管理子系统 对考题进行管理。题目类型有选择题、填空题、解答题和程序设计题,功能要求: 能增、删、改、查询题目。 能支持使用Excel批量导入试题到数据库的功能。 2. 考试子系统 根据一定的试题生成规则现场生成一套试题供学生进行解答,并记录答案。考试采用逐题方式进行,做完一题再出现下一题。学生可以用上翻、下翻键来选择返回上一题还是进行到下一题。考试采用人工计时方式。若到考试结束时间,则系统强行要求学生结束答题;若学生提前做完,则可以按结束考试键终止答题。当学生选择结束考试时,给出选择题的成绩,并将学生所做的试题及答案记录到

7、数据库中。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,子系统描述,3. 阅卷子系统 为了方便老师批量批改解答题和程序设计题,系统能灵活支持将某道题的学生解答汇总成一个文档供老师拿回去批阅,并将阅后成绩导入数据库中。 4. 给分子系统 在每小题的成绩都已经给出的情况下,统计出每一个学生的最终机考成绩并记载到数据库中。 5. 统计子系统 统计子系统主要是提供考试结果分析信息,以方便老师了解考试情况,对教学结果做出较好的评估。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,用例建模目标,画出系统用例图 识别系统边界 识别参与者 识别用例 确定用例之间关系 给出

8、用例的文本描述 用例描述模板, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,9.2 用例建模,9.2.1 确定系统边界 9.2.2 识别参与者 9.2.3 识别用例 9.2.4 其他需求分析工作, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,9.2.1 确定系统边界,系统边界是一个系统所包含的所有系统成分与系统以外各事物的分界线。 系统边界以外是与系统进行交互的人员、设备、外部系统或组织。 系统是由一条边界包围起来的未知空间,系统只通过边界上的有限个接口与外部交互。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,9.2.2 识别参与者,参与

9、者(actor)是具有行为能力的事物,可以是一个人(由所扮演的角色来识别)、计算机系统或硬件设备。 它们位于系统边界之外,通过和系统进行有意义的交互来实现它们的目标。 识别参与者的任务就是找到参与者并明确其在系统中要实现的目标。 参与者是一个类 。 参与者可以发出请求,要求系统提供服务,系统以某种方式进行响应,或者把响应的结果给其他的参与者;系统也可以向参与者发出请求,参与者对此做出响应。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,参与者的分类,主要参与者:指的是在使用系统服务的过程中满足自己目标的那些参与者,如使用在线考试系统的任课教师和学生。识别出这类参与者,可以帮助

10、找到用户目标,从而确定系统的功能需求。 次要参与者:指的是为系统提供服务的那些参与者,如一个对信用卡支付进行授权的外部系统。识别出这类参与者,可以帮助确定外部接口和协议。 后台参与者:指的是对用例的行为感兴趣的那些参与者,如政府的税务机关。识别出这类参与者,可以保证找到所有方面的兴趣并让用例满足之。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,谁能充当参与者,人员:可以从直接使用系统的人员中发现参与者。其从系统获取信息,或者向系统提供信息。 外部系统:所有与系统交互的外部系统。 设备:所有与系统交互的设备。其与系统相连,向系统提供外界信息,或者从系统获取信息,在系统的控制下

11、运行。例如传感器、受控马达、条形码扫描设备等。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,如何找到参与者,通过回答以下问题找到参与者: (1)谁使用系统的主要功能? (2)谁需要系统的支持以完成其日常工作任务? (3)谁负责维护、管理并保证系统的正常运行? (4)系统需要和哪些外部系统交互? (5)系统需要处理哪些设备? (6)对系统产生的结果感兴趣的人或事物是哪些?, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,如何识别参与者的目标,可以通过回答以下问题识别参与者的目标: (1)某个参与者要求系统为其提供什么功能?该参与者需要做哪些工作(可能有些工作需

12、要系统帮助完成)? (2)参与者需要阅读、创建、销毁、更新或存储系统中的某些(类)信息吗? (3)系统中的事件一定要告知参与者吗?参与者需要告诉系统一些什么吗?那些系统内部的事件从功能的角度代表什么? (4)由于系统新功能的识别(如那些典型的还没有实现自动化的人工系统),参与者的日常工作被简化或效率提高了吗?若是,则该用例对于该参与者有意义、值得实现。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,参与者之间的继承关系,参与者是一个类,因此在参与者之间可以引入类之间的继承关系,通过定义某个抽象参与者来简化参与者的定义。 如果一组参与者具有共同的性质,可以把这些性质抽取出来放在

13、另一个参与者中,这组参与者再从中继承,这种关系称为参与者之间的继承关系。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,在线考试系统的参与者,四类主要参与者:任课教师、助教、学生和系统维护人员。 各个参与者的系统目标: 任课教师:能维护题库;能设计一次考试的出题规则,设定考生范围和考试时间及时长;能顺利开展考试;能方便有效地开展阅卷工作;能得到有价值的统计信息。 助教:能方便有效地开展阅卷工作; 学生:能顺利进行考试,能查询自己的考试成绩; 系统维护人员:能对系统的用户、权限、系统参数等进行方便地维护。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,在线考试

14、系统的参与者,任课教师的部分目标和助教的目标相同,于是可以创建一个新的抽象参与者阅卷者,它的目标是使用系统方便有效地开展阅卷工作; 教师和助教再继承阅卷者, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,9.2.3 识别用例,用例的定义: 一个用例(use case)描述系统的一项功能,功能被描述为一组动作序列(场景)的集合。每一个动作序列表示参与者与系统的一次交互,将为参与者产生一个可观察的结果值。 每一个用例使用动词短语定义,该短语描述了系统必须完成的目标。 对定义的理解: (1)一个用例描述系统的一项功能,是参与者使用系统来达成目标时一组相关的成功场景(scenario)

15、和失败场景的集合。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,对用例的理解,(2)用例通常是由某个参与者来驱动执行,只有当外部的参与者与系统交互时,该功能才会发生作用。 (3)用例中,只描述参与者可以看到的系统行为特征。 (4)用例描述的是一个参与者所使用的一项系统级功能,该项功能应该相对完整。 (5)可观察的结果值是指系统对参与者的动作要做出响应,在经过若干次交互之后,系统把最终有意义的结果值反馈给参与者。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,识别用例,从参与者角度出发,识别每类参与者在系统中要实现的目标,从中抽取用例。 用例可以分为三种不同

16、的级别: 企业级别的目标:如盈利、扩大目标市场等; 用户级别的目标:如取款、在线考试等; 子功能级别的目标:如验证用户身份、记录系统日志等。 识别用例重点要识别的是用户级别用例。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,基本业务过程,基本业务过程(EBP,Elementary Business Process)是指由一个人在某个时间某个地点执行的一项任务,这项任务是对某一业务事件的反应,而且能够增加可以度量的业务价值,并且能够保持数据状态的一致。 进行用例分析时,应该专注于EBP级别的用例,但是当一个子功能在多个用户目标级别用例中重复出现,或这个子功能是多个用户目标级别

17、用例的前置条件,如“验证用户身份”、“记录日志”等,则可以定义一个用例来表示该子功能。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,用例描述,用例描述的目标是将用例的功能和应用场景描述清楚,包括 用例在何时开始,何时结束 参与者何时与系统交互 交互什么内容 所有可能的交互场景 对用例的描述,可以用自然语言,也可以采用用户自定义的语言。为了更清楚地说明问题,也可以采用面向对象的类图、交互图、状态图或活动图来做进一步的描述。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,用例描述模板, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,用例之间的关

18、系,包含关系 用例A在其内部说明的某一位置上显式地使用用例B行为的结果,称为用例A包含用例B。 包含关系图示表示如下左图。 避免用例中相同功能的重复描述;避免过长的用例。 扩展关系 在不能改变已有用例的情况下,扩展用例的功能。 扩展用例中必须包含触发和扩展点说明。 扩展管理的图示表示如下右图。,include, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,用例的包含关系举例,假设在一个旅游电子商务网站系统中,有如下用例: 购买机票 预定酒店 在这两个用例中,都有一个环节是“填写联系资料”,则可以将“填写联系资料”抽象为一个独立的用例,在上述用例中包含该用例,局部用例图如下图所

19、示:,购买机票,填写联系资料,预定酒店,include,include, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,用例1:购买机票 主要成功场景: 1.顾客输入航班查询条件; 2.系统显示查询结果; 11.顾客填写联系方式, 包含填写联系资料用例。 12.顾客选择信用卡支付, 填写信用卡信息。,用例2:预订酒店 主要成功场景: 1. 顾客输入酒店查询条件; 2. 系统显示查询结果; 3顾客填写入住时间; 8.顾客填写联系方式, 包含填写联系资料用例。,用例10:填写联系资料 级别:子功能 主要成功场景: 1.顾客在联系方式界面内输入办公电话、 手机、Email、邮寄地址和

20、邮箱,点击提交。 2.系统验证上述信息格式有效。 扩展(或替代流程): 2a. 系统发现有必填信息没有填写1.系统给出提示信息;2.顾客填写信息,回到主要成功场景的步骤2。 2b. 系统验证信息格式不正确1.系统给出提示信息;2. 顾客重新填写信息,回到主要成功场景的步骤2。,包含关系用例描述, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,用例的扩展关系,假设在“购买机票”用例中,基用例不能修改,此时需要在信用卡支付环节,增加“里程换机票”的功能,此时,可以将该功能抽象为扩展用例,以扩展基本用例的功能。 扩展后的局部用例图如下图所示:,购买机票,里程换机票,extend, 2

21、008 BUPT TSEG 北京邮电大学 通信软件工程中心,扩展用例的描述,用例1:购买机票(基用例) 主要成功场景: 1.顾客输入航班查询条件; 2.系统显示查询结果; 11.顾客填写联系方式,包含填写联系方式用例。 12.顾客选择信用卡支付,填写信用卡信息。,用例12:里程换机票(扩展用例) 触发:顾客选择用里程积分支付航班费用 扩展点:购买机票用例中的步骤12。 所处层次:子功能。 主要成功场景: 1.系统验证顾客是否有足够的积分。 2.系统从顾客当前积分中扣除相应积分,将剩余积分告诉顾客。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,在线考试系统的用例图,设置考试时

22、间、考试班级、 考试规则; 生成学生密码; 增、删、改考试设置,对成绩特别差的学生, 老师可以查阅其完整 的试卷,分析其薄弱 点所在, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,在线考试系统的用例描述, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,在线考试系统的用例描述, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,“考试”用例文本描述, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,“考试”用例文本描述, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,“考试”用例文本描述, 2008 BUPT TSEG

23、北京邮电大学 通信软件工程中心,“考试”用例文本描述, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,UML活动图描述, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,9.2.4 其他需求分析工作,在统一过程UP中,除了用例模型,需求分析工件(artifact)中还有: 补充规范(supplementary specification):记录系统的非功能性需求,同时也记录用例模型中没有表达或者不方便表达的功能特性列表。 术语表(glossary):记录关键的领域术语。 项目构想文档(vision)描述系统高层的目标、功能和约束,以便让项目相关人员快速地对系统有一

24、个全局的了解,这些目标、功能和约束在用例模型和补充规范中会进行细化。 业务规则描述(business rules):也称为领域规则,通常描述业务需求和处理策略,应用系统必须要遵守这些规则和策略。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,9.3 创建领域模型,9.3.1 识别概念类 9.3.2 添加关联 9.3.3 添加属性, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,领域模型简介,领域模型就是用来描述业务领域重要概念及其相互关系的模型,一般用UML的类图来表达,其中概念用类来表示,概念之间的关系用关联、继承、聚合来表示。 理解领域模型对理解系统需求至

25、关重要,领域模型的创建步骤如下: 第1步,找出当前需求中的候选概念类; 第2步,在领域模型中描述这些概念类。用问题域中的词汇对概念类进行命名,将与当前需求无关的概念类排除在外。 第3步,在概念类之间添加必要的关联来记录那些需要保存记忆的关系。 第4步,在概念类中添加用来实现需求的必要属性。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,领域模型举例, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,9.3.1 识别概念类,创建领域模型需要经过多次迭代,增量地建立一个领域模型。 两种识别概念类的技巧: 使用概念类分类列表:通过建立一个候选概念类的列表来开始创建领域

26、模型。 识别名词短语:识别有关问题域文本描述中的名词和名词短语,然后将它们作为候选的概念类或者属性。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,使用概念类分类列表, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,识别名词短语, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,在线考试系统中的概念类, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,9.3.2 添加关联,领域模型中的关联可分为两种: “需要知道”型关联:需要将概念之间的关系信息保持一段时间的关联。领域模型中需要着重考虑。 “只需理解”型关联:有助于增强对领域中关键

27、概念的理解的关联。 寻找关联时要遵循下述指导原则: 1将注意力集中在需要知道型关联。 2识别概念类比识别关联更重要,因此领域模型创建过程中应该更加注重概念类的识别。 3太多的关联不仅不能有效地表示领域模型,反而容易使领域模型变得混乱。 4避免显示冗余或导出关联。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,通用关联表, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,在线考试系统通用关联表, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,考试系统中“需要知道型”关联, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,在线考试系统部

28、分领域模型, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,9.3.3 添加属性,属性是对象的数据特性,领域模型中的属性往往是需要记忆的信息。 识别属性时应注意以下几点: 尽量用简单数据类型定义属性; 识别属性时首先识别最重要的属性,忽略那些派生属性 ; 对每一个属性,要赋予一个有意义的名称。 除了概念类的属性,也要寻找关联上的属性。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,在线考试系统部分属性, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,9.4 绘制系统顺序图,系统行为描述一个系统做什么,描述系统行为的有三种工件: 用例:描述系统行

29、为的第一个抽象层次 系统顺序图:第二个抽象层次 系统操作契约:在系统顺序图和领域概念模型基础上得到的第三个抽象层次 从第一层次到第三层次,抽象程度在逐步降低。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,系统顺序图,一个系统顺序图用来表示在用例的一个特定场景中,外部参与者产生的事件、事件的顺序以及系统之间的事件。 在交互期间,参与者会向系统发送事件,系统通过响应这些事件来满足参与者的目标。 为了识别系统事件,需要从用例的主要成功场景以及频繁或复杂的替代场景中寻找系统事件,建立系统顺序图。 系统顺序图应看作是用例模型的一部分,是用例中交互的可视化。需要注意的是,不要一次性创建

30、所有用例所有场景的系统顺序图,应该只为当前迭代所选择的场景创建系统顺序图。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,考试用例场景中的事件,从“考试”用例的成功场景中找出的系统事件共有7个: getAvailableTestPapers(学生读取能够考试的课程) selectTestPaper(学生选择其中一门课程进行考试) logonTestPaper (学生登录一门考试) startTest(学生开始考试) submitAnswer(学生提交答案) getNextQuestion(学生获取上一题或者下一题) endTest(学生结束考试)。, 2008 BUPT TS

31、EG 北京邮电大学 通信软件工程中心,考试场景UML顺序图, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,9.5 创建系统操作契约,系统操作:处理系统事件的操作;一般情况下与系统事件具有相同的名字和参数; 操作契约是为系统操作而定义的,描述系统操作执行的结果,模板如下表所示:, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,创建操作契约的指导原则,契约不是必须的。如果用例可以提供大多数或者所有设计需要的细节,那么契约没有什么价值。创建操作契约的指导原则如下: 1.首先从系统顺序图中识别系统事件,然后针对每一个系统事件设计对应的系统操作。 2.对于那些复杂的、结

32、果微妙的以及在用例中不清晰的系统操作,构造一个契约,作为用例的补充。 3.要描述后置条件。后置条件对于领域概念状态变化的描述关注下面三个方面: 实例创建和删除。 属性修改。 关联形成和断开。特别是在创建了新的实例后,往往需要和多个对象之间建立关联。, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,创建操作契约的指导原则,4后置条件的陈述应该采用过去时态的声明语气和被动句型,以强调系统状态所发生的变化,而不是强调这种变化是如何设计实现的。 5在需求工作时,如果要为一个系统操作建立契约,那么为系统操作产生一个完整、详细的后置条件集有时是不可能甚至是不需要的。, 2008 BUPT

33、TSEG 北京邮电大学 通信软件工程中心,考试系统中的系统操作,考试系统中的8个系统操作: logon(role:string,Id:string,pwd:string) getAvailableTestPapers(stuId:string) selectTestPaper (courseName:string) logonTestPaper(pwd:string), startTest() submitAnswer(questionId:string,answer:string) getNextQuestion( ) endTest( ), 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,logon, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,startTest, 2008 BUPT TSEG 北京邮电大学 通信软件工程中心,endTest,

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

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报