PPTOK :您身边最贴心好用的PPT站!

您当前所在位置:首页 > PPT课件 > 学校ppt > 高校大学PPT → 软件工程-面向对象的方法ppt

软件工程-面向对象的方法ppt

  • 素材大小:1.22 MB
  • 素材授权:免费下载
  • 更新时间:2017-01-12
  • 素材类别:高校大学PPT
  • 素材格式:.ppt
  • 关键提要:工学
  • 素材版本:PowerPoint2003及以上版本(.ppt)
网友评分:
PPT介绍优秀PPT相关PPT精品PPT

这是一个关于软件工程-面向对象的方法ppt,主要介绍传统方法与面向对象方法、传统面向对象方法、UML与RUP、基于UML的实例分析。欢迎点击下载哦。

PPT预览

软件工程-面向对象的方法ppt

PPT内容

软件工程
第9讲 面向对象的方法
9.1传统方法与面向对象方法
(1)传统方法存在的问题
传统方法的发展
以结构化程序设计为基础,并逐步扩展到分析与设计阶段的一种软件工程方法。
面向功能的方法
面向数据流的方法
面向数据结构的方法
传统方法的本质
进行功能分解,从目标系统的整体功能着手,自顶向下不断将复杂的处理分解为子处理,直至每个子处理比较简单,在使用的时候一个一个依次调用就可以了 。
传统方法存在的主要问题
由于围绕处理功能来构造系统的,因此任何需求的变化都会对原有系统产生致命的影响;
需求不能精确描述,从分析到设计的转化存在鸿沟,造成分歧,系统的稳定性和易变性差;
将数据与实现方法相分离的做法,偏离了客观世界中人们处理问题的方式;
产生的软件重用性差,易变性差,可维护性差,软件不能满足用户要求的问题。
(2)面向对象的概念与思想?
(1)认识问题、分析问题、解决问题的方式不同
将数据和方法封装在一个称为“对象”的统一体中;
对象之间通过“消息”相互联系,“对象+消息”机制取代了“数据结构+算法”的思路,减小了系统变化所带来的波动性;
以对象为中心构建系统。
(2)“问题空间”与“解空间” 有较一致的表示
在“OOA-OOD-OOI”的过程中,采用一致的模型表示,弥合了“鸿沟”问题。
(3)利用继承性和封装性支持软件复用
后一阶段可直接复用前一阶段的结果,可重用性好。
(4)适应复杂大型系统的发展和变化要求
以对象为中心,而不是基于功能与功能的分解来建立系统,因此,当功能需求发生变化时,不会引起系统的整体变化,稳定性较好
例如五子棋,传统的设计思路就是确定问题的步骤:    1、开始游戏,    2、黑子先走,    3、绘制画面,    4、判断输赢,    5、轮到白子,    6、绘制画面,    7、判断输赢,    8、返回步骤2,    9、输出最后结果。   把上面每个步骤用分别的函数来实现,问题就解决了。
面向对象的设计则是从另外的思路来解决问题。整个五子棋可以分为:    1、黑白双方,这两方的行为是一模一样的,    2、棋盘系统,负责绘制画面,    3、规则系统,负责判定诸如犯规、输赢等。   第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
9.2 传统面向对象方法
OOA/OOD方法(Coad和Yourdon提出)
OMT方法(Rumbaugh提出)
Booch方法(Booch提出)
OOSE方法(Jacobson提出)
Coad/Yourdon方法
(1)方法简介
提出:
P. Coad 和E. Yourdon于 1991年提出。
该方法分2个阶段:
OOA(Object-Oriented Analysis)面向对象分析
OOD(Object-Oriented Design)面向对象设计。
(2) OOA的分析过程
主题(subject)又称为子系统(subsystem)是将一些联系密切的类组织在一起的类的集合。按照粒度控制原则,将系统组成几个主题,便于理解。
用“对象-关系模型”描述系统的静态结构
通过消息连接说明所标识的各种对象是如何通信、协作,使系统运作起来 。
什么是问题域设计
OOD是对OOA的修改、增补
根据实现技术及实现方面的限制,合并或分开一些类及对象、结构、属性、服务,但保留在OOA模型中所捕获到的基本的系统行为
什么是人机交互设计
通常在OOA阶段给出了所需的属性和操作,在设计阶段必须根据需求把交互的细节加入到用户界面的设计中,包括有效的人机交互所必需的实际显示和输入。
什么是任务管理设计
当系统中有许多并发行为时,需要依照各个行为的协调和通信关系,划分各种任务。任务管理主要包括识别事件驱动任务、识别时钟驱动任务、识别优先任务、识别协调任务、审查每个任务、定义每个任务等
什么是数据管理设计
数据管理提供了在数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。它分离了数据管理机构所关心的事项,包括文件、关系型DBMS或面向对象DBMS等。
9.3 UML与RUP
(1)UML概述
20世纪90年代,3个最流行的面向对象方法是:OMT方法(Rumbaugh提出),Booch方法(Booch提出),OOSE方法(Jacobson提出),每种方法各有所长,但不同符号体系的使用给用户带来了混乱。
1994年Rumbaugh加入Booch所在的Rational公司,他们将Booch和OMT方法统一为UM0.8,后来Jacobson也加入到这一工作中,并于1996年6月和10月发布了UML0.9和UML0.91。到1996年年底,UML已经占据面向对象技术市场85%的份额,成为事实上的工业标准。97年在其它一些组织的参与下,OMG采纳了UML1.1为面向对象的标准建模语言。
(2)UML的特点
统一了Booch,OMT,OOSE和其它面向对象方法的基本概念和符号,汇聚了面向对象领域中各种优秀的思想。
UML是一种可视化建模语言,而不是一种方法,因为UML中没有过程的概念,而过程是方法的一个重要组成部分。这意味着,用户在使用UML进行建模时,可以根据需要选用任何适合的过程。
(3)UML的组成
UML语义:描述基于UML的精确元模型定义。使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响.
UML表示法:定义UML符号的表示法。
UML中包括三种构造模块:元素、关系、图。其中
元素包括:
类、接口、用例、组件、节点、消息、连接、状态、事件、活动、包等。
关系包括:
依赖关系、关联关系、泛化关系、聚合关系、实现关系等。
图共有9种,包括:
用例图、类图、对象图、状态图、时序图,协作图、活动图、组件图和配置图。
(1)标准建模语言UML (用例图)
     用例图描述的是外部执行者(Actor)所理解的系统功能。它将系统看作黑盒,从外部执行者的角度来理解系统,一个用例模型由若干个用例图描述,用例图主要元素是用例和执行者。
     用例图是包括执行者、由系统边界(一个矩形)封闭的一组用例,执行者和用例之间的关联、用例间关系以及执行者的泛化的图。
