模块5 面向对象分析《软件工程》教学课件_第1页
模块5 面向对象分析《软件工程》教学课件_第2页
模块5 面向对象分析《软件工程》教学课件_第3页
模块5 面向对象分析《软件工程》教学课件_第4页
模块5 面向对象分析《软件工程》教学课件_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《软件工程》✩精品课件合集第X章XXXX模块5

面向对象分析很难直接基于需求文档进行下一步的系统设计工作,需要在需求和系统设计之间搭建起一架桥梁,把用领域术语和语言描述的业务需求,用软件的术语和语言来描述需求,这就是规格说明文档(Specification)。分析工作使目标软件系统的功能性需求获得更深刻的理解和分析,使设计和实现能够更容易、更高质量地开展。5.1分析方法5.1分析方法结构化分折方法面向对象分析方法面向控制分析方法面向数据分析方法5.1分析方法结构化分折方法(StructuredAnalysis,SA)是一种单纯的由顶向下逐步求精的功能分解方法。分析员用数据流图表示系统的所有输入/输出,反复地对系统求精、表示成一更详细的数据流图,从而建立关于系统的一个数据流图层次。具有较好的抽象能力,易于软件人员所掌握。但它离应用领域尚有一定的距离,难以直接应用领域术语,与软件设计也有一段不小的距离,因而给开发小组的思想交流带来了一定的困难。5.1分析方法面向对象分析方法(Object-OrientedAnalysis,OOA)把分析建立在系统对象以及对象间交互的基础之上。从三个侧面进行描述,即对象模型(对象的静态结构)、动态模型(对象之间的相互作用)和功能模型(数据变换及功能依存关系)。5.2面向对象分析概要5.2面向对象分析概要面向对象分析是对目标软件系统功能性需求的深入的、精确的建模,但并不回答如何实现目标软件系统,因此它只针对能够体现和说明业务功能的实体类。5.2面向对象分析概要实体类的提取包括三个迭代和增量式执行的步骤:用例建模

UseCaseModeling,即功能建模。得到反应目标系统外部与该系统的交互情况的用例图UseCaseDiagram。实体类建模EntityClassModeling。确定实体类、其属性、以及它们之间的关系,得到初始类图PreliminaryClassDiagram,也称简单类图。动态建模DynamicModeling。确定每个实体类及其子类状态的变化、以及造成状态变化的事件、操作或条件满足,得到状态图StateDiagram。5.3用例建模用例建模UseCaseModeling是对软件系统的外部与软件系统之间的交互进行建模,是面向对象分析与设计的起点。用例模型即用例图UseCaseDiagram以用例的形式描述一个软件系统的功能性需求,包括三个关键要素:参与者actor用例usecase参与者与用例之间的关系relationship5.3.1参与者参与者(actor)——与目标软件系统有交互、有关联的系统外部。有助于挖掘并确定目标软件系统的功能性需求,从而确定目标软件系统的边界、提供一个更加清晰的目标软件系统的蓝图。参与者不是目标软件系统的一部分,是用例模型的一部分。参与者必须有名字,名字就是角色集合名,如“学生”、“教师”等。参与者可以是主动方,也可以是被动方。5.3.2用例用例UseCase是指参与者在与应用软件系统进行交互时可能发生的一序列操作,为该参与者或其他参与者产生特定的结果。用例就是指软件系统为某些参与者提供的某项功能,软件系统为用例的发生和实现提供了可能。有些用例可能被某个参与者实例激活,并且可能在用例的完成过程中需要参与者的交互;有些用例有可能在系统内满足某些条件的情况下而被激活,并主动向某些参与者推送信息或发送指令。5.3.2用例用例必须有名字,用例名应该是领域相关的强动词或动词词组。如,登录、存款、下订单、借书等。

“下订单PlaceOrder”“买东西BuyStuff”

