软件设计师知识总结
软考软件设计师知识点

软考软件设计师知识点软考(软件设计师考试)作为国内软件行业的重要认证考试之一,对于软件设计师的专业知识和技能有着严格的要求。
本文将系统地介绍软考软件设计师考试的重要知识点,帮助考生有效备考。
一、计算机基础知识1. 计算机组成与结构在软件设计师考试中,了解计算机的组成和结构是必不可少的。
对于计算机硬件、操作系统、数据库等方面的基本原理和架构,需做到心中有数。
2. 数据结构与算法数据结构与算法是软件设计师考试中的重中之重。
要掌握各种基本数据结构的特点和操作方式,熟悉常用算法的设计思想和实现方法,能够灵活运用于实际问题的解决。
3. 编程语言与开发工具软件设计师需要熟悉多种编程语言和开发工具,如Java、C++、Python等,掌握其语法与特性,并了解各类开发工具的使用方法,能够根据实际需求进行选用和配置。
二、软件需求与规格说明1. 需求分析与设计在软件设计师考试中,需了解软件需求分析的基本方法与技巧,掌握需求获取、需求分析和需求规格说明的过程和要求。
同时,要熟练运用建模工具(如UML)进行需求分析与设计。
2. 软件规格说明书软件设计师需要具备编写软件规格说明书的能力。
规格说明书体现了软件的设计思路和实现要求,对于开发团队的沟通和协作具有重要作用。
考生需要了解规格说明书的结构和要素,学会规范编写。
三、软件设计与实现1. 软件架构与设计模式软件的架构设计是软件设计师的核心能力之一。
需要深入了解常见的软件架构模式(如MVC、MVVM等),并能够根据实际需求选择和设计合适的软件架构。
2. 接口设计与开发软件设计师需具备熟练的接口设计和开发能力。
了解面向对象设计思想和设计原则,掌握接口设计的方法和标准,能够设计和实现稳定、高效的接口。
3. 数据库设计与优化数据库设计与优化是软件设计师需要重点关注的领域。
要了解关系数据库的基本原理和常用操作,熟悉数据库设计的规范和方法,能够进行数据库性能优化和调优。
四、软件测试与质量保证1. 软件测试方法与技术软件测试在软件开发生命周期中占据重要地位。
软件设计师基础知识

软件设计师基础知识软件设计师是指负责软件系统的设计与开发的专业人员。
他们需要具备扎实的计算机基础知识、软件工程理论知识、编程技术和系统设计能力。
以下是软件设计师基础知识的相关参考内容。
1. 计算机基础知识- 计算机的基本原理:掌握计算机的工作原理、数据存储原理和运算原理等基本概念。
- 操作系统:了解不同操作系统的特点和使用方法,如Windows、Linux等。
- 网络原理:了解网络协议、网络拓扑结构、网络安全等知识,能够进行网络编程和网络配置。
- 数据结构与算法:掌握常见的数据结构和算法,能够进行数据存储与处理。
2. 软件工程理论知识- 软件工程基本概念:了解软件生命周期、需求分析、设计、编码、测试、维护等软件开发流程。
- 面向对象编程:掌握面向对象的思想和相关的编程语言,如Java、C++等。
- 软件测试与质量保证:了解软件测试的方法和工具,掌握软件质量保证的理念,能够进行软件测试和质量评估。
- 配置管理与版本控制:了解配置管理的概念和方法,熟悉版本控制工具的使用,如Git、SVN等。
3. 编程技术- 编程语言:掌握至少一种编程语言,如Java、C++、Python 等,具备良好的编码风格和编程习惯。
- 数据库:熟悉关系数据库的设计和操作,掌握SQL语言以及常用的数据库管理系统,如MySQL、Oracle等。
- 前端开发:了解HTML、CSS、JavaScript等前端开发技术,掌握常见的前端框架和工具。
- 后端开发:了解常见的后端开发框架和技术,如Spring、Django等,能够进行Web应用的开发和部署。
4. 系统设计能力- 软件架构与设计模式:掌握常见的软件架构和设计模式,如MVC、单例模式、观察者模式等,能够进行系统架构设计。
- 需求分析与设计:具备需求分析和系统设计的能力,能够将需求转化为可实现的系统设计方案。
- 性能优化与调试:了解常见的性能优化方法和调试工具,能够排查和解决系统性能问题。
2023年软件设计师知识点