(1)标准建模语言UML (用例)
    一个用例是用户与计算机之间的一次典型交互作用。是系统执行的一系列动作,执行的结果能被执行者察觉到(为参与者产生一个可观测的结果值)
用例特点:
      用例捕获某些用户可见的需求,实现一个具体的用户目标。用例由执行者激活,并提供确切的值给执行者。用例可大可小,但它必须是对一个具体的用户目标实现的完整描述。
(1)标准建模语言UML(执行者)
     执行者是指用户在系统中所扮演的角色(执行者未必是人)。
      通信联系:将执行者与用例连接到一起不带箭头的线段,表示两者之间交换信息。执行者触发用例,并与用例进行信息交换。
      单个执行者可与多个用例联系;反过来,一个用例可与多个执行者联系。
       对一个大系统,要列出用例清单常常是十分困难。这时可先列出执行者清单,再对每个执行者列出它的用例,问题就会变得容易很多。
(1)标准建模语言UML (用例间关系)
使用和扩展(Use and Extend):
   扩展关系:一个用例可由其它用例扩展而来,但扩展是有条件的。在没有遇到扩展点前,基用例正常执行,在到达扩展点且条件为真时,转入扩展用例执行,完成后再回到基用例继续执行。
使用关系:当有一大块相似的动作存在于几个用例,又不想重复描述该动作,将重复的部分分离为一个用例,两用例间关系称为使用关系
泛化关系
        将特定用例抽象为更一般的用例,子用例继承父用例的行为和含义,增加新行为或覆盖父用例的行为。
