软件设计师-错题回顾
功能性
可靠性
易用性
效率
维护性
可移植性
适合性
容错性
易学性
时间特性
可测试性
适应性
准确性
易恢复性
易理解性
资源特性
可修改性
易安装性
互用性
成熟性
易操作性
稳定性
一致性
依从性
易分析性
可替换性
安全性
应用级网关防火墙是内部网和外部网的隔离点,它可对应用层的通信数据流进行监控和过滤
和安全电子邮箱服务有关的是SSL、HTTPS、PGP
镇网病毒是种破坏工业基础设施的恶意代码,利用系统漏洞攻击工业控制系统,是一种危害性极大的蠕虫病毒
数据流图建模应遵循自顶向下、从抽象到具体
10个成员组成的开发小组,若任意两人之间都有沟通路径,则共有()条沟通路径
M = n * (n-1) / 2 n代表成员45 = 10 * 9 / 2共有45条沟通路径
某文件系统采用位示图(bitmap)记录磁盘的使用情况,若计算机系统的字长为64位,磁盘的容量为1024GB.物理块的大小为4MB,那么位示图的大小需要()个字
1. 计算物理块数 物理块数 = 磁盘总容量 / 物理块大小 1024GB ...
软件设计师-第十章(计算机网络)
网络功能分类计算机网络是计算机技术与通信技术相结合的产物,它实现了远程通信、远程信息处理和资源共享。计算机网络的功能:数据通信、资源共享、负载均衡、高可靠性。计算机网络按分布范围和拓扑结构划分如下图所示:
网络分类
缩写
分布距离
计算机分布范围
传输速率范围
局域网
LAN
10m左右
房间
4Mbps ~ 1Gbps
局域网
LAN
100m左右
楼寓
4Mbps ~ 1Gbps
局域网
LAN
1000m左右
校园
4Mbps ~ 1Gbps
城域网
MAN
10km
城市
50Kbps ~ 100Mbps
广域网
WAN
100km以上
国家或全球
9.6Kbps ~ 45Mbps
总线型(利用率低、干扰大、价格低)
星型(交换机形成的局域网、中央单元负荷大)
环型(流动方向固定、效率低扩充难)
树型(总线型的扩充、分级结构)
分布式(任意节点连接、管理成本高)
OSI七层模型
层
功能
单位
协议
设备
应用层
对用户不透明的提供各种服务,如E-mail。
数据
Telnet、FTP、HTTP、SMTP、 POP3、DNS ...
软件设计师-第九章(数据库)
数据库的基本概念
数据:是数据库中存储的基本对象,是描述事物的符号记录。
数据的分类:文本、图形、图像、音频、视频等。
数据库DB:是长期存储在计算机内、有组织的、可共享的大量数据的集合。
数据的基本特征:数据按一定的数据模型组织、描述和存储。
可为各种用户共享;
冗余度较小;
数据独立性较高;
易扩展;
数据库系统DBS:是一个采用了数据库技术,有组织地、动态地存储大量相关数据,方便多用户访问的计算机系统。由下面四个部分组成:
数据库:统一管理、长期存储在计算机内的,有组织的相关数据的集合
硬件:构成计算机系统包括存储数据所需的外部设备
软件:操作系统、数据库管理系统(DBMS)及应用程序
人员:系统分析和数据库设计人员、应用程序员、最终用户、数据库管理员DBA
三级模式两级映像三级模式是数据的三个抽象级别,每个级别关心的重点不同。为了使三级模式之间产生关联,数据库管理系统在三级模式之间提供了二级映像功能。二级映像是一种规则,它规定了映像双方如何进行转换。通过二级映像,体现了逻辑和物理两个层面的数据独立性
外模式:面向应用程序,描述用户的数据试图(View);
概念模式( ...
软件设计师-第八章(算法设计与分析)
分治法
分治法:对于一个规模为n的问题,若该问题可以容易地解决则直接解决问题;否则将其分解为k各规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解决这些子问题,然后将各子问题的解,合并得到原问题的解。
步骤:分解(将原问题分解成一系列子问题)————求解(递归地求解各子问题,若子问题足够小,则直接求解) ————合并(将各子问题的解合并成原问题的解)。 凡是涉及到分组解决的都是分治法(二分查找、归并排序、求阶乘、斐波那契数列等)。
递归:指子程序(函数)直接调用自己或通过一系列调用语句间接调用自己,是一种描述问题合解决问题的常用方法。 递归的两个基本要素:边界条件(确定递归何时终止,即递归出口)、递归模式(大问题如何分解成小问题,即递归体)
回溯法回溯法(Backtracking)是一种选优的暴力搜寻法。但是,由于暴力,回溯法的时间复杂度较高,又称为试探法,按优选条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为回溯点。
一般用于解决迷宫类的问题。其思路 ...
软件设计师-第七章(面向对象技术)
面向对象基本概念面向对象分析:是为了确定问题域,理解问题。包含五个活动:认定对象(按自然存在的实体确定对象)、组织对象(分析对象关系,抽象成类)、对象间的互相作用(描述各对象在应用系统中的关系)、确定对象的操作(操作,如创建增加删除等)、定义对象的内部信息(属性)
面向对象设计:是设计分析模型和实现相应源代码,在目标代码环境中这种源代码可被执行。设计问题域的解决方案。面向对象程序设计:用面向对象程序设计语言实现设计方案。详见案例分析。面向对象测试:与普通测试步骤并无不同。可分为四个层次:
算法层(测试类中定义的每个方法,类似单元测试)
类层(测试同一个类中所有方法与属性的互相作用,特有的模块测试)
模板层(测试一组协同工作的类之间的互相作用,类似集成测试)
系统层(类似系统测试)
UML图UML是统一建模语言,和程序设计语言并无关系。UML三个要素:UML的基本构造快、支配这些构造块如何放置在一起的规则和运用与整个语言的一些公共机制。UML的基本构造快包括:事务(对模型中最具有代表性的成分的抽象)、关系(把事务结合在一起)、图(聚集了相关的事务)。UML中有四种事务:结构事务、行为 ...
软件设计师-第六章(结构化开发方法)
系统设计的基本原理高内聚、低耦合
从高到低
类型
特点
记忆
偶然内聚
一个模块内的各处理元素之间没有任何联系
无直接关系
逻辑内聚
模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能
逻辑相似、参数决定
时间内聚
把需要同时执行的动作组合在一起形成的模块
同时执行
过程内聚
一个模块完成多个任务,这些任务必须按指定的过程程序执行
指定的过程顺序
通信内聚
模块内的所有处理元素都在同一个任务
相通数据结构、相通输入输出
顺序内聚
一个模块中各个处理元素都密切相关同一个功能必须执行 前一个功能元素的输出就是下一个功能元素的输入
顺序执行、输入为输出
功能内聚
最强内聚,模块内的所有单元共同作用完成一个功能,缺一不可
共同作用、缺一不可
从低到高
类型
特点
记忆
无直接耦合
两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,不传递任何信息
无直接关系
数据耦合
两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递
传递数据值调用
标记耦合
两个模块之间传递的是数据结构
传递数据结 ...
软件设计师-第五章(软件工程)
软件工程
软件工程基本原理
用分阶段的生命周期计划严格管理
坚持进行阶段评审
实现严格的产品控制
采用现代程序设计技术
结果应能清楚地审查
开发小组的人员应少而精
承认不断改进软件工程实践的必要性
软件生存周期
可行性分析与项目开发计划
目标:确定软件开发目标及可行性
输出:可行性分析报告、项目开发计划
需求分析
目标:确定软件系统要做什么,以及它的功能、性能、数据和界面等要求,从而确定系统的逻辑模型。
输出:软件需求说明书
概要设计
目标:明确软件中的模块、模块的层次结构、模块的调用关系和功能。明确数据库结构
输出:概要设计说明书
详细设计
目标:明确模块的控制结构
输出:详细设计说明书
编码
目标:将过程描述转变为程序代码
输出:某种特定语言的源代码
测试
目标:保证软件质量
输出:软件测试计划、测试用例、软件测试报告
维护
能力成熟度模型-CMM
能力等级
特点
初始级
软件过程的特点是杂乱无章,有时甚至很混乱,几乎没有明确定义的步骤,项目的完成全依赖个人的努力和英雄式核心人物的作用。
可重复级
建立了基本的项目管理过程和实践来跟踪项目费 ...
软件设计师-第四章(操作系统)
操作系统
操作系统的概述
操作系统的作用:通过资源管理提高计算机系统的效率;改善人机界面向用户提供友好的工作环境
操作系统的特征:
并发性
共享性
虚拟性
不确定性
操作系统的功能:
进程管理
存储管理
文件管理
设备管理
作业管理
操作系统的分类:
批处理操作系统
分时才做系统(轮流使用CPU工作片)
实时操作系统
网络操作系统
分布式操作系统(物理分散的计算机互联系统)
微机操作系统(Windows)
嵌入式操作系统
计算机启动的基本流程为:BIOS –> 主引导记录(CD、USB、硬盘等) –> 操作系统
进程管理进程的组成和状态进程是计算机中正在运行程序的实例。它是操作系统进行资源分配和管理的基本单位,包括代码、数据和执行状态等信息。
进程的组成:
进程控制块(PCB)
程序(描述进程要做什么)
数据(存放进程执行时所需数据)
进程基础的状态是下左图中的三态图,这是系统自动控制时只有三种状态,就绪态、运行态、等待态。而下右图中的五态,是多了两种状态:静止就绪和静止阻塞,需要人为的操作才会进入对应状态,活跃就绪即就绪,活跃阻塞即等待。
可知,当人 ...
软件设计师-第三章(数据结构)
数据结构flowchart LR
A[数据结构] --> B(线性结构)
B --> B1(线性表)
B --> B2(栈和队列)
B --> B3(串)
A --> C(数组、矩阵、广义表)
A --> E(树)
A --> F(图)
A --> G(查找)
A --> H(查找)
程序 = 数据结构 + 算法
线性结构:每个元素最多只有一个出度和一个入度,表现为一条线状。线性表按存储方式分为:1.顺序表2.链表
存储结构:顺序结构:用一组地址连续的存储单元,依次存储线性表中的数据元素,使得逻辑上相邻的元素物理上也相邻。链式存储:存储个数据元素的结点的地址并不要求是连续的,数据元素逻辑上相邻,物理上分开
顺序存储和链式存储区别
性能类别
具体项目
顺序存储
链式存储
空间性能
存储密度
=1,最优
<1
空间性能
容量分配
事先确定
动态改变,更优
时间性能
查找运算
O(n/2)
O(n)
时间性能
读运算
O(1),更优
O ...
软件设计师-第二章(程序设计语言基础)
程序语言处理基础
区别
编译
解释
区别代码
生成,并优化
不生成
独立的可执行文件
生成
不生成,逐行边翻译边执行
执行效率
较快
较慢(反复扫描源程序)
占用内存
较少
较多
灵活性
较低
较高(反复扫描源程序)
可移植性
较差
较高
Python: x = [ 1 , 2 ] = list列表 tuple(元组)是一种不可变、有序的序列结构 dict(字典)、list(列表)、set(集合) 可变的
程序设计语言分类
低级语言:机器语言(只能识别0和1的指令序列),汇编语言
高级语言:功能更强,抽象级别更高,与人们使用的自然语言比较接近
常见的编程语言
SQL语言(数据库结构化语言)
Pascal(为教学而开发的,表达能力更强)
C语言(指针操作能力强,高效)
Python(脚本语言,胶水语言)
C++(面向对象,高效)
Java(面向对象,中间代码,跨平台)
C#语言(面向对象,中间代码,.net)
JavaScript(脚本语言,网页动态效果,嵌入在html中)
编译和解释:都是将高级语言翻译成计算机硬件认可的机器语言 ...