软设上午题错题知识点6

2023-10-19 23:20
文章标签 知识点 错题 上午 软设

本文主要是介绍软设上午题错题知识点6,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

软设上午题错题知识点6

设计模式的六大原则

1、开闭原则(Open Close Principle)

开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类。

2、里氏代换原则(Liskov Substitution Principle)

里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。—— From Baidu 百科

3、依赖倒置原则(Dependence Inversion Principle)

这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。

4、接口隔离原则(Interface Segregation Principle)

这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。

5、迪米特法则(最少知道原则)(Demeter Principle)

为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。

6、单一职责原则(Single-Responsibility-Principle)

核心:一个类只负责一个功能领域中相应的职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。

思想:如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。

7、“中间代码”是一种简单且含义明确的记号系统,可以有若干种形式,它们的共同特征是与具体的机器无关,此时所作的优化一般建立在对程序的控制流和数据流分析的基础之上,与具体的机器无关。

8、软件著作权中翻译权是指以不同于原软件作品的一种程序语言转换该作品原使用的程序语言,而重现软件作品内容的创作的产品权利。简单地说,也就是指将原软件从一种程序语言转换成另一种程序语言的权利。

9、管道过滤器体系具有以下优点: ①软件构件具有良好的隐蔽性和高内聚、低耦合的特点; ②允许设计者将整个系统的输入输出行为看成是多个过滤器的行为的简单合成; ③支持软件复用; ④系统维护和增强系统性能简单; ⑤允许对一些如吞吐量、死锁等属性的分析; ⑥支持并行执行。

10、总线线路都可以被归为三类:即数据总线、地址总线和控制总线。

11、软件测试方法分为静态测试和动态测试。
静态测试是被测试程序不在机器上运行而采用人工检测和计算机辅助静态分析手段对程序进行检测。
动态测试是通过运行程序发现错误。对软件产品进行动态测试时可以采用黑盒测试和白盒测试法。
黑盒测试法在完全不考虑软件的内部结构和特性的情况下,测试软件的外部特性。对于无法获得源代码的第三方组件,可采用黑盒对组件进行测试。
基本路径覆盖、分支覆盖和环路覆盖需要根据程序的内部结构和逻辑进行测试。

12、后缀式的特点是将运算符号写在运算数的后面。对于表达式,其计算次序是相减、相乘、相加。

13、嵌入式操作系统的特点: 1.微型化,从性能和成本角度考虑,希望占用的资源和系统代码量少; 2.可定制,从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用的需求; 3.实时性,嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求较高; 4.可靠性,系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施; 5.易移植性,为了提高系统的易移植性,通常采用硬件抽象层和板级支撑包的底层设计技术。

14、计算机系统的存储器按所处的位置可分为内存和外存。
按构成存储器的材料可分为磁存储器、半导体存储器和光存储器。
按存储器的工作方式可分为读写存储器和只读存储器。
按访问方式可分为按地址访问的存储器和按内容访问的存储器。
按寻址方式可分为随机存储器、顺序存储器和直接存储器。
相联存储器是一种按内容访问的存储器。

15、
程序查询方式
程序查询方式要求CPU时刻查询I/0设备,直到I/0设备准备好为止,这种方式CPU工作效率很低。

程序中断方式
程序中断方式比程序查询方式提高了CPU的工作效率,消除了“踏步"现象,

DMA方式
DMA方式中CPU的工作效率是这三种之中最高的一个。CPU启动10后,不必查询I/0是否准备好,当I/0准备
就绪后,发出DMA请求,此时CPU不直接参与I/0和主存间的信息交换,只是把外部总线的使用权暂时交付
DMA,仍然可以完成自身内部的操作,所以不必中断现行程序,只需暂停一个存取周期访存,CPU效率更高。

16、网络安全体系设计是逻辑设计工作的重要内容之一,数据库容灾属于系统安全和应用安全考虑范畴。

17、二分查找的前提条件是顺序存储,且有序排列。

18、 公开密钥加密(public-key cryptography),也称为非对称加密(asymmetric cryptography),一种密码学算法类型,在这种密码学方法中,需要一对密钥,一个是私人密钥,另一个则是公开密钥。 常见的公钥加密算法有: RSA、ElGamal、背包算法、Rabin(RSA的特例)、迪菲-赫尔曼密钥交换协议中的公钥加密算法、椭圆曲线加密算法(Elliptic Curve Cryptography, ECC) ;

DSA数字签名(又称公钥数字签名),将摘要信息用发送者的私钥加密,接收者只有用发送者的公钥才能解密被加密的摘要信息,也是属于公开密钥加密算法。DES是典型的私钥加密体制,属于对称加密,不属于公开秘钥加密。

19、软件测试按阶段划分为单元测试、集成测试和系统测试。
在单元测试基础上,将所有模块按照设计要求组装为系统,此时进行的测试称为集成测试。
集成测试有多种策略:
自底向上:从系统层次中最底层的构件开始测试,逐步向上。需要设计驱动模块来辅助测试。
自顶向下:与自底向上相反,从最顶层的构件开始,逐步向下。需要设计桩模块来辅助测试。
三明治:结合自底向上和自顶向下两种测试策略。
一次性:对所有构件一次性测试,然后集成。

20、在运算器中,累加寄存器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器,能进行加、减、读出、移位、循环移位和求补等操作,是运算器的主要部分。

21、脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,通常以文本(如 ASCII)保存,只在被调用时进行解释或编译。Python是一种脚本语言。

22、127.0.0.1是本地回送地址,当网络连接不可用时,为了测试编写好的网络程序,通常使用的目的主机IP地址为127.0.0.1。