1、浮点数的表示(1)浮点数格式阶码决定范围,阶码越长,范围越大;尾数决定精度,尾数越长,精度越高。
(2)浮点数运算过程对阶→尾数计算→格式化;对阶:小数像大数看齐,尾数右移。
2、海明校验码3CPU主要由运算器、控制器、寄存器组和内部总线等部件组成。
4、流水线技术流水线建立时间:第1条指令执行时间。
流水线周期:指令分段后,最长段时间。
流水线执行时间(默认使用理论公式,无答案时考虑实践公式)。
理论公式:流水线建立时间+(指令条数-1)*流水线周期。
实践公式:指令段数*流水线周期+(指令条数-1)*流水线周期。
吞吐率=指令条数/流水线执行时间。
最大吞吐率=流水线周期的倒数。
5、Cache在计算机的存储系统体系中,Cache是(除寄存器以外)访问速度最快的层次。
解决CPU与主存之间速度容量不匹配问题。
6、输入输出技术程序控制(查询)方式:分为无条件传送和程序查询方式。
方法简单,硬件开销小,但I/O能力不高,严重影响CPU的利用率。
程序中断方式:与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度。
DMA方式:DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的。
DMA方式比程序控制方式与中断方式都高效。
7、线程同一个进程当中的各个线程,可以共享该进程的各种资源,如内存地址空间、代码、数据、文件等,线程之间的通信与交流非常方便。
对于同一个进程当中的各个线程来说,他们可以共享该进程的大部分资源。
每个线程都有自己独立的CPU运行上下文和栈,这是不能共享的(程序计数器、寄存器和栈不能共享)。
8、PV操作P操作:S=S-1(申请并锁定资源);S<0(检查资源是否足够)。
V操作:S=S+1(释放资源);S<=0(检查是否有进程排队并通知排队进程)。
S信号量:表示资源数,初值即为初始状态无操作时,资源的数量;信号量小于0的时候,还可以表示排队的进程数量。
9、前趋图与PV操作分析题技巧针对箭线标注信号量,箭线的起点位置是V操作(即前趋活动完成后以V操作通知后继活动);箭线的终点位置是P操作(即后继活动开始前以P操作检查前趋活动是否完成)。
软件设计师重点知识总结

软件设计师重点知识总结作为一名软件设计师,掌握一些重要的知识是非常关键的。
下面是我对软件设计师的重点知识总结:1.编程语言:作为软件设计师,掌握至少一种编程语言是必不可少的。
常见的编程语言包括Java、C++、Python等。
熟悉这些语言的语法和特性,能够帮助你更好地进行软件开发。
2.设计模式:设计模式是解决软件设计中常见问题的经验总结,能够提高代码的复用性和可维护性。
掌握常见的设计模式,如单例模式、工厂模式、观察者模式等,能够帮助你设计出更优雅的软件架构。
3.软件开发流程:了解软件开发的整个流程是非常重要的。
从需求分析、设计、编码、测试到部署和维护,每个阶段都有自己的重要性。
了解并遵循这些流程,能够帮助你更好地管理项目和提高软件质量。
4.数据库知识:数据库是软件设计中的重要一环。
熟悉关系型数据库如MySQL、Oracle等,以及非关系型数据库如MongoDB、Redis等,能够帮助你存储和管理数据。
5.网络通信:在今天的互联网时代,软件设计师需要了解网络通信的基础知识。
熟悉HTTP、TCP/IP等协议,理解RESTful API的设计原则,能够帮助你设计出高效、安全的网络通信方案。
6.算法和数据结构:算法和数据结构是软件设计师必备的核心知识。
了解常见的数据结构如数组、链表、栈、队列等,以及常见的算法如排序、查找、图算法等,能够帮助你解决实际问题,提高代码的执行效率。
7.安全性:软件安全性是个人信息安全的重要保障。
了解常见的安全漏洞和攻击手段,以及如何防范和解决这些问题,能够使你设计出更安全可靠的软件系统。
以上是我对软件设计师的重点知识总结。
当然,除了这些基础知识外,不断学习和实践也是非常关键的。
希望我的总结对你有所帮助!。
自己归纳的软件设计师的知识点

