软件工程——第11章面向对象设计知识点整理

news2024/10/5 19:10:38

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

 

文章目录

 1.什么是面向对象设计(OOD)?

2.优秀设计的主要特点是?

3.面向对象设计应遵循的准则有哪些?并分别简述内容

4.重用的含义?

5.面向对象设计的启发规则有哪些?分别进行简述

6.软件重用的层次结构?

7.可能被重用的软件成分?

8.可重用软构件应该具备的特点有哪些?

9.类构件的重用方式有哪些?

10.系统分解成许多子系统,面对对象设计模型分解成哪些子系统?

11.子系统之间有哪两种可能的交互方式?

12.把子系统组织成完整的系统时,有哪两种方案?

13.任务管理子系统的作用?

14.关联有哪两种可能的方式?

章末小结


 1.什么是面向对象设计(OOD)?

面向对象设计(OOD)是用面向对象的观点建立求解域模型的过程,是多次反复迭代的过程

2.优秀设计的主要特点是?

容易维护

3.面向对象设计应遵循的准则有哪些?并分别简述内容

  1. 模块化:把程序整体划分成一个个独立命名且可独立访问的完成单个子功能的模块。采用模块化,软件结构清晰,不仅容设计也容易阅读和理解,有利于软件开发工程的组织管理
  2. 抽象:抽出事物的本质特性,暂不考虑其细节,使设计从具体实现方法中超脱。包括程序抽象、数据抽象、参数抽象
  3. 信息隐藏:对象封装。有利于测试期间和以后的软件维护期间进行次件的修改
  4. 弱耦合:包括交互耦合继承耦合。交互耦合应松散,继承耦合应紧密
  5. 强内聚:包括服务内聚类内聚、一般特殊-内聚。
  6. 可重用:是提高软件开发生产率和目标系统质量的重要途径

4.重用的含义?

  1. 尽量使用已有的类
  2. 需要创建新类,则在设计新类的协议时,考虑将来的可重复使用性

5.面向对象设计的启发规则有哪些?分别进行简述

  1. 设计结果应该清晰易懂:使设计结果清晰、易读、易懂,是提高软件可维护性和可重用性的重要措施
  2. 一般——特殊结构的深度应该适当:应该使类等级中包含的层次数适当
  3. 设计简单的类:应该尽量设计小而简单的类,以便于开发和管理
  4. 使用简单的协议:一般说来,消息中的参数不要超过 3个
  5. 使用简单的服务:一般只有3一5 行源程序语句,可以用仅含一个动和一个宾语的简单句子描述它的功能
  6. 把设计变动减少至最小:即出现必须修改设计的情况,也应该使修改的范围尽可能小

6.软件重用的层次结构?

 

7.可能被重用的软件成分?

  1. 项目计划
  2. 成本估计
  3. 体系结构
  4. 需求模型和规格说明
  5. 设计
  6. 源代码
  7. 用户文档和技术文档
  8. 用户界面
  9. 数据
  10. 测试用例

8.可重用软构件应该具备的特点有哪些?

  1. 模块独立性强
  2. 具有高度可塑性
  3. 接口清晰、简明、可靠

