软件工程——第9章面向对象方法学引论知识点整理

本专栏是博主个人笔记,主要目的是利用碎片化的时间来记忆软工知识点,特此声明!

文章目录

1.当前最好的软件开发技术是?

2.面向对象的原则是什么?

3.人们把客观世界中的实体抽象为什么?

4.软件系统本质上是?

5.面向对象方法学的优点?

6.对象的定义是什么?

7.对象的特点有哪些?

8.类的定义是什么?

9.实例是什么?

10.属性是什么?

11.封装是什么?

12.继承是什么?

13.重载和重写的区别有哪些?

14.使用面向对象方法开发软件时,通常需要建立哪三种模型?哪种模型最重要?

15.对象模型的作用?

16.使用什么方法来建立对象模型?

17.类与类之间的关系有哪些?各自定义是什么?

18.聚集(聚合)和泛化的区别?

 19.聚合和组合的主要区别?

20.状态图的作用?

21.功能模型的作用?通常其由什么组成?

22.一幅用例图包含的模型元素有哪些?

23.用例图中的用例是什么?

24.用例图中的行为者是什么?

25.用例图中的用例之间的关系有?

26.对象模型、动态模型、功能模型三者之间的关系是?

章末小结


1.当前最好的软件开发技术是?

面向对象技术

2.面向对象的原则是什么?

原则是使描述问题的问题域与实现解法的求解域在结构上尽可能一致

3.人们把客观世界中的实体抽象为什么?

人们把客观世界中的实体抽象为问题域中的对象

4.软件系统本质上是?

软件系统本质上是信息处理系统

5.面向对象方法学的优点?

  1. 与人类习惯的思维方法一致
  2. 稳定性好
  3. 可重用性好
  4. 较容易开发出大型软件产品
  5. 可维护性好

6.对象的定义是什么?

对象是具有相同状态的一组操作的集合,对象是对属性值和操作封装

7.对象的特点有哪些?

  1. 以数据为中心
  2. 对象是主动的
  3. 实现了数据的封装
  4. 本质上具有并行性
  5. 模块独立性好

8.类的定义是什么?

类就是对具有相同数据和相同操作的一组相似对象的定义

9.实例是什么?

实例就是由某个特定的类所描述的一个具体的对象的定义

10.属性是什么?

属性就是类中所定义的数据

11.封装是什么?

封装也就是信息隐藏,通过封装对外界隐藏了对象的实现细节

12.继承是什么?

继承是指能够直接获得已有的性质和特征,而不必重复定义他们

13.重载和重写的区别有哪些?

重载特点:

  1. 重载是在编译器通过方法中形参的静态类型确定调用方法版本的过程。
  2. 重载是多态在编译期的表现形式。
  3. 判定条件:方法名一致且形参列表不同

重写特点:

  1. 重写在方法运行时,通过调用者的实际类型来确定调用的方法版本。
  2. 重写只发生在可见的实例方法

重写满足一个规则:两同两小一大

  1. 两同:方法名和形参列表相同
  2. 两小:重写方法的返回值(引用类型)和抛出异常,要和被重写方法的返回值引用类型)和抛出异常相同或者是其子类
  3. 一大:重写方法的访问修饰符大于等于被重写方法的访问修饰符

【注】:重载和重写都是多态的一种表现形式

14.使用面向对象方法开发软件时,通常需要建立哪三种模型?哪种模型最重要?

通常需要建立对象模型、动态模型、功能模型

其中,对象模型始终都是最重要、最基本、最核心的

15.对象模型的作用?

对象模型描述静态的、结构化的系统数据,其为建立动态模型和功能模型提供了实质性框架

16.使用什么方法来建立对象模型?

UML中的类图

17.类与类之间的关系有哪些?各自定义是什么?

关联:关联表示两个类的对象之间存在某种语义上的联系

泛化(继承):就是继承关系

依赖:一个类使用另一个类的对象作为操作的参数,一个类使用另一个类的对象作为它的数据成员

细化:对同一个事物在不同抽象层次上的描述

18.聚集(聚合)和泛化的区别?

  • 聚集(聚合)是关联的特例。泛化若通用元素消失则具体元素也消失,而聚集则是通用元素消失而具体元素还存在
  • 聚合逻辑上是has a ,泛化逻辑上是is a ,组合逻辑上是contains a
  • 聚集分为共享聚集和组合聚集,但一般叫聚合和组合

 19.聚合和组合的主要区别?

