文档库 最新最全的文档下载
当前位置:文档库 › 软件设计师知识点

软件设计师知识点

软件设计师知识点
软件设计师知识点

·在输入输出控制方法中,采用DMA可以使设备与主存之间的数据块传送无须CPU干预。

·内存容量为4GB,即内存单元的地址宽度为32位;字长为32位,即要求数据总线的宽度为32位。

·ARP攻击造成网络无法跨网段通信的原因是:伪造网关ARP报文使得数据包无法发送到网关。

·软件商标权的权利人是:软件注册商标所有人。

·利用商业秘密权可以对软件的信息、经营信息提供保护。(管理方法、经营方法、产销策略、客户情报、软件市场的分析、预测报告、和对未来的发展规划、招投标中的标底以及标书内容)。

·某项目组拟开发了一个大规模系统,且具备了相关领域以及类似规模系统的开发经验,则瀑布模型最适合开发此项目。

·编译程序分析源程序的阶段依次是:词法分析、语法分析、语义分析。

·结构冗余:按其方法可以分为静态、动态和混合冗余。

信息冗余:为了检测或纠正信息在运算或传输中的错误另外加的一部分信息。时间冗余:以重复执行指令或程序来消除瞬时错误带来的影响。

冗余附加技术:是指为实现上述冗余技术所需要的资源和技术。

·软件过程的改进框架:过程改进基础设施、过程改进线路图、软件过程评估方法、软件过程改进计划。每一次改进要经历4个步骤:评估、计划、改进和监控。

·软件复杂性度量的参数:软件的规模、软件的难度、软件的结构、软件的智能度。

·软件系统的可维护性评价指标包括可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率,不包括可扩展性。

·开-闭原则是面向对象的可复用设计的基石。开-闭原则是指一个软件实体应当对扩展开放,对修改关闭;里氏代换原则是指任何基类对象可以出现的地方,子类对象一定可以出现。依赖倒转原则就是要依赖于抽象,而不依赖于实现,或者说要针对接口编程,不要针对实现编程。

·汇编语言的指令语句必须要有操作码字段,可以没有操作数字段。

·贪心算法不能保证求得0-1背包问题的最优解。

·公钥体系中,私钥用于解密和签名,公钥用于加密和认证。

(用公钥加密、私钥解密可实现保密通信;用私钥加密、公钥解密可实现数字签名)

·指令系统中采用不同寻址方式的目的是:扩大寻址空间并提高编程灵活性。

·采用补码可以简化计算机运算部件的设计。

·宏病毒一般感染以DOC为扩展名的文件。(某些程序创建的文本文档、数据库、电子表格等文件)

·在IE浏览器中,安全级别最高的区域设置是:受限站点。

·哈夫曼编码是一种一致性编码,也属于熵编码。

·CIF视频格式的图像分辨率为352*288;

·数据耦合:彼此之间通过数据参数(非控制参数、公共数据结构或外部变量)来交换输入信息的;

公共耦合:一组模块都访问一个公共数据环境;

内容耦合:一个模块直接访问另一个模块的内部数据、一个模块不能通过正常入口到达另一个模块内部、两个模块有一部分程序代码重叠或者一个模块有多个入口。

·桥接(Bridge):将对象的抽象和其实现分离,从而可以独立地改变它们,抽象类定义对该抽象的接口;

组合(Composite):结构型对象模式的一个实例。

外观(Facade):描述如何用单个对象表示整个子系统。

单例(Singleton):保证一个类只产生唯一的一个实例。

·Adapter:使原本由于接口不兼容而不能一起工作的那些类可以一起工作。Command:将请求封装在对象中,这样它就可以作为参数来传递。

Singleton:保证一个类只产生一个实例。

Strategy:把算法一个一个封装起来,并使他们可以相互替换,这一模式使得算法可以独立于使用它的客户而变化。

·加密技术中对称性加密技术(RC5)的算法效率比较高——大量数据的加密。蠕虫病毒——欢乐时光、熊猫烧香

系统病毒——CIH

木马病毒——X卧底

报文摘要——数据完整性,防止发送的报文被篡改。

木马(Netspy精灵、广外女生、冰河等)

客户端——攻击者的机器上;服务端——被攻击者的机器上

包过滤技术对应用和用户是透明的。

·函数调用,在传值的情况下,将形参的值传给实参,因此形参必须是常量、变量、表达式或是函数调用。

在传地址方式下,将实参的地址传给形参,因此,实参必须有地址。

·程序的翻译:编译方式和解释方式。

编译方式:将源程序翻译为等价的目标程序,源程序的翻译和目标程序的运行时完全独立的两个阶段;

解释方式:源程序的翻译和运行是结合在一起进行的,并不生成目标代码。

编译过程基本上可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等几个阶段,其中中间代码生成和代码优化不是必须的。在词法、语义分析方面,编译方式和解释方式没有区别。

