数据结构-操作系统-软件工程相关概念-2

卷三
1、什么是实体-关系图
E-R图用于描述应用系统的概念结构数据模型,它是进行需求分析,并归纳、整理、表达和优化现实世界中数据及其联系的重要工具。

 

2、什么是信息隐蔽
信息屏蔽与模块化的概念相关。当一个系统被分解为若干个模块时,为了避免某个模块的行为干扰同一系统中的其他模块,应该让模块仅仅公开必须让外界世界知道的信息,而将其它信息屏蔽起来,这样模块的具体实现细节相对于其它不相关的模块而言就是不可见的,这种机制就叫做信息屏蔽。

3、请简述软件项目管理和软件工程的区别和关系
软件工程与软件项目管理都是围绕软件产品开发的管理。
软件工程是软件开发方法论,是关于如何开发出好的软件产品。
软件项目管理是软件产品的生产管理形式,项目目标是项目的绩效。
软件工程对于任何软件项目都具有指导性,而软件项目管理是落实软件工程思想的载体。

4、说明下三类高级进程通信的含义
1)共享存储系统:在内存中分配一片空间作为共享存储区。需要进行通信的进程把它附加到自己的地址空间中,不需要则把它取消。当多个进程共享同一块内存区域,由于共享内存可以同时读但不能同时写,则需要同步机制约束(互斥锁或者信号量)。
2)管道:用于连接读、写进程以实现通信的共享文件。管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程)。
3)消息传递系统:以消息为单位在进程间进行数据交换。通过操作系统提供的两个系统调用,同系原语send和receive.

5、为什么要引入动态重定位
作业在运行过程中经常要在内存中移动位置(如对换、紧凑),引入动态重定位的目的就是为了满足程序的这种需要,动态重定位的实现需要一定的硬件支持,重定位的过程是由硬件地址变换机构在程序执行每条指令时自动完成的。

6、堆和二叉排序树的区别
以小根堆为例,堆的特点是双亲节点的关键字必须要与或等于孩子的关键字,而两个孩子节点的关键字没有次序规定。二叉排序树中,每个双亲节点的关键字均大于左子树节点的关键字,均小于柚子树节点的关键字,也就是说每个双亲节点的左右孩子的关键字也是有次序关系的。

卷四
1、动态规划解决的问题的特点
该问题必须具备最优子结构和重叠子问题。如果递归算法反复求解相同的子问题,我们就称最优化问题具有重叠子问题;如果一个问题的最优解包含其子问题的最优解,我们就称此问题具有最优子结构性质。

软件工程
2、内聚性
模块的内聚是指模块内部各个元素之间彼此结合的紧密程度。内聚和耦合往往密切相关,模块的高内聚通常以为指低耦合。在软件设计时,应该尽量提高模块的内聚程度,使模块内部的各个组件成分都相互关联,使其为了完成一个特定的功能而结合在一起。

3、测试用例
为达到最佳的测试效果或高效的揭露隐藏的错误而精心设计的少量测试数据并执行,称为测试用例。简单说,测试用例就是设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序锁设计的执行结果。

4、UML中9种图分别是哪些图,简述一下概念
详细:https://blog.csdn.net/qq_43530773/article/details/118250152
UML图有用例图、类图、对象图、状态图、顺序图、活动图、协作图、构件图、部署图9种。
1)用例图是从用户的角度描述系统的功能,由用例、操作者以及它们的关系连线组成。

2)类图使用类和对象描述系统的结构,展示了系统中类的静态结构,即类与类之间的相互关系。

3)对象图是类图的实例,显示某时刻对象和对象之间的关系。一个UML对象图可看成一个类图的特殊用例,实例和类可在其中显示。

4)状态图由状态机扩展而来,用来描述对象对外部对象相应的历史状态序列,即描述对象所有可能的状态,以及那些事件将导致状态的改变

5)顺序图描述了一组对象的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序