各种算法的知识:分治法:分解成几个小得子段,一个个的解决,在合并;动态规划法:也和分治法把问题分成若干个小问题,但是每次记录计算的结果,字段不需要重复计算。
(一般用于求最优解)贪心发:贪心算法和动态规划法类似,但是仅根据当前已有的信息做出选择,而作了选择就不会更改,是从局部考虑问题的。
回溯法:从根出发搜索问题的所有解或任一解。
分支限界法:与回溯法类似,但是只找出满足约束条件的一个解。
概率算法:近似算法:各种排序的知识:直接插入排序:在插入第i个元素时,i之前的元素已经排好,此时的R[i]和他之前的数进行比较,找到合适的位置。
时间复杂度是:O(n^2) 空间复杂度是:O(n^2);冒泡排序:首先是前两个数比较大小,选择较大的数和下面的数比,再选出较大的,第一轮选出了最大的数,第二轮除去第一轮最大的数,选出最大的,也就是大二大的。
以此类推。
时间复杂度为O(n^2)空间复杂度为O(1)选择排序:从第一个数开始,它和在他后面的数比较,如果后面的数小于它,就交换位置,否则不交换位置。
时间复杂度为O(n^2)空间复杂度为O(1)希尔排序:一般用的排序的基数是:5 ,3,1;5就是两个数之间的距离(2,21,5,4,8,7,9,7;其中2和7的距离就是5,其余以此类推),步骤是:1.选出距离是5的元素,把这几个元素排成有序的。
其余以此类推。
时间为O(n^1.3)空间O(1);快速排序:第一次把要排序的数列划分为两个部分,其中小的部分的所有元素都比较大部分最小的元素小;然后再划分较小部分为2个部分,在使用快速排序方法;时间复杂度:O(nlogn)空间复杂度:O(logn))堆排序:这里主要有大顶堆,和小顶堆,最常用的是树的构造。
大顶堆得构建是:先按层次构建二叉树,再从二叉树的下方开始,把大的元素换到根的位置。
时间复杂度为:O(nlogn)归并排序:讲几个有序的文件合并为一个有序的文件。
Html中的知识点:Alink 设置正在被鼠标击中的链接的颜色Vlink 设置使用链接的颜色Background 用于设置背景图片的urlBgcolor 设置文档整体背景颜色Mailto 是指定电子邮件的超链接瀑布模型:适合软件需求和明确的开发V模型:是瀑布模型的一种演化模式,将测试和分析与设计关联进行,加强分析与设计的验证。
软件设计师基础知识

软件设计师基础知识:
1.计算机软件:计算机软件是指计算机系统中的程序及其文档,程序是计算任务的处理对象和处理
规则的描述,文档是为了便于了解程序所需的阐述性资料。
2.软件工程基本原理:软件工程基本原理包括用分阶段的生命周期计划严格管理、坚持进行阶段评
审、实现严格的产品控制、采用现代程序设计技术、结果应能清楚地审查、开发小组的人员应少而精、承认不断改进软件工程实践的必要性。
3.软件生存周期:软件生存周期包括可行性分析与项目开发计划、需求分析、概要设计、详细设计、
编码、测试和维护等阶段。
4.软件过程:软件开发中所遵循的路线图称为“软件过程”,包括能力成熟度模型(CMM)和能力
成熟度模型集成(CMMI)。
5.码制的表示:码制表示包括定点整数和浮点数的表示方法,其中定点整数包括原码、反码和补码
的表示方法,浮点数则包括阶码和尾数的表示方法。
6.CPU组成:CPU是计算机的核心部件,由运算器和控制器组成,运算器负责执行算术运算和逻
辑运算,控制器则负责协调计算机的各个部件并控制程序的执行。
软件设计师考试核心知识

