软件设计师笔记(一)-基础要点

本文内容来自笔者学习zst 留下的笔记,虽然有点乱,但是哥已经排版过一次,将就着看吧,查缺补漏,希望大家都能通过,记得加上免费的关注!谢谢!csdn贴图真的很废人!

目录

一、专利相关

二、面向对象

2.1. 面向对象的三大特征

2.2. 面向对象设计原则

2.3. 面向对象设计时包含的主要活动

2.4. 面向对象程序测试

三、UML

3.1 UML 中的图

3.1.1 类图

3.1.2 用例图

3.1.3 序列图

3.1.4 通信图

3.1.5 状态图

3.1.6 活动图

3.1.7 构件图

3.1.8 部署图

3.2 总结

四、设计模式

五 、操作系统

5.1 PV操作

5.2 死锁

5.3 磁盘调度

六、结构化开发

6.1 耦合种类

6.2 内聚

6.3 数据字典

七、软件工程

7.1 CMM软件能力成熟度模型

7.2 CMMI

7.3 开发模型

7.4 敏捷方法

7.5 测试相关

7.6 系统维护

7.7 系统维护性

7.8 COCOMO

7.9 质量模型

八、数据结构

8.1 矩阵存储

8.2 二叉树性质

8.3 遍历方式

8.4 二叉排序树

8.5 最优二叉树

8.6 最优二叉树的构造

8.7 图

8.8 有向图和无向图

8.9 深度优先和广度优先

8.10 归并排序

九、编译器相关

9.1 语法,词法等相关

9.2 中间代码

十、数据结构相关

十一、杂项目

11.1 浮点数的范围表示


一、专利相关

知识要点:

  1. 发表权是有时间指,人死亡后+50年

  2. 在公司开发的相关,员工只有署名权,其他都属于公司

  3. 委托开发,如果无相关委托书指明,软件相关著作权都属于受委托方

  4. 专利:不管谁先用,谁先申请就谁

  5. 商标:同一天申请,谁先使用,归谁

二、面向对象

2.1. 面向对象的三大特征

封装,继承,多态

类对象之前通过消息传递

多态种类:

静态绑定:编译时候进行的,叫做静态绑定

动态绑定:调用代码时候才进行,叫做动态绑定;

重载:表示同一个类中不同成员函数之间的关系,载要求函数名相同,但是参数列表必须不同

覆盖(重置):子类和父类不同成员函数的关系,要求函数名、参数列表、返回值必须相同

2.2. 面向对象设计原则

  • 单一责任原则:针对一个类而言,仅有一个引起变化的原因

  • 开放-封闭原则:扩展开放,修改关闭

  • 里氏替换原则:父类出现的地方,子类一定能够出现

  • 依赖倒置原则:依赖于抽象,而不依赖于细节(实现)

  • 接口分离原则:依赖于抽象,而不依赖于具体

  • 共同重用原则:重用了包中的一个类,那么重用包中所有的类

  • 共同封闭原则:一个变化多一个包产生影响,对该包中所有的产生影响,而对其他不造成影响

面向对象分析时候,执行的活动顺序

认定对象,组织对象,描述对象间的相互作用,确定对象操作、定义对象的内部信息

2.3. 面向对象设计时包含的主要活动

识别类及对象,定义属性,定义服务,识别关系,识别包

2.4. 面向对象程序测试

可以分为4个层次进行

abstract 抽象

  • 算法层

  • 类层

  • 模板层

  • 系统层

  • 静态方法只能访问静态成员变量;类的静态成员变量,在该类的对象将共享该静态成员变量。

三、UML

UML(Unified Modeling Language)

  1. 三种构造块:实物、关系和图

  2. UML4中事物

结构事物:通常是静态部分,描述概念或者物理元素。包括类,结构,协作,用列,主动类,构建,制品和结点

行为事物:动态部分,包括交互,状态机和活动

分组事物:最主要的是包

注释事物:用来描述、说明和标注模块的任何元素。注释是一个依赖一个元素或者一组元素智商,对它进行约束或解释的简单符号。

  1. UML 关系

依赖

关联

聚合【空心】:部分和整体的生命周期不一致,整体消失了,部分仍然存在着,部分可以脱离整体的存在;

组合【实心】:部分和整体的生命周期一致,整体消失了,部分不存在,部分不可以脱离整体的存在;

泛化

子类继承父类,但是泛化的意思是父类泛化子类;

实现

3.1 UML 中的图

3.1.1 类图

3.1.2 用例图

包含关系《include》

扩展关系《extend》

泛化关系《genralize》

3.1.3 序列图

3.1.4 通信图

3.1.5 状态图

状态图展现的是一个状态,

活动(动作)可以 在状态内执行,也可以在状态转换(迁移)时执行

3.1.6 活动图

3.1.7 构件图

构建图也叫组件图

图中右上角的“工”就可以看出是构件图

3.1.8 部署图

3.2 总结

四、设计模式

