软件工程第九讲-面向对象引论.pptx
第九章面向对象方法学引论9.1面向对象方法学引论9.2面向对象概念9.3面向对象建模9.4对象模型9.5动态模型9.6功能模型
目标了解面向对象概念掌握类及类的关联关系掌握用例及用例之间的关系
传统软件工程方法与面向对象方法重用性差开发周期长经常不能满足用户的需要很难维护开发效率低Conventionalmethods部分缓解了软件危机适用于中、小规模的项目开发Object-orientedMethodology20世纪60年代提出(Simula-67)20世纪70年代出现很多面向对象编程语言80年代形成了面向对象方法学,被广泛应用90年代成为首选的开发方法
面向对象方法学(Object-orientedMethodology,OOM)语言解空间对象汇编语言存储单元、寄存器面向过程的高级语言各种预定义类型的变量、数组、记录、文件等计算机系统求解问题的过程问题空间限定抽象、符号化机器求解现实世界问题解解空间
语义断层问题空间对象行为丰富复杂的算法解空间对象行为简单语义断层数据操作模拟“行为”静态属性动态行为解空间对象
OOM的特点尽可能模拟人类习惯的思维方式问题空间与求解空间在结构上尽可能一致以数据或信息为主线,把数据和处理结合构成统一体——对象软件系统:一系列离散的 集合程序一系列工作在数据上的函数集合CMOOM相互协作又彼此独立的对象的集合解空间对象
OOM的四要素对象(object)类(class):data+methods中国人类:对具有相同属性和行为的一个或多个对象的描述
OOM的四要素对象(object)类(class):data+methods继承(inheritance)消息通信(communicationwithmessages)CoadYourdon OOM=①+②+③+④
01+④=Object-based基于对象的方法02+④+②=Class-based基于类的方法03+④+②+③=Object-oriented面向对象方法相关方法
面向对象方法组成OOSD由三部分组成:OOA(Object-OrientedAnalysis)面向对象的分析OOD(Object-OrientedDesign)面向对象的设计OOP(Object-OrientedProgram)面向对象的程序设计OOA强调的是对一个系统中的对象特征和行为的定义。建立系统的三类模型。OOD与OOA密切配合顺序实现对现实世界的进一步建模。OOP是面向对象的技术中发展最快的,使用面向对象的程序设计语言,进行编码。
对象(Object)01类(Class)02实例(Instance)03消息(Message)04方法(Method)05属性(Attributes)06封装(Encapsulation)07继承(Inheritance)08多态性(Polymorphism)09重载(Overloading)109.2、面向对象的概念
1.对象(Object)fi……fnfi(X)S输出输出fi(X,S)gi(X,S)Sf1f2f3……
(1)对象的定义对象是具有相同状态的一组操作的集合对象是对问题域中某个东西的抽象对象是一台自动机输入fi,x输出fi(x,S)状态S 操作:f1,f2,…,fn状态转换函数:g1,g2,…,gn转换:新状态S=gi(x,S)
定义1 Object::=(Oid,DS,OS,MI)Oid 对象名称(标识)DS={d1,d2,…,dn} 数据结构集OS={o1,o2,…,om} 操作集MI={m1,m2,…,mk} 消息名称集
定义2Ojbect::=(id,RM,DS,CS,ds,B)01id 通讯地址,是定义1中Oid的具体化02RM 消息集ReqM+FinM03DS数据结构集04CS通信状态集idle+wait05ds 数据DS初始值06B 对象行为
01数据为中心02主动的03数据封装04并行性05模块独立性好(2)对象的特点
2.类(Class)属性颜色圆心半径方法(服务、操作)显示放大/缩小移动具有相同数据和相同操作的一组对象
3.实例(instance)姓名性别籍贯专业出生年月住址看书实验上课运动服务属性学生李杰男广东软件1980.49#楼129室看书实验上课运动王辉男湖南计算机控制1979.19#楼320室杨芳女北京系统结构1979.125#楼418室属性属性属性看书实验