软件设计师考试核心知识软件设计师是一个专业领域,要成为一名合格的软件设计师,需要具备一定的核心知识。
本文将就软件设计师考试中的核心知识进行探讨和总结,帮助考生更好地备考。
一、软件设计原理软件设计原理是软件设计师必备的基础知识,它包括软件系统的总体设计原则、模块设计原则以及接口设计原则等。
总体设计原则要求设计师要明确软件系统的功能模块,合理划分模块之间的关系。
模块设计原则强调模块的高内聚性和低耦合性,使得不同模块之间的修改相互独立。
接口设计原则重点在于设计良好的接口,使得模块之间的交互更加简洁和清晰。
二、软件需求分析与设计软件需求分析与设计是软件开发过程中的关键步骤。
需求分析要求设计师要充分了解用户需求,明确软件系统的功能和性能要求。
在需求分析的基础上,设计师要进行软件系统的结构设计、模块划分以及算法设计等。
设计时要考虑到软件的可维护性、可扩展性以及适应性,使得软件系统具备良好的工程质量。
三、数据库设计与优化数据库设计与优化是软件设计师考试中的重要内容。
设计师需要了解数据库的基本概念和理论,掌握常见数据库的使用方法。
数据库设计要求设计师能够设计出合理的数据库结构和适当的数据字典,保证数据库的数据完整性和一致性。
此外,设计师还需要对数据库进行性能优化,提高查询效率和响应速度。
四、软件开发方法与工具软件开发方法与工具是软件设计师考试中不可忽视的一部分。
设计师需要了解各种软件开发方法的优缺点,能够选择合适的方法进行软件开发。
同时,设计师还需要掌握常见的软件开发工具,如集成开发环境(IDE)、版本控制工具等,提高开发效率。
五、软件测试与质量保证软件设计师需要具备软件测试与质量保证方面的知识。
设计师应熟悉软件测试的基本原理和方法,能够进行测试案例的设计和执行。
此外,设计师还需要了解质量保证的重要性,能够制定有效的质量保证计划,确保软件系统的质量符合要求。
六、软件项目管理软件项目管理是软件设计师考试的一项重要内容。
软件设计师必背知识点

