中级软件设计师
未读第11章 标准化和软件知识产权基础知识一.知识产权的基础知识1. 知识产权的保护期限
当以单位为主体时,是没有署名权和修改权的,因为属于集体
2. 知识产权人的确定
著作权和专利权 在 单位和个人情况下的归属
单位和委托的区别在于,当合同中未确定著作权归属是,著作权默认归于单位,而委托创作中,著作权默认过属于创作方个人
3. 侵权判定
个人未发表的东西被抢先发表属于侵权
只要不进行传播、公开发表、盈利都不算侵权,具体如下:、
4. 相关法律名词解释
二 标准化基础知识1. 标准的分类
2. 标准的编号
中级软件设计师
未读第12章 软件系统分析与设计二 数据库分析和设计1. 数据库的设计步骤
需求分析阶段
概念结构设计阶段
逻辑结构设计阶段
物理设计阶段
数据库实施
...
中级软件设计师
未读第1章 计算机系统知识一 计算机硬件组成1. 五大组成部件
运算器
控制器
存储器(内存、外存、cache)
输入设备
输出设备CPU = 运算器 + 控制器主机 = CPU + 存储器
2. 中央处理器 CPU
组成:运算器、控制器、寄存器组、内部总线
功能:程序控制,操作控制,时间控制,数据处理功能
运算器组成(执行算数和逻辑运算,并进行逻辑测试,如与或非比较等)
算数逻辑单元ALU:实现对数据的算数和运算逻辑
累积寄存器AC:运算结果和源操作数的存放区
数据缓冲寄存器DR:暂时存放内存指令和数据
状态条件寄存器PSW:保存运行结果的条件码内容
控制器组成:(控制整个CPU的工作,最为重要,包括程序控制、时序控制等)
指令寄存器IR:暂存CPU执行指令
程序计数器PC:存放指令执行地址
地址寄存器AR:保存当前CPU所访问内存地址
指令译码器ID:分析指令操作码
3. 存储器
存储器结构(速度从高到低):寄存器 – 高速缓存Cache – 主存 – 外存
二 计算机体系结构1. 计算机体系结构分类
Flynn分类法
2. 指令系统
复杂指 ...
中级软件设计师
未读第2章 程序设计语言基础知识一 程序设计语言概述
程序设计语言是为了书写计算机程序而人为设计的符号语言,用于对计算过程进行描述、组织和推导
1. 各语言特点
低级语言:机器语言(计算机硬件只能识别0和1的指令程序),汇编语言
高级语言:功能更强,抽象级别更高,与人们使用的自然语言比较接近
Fortran语言,科学计算,执行效率高
Pascal语言,为教学而开发的,表达能力强,delphi
C语言,指针操作能力强,高效
...
第3章 数据结构一.线性结构1. 概念
每个元素最多只有一个出度和一个入度,表现为一条线装.线性表按照存储范式分为顺序表和链表.
2. 存储结构
顺序存储: 用一组地址联系度的存储单元一次存储线性表中的数据元素,使得逻辑上相邻的元素物理上也相邻
链式存储: 存储各数据元素的结点的地址并不要求是连续的,数据元素逻辑上相邻,物理上分开
3. 线性表
顺序存储和链式存储的对比
空间性能: 因为链表还要存储指针,所以有空间浪费的情况,因此密度小与顺序存储,因为可以动态改变容量分配更优化
时间方面: 因为指针的存在,每次查找需要耗费更多的时间,因此读取和查找顺序表更优,但是删除和插入因为顺序表每次操作完后需要依次前移或后移,因此链式更优
4. 单链表(线性表的一种)
单链表的插入和删除上图中p所执行的节点后插入s指向的节点,操作为:(像是变量赋值)s->next = p ->next;p->next=s;同理,在单链表中删除p所指向节点的后继节点q时,操作为:p->next=p->next->next;free(q)
5. 栈和队列
队列: 先进 ...
中级软件设计师
未读第4章 计算机操作系统知识一. 操作系统知识基础
特征:并发性、共享性、虚拟性、不确定性
功能:进程管理、存储管理、文件管理、作业管理
分类:批处理操作系统、分时操作系统、实施操作系统、网络操作体统、分布式操作系统、微机操作系统、嵌入式操作系统
嵌入式操作系统初始化过程按照自底向上、从硬件到软件次序:芯片级初始化(微处理的初始化)->板级初始化(板卡和其它硬件设备初始化)->系统初始化(软件及操作系统)
二. 进程管理1. 进程的组成和状态
进程的组成:进程控制快PCB(唯一标志)、程序(描述进程要做什么)、数据(存放进程执行时所需数据)
进程的三态图和五态图
进程前趋图和进程资源图
进程阻塞:资源已全部分配完,进程请求资源无法获取,如上图P2
非阻塞节点:资源还有剩余,进程请求资源可以分配,进程能够执行,如上图P1、p3
死锁:当一个资源图中所有进程都是阻塞节点时,进入死锁状态
2. 进程间的同步和互斥
3. 死锁问题
死锁产生的四个必要条件:资源互斥、每个进程占有资源并等待其他资源、系统不能剥夺进程资源、进程资源图是一个环路
死锁资源计算
有n个进程 ...
中级软件设计师
未读第5章 软件工程基础知识一. 概述1.软件工程基本原理:用分阶段的生命周期计划严格管理/坚持进行阶段评审/实现严格的产品控制/采用现代程序设计技术/结果应能清楚的审查/开发小组的人员应少而精/承认不断改进软件工程实践的必要性.
2.软件工程的基本要素方法 工具 过程
3.软件生存周期可行性分析与项目开发计划/需求分析/概要设计(选择系统解决方案,规划子系统)/详细设计(设计子系统内部具体实现)/编码/测试/维护
4.软件过程
4.1能力成熟度CMM模型对软件组织化阶段的描述,随着软件组织定义、实施、测量、控制和改进软件过程,软件组织的能力经过这些节点逐步提高。
初始级 Initial:杂乱无章、混乱、无明确定义步骤,依靠个人努力和英雄式人物的作用
可重复级 Repeatable:建立例基本的项目管理过程和实践来跟踪项目费用、速度和功能特性。有必要的过程准则来重复以前在同类项目的成功
已定义级 Defined:过程已经文档化、标准化,依靠标准软件过程来开发和维护软件 ...
中级软件设计师
未读第6章 结构化开发方法一 系统分析
系统分析是一种问题求解技术,它将一个系统分解成各个组成部分,目的是研究各个部分如何工作、交互,以实现其系统目标。
目的和任务:系统分析的主要任务是对线性系统更进一步详细调查,将调查中所得到的文档资料集中,对组织内部整体管理状况和信息处理过程进行分析,为系统开发提供所需的资料,并提交系统方案说明书。
系统分析的主要步骤
1) 认识、理解当前的现实环境,获得当前系统的”物理模型”
2) 从当前系统的”物理模型”抽象出当前系统的”逻辑模型”
对当前系统的”逻辑模型”进行分析和优化,建立目标系统的”逻辑模型”
对目标系统的逻辑模型具体化,建立目标系统的物理模型。
系统开发的目的是将现有系统的物理模型转换为目标系统的物理模型。
1. 系统结构设计基本原理
抽象(重点说明一个实体的本质方面,忽略非本质方面)
模块化 (可组合、分解和更换的单元)
信息隐蔽 (将每个程序的成分隐藏或封装在一个单一的设计模块中)
模块独立 (每个模块完成一个相对独立的特定子功能,且与其他模块之间的联系简单)
2. 模块之间的联系 耦合 和 内聚
2.1 耦 ...
中级软件设计师
未读第7章 面向对象技术(UML建模+设计模式)1. 面向对象1.1 基本概念
对象:基本的裕兴实体,为类的实例
消息:对象间通信一种构造称为消息
类:对象的抽象
继承:父类与子类
多态:不通的对象收到同一个消息产生不同反应。参数多态,包含多态,过载多态,强制多态
覆盖:子类覆盖父类同名同参的方法
函数重载:函数同名不同参数
封装:
静态类型:编译时确定,静态绑定:程序执行前已经被绑定
动态类型:运行时确定,动态绑定:运行时实际引用的对象类型决定调用那个方法
1.2 分析设计
2. UML 建模2.1 UML建模概念
UML是统一建模语言,与程序设计语言并无关系
UML构造块包括:事物,关系,图
2.2 UML建模中的事物2.2.1 结构事物
模型的静态部分名称
2.2.2 行为事物
模型的动态部分:交互,活动,状态机
2.2.3 分组事物 和 注释事物
分组事物 模型的组织部分,例如:包
注释事物 模型的解释部分
2.3 UML建模中的关系
依赖:一个事物依赖于另一个事物的变化而变化
关联:结构关系,描述了一组链,分为组合和聚合(聚集)。是部分和整体的关系。组合关系更强。
泛化 ...
中级软件设计师
未读第8章 算法设计与分析一 算法基础知识1. 算法的特性
算法是对特定问题求解步骤的一种描述,他是指令的有限序列,其中每一条指令表示一个或多个操作.
1.有穷性.一个算法总是在执行有穷步骤之后结束,且每一步都可在有穷时间内完成.
2.确定性.算法中的每一条指令必须有确切的含义,理解时不会产生二义性.并且在任何条件下,算法只有唯一的一条路径,即对于相同的输入只能得出相同的输出.
3.可行性.一个算法是可行的,即算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现.
4.输入.一个算法有零个或多个输入,这些输入取决于某个特定的对象的集合.
5.输出.一个算法有一个或多个输出,这些输出是同输入有着某些特定关系的量.
2. 算法分析
时间复杂度
时间复杂度是一个大概的规模表示,一遍以循环次数表示,O(n)说明时间是n的正比,log对数的时间复杂度一般在查找二叉树的算法中出现。渐进符号O表示一个渐进变化程度,实际变化必须小于等于O括号内的渐进变化度。
空间复杂度
二 算法分析基础:查找算法1. 顺序查找
顺序查找: 将查找的关键字key从头到尾与表中的元素进行比较,存在则返 ...