参与者之间也可以存在泛化关系
(1)标准建模语言UML (符号表示)
用例图中的图符:
           用例
           执行者
系统:用于界定系统功能范围,描述该系统功能的用例都置于其中,而描述外部实体的执行者都置于其外。
            关联:
            使用:由用例A指向用例B,表示用例A中使用了用
   例B中的行为或功能。
扩展:由用例A指向用例B,表示用例B描述了一项基本需求,而用例A则描述了该基本需求的特殊情况。
泛化:
用例图与脚本(场景)
与用例有些相似的概念是脚本。用例是一个类,它代表一类功能。而脚本是该用例的某个具体实例,表明系统的一次具体执行过程。
如旅客订票是一个用例,而张三向系统订购到上海的机票,系统找零并打印车票,这就是一个脚本;而李四订购到北京的机票,但票已售完,这是另一个脚本。
用例描述了系统做什么,但没有规定怎么做,它只是显示了参与者与用例间的关系,因此需要为用例图配上结构化的文本或图形(时序图、协作图、活动图)。
脚本示例
例如:某系统中用户“登录”用例:
简单描述
本用例描述用户如何登录到系统中。
前置条件

后置条件
如果用例成功,则用户登录到系统中。否则,系统状态不变。
扩充点

事件流
基本流程
当用户登录到银行系统时,用例启动。(1)系统提示用户输入用户名和密码。(2)用户输入自己的用户名和密码。(3)系统验证用户名和密码(E1),用户登录系统成功。
可选流程
E1:如果用户名和密码无效,系统提示错误信息,用户可重新输入或停止。
(2) 标准建模语言UML (类图)
在面向对象的建模技术中,类、对象和它们之间的关系是最基本的建模元素。对于一个想要描述的系统,其类模型、对象模型以及它们之间的关系揭示了系统的结构。
类图描述了系统中的类及其相互之间的各种关系,其本质反映了系统中包含的各种对象的类型以及对象间的各种静态关系(关联,子类型)。
(2) 标准建模语言UML (类图)
类图中的图符:
                   类:表示一个类,其中第一栏是类的
                   名,第二栏是类的属性,第三栏是类的操作。
                   包:包是一种分组机制,表示一个类
                   图集合。
                  关联:用于表示类的对象之间在语义上的联系。其特殊形式有组成关联和聚集关联。
(2) 标准建模语言UML (类图)
类图中的图符:
               聚集关联:用于表示类的对象之间的关系是整体与部分的关系。
               组成关联:用于表示类的对象之间的关系:整体拥有各部分,部分与整体共存,如整体不存在了,部分也会随之消失。
               泛化关联:泛化关系(继承关系)定义了类和包间的一般元素和特殊元素之间的分类关系。
              依赖关系:有两个类或包元素X、Y,修改元素X可能会引起对另一个元素Y的修改,则称元素Y依赖于元素X。如:一个类是另一个类的数据成员;一个类是另一个类的某个操作参数
(2) 标准建模语言UML (类图)
继承关系表示
(2) 标准建模语言UML (类图)
关联关系的UML表示
(2)标准建模语言UML (类图)
自关联与限定关联
(2) 标准建模语言UML (类图)
关联表示的一些说明:
       UML并不要求关联一定要有名字。但给所有关联命名(组成和聚集关联除外),是一个好习惯。
       UML也不需要角色名。但最好给出有意义的角色名。
       UML通常简写多重性。Eg. 0..* 简写为*,1..1写为1。
(2) 标准建模语言UML (类图)
聚集关系
    表示整体与部分之间的关系,也即作为整体的对象拥有作为部分的对象,它通常只是概念上的区分。
    构成对象不存在,聚集对象还可存在。
组成关系
    组成关系是聚集关系的变种,它强调整体与部分之间有很强的所属关系和一致的生命周期。
    如果没有成分对象,组成对象也不存在。
