软件工程第七章面向对象分析.ppt

上传人:sccc 文档编号:5639632 上传时间:2023-08-05 格式:PPT 页数:71 大小:535.05KB
返回 下载 相关 举报
软件工程第七章面向对象分析.ppt_第1页
第1页 / 共71页
软件工程第七章面向对象分析.ppt_第2页
第2页 / 共71页
软件工程第七章面向对象分析.ppt_第3页
第3页 / 共71页
软件工程第七章面向对象分析.ppt_第4页
第4页 / 共71页
软件工程第七章面向对象分析.ppt_第5页
第5页 / 共71页
点击查看更多>>
资源描述

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

1、第7章 面向对象分析,阳王东,主要内容,面向对象建模用例模型领域模型行为模型案例分析,面向对象分析,面向对象分析(OOA,Object-Oriented Analysis)是一种半形式化的规格说明技术。目前,最流行的技术是OMT和Booch开发技术UML面向对象分析的最大特点是面向用例在用例的描述中引入了外部角色的概念,面向对象建模,面向对象模型对象模型:定义了“做什么”的实体动态模型:规定在何种状态下,接受什么事件的触发而“做什么”功能模型:指明了系统应该“做什么”,对象模型,对象模型可以看成是数据流和语义数据模型的结合对象模型表示静态的、结构化系统的“数据”性质。它是对模拟客观世界实体的对

2、象,以及对象彼此间的关系的映射,描述了系统的静态结构。对象模型是一个类、对象、及其之间关系的定义集。对象模型还必须表示类/对象之间的结构关系。,动态模型,动态模型表示瞬间的、行为化的系统“控制”性质,它规定了对象模型中对象的合法变化序列。对象状态是对对象属性的一种抽象。对象之间相互触发/作用的行为(称为事件),引起了一系列的状态变化。动态模型描绘了对象的状态,触发状态转换的事件,以及对象行为(对事件的响应)。,功能模型,功能模型表示变化的系统的“功能”性质,指明了系统应该“做什么”。面向对象是以用例驱动的。用例模型。站在用户的角度,虚拟现实的业务场景,描述系统应该提供什么功能。,统一建模语言U

3、ML发展历程,统一建模语言UML,统一建模语言(UML,Unified Modeling Language)是一种基于面向对象的可视化建模语言。UML用丰富的图形符号隐含表示了模型元素的语法,而用这些图形符号组成元模型表达语义,组成模型描述系统结构(或称为静态特征)以及行为(或称为动态特征)。UML的模型元素:一类模型元素用于表示模型中的某个概念,如类、对象、用例、结点、构件、包、接口等;另一类模型元素用于表示模型元素之间相互连接的关系,主要有关联、泛化(表示一般与特殊的关系)、依赖、聚集(表示整体与部分的关系)等。,UML模型元素,UML模型视图,UML主要是用来描述模型的。它可以从不同视角

4、为系统建模,形成不同的视图(View)。每个视图又由一组图(Diagram)构成。两类图:静态图:包括用例图、类图、对象图、构件图和部署图动态图:包括状态图、时序图、协作图和活动图五种视图:用例视图从用户角度表达系统功能;结构视图主要使用类图和对象图描述系统静态结构;行为视图展示系统动态行为及其并发性;实现视图展示系统实现的结构和行为特征;部署视图展示系统的实现环境和构件是如何在物理结构中部署的,UML分析建模,用例模型用例图用例描述用例场景活动图领域模型分析类用例实现交互图分析包CRC技术行为模型顺序图协作图状态图,用例建模,需求捕获的目标:发现真正的需求以适用于用户、客户和开发人员的方式加

5、以表示系统用户表示为一个参与者参与者在与用例进行交互时使用系统用例向参与者提供某些有价值结果而执行一些动作序列,编写用例,用例从某个特定参与者的角度用简单易懂的语言说明一个特定的使用场景。要开始开发用例,应列出特定参与者执行的功能或者活动。参与者(角色)用例(业务场景)用例图描述部分用例模型,显示带有联系的用例和参与者的集合,用例图,用例图包括:参与者、用例、关联和边界四个要素。参与者:用小人形表示用例:用椭圆表示关联:用直线表示说明参与者驱动某个用例边界:用矩形框表示,说明系统关注点。用例的表述方式文字表述图形表述,POS机系统部分用例图,描述用例,POS机系统中处理销售的用例场景,用例名称