5.3.2用例用例的识别与确定1、从参与者的角度参与者是挖掘与确定用例的第一要素。以穷举的方式检查用户对系统的功能需求是否能在用例中有所体现。系统中的一个用例应该至少面向一个参与者、或者与其他用例有关系。5.3.2用例用例的识别与确定2、情景分析一个用例应该完成一个完整的任务,通常应该在一个相对短的时间段内完成。如果一个用例的各部分在间隔一定时间的不同时间段内发生,尤其还是由不同的参与者交互完成的,那么就应该将该用例拆分为多个用例来对待。一个用例必须有一个基本流BasicFlow一个用例还可能有多个可选流AlternativeFlow用例的一次执行即形成一个场景scenario。5.3.2用例用例的识别与确定3、从系统功能的角度用例是参与者所参与的一项功能,该项功能应该相对完整、独立。确定用例的原则包括:一个用例不能过大。一个用例也不能过小。5.3.3参与者与用例之间的关系5.3.3参与者与用例之间的关系5.3.3参与者与用例之间的关系5.3.4用例说明用例图无法体现、无法描述用例内部的执行流程、业务逻辑、数据等细节。每个用例都需要一个用例说明UseCaseSpecification5.3.4用例说明用例说明的内容:事件流flowofevents基本事件流basicflow可选事件流alternativeflow后置条件post-condition关系relationships特殊要求specialrequirements用例名usecasename用例简述briefdescription参与者actor前置条件pre-condition5.3.5参与者之间的关系5.3.5参与者之间的关系1、派生关系5.3.5参与者之间的关系5.3.5参与者之间的关系2、代理关系5.3.6用例之间的关系5.3.6用例之间的关系1、派生关系5.3.6用例之间的关系2、包含关系图2图15.3.6用例之间的关系对比5.3.6用例之间的关系3、扩展关系5.3.7用例建模的作用用例模型的可读性、可理解性非常强,几乎所有参与该目标软件系统的参与人员,包括开发人员和客户,在几乎所有的阶段都需要用到用例模型。开发方系统架构师设计师测试人员项目经理文档撰写人员下一个版本的开发人员5.3.8用例建模案例案例1、高校图书馆管理信息系统5.3.8用例建模案例案例2、电梯控制系统5.3.8用例建模案例案例3、高校教学管理信息系统5.4类建模一个面向对象软件系统由三种类型的类构成:实体类

EntityClass,是对持久性信息的建模。边界类

BoundaryClass,提供了面向对象软件系统与参与者进行交互的边界。控制类

ControlClass,是指对系统框架、系统流程、业务逻辑和复杂的算法进行建模。5.4类建模面向对象分析分析阶段进行的类建模ClassModeling是对目标软件系统的功能性需求的静态建模,它只针对一个软件系统范畴内的实体类及其属性、以及实体类之间的关系,不考虑与具体实现有关的边界类和控制类。类建模的成果是初始类图PreliminaryClassDiagram,也称简单类图。5.4.1实体类软件系统业务范围内的实体类既物理上存在于现实世界中,也在逻辑上存在于我们所建立的软件系统中。现实世界本身就是由无数的对象构成的。实实在在的物理实体业务实体组织机构实体…….5.4.1实体类多个学生对象抽象为“学生”类5.4.1实体类“图书”类属性方法类名5.4.2构造初始类图OOA阶段类建模是对业务情况的静态建模,不考虑实体类中用来体现动态关系的方法,只考虑业务范围内的实体及其属性。类建模的基本步骤:

名词抽取

确定候选类

构造初始类图5.4.2构造初始类图1、名词抽取,就是指从需求文档和用例模型中抽取出名词。业务领域中的物理实体

如图书、商品、楼房、汽车等。业务领域中的概念实体、逻辑实体

如银行账户、订单、借书记录、课程、生产计划等。业务领域中的动词

如考试等。用例模型中的参与者