聚合关系是如果整体消失了,部分还存在。比如命题组和老师

组合关系是如果整体消失了,部分将不复存在。比如人和人的身体器官

20.状态图的作用?

状态图用来描绘对象的状态、触发状态转换的事件以及对象的行为

21.功能模型的作用?通常其由什么组成?

功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。通常功能模型由一组数据流图组成

22.一幅用例图包含的模型元素有哪些?

系统、行为者、用例以及用例之间的关系

23.用例图中的用例是什么?

用例是一个,它代表一类功能而不是使用该功能的某个具体实例

24.用例图中的行为者是什么?

        行为者是指与系统交互其它系统,它代表外部实体,行为者代表一个角色而不是某个具体的人或物

25.用例图中的用例之间的关系有?

拓展关系:向一个用例中添加了一些动作之后构成了另一个用例

使用关系:即一个用例使用另一个用例

【提示】:书上的用例图只给了扩展和使用关系,而正式的 UML图还有包含关系。而包含和使用又非常相似。所以很多图上画关系的时候,没有用中文的“拓展”和“使用”,而是用“extend”和“include”来表示这两种关系。

【判定技巧】:extend 扩展的功能,如果删除掉,不会影响这个系统的运行。而include 的功能如果删除那么系统将无法正常运行。

        比如以下图为例,如果没有售散装饮料这个功能,售货机依然以正常卖其他瓶装饮料。但是如删除“打开机器”这个动作,那么供货就无法完成!

 

26.对象模型、动态模型、功能模型三者之间的关系是?

  1. 针对每个类建立的动态模型,描述了类实例的生命周期或运行周期
  2. 状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被映射成用例,它们同时与类图中的服务相对应
  3. 功能模型中的处理对应于对象模型中的类所提供的服务
  4. 用例图中的行为者可能是对象模型中的对象
  5. 功能模型中的处理可能产生动态模型中的事件

章末小结

        近年来,面向对象方法学日益受到人们的重视,特别是在用这种方法开发大型软件产品时,可以把该产品看作是由一系列本质上相互独立的小产品组成,这就不仅降低了开发工作的技术难度,而且也使得对开发工作的管理变得比较容易了。因此,对于大型软件产品来说,面向对象范型明显优于结构化范型。此外,使用面向对象范型能够开发出稳定性好、可重用性好和可维护性好的软件,这些都是面向对象方法学的突出优点。

        面向对象方法学比较自然地模拟了人类认识客观世界的思维方式,它所追求的目标和遵循的基本原则,就是使描述问题的问题空间和在计算机中解决问题的解空间,在结构上尽可能一致。

        面向对象方法学认为,客观世界由对象组成。任何事物都是对象,每个对象都有自己的内部状态和运动规律,不同对象彼此间通过消息相互作用、相互联系,从而构成了人们所要分析和构造的系统。系统中每个对象都属于一个特定的对象类。类是对具有相同属性和行为的一组相似对象的定义。应该按照子类、父类的关系,把众多的类进一步组织成一个层次系统,这样做了之后,如果不加特殊描述,则处于下一层次上的类可以自动继承位于上一层次的类的属性和行为。

        用面向对象观点建立系统的模型,能够促进和加深对系统的理解,有助于开发出更容易理解、更容易维护的软件。通常,人们从3个互不相同然而又密切相关的角度建立起3种不同的模型。它们分别是描述系统静态结构的对象模型描述系统控制结构的动态模型以及描述系统计算结构的功能模型。其中,对象模型是最基本、最核心、最重要的

        统一建模语言UML是国际对象管理组织OMG批准的基于面向对象技术的标准建模语言。通常,使用UML的类图来建立对象模型,使用UML 的状态图来建立动态模型,使用数据流图或 UML 的用例图来建立功能模型。在 UML 中把用用例图建立起来的系统模型称为用例模型。

        本章所讲述的面向对象方法及定义的概念和表示符号,可以适用于整个软件开发过程。软件开发人员无须像用结构分析、设计技术那样,在开发过程的不同阶段转换概念和表示符号。实际上,用面向对象方法开发软件时,阶段的划分是十分模糊的,通常在分析设计和实现等阶段间多次迭代