6、:处理销售范围:POS机应用级别:用户目标主要参与者:收银员涉众及其关注点:收银员:希望能够准确、快速地输入,而且没有支付错误,因为如果少收货款,将从其薪水众扣除。售货员:希望自动更新销售提成顾客:希望以最小代价完成购买活动并得到快速服务。希望便捷、清晰地看到所输入的商品项目和价格。希望得到购买凭证,以便退货。公司:希望准确地记录交易,满足顾客要求。希望确保记录了支付授权服务的支付票据。希望有一定的容错性,即便在某些服务器构件不可用时(如远程信用卡验证),也能够完成销售。希望能够自动、快速地更新帐户和库存信息。经理:希望能够快速执行超控操作,并易于更正收银员的不当操作。前置条件:收银员必须经过

7、确认和认证。成功保证(或后置条件):存储销售信息,更新帐户和库存信息,记录提成,生成票据,记录支付授权的批准。,主成功场景,1.顾客携带所购商品或服务到收银台通过POS机付款。2.收银员开始一次新的销售交易。3.收银员输入商品条码。4.系统逐步记录出售的商品,并显示该商品的描述、价格和累计额。价格通过一组价格规则来计算。收银员重复34步,直到输入结束。5.系统显示总额和计算折扣。6.收银员告知顾客总额,并请顾客付款。7.顾客付款,系统处理支付。8.系统记录完整的销售信息,并将销售和支付信息发送到外部的账务系统(进行账务处理和提成)和库存系统(更新库存)。9.系统打印票据。10.顾客携带商品和票

8、据离开。,课堂练习,处理退货的用例分析参与者渋众及其关注点前置条件后置条件主要场景,活动图,UML活动图通过提供特定的场景内交流的图形化表示来补充用例。活动图符号:两端为半圆形的矩形表示一个特定的系统功能箭头表示通过系统的流判定菱形表示判定分支水平线、分叉点和连接表示并发活动对象节点表示活动对象活动图通常能够既表示控制流又表示数据流。UML活动图代替传统的数据流图(Data Flow Diagram)表示法,处理销售用例中的UML活动图,泳道图,UML泳道图(swimlane)是活动图的一种有用的变形UML泳道图通常对于涉及众多参与者的非常复杂的业务过程建模具有价值。,泳道图举例,UML分析建

9、模,用例模型用例图用例描述用例场景活动图领域模型分析类用例实现交互图分析包CRC技术行为模型顺序图协作图状态图,建立领域模型,领域模型能捕获语境中最重要的对象模型,领域对象代表系统工作的环境中存在的事情或发生的事件。领域有三种典型的形式:业务对象,表示业务中可操作的东西,例如订单、帐户和合同等。系统需要处理的现实世界中的对象和概念,如导弹、轮船等。将要发生或已经发生的事件,例如飞机起飞或午餐休息等。领域建模的目的是理解和描述在领域语境中最重要的类,领域建模过程,识别分析类。找出所有分析类并进行分类。用例实现分析。用分析类来表现用例场景。分析类组合为分析包。分析类的关联与组装。识别属性和操作。完

10、善分析类的描述。,识别分析类,领域模型实际上是更为完整的业务模型的一个特例有两种类型的UML模型支持业务建模:用例模型对象模型对系统开发的用例或处理叙述进行“语法分析”,可以开始分析类的识别。,分析类识别方式,外部实体:使用基于计算机的系统的信息。事物:问题信息域的一部分。发生或事件:在系统操作环境内发生。角色:由和系统交互的人员扮演。组织单元:和某个应用相关。场地:建立问题的环境和系统的整体功能。结构:定义了对象的类或与对象相关的类。,分析类,分析类侧重于处理功能性需求通过较高的、非形式化层次的职责类定义某行为分析类三种基本构造型:边界类:边界类用于建立系统与其参与者之间交互的模型,每个边界

