第三篇-第6章-面向对象的概念与模型课件

上传人:无*** 文档编号:241972977 上传时间:2024-08-08 格式:PPT 页数:40 大小:609KB
返回 下载 相关 举报
第三篇-第6章-面向对象的概念与模型课件_第1页
第1页 / 共40页
第三篇-第6章-面向对象的概念与模型课件_第2页
第2页 / 共40页
第三篇-第6章-面向对象的概念与模型课件_第3页
第3页 / 共40页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第三篇 面向对象方法学,(Object-Oriented Methodology),第六章 面向对象的概念与模型,第七章 面向对象的分析,第八章 面向对象的设计,第九章 面向对象的实现,第,6,章 面向对象的概念与模型,面向对象方法学概述,面向对象方法学的主要优点,面向对象的概念,面向对象建模,重点:,难点:,面向对象方法学,对象模型,动态模型,功能模型,6.1,面向对象方法学概述,一、传统方法学的缺点,1,、瀑布模型的缺点:僵化,瀑布模型要求:生命周期各阶段间遵守严格的顺序。,实际情况是:软件开发往往在反复实践中完成。,瀑布模型要求:预先定义并“冻结”软件需求。,实际情况是:某些系统的需求的一个逐渐明确的过程,且预先定义的需求到软件完成时可能已经过时。,本质上是功能分解,以实现功能的,过程,为中心,而用户的需求变化主要是针对,功能,的。这就使基于过程的设计,不易被理解,;且,功能,变化往往引起结构变化较大,,稳定性不好,。,系统有明确的边界定义,且系统结构依赖于系统边界的定义,这样的系统,不易扩充和修改,。,数据与操作分开处理,可能造成软构件对具体应用环境的依赖,,可重用性,(reusability),较差。,2,、,SA-SD-SP,技术的缺点:,杭 州,北 京,Post-office,Message,Send by method,对象,Object,Object,=,数据,Attribute,Attributes:,location;,employee;,+,操作,Method,Methods:,send;,sell;,注意:,Object,内部的,attributes,不允许外部用户直接改动,只有当它提供了相应的服务,method,时,,用户才能通过发送,message,来提请它执行。,我想把邮局搬到,我家门口,多加几个,邮递员,,24,小时都开门,对不起,,本邮局不提供,此类服务,唉,那就先送束花吧,Post_office.Send(request,payment),二、面向对象方法学,(OOM),例:,特点:尽可能模拟人类习惯的思维方式,即问题域与求解域在结构上尽可能一致。与传统方法相反,,OOM,以数据或信息为主线,把,数据和处理结合,构成统一体,对象。这时程序不再是一系列工作在数据上的函数集合,而是相互协作又彼此独立的,对象,的集合。,OOM,的四要素:,对象,(object),:,世界由,对象,组成。,类,(class),:,对象,可划分为,类,;单个对象可视为某一类的,实例,(instance),。,例,:,class Post_office ,private:,loc_type location;,emp_type,employee;,public:,void send(,req_type,request,money_type payment);,void sell(,int,goods,money_type payment);,;,main(),Post_office My_PO;,req_type,My_request;,money_type My_payment;,My_PO.Send(My_request,My_payment);,继承,(inheritance),:,类可分层,下层,子类,与上层,父类,有相同特征,称为,继承,。,消息,(message),:,对象间只能通过发送,消息,进行联系,外界不能处理,对象,的内部数据,只能通过,消息,请求它进行处理(如果它提供相应消息的话)。,OOM=Object+Class+Inheritance+Communication with messages,OOM,:以,object,为核心,强调对现实概念的模拟而不强调算法。“面向对象方法学的基本原则,是按照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统”。,Class,:,由特殊到一般的归纳,(induction),Inheritance,:,由一般到特殊的演绎,(deduction),6.2,面向对象方法学的主要,优点,传统方法:面向过程设计,以计算为核心,数据与操作分离,不易理解。,1,、,与人类习惯的思维方式一致,OOM,:以,object,模拟,实体,需求变化不会引起结构的整体变化,因为实体相对稳定,故系统也相应稳定。,传统方法:结构依赖于功能,不稳定。,2,、稳定性好,6.2,面向对象方法学的主要,优点,3,、可重用性好,传统方法:通过建立标准函数库来重用软构件。但标准函数缺少必要的“柔性”,难以适应不同场合的不同需要。,OOM,:,一个,class,所有的,instances,都可重用它的代码;由,inheritance,派,生出的新的,class,可重用其父类的代码,并且可以修改、扩充而不影响其父类的使用。,6.2,面向对象方法学的主要,优点,稳定性好:软件功能需求的变化不牵动全局,只需局部修改;,Class,独立性强:只要修改不涉及,class,的对外接口,则内部修改完全不影响外部调用;,Inheritance,和多态性,(polymorphism),使其很容易被修改和扩充;,容易理解;,传统方法:可维护性是最令人头痛的问题。,OOM,:,从以下几方面改善了可维护性,容易测试、调试。,4,、可维护性好,6.2,面向对象方法学的主要,优点,5,、较易开发大型软件产品,较,容易地把大型软件分解为独立的模块(对象),降低了开发难度和管理难度。,注:,OOM,并不是减少了开发时间,而是通过提高可重用性、可维护性,进行扩充和修改的容易程度等,从长远角度改进了软件的质量。,OOM,与,Prototyping,结合使用效果好。,6.2,面向对象方法学的主要,优点,晨晖历历经年事,山里老虎动地秋。岁晚朝班惊紫气,花残锦豹悯皇州,。,6.3,面向对象的基本概念,Object:=ID+Method+Attribute+Message,f1,f2,f3,fi,fn,fi(X),S,gi(X,S),S,输出,输出,一、对象,1,、对象的形象表示,2,、对象的定义,对象指的是一个独立的、异步的、并发的实体,它能“知道一些事情”(存储数据)、“做一些工作”(封装服务),并“与其它对象协同”(通过交换消息),从而完成(模块化)系统的所有功能。,3,、对象的特点:,以数据为中心,不设与数据无关的操作;,Object,主动处理而不 被动地等待被处理,外部只能通过,message,请求操作;,具有黑盒性:外部操作时,无须知道该,object,内部的数据结构及算法;,具有并行性:不同,object,各自独立地处理自身数据,彼此间仅通过传递,message,完成通信;,模块独立性好:内聚强(,)、耦合松(,),2,、,Instance,:,某个,class,描述的具体对象;,3,、,Message:=object_ID.method_ID(parameter(s),;,4,、,Method:object,能做的操作,亦称为,service,、,responsibility,在,class,中须定义相应的代码;,5,、,Attribute,:,object,的固有数据;,1,、,Class,:,具有相同数据和相同操作的一组对象;,二、其他概念,6,、,Encapsulation(,封装,),Class,中国人,中国人,Attributes,中国人,Methods,张山,(instance),Class,中国人,张三的,Attributes,Class,杭州人,(,子类,),杭州人,Attributes,杭州人,Methods,Class,中国人,李士,(instance),中国人李四的,Attributes,杭州人李四的,Attributes,Class,杭州人,例:,7,、,Inheritance,:,子类自动共享父类的,attributes,和,methods,,,而不必重复定义。,特点:,若杭州人的,methods,中有与中国人的同名,则李士执行该,method,时以杭州人为准,不执行中国人中定义的同名,method,。,3.,基本概念,传递性,(transitivity),:,A,B,、,BC,A,C,一个,class,继承,了上层全部,classes,的一切性质。,一个子类只 有 一 个父类称为单 继 承,(single inheritance),一个子类可有多个父类称为多重继承(,multiple inheritance).,修改与扩充可以很容易地通过派生子类来完成。,3.,基本概念,8,、,Polymorphism,:,不同层次的,classes,可共享一个,method,名,但按各自的方式来实现这种,method,。,C+,中定义了虚函数,(virtual function),来实现这一功能。即一个,method,有多个版本,运行时才决定执行哪一个。故亦称为,动态联编,(dynamic binding),或,滞后联编,(late binding),9,、,Overloading,Function(or parameter)overloading:,不同函数共用一个名字,而调用参数的特征不同。,例:,double avg(const,double,a,int,size);,double avg(const,int,a,int,size);,double avg(const,double,a,int size);,double sum=0.0;,for(,int,i=0;i size;+i),sum+=ai;,return(sum/size);,double avg(const,int,a,int size);,int sum=0;,for(,int,i=0;i size;+i),sum+=ai;,return(double)sum/size);,main(),int,k3=1,2,3 ;,double x3=1.1,2.2,3.3 ;,cout,avg(k,3)“,int,average n”;,cout,avg(x,3)“double average n”;,Operator overloading:,同一运算符,(operator),作用于不同类型的操作数,(operand),上面。,3.,基本概念,在编译,(compile),阶段就决定了使用类型及执行代码,故意亦称为静态联编,(static binding),或先前联编,(early binding),。,6.4.Object Modeling Technique(OMT),建立三种模型:,描述系统数据结构的对象模型,(object model).,描述系统控制结构的动态模型,(dynamic model).,描述系统功能的功能模型,(function model).,6.5,Object Model,(对象模型),三个模型中最关键的一个模型,它的作用是,描述系统的静态结构,,包括,构成系统的类和对象,,,它们的属性和操作,,及,它们之间的关系,。,图形符号有:,Class Name,Attributes,Methods,Class,Class Name,Attributes,Methods,Class-&-Object,表示属于该类,的对象,父 类,子,类,1,子 类,2,Inductive relation,(,归纳关系,),注:子类,is_a,父类;一般与特殊关系;是,class,间的关系,直线端点进入虚框。,整 体,部分,1,部分,2,Combinative relation(,组合关系,/,聚合关系,),注:整体与部分的关系,是,object,间的关系,有传递性。,1,m,0,n,4.OMT,Correlative relation:(,关联关系,),是,object,间的关系,,教 师,书,1+,一对多,文 件,用 户,1+,1+,访问权限,链属性,1+,目 录,文 件,文件名,限 定,发送者,接收者,发送消息以调用,4.OMT,状态图,事件,(event),:,引发,object,状态改变的控制信息(瞬时)。,状态,(status):,即,object,的,attributes,所处的情形(可持续)。,行为,(action):Object,要达到某种,status,所做的操作(耗时)。,6.6 Dynamic Model(,动态模型,表示系统瞬时的控制性质,),表示方法:,Event 0,Status 1,do:Action 1,Status 2,do:Action 2,Event 1,Event 2,Start,End,Condition 1,闲 置,拨 号,通 话,断 线,拨号音,do:,响拨号音,超 时,do:,响蜂鸣音,存储的信息,do:,播放信息,接通中,do:,试接通,振 铃,do:,振 铃,忙 音,do:,响忙音,拿起听筒,数字,数字,有效号码,已接通,受话人回话,受话人挂断电话,挂断电话,超 时,挂断电话,超时,无效号码,信息播完,占 线,例:电话的 状态图,事件追踪图,事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景,”。,场景也叫做脚本,是完成系统某个功能的一个事件序列。,场景通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件,它可以包括发生在这个期间的系统所有的内部事件。,打,打,电,电,话,话,者,者,拿,拿,起,起,电,电,话,话,受,受,话,话,器,器,电,电,话,话,忙,忙,音,音,开,开,始,始,打,打,电,电,话,话,者,者,拨,拨,数,数,字,字,(,(,8,8,),),电,电,话,话,忙,忙,音,音,结,结,束,束,打,打,电,电,话,话,者,者,拨,拨,数,数,字,字,(,(,2,2,),),.,.,.,.,.,.,.,.,.,.,.,.,.,.,打,打,电,电,话,话,者,者,拨,拨,数,数,字,字,(,(,3,3,),),接,接,电,电,话,话,者,者,的,的,电,电,话,话,开,开,始,始,振,振,铃,铃,铃,铃,声,声,在,在,打,打,电,电,话,话,者,者,的,的,电,电,话,话,上,上,传,传,出,出,接,接,电,电,话,话,者,者,回,回,答,答,接,接,电,电,话,话,者,者,的,的,电,电,话,话,停,停,止,止,振,振,铃,铃,铃,铃,声,声,在,在,打,打,电,电,话,话,者,者,的,的,电,电,话,话,中,中,消,消,失,失,通,通,电,电,话,话,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,状态图与事件追踪图的关系,状态图叙述一个对象的个体行为,事件追踪图则给出多个对象所表现出来的集体行为,。它们从不同侧面来说明同一系统的行为。,例如,一个事件追踪图指出某一对象在接受一个事件之后发出另一事件,同一行为在此对象的状态图中也应当有所表示。,6.7 Function Model,(,功能模型,),功能模型表明,,通过计算,,,从输入数据能得到什么样的输出数据,,,不考虑参加计算的数据按什么时序执行,。,功能模型,由多个数据流图组成,,它们指明从外部输入,通过操作和内部存储,直到外部输出,这整个的数据流情况。,功能模型中所有的,数据流图,往往形成一 个,层次结构,。,业务数据流程图,功能模型定义“,做什么,”,动态模型定义“,何时做,”,对象模型定义“,对谁做,”,三种模型之间的关系,课后分析,通过对比传统方法学和面向对象方法学的优缺点,引入面向对象方法学的基本概念和特点,并且向同学们重点介绍了面向对象建模原理,为后续课程奠定良好的基础。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!