面向对象设计

面向对象

面相对象基本概念

针对系统开发来讲的概念:

基本思想:对问题领域进行自然分割,以更接近人类思维方式建立问题领域的模型,以便对客观的信息实体进行结构和行为的模拟,从而使设计的软件更加直接地表现问题的求解过程。

对象

  • 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成。
  • 每个对象都存在一定的状态state、内部标识identity。可以给对象定义一组操作(opertation),对象功过其运算所展示的特定行为称为对象行为behavior;对象本身的性质称为属性(attribute);对象将他自身的属性及运算包装起来称为封装(encapsulation);因此对象是一个封装数据属性和操作行为的实体。
  • 数据描述对象状态,操作可操纵对象私有数据,改变对象状态。
  • 当其他对象向该对象发送消息,该对象响应时,其操作才得以实现。对象内的操作也叫方法。

  • 类,又称对象类(Object Class),是一组具有相同数据结构和相同操作的对象集合。类是对象的模板,在一个类中每一个对象都是他的实例(Instance)。类具有属性,用数据结构来描述类的属性;类具有操作,他是对象行为的抽象。

  • 由于对象是类的实例,在进行系统分析和设计时,通常把注意力集中在类上,而不是具体的对象。

类之间的关系

消息

  • 消息指对象之间在交互中所传递的通信信息,消息使对象之间互相联系,协同工作,实现系统的各种服务。

  • 消息传递:通常一个对象向另一个对象发送信息请求某项服务,接受对象响应该消息,激发所要求的服务操作,并将操作结果返回给请求服务的对象,这种通信机制叫做消息传递

面向对象的三大基本特性

封装

  • 是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。

继承

  • 继承(Inheritance)以现存的定义作为基础,建立新定义的技术,是子类和父类之间共享数据结构和方法的机制。

多态性

  • 是指在父类中定义的属性或服务被子类继承后,可以具有不同的数据类型或表现出不同的行为。

面相对象建模工具

  • 软件建模必要性:软件所具有的复杂性,以及人们对复杂问题理解的局限性,在软件开发过程中使用共同的建模语言进行软件建模是十分必要的,特别是对于大型复杂系统而言。

  • 统一建模语言UML:是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言。

面相对象软件开发组成

面向对象分析(OOA):就是运用面向对象的方法进行需求分析,其主要任务是分析和理解问题域,找出描述问题域和系统责任所需的类及对象,分析他们的内部构成和外部关系,建立OOA模型。

面向对象设计(OOD):就是根据已建立的分析模型,运用面向对象技术进行系统软件设计。它将OOA模型直接变成OOD模型,并补充一些与实现有关的部分,如人机界面、数据存储、任务管理等。

面向对象编程(OOP):用面向对象的编程语言将OOD模型中的各个成分写成程序。

面向对象测试(OOT):对于运用OO技术开发的软件,在测试过程中继续运用OO技术进行以对象概念为中心的软件测试,以类作为基本测试单位。

面向对象维护(OOSM)

面向对象分析OOA

在需求获取阶段:开发人员关注理解用户自己他们的使用要求;

在需求分析阶段:开发人员关注于理解系统需要构建的内容,其核心是产生一个准确的、完整的一致的和可验证的系统模型,称为分析模型。

在面向对象分析阶段,需要着重考虑的是系统做什么。以下为分析模型:

  • 功能模型:从用户的角度描述了系统的功能,由用例和场景表示;

  • 分析对象模型:描述了系统对象之间的交互行为,由状态图和顺序图表示;

  • 动态模型:描述了系统对象之间的交互行为,由状态图和顺序图表示。

分析类:是概念层次上的内容,用于描述系统中较高层次的对象。从软件的功能需求来看分为:

  • 实体类:表示系统存储和管理的永久信息。用于描述必须存储的信息及其相关行为,它是对系统依赖于外部环境的部分进行建模,较好地屏蔽了外界变化对系统的影响。包括用户界面系统接口和设备接口。

  • 边界类:表示参与者与系统之间的交互。用于外部参与者与系统之间的交互,它是对系统依赖于外部环境的部分进行建模,较好地屏蔽了外界变化对系统的影响。

  • 控制类:表示系统在运行过程中的业务控制逻辑。用于描述一个用例所具有的事件流控制行为,它本身并不处理具体的任务,而是调度其他类完成具体的任务。

分析活动:理解用例模型,识别分析类,定义交互行为,建立分析类图,评审分析模型。需求分析的重点在于理解系统本身,它将需求获取阶段产生的用例和场景转换成分析模型。

面向对象设计OOD

而在设计阶段,将集中研究系统的软件实现问题,包括体系结构设计、详细设计、用户界面设计和数据库设计等。

OOD是OO的核心,OO方法使用喷泉模型。

面向对象设计准则:抽象 信息隐蔽 弱耦合 强内聚 可重用

面向对象设计的基本任务:

  • 系统设计
    • 将分析模型中紧密相关的类划分为若干子系统,子系统应该具有良好的接口,子系统种的类相互协作
    • 标识问题的并发性,将各个子系统分配给处理器,建立子系统之间的通信
    • 大多数系统OOD逻辑为,问题域子系统、人机交互子系统、任务管理子系统和数据管理子系统四个部分
  • 对象设计(详细设计)
    • 详细设计:细化原有的分析对象,确定一些新的对象、对每一个子系统接口和类进行准确详细的说明。
    • 对每个类的属性和操作进行详细设计,包括属性和操作的数据结构、实现算法以及类之间的关联。
    • 在进行对象设计的同时还要进行消息设计,即设计类与其写作者之间的消息规约
  • 设计优化:主要涉及提高效率的技术和建立良好的继承结构的方法。

面向对象设计OOP

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值