聚集
(3) 标准建模语言UML (对象图)
对象图是类图的一种变形。除了在对象名下面要加下划线以外,对象图中所使用的符号与类图基本相同。
对象图是类图的一种实例化。一张对象图表示的是与其对应的类图的一个具体实例,即系统在某一时期或者某一特定时刻可能存在的具体对象实例以及它们相互之间的具体关系。
(3)标准建模语言UML (对象图)
(3)标准建模语言UML (对象图)
对象图并不象类图那样具有重要的地位,但是利用它可以帮助我们通过具体的实例分析,更具体直观地了解复杂系统类图的丰富内涵。
对象图还常常被用作协作图的一部分,用以展示一组对象实例之间的动态协作关系。
(4)标准建模语言UML (包图)
包是将许多类集合成一个更高层次的单位,形成一个高内聚、低耦合的类的集合。
包图所显示的是类的包以及这些包之间的依赖关系。
如果两个包中的任意两个类之间存在依赖关系,则这两个包之间存在依赖关系。
包的依赖是不传递的。
(4)标准建模语言UML (包图)
何时使用包图
        在大项目中,包图是一种重要工具(有专家建议,只要你不能将整个系统的类图压缩到一张A4纸上,你就应该使用包图);
依赖产生耦合,应该尽量将依赖性减少到最低程度;
包的概念对测试也是特别有用的。
(5)标准建模语言UML (状态图)
      状态图是对类的一种补充描述,它展示了此类对象所具有的可能的状态以及某些事件发生时其状态的转移情况。
1) 状态
          表示状态。状态的改变称作转移,状态转移由箭头表示,箭头旁可以标出转移发生的条件。状态转移可以伴随有某个动作,它表明当转移发生时系统要做什么。
表示初始状态。
表示终止状态。
表示中间状态
(5)标准建模语言UML (状态图)
2)转移
       状态图中状态之间带箭头的连线被称为转移。转移上标出触发转移的事件表达式。未标明事件,表示在源状态的内部活动执行完毕后自动触发转移。
(6)标准建模语言UML (时序图)
时序图描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。
时序图由一组对象构成,每个对象分别带有一条竖线,称作对象的生命线,它代表时间轴,时间沿竖线向下延伸。
时序图描述了这些对象随着时间的推移相互之间交换消息的过程。消息用从一条垂直的对象生命线指向另一个对象的生命线的水平箭头表示。
时序图的主要作用在于详细说明一个用例中某脚本的具体实现过程。(与基于文本的描述相比,它能更清楚表示每条消息的接收和发送者)
例如,用例“键入并显示字符”的具体过程如下:
(6)标准建模语言UML (时序图)
时序图中的消息可以是信号(Signal)、操作调用或类似于C++中的RPC和Java中的RMI。当收到消息时,接收对象立即开始执行活动,即对象被激活了。通过在对象生命线上显示一个细长矩形框来表示激活。
消息的分类
    简单、同步(synchronous)、
     异步(asynchronous)
消息可以用消息名及参数来标识。消息也可带有顺序号,消息还可带有条件表达式,表示分支或决定是否发送消息。
如何建立时序图
为每个用例编写至少一个场景
把场景抽象为时序图
寻找三种类:
      –实体类:表示系统存储和管理的永久信息
   –边界类:表示参与者与系统之间的交互
   –控制类:表示系统在运行过程中的业务控制逻辑
登记借书
(7)标准建模语言UML (协作图)
协作图用于描述相互合作的对象间的交互关系和链接关系。
虽然时序图和协作图都用来描述对象间的交互关系,但侧重点不一样。时序图着重体现交互的时间顺序,协作图则着重体现交互对象间的静态链接关系
链接关系:类似于类图中的联系(但无多重性标志)。通过在对象间的链接上标志带有消息串的消息(简单、异步或同步消息)来表达对象间的消息传递
在协作图中,对象同样是用一个对象图符来表示,箭头表示消息发送的方向,而消息执行的顺序则由消息的编号来表明。
(7)标准建模语言UML(协作图)
     在画协作图时,先将参与交互的对象放在图中,然后连接这些对象,并用对象发送和接收的消息来装饰这些连接。