·完全图适合采用邻接矩阵存储。(无论是有向图还是无向图,边数决定了单链表中的节点数但是不影响邻接矩阵的规模。

·以太网交换机根据MAC地址进行交换;

帧中继交换机只根据虚电路号DLCI进行交换;

ATM交换机根据虚电路标识进行信元交换。

·SMTP传输的邮件报文采用ASCII格式表示。

·对称加密算法:DES(单密钥算法、采用移位和替换)、3DES、RC-5(大量明文消息进行加密传输)、IDEA(国际数据加密算法)、AES高级加密标准。

非对称加密技术:RSA(用数字签名)、DCC、DSA。

·结构化布线系统:

①工作区子系统:由终端设备到信息插座的整个区域。

②水平布线子系统:各个楼层接线间的配线架到工作区信息插座之间所安装的线缆。

③管理子系统:设置在楼层的接线间,由各种交连设备以及集线器和交换机设备组成,通过水平布线子系统连接到各个工作区的信息插座。

④干线子系统:实现各楼层设备间子系统的互联

⑤设备间子系统:是网络管理人员值班的场所,实现中央主配线架与各种不同设备之间的连接。

⑥建筑群子系统:即园区子系统,连接各个建筑物的通信系统。

·BMP图像文件格式:Windows操作系统采用的图像文件格式,BMP采用位映射存储格式,除了图像深度可选之外,一般不采用任何压缩,所以占用的存储空间比较大;

JPEG图像文件格式:有损压缩的静态图像文件存储格式,压缩比例很高,非常适用于处理大量图像的场合。

TIFF:电子出版CD-ROM中的一个图像文件格式,灵活易变。TIFF-B:适用于二值图像;TIFF-G:适用于黑白灰度图像;TIFF-P:适用于带调色板的彩色图像;

TIFF-R:适用于RGB真彩图像。能把任何图像编码成二进制形式而不丢失任何属性。

GIF:以数据块为单位来存储图像的相关信息,采用了LZW无损压缩算法按照扫描行压缩图像数据。

·数据流图:

每条数据流的起点或终点必须是加工。

必须保持父图和子图平衡。

必须要保持数据守恒。

一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或是通过该加工能产生数据。

·模块的作用范围定义为受该模块内一个判定影响的模块集合,模块的控制范围为模块本身以及所有直接或间接从属该模块的模块集合。其作用范围应该在控制范围之内。

·项目规模大、开发小组对项目需求并了解相关领域,因此可以采用瀑布开发模型;演化模式适用于对软件需求缺乏准确认识的情况。螺旋模型在开发过程中加入风险分析。喷泉模型适合于面向对象的开发方法。

·极限编程XP是一种轻量级的软件开发方式,由价值观、原则、实现和行为4部分组成,彼此间相互依赖、关联、并通过行为贯穿于整个生命周期;

水晶法Crystal认为每一个不同的项目都需要一套不同的策略、约定和方法论;并列争球法Scrum使用迭代的方法,并按需求的优先级来实现产品;

自适应软件开发ASD有6个基本原则。

·正确性维护:指改正在系统开发阶段已经发生而在系统测试阶段尚未发生的错误;

适应性维护:指使应用软件适应信息技术变化和管理需求变化而进行的修改;完善性维护:扩充功能和改善性能而进行的修改;

预防性维护:为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的编号,主动增加新的功能,避免被淘汰。

·物理层传输设备:中继器和集线器

数据链路层设备:网桥和交换机

网络层设备:路由器

应用层互联设备:网关

·UML

组件图:展现一组组件之间的相互组织和依赖,通常把组件映射为一个或多个类、接口或协作;

部署图:展现了运行处理节点以及其中构建的配置。

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

网络图:表示待开发软件系统中软件和硬件之间的物理关系。

·中断嵌套:若在处理低级中断过程中又有高级中断申请中断,则高级中断可以打断低级中断处理,转去处理高级中断,等处理完高级中断后再返回去处理原来的低级中断。实现中断嵌套用后进先出的栈保护断点和现场最有效。中断向量可提供中断服务程序的入口地址。

·常用的虚拟存储器由主存-辅存两级存储器组成。

DMA工作方式下,在主存与外设之间建立了直接的数据通路。

利用报文摘要算法生成报文摘要的目的是:防止发送的报文被篡改。

dpi是每英寸的像素点。

·统一过程模型

起始阶段:专注项目的初创活动;

精化阶段:理解了最初的领域范围之后,进行需求分析和架构演进。

构建阶段:关注系统的构建,产生实现模型。

移交阶段:关注软件提交方面的工作,产生软件增量。

产生阶段:运行软件并监控软件的持续使用,提供运行环境的支持,提交并评估缺陷报告和变更请求。

·多媒体基础知识:

表现媒体:实现信息输入输出的媒体,如键盘、鼠标、扫描仪、话筒、摄像机等。表示媒体:传输感觉媒体的中介媒体,即用于数据交换的编码,如图像编码、文本编码、声音编码等。

输入媒体;显示器、打印机、喇叭等为输出媒体。

存储媒体:用于存储表示媒体的物理介质,如硬盘、光盘等;

感觉媒体:直接作用于人的感觉器官,使人产生直接感觉的媒体,如引起听觉反应的声音,引起视觉反应的图像。

·软件需求包括:功能需求、非功能需求和设计约束。

功能需求:所开发的软件必须具备什么样的功能;

非功能需求:产品必须具备怎样的品质,如可靠性、性能、响应时间和扩展性能。设计约束:对解决方案的一些约束说明。

·软件测试基本知识。

单元测试:模块编写完成且无编译错误后进行,侧重于模块中的内部处理逻辑以及数据结构;

接受测试:主要是用户为主的测试;

安装测试:将软件系统安装在实际运行环境的测试;

回归测试:系统在有任何修改的情况下,需要对整个软件系统进行的测试。

·编译过程中为变量分配存储单元所用的地址是逻辑地址,程序运行时再映射为物理地址。

·软件复杂性的重要参数:

规模:即总指令数,或源程序行数;

难度:通常由程序中出现的操作数的数目所决定的量来表示;

结构:通常与程序结构有关的度量来表示;

智能度:算法的难易程度。

·部署图:UML部署图展现了运行处理节点以及其中组建的配置,描述代码的物理模块,用于描述系统再不同计算机系统的物理分布。部署图给出了体系结构的静态实施视图,它与组件图相关,通常一个节点包含一个或多个组件,其依赖关系类似于包图。

·状态图:UML状态图主要是描述对象、子系统、系统的生命周期。通过状态图可以了解到一个对象所能达到的所有状态以及对象收到的事件(消息、超时、错误、条件满足等)对对象状态的影响等。针对具有标记的状态和复杂的行为的对象构建状态图。状态可能由嵌套的子状态,且子状态可以是一个状态图。

用于描述一个对象在多个用例中的行为。

用于某些具有多个状态的对象而不是系统中的大多数对象。

可以用于用户界面或控制对象。

·在数据库系统中,视图是一个虚拟表,查询时可以从一个或多个基本表或视图中导出。

·集线器连接的主机构成一个冲突域,交换机的每个端口属于一个冲突域。

·泛化:一个类与它的一个或多个细化类之间的关系,表达一般与特殊的关系。关联:类与类之间的一种结构关系。

聚集:是一种关系,其中一个较大的整体类包含以一个或多个较小的部分类。组合:是一种聚合关系,其中整体负责其部分的创建和销毁,如果整体不存在了,部分也将不存在。

·程序计数器(PC)用于存放指令的地址,当程序出现转移时,则将转移地址送入PC,然后由PC给出新的指令地址。

状态寄存器用于记录运算中产生的标志信息。标志位的取值反映了ALU当前的工作状态,可以作为条件转移指令的转移条件。

通用寄存器:时CPU中的一组工作寄存器,运算时用于暂存操作数地址,在程序中使用通用寄存器可以减少访问内存的次数,提高运算速度。

累加寄存器:是一个数据寄存器,在运算过程中暂时存放操作数和中间运算结果,不能用于长时间保存一个数据。

·SISD:单指令流单数据流机器,是一种传统的串行计算机,并且在某个时钟周期内,CPU只能处理一个数据流。

SIMD:采用一个指令流处理多个数据流。这类机器在数字信号处理、图像处理以及多媒体信息处理等领域非常有效。

MISD:采用多个指令处理单个数据流,只是作为理论模型出现,没有投入实际应用。

MIMD:机器可以同时执行多个指令流,这些指令分别对不同的数据流进行操作。例如,Intel和AMD的双核处理器就属于MIMD的范围。

·系统初始化的主要任务是:以软件初始化为主,主要进行操作系统的初始化。·自底向上的集成测试策略的优点包括:不需要写桩程序。

·可维护性不受软件开发文档的影响。

·FTP使用的传输层协议是:TCP。

·属于CPU中算数逻辑单元的部件是:加法器。

·网络系统中,通常把Web置于DMZ区。

·系统测试阶段的测试来自于需求分析阶段。

·PPP中的安全认证协议是:CHAP,它使用三次握手的会话过程传送密文。

·ICMP协议属于因特网中的网络层协议,ICMP协议数据单元封装在IP数据报中传送。

·认定类是面向对象分析中非常关键的一个步骤。一般首先从问题域中得到候选类集合,再根据相应的原则从该集合中删除不作为类的,剩余的就是从问题域中认定出来的类。简要说明选择候选类的原则,以及对候选类集合进行删除的原则。选择候选类时通常考虑的是问题域中自然存在的名词。

具有下列特征的候选类需要删除:含义相近(冗余)、含义不明确的对象、暗示实现方式的、表示属性特征、有动词含义的名词(表示行为和方法)。

·员工和顾客之间是什么关系,并解释该关系的内涵。

泛化关系。泛化关系描述了一个参与者可以完成另一个参与者同样的任务,并可补充额外的角色功能。

·在绘制数据流图时,需要注意加工的绘制。请给出三种在绘制加工的输入和输出时可能出现的错误。

只有输入而无输出或黑洞;只有输出而无输入或者奇迹;输入的数据流无法通过加工产生输出流或者灰洞;输入的数据流与输出的数据流名称相同。

·类图的设计采用了中介者设计模式,试说明该模式的内涵。

使用该模式,可以使各个对象间的耦合松散,只需要关心和mediator的关系,使多对多的关系变成了一对多的关系,可以降低系统的复杂性,提高可修改的扩展性。

·策略模式

策略模式定义了一系列算法,并将每个算法封装起来,而且使它们可以相互替换。策略模式让算法独立于使用它们的客户而变化。适用于需要在不同的情况下使用不同的策略算法,或者策略还可能在未来用其它模式来实现。

·责任链:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

·命令:将一个请求封装成一个对象,从而使得使用者可以采用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。

·抽象工厂:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。

·观察者:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

·原型:用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。

·工厂方法:定义一个用于创建对象接口,让子类决定将哪一个类实例化,使一个类的实例化延迟到其子类。

·单例(Singleton):系统运行的过程中,一个类只有一个对象实例。

·生成器:将一个复杂对象的构建与它的表示分离,使同样的构建过程可以创建不同的表示。

·适配器:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一块工作。

·桥接:将抽象部分与实现部分分离,使它们都可以独立地变化。

·组合:将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。

·装饰器:描述了以透明围栏来支持修饰的类和对象的关系,动态地给一个对象添加一些额外的职责,从增加功能的角度来看,装饰器模式相比生成子类更加灵活。

·迭代器:提供一个方法顺序访问一个聚合对象中的各个元素,且不需要暴露该对象的内部表示。

·状态:使得一个对象在其内部状态改变时通过调用另一个类中的方法改变其行为,使这个对象看起来如同修改了它的类。

【欲使一个后端数据模型能够被多个前端用户界面连接,采用中介者模式最适合】

·自动售货机根据库存、存放货币量、找零能力、所选项目等不同,在货币存入并进行选择时具有如下行为:交付产品不找零、交付产品找零、存入货币不足不提供任何产品。--状态模式(State)。

·应用级网关防火墙是内部网和外部网的隔离点,它可对应用层的通信数据流进行监控和过滤。

·A和B通信时可使用(数字证书)来对用户的身份进行认证;使用(数字签名)确保信息不可否认。

·数据流图应该遵循:自顶向下、从抽象到具体。

·Theo Mandel在其关于界面设计所提出的三条“黄金准则”中,包括:用户操作控制、减轻用户记忆负担、保持界面一致。不包括界面美观整洁。

·具有n个节点的二叉树有多少种形态:

h(n)=h(n-1)*(4n-2)/(n+1)

或发f(n)=(2n)!/n!(n+1)!

·现希望该系统能够尽快投入使用,系统功能可以在使用过程中不断改善,则最适合采用的模型为:演化(迭代)模型。

·Cache的内容是主存部分内容的拷贝,Cache的命中率并不随着其容量的增大而线性的提高,Cache位于主存与CPU之间,Cache的设置并没有扩大主存的容量。

·HTTPS使用SSL协议对报文进行封装。

·根据我国商标法,烟草制品必须使用注册商标。

·在以阶段划分的编译过程中,判断程序语句的形式是否正确属于:语法分析阶段的工作。

·采用面向对象方法进行软件开发,在分析阶段,架构师主要关注系统的行为。

·CPU根据指令周期的不同阶段来区分在内存中以二进制编码形式存放的指令和数据。

·实时系统对于来自外部的事件必须在被控对象规定的时间内作出及时响应并对其进行处理。

·一般由DBA使用DBNS提供的授权功能为不同用户授权,其主要目的是为了保证数据库的安全性。

·SNMP协议的报文封装在UDP中。

·机器字长为n位的二进制数可以用补码来表示个不同的有符号的定点小数。

·计算机中CPU的中断响应时间指的是从发出中断请求到开始进入中断处理程序。

·SSH协议在终端设备与远程站点之间建立安全连接。

·ISO/IEC9126软件质量模型由三个层次组成:第一层是质量特性,第二层是质量子特性,第三层是度量指标。可靠性是一个重要的质量特性,其子特性包括成熟性、容错性和易恢复性。

·软件测试:

单元测试:主要发现程序代码中的问题,针对详细设计和软件实现阶段的工作进行的;

集成测试:验证系统模块是否能够根据系统和程序设计规格说明的描述进行工作

·DHCP协议的功能是自动分配IP地址;FTP协议的作用是文件传输,使用的传输层协议为TCP。

·优先队列通常采用堆来实现。对应于大顶堆和小顶堆,存在最大优先队列和最小优先队列。获取优先队列的最大元素的时间复杂度为(1),其它操作如调整堆,构建堆,增大优先队列中某个元素的值等为(lgn)。

·结构化开发方法由结构化分析、结构化设计和结构化程序设计构成,是一种面向数据流的开发方法。结构化的开发方法总的指导思想是自顶向下、逐层分解,基本原则是功能的分解与抽象。它是软件工程中最早出现的开发方法,特别适合数据领域的问题,但是不适合解决大规模的、特别复杂的项目,难以适应需求的变化。

·内聚性:

巧合内聚:指一个模块内的各个处理元素之间没有任何关系。

逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。

时间内聚:把需要同时执行的动作组合在一起形成的模块。

通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据。

顺序内聚:指一个模块中各个处理元素都密切相关与同一功能并且必须顺序执行,前一个功能元素的输出就是下一个功能元素的输入。

功能内聚:最强的内聚,指模块内所有的元素共同完成一个功能,缺一不可。

·中间代码:

中间代码不依赖于具体的机器;使用中间代码可提高编译程序的可移植性;中间代码的表示形式有:后缀式、三元式、四元式、和树(图);

·中断系统是计算机实现中断功能的软硬件总称。一般在CPU中设置中断机构,在外设接口中设置中断控制器,在软件上设置相应的中断服务程序。其中,中断响应时间是指从发出中断请求开始进入中断服务程序所需要的时间。

·终端设备与远程站点之间建立安全连接的协议是:SSH。SSH专为远程登录会话和其它网络服务提供安全性协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。

·机房安全属于物理安全,入侵检测属于网络安全,漏洞补丁管理属于系统安全,而数据库安全则是应用安全。

·软件设计的任务是基于需求分析的结果建立各种设计模型,给出问题的解决方

案。结构化设计方法中,概要设计阶段进行软件体系结构的设计、数据设计和接口设计;详细设计阶段进行数据结构和算法的设计。面向对象的设计方法中,概要阶段进行体系结构设计、初步的类设计/数据设计、结构设计;详细设计阶段进行构建的设计。

·程序运行时的用户空间一般划分为代码区、静态数据区、栈区和堆区。其中栈区和堆区也称为动态数据区。全局变量的存储空间在静态数据区。

·嵌入式系统初始化,按照自底向上、从硬件到软件的次序依次为:片级初始化、板级初始化、系统级初始化。

片级初始化:完成嵌入式微处理器的初始化。

板级初始化:完成嵌入式微处理器以外的其它硬件设备的初始化。

系统初始化过程:以软件初始化为主,主要进行操作系统的初始化。

·软件配置管理SCM用于整个软件工程过程,其主要目标是标识变更、控制变更、确保变更正确的实现、报告变更。其中主要内容包括版本管理、配置支持、变更支持、过程支持、团队支持、变化报告和审计支持。

·软件测试分为单元测试、集成测试和系统测试。

集成测试把模块按系统设计说明书的要求组合起来进行测试。存在多种组合的集成测试策略:自底向上、自顶向下、一次性集成、三明治集成等。其中,自底向上策略通过不断合并底层模块来测试更高层模块的方式进行。在该方法中,需要写驱动程序来调用待测试的底层模块,主要的设计问题需要到测试后期才能发现。由于从最底层的模块开始测试,因此过程中不需要写桩模块。当测试过程中发现错误时,需要进行回归测试。

·面向对象分析主要包括:认定对象、组织对象、描述对象间的相互作用、定义对象的操作、定义对象的内部信息。

面向对象设计:设计分析模型和实现相应的源代码。

面向对象程序设计:选择合适的面向对象设计语言,将程序组织为相互协作的对象集合,每个对象表示某个类的实例,类通过继承等关系进行组织。

(完整word版)最新软件设计师知识点汇总.(良心出品必属精品)

-----------------------计算机系统组成------------------------------------------ 计算机系统组成------------- 运算器:算术/逻辑运算单元ALU、累加器ACC、寄存器组、多路转换器、数据总线组成。控制器:计数器PC、时序产生器、微操作信号发生器,指令寄存器、指令译码器。CPU的功能:程序控制、操作控制、时间控制、数据处理(最根本的。 相联存储器是按内容访问的,用于高速缓冲存储器、在虚拟存储器中用来作段表页表或快表存储器、在数据库和知识库中。 CACHE高速缓存的地址映像方法:直接地址映像(主存分区,区分块、全相联映像(主存分块、组相联映像(主存分区,区分块、块成 组,CACHE分块成组。替换算法:随机、先进先出、近期最少用、优化替换算法。性能分析:H为CACHE命中率,t c为Cache存取时间、t m为主存访问时间,Cache等效访问时间t a=H t c+(1-Ht m提高了t m/t a倍。虚拟存储器由主存、辅存、存储管理单元和操作系统软件组成。 RISC精简指令集:指令种类少、长度固定、寻址方式少、最少的访内指令、CPU内有大量寄存器、适合流水线操作。 内存与接口统一编址:都在一个公共的地址空间里,独立使用各自的地址空间。优点是内存指令可用于接口,缺点内存地址不连续,读程序要根据参数判断访内还是访接口。 廉价冗余磁盘阵列RAID:0级不具备容错能力但提高了传输率N 倍、1级镜像容错技术、2级汉明码作错误检测、3级只用一个检测盘、4级是独立地对组内各磁盘进行读写的阵列,用一个检测盘、5级无专门检测盘。

软件设计实习报告

软件设计实习报告 实习之后我们需要写相关的实习报告,大家一起看看下面的软件设计实习报告,欢迎各位阅读哦! 一、实习目的: 检验与巩固理论知识,提高实际操作能力与社会实践能力。 二、实习时间: 20xx-07-27至20xx-10-23 三、实习地点: 广东广州 四、实习单位与部门: 广州**网络科技有限公司·软件开发部 五、实习内容: 应学校要求,本人于七月二十七号来到广州**网络科技有限公司实习。初到该公司,听公司负责人讲解了公司状况以及工作要求,就马上开始我的工作。从该负责人得知,公司的软件开发业务并没有多长时间,所以公司的很多工作流程还不太规范。在3个月的实习时间里,我参与了一个类似于erp的项目。项目的大致内容是:为一家中型制造业企业量身订做一套综合管理系统,包括了仓库管理,销售管理,采购管理,生产管理,财务管理以及人事管理,共六个子系统,且这六个子系统是有机的组合,以方便该企业的管理生产资源,人力资源以及财务。在整个参与过程中,在不同时间里担任的工作任务也不同。

1、八月份 据了解,该项目早在3月份就开始了,而且该项目一直是处于不受控状态,控制不了的原因有诸多,例如客户的需求发生了巨大变动,该项目进行期间有很多其他的项目插入到开发过程中等等。于是,我参与了测试程序的工作,以熟悉整个项目的具体内容,功能实现,设计方法等。在做测试工作的过程中,发现实习单位目前对测试不太重视,在以前的项目中也很少有全面的软件测试阶段。主要表现在:一方面,在我实习期间,就陆续有以前做的系统拿回来,重新做测试工作并修改。据了解,目前国内的绝大多数软件企业也是重编码轻测试,导致软件的强壮性低下,而在售后的维护阶段中经常性需要大幅度修改。这样一来,经常有不同的新老系统并行,给新系统的项目进度带来了外部干扰;另方面,公司要求的测试方法也较为简单,且测试文档的书写格式极其简单,这种书写格式在一些功能上的错误和明显的数据错误上有很好的表意效果,但是在表达程序的逻辑错误和内部数据错误时有很大的欠缺。在整个测试工作中也大概了解了该系统的各方面特性。该系统采用b/s结构开发,随着inter的高速发展、电信部门对网络线路的投入、带宽的增加等各个对b/s结构有利的条件下,采用b/s结构可以节省很多的成本。在以前采用c/s结构开发的系统中,需要为系统开发客户端,而且在维护过程中,除了对服务器端的维护,还要对各个客户端进行维护,而目前盛行的b/s结构,则只需要开发和维护服务器端,相比之下,开发和维护的成本也就大大降低。另外,b/s结构在inter里的应用性比较高。但是,b/s结

软件工程复习资料

软件概念:与计算机系统操作有关的程序、数据以及相关文档的完整集合 软件特点:逻辑实体、智力产品,制造即拷贝2无磨损和老化,不遵循“浴盆曲 线”,但存在退化问题3尚未摆脱手工方式,软件移植的需要,复杂(问题复杂性/ 程序结构复杂性),软件开发的性质如成本、进度、质量等难以估计控制,维护困难,可复用性软件分类:按功能:系统软件/支撑软件/应用软件2按工作方式:实时处理/分时/交互/批处理3按服务对象:项目 / 产品(定制 / 通用)4按失效影响:关键/ 非关键5规模:微型、小型、中型、大型、甚大型、极大型 软件危机的表现:软件开发成本和进度失控,维护代价高2用户不满意3软件 质量不可靠4软件不可维护 5无文档资料6 计算机系统中软件成本比重加大7软件开发生产率提高不能满足要求软件危机的原因软件的规模和复杂性2人类智力的局限性3协同工作的困难性4缺乏方法学和工具5用户描述不精确、二义、遗漏,双方理解有偏差缓解软件危机的途径组织管理、协同配合的工程2软件工程的理论模型、技术方法3软件工具 软件工程的三要素1过程:管理部分2方法:技术手段3工具:自动或半自 动地支持软件的开发和管理三要素的关系:相互关联与支持 软件生命周期:可行性研究-需求分析-概要设计-详细设计-实现-集成测试-确认 测试-使用与维护-退役 软件开发和测试活动之间的关系软件 开发和软件测试都是软件生命周期中的重要组成部分,软件测试是保证软件开发产物 质量的重要手段。测试是贯穿于整个开发流程了,而不是在编码完成才开始。 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工 作,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。最终得到软件产品优点是使用时间最长、应用面比较广泛的开发模型2是其他一些开发模型的基础3当前一阶段完成后,只需要去关注后续阶段缺点不能适应用户需求的变化2到最后阶段才能得到可运行的软件版本适用场合:对于规模较小,软件需求较为稳定的项目,采用模型能够显著提高软件开发的质量和效率 演化模型(原型模型)演化模型是一种全局的软件(或产品) 生存周期模型。属于 迭代开发方法。该模型可以表示为:第一次迭代(需求->设计->实现->测试->集成)->反馈->第二次迭代(需求->设计->实现->测试->集成)->反馈->……优点:1支持需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误缺点1需要为系统的每个新版本交付文档,不划算2新需求的不断增加,使系统结构退化,变更成本上升3不支持风险分析 螺旋模型1将瀑布模型与原型模型进行有机结合2增加风险分析步骤优点1支持 需求的动态变化2有助于获取用户需求,便于用户对需求的理解3尽早发现软件中的错误4支持风险分析,可降低或者尽早消除软件开发风险5适合于需求动态变化、开发风险较大的系统缺点建设周期长适用场合在需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。特别适合于大型复杂的系统 喷泉模型:软件复用与生命周期中多项开发活动集成,主要支持面向对象的开发 方法优点1软件系统可维护性较好2各阶段相互重叠,表明了面向对象开发方法各阶段间的交叉和无缝过渡3整个模型是一个迭代的过程,包括一个阶段内部的迭代和跨阶段的迭代4模型具有增量开发特性,即能做到“分析一点、设计一点、实现一点,测试一点”,使相关功能随之加入到演化的系统中5模型由对象驱动,对象是各阶段活动的主体,也是项目管理的基本内容6该模型很自然地支持软部件的重用缺点由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。 OO 为什么好oo 解决问题的思路是从现实世界中的客观对象入手,运用人类的 自然思维方式来构造软件系统,而传统的结构化方法从功能入手和信息工程化方法从信息入手。在面向对象方法中,把一切都看成是对象。OO 方法用类和对象作为系统的基本构成单位。对象对应问题域中的事物,其属性与操作刻画了事物的静态特征和动态特征,它们之间的继承关系、聚合关系、消息和关联如实地表达了问题域中事物之间实际存在的各种关系面向对象方法的特点(1)从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域中的事物为中心来思考问题、认识问题,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌(对象) (2)用对象的属性表示事物的状态特征;用对象的操作表示事物的动态特征(属性与操作)(3)对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节(封装)(4)对事物进行分类。把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例(分类)(5)复杂的对象可以用简单的对象作为其构成部分(聚集:一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称较复杂的对象为聚集,称较简单的对象为成分,称这种关系为聚集)(6)通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档,有利于复用(继承:特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承)(7) 类具有封闭性,把内部的属性和服务隐藏起来,只有公共的服务对外是可见的(类的封闭性)(8) 对象之间通过消息进行通讯,以实现对象之间的动态联系(消息)(9) 通过关联表达类之间的静态关系(关联) 自顶向下,逐步求精:从顶层开始逐层向下分解,直至系统的所有模块都小 到易于掌握为止 抽象从事物中舍弃个别的非本质的特征,而抽取共同的、本质特征的做法叫抽象。 过程抽象:将完成一个特定功能的动作序列抽象为一个函数名和参数表(模块)例: 比较字符串: int Compare (CString, CString)。数据抽象:将诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象例:Eg: 1, 2, 3,—>Integer ;软件工程书;人工智能书—>书类 封装把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部 细节。只是向外部提供接口,降低了对象间的耦合度使对象能够集中完整地描述并对应一个具体事物。意义:体现了独立性,使对象外部不能随意存取对象的内部数据,使其所含的信息对那些不需要这些信息的模块不可访问。对象的内部的修改对外部的影响很小,减少了修改引起的“波动效应”。公开静态的、不变的操作,而把动态的、易变的信息隐藏起来。 模块化将一个软件划分为一组具有相对独立功能的部件,每个部件称为一个模 块;当把所有的模块组装在一起时,便可获得满足用户需求的软件系统。为什么要进行模块化:模块化体现了“分而治之”的问题分析和解决方法。模块化的目的①进行功能分解,把复杂的大的功能划分成简单的小的子功能,尽量降低每个模块的成本。②尽量使每个模块间的接口不能太多,太多会使接口成本增加。兼顾二者可取得最佳的划分状态,确保软件总成本最低模块设计原则1信息隐藏2高内聚度(强)3低耦合度(松)什么是信息隐藏(1)模块应该设计得使其所含的信息(过程和数据)对那些不需要这些信息的模块不可访问(2)模块之间仅仅交换那些为完成系统功能所必须交换的信息信息隐藏的优点(1)支持模块的并行开发(设计和编码)(2)模块的独立性更好(3)便于系统功能的扩充(4)便于测试和维护,减少修改影响向外传播的范围模块化、信息隐藏,局部化是什么关系局部化与信息隐藏是一对密切相关的概念。局部化就是指将一些使用上密切相关的元素尽可能放在一起。对一个模块来说,局部化是期望模块所使用的数据尽可能是在模块内部定义的。因此,局部化意味着减少模块之间的联系,有助于实现模块之间的信息隐藏。在软件测试和维护期间经常需要修改一些模块的内容。信息隐藏和局部化降低了模块之间的联系,使得在修改一个模块时对其他模块的影响降到最低。“隐藏”的意思是,有效的模块化通过定义一组相互独立的模块来

软件设计师知识点

·在输入输出控制方法中,采用DMA可以使设备与主存之间的数据块传送无须CPU干预。 ·内存容量为4GB,即内存单元的地址宽度为32位;字长为32位,即要求数据总线的宽度为32位。 ·ARP攻击造成网络无法跨网段通信的原因是:伪造网关ARP报文使得数据包无法发送到网关。 ·软件商标权的权利人是:软件注册商标所有人。 ·利用商业秘密权可以对软件的信息、经营信息提供保护。(管理方法、经营方法、产销策略、客户情报、软件市场的分析、预测报告、和对未来的发展规划、招投标中的标底以及标书内容)。 ·某项目组拟开发了一个大规模系统,且具备了相关领域以及类似规模系统的开发经验,则瀑布模型最适合开发此项目。 ·编译程序分析源程序的阶段依次是:词法分析、语法分析、语义分析。 ·结构冗余:按其方法可以分为静态、动态和混合冗余。 信息冗余:为了检测或纠正信息在运算或传输中的错误另外加的一部分信息。时间冗余:以重复执行指令或程序来消除瞬时错误带来的影响。 冗余附加技术:是指为实现上述冗余技术所需要的资源和技术。 ·软件过程的改进框架:过程改进基础设施、过程改进线路图、软件过程评估方法、软件过程改进计划。每一次改进要经历4个步骤:评估、计划、改进和监控。 ·软件复杂性度量的参数:软件的规模、软件的难度、软件的结构、软件的智能度。 ·软件系统的可维护性评价指标包括可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率,不包括可扩展性。 ·开-闭原则是面向对象的可复用设计的基石。开-闭原则是指一个软件实体应当对扩展开放,对修改关闭;里氏代换原则是指任何基类对象可以出现的地方,子类对象一定可以出现。依赖倒转原则就是要依赖于抽象,而不依赖于实现,或者说要针对接口编程,不要针对实现编程。 ·汇编语言的指令语句必须要有操作码字段,可以没有操作数字段。 ·贪心算法不能保证求得0-1背包问题的最优解。

软件工程知识点总结

软件工程(简要知识点) 一、. 软件过程五个模型对比(瀑布模型、快速原型、增量、螺旋、喷泉模型) 二、可行性研究: 1、任务:用最小的代价在尽可能短的时间内确定问题是否能够解决。 2、四个方面:技术、经济、操作可行性、法律 3、数据流图四种成分:1、源点/终点2、处理3、数据存储 4、数据流 三、需求分析: 1、任务:确定系统必须完成哪些工作,对目标系统提出完整、清晰、具体的要求。 2、结构化方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 3、实体联系图:1、数据对象2、属性3、联系(1:1、1:N、M:N) 四、总体设计: 1.任务:回答“概括的说,系统应该如何实现”,用比较抽象概括的方式确定系统如何完成预定的任务,也就是说应该确定系统的物理配置方案,并且进而确定组成系统的每个程序结构。 2.系统设计阶段(确定系统具体实施方案)、结构设计阶段(确定软件结构) 3.模块独立:内聚和耦合 4. 耦合表示一个软件结构内各个模块之间的互连程度,应尽量选用松散耦合的系统

5. 内聚(Cohesion): 一个模块内各元素结合的紧密程度 6.面向数据流的设计方法:变换流和事务流 五、详细设计: 1.任务:确定应该怎样具体的实现所要求的系统,也就是说经过这个阶段的设计工作应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 2.过程设计的工具(程序流程图、盒图、PAD图、判定表、判定树) 七、测试: 1、单元测试:又称模块测试。每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试。由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方案,以检验每个模块的正确性。 2、集成测试: 在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试。这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等。 3、白盒测试技术(逻辑覆盖、基本路经测试)

2020年计算机软考软件设计师知识点精选集

2020年计算机软考软件设计师知识点精选集 需求分析:开发人员准确地理解用户的要求,实行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相对应的需求规格说明的过程。 它有以下几难点: ⑴问题的复杂性。由用用户需求涉及的因素繁多引起,如运行环境和系统功能 ⑵交流障碍。需求分析涉及人员较多,这些人具备不同的背景知识,处于不同角度,扮演不同角色,造成相互之间交流困难。 ⑶不完备性和不一致性。用户对问题的陈述往往是不完备的,各方面的需求可能还存有矛盾,需求分析要消除矛盾,形成完备及一致的定义。 ⑷需求易变性。 近几年来已提出多种分析和说明方法,但都必须适用以下原则: ⒈必须能够表达和理解问题的数据域和功能域。数据域包括数据流(数据通过一个系统时的变化方式)数据内容和数据结构,功能域反映上述三方面的控制信息。 ⒉能够把一个复杂问题按功能实行分解并可逐层细化。 ⒊建模。可更好地理解软件系统的信息,功能,行为。也是软件设计的基础。 需求分析的任务: ⒈问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求。 ⒉分析与综合,导出软件的逻辑模型

⒊编写文档:包括编写"需求规格说明书""初步用户使用手册""确认测试计划""修改完善软件开发计划" 结构化分析:简称SA,面向数据流实行数据分析的方法。采用自顶向下逐层分解的分析策略。顶层抽象地描述整个系统,底层具体地画出系统工程的每个细节。中间层则是从抽象到具体的过渡。使用数据流图,数据字典,作为描述工具,使用结构化语言,判定表,判定树描述加工逻辑。 结构化(SA)分析步骤: ⑴了解当前系统的工作流程,获得当前系统的物理模型。 ⑵抽象出当前系统的逻辑模型。 ⑶建立目标系统的逻辑模型。 ⑷作进一步补充和优化。 【篇二】2020年计算机软考软件设计师知识点:数据流图 以图形的方式描述数据在系统中流动和处理的过程。只反映系统必须完成的逻辑功能,是一种功能模型。 画数据流图的步骤: ⑴首先画系统的输入输出,即先画顶层数据流图。顶层图只包含一个加工,用以表示被开发的系统。 ⑵画系统内部,即画下层数据流图。将层号从0号开始编号,采用自顶向下,由外向内的原则。画更下层数据流图时,则分解上层图中的加工,一般沿着输出入流的方向,凡数据流的组成或值发生变化的地方则设置一个加工,一直实行到输出数据流。如果加工的内部还有数据流,则继续分解,直到每个加工充足简单,不能再分解为止。不能分解的加工称为基本加工。 ⑶注意事项:

软件设计师知识总结

软件设计师知识总结之计算机组成 计算机系统组成 运算器:算术/逻辑运算单元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停止法、总线周期分时法、总线周期挪用法。 输入输出处理机用于大型机:数据传送方式有字节多路方式、选择传送方式、数组多路方式。 指令流水线:操作周期是最慢的操作的时间。建立时间是达到最大吞吐率的时间。

软件工程知识点汇总

软件工程知识点汇总 1 软件工程、软件工程方法学:三要素 1.1 软件工程:○1应用系统化的、规范化的、可度量的方法来开发、运行和维护软件,即将工 程应用到软件;○2对○1的各种方法的研究 1.2 软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件的学科 1.3 软件工程三要素是:方法、工具、过程 软件工程的方法:是指完成软件开发各项任务的技术方法 软件工具:是指为软件工程方法的运用提供自动半自动的软件支撑环境 软件工程过程:是指将软件工程方法和工具综合起来以达到合理、及时地进行计算机软件开发这一目的 2 软件工程的原则包括:模块化原则、信息隐蔽原则、抽象化原则、模块独立原则(内聚、耦合)、 依赖倒转原则、开闭原则等 2.1 模块化原则:指解决一个复杂问题时自顶向下逐层把软件系统划分为若干模块的过程。模 块是程序中相对独立的成分,一个独立的编程单位,应有良好的编程接口,模块的大小要 适中,模块过大会使模块内部的复杂性增加不利于模块的理解和修改,模块过小会导致整 个系统表示过于复杂,不利于控制系统的复杂性。 2.2 信息隐蔽原则:采用封装技术,将程序模块的实现细节隐藏起来,使模块接口尽量简单。 2.3 抽象化原则:抽取事物最基本的特性和行为,忽略非本质细节,采用分层次抽象,自顶向 下,逐层细化的办法控制软件开发过程的复杂性。 2.4 模块独立原则:是指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少 且接口简单。要求在一个物理模块内集中逻辑上相互关联的计算机资源,保证模块间由松 散的偶合关系,模块内部有较强的内聚性,这有助于控制系统的复杂性。(即:高内聚低 耦合) 2.5 依赖倒转原则:抽象不应该依赖于细节,细节应该依赖于抽象。 2.6 开闭原则:软件实体应该是可扩展的,但是不可以修改。即对于扩展是开放的,对于更改 是封闭的。 3 软件开发模型:瀑布模型;快速原型;喷泉模型;各种模型的工作原理、阶段、每阶段任务、 特点、示意图; 软件开发模型(也称为软件过程模型):是从软件项目需求定义开始直至软件经使用后废弃为止,跨 越整个生命周期的系统开发、运行和维护所实施的全部过程、活动和任务的结构框架 3.1 瀑布模型(又称线性模型): 3.1.1工作原理:规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 前一阶段的工作成果是后一阶段工作开始的基础.所以,每个阶段都必须交出合格的文档,必须对前阶段的工作进行评审,前一阶段的工作完成后才可以开始后一阶段的工作 3.1.2 阶段: 计划时期:问题定义、可行性研究 开发时期:需求分析、设计、编码、测试 运行时期:运行和维护 3.1.3 各阶段任务: 1.需求分析和定义 在软件项目进行过程中,需求分析是从软件定义到软件开发的关键步骤,是今后软件,开发的基本依据,同时也是用户对软件产品进行验收的基本依据。需求分析和定义是以用

软件设计师知识点

软件设计师考试的总体要求 软件设计师主要完成三项工作:(1)编写文档;(2)组织指导程序员开展工作;(3)软件优化和集成测试,开发高质量软件。本工作要求具有工程师的实际工作能力和业务水平。具体讲就是,通过本考试的合格人员,能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,组织和指导程序员编写、调试程序,并对软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件。 考试内容要求 知识点的掌握程度从深到浅可分五个层次,分别要求为熟练掌握、掌握、理解、熟悉和了解。其中包括2个熟练掌握(常用数据结构和常用算法、软件设计的方法和技术)、8个掌握、2个熟悉,1个正确理解,具体体现在以下12个方面: (1) 掌握数据表示、算术和逻辑运算; (2) 掌握相关的应用数学、离散数学的基础知识; (3) 掌握计算机体系结构以及各主要部件的性能和基本工作原理; (4) 掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识; (5) 熟练掌握常用数据结构和常用算法; (6) 熟悉数据库、网络和多媒体的基础知识; (7) 掌握C程序设计语言,以及C++、Java、Visual Basic、Visual C++中的一种程序设计语言; (8) 熟悉软件工程、软件过程改进和软件开发项目管理的基础知识; (9) 熟练掌握软件设计的方法和技术; (10) 掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识; (11) 了解信息化、计算机应用的基础知识;

(12) 正确阅读和理解计算机领域的英文资料。 分析:相对于2001年考试大纲,新大纲对知识面的要求更宽,更注重软件设计开发的实践能力,这一点充分体现在下午考试中。考试内容除了技术要求外,还增加了对软件工程实践能力、安全性、标准化、法律法规等方面知识的要求,毕竟软件设计师是软件产业的骨干,因此考试要求相对较高。 二、考试范围 考试科目1:计算机与软件工程知识 本部分包含以下内容: l 计算机科学基础 l 计算机系统知识 l 系统开发和运行知识 l 安全性知识 l 标准化知识 l 信息化基础知识 l 计算机专业英语 1.计算机科学基础 1.1 数制及其转换 ·二进制、十进制和十六进制等常用制数制及其相互转换 1.2 数据的表示 ·(原码、反码、补码、移码表示,整数和实数的机内表示,精度和溢出) ·非数值表示(字符和汉字表示、声音表示、图像表示)

软件工程基础知识点总结

软件工程基础部分知识点总结 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素 3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件)

1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。 1)研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。 2)软件工程的三个要素:方法、工具和过程。 ①方法:完成软件工程项目的技术手段;

2020年计算机软件水平考试《软件设计师》知识点汇总

【篇一】2020年计算机软件水平考试《软件设计师》知识点:C++的ANSI 标准 标准化是把所编写的程序从一种类型的计算机迁移到另一种类型的计算机上的基础。标准的建立使语言在各种机器上的实现保持一致。在所有相容编译器上都可用的一组标准功能意味着,用户总是能确定下一步会获得什么结果。使用ANSI标准后,C++使应用程序可以轻松地在不同的机器之间迁移,缓解了在多个环境上运行的应用程序的维护问题。 当然,还有其他问题需要考虑。如果程序是可以移植的,那么就不能把非标准库中的特性引入代码,还必须使程序对建立该程序所使用的开发机器的依赖性降到最低,否则迁移代码就很困难。 C++的ANSI标准还有另一个优点:它对用C++编程所需要学习的部分进行了标准化。这个标准将使后续的程序具有一致性,因为它只为C++编译器和库提供了一个定义参考。在编写编译器时,该标准的存在也使编写人员不再需要许可。 【篇二】2020年计算机软件水平考试《软件设计师》知识点:如何控制需求变更 按照现代项目管理的概念,一个项目的生命周期分为启动、实施、收尾三个过程。需求变更的控制不应该只是项目实施过程考虑的事情,而是要分布在整个项目生命周期的全过程。为了将项目变更的影响降低到最小,就需要采用综合变更控制方法。综合变更控制主要内容有找出影响项目变更的因素、判断项目变更范围是否已经发生等。 进行综合变更控制的主要依据是项目计划、变更请求和提供了项目执行状况信息的绩效报告。 (1)项目启动阶段的变更预防 对于任何项目,变更都无可避免,也无从逃避,只能积极应对,这个应对应该是从项目启动的需求分析阶段就开始了。对一个需求分析做得很好的项目来说,基准文件定义的范围越详细清晰,用户跟项目经理扯皮的幌子就越少。如果需求没做好,基准文件里的范围含糊不清,被客户抓住空子,往往要付出许多无谓的牺牲。如果需求做得好,文档清晰且又有客户签字,那么后期客户提出的变更就超出了合同范围,需要另外收费。这个时候千万不能手软,这并非要刻意赚取客户的钱财,而是不能让客户养成经常变更的习惯,否则后患无穷。相对于需求来说,什么WBS、风险管理、计划进度都是次要的,只要需求做好了就会一帆风顺。 (2)项目实施阶段的需求变更

软件工程期末复习知识点整理

复习整理 、绪论 1. 软件的定义 软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所需要的数据,以及有关描述程序操作和使用的文档。(软件=程序+文档) 2.软件工程的定义 是指导计算机软件开发和维护的一门工程学科;采用工程化的原理与方法对软件进行计划、开发和维护;把证明正 确的管理技术和最好技术综合运用到软件开发中;研究经济地开发岀高质量的软件方法和技术;研究有效维护软件 的方法和技术。 3.软件危机的概念,及出现的原因 软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。 产生原因: ⑴软件规模越来越大,结构越来越复杂 ⑵软件开发管理困难而复杂。 ⑶软件开发费用不断增加。 ⑷软件开发技术落后。 ⑸生产方式落后,仍采用手工方式。 ⑹开发工具落后,生产率提高缓慢。 4.三种编程范型的特点 (1)过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构 +算法;着眼于程序的过程和基本控制结构,粒度最小 (2)面向对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对 象,粒度比较大 (3)基于构件技术的编程范型:构件是通用的、可复用的对象类;程序=构件+架构;眼于适合 整个领域的类对象,粒度最大 二、软件生存周期与软件过程 1、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动 定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期 目的:软件生存周期划分为计划、开发和运行3个时期;把整个生存周期划分为较小的阶段, 给每个阶段赋予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件复杂性变得较易控制和管理。 主要活动:需求分析、软件分析、软件设计、编码、软件测试、运行维护( P19) 2、软件生命周期划分为哪几个阶段 软件生命周期分为三个时期八个阶段: 软件定义:问题定义、可行性研究; 软件开发:需求分析、概要设计、详细设计、编码、测试; 软件运行:软件维护

软件设计师知识点汇总

1计算机系统组成 运算器:算术/逻辑运算单元ALU、累加器ACC、寄存器组、多路转换器、数据总线组成。控制器:计数器PC、时序产生器、微操作信号发生器,指令寄存器、指令译码器。CPU 的功能:程序控制、操作控制、时间控制、数据处理(最根 本的)。 CACHE高速缓存的地址映像方法:直接地址映像(主存分 区,区分块)、全相联映像(主存分块)、组相联映像(主 存分区,区分块、块成组,CACHE分块成组)。替换算法:随机、先进先出、近期最少用、优化替换算法。性能分析: H为CACHE命中率,t c为Cache存取时间、t m为主存访问时间,Cache等效访问时间t a=H t c +(1-H) t m提高了t m/t a倍。虚拟存储器由主存、辅存、存储管理单元和操作系统软件组 成。 相联存储器是按内容访问的,用于高速缓冲存储器、在虚拟 存储器中用来作段表页表或快表存储器、在数据库和知识库 中。 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,同步同时执行同一指令。多处理机:多指多数据,多处理机互连应满足高频带、低成 本、方式多样、在不规则通讯下连接的无冲突性。四种结构:总线式、交叉开关、多端口存储器结构、开关枢纽式。

软件工程知识点总结

软件工程知识点总结 软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。接下来是为大家收集的软件工程知识点总结,以供大家学习! 知识点一软件工程的基本概念 1、软件定义:是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。 1)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。 2)数据是使程序能够正常操作信息的数据结构。 3)文档是与程序开发、维护和使用有关的图文资料。 国标(GB)计算机软件的定义:与计算机系统的操作相关的计算机程序、规程、规则以及可能有的文件、文档及数据。 2、软件特点: 1)软件是一种逻辑实体,而不是物理实体,具有抽象性,是计算机的无形部分; 2)软件的生产与硬件不同,它没有明显的制作过程; 3)软件在运行、使用期间不存在磨损、老化问题; 4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题; 5)软件复杂性高,成本昂贵; 6)软件开发涉及诸多的社会因素