如学生、教师、顾客等。5.4.2构造初始类图国内某慕课平台向广大学员免费提供大量的优质课程资源。课程教师可在该慕课平台管理信息系统上免费注册成为教师用户,注册信息有账号、密码、姓名、所在高校、职称、和电子邮箱等;学员可在该系统上免费注册成为学员用户,注册信息有账号、密码、身份证号或学号、就读学校或工作单位、电子邮箱等。已注册的教师登录后可以设置课程,包括课程名称,系统自动生成课程编号;然后教师可以设置该课程新的开课学期,具体信息包括学期开始时间、学期结束时间、课程简介、课程大纲、参考教材等,然后设置课程教学资源,包括课程教学视频、课程PPT、单元测试题、作业、论坛论题、结课考试试卷等。教师可以参加论坛讨论,对学员进行辅导和启发。已注册的学员用户登录后可以免费选课、观看课程教学视频、浏览课程PPT、做单元测试、做作业、参与论坛讨论、参加结课考试,并可查看自己的结课成绩。一个开课学期结束后,教师可以设置下一个开课学期。5.4.2构造初始类图国内某慕课平台向广大学员免费提供大量的优质课程资源。课程教师可在该慕课平台管理信息系统上免费注册成为教师用户,注册信息有账号、密码、姓名、所在高校、职称、和电子邮箱等;学员可在该系统上免费注册成为学员用户,注册信息有账号、密码、身份证号或学号、就读学校或工作单位、电子邮箱等。已注册的教师登录后可以设置课程,包括课程名称,系统自动生成课程编号;然后教师可以设置该课程新的开课学期,具体信息包括学期开始时间、学期结束时间、课程简介、课程大纲、参考教材等,然后设置课程资源,包括课程教学视频、课程PPT、单元测试题、作业、论坛论题、结课考试试卷等。教师可以参加论坛讨论,对学员进行辅导和启发。已注册的学员用户登录后可以免费选课、观看课程教学视频、浏览课程PPT、做单元测试、做作业、参与论坛讨论、参加结课考试,并可查看自己的结课成绩。一个开课学期结束后,教师可以设置下一个开课学期。5.4.2构造初始类图国内某慕课平台向广大学员免费提供大量的优质课程资源。课程教师可在该慕课平台管理信息系统上免费注册成为教师用户,注册信息有账号、密码、姓名、所在高校、职称、和电子邮箱等;学员可在该系统上免费注册成为学员用户,注册信息有账号、密码、身份证号或学号、就读学校或工作单位、电子邮箱等。已注册的教师登录后可以设置课程,包括课程名称,系统自动生成课程编号;然后教师可以设置该课程新的开课学期,具体信息包括学期开始时间、学期结束时间、课程简介、课程大纲、参考教材等,然后设置课程资源,包括课程教学视频、课程PPT、单元测试题、作业、论坛论题、结课考试试卷等。教师可以参加论坛讨论,对学员进行辅导和启发。已注册的学员用户登录后可以免费选课、观看课程教学视频、浏览课程PPT、做单元测试、做作业、参与论坛讨论、参加结课考试,并可查看自己的结课成绩。一个开课学期结束后,教师可以设置下一个开课学期。5.4.2构造初始类图2、确定候选类教师、学员、课程、账号、密码、姓名、所在高校、职称、电子邮箱、身份证号或学号、就读学校或工作单位、课程名称、课程教学视频、课程简介、课程大纲、参考教材、开课学期、学期开始时间、学期结束时间、课程资源、课程教学视频、课程PPT、单元测试题、作业、论坛论题、结课考试试卷、开课学期、结课成绩。3、构造初始类图5.4.3类建模的原则1、区别子类与对象5.4.3类建模的原则1、区别子类与对象5.4.3类建模的原则2、子类的划分5.4.3类建模的原则2、子类的划分5.4.3类建模的原则3、区分组合关系与关联关系5.4.3类建模的原则3、区分组合关系与关联关系5.4.3类建模的原则3、区分组合关系与关联关系5.4.3类建模的原则4、明细问题局限性:一个订单只能针对一种商品5.4.3类建模的原则4、明细问题5.4.3类建模的原则5、参与者问:参与者是否应该成为实体类?答:要具体问题具体分析。