6)活动图中的活动展示整个计算步骤的控制流(及其操作数)的结点和流的图。执行步骤可以是并发或者顺序的

7)协作图又称通信图(或者合作图),用于显示系统的动作协作,类似顺序图中的交互片段,但协作图也显示对象之间的关系(上下文)

8)构件图根据系统的代码构件显示系统代码的物理结构

9)部署图用于显示系统硬件和软件的物理结构,可以显示实际中的计算机和设备(节点),以及它们之间的互连关系


5、想要具有良好的编程风格,在编码时需要注意哪些问题
1)源程序文档化
它与存在于源程序外部的文档一样,对提高程序的可读性、可理解性都非常重要。源程序的内部文档包括恰当的标识符命名、有效的注释和良好的布局等。
2)数据说明
为了使数据更容易理解和维护,在数据说明时需要遵循一定的原则
a、在进行数据说明时应该遵循一定的次序,比如那种数据类型的说明在前,哪种在后。如果数据说明能够遵循标准化的次序,那么在查询数据时就比较容易,这样能够加速测试,调试和维护进程
b、当在同一语句中说明相同数据类型的多个变量时,变量一般按照字母顺序排列
c、对于复杂数据结构的说明,为了容易理解,需要添加必要的注释。
3)语句构造
语句构造是编写代码的重要任务。语句构造的原则和方法在编码阶段尤为重要。人们在长期的软件开发实践中,总结出来的语句构造原则有以下几点。
a、不要为了节省空间而吧多条语句写在一起
b、合理的利用缩进来体现语句的不同层次结构
c、将经常使用并且具有一定独立功能的代码封装为一个函数或者公共过程
d、避免使用goto语句
e、对于含有多个条件语句的算法表达式或逻辑表达式,使用括号来清晰的表达运算顺序。
f、避免使用多层嵌套语句
g、避免使用复杂的判定条件
4)输入/输出
软件系统的输入/输出部分与用户的关系比较紧密,良好的输入/输出的实现能够直接提高用户对系统的满意度。一般情况下,对软件系统的输入/输出模块要考虑以下原则
a、对所有的输入数据都要进行严格的数据校验
b、为了方便用户,对输入格式的限制不要太严格,输入的操作尽量简洁,步骤尽量少
c、允许默认输入
d、对于交互式的输入,系统应给予用户正确的提示
e、设计良好的输出报表
f、对输出数据添加必要的注释
5)效率
对计算机资源利用率的度量,它主要是指程序的运行时间和存储器容量两个方面。原程序的运行时间主要取决于详细设计阶段确定的算法。可以使用用于代码优化的编译程序来减少程序的运行时间。使用较少的存储单元可以提高存储器的效率。提高效率的具体方法有以下几种
a、减少循环嵌套的层数。在多层循环中,可以把有些语句从外层移到内层
b、将循环结构的语句用嵌套结构的语句来表示
c、简化算数和逻辑表达式,尽量不适用混合数据类型的运算
d、避免使用多维数组和复杂的表

 
操作系统
6、说明一下交换与覆盖的区别
覆盖可以减少一个程序运行所需的空间。交换可让整个程序暂存于外存中,让出内存空间
覆盖是由程序员实现的,操作系统根据程序员提供的覆盖结构来完成程序段之间的覆盖。交换技术不要求程序员给出程序段之间的覆盖结构
覆盖技术主要对同一作业或程序进行,交换主要在作业或程序之间运行

7、说明一下分页与分段的区别
分页的作业的地址空间是单一的线性地址空间,分段作业的地址空间是二维的
“页”是信息的“物理”单位,大小固定,“段”是信息的逻辑单位,即它是一组有意义的信息,其长度不定
分页活动用户是看不见的,而是系统对于主存的管理。分段是用户可见的(分段可以在用户编程时确定,也可以在编译程序时根据信息的性质来划分)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值