软件详细设计原则:信息隐蔽、模块独立(高内聚、低耦合)。
内聚表示一个模块代码功能的集中程度,模块耦合度描述了模块之间相互关联的程度。
对于大多数的模块,编码时应把可读性放在第一位。影响软件可维护性最直接的因素是软件文档。
软件容错性的提高,有利于软件可靠性的提高。
计算机系统效率的提高,不利于提高系统的可移植性。
可重复性是指系统和(或者)其组成部分能在其他系统中重复使用的程度。
面向对象方法的基本思想:
①客观事物是由对象组成的,对象是在原事物基础上抽象的结果;
②对象是由属性和操作组成的,其属性反映了对象的数据信息特征,而操作则用来定
义改变对象属性状态的各种操作方式;
③对象之间的联系通过消息传递机制来实现,而消息传递的方式是通过消息传递模式和方法所定义的操作过程来完成的;
④对象可以按其属性来归类,借助类的层次结构,子类可以通过继承机制获得其父类的特性;
⑤对象具有封装的特性,一个对象就构成一个严格模块化的实体,在系统开发中可被共享和重复引用,达到软件(程序和模块)复用的目的。
面向对象开发方法主要有面向对象分析、面向对象设计和面向对象实现 3 个阶段。该方法在整个开发过程中使用的是同一套工具,整个开发过程实际上是对面向对象 3 种模型的建立、补充完善和表达验证。
类是现实世界中实体的形式化描述,类将该实体的数据和函数封装在一起。
类的数据也称为属性、状态或者特征,它表现类静态的一面。
类的函数也称为机制、操作或者服务,它表现类动态的一面。
类和对象的关系:
①每一个对象都是某一个类的实例;
②每一个类在某一时刻都有 0 或者更多的实例;
③类是生成对象的模板;
④类是静态的,它们的存在、语义和关系在程序执行前已经定义好了,对象是动态的,它们在程序执行时可以被创建和删除。
抽象是通过特定的实例抽取共同特征以后形成概念的过程。它强调主要特征,忽略次要特征。一个对象是现实世界中一个实体的抽象,一个类是一组对象的抽象,抽象是一种单一化的描述,它强调给出与应用相关的特性,抛弃不相关的特性。
封装是指将相关的概念组成一个单元,然后通过一个名称来引用它。它将数据和基于数据的操作封装成一个整体对象,对数据的访问或者修改只能通过对象对外提供的接口进行。
继承表示类之间的层次关系,使得某类对象可以沿用一类对象的特征和能力。继承可分为单继承和多继承,单继承是子类只从一个父类继承,而多继承中的子类可以从多于一个父类继承。Java 是单继承的语言,而 C++允许多继承。
多态性是一种方法,使得在多个类中可以定义同一个操作或者属性名,并在每个类中可以有不同的实现。它使得一个属性或者变量在不同时期可以表示不同类的对象。
接口就是对操作规范的说明,它只是说明操作应该做什么,而没有定义操作如何做。接口可以被理解为类的一个特例,它只规定实现此接口的类的操作方法,而将真正的实现细节交由实现该接口的类去完成。
消息是对象间的交互手段,对象之间通过消息执行有关操作。一个对象通过发送消息来请求另一个对象为其服务。消息是对象间通信的手段,一个消息通常包括接收对象名、调用的操作名和适当的参数。
组件是软件系统可替换的、物理的组成部分,它封装了实现体(实现某个职能),并提供了一组接口的实现方法。组件是一个封装的代码模块,也可将其理解为具有一定功能、能够独立工作或者同其他组件组合起来协调工作的对象。
为了使组件更切合实际、更有效地被复用,组件应当具备“可变性”。组件是类和接口的集合。一个组件(Component)包含了一些协作的类的集合。
在面向对象软件开发过程中,设计模式的采用是为了复用成功的设计和体系结构。
应用面向对象的软件开发方法进行分析和设计时,首先要定义好各种对象。
对象是类的一个实例。对象定义为系统中用来描述客观事物的一个实体。
对象是指一组属性及这组属性上的专用操作的封装体;对象由三部分组成:对象名、属性和操作(方法)。在 E-R 模型中,包含的基本成分是实体、属性、联系。
封装的基本单位是对象,封装的三大优点:①能减少耦合;②类内部能实现自由改变;③有一个更清楚的接口。
消息是对象间通信的手段,一个消息通常包括接收对象名、调用的操作名和适当的参数。
对象之间通过消息执行有关操作。一个对象通过发送消息来请求另一个对象为其服务。
类由三部分组成:类名、属性和操作(方法)。
类之间共享属性和操作的机制称为继承。
是否建立了丰富的类库,是衡量一个面向对象程序设计语言成熟与否的一个重要标志。
组件(构件)是一个功能相对独立的具有可重用价值的软件单元,其特点是可重用性。
在面向对象软件开发过程中,设计模式的采用是为了复用成功的设计和体系结构。
对象是类的一个实例。
类是一组具有相同属性和相同操作的对象的集合。
组件是类和接口的集合。一个组件(Component)包含了一些协作的类的集合。
所以组件>类>对象。
面向对象的主要特征包括对象的唯一性、封装性、继承性和多态性。
面向对象型的编程语言具有数据抽象、信息隐藏、消息传递的并发性等特征。
对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。
封装的目的是使对象的定义和实现分离。
继承性是面向对象程序设计语言不同于其他语言的主要特点。
继承是面向对象方法区别于其他方法的一个核心思想。
继承是在某个类的层次关联中,不同的类共享属性和操作的一种机制。
多态性的含义是同一消息在不同时刻可调用不同的方法。
多态性是指同一个操作作用于不同的对象时产生不同的执行结果。
数据隐藏指的是对象内部数据结构的不可访问性。
面向对象分析常用方法:①Coad/Yourdon 方法(1990 年提出的);②Booch 方法; ③OMT 方法;④OOSE(以用例代取数据流图);⑤UML(统一建模语言,UML 2.0 包含 14 种图)。
各省软考办 | ||||||||||