软件工程教案5(第三章).ppt
《软件工程教案5(第三章).ppt》由会员分享,可在线阅读,更多相关《软件工程教案5(第三章).ppt(129页珍藏版)》请在三一办公上搜索。
1、3.4 分析建摸方法,结构化分析(传统建模方法)面向对象分析,计算机世界,现实世界,影射,计算机世界,现实世界,结构化开发方法,结构化分析,结构化设计,结构化编程,OOA,OOD,OOP,面向对象开发方法,3.4.2 面向对象分析方法,思考题软件开发中为什么要使用面向对象 方法?面向对象分析方法与结构化分析方 法有哪些相似之处?有何区别?面向对象方法是对过去的一个完全 突破,还是“换汤不换药”?,对象(object),现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。对象具有的含义:在现实世界中:是客观世界中的一个实体 在面向对象程序中:表达成计算机可理解、可操纵、具有一 定属性和
2、行为的对象 在计算机世界中:是一个可标识的存储区域,面向对象方法是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。,面向对象=对象+类+继承+消息通信,面向对象的主要特征:封闭性(Encapsulation)继承性(Inheritance)多态性(Polymorphism),类(class),具有共同属性和行为的对象的抽象类与对象的关系类是对象的抽象对象是类的实例,类,对象,对象、实体与类,对象,实体,类,抽象数据类,计算机世界,现实世界,计算机逻辑的实现,影射,抽象,实例化,抽象,概念世界,封装,封装是软件开发方法的重要原则,有两个涵义:把对象的全部属性和
3、全部服务结合在一起,形成一个不可分割的独立单位(对象)。尽可能隐蔽对象的内部细节(信息隐蔽),传统方法数据与过程是分离的,过程1,输入,输出,过程2,过程3,数据实体,属于该对象的数据,对象,处理数据的方法,消息,消息,对象把数据和处理数据的方法封状成一个单元,传统方法和面向对象方法的比较,传统方法系统是过程的集合过程与数据实体交互过程接受输入并产生输出,面向对象方法系统是交互对象的集合对象与人或其它对象交互对象发送与响应消息,继承(继承性inheritance),继承性是父类和子类之间共享数据和方法的机制继承性具有传递性继承性包括单继承和多重继承,子类,继承部分,增加部分,父类,共性部分,继
4、承性作用,使软件系统具有开放性 更好地进行抽象与分类 增强代码的重用率,多态(多态性polymorphism),不同的对象收到同一消息可产生完全 不同的结果,这一现象叫做多态多态的效果 用户发送一个通用的消息,而实现的细节则由接收对象自行决定,多态性的作用,增强了操作的透明性,可理解性和可扩展性 增强了软件的灵活性和重用性,消息(message),消息 对象之间相互请求或相互协作的途径,是要求某个对象执行某个功能操作的规格说明消息内容 通常包含接收方及请求接收方完成的功能信息发送方 发出消息,请求接收方响应接收方 收到消息后,经过解释,激活方法,予以响应,为什么对面向对象方法感兴趣?,面向对象
5、方法的主要优点:自然性 追求软件系统对现实系统的直接模拟,尽量实现将现实世界中的事物直接映射到软件系统的解空间中。软件复用 可复用性(可重用性)reusebility可扩展性可管理性,可复用性(可重用性)面向对象技术允许复用的不仅仅是代码,通过面向对象技术,我们可以复用需求、分析、设计、测试计划、用户界面以及体系结构等等,事实上,软件工程生存期中的每个部分都可以复用。,传统系统分析:面向功能,把系统看成 一组功能OOA:把问题当作一组相互作用 的实体,并确定实体间关系,面向对象技术是一个有全新概念的开发模式,其特点是:(1)方法是对软件开发过程所有阶段进 行综合考虑而得到的;(2)从生存期的一
6、个阶段到下一个阶段 所使用的方法与技术具有高度的连 续性;(3)将OOA、OOD、OOP集成到生存 期的相应阶段.,开发方法的组合,OO方法的开发过程,OO方法改进了在生存期各个阶段间的界面,因为生存期各个阶段开发出来的“部件”都是类,在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设计和实现的基本单元。,类的生存期模型,类的规格说明,从废弃型开发,既存类的复用,渐增式的实现,渐增式的测试,求精和 维护,测试用例和测试 的开发,实现,从既存类演变,类的设计与实现,类的规格说明指导对存放现存类的软件库进行查找现存类提供当前应用所需功能三种可能利用现存类的方向:现存类的复用 从现存类
7、进行演变 从废弃类进行开发,对象之间的联系与对象模型,面向对象方法开发软件通常建立的三种形式的模型 描述系统数据结构的对象模型 描述系统控制结构的动态模型 描述系统功能的功能模型 三种模型从三个不同但由密切相关的角度模拟目标系统。对象模型是最重要、最基本、最核心的。,对象模型 对象模型表示静态的、结构的系统数据的性质。对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构。OO方法强调围绕对象而不是功能来构造系统。,类及对象间常见的联系 分类关系(归纳关系、一般与特殊的关系)组成关系(组合关系、整体/部分的关系)对象属性之间的静态的联系 对象行为的动态联系,分类关系(一般与
8、特殊的关系)示例,学生,本科生,研究生,组成关系(整体与部分的关系)示例,学科部,办公室,学院,实验室,对象模型中表现上述联系的结构和连接,(1)分类结构(一般/特殊结构)分类是对象抽象的基础 分类结构表现的是事物的一般与特殊的关系,即“is-a”关系。面向对象术语中常把一般与特殊的关系称为泛化(Generalization)与特化(Specialization)联系,存户,一般/特殊结构举例,一般类(父类、基类、超类),特殊类(子类、具体类),继承,一个特殊类中的所有对象可继承一般类中的属性、服务、关系,账号姓名余额,存款取款,支票存户,储蓄存户,利息率,(2)组装结构(整体/部分结构)组装
9、结构表示对象类之间的组成关系,即整体与部分的关系。整体对于部分是“has-a”关系。(部分对于整体是“a-part-of”关系)组装结构体现了面向对象方法的 聚合(也叫聚集 Aggregation)原则。,整体/部分结构表示法举例,微机,1+,电源,主机箱,键盘,监视器,鼠标,内存,CPU,硬盘,o,(3)实例连接(Instance Connection)实例连接表现了对象之间的静态联系,通过对象的属性来表现对象之间的依赖关系。面向对象术语中把对象之间的实例连接称为链接(Link),把类之间的实例连接称为关联(Association),实例连接示例及表示,教师,指导论文0,m 1,学生,教师为
10、学生指导论文:,教师,教学0,m 0,n,学生,教师为学生授课:,关联关系(链属性)的表示 允许实例连接带有一组属性,这些属性通过关联来描述,类 1,连接名称m n,类 1,连接属性,关联关系(链属性),为之工作,工资职务,雇主,雇员,个人名字身份证号,公司名字地址,题目答辩时间成绩,教师,学生,指导论文0,m 1,(4)消息连接(Message Connection)对象之间的通信联系。一需要另一个对象的服务,便向它发出个对象请求服务的消息,接收消息的对象响应消息,触发所要求的服务操作。消息连接体现了对象行为的动态联系。,一家公司的对象模型(OMT)示例,为之工作,管理 0,1,姓名身份证号
11、码地址,员工,名字电话号码主要产品地址,公司,职务,雇用解雇,项目名预算优先级,项目,产品名成本重量,产品,工人,经理,部门,部门名,主持,参加,1+,1+,1+,1+,1+,生产,网上商店对象模型(部分)示例(UML),销售代表 0.1,定货,nameaddress,顾客,creditRating():String,产品,雇员,1,dataReceivedisPrepaidnumber:Stringprice:Money,协作顾客,contactNamecreditRatingcreditLimit,creditCard#,个人顾客,creditRating()=“poor”,定货作业线,d
12、ispatch()close(),remind()billForMonth(),Quantity:Integerprice:MoneyisSatisfied:Boolean,1,*,*,*,*,1,物品,面向对象的方法论 方法论是如何对复杂系统进行“抽象”的工作,以及如何建立抽象模型。,二.面向对象分析建模(OOA)面向对象分析方法确实不同于结构化分析方法吗?Fichman,R.G and C.F.Kemerer,在“Object-oriented Conventional Analysis and Design Methodologies”中阐述:我们的结论是面向对象分析方法表现了相对面向过
13、程的方法学(如结构化分析)的根本性变化,而且相对面向数据的方法学仅仅是增量性的变化。面向过程的方法学在建模过程中的关注点不是对象的内在性质,从而导致了和面向对象的三个基本原理相正交的问题域模型。,面向对象分析方法使得软件工程师能够通过对象、属性和操作(作为主要的建模成分)的表示来对问题建模。,建立分析模型5个基本原则:(1)建模信息域;(2)描述模块功能;(3)表示模型行为;(4)分解以模型显示更多细节;(5)早期模型表示问题的本质,而后期 模型提供实现细节。,OOA的意图是定义所有和被求解的问题相关的类(及同类关联的关系和行为),为了达到这个目标,必须完成以下任务:(1)必须在客户和软件工程
14、师之间沟 通了解基本的用户需求;(2)必须标识类(定义属性和方法);(3)必须刻划类层次;(4)表示对象对象关系(对象连接);(5)必须建模对象行为;(6)任务(1)到(5)递进地反复使用,直至 完成建模,流行的几种面向对象方法:Booch方法Coad-Yourdon方法Rumbaugh 方法(简称OMT)(Object Modeling Technology)Jacobson 方法(简称OOSE)由Rumbaugh、Booch、Jacobson 提出的统一建模语言(Unify Modeing Language简称UML),目前流行的OOA方法概述Coad-Yourdon方法Coad-Your
15、don的OOA过程概述:使用“寻找什么”标准来标识对象定义一般/特殊结构定义整体/部分结构标识主题(子系统构件的表示)定义属性定义服务,目前流行的OOA方法概述Booch方法Booch的OOA宏观开发过程概述:标识类和对象标识类和对象的语义标识类和对象间的关系进行精化,目前流行的OOA方法概述Rumbaugh方法(简称OMT)Rumbaugh的OOA过程概述:开发对问题的范围陈述建造对象模型开发动态模型构造系统的功能模型,不同面向对象分析方法的相似步骤:(1)使用基本需求作为指南选择类 和对象;(2)为对象标识属性和操作;(3)定义组织类的结构和层次;(4)建造对象-关系模型的;(5)建造对象
16、-行为模型。,统一的OOA方法 由Rumbaugh、Booch、Jacobson 提出的统一建模语言(Unify Modeing Language简称UML),UML是一种定义良好,易于表达,功能强大且普遍实用的建模语言。,UML的开发历程,Booch91,其它方法,OMT-1,OOSE,Booch93,OMT-2,UML 0.8,UML 0.9&0.91,UML 1.0,UML 1.1,UML同行专家意见,OMG认证,10/95,10/96&9/96,OMG审核,1/97,OMG修正,9/97,OMG采用,11/97,UML 1.3,对象模型技术(OMT,Object Model Tech.
17、),对象模型,动态模型,功能模型,基本模型:,三个模型分别从不同角度分析系统,分析模型对象模型:描述静态结构,定义做 事情的实体功能模型:描述处理(数据变换),指明系统应“做什么”动态模型:描述交互过程,规定什么 时候做,OMT模型系统分析和设计过程概观图,产生需求,结构及对象设计,建立模型,问题描述,对象模型、动态模型、功能模型,详细的对象模型详细的动态模型详细的功能模型,分析阶段,设计阶段,实例:饮料自动售货机系统设置 一个饮料自动售货机可以放置五种不同或部分相同的饮料,可由厂商根据销售状况自动调配,并可随时重新设置售价,但售货机最多仅能放置50罐饮料,其按钮设计在各种饮料样本的下方,若经
18、金额计算器累计金额足够,则选择键灯会亮;若某一种饮料已销售完毕,则售完灯会亮。销售 顾客将硬币投入售货机,经累加金额足额的饮料选择键灯亮,等顾客按键选择。顾客按键后饮料由取物楼掉出,并自动结算及找钱。取消交易 顾客可在按下选择键前任何一个时刻,拉动退币杆取消交易收回硬币。,步骤:(1)找出对象及其关联(2)赋予类及关联的属性数据(3)组织类的结构,OMT的对象图,找出饮料自动售货机系统中的对象设置 一个饮料自动售货机可以放置五种不同或部分相同的饮料,可由厂商根据销售状况自动调配,并可随时重新设置售价,但售货机最多仅能放置50罐饮料,其按钮设计在各种饮料样本的下方,若经金额计算器累计金额足够,则
19、选择键灯会亮;若某一种饮料已销售完毕,则售完灯会亮。销售 顾客将硬币投入售货机,经累加金额足额的饮料选择键灯亮,等顾客按键选择。顾客按键后饮料由取物楼掉出,并自动结算及找钱。取消交易 顾客可在按下选择键前任何一个时刻,拉动退币杆取消交易收回硬币。,对象模型 描述系统内部对象结构,包括对象本身的定义、对象的属性、操作,以及对象与其它对象之间的关系。对象模型是OMT方法论中最重要的部分,动态模型、功能模型都将依次而建立 对象模型以对象图形式呈现,对象图由类构成。,饮料自动售货机系统对象图,贩卖机,饮料号码价格,投币-接受饮料掉出金额显示按纽退币杆售完显示,存量计算器,饮料号码存量,递减售完显示重置
20、,选择钮,选择钮状态,灯亮灯熄售完灯亮按钮,顾客,姓名硬币,投币-置入拿取饮料,退币杆,退币杆状态,拉动,金额计算器,金额,累加找零重置,购买,选取,被拉动,属于,属于,属于,属于,建立数据字典 为所有模型实体准备一个数据字典,精确描述每一个对象类,包括:成员 约束 关联、属性、操作,动态模型 用来描述系统与时间相关的动态行为即系统的控制逻辑,表现对象彼此间经过相互作用后,随时间改变的不同运算顺序。动态模型以“事件”(Events)和“状态”(States)为其模型的主要概念。动态模型以状态图形式呈现,,事件:瞬时发生的行为;引起对象状态转换的控制信息。事件类和属性举例:飞机起飞(航线、航班号
21、、城市)按动鼠标按钮(按钮、位置).,脚本和事件踪迹 脚本是系统某一次特定运行时期内发生的事件序列。(脚本也叫场景)事件追踪图 侧重说明发生于系统执行过程中的一 个特 定“场景(scenarios)”。,通话脚本(只包括影响电话线的事件),17.打电话者挂断电话,16.电话切断,15.接电话者挂断电话,14.通电话,12.接电话者电话停止振铃,13.铃声在打电话者电话中消失,11.接电话者回答,10.铃声在打电话者电话传出,9.接电话者的电话开始振铃,8.打电话者拨数字(3),7.打电话者拨数字(7),6.打电话者拨数字(3),5.打电话者拨数字(2),4.电话忙音结束,3.打电话者拨数字(8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 教案 第三
链接地址:https://www.31ppt.com/p-6610883.html