(8)标准建模语言UML (活动图)
活动图描述系统中各种活动的执行顺序,通常用于描述一个操作中所要进行的各项活动的执行流程。同时,它也常被用来描述一个用例的处理流程,或者某种交互流程。
活动图由一些活动组成,当一个活动执行完毕之后,控制将沿着控制转移箭头转向下一个活动。活动图中还可以方便地描述控制转移的条件以及并行执行等要求。
在很多方面,活动图是结构化开发中流程图和数据流程图 (DFD) 的面向对象等同体 。
活动图基本构成
活动和跃迁:活动仅有一个起始点,但可以有多个结束点。当一个活动执行完毕,控制流立即传递给下个活动,跃迁被定义为从一个活动传递到下一个活动的路径。一个活动可以顺序地跟在另一个活动之后,这是简单的顺序关系。如果在活动图中使用一个菱形的判断标志,则可以表达条件关系。
泳道:活动图告诉你发生了什么,但没有告诉你该项活动由谁来完成。泳道将活动图的逻辑描述与顺序图、合作图的责任描述结合起来。泳道用矩形框来表示
分叉和联结:分叉将一个控制流分为多个并发的控制流;联结将多个并发的控制流合并为一个控制流
活动图的符号表示
实心圆表示活动图的起点,实际上是一个占位符,带边框的实心圆表示终点。
            圆角矩形表示执行的过程或活动。
            菱形表示判定点。
            箭头表示活动之间的转换
    [条件]  表示转换所必须满足的条件
            表示可能会并行进行的过程的开始和结束。
标准建模语言UML (活动图)
传感器监测用例活动图
什么时候用活动图
活动图的最大用处有两点:
   (1)类似于传统方法中的DFD,站在用户的角度描述一个用例中所有活动的执行顺序和关系。
    (2)类似于传统方法中的程序流图,用于对算法的实现过程进行描述。
动态建模工具对比
协作图的布局方法能更清楚地表示出对象之间静态的连接关系,时序图突出执行的时序,能更方便地看出事情发生的次序。
如果要从设计角度描述在一个用例中的几个对象协同工作的行为,交互图(时序图和协作图的统称)是一种有力的工具。
如果想要描述跨越多个用例的单个对象的行为,应当使用状态图;
如果要从需求角度描述在一个用例的实现过程,则需考虑使用活动图,此外如果要描述跨多个用例的业务流程,也可使用活动图。
(9)标准建模语言UML (构件图)
构件图描述软件构件以及它们之间的依赖关系,从而便于人们分析和发现当修改某个构件时可能对那些构件产生影响,以便对它们做相应的修改或更新。
构件可以是源代码构件、二进制目标码构件、可执行构件或文档构件。
                      表示构件。
(10)标准建模语言UML (配置图)
配置图描述系统中硬件和软件的物理配置情况和系统体系结构。
在配置图中,用结点(立方体)表示实际的物理设备,如计算机和各种外部设备等,并根据它们之间的连接关系,将相应的结点连接起来,并说明其连接方式。
在结点内部,说明分配给该结点上运行的可执行构件或对象,从而说明哪些软件单元被分配在哪些结点上运行。
RUP(统一软件开发过程)
UML的表示和规则虽然能为系统进行面向对象的建模,但并没有指定运用UML的过程和方法。要成功的运用UML,必须遵循科学的建模过程,这就是统一软件开发过程,即RUP(Rational Unified Process)。
与传统瀑布模型相似,RUP也是一个软件工程过程模型,它提供了在开发组织中分派任务和责任的方法,目标是在规定的日程和预算前提下,确保产生满足用户需求的软件。
RUP吸收了很多商业上证明成功的开发经验,具有以下主要特征:
以用例驱动软件的设计、实现。
以架构为中心(类、组件、子系统)。
迭代和增量的软件开发。
过程可配置,开发组织可根据项目情况定制该过程
RUP(统一软件开发过程)
RUP中的每个阶段都可细分为迭代,迭代包括产生产品的全部开发活动和要必须的其他元素。
一次迭代包括了生成一个可执行版本的开发活动,还有使用这个版本所必需的其他辅助成分,如版本描述、用户文档等。
因此一个开发迭代在某种意义上是在所有工作流中的一次完整的经过,这些工作流至少包括:需求工作流、分析和设计工作流、实现工作流、测试工作流。
初始阶段的目标是为系统建立商业案例(验收标准,风险评估,资源估计等)和确定项目的边界。
    为达到这一目的,必须找出所有系统与之交互的外部实体,并在较高的层次上定义这些交互,包括识别所有用户,描述主要用例,制订开发计划等。