例如:电梯控制系统的“用户”。5.4.3类建模的原则6、分解类5.4.3类建模的原则6、分解类第五章面向对象分析5.4.4类建模案例案例1、高校图书馆管理信息系统某高校图书馆管理信息系统为全校师生员工提供服务,全校师生员工都是借阅者。身份验证合格的借阅者可以在自助借还书机上自助办理借书、还书;而且借阅者也可以在Web浏览器上登录图书馆管理信息系统,并可以进行自助续借图书和自助预约图书。借一本书或续借一本书都在系统中生成一条借书记录并永久保存。预约图书则在系统中生成一条预约记录并保存在系统中,如果预约时间超过48小时或在48小时内被预约者借出,则该预约记录被删除。系统也永久记录借阅者实际还书时间。每名借阅者最多可以持有15本在借图书。案例1、高校图书馆管理信息系统候选类:借阅者自助借还书机图书借书记录预约记录案例1、高校图书馆管理信息系统(第一次迭代的初始类图)案例2、电梯控制系统该电梯控制系统将控制一栋m个楼层的楼房里的n部电梯的移动。每个楼层上有2个按钮,叫作楼层按钮,分别表示电梯用户的目标方向:向上、和向下;最底楼层只有“向上”一个按钮,最顶楼层只有“向下”一个按钮。每部电梯内部有m个按钮,叫作电梯按钮,每个按钮对应一个楼层;当某个楼层按钮或电梯按钮被按下,则该按钮亮;当电梯到达该按钮所代表的楼层,该按钮灭;经过一个计时,电梯门开;再经过一个计时,电梯门关;当没有按钮被按下,即没有请求时,电梯停留在当前楼层,保持门关。案例2、电梯控制系统该电梯控制系统将控制一栋m个楼层的楼房里的n部电梯的移动。每个楼层上有2个按钮,叫作楼层按钮,分别表示电梯用户的目标方向:向上、和向下;最底楼层只有“向上”一个按钮,最顶楼层只有“向下”一个按钮。每部电梯内部有m个按钮,叫作电梯按钮,每个按钮对应一个楼层;当某个楼层按钮或电梯按钮被按下,则该按钮亮;当电梯到达该按钮所代表的楼层,该按钮灭;经过一个计时,电梯门开;再经过一个计时,电梯门关;当没有按钮被按下,即没有请求时,电梯停留在当前楼层,保持门关。案例2、电梯控制系统候选类:电梯按钮楼层按钮电梯按钮电梯门案例2、电梯控制系统(第一次迭代的初始类图)案例2、电梯控制系统(第二次迭代的初始类图)5.5动态建模如果系统中的某些对象满足以下条件,则需要对该对象的生命周期进行建模,即需要对这些对象抽象出的类做动态建模DynamicModeling,获得该类的状态图StateDiagram:该对象的生命历程中经历了至少两种状态;这些状态之间可以单向或双向转变;状态的转变,是因为某些事件的发生、或者是因为某些条件的满足而产生。5.5动态建模状态图是对类图的补充。不是所有的类都需要做状态图,只有该类的对象在整个业务流程中有多种可能的状态、且可能从一种状态转变为另一种状态,才有必要做动态建模,获得该类的状态图。5.5.1状态图状态图用于描述一个对象在其生命周期内所有可能的状态,以及引起状态改变的事件或条件。状态图的目的是通过描述某个对象的状态和引起状态转变的事件或条件,来描述对象的行为特征。状态图由一系列状态、事件、条件以及状态间的转变共同构成。5.5.1状态图状态State是指对象在其生命周期中满足某一条件、进行某种活动或等待某一事件的条件或状况。中间状态初始状态终止状态5.5.1状态图事件:事件的发生,可能引发对象的状态从原状态变为目标状态。条件,通常是时间条件或一个布尔表达式,时间条件满足或布尔表达式的值为真,则发生状态的变化。5.5.1状态图状态的转变5.5.2动态建模案例1、媒体播放器【注】媒体播放器没有终止状态,是循环工作模式。5.5.2动态建模案例2、图书管理信息系统中的“图书”类5.5.2动态建模案例3、网上购物系统中的“订单”类5.6OOA测试对分析工作的成果应该必须进行测试,以保证这些成果是正确的、恰当的。CRC(Class-Responsibility-Collaboration,类-职责-协作)卡片是对面向对象分析的成果进行测试的一种重要技术手段。5.6OOA测试图书馆管理信息系统第一次迭代类图5.6OOA测试自助借还书机的CRC卡片职责1、扫描图书条形码每一本图书都有一个在图书馆管理信息系统中唯一识别的条形码,这个条形码打印在粘纸上,贴在书上,所以,“借书机扫描图书条形码”,暂时看起来没什么问题。职责2、验证借阅者验证借阅者的有效性,肯定需要借阅者的个人信息,而自助借还书机本身并不拥有有借阅者的个人信息,它能做的是读取借书卡的卡号,所以事实上借书机只能用来自助扫描,它做不到“验证借阅者”。所以自助借还书机职责

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论