反反复复,扎扎实实;念念不忘,必有回响!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/12843.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pdf怎么转换成jpg图片?分享几个实用的方法!

记灵在线工具是一种非常方便的工具,可以帮助我们将PDF文件转换为图片格式。下面介绍三种不同的方法,让我们来了解一下。 方法一:记灵在线工具 1、打开记灵在线工具,在工具列表中选择“PDF转图片”。 2、将需要转换的PDF文件添加…

金融时间序列预测方法合集:CNN、LSTM、随机森林、ARMA预测股票价格(适用于时序问题)、相似度计算、各类评判指标绘图(数学建模科研适用)

项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实…

【Unity项目】Unity实现 双屏显示效果

需求:两个屏显示项目,一个屏显示列表,一个屏显示列表按钮点击后的效果。 最近在修改一个项目,是要求分屏显示项目,一个一体机,一个大屏,一体机当作目录界面,大屏当作模型显示界面&am…

mysql 常用命令综合简单运用

目录 第一大题创建数据库创建用户表及约束字段修改位置修改字段数据类型修改字段名字添加字段修改表名字删除字段修改表的存储引擎 第二大题创建表及外键和其他约束删除外键约束和查找外键名 第三大题创建数据库创建用户同时授权一些功能修改用户的密码更新权限列表查看用户的权…

直击WAIC2023|英码正式加入华为昇腾APN,共同携手引领AI向实而生!

7月6日,以“智联世界,生成未来”为主题的世界人工智能大会(以下简称:WAIC2023)在上海世博中心盛大开幕。本届AI盛会将举办科学前沿和产业发展2场全体会议、10场主题论坛,以及多场生态论坛及活动&#xff1b…

工业物联网安全监测解决方案:工业安全节能管理

工业自动化和工业化的快速发展,工厂安全问题越来越受到重视。工厂安全监测是保障工厂安全运行的关键技术之一,它可以及时发现并处理潜在的安全问题,防止事故的发生,保障员工的安全和工厂的正常运转。智能改造成为广大企业关注的热…

实现会议管理功能

目录 生成原始会议数据 一、数据结构 二、添加测试数据 查询会议列表分页数据(后端) 一、业务分析 二、编写持久层代码 三、编辑业务层代码 四、编写Web层代码 查询成员列表(后端) 一、编写持久层代码 二、编写业务层…

二叉树 — 返回最大的二叉搜索子树大小

题目: 给定一棵二叉树的head节点,返回这颗二叉树中最大的二叉搜索子树的大小。 一颗二叉树来讲,可能整棵树不是搜索二叉树,但子树是一颗搜索二叉树。如下图所示,这时要返回这颗子搜索二叉树的最大节点个数。下图中&…

【数据挖掘】推荐系统(一):协同过滤

一、说明 推荐系统是一种计算机程序或算法,用于预测用户对特定项目的兴趣度,并根据这些预测向用户提供个性化推荐。这种系统通常使用大量数据来分析用户的行为和偏好,以找出潜在的喜好和兴趣。推荐系统可以应用于电子商务、社交媒体、影视娱乐…

【我的创作纪念日】关于某站的音频爬虫+GUI

文章目录 一、前言&机遇二、爬虫代码三、爬虫GUI四、文件打包五、结果展示未来可期 一、前言&机遇 许久没看私信内容,一上线就看到了官方的私信,我已经来到CSDN1024天啦! 想到注册这个号的初衷是学习记录爬虫,后面渐渐变…

LSTM介绍

LSTM ft表示 遗忘门。LSTM对于每一次的输入,首先决定遗忘掉之前的哪些记忆。将ft和t-1时刻的细胞状态相乘,得出将遗忘哪些记忆。 记忆门 是用来控制是否将t时刻的数据并入细胞状态。tanh函数可以将此刻向量中的有效信息提取出来,为gt。sigmoid函数用于控制此刻多少记忆进入…

比ping还好用的排障命令

遇到网络故障的时候,你一般会最先使用哪条命令进行排障? 除了Ping,还有Traceroute、Show、Telnet又或是Clear、Debug等等。 今天安排的,是Traceroute排障命令详解,给你分享2个经典排障案例哈。 01 Traceroute原理和功…