在构造阶段,通过迭代完成对所有用例的软件实现工作,在每次迭代中,实现部分用例。迭代可以尽快发现问题,降低开发风险。
每次迭代过程由针对用例的分析、设计、编码、测试、和集成5个子阶段构成。用户可以针对用例的实现效果进行评价,提出意见。
时间轴——移交阶段
        在移交阶段,开发人员对构造阶段获得的软件系统在用户实际工作环境中试运行,根据用户的修改意见进行少量调整。
(1) 商业建模
      RUP中有9个核心工作流,分为6个核心过程工作流和3个核心支持工作流。尽管6个核心过程工作流可能使人想起传统瀑布模型中的几个阶段,但应注意迭代过程中的阶段是完全不同的,9个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。
需求工作流的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、文档化;最重要的是理解系统所解决问题的定义和范围。
需求分析主要通过用例建模实现,除使用用例图外,还可以使用文字(或活动图)等对用例进行详细描述。
非功能性的需求也可以通过文字描述。
注意:多数用例可以在需求分析阶段确定,但随着迭代的进行,更多的用例会出现或者错误的用例需要修改
分析阶段的重要工作是对问题域进行分析,以确定系统系统中的类。
设计阶段的任务是通过考虑所有的技术限制,扩充和细化分析阶段产生的模型。即细化类图(包括属性,操作),增加新类以处理注入数据库,用户接口,通讯等问题,或调整类的层次以增强复用性等。
系统设计示例
设计优化
调整继承层次
利用委托实现行为共享
保留派生属性
       通过某种运算而从其他数据派生出来的数据,是一种冗余数据。但如果希望避免重复计算复杂表达式所带来的开销,可以把这类冗余数据作为派生属性保存起来。
      实现工作流的目的包括以层次化的子系统形式定义代码的组织结构;
         以组件的形式(源文件、二进制文件、可执行文件)实现类和对象;
         对发现分析设计模型中的问题,要及时修改,保持分析、设计模型与代码的一致性。

相关PPT

通信工程防护基本课程之设备环境防护案例ppt课件:这是一个关于通信工程防护基本课程之设备环境防护案例ppt课件,主要介绍通信设备防护的大致分类、了解通信设备运行环境的基本要求、掌握基本的防护原理、掌握常见问题的分析及处理方法。欢迎点击下载哦。
《通信工程概预算》课件ppt:这是一个关于《通信工程概预算》课件ppt,主要介绍通信工程概述 、通信建设工程与定额、通信建设工程费用定额、通信建设工程工程量计算、通信工程概预算的编制。欢迎点击下载哦。
《材料物理化学课件介绍》ppt:这是一个关于《材料物理化学课件介绍》ppt,主要介绍相与相平衡、相图、相变、晶体的成核和生长机理。欢迎点击下载哦。
《软件工程-面向对象的方法ppt》是由用户暖玺于2017-01-12上传,属于高校大学PPT。

标签:

优秀PPT

缩略图

  • 软件工程-面向对象的方法ppt

下载地址

  • 软件工程-面向对象的方法ppt

相关PPT

推荐

颜色分类黑色PPT模板橙色PPT模板紫色PPT模板蓝色PPT模板黄色PPT模板红色PPT模板绿色PPT模板彩色PPT模板黑白PPT模板

行业分类科技PPT模板医学PPT模板教育PPT模板工业PPT模板金融PPT模板音乐PPT模板汽车房地产互联网培训手机

实用必备个人简历自我介绍年终总结职业规划述职报告工作汇报工作总结岗位竞聘公司简介发布会年会论文答辩

PPT推荐语文课件数学课件英语课件美术课件物理课件科学课件化学课件地理课件生物课件主题班会家长会绘本故事

节日PPT新年元旦节农历春节情人节元宵节三八妇女节愚人节清明节五一劳动节母亲节六一儿童节端午节

节日PPT 父亲节七夕情人节教师节中秋节国庆节重阳节万圣节光棍节感恩节平安夜圣诞节纪念日