软件工程导论复习之面向对象方法学

1. 面向对象方法学的要点和优点

要点:

①认为客现世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合面成。面向对象方法用对象分解取代了传统方法的功能分解。

②把所有对象都划分成各种对象类,每个类都定义了一组数据和一组方法。

③按照子类(或称为源生类)与父类(或称为基类)的关系.把若干个对象类组成一个层次结构的系统(也称为类等级)。

④对象彼此之间仅能通过传递消息互相联系。

优点:

①与人类习惯的思维方法一致

②稳定性好

③可重用性好

④较易开发大型软件产品

⑤可维护性好

2. 面向对象的基本概念

  1. 对象:对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。
  2. 类:类是对具有相同属性和行为的一个或多个对象的描述。
  3. 实例:某个特定的类所描述的一个具体的对象
  4. 消息:要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明
  5. 方法:对象所能执行的操作,也就是类中所定义的服务
  6. 属性:类中所定义的数据,对客观世界实体所具有的性质的抽象
  7. 封装:使用一个对象时,只需知道它向外界提供的接口形式,无需知道内部细节
  8. 继承:是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系
  9. 多态:指相同的操作或函数过程可以作用于多种类型的对象上并获得不同的结果
  10. 重载:函数重载指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;运算符重载指同一个运算符可以施加于不同类型的操作数上面   

 3. 类图

 通常,使用UML提供的类图来建立对象模型。类图描述类与类之间的静态关系,它是创建其他UML的基础,一个系统可以由多张类图表示,一个类也可以出现在几张类图中

(1)类的组成

①类名:具有描述性,简洁的无二义性的

②属性:描述了类在软件系统中代表的事物(即对象)所具备的特性,类可以有任意数目的属性,也可以没有属性,在 UML 中类属性的语法为:

可见性 属性名:类型=初值

··可见性有:公有(Public) “+” 所有类可见;私有(Private)“-” 该类及子孙可见;

受保护(Protected)“#”只对该类本身可见;若未申明则表示尚未定义

··属性名由描述所属类特性的名词或名词短语组成,除第一个单词外其余单词首字母要大写

··属性的类型:简单类型,整型,浮点型,布尔型,……系统中的其他自定义类

··属性的初值:保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性

③操作:对类的对象所能做的事务的抽象,一个类可以有任意数量的操作或者根本没有操作
返回类型、名称和参数一起被称为操作签名,在 UML 中,类操作的语法为:

可见性 操作名(参数表):返回值类型

··操作的可见性与属性相同

··操作名:用来描述所属类的行为的动词或动词短语。命名规则与属性相同

··参数表 :一些按顺序排列的属性定义了操作的输入是可选的,即操作不一定必须有参数才行,语法为“参数名:类型=默认值”(当未提供实际参数时使用默认值)

··返回类型:是可选的,即操作不一定必须有返回类型

 (2)类之间的关系

①关联:表示两个类的对象存在某种语义上的联系,例如学生使用电脑,在类图中就有:

直线两端的重数表示该类有多少个对象与对方的一个对象连接

②聚集:聚集是关联的特例,表示类与类之间的关系是整体与部分的关系。

··共享聚集:处于部分方的对象可同时参与多个处于整体方对象的构成,比如一个项目组由多个组员构成,每个组员也可以是其他项目组的成员

 ··组合聚集:部分与整体共存,整体不存在了则部分也会随之消失,例如一个窗口由文本框等组成,当窗口关闭各个组成部分也随之消失

 ③泛化(继承):通用元素和具体元素之间的一种分类关系

 ④依赖:描述两个模型元素之间的语义关系,若A独立,B不独立,B依赖于A,则A发生变化时B受影响,例如动物喝水

 ⑤细化:当对同一件事物在不同抽象层次上描述时,这些描述之间具有细化关系,例如A和B描述同一件事物,B是在A的基础上更详细的描述,则称B细化了A,或A细化成了B

 4. 用例图

 一个用例图包含的模型元素有系统、用例、行为者及用例之间的关系

  1. 系统:看作是一个提供用例的黑盒子,用一个方框表示。内部的工作实现对建立用例模型来说都是不重要的。
  2. 行为者:与系统交互的人或其他系统,代表外部实体
  3. 用例:可以被行为者感受到的、系统的一个完整的功能。UML中把用例定义成系统完成的一系列动作。用例的特征:代表可见的功能,实现某种目标;被行为者启动;必须完整
  4. 用例间关系: ①扩展关系:向一个用例中添加一些动作后构成了另一个用例,后者继承前者的一些行为,通常把后者称为扩展用例        ②使用关系:一个用例使用另一个用例

5. 面向对象技术建立的3种模型

用面向对象方法开发软件,通常需要建立3种形式的模型,分别是描述系统数据结构的对象模型描述系统控制结构的动态模型描述系统功能的功能模型。

对象模型:表示静态的,结构化的系统的“数据”性质。它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。对象模型是始终都是最重要、最基本的,为其他两种模型奠定了基础

动态模型:表示瞬时的、行为化的系统的“控制”性质。它规定了对象模型中的对象的合法变化序列

功能模型:表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映用户对目标系统的需求。

猜你喜欢

转载自blog.csdn.net/weixin_46516647/article/details/124989008