9.类构件的重用方式有哪些?

  1. 实例重用(最基本
  2. 继承重用
  3. 多态重用

【注】:类构件是最好的重用方式

10.系统分解成许多子系统,面对对象设计模型分解成哪些子系统?

  1. 人机交互子系统
  2. 问题域子系统
  3. 任务管理子系统
  4. 数据管理子系统

11.子系统之间有哪两种可能的交互方式?

  1. 客户-供应商关系
  2. 平等伙伴关系

12.把子系统组织成完整的系统时,有哪两种方案?

  1. 水平层次组织
  2. 垂直块组织

13.任务管理子系统的作用?

调度任务完成的顺序

14.关联有哪两种可能的方式?

  1. 单向遍历
  2. 双向遍历

【注】:原型法开发软件时关联都应该是双向的

章末小结

        面向对象设计就是用面向对象观点建立求解空间模型的过程。通过面向对象分析得出的问题域模型为建立求解空间模型奠定了坚实基础。分析与设计本质上是一个多次反复迭代的过程,而面向对象分析与面向对象设计的界限尤其模糊

        优秀设计是使得目标系统在其整个生命周期中总开销最小的设计,为获得优秀的设本结果。应该遵循一些基本准则。本章结合面向对象法学固有的特点讲述了面向对象设计准则,并介绍了一些有助于提高设计质量的启发式规则。

        重用是提高软件生产率和目标系统质量的重要途径,它基本上始于设计。本章结合面向对象方法学的特点,对软件重用做了较全面的介绍,其中着重讲述了类构件重用技术

        用面向对象方法设计软件,原则上也是先进行总体设计(即系统设计),然后再进行详细设计(对象设计),当然,它们之间的界限非常模糊,事实上是一个多次反复迭代的过程。

        大多数求解空间模型,在逻辑上由 4 大部分组成。本章分别讲述了问题域子系统人机交互子系统、任务管理子系统和数据管理子系统的设计方法。此外还讲述了设计类中服务的方法及实现关联的策略。

        通常应该在设计工作开始之前,对系统的各项质量指标的相对重要性做认真分析和仔细权衡,制定出恰当的系统目标。在设计过程中根据既定的系统目标,做必要的优化工作。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

检验样本正态性

简介 在统计学中很多推论与正态分布有关,并且很多统计量构造为满足正态分布的形式,很多分布在特定条件近似于正态分布。因此,在统计推断中经常需要判断样本的正态性。本文介绍一些常用的方法。 环境和数据准备: import numpy a…

CCLINK IE FIELD BASIC转MODBUS-TCP网关modbus tcp与tcp/ip的区别

协议的不同,数据读取困难,这是很多生产管理系统的难题。但是现在,远创智控YC-CCLKIE-TCP通讯网关,让这个问题变得非常简单。这款通讯网关可以将各种MODBUS-TCP设备接入到CCLINK IE FIELD BASIC网络中,连接到MODBUS-TCP…

在 Jetpack Compose 中使用 BottomDrawer

简介 Jetpack Compose 是一个现代化的,声明式的 UI 工具包,它让我们可以更方便地构建原生 Android UI。在本篇文章中,我们将会讨论如何在 Jetpack Compose 中使用 BottomDrawer。 什么是 BottomDrawer? BottomDrawer 是一种 UI 元素&…

【JAVA】准备工作------Java开发环境搭建,IDEA的基础设置与操作

🍉内容专栏:【JAVA】 🍉本文脉络:JAVA的准备工作,IDEA的安装以及基础设置和快捷操作 🍉本文作者:Melon西西 🍉发布时间 :2023.7.11 目录 1. 概述JDK、JRE 2. 第一个程序——创建…

Win10电脑插耳机没声音了如何恢复正常?

Win10电脑插耳机没声音了如何恢复正常?当Win10电脑插入耳机后却没有声音时,这可能会让用户感到困惑和沮丧,缺乏耳机声音可能会影响到用户的音频体验和日常使用,那么要怎么如何操作,才能让耳机恢复正常,以下…

webpack的打包流程

webpack的打包流程 yarn build 开始都走了哪些流程 yarn build 开始都走了哪些流程

软考A计划-系统集成项目管理工程师-项目进度管理-中

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

【微信小程序-uniapp】CustomPicker 自定义单项选择器组件

1. 效果图 2. 组件完整代码 <template><view class="custom-picker"><view :class=<

2023数学建模国赛常用算法-Topsis优劣解距离法

更多国赛数学建模资料思路&#xff0c;关注文末&#xff01; 1 优劣解距离法&#xff08;TOPSIS&#xff09;简介 1.1 概念 TOPSIS 法是一种常用的组内综合评价方法&#xff0c;能充分利用原始数据的信息&#xff0c;其结果能精确地反映各评价方案之间的差距。基本过程为基于…

avue 自定义按钮修改后触发表单自带的校验方法

代码&#xff1a; <avue-form :option"option" v-model"publishForm" ref"publishForm"><template slot-scope"{size}" slot"menuForm"><el-button :size"size" click"$refs.publishForm.re…

【RuoYi-Cloud-Plus】学习笔记 09 - Sentinel(四)熔断降级知识整理

文章目录 前言参考目录版本说明学习笔记1、包结构2、DegradeSlot3、DegradeRule4、DegradeRuleManager5、CircuitBreaker5.1 CircuitBreaker.State6、AbstractCircuitBreaker6.1、AbstractCircuitBreaker#fromCloseToOpen6.2、AbstractCircuitBreaker#fromHalfOpenToOpen6.3、A…

0127 进程与线程1

目录 2.进程与线程 2.1进程与线程 2.1部分习题 2.2处理机调度 2.2部分习题 2.进程与线程 2.1进程与线程 2.1部分习题 1.一个进程的映像是&#xff08;&#xff09; A.由协处理器执行的一个程序 B.一个独立的程序数据集 C.PCB结构与程序和数据的组合 D.…

运动控制--双S型 + PID

运动控制--双S型 PID 1 介绍1.1 概述1.2 梯形速度曲线 VS 双S型速度曲线 2 运动控制器2.1 运动控制器的构成2.2 轨迹生成器2.3 插补器2.4 控制回路 3 PID4 双 S 型4.1 介绍4.2 双S模型&#xff08;7段S型&#xff09;规划参数算法公式轨迹分类 5 多种速度规划对比 【引用 Marc…

计算机网络基础第一章

一、计算机网络的概念及功能 1.1 计算机网络的概念 三网&#xff1a;有线电视网络、电信网络、计算机网络。 三网融合&#xff1a;通过计算机网络可以将有线电视、电信网络通过0/1编码等方式展现进行融合&#xff0c;从而实现计算机网络实现视频、电话等其他网络功能。 四网&a…

git推送出现问题error: remote origin already exists.(解决)

阿丹&#xff1a; 推送git的时候出现问题&#xff0c; 报错remote orign already exists这个错误 错误原因 可能是因为clone下来一个别人的仓库&#xff0c;在此基础上完成你的代码&#xff0c;推送到自己的仓库可能遇到如下问题&#xff1a; error: remote origin already e…

Ubuntu 放弃了战斗向微软投降

导读这几天看到 Ubuntu 放弃 Unity 和 Mir 开发&#xff0c;转向 Gnome 作为默认桌面环境的新闻&#xff0c;作为一个Linux十几年的老兵和Linux桌面的开发者&#xff0c;内心颇感良多。Ubuntu 做为全世界Linux界的桌面先驱者和创新者&#xff0c;突然宣布放弃自己多年开发的Uni…

SSM+Shiro安全框架整合(完成安全认证--登录+权限授权)+ssm整合shiro前后端分离

目录 1.搭建SSM框架 1.1.引入相关的依赖 1.2. spring配置文件 1.3. web.xml配置文件 1.4.配置Tomcat并启动 2.ssm整合shiro---认证功能 (1).引入依赖 (2).修改spring配置文件 (3).修改web.xml文件 (4).新建login.jsp(登录页面) (5).新建success.jsp(登录成功后跳转到此…

POLARDB IMCI 白皮书 云原生HTAP 数据库系统 一 列式数据是如何存储与处理的

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

VMware ESXi 7.0 U3n macOS Unlocker OEM BIOS (标准版和厂商定制版)

VMware ESXi 7.0 U3n macOS Unlocker & OEM BIOS (标准版和厂商定制版) ESXi 7.0 标准版和 Dell (戴尔)、HPE (慧与)、Lenovo (联想)、Inspur (浪潮)、Cisco (思科) 定制版镜像 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-esxi-7-u3-oem/&#xff0c;查看…

第一代Spring Cloud核心组件

第一代Spring Cloud核心组件&#xff08;Spring Cloud Netflix&#xff09; Eureka服务注册中心(服务注册中心:Eureka,Nacos,Zookeeper,Consul) Ribbon负载均衡 Hystrix熔断器 Feign远程调用组件(Feign RestTemplate Ribbon Hystrix) GateWay网关组件 Config分布式配置中心 …