软件设计师必背知识点一、计算机组成与体系结构。
1. 数据的表示。
- 进制转换:- 二进制、八进制、十进制、十六进制之间的相互转换。
例如,十进制转二进制可以采用除2取余法,将十进制数不断除以2,取余数,直到商为0,然后将余数从右到左排列得到二进制数。
- 二进制数的运算,包括算术运算(加、减、乘、除)和逻辑运算(与、或、非、异或)。
- 原码、反码、补码:- 原码:最高位为符号位,0表示正数,1表示负数,其余位表示数值的绝对值。
- 反码:正数的反码与原码相同,负数的反码是在原码的基础上,符号位不变,其余位取反。
- 补码:正数的补码与原码相同,负数的补码是其反码加1。
计算机中通常采用补码来表示和运算数据,因为补码可以简化减法运算,将减法转换为加法。
2. 计算机的基本组成。
- 冯·诺依曼结构:由运算器、控制器、存储器、输入设备和输出设备五大部分组成。
- 运算器:进行算术和逻辑运算的部件,如加法器、乘法器等。
- 控制器:指挥计算机各部件协调工作的部件,它从存储器中取出指令,分析指令并产生相应的控制信号,控制计算机各部件执行指令。
- 存储器:用于存储程序和数据。
分为内存储器(主存)和外存储器(辅存)。
内存储器包括随机存取存储器(RAM)和只读存储器(ROM)。
RAM是可读可写的存储器,断电后数据丢失;ROM是只读存储器,断电后数据不丢失,常用于存储BIOS等基本系统程序。
- 输入设备:如键盘、鼠标等,用于向计算机输入数据和指令。
- 输出设备:如显示器、打印机等,用于将计算机处理的结果输出。
3. 指令系统。
- 指令的格式:一般包括操作码和操作数两部分。
操作码表示指令要执行的操作,操作数表示操作的对象。
- 指令的寻址方式:- 立即寻址:操作数直接包含在指令中。
- 直接寻址:操作数的地址直接包含在指令中。
- 间接寻址:指令中给出的是操作数地址的地址。
- 寄存器寻址:操作数存放在寄存器中,指令中给出寄存器编号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件设计师知识总结之计算机组成 计算机系统组成 运算器:算术/逻辑运算单元ALU、累加器ACC、寄存器组、多路转换器、数据总线组成。
控制器:计数器PC、时序产生器、微操作信号发生器,指令寄存器、指令译码器。
CPU的功能:程序控制、操作控制、时间控制、数据处理(最根本的)。
相联存储器是按内容访问的,用于高速缓冲存储器、在虚拟存储器中用来作段表页表或快表存储器、在数据库和知识库中。
CACHE高速缓存的地址映像方法:直接地址映像(主存分区,区分块)、全相联映像(主存分块)、组相联映像(主存分区,区分块、块成组,CACHE分块成组)。
替换算法:随机、先进先出、近期最少用、优化替换算法。
性能分析:H为CACHE命中率,tc为Cache存取时间、tm为主存访问时间,Cache等效访问时间ta=H tc +(1-H) tm 提高了tm/ta 倍。
虚拟存储器由主存、辅存、存储管理单元和操作系统软件组成。
RISC精简指令集:指令种类少、长度固定、寻址方式少、最少的访内指令、CPU内有大量寄存器、适合流水线操作。
内存与接口统一编址:都在一个公共的地址空间里,独立使用各自的地址空间。
优点是内存指令可用于接口,缺点内存地址不连续,读程序要根据参数判断访内还是访接口。
廉价冗余磁盘阵列RAID:0级不具备容错能力但提高了传输率N 倍、1级镜像容错技术、2级汉明码作错误检测、3级只用一个检测盘、4级是独立地对组内各磁盘进行读写的阵列,用一个检测盘、5级无专门检测盘。
中断方式处理方法:多中断信号线法、中断软件查询法、菊花链法(硬件)、总线仲裁法、中断向量表法(保存各中断源的中断服务程序的入口地址)。
直接存储器存取DMA:内存与IO设备直接成块传送,无需CPU干涉。
根据占据总线方法不同分为CPU停止法、总线周期分时法、总线周期挪用法。
输入输出处理机用于大型机:数据传送方式有字节多路方式、选择传送方式、数组多路方式。
指令流水线:操作周期是最慢的操作的时间。
建立时间是达到最大吞吐率的时间。
总线内总线:ISA、EISA、PCI;外总线:RS-232(3根线全双工15米)、SCSI(并行外总线、16位、最大320M秒、最多63个设备20米)、USB(4条线480M秒接5层127个设备)、IEEE-1394(串行6条线 3.2G秒热插) 阵列处理机:单指多数据流SIMD,同步同时执行同一指令。
多处理机:多指多数据,多处理机互连应满足高频带、低成本、方式多样、在不规则通讯下连接的无冲突性。
四种结构:总线式、交叉开关、多端口存储器结构、开关枢纽式。
并行处理机:单指令多数据流,分布存储和共享存储两种结构。
特点资源重复、连接模式、专用性(与算法联系)、复合性。
信息安全五要素:机密性、完整、可用、可控性、可审查性。
安全等级:三类技术安全性、管理安全性、政策法规安全性。
《可信计算机系统评测标准》TCSEC/TDI分4组7级。
A1可验证安全设计、B3安全域、B2结构化安全保护、B1标记安全保护、C2受控访问控制、C1初级、D最低无安全功能。
安全威胁:对资源的机密性、完整性、可用性、合法性造成危害。
两类故意和偶然(主动&被动)。
加密技术的两个元素:算法和密钥。
对称加密即私密加密,加解密使用相同的密钥DES;非对称加密即公密加密RSA,加密公开解密保密,适合少量数据加密;不可逆加密。
常用加密算法:DES算法采用56位密钥对64位数据加密密钥太短、三重DES效果相当于密钥长度加倍;RC5算法RSA采用此算法;IDEA密钥是128位。
密钥管理:密钥产生由权威认证机构CA中心、公开密钥体系PKI、密钥分发中心KDC。
认证技术主要解决通讯双方身份认可。
PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术(包括加密、数字签名、数据完整机制、数字信封、双重数字签名)。
密钥备份恢复仅限解密密钥,私密不备份。
PKI采用证书进行公钥管理,PKI把公钥密码和对称密码结合起来,保证网上数据安全传输。
机密性(不被偷看)、完整性(不被篡改)、有效性(不被否认)。
PKI标准化有两个方面:RSA的机密密钥标准PKCS和工业基础协议PKIX。
Hash函数:输入不同长度字符返回定长串,即Hash值。
它可以在数字签名中解决验证签名和用户身份验证、不可抵赖性的问题。
信息摘要即数字指纹,它用于创建数字签名,对于特定文件信息摘要是唯一的,常用Hash函数有MD2、MD4、MD5他们都产生128位摘要。
数字签名使用发送方密钥对,使用发送方私密加密,接受方用发送方的公密解密,是一对多关系;数字加密使用接受方密钥对,公钥加密,私密解密、是多对一的关系。
SSL安全协议:即安全套接层协议,用于保证通讯安全系数。
提供三方面的服务:用户和服务器的合法认证、机密数据以隐藏被传送的数据、保证数据的完整性(采用Hash函数和机密共享技术保证数据完整性)。
数字时间戳技术:提供电子文件的日期和时间信息的安全保护。
时间戳包括三部分:需加时间戳的文件的摘要、DTS收到文件的日期和时间、DTS的数字签名。
解决局域网安全问题的技术:①划分网段、局域网交互技术、VLAN,②加密、数字签名、认证和VPN技术,③防火墙,④入侵检测技术⑤网络安全扫描技术。
计算机的可靠性:衡量一个计算机系统可靠性R、可用性A、可维修性S。
平均无故障时间MTBF=1/λ 串连系统可靠性R=R1 *R2 ;失效率λ=λ1 +λ2 并联系统:R=1-(1-R1)(1-R2) 总失效率=1/( (1/λ)* ∑(1/1..n) ) 计算机性能评测方法:时钟频率、指令执行速度、等效指令速度法、数据处理速率、核心程序法。
软件设计师知识总结之软件工程 软件工程 软件生存周期:计划、需求、设计、编码、测试、运维。
软件开发模型: 瀑布(缺乏灵活性、导致完成后才发现错误)、 演化模型(适合需求不明确的情况)、 螺旋模型(制定计划、风险分析、实施、客户评估、循环)、 喷泉模型(用于描述面向对象的开发过程,体现的迭代和无间隙特点) 需求分析任务是解决功能、性能、数据、界面(输入出数据)的要求。
成本估算模型有普特南模型和构造性成本模型。
风险分析关注三方面:关心未来、关心变化、关心选择。
风险评估的三个参照:成本、进度、性能。
进度管理常用的描述方法:甘特Gantt图(清晰反映任务起止及并行情况,不能反映依赖关系及关键所在)、计划评审技术PERT图(关键路径松弛时间,但不能反映并行)。
计算机软件工具CASE。
软件过程能力评估CMM,软件过程七原理:按周期定计划实施、逐阶段确认、严格产品控制、使用现代程序设计、明确责任、用人少而精、不断改进开发过程。
软件能力成熟度模型CMM ISO/IEC 15504:通过创建规范的软件过程、软件管理过程、软件企业过程并使三者有机结合达到管理并控制软件产品的质量。
五个级别:①初始级; ②可重复级:焦点集中在软件管理过程上、成功依赖个人和管理层的支持(关键域是需求管理); ③定义级:对整个软件生命周期的管理和工程化都已实现标准化、项目组、团队; ④管理级:开始量化管理、实现度量标准化、强烈的群体工作意识(定量过程管理、软件质量管理); ⑤优化级:软件过程持续改进(预防缺陷、技术变更、过程变更管理)。
软件质量模型ISO/IEC 9126 : 功能性(适合、准确、互用、依从、安全)、 可靠性(成熟、容错、易恢复)、 易使用性(易理解、易学、易操作)、 效率(时间特性、资源特性)、 可维护性(易分析、易改变、稳定、易测试)、可移植性(适应、易安装、一致、易替换)。
软件质量强调三点:能满足用户需求、软件应遵循标准开发准则、能满足某些隐形要求。
系统分析方法 结构化方法SA的分析结果包括:一套分层的数据流图DFD、一本数据字典(字典条目有:数据流、文件、数据项条目)、一组小说明(逻辑加工)和补充材料。
加工描述的逻辑方法:结构化语言、判定表、判定树。
系统分析报告的三个作用:描述系统逻辑模型,作为开发人员设计和实施的基础、用户和开发人员的协议和交流的基础、系统验收和评价的依据。
系统设计两大步骤 ①、总体设计即概要设计:任务分解、划分模块、确定模块功能及调用关系、决定模块界面即数据传递; ②、详细设计:代码设计、用户界面安全控制设计等。
系统设计的原则:抽象、模块化、信息隐蔽(能提高可修改性、可测试性、可移植性)、模块独立(高内聚低耦合)。
内聚低到高(偶然、逻辑、时间、过程、通信、顺序、功能); 耦合强到弱(内容、公共、控制、标记即传数据结构、数据、非直接耦合即无信息传递)。
结构化设计方法SD 信息流的两大类型:变换流(明显分为输入、加工、输出)、事务流(从事务中心辐射流出)。
面向数据结构的设计方法:Jackson图。
系统实施阶段的任务:购置安装硬件网络系统、软件准备、人力培训、数据准备、投入切换和试运行。
程序设计方法主要有:结构化方法、原型法、面向对象法。
系统测试 人工测试:即代码审查; 机器测试:只能发现症状无法定位,黑盒(功能测试测试软件外部特征)、白盒(结构测试测试对程序路径和过程测试单元测试中用)。
测试步骤: ①、单元测试:模块接口、数据结构、执行路径、出错处理、边界条件;(单元测试计划应该在详细设计阶段制定) ②、组装测试即集成测试;(集成测试计划应该在概要设计阶段制定) ③、确认测试是软件测试的最后环节包括有效性(黑盒)、软件配置审查、验收测试;(确认测试计划应该在需求分析阶段制定) ④、系统测试主要内容:恢复测试、安全性测、强调(压力)测、性能测试、可靠性测试、安装测试。
可维护性的评价指标:可理解性、可测试性、可修改性。
维护的内容:正确性维护、适应性、完善性、预防性维护。
审计在三个层次上设定:语句、特权、对象审计。
软件设计师知识总结之网络知识 网络知识 网络的功能:数据通信、资源共享、负载均衡、高可靠性。
内层通讯子网对应下三层、外层资源子网对应上三层。
按信息交互方式分为:电路交换、分组交换、综合交换网。
拓扑结构:总线、星状、环状、树状、分布式。
OSI/RM:物理层:比特流。
数据链路层:帧,流量控制、差错控制。
网络层:数据包,报文分组,路由选择、交换方式、拥塞控制、差错报告、寻址排序。
传输层:报文,报文分段、选择最适宜的网络层服务、最佳的利用网络资源。
会话层:访问验证、会话管理。
表示层:语法解释、压缩、加解密。
应用层。
网络设备:物理层:中继器(由500米扩展到1500米)、集线器。
数据链路层:网桥(帧过滤特性)、交换机(三种交换技术:端口交换、帧交换【直通交换、存储转发、碎片丢弃】、信元交换)。