书签 分享 收藏 举报 版权申诉 / 139
上传文档赚钱

类型面向对象软件项目需求分析.PPT

  • 上传人(卖家):无敌的果实
  • 文档编号:306118
  • 上传时间:2020-02-27
  • 格式:PPT
  • 页数:139
  • 大小:3.49MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《面向对象软件项目需求分析.PPT》由用户(无敌的果实)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    面向 对象 软件 项目 需求 分析
    资源描述:

    1、面向对象软件项目需求分析,软件开发流程瀑布模型,数据流图+数据字典,统一软件开发过程 RUP (Rational Unified Process),用例驱动、以体系结构为中心、迭代增量开发,在RUP开发过程中,开发人员首先捕获客户的需求,并以用例的形式组织成用例模型。然后分析并设计系统来满足这些用例,因此在用例模型之后就是分析模型,接着是设计模型和实施模型。在实现了整个系统之后,还将根据用例模型设计出测试模型来对系统进行验证。模型之间是一个迭代、增量的开发过程。每次迭代都将越来越精化。,用例驱动开发过程,内容概览,UML概述 建模环境介绍 UML的构成 常用UML模型图的阅读和设计 :用例图、

    2、活动图、类图、交互图、状态图 一个UML建模实例,内容概览,UML概述 建模环境介绍 UML的构成 常用UML模型图的阅读和设计 :用例图、活动图、类图、交互图、状态图 一个UML建模实例,什么是UML,UML: Unified Modeling Language 统一建模语言 UML是一种Language(语言) UML是一种Modeling(建模)Language UML是Unified(统一)Modeling Language,为什么需要建模,帮助我们认识复杂的软件系统,走向UML,太多的OO术语令人迷惑 Wirfs-BrockResponsibility BoochOperation

    3、Coad/YourdonService StroustrupFunction Method 没有统一的符号,科学很难发展,UML发展历程,1970:第一种面向对象的语言问世:Smalltalk 1980:数十种OOAD的语言百家争鸣 1992:新一代的OOAD语言问世:Booch方法、OOSE(Jacobson)、OMT(Rumbaugh) 1995:UML0.9 by Booch&Rumbaugh 1997: Standardization UML1.1 by Jacobson&Booch&Rumbaugh:OMG将UML作为标准公布 目前最新的版本是 UML2.4,Rational三剑客,

    4、Grady Booch,James Rumbaugh,Ivar Jacobson,UML的发展现状,已进入全面应用阶段的事实标准 应用领域正在逐渐扩展,包括嵌入式系统建模、业务建模、流程建模等多个领域 成为“产生式编程”的重要支持技术:MDA、 可执行UML等,可以使用UML建模建立什么模型,内容概览,UML概述 建模环境介绍 UML的构成 常用UML模型图的阅读和设计 :用例图、活动图、类图、交互图、状态图 一个UML建模实例,UML建模工具,MS Visio StarUML Rational software,UML相关工具一览:,参考书,UML用户指南,James Rumbaugh、Iv

    5、ar Jacobson、Grady Booch著,邵维忠等译,机械工业出版社 面向对象系统分析,邵维忠,杨芙清,清华大学出版社 面向对象系统设计,邵维忠,杨芙清,清华大学出版社 设计模式:可复用的面向对象软件的基础,李英军等译,机械工业出版社 大象Thinking in UML 谭云杰,中国水利水电出版社,一些网站,英文网站 http:/www.omg.org/spec/UML/ 中文网站 UML软件工程组织,内容概览,UML概述 建模环境介绍 UML的构成 常用UML模型图的阅读和设计 :用例图、活动图、类图、交互图、状态图 一个UML建模实例,UML建模实例选课系统,实例XX大学想用软件实

    6、现选课过程 教务处课程管理人员列出本学期可以选择的课程 每门课可能又多个不同的班在教授 学生选择4门必修课和2门选修课 当学生选课完毕,学校的独立计费系统将会记录学生应缴纳的学费金额 在选定课程后的一段时间内,学生可以删除或添加别的课程 教师们可以通过该系统得到选修自己课程的学生名单 学生、教师登陆时需要进行验证,引例:UML建模实例选课系统,识别参与者( Actor ) 课程管理人员 学生 教师 独立的学校计费系统 识别用例(Use case) 课程管理人员:建立和发布本学期课程表 学生:维护自己的课程表 教师:取得学生名单 独立的学校计费系统:得到计费信息,引例:UML建模实例选课系统,使

    7、用活动图(Activity diagram)分析特定use case 根据用例和文档抽象出类(Class) 根据类和用例的特定场景制作序列图(Sequence diagram) 根据序列图完善类图的方法 用状态图(Statechart diagram)说明关键类的状态 用构件图(Component diagram)说明程序的逻辑组织 用部署图(Deployment diagram)说明系统的部署,UML定义的图,UML中常用的事物类,类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的抽象 UML中类是用一个矩形表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法,p

    8、1:Point,UML中常用的事物对象,对象是类的一个实例,类,:Point,Point对象 被命名为p1,匿名 Point对象,UML中常用的事物接口,接口是描述某个类或构件的一个服务操作集,UML2.0规范,UML中常用的事物用例,用例是Ivar Jacobson首先提出的,现已经成为了面向对象软件开发中一个需求分析的最常用工具 用例实例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。,UML中常用的事物交互,交互(interaction):在特定语境中,共同完成某个任务的一组对象之间交换的信息集合。 表示法是一条有向直线,并在上面标有操作名,UML中常用的事物状态机和

    9、状态,状态机(state machine): 是一个对象或交互在生命 周期内响应事件所经历的 状态序列 状态:在UML模型中将状态画为一个圆 角矩形,并在矩形内写出状态名 称及其子状态,UML中常用的事物包,对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,生成或简或繁、或宏观或微观的模型,就需要对其进行分组。在UML中,提供了“包(Package)”来完成这一目标,UML中常用的事物注释,注释事物用来在UML模型上添加适当的解释部分。,UML中常用的关系关联关系,关联(Association)表示两个类之间存在某种语义上

    10、的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。 在UML中,使用一条实线来表示关联关系,关联关系举例,队员和球队之间的关联,两个类之间的不同关联 可以表示在一个图中,参与关联的每个类 通常都扮演某种角色,UML中常用的关系关联关系,关联的多重性举例,UML中常用的关系关联关系,在关联关系中,有两种比较特殊的关系:聚合和组合 聚合关系:聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系 如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系( Composition )来描述,UML中常用的关系特殊关联关系,聚

    11、合举例,UML中常用的关系聚合关系,组合举例,UML中常用的关系组合关系,UML中常用的关系泛化关系,泛化(Generalization)关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。,单继承,UML中常用的关系依赖关系,有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。,关系实现关系,实现(Realization)关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作用于规定类或组件的服务。,思考题,用UML图形表示一组几何对象。组中的父类叫“几何单项”(Geome

    12、tryItem),由此衍生出线(Line)、圆(Circle)、正方形(Square)、椭圆(Elipse)和多边形(Polygon)子类。椭圆有两个焦点,它们重合时就成了圆。正方形是多边形的一种。所有的GeometryItem都是由点(Point)组成的。,思考题,Answer:,UML规则,命名:为事物、关系和图起名字。由字符、数字、下划线组成,名字必须是唯一的。 可见性:,UML的正向工程,正向工程:由模型生成代码,UML的逆向工程,由代码生成模型,内容概览,UML概述 建模环境介绍 UML的构成 常用UML模型图的阅读和设计 :用例图、活动图、类图、交互图、状态图 一个UML建模实例,

    13、常用UML模型图的阅读和绘制,用例图 活动图 类图 交互图 状态图,用例图中元素:参与者 actor,参与者是为了完成一个事件而与系统交互的实体 可以是人、其它系统、硬件设备、时钟 其它系统:当系统需要与其它系统交互时,如ATM柜员机系统中,银行后台系统就是一个参与者 硬件设备:如果系统需要与硬件设备交互时,如在开发IC卡门禁系统时,IC卡读写 器就是一个参与者 时钟:当系统需要定时触发 时,时钟就是参与者,用例图中元素:用例 use case,用例实例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果。一个用例定义一组用例实例 用例是系统提供的功能块,演示了参与者如何使用系统

    14、,阅读用例图,用例图中元素:系统边界,一些关系,系统边界 一个系统所包含的所有系统成分与系统以外各种事物的分界线。 一些关系: 参与者与用例的关系:带箭头的线来表示 用例之间的关系: 1)包含关系:构造型include 2)扩展关系:构造型extend 3)泛化关系,包含关系,用构造型include表示 箭头方向从基用例到被包含用例,指基用例在它内部说明的某一位置上显式地合并了另一个用例的行为,扩展关系,用构造型extend表示 箭头方向从扩展用例到基用例,基用例是可以独立于扩展用例存在的,只是在特定的条件下,它的行为可以被另一个用例的行为所扩展,泛化关系,可以用来表示参与者与参与者之间,用例

    15、与用例之间的特殊/一般化关系,很多软件系统在一开始都需要登录,若用户登录成功,则可进入系统。 如下以一个研究生学籍管理系统为例,描述四种登录方法。 为了简化起见,假设此处仅描述登录、选课和查看学分这3项功能。,思考题,由于选课和查看学分都需要登录,故专门设立一个“登录”用例。若登录成功,则可以进行选课,也可以进行查看学分。,(1)必须要了解系统的所有其它模块,才能描述清楚“登录”用例。向系统增加新用例时,也要修改登录用例。从维护的角度看,有时会忘记对“登录”用例进行修改。 (2) “登录”用例的功能不单一。,方案一:,使用扩展,设计系统登录。,登录 扩展点 选课 查看学分,选课,extend,

    16、extend,研究生,该方法与方法一相比,对“登录”用例的描述要清楚一些。在增加新用例时,仅在登录用例中添加扩展点即可。 缺点:“登陆”用例的功能仍然不单一。,扩展条件:选择选课 扩展点:选课,查看学分,扩展条件:选择查看学分 扩展点:查看学分,方案二:,让所有的相关用例都包含登录用例。,缺点: (1)对研究生要进行多次验证。研究生执行系统的每项功能都要先登录。 (2)用例的功能不单一。,方案三:,登录用例完全独立于其它用例,使用该方法,必须要在“选课”用例和“查看学分”用例中指定前置条件:只有在登录成功后才能执行自己。 缺点:在图上不能直接看出用例之间的关系。,方案四:,用例图的绘制流程,用

    17、例描述,用例模型=用例图+用例描述 用例描述的是一个系统做什么(what)的信息,并不说明怎么做(how),怎么做是设计模型的事 事件流: 前置条件:用例启动时参与者和系统置于什么状态 后置条件:用例结束时系统置于什么状态 基本事件流:对用例中常规、预期的路径的描述 扩展事件流:对一些异常情况、选择分支进行描述,用例描述模板,一个用例描述的例子,1.用例名称:新增书籍信息(UC01) 2.简要说明:录入新购书籍信息,并自动存储建档。 3.事件流: 3.1 基本事件流 3.2 扩展事件流 4.非功能需求 5.前置条件:用户进入图书管理系统。 6.后置条件:完成新书信息的存储建档。 7.扩展点:无

    18、 8.优先级:最高(满意度 5,不满意度5),见下页ppt,细化用例描述填血肉,3.事件流: 3.1 基本事件流 1)图书管理员向系统发出“新增书籍信息”请求; 2)系统要求图书管理员选择要新增的书籍是计算机类还是非计算机 类; 3)图书管理员做出选择后,显示相应界面,让图书管理员输入信息 ,并自动根据书号规则生成书号; 4)图书管理员输入书籍的相关信息,包括:书名、作者、出版社、 ISBN号、开本、页数、定价、是否有CDROM; 5)系统确认输入的信息中书名未有重名; 6)系统将所输入的信息存储建档。 3.2 扩展事件流 5a)如果输入的书名有重名现象,则显示出重名的书籍,并要求图书 管理员

    19、选择修改书名或取消输入; 5a1)图书管理员选择取消输入,则结束用例,不做存储建档工作; 5a2)图书管理员选择修改书名后,转到5) 4.非功能需求:无特殊要求,常用UML模型图的阅读和绘制,用例图 活动图 类图 交互图 状态图,活动图概述,活动图可以用来对业务过程、工作流建模,也可以对用例实现甚至是程序实现来建模 活动图和交互图是UML中对系统动态方面建模的两种主要形式 交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流,阅读简单活动图,电子商务网站中,用户下订单后的处理流程。,活动图的主要元素,初始节点和活动终点:实心圆表示初始节点(只有一个),圆圈内加一个实心圆来表

    20、示活动终点(可有多个)。 活动节点:用来表示一个活动 转换:一条带箭头的直线来表示。 一旦前一个活动结束马上转到下一个活动(无触发转换)。,活动图的主要元素,分支与监护条件:分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号), 一个或多个离开转换(箭头从分支符 号指向外)。而每个离开转换上都会 有一个监护条件,用来表示满足什么 条件的时候执行该转换。 分岔与汇合:,修改后的简单活动图,带泳道的活动图,带对象流的活动图,绘制活动图,首先决定是否采用泳道:主要根据活动图中是否要体现出活动的不同实施者 然后尽量使用分支、分岔和汇合等基本的建模元素来描述活动控制流程 如果需要,加入对象流以及

    21、对象的状态变化,利用一些高级的建模元素(如辅助活动图、汇合描述、发送信号与接收信号、引脚、扩展区)来表示更多的信息,常用UML模型图的阅读和绘制,用例图 活动图 类图 交互图 状态图,面向对象思想,张三通过电子商务网站给李四送一个蛋糕,面向对象思想,每个对象都扮演了一个角色,并为其它成员提供特定的服务或执行特定的行为。 在面向对象世界中,行为的启动是通过将“消息”传递给对此行为负责的对象来完成的;同时还将伴随着执行要求附上相关的信息(参数);而收到该消息的对象则会执行相应的“方法”来实现需求 用类和对象表示现实世界,用消息和方法来模拟现实世界的核心思想,示例类图,先看清有哪些类,然后看类之间的

    22、关系,并结合多重性来理解类图的结构特点以及各个属性和方法的含义,订货人,商户,商品,送货单,订单明细 (订单项),订单头,收货人,读图过程,读出类:图中共有7个类,Order、OrderItem、Customer、Consignee、DeliverOrder、Peddlery、Prodcut 读出关系:从图中关系最复杂(也就是线最密集)的类开始阅读,本图中最复杂的就是Order类。 1)OrderItem和Order之间是组合关系,根据箭头的方向可知Order包含了OrderItem。 2)Order类和Customer、Consignee、DeliverOrder是关联关系。也就是说,一个订

    23、单和客户、收货人、送货单是相关的。,读图过程,多重性:用来说明关联的两个类之间的数量关系,读图过程,理解方法和属性 Order类的两个方法:dispatch()和close(),分别实现“分拆订单生成送货单”和“完成订单”。 DeliveOrder类的Close()方法,表示“完成送货”。 OrderItem类的stateChange()方法和deliverState属性,是用来改变其“是否交给收货人”标志位的。,读图过程,过程分析 先调用Order的dispatch()方法,它将根据其包含的OrderItem中产品信息,来按供应商户分拆成若干个DeliverOrder。商户登录系统后就可以获

    24、取其DeliverOrder,并在送货完后调用close()方法。这时,就将调用OrderItem的stateChange()方法来改变其状态。同时再调用Order的close()方法,判断该Order的所有的OrderItem是否都已经送到了,如果是就将其真正close()掉!,使用了更多辅助 建模元素的类图,增强的辅助建模元素,导航箭号:类的实例之间只能沿着导航箭头的方向传递 。例如:在Order中可以获取其相应的Consignee,而从Consignee中是无法了解与其相关的Order的。 角色名称:Customer端有一个“+Owner”字符串 ,这表示Customer扮演的角色是Ow

    25、ner,也能对关联进行命名 导出属性:是指可以根据其他值计算出来的特性,这种属性应在其名称前加上一个“/”符号。,增强的辅助建模元素,限定符:在Order和OrderItem之间的组合关系中,OrderItem这端多了一个方框,里面写着“ProductId”。它在UML中称为限定符,存在限定符的关联称为受限关联。它用来表示某种限定关系。在本例中,它的用途是说明:对于一张订单,每一种产品只能用一个订单项。 约束:用来说明规则,如xor,抽象类,抽象类是一种不能够被直接实例化的类,也就是说不能够创建一个属于抽象类的对象,接口,接口则是一种类似于抽象类的机制,它是一个没有 具体实现的类,关联类,关联

    26、类即是关联也是类,它不仅像关联那样连接两个类,而且还可以定义一组属于关系本身的特性,一个实例:个人图书管理系统的建模之类图,需求描述 小王是一个爱书之人,家里各类书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时间周期进行统计 。,发现类,小王是一个爱书之人,家里各类

    27、书籍已过千册,而平时又时常有朋友外借,因此需要一个个人图书管理系统。该系统应该能够将书籍的基本信息按计算机类、非计算机类分别建档,实现按书名、作者、类别、出版社等关键字的组合查询功能。在使用该系统录入新书籍时系统会自动按规则生成书号,可以修改信息,但一经创建就不允许删除。该系统还应该能够对书籍的外借情况进行记录,可对外借情况列表打印。另外,还希望能够对书籍的购买金额、册数按特定时间周期进行统计,筛选备选类,“小王”、“人”、“家里”很明显是系统外的概念,无须对其建模; 而“个人图书管理系统”、“系统”指的就是将要开发的系统,即系统本身,也无须对其进行建模; 很明显“书籍”是一个很重要的类,而“

    28、书名”、“作者”、“类别”、“出版社”、“书号”则都是用来描述书籍的基本信息的,因此应该作为“书籍”类的属性处理,而“规则”是指书号的生成规则,而书号则是书籍的一个属性,因此“规则”可以作为编写“书籍”类构造函数的指南。 “基本信息”则是书名、作者、类别等描述书籍的基本信息统称,“关键字”则是代表其中之一,因此无需对其建模; “功能”、“新书籍”、“信息”、“记录”都是在描述需求时使用到的一些相关词语,并不是问题域的本质,因此先可以将其淘汰掉;,筛选备选类,“计算机类”、“非计算机类”是该系统中图书的两大分类,因此应该对其建模,并改名为“计算机类书籍”和“非计算机类书籍”,以减少歧义; “外借

    29、情况”则是用来表示一次借阅行为,应该成为一个候选类,多个外借情况将组成“外借情况列表”,而外借情况中一个很重要的角色是“朋友”借阅主体。虽然到本系统中并不需要建立“朋友”的资料库,但考虑到可能会需要列出某个朋友的借阅情况,因此还是将其列为候选类。为了能够更好地表述,将“外借情况”改名为“借阅记录”,而将“外借情况列表”改名为“借阅记录列表”; “购买金额”、“册数”都是统计的结果,都是一个数字,因此不用将其建模,而“特定时限”则是统计的范围,也无需将其建模;不过从这里的分析中,我们可以发现,在该需求描述中隐藏着一个关键类书籍列表,也就是执行统计的主体。,得到候选类,在使用“名词动词法”寻找类的

    30、时候,很多团队会在此耗费大量的时间,特别是对于中大型项目,这样很容易迷失方向。其实在此主要的目的是对问题领域建立概要的了解,无需太过咬文嚼字,关联分析,建模,多重性分析,再建模,职责分析,书籍类:从需求描述中,可找到书名、类别、作者、出版社;同时从统计的需要中,可得知“定价”也是一个关键的成员变量。 书籍列表类:书籍列表就是全部 的藏书列表,其主要的成员方法 是新增、修改、查询(按关键字 查询)、统计(按特定时限统计 册数与金额)。 借阅记录类:借阅人(朋友)、 借阅时间。 借阅记录列表类:主要职责就是 添加记录(借出)、删除记录 (归还)以及打印借阅记录,限定与修改,导航性分析:Book与B

    31、ookList之间、BorrowRecord和BorrowList之间是组合关系均无需添加方向描述,而Book与BorrowRecord之间则是双方关联,也无需添加 约束:Book对象创建后就不能够 被删除只能被修改,因此在Book 类边上加上用自由文本写的约束 ; 一本书要么属于计算机类,要么 属于非计算机类,因此在ItBook 和OtherBook间加了 “Xor”约束 限定符:一本书只有一册,因此只 能够被借一次,因此对于一本Book 而言只能有一个RecordId与其对应,软件系统模型,领域模型是从面向对象的视角看待现实世界的结果,也就是通过类图来描述现实世界中各种事物的关系。 分析模

    32、型和领域模型是很相近的,分析模型主要是针对软件系统的分析,领域模型则更多是偏重对业务领域的分析 设计模型则是在分析模型的基础上添加设计元素的结果。与分析模型相比,设计模型中的类的属性集更趋完善;,三种分析类的表示法,分析模型有3种十分有用的构造型: 边界类 boundary 控制类 control 实体类 entity,三种分析类边界类,边界类boundary 完成参与者与系统的交互 位于系统与外界的交界处,例如窗体、对话框、报表,与外部设备或系统交互的类 边界类可以通过用例确定,因为活动者必须通过边界类参与用例,边界类举例:银行系统,三种分析类控制类,控制类control 体现应用程序的执行

    33、逻辑,协调其他类工作和控制总体流程 一般每个用例有一个控制类 控制类会向其他类发送消息,三种分析类实体类,实体类entity 保存永久信息,最终可能映射到数据库中的表格和文件中,常用UML模型图的阅读和绘制,用例图 活动图 类图 交互图 状态图,交互的概念,一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为,UML中的4种交互图,顺序图:顺序图是一种强调消息时间顺序的交互图,为读者提供了控制流随着时间推移的清晰的可视化轨迹 通信图:UML 2.0中的通信图实际上就是UML 1中的协作图,它强调的是参加交互的对象的组织,为读者提供了在协作对象结构组织的

    34、语境中观察控制流的一个清晰的可视化轨迹 定时图:采用了一种带数字刻度的时间轴来精确地描述消息的顺序 交互概述图:是交互图和活动图的混合物,阅读顺序图,从 订 单 生 成 送 货 单,顺序图的主要元素,对象与参与者:最顶上一排矩形框。参与交互的对象既可以是具体的对象,又可以是匿名对象。 生命线:每个对象都有自己的生命线, 对象生命线是一条垂直的虚线, 用来表示一个对象在一段时间内存在。 控制焦点:表示一个对象执行一个动作 所经历的时间段。,消息:用来描述对象之间所进行的通信。 消息分为五种:调用、返回、发送、创建和销毁 调用:表示调用某个对象一个操作,顺序图的主要元素,消息分为五种:调用、返回、

    35、发送、创建和销毁 返回:表示被调用对象向调用者返回一个值。 发送:向对象发送一个信号,实现实例间通信的异步激发。 创建和销毁:创建和销毁一个对象。,顺序图的主要元素,顺序图的主要元素,顺序编号:整个消息的传递过程形成一个完整的序列,通过在每个消息的前面加上一个用冒号隔开的顺序号来表示其顺序。除顺序编号外,还可以采用嵌套方案。,顺序图的主要元素,循环与分支,读图小结,在dispatchForm(分发窗体)中,对于某个已支付的Order进行分发时,就会调用该订单(一个Order类的实例对象aOrder)的dispatch()方法 dispatch()方法将逐个调用该Order对应的所有OrderI

    36、tem对象的getPeddleryId()方法还获取供应商ID(PeddleryId),而OrderItem对象则是通过其所对应的Product对象来的getPeddleryId()方法来获取供应商ID,读图小结,当Order的实例对象aOrder得到返回的PeddleryId后,根据该值判断是否已经有相对应的DeliverOrder对象,如果没有就创建它(调用create(PeddleryId)),然后再将对应的Product添加到这个DeliverOrder对象中。否则就直接添加到相应的DeliverOrder对象中,阅读通信图,通信图主要元素,链:Object Link,是用来表示对象之

    37、间的语义连接,一般而言,链是关联的一个实例。链的构造型(P105)。 消息编号:,一种是无层次编号,它简单直观;另一种是嵌套的编号,它更易于表示消息的包含关系。 迭代:即循环。用一个迭代符号*,和迭代表达式来表示。 监护条件:通常是用来表示分支的,也就是表示“如果条件为true,才发送消息” ,以条件表达式形式表示。,绘制交互图,根据自己的喜好和实际的表现需要来选择顺序图或通信图。顺序图强调时间的顺序,通信图强调对象间结构和职责。这两种图是同构的,可以互相转换,并不产生信息的丢失。 先确定参与交互的对象、对象之间的关系(通信图),然后确定对象间的消息交互流程(用同步调用、异步消息、返回消息表示

    38、),并利用交互片断(顺序图)或迭代标记及监护条件来表示循环和分支结构。,使用方法:鲁棒分析,Robustness分析不是UML模型的一部分,它是一个强大的草图工具,是介于分析和设计之间的一种有效工具。 在Robustness分析中,将应用边界类、控制类和实体类。 从一个用例中抽取三类对象的方法:,鲁棒分析1、从事件流开始,以个人图书管理系统的“新增书籍”用例为例,鲁棒分析2、寻找边界对象,图书管理员向系统发出“新增书籍信息”请求主窗口、“新增书籍信息”按钮 系统要求图书管理员选择要新增的书籍是计算机类还是非计算机类书籍类别列表框。 图书管理员做出选择 后,显示相应界面, 让图书管理员输入信 息

    39、,并自动根据书号 规则生成书号 “新书信息录入”窗口 及辅助的“提交”按钮,鲁棒分析3、寻找控制对象和实体对象,根据事件流中的步骤5,以及扩展路径的描述,就可以在原图上增加相应的控制对象,得到更进一步的Robustness分析图。,鲁棒分析3、寻找控制对象和实体对象,新添两个逻辑:一是基本事件流中的步骤2、3要求根据用户选择的类别,自动获得书号;二是当书名重复性检查没有通过(有重名),则应返回要求其重输。,构建交互模型,转换成通信图,常用UML模型图的阅读和绘制,用例图 活动图 类图 交互图 状态图,状态、状态表示法及状态机,状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一

    40、个条件和状况 状态机是用来展示状态与状态之间转换的图,阅读最简单的状态图,状态图中最为核心的元素 用圆角矩形表示的状态(初态和终态例外) 在状态之间的、包含一些文字描述的有向箭头线,这些箭头线称为转换 举例:一个电水壶的状态图,转换的五要素,源状态:即受转换影响的状态 目标状态:当转换完成后对象的状态 触发事件:用来为转换定义一个事件 监护条件:布尔表达式,决定是否激活转换、 动作:转换激活时的操作,读图小结,与状态off相关的转换有两个,其触发事件都是turnOn,只不过其监护条件不同。如果对象收到事件turnOn,那么将判断壶中是否有水;如果没水,则仍然处于off状态;如果有水则转为on状

    41、态,并执行“烧水”动作 而与状态on相关的转换也有两个,如果“水开了”就执行turnOff,关掉开关;如果烧坏了,就进入了终态了,复杂转换,阅读带有复杂转换的状态图,各种转换的区别,进入和退出转换:当进入或退出一个状态时,执行某个动作。 内部转换:用来处理一些不离开该状态的事件 动作:当对象处于一个状态的同时,对象做着某些工作,并一直继续到被某个事件中断,绘制状态机图,绘制状态机图的理想步骤是: 寻找主要的状态, 确定状态之间的转换, 细化状态内的活动与转换,绘制状态机图,举例:一个航班机票预定系统 (1)寻找主要状态: 在刚确定飞机计划和有人预订机票之前,是没有任何预订的,处于“无预订”状态

    42、 对订座而言有“部分预订”和“预订完”两种状态 当航班快要起飞时,显然要“预订关闭”,绘制状态机图,(2)确定状态间转换,绘制状态机图,(2)确定状态间转换,绘制初步状态图,绘制状态机图,细化状态内的活动与转换,内容概览,UML概述 建模环境介绍 UML的构成 常用UML模型图的阅读和设计 :用例图、活动图、类图、交互图、状态图 一个UML建模实例:系统分析和设计,登录界面,用户名:,密码:,登录,取消,面向对象需求分析步骤,需求调研 用例模型(用例图用例描述)描述系统需求 通过活动图展现系统主要业务流程和各用例的业务流程 分析出系统的领域类模型(初步类图) 分析得到各个对象交互的顺序图,以及各类的方法 分析对象状态得到状态图 数据库模型的建立 利用包图或构件图表示系统架构设计,进一步设计类,得到类的设计模型 利用部署图表示系统的部署结构,QUESTION?,练习,(1) 图书管理系统用例图 (2) 图书管理系统主要业务流程活动图 (3) 借书和还书的顺序图 (4) 书籍状态图 (5) 系统类图,

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:面向对象软件项目需求分析.PPT
    链接地址:https://www.163wenku.com/p-306118.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库