3、软件的分类: 按照功能可以分为:应用软件、系统软件、支撑软件(或工具软件) 1)应用软件是为解决特定领域的应用而开发的软件。 2)系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,协助用户开发软件的工具软件。 4、软件危机:是指在软件的开发和维护过程中所遇到的一系列严重问题。软件危机主要体现在以下几个方面: ①软件开发的实际成本和进度估计不准确 ②开发出来的软件常常不能使用户满意 ③软件产品的质量不高,存在漏洞,需要经常打补丁 ④大量已有的软件难以维护 ⑤软件缺少有关的文档资料 ⑥开发和维护成本不断提高,直接威胁计算机应用的扩大 ⑦软件生产技术进步缓慢,跟不上硬件的发展和人们需求增长 5、软件工程:此概念的出现源自软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。

软件设计师复习笔记重点总结

软件设计师复习笔记重点总结 一.计算机系统 基础知识: CPU功能:程序控制,操作控制,时间控制,数据处理。 组成:运算器(算术逻辑单元ALU,累加寄存器AC,数据缓冲寄存器DR,状态条件寄存器PSW),控制器(指令寄存器IR,程序计数器PC,地址寄存器AR,指令译码器ID),寄存器组(专业寄存器通用寄存器),部总线。 原码:负数把第一位改成1; 反码:正数的反码与原码相同,负数的反码是其绝对值按位求反; 补码:正数的补码与原码相同,负数补码等于其反码的末尾加1; 移码:在数X上增加一个偏移量(实际上,将补码的符号位取反); 最适合进行数字相加减的数字编码是补码,最适合浮点数阶码的数字编码是移码。 双符号位判决法:即00表示正号,11表示负号,则溢出时两个符号位就不一致了,从而可以判定发生了溢出。 符号位SF和进位标志CF进行异或运算为1时,表示运算的结果产生溢出。 浮点数:N=2^E*F E:阶码 F尾数 尾符和尾数小数点后第一位数字相异为规格化数。 校验码:奇偶校验码(在编码中增加一个校验位来使编码中1的个数为奇数(奇校验)或者偶数(偶检验),从而使码距变为2)=>只能检验一位的错误 海明码(在数据位中之间插入k个校验位,通过扩大码距来实现检错和纠错)=>既可以检测数据传输过程中出现的一位数据错误的位置加以纠正。 2^k-1>=n+k 循环冗余校验码(利用生成多项式为k个数据位产生r个校验位来进行编码,长度为r+k)校验码越长,校验能力越强; 结构,组织,实现,性能。结构只计算机系统各种应用的互联,组织指各种部件的动态联系和管理,实现指各模块设计的组装完成,性能指计算机系统的行为表现。 系统分类:单处理系统,并行处理和多处理系统,分布式处理系统(指物理上远距离而松耦合的多计算机系统,通信时间和处理时间相比已经不可忽略)。 Flynn分发:SISD单指令单数据流,SIMD单指令多数据流,MISD多指令单数据流, MIMD多指令多数据流; 阵列处理机(Array Processor)也称并行处理机(Parallel Processor)通过重复设置大量相同的处理单元PE(Processing Element),将它们按一定方式互连成阵列,在单一控制部件CU(Control Unit)控制下,对各自所分配的不同数据并行执行同一组指令规定的操作,操作级并行的SIMD计算机,它适用于矩阵运算。 译云分类:WSBS字串行位串行计算机,WPBS字并行位串行计算机,WSBP字串行位并行,WPBP字并行位并行; 指令体系:堆栈,累加器,寄存器集; CISC复杂指令集计算机 RISC精简指令集计算机(流水技术:超流水线技术,超标量技术,超长指令字技术) 存储:相联寄存器是一种按容访问的寄存器; cache地址映像方法:直接映像(地址变换简单,灵活性差),全相联映像(主存调入cache的位

软件工程概论知识点汇总

软件危机是指在计算机软件的开发和维护过程中遇到一系列严重问题。 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门。 软件工程方法学包含3个要素:方法、工具和过程 目前使用最广泛的软件工程方法学,分别是传统方法学和面向对象方法学 软件生命周期由软件定义、软件开发和运行维护3个时期组成。 软件生存周期是指一个软件从提出开发要求开始直到软件报废为止的整个时期。 通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型。 软件定义分3个阶段,即问题定义、可行性研究和需求分析。 可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。 可行性研究的主要内容包括技术可行性、经济可行性和操作可行性3个方面。 开发时期由4个阶段组成:总体设计、详细设计、编码和单元测试,综合测试。其中前两个阶段称为系统设计,后两个阶段称为系统实现。 系统流程图是概括地描绘物理系统的传统工具;而数据流图是系统逻辑功能的图形表示工具。 模型,就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。 分析建模的用处是为了更好地理解复杂事物。 软件需求分析的目标是深入描述软件的功能和性能,确定软件设计的约束和软件同其它系统元素的接口细节,定义软件的其它有效性需求。 需求分析过程应该建立3种模型,分别是数据模型、功能模型和行为模型。 数据模型中包含3种相互关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。 结构程序设计的定义:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制接口进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、判定树。 衡量模块独立程序的两个定性标准是内聚和耦合。 确认测试也称为验收测试,它的目标是验收软件的有效性。 等价划分是一种黑盒测试技术,这种技术把程序的输入域划分成若干个数据类,据此导出测试用例。一个理想的测试用例能独立发现一类错误。 软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功的运行的概率。 软件的可用性是程序在给定的时间点,按照规格说明书的规定,成功的运行的概率。 软件工程的主要目的就是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。 数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。 Jackson方法是一种面向数据结构的设计方法。 完整的软件测试一般要经过单元测试、集成测试、确认测试和系统测试等4个阶段。 模块化是指把程序划分成独立命名切可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。 软件复杂性度量的参数包括: ①规模②难度③结构④智能度 数据字典应该有下列4类元素的定义组成: 1、数据流; 2、数据流分量(即数据元素) 3、数据存储 4、处理 产生软件危机的原因?

相关文档
相关文档 最新文档