11、类至少应该与一个参与者有关,反之亦然。控制类:控制类代表协调、排序、事务处理以及其他对象的控制。实体类:实体类用于对长效持久的信息建模。,分析类举例,控制类,控制类类似于设计模型中的控制器类,其目的是UI层之上的第一个对象,主要负责接收和处理系统操作消息。事件响应。业务逻辑流程控制,控制类举例,课堂练习,POS系统的边界类和实体类,用例实现分析,用例实现分析是分析模型内部的一种协作,主要描述了如何根据分析类及其交互的分析对象来实现和执行一个具体的用例。用例实现事件流的文本描述反映参与者用例实现的分析的类图按照分析对象交互作用的交互图。用例实现侧重于功能性需求。,处理销售类图,交互图,当参与者向

12、系统发送某种形式的消息而激活用例时,开始执行该用例中的动作序列。边界类对象将接收来自参与者的消息。交互对象向其他对象发送一个消息,并使有关对象与之交互从而实现该用例。,处理销售协作流的事件-分析流,收银员通过处理销售商品界面发起一次销售,控制类创建一个销售类,收银员逐个输入商品,销售类创建商品,并放入销售列表中。控制类要求计算商品总价,收银员请求顾客付款,控制类委派销售类创建一个支付。,分析包,分析包描述了对分析模型的制品进行组织的方式,它可以包括分析类、用例实现及其他分析。分析包应是有强内聚性与低耦合性,具有以下特点:分析包可以表示对分析内容的分割。在统一过程中,服务的概念是由服务包支持的。

13、服务包在按照系统提供的服务而组织的分析包层次结构中处于较低层。服务包包含了一组活动相关的类,服务包不可分割。在实现用例时,可能会有一个或多个服务包参与其实现。服务包相对独立,可以复用。UML包图用于描述系统的逻辑架构层、子系统、包等。UML包用一大一小两个矩形组合而成。如果内部显示了其成员,则包名称标在上面的小矩形内,否则,可以标在包内。,UML包图,逻辑架构,逻辑架构是类的宏观组织结构,它将类组织为包、子系统和层等。层是对类、包或子系统的甚为粗粒度的分组,是有对系统主要方面加以内聚的职责。,分层逻辑架构,关联与依赖,两个分析类以某种方式相互联系,这些联系被称作关联。关联可进一步指出多样性,也

14、称为基数。两个分析类之间存在客户服务器联系,客户类在某些方面依赖于服务器类并且建立了依赖关系。,识别属性和操作,属性描述类的性质,可以通过分析该类存在的一些信息类构建。操作定义了某个对象的行为。操作可以分为四种类型:以某种方式操纵数据,例如:添加、删除、选择、更新等。执行计算的操纵,例如:销售中的计算总价。请求某个对象状态的操作。监视某个对象发生某个控制事件的操作。操作的构造需要交互图和场景描述等手段多次反复分析才能获取。在研究语法分析并分离动词作为候选的操作。推荐的一个方法是使用CRC技术。,CRC技术,CRC(Class-Responsibility-Collaborator,类-职责-协

15、作者)建模提供识别和组织与产品相关的类。一旦系统的基本使用场景(用例)确定后,则要标识侯选类,指明它们的责任和协作,即类-责任-协作者建模:责任是与类相关的属性和操作,即责任是类知道要做的事情。协作者是为某类提供完成责任所需要的信息的类,即协作类。CRC模型是一组表示类标准的索引卡CRC卡的集合。CRC卡的内容分成三个部分:类的名字类的责任协作类,销售类CRC卡,UML分析建模,用例模型用例图用例描述用例场景活动图领域模型分析类用例实现交互图分析包CRC技术行为模型顺序图协作图状态图,行为建模,行为模型显示了软件如何对外部事件或激励做出响应。要生成行为模型,分析师必须按如下步骤进行:评估所有的

16、用例,以使得完成理解系统内的交互序列。识别驱动交互序列的事件,并理解这些事件如何和具体的类相互关联。为每个用例生产序列。创建系统状态图。评估行为模型以验证准确性和一致性。,系统顺序图,系统顺序图(System Sequence Diagram,SSD)是为了阐述与讨论系统相关的输入和输出事件而快速、简单地创建的制品。它们是操作契约和重要对象设计的输入。用例文本及其所示的系统事件是创建SSD的输入。SSD展示了直接与系统交互的外部参与者,系统以及由参与者发起的系统事件。SSD可以用UML顺序图的形式表示,用以阐述外部参与者到系统的事件。系统事件就是将系统看作黑盒,参与者为完成功能而向系统发出的事