23、重放攻击(Replay Attacks)又称重播攻击、回放攻击或新鲜性攻击(Freshness Attacks),是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。

Kerberos系统采用的是时间戳方案来防止重放攻击,这种方案中,发送的数据包是带时间戳的,服务器可以根据时间戳来判断是否为重放包,以此防止重放攻击。

24、对象图:展现了某一个时刻一组对象以及它们之间的关系。

类图:展现了一组对象、接口、协作和它们之间的关系。

用例图:展现了一组用例、参与者以及它们之间的关系。

序列图:是场景的图形化表示,描述了以时间顺序组织的对象之间的交互活动。

多重度:图示表示的是1个A可以对应多个B,1个B只能对应1个A 。

25、在同一进程中的各个线程都可以共享该进程所拥有的资源,如访问进程地址空间中的每一个虚地址;访问进程所拥有的已打开文件、定时器、信号量机构等,但是不能共享进程中某线程的栈指针。

26、主要的传输层协议为TCP和UDP。TCP协议的是现较为复杂,采用3次握手建立连接,传输过程中能实现可靠传输、流量控制以及拥塞控制,因而也带来了较大开销。

UDP协议主要通过端口号实现传输层级的寻址,开销也小。

27、 假设并发进程数:m 每个进程都需要资源数:a 则不发生死锁的最少数目计算公式为: (a-1)*m+1

此题中,m=6,a=2,则答案为(2-1)*6+1=7

28、基于构件的软件开发,主要强调在构建软件系统时复用已有的软件“构件”,
在检索到可以使用的构件后,需要针对新系统的需求对构件进行合格性检验、适应性修改,然后集成到新系统中。

29、网络层的联网设备是路由器,数据链路层的联网设备是网桥和交换机,传输层和会话层主要是软件功能,都不需要专用的联网设备。

30、在编写C/C++源程序时,为所定义的变量赋初始值是良好的编程习惯,而赋初值不是强制的要求,因此编译程序不检查变量是否赋初值。

如果表达式中引用的变量从定义到使用始终没有赋值,则该变量中的值表现为一个随机数,这样对表达式的求值结果就是不确定的了。

这篇关于软设上午题错题知识点6的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/243042

相关文章

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

JavaSE-易错题集-002

1. 下面有关java基本类型的默认值和取值范围,说法错误的是? A 字节型的类型默认值是0,取值范围是-2^7—2^7-1 B boolean类型默认值是false,取值范围是true\false C 字符型类型默认是0,取值范围是-2^15 —2^15-1 D long类型默认是0,取值范围是-2^63—2^63-1 答案:C 题解:注意字符型(char) char 占16位,

STL经典案例(四)——实验室预约综合管理系统(项目涉及知识点很全面,内容有点多,耐心看完会有收获的!)

项目干货满满,内容有点过多,看起来可能会有点卡。系统提示读完超过俩小时,建议分多篇发布,我觉得分篇就不完整了,失去了这个项目的灵魂 一、需求分析 高校实验室预约管理系统包括三种不同身份:管理员、实验室教师、学生 管理员:给学生和实验室教师创建账号并分发 实验室教师:审核学生的预约申请 学生:申请使用实验室 高校实验室包括:超景深实验室(可容纳10人)、大数据实验室(可容纳20人)、物联网实验

C++语法知识点合集:11.模板

文章目录 一、非类型模板参数1.非类型模板参数的基本形式2.指针作为非类型模板参数3.引用作为非类型模板参数4.非类型模板参数的限制和陷阱:5.几个问题 二、模板的特化1.概念2.函数模板特化3.类模板特化(1)全特化(2)偏特化(3)类模板特化应用示例 三、模板分离编译1.概念2.模板的分离编译 模版总结 一、非类型模板参数 模板参数分类类型形参与非类型形参 非类型模板

枚举相关知识点

1.是用户定义的数据类型,为一组相关的常量赋予有意义的名字。 2.enum常量本身带有类型信息,即Weekday.SUN类型是Weekday,编译器会自动检查出类型错误,在编译期间可检查错误。 3.enum定义的枚举类有什么特点。         a.定义的enum类型总是继承自java.lang.Enum,且不能被继承,因为enum被编译器编译为final修饰的类。         b.只能定义

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

【反射知识点详解】

Java中的反射(Reflection)是一个非常强大的机制,它允许程序在运行时检查或修改类的行为。这种能力主要通过java.lang.reflect包中的类和接口来实现。 通过反射,Java程序可以动态地创建对象、调用方法、访问字段,以及获取类的各种信息(如构造器、方法、字段等)。 反射的用途 反射主要用于以下几种情况: 动态创建对象:通过类的Class对象动态地创建其实例。访问类的字段

2024年AMC10美国数学竞赛倒计时两个月:吃透1250道真题和知识点(持续)

根据通知,2024年AMC10美国数学竞赛的报名还有两周,正式比赛还有两个月就要开始了。计划参赛的孩子们要记好时间,认真备考,最后冲刺再提高成绩。 那么如何备考2024年AMC10美国数学竞赛呢?做真题,吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以通过真题查漏补缺,更有针对性的补齐知识的短板。

Python知识点:如何使用Python开发桌面应用(Tkinter、PyQt)

Python 提供了多个库来开发桌面应用程序,其中最常见的两个是 Tkinter 和 PyQt。这两者各有优点,选择取决于你的需求。以下我会介绍如何使用 Tkinter 和 PyQt 开发简单的桌面应用程序。 1. 使用 Tkinter 开发桌面应用 Tkinter 是 Python 的标准库,它非常轻量级且跨平台。它适合开发简单的桌面应用,入门较容易。 安装 Tkinter Tkinte