五 、操作系统

5.1 PV操作

同步信号量,S1=0

互斥型号量,S2>0

5.2 死锁

关于死锁相关条件

M>=nx(w-1)+1

M为资源个数,n为进程个数,w为一个进程需要的资源个数

5.3 磁盘调度

六、结构化开发

6.1 耦合种类

6.2 内聚

6.3 数据字典

七、软件工程

7.1 CMM软件能力成熟度模型

CMM 软件能力成熟度模型

7.2 CMMI

7.3 开发模型

7.4 敏捷方法

7.5 测试相关

白盒测试

1.语句覆盖:指程序中的每个语句需要执行一次【最弱覆盖】

2.判定覆盖:指程每个判定表达式的一次真和假都需要执行一次

3.条件覆盖:判定语句中的每个逻辑条件的各种可能指知道一次(看图)

4.判定/条件覆盖:上面哪种并集

5.条件组合覆盖:每个判定条件中的各种可能值需都至少出现一次

6.路径覆盖:覆盖被测试程序中所有可能的路径【最强覆盖】

7.6 系统维护

可维护性评价指标:“

可理解性,可修改,可测试性

7.7 系统维护性

7.8 COCOMO

基本COCOMO:静态单变量模型

中级COCOMO:静态多变量模型

详细COCOMO:分为系统,子系统和模块3个层次

7.9 质量模型

八、数据结构

8.1 矩阵存储

8.2 二叉树性质

8.3 遍历方式

前序------------根左右

中序------------左根右

后续------------左右根

层次遍历-----------从上往下,从左往右

8.4 二叉排序树

根节点:大于所有左子树,小于所有右子数的关键字

中序遍历得到的序列是有序序列

8.5 最优二叉树

8.6 最优二叉树的构造

8.7 图

8.8 有向图和无向图

选C

深度优先

递归思想

8.9 深度优先和广度优先

深度优先:

时间复杂度:O(n平方)

空间复杂度:O(n+e)

n为结点,e边数

2.广度优先

队列思想

广度优先:

时间复杂度:O(n平方)

空间复杂度:O(n+e)

n为结点,e边数

8.10 归并排序

九、编译器相关

9.1 语法,词法等相关

9.2 中间代码

十、数据结构相关

自然连接:把两个关系做笛卡尔积,然后选取公共属性相等的列(有可能有多个),再去掉重复的列

SQL语句

投影 :可以看是from

选择:可以看是Where

十一、杂项目

11.1 浮点数的范围表示

需要解决的问题:

\1. 有向图和无向图图

\2. 自然连接

相关图片记录

csdn 贴图真的很废人!!晕

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PLC设备通过智能网关采用HTTP协议JSON文件对接MES等系统平台

智能网关IGT-DSER集成了多种PLC的原厂协议,方便实现各种PLC、智能仪表通过HTTP协议与MES等各种系统平台通讯对接。PLC内不用编写程序,设备不用停机,通过网关的参数配置软件(下载地址)配置JSON文件的字段与PLC寄存器地址等参数即可。 智能网关…

vue+lodop实现web端打印标签功能

背景:项目要求在web端连接标签打印机,打印收件人信息 lodop打印插件地址:Lodop和C-Lodop官网主站 在项目中使用 1、去官网下载lodop包下载中心 - Lodop和C-Lodop官网主站 windows系统直接下载windows32版的就可以 2、解压安装 点击CLodop…

Spark云计算平台Databricks使用,上传文件

Databricks,是属于 Spark 的商业化公司,由美国加州大学伯克利 AMP 实验室的 Spark 大数据处理系统多位创始人联合创立。Databricks 致力于提供基于 Spark 的云服务,可用于数据集成,数据管道等任务。 创建workspace:Spa…

AI新视界:探索Baidu Comate的前沿科技

前言 Baidu Comate(智能代码助手)是基于文心大模型,结合百度积累多年的编程现场大数据和外部优秀开源数据,打造的新一代编码辅助工具。拥有代码智能、场景丰富、创造价值、广泛应用等多重产品优势,可实现“帮你想、帮…

区块链中的加密算法及其作用

区块链技术以其去中心化、不可篡改、透明公开的特性,在全球范围内引发了广泛的关注和讨论。其中,加密算法作为区块链技术的核心组成部分,对于维护区块链网络的安全、确保数据的完整性和真实性起到了至关重要的作用。本文将详细介绍区块链中常…

element ui的确认提示框文字样式修改