17、件。,处理销售用例的系统SSD,操作契约,操作契约使用前置条件和后置条件的形式,详细和精确描述领域模型中的对象的变化,并作为系统操作的结果。操作契约的主要输入是SSD中确定的系统操作、领域模型和领域专家的见解。操作契约四部分:操作是指操作的名称和参数交叉引用是指会发生此操作的用例前置条件是指执行操作之前对系统领域模型对象状态的假设后置条件是指完成操作后,领域模型对象的状态,后置条件,后置条件(Post Condition)描述了领域模型内对象状态的变化。领域模型状态变化包括创建用例、形成或消除关联以及改变属性。后置条件不是在操作过程中执行的活动,相反,它们是对领域模型对象的观察结果。后置条件可

18、以分为三种类型:创建或删除实例属性值的变化形成或消除关联,操作enterItem的契约,操作名称:enterItem(id,quantity)交叉引用:处理销售用例前置条件:正在进行的销售后置条件:(1)创建了SaleLineItem的实例(创建关联)(2)SaleLineItem与当前Sale关联(形成关联)(3)SaleLineItem.quantity赋值为quantity(修改属性)(4)基于id匹配,将SaleLineItem关联到Product Description(形成关联),顺序图与协作图,表现系统行为方式的一种方式是UML的顺序图和协作图。顺序图和协作图的作用相同,但顺序图

19、强调事件的时间关系。顺序图的主要元素有:对象:参与交互的类的实例,对象之间可以发送事件和接收事件。参与者:描述本次交互的发起者,即用例的驱动者。用小人形状表示。生命线:表示一个类的实例,用虚线表示。消息:表示对象间的每个事件,用带箭头的实线表示。执行规格条:表示控制焦点的控制期,也称为激活条。消息标签:指明消息的名称。消息可以有两种方式返回结果:使用消息语法return var=message(parameter);在执行规格条末端使用应答消息线(带箭头虚线)。,处理支付用例的顺序图,状态图,两种不同的状态描述:系统执行其功能时每个类的状态,类状态动两种特征:被动状态较简单,是某个对象所有属性

20、的当前状态;主动状态表示的是对象进行持续变换和处理时的当前状态。系统执行其功能时从外部观察到的系统状态。UML状态图描述系统的动态行为。UML状态图描述了某个对象的状态和感兴趣的事件以及对象响应该事件的行为。UML状态图的元素有:状态:指对象在事件发生之间某时刻所处的情形,用圆角矩形表示。转移:指两个状态之间的关系,它表明当某事件发生时,对象从先前状态转换到后来的状态,用带有标记事件的箭头表示。事件:某个事情的发生。,POS机的一个简单的状态图,ATM系统:用例图,ATM系统:类图,ATM系统:协作图,ATM系统:顺序图,短信系统:用例图,短信系统:类图,短信系统:协作图,短信系统:顺序图,小

21、结,分析建模的目标是创建各种表现形式,以描绘软件信息、功能和行为需求。面向对象分析就是检查一组用例的问题域,尽量提取定义问题的类及其类之间的关系、并使用UML图建模和编写用例场景,以及开发活动图和泳道图来加以刻画。基于类的建模使用从基于场景的描述中提取分析类,可以使用语法分析从文本叙述中提取候选类、属性和操作。CRC卡可以用于定义类之间的关系和获取类的职责以及协作类,并用逐步分析类聚合和继承关系及依赖。,小结,UML包图可用于描述系统的逻辑架构,使用层的方式类划分系统,定义包之间的关联和依赖,便于开发人员分工和并发工作。类建模和包图的描述为分析建模提供了软件的静态视图,而行为建模描述了动态行为。行为模型使用SSD、操作契约、顺序图和状态图来分析系统的动态行为。,作业,图书馆系统用例模型。用例图领域模型。分析类图、活动图行为模型。状态图、顺序图、协作图,第二部分(完),

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号