修改确认提示框的默认按钮样式,使用message属性修改: 例: js代码: this.$msgbox({title: 确定要删除吗?,message: this.$createElement(p, null, [this.$createElement(span, { style: color: red }, 该素材一旦删除&#xff0…

JAVA快速工具代码集

一、前言 在开发过程中&#xff0c;特别是维护老系统&#xff0c;有时候想使用的工具类却使用不了。又要重新造轮子。所以准备点工具类代码是必须的&#xff0c;无奈之举。 二、JSON数据转换 String content cdfQhOrderResModel.getContent(); List<CdfQH…

微信小程序网格布局

效果图 实现 wxml <!-- 订单内容 --><view class"father"><!-- 订单item --><view class"childs" wx:for"{{List}}" wx:key"{{ index }}"></view></view> wxss .father{display: grid;grid-tem…

如何在CentOS上解决Python版本冲突和路径问题

在使用CentOS等Linux系统时&#xff0c;安装多个Python版本可能会导致版本冲突和路径问题。当你运行python3命令时&#xff0c;系统可能不会调用你期望的Python版本&#xff0c;这可能会导致运行错误或者其他依赖问题。下面是一篇详细的博客&#xff0c;介绍如何解决这种Python…

数据治理的难题:如何化解?

在数字化转型的大潮中&#xff0c;数据治理成了每个企业都绕不开的话题。但是&#xff0c;数据治理这条路并不好走&#xff0c;充满了各种挑战。这些挑战不仅来自于技术&#xff0c;还有组织文化、流程和法律法规等方面。 挑战一&#xff1a;数据孤岛 在企业内部&#xff0c;…

如何远程控制另一部手机:远程控制使用方法

在现今高科技的社会中&#xff0c;远程控制手机的需求在某些情境下变得越来越重要。不论是为了协助远在他乡的家人解决问题&#xff0c;还是为了确保孩子的在线安全&#xff0c;了解如何实现这一功能都是有益的。本文将为您简要介绍几种远程控制手机的方法及其使用要点。 KKVi…

全面解析C++11与C++20线程(含内容)

昨晚跟一些小伙伴做了第一次直播尝试&#xff0c;一起探讨了C11 thread与 C20的jthread&#xff0c;于此同时给大家出了几个问题&#xff0c;在直播之外不会公布答案&#xff0c;所以以后直播还是得跟着走起。 总共有22人参加直播&#xff0c;氛围相当不错&#xff0c;没有录播…

如何解决 NPM依赖下载超时问题 :npm ERR! network timeout at: https://registry.npmjs.org/猫头虎

如何解决 NPM依赖下载超时问题 &#xff1a;npm ERR! network timeout at: https://registry.npmjs.org/猫头虎 博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试…

AWS Cli Windows安装配置

1. 安装 下载地址&#xff1a;AWS 命令行界面(CLI)_管理AWS服务的统一工具-AWS云服务 检验安装&#xff1a; > aws --version aws-cli/2.15.44 Python/3.11.8 Windows/10 exe/AMD64 prompt/off 2. 创建IAM用户 1) 创建组 选择IAM 点击创建组 填写用户组名&#xff0c;…

Linux sudo 指令

sudo命令 概念&#xff1a; sudo是linux下常用的允许普通用户使用超级用户权限的工具&#xff0c;允许系统管理员让普通用户执行一些或者全部的root命令&#xff0c;如halt&#xff0c;reboot&#xff0c;su等。这样不仅减少了root用户的登录和管理时间&#xff0c;同样也提高…

Qt常用基础控件总结

一、按钮部件 按钮部件共同特性 Qt 用于描述按钮部件的类、继承关系、各按钮的名称和样式,如下图: 助记符:使用字符"&“可在为按钮指定文本标签时设置快捷键,在&之后的字符将作为快捷键。比如 “A&BC” 则 Alt+B 将成为该按钮的快捷键,使用”&&qu…

基于FPGA实现的HDMI TO MIPI扩展显示器方案

FPGA方案&#xff0c;HDMI IN接收原始HDMI 信号&#xff0c;输出显示到LCD 屏上 客户应用&#xff1a;扩展显示器 主要特性&#xff1a; 1.支持2K以下任意分辨率显示 2.支持OSD 叠加多个图层 3.支持MIPI/EDP/LVDS/RGB屏 4.支持放大缩小匹配屏分辨率 5.零延时&#xff0c;输…

算法设计课第五周(贪心法实现活动选择问题)

目录 一、【实验目的】 二、【实验内容】 三、实验源代码 一、【实验目的】 &#xff08;1&#xff09;熟悉贪心法的设计思想 &#xff08;2&#xff09;理解贪心法的最优解与正确性证明之间的关系 &#xff08;3&#xff09;比较活动选择的各种“贪心”策略&#xff0c;…

Navicat连接远程数据库时,隔一段时间不操作出现的卡顿问题

使用 Navicat 连接服务器上的数据库时&#xff0c;如果隔一段时间没有使用&#xff0c;再次点击就会出现卡顿的问题。 如&#xff1a;隔一段时间再查询完数据会出现&#xff1a; 2013 - Lost connection to MySQL server at waiting for initial communication packet, syste…

上位机图像处理和嵌入式模块部署(树莓派4b读写json数据)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们说过&#xff0c;ini文件是用来进行配置的&#xff0c;数据库是用来进行数据存储的。那json是用来做什么的呢&#xff0c;json一般是用来做…