Coder Social home page Coder Social logo

softwaredesign's Introduction

软考知识整理

计算机系统的基础知识

中断

中断系统是计算机实现中断功能的软硬件总称。

一般在CPU中设置中断机构,在外设接口中设置中断控制器,在软件上设置相应的中断服务程序。中断源在需要得到CPU服务时,请求CPU暂停现行工作转向为中断源服务,服务完成后,再让CPU回到原工作状态继续完成被打断的工作。中断的发生起始于中断源发出中断请求,中断处理过程中,中断系统需要解决一系列问题,包括中断响应的条件和时机,断点信息的保护与恢复,中断服务程序入口、中断处理等。

中断响应时间,是指从发出中断请求到开始进入中断服务程序所需的时间。

总线宽度

总线宽度是指总线的线数,即数据信号的并行传输能力,也体现总线占用的物理空间和成本;总线的带宽是指总线的最大数据传输率,即每秒传输的数据总量。总线宽度与时钟频率共同决定了总线的带宽。

多媒体

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

水乎分辨率表明显示器水平方向(横向)土显示出的像素点数目, 垂直分辨率表明显示器垂直方向(纵向)上显示出的像素点数目。

信息安全和病毒防护

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

软件工程

从工程管理的角度,可以将软件设计分为两个阶段:概要设计阶段和详细设计阶段。

结构化设计方法中,概要设计阶段进行软件体系结构的设计、数据设计和接口设计;

详细设计阶段进行数据结构和算法的设计。面向对象设计方法中,概要设计阶段进行体系结构设计、初步的类设计/数据设计、结构设计;详细设计阶段进行构件设计。 结构化设计和面向对象设计是两种不同的设计方法,结构化设计根据系统的数据流图进行设计,模块体现为函数、过程及子程序;面向对象设计基于面向对象的基本概念进行,模块体现为类、对象和构件等。

软件过程模型

  1. 瀑布模型将软件生存周期各个活动规定为线性顺序连接的若干阶段的模型,规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。这种方法是一种理想的开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。
  2. 原型模型从初始的原型逐步演化成最终软件产品,特别适用于对软件需求缺乏准确认识的情况。 增量开发是把软件产品作为一系列的增量构件来设计、编码、集成和测试,可以在增量开发过程中逐步理解需求。
  3. 螺旋将瀑布模型与快速原型模型结合起来,并且加入两种模型均忽略了的风险分析,适用于复杂的大型软件。

嵌入式系统初始化

过程可以分为3个主要环节,按照自底向上、从硬件到软件的次序依次为:片级初始化、板级初始化和系统级初始化。

敏捷方法的基础知识

  1. 极限编程XP是激发开发人员创造性、使得管理负担最小的一组技术.。 水晶法Crystal认为每—个不同的项目都需要一套不同的策略、约定和方法论。
  2. 并列争球法(Scram)使用迭代的方法,其中把每30天一次的迭代称为个冲刺, 并按需求的优先级来实现产品多个自组织和自治小组并行地递增实现产品,协调是通过简短的日常情况会议进行。 自适应软件开发(ASD)有六个基本的原则:

①在自适应软件开发中,有一个使命作为指导,它设立了项目的目标,但不描述如何达到这个目标;

②特征被视为客户键值的关键,因此,项目是围绕着构造的构件来组织并实现特征;

③过程中的迭代是很重要的,因此重做与做同样重要,变化也包含其中;

④变化不视为是一种更正,而是对软件开发实际情况的调整;

⑤确定的交付时间迫使开发人员认真考虑每一个生产版本的关键需求;

⑥风险也包含其中,它使开发人员首先跟踪最艰难的问题。

软件设计的基础知识

模块独立性是创建良好设计的一个重要原则,一般采用模块间的耦合和模块的内聚两个准则来进行度量。耦合程度越低,内聚程度越高,则模块的独立性越好。

存在多种模块内聚类型,从高到低依次为功能、通信、顺序、过程、时间、逻辑和偶然内聚。

  1. 过程内聚:一个模块内的几个操作是相关的,而且必须以特定的次序执行。

  2. 时间内聚:模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。

  3. 逻辑内聚:若一个模块的各个部分只是通过代码的逻辑结构相关联。

  4. 通信内聚:把访问或操作在同一数据结构的操作放在一个模块中。

软件评审

软件评审的内容包括设计质量评审、程序质量评审和与运行环境接口的评审。评审的主要目标是为了发现软件中的错误。

Mccabe 度量法

V(G)=m-n+2p;(m和n分别表示图中的边和顶点数,p为1)

UML中的关系

依赖(Dependency)是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。

关联(Association)是一种结构关系,它描述了一组链,链是对象之间的连接。

泛化(Generalization)是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象,用这种方法,子元素共享了父元素的结构和行为。

实现(Realization)是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。

设计模式

结构型模式包括 Adapter (类)、Adapter (对象)、Bridge、Composite、Decorator(装饰者)、Fafade(外观)、 Flyweight(享元) 和 Proxy(代理)。

行为型模式包括 Interpreter(解释器)、Template Method(模版)、Chain of Responsibility(责任链)、 Command(命令)、Iterator(迭代器)、Mediator(中介)、Memento Observer State Strategy 和 Visitor(观察者)。

Proxy模式的结构图如下所示:

Proxy模式适用于在需要比较通用和复杂的对象指针代替简单的指针的时候,常见情况有:远程代理(Remote Proxy)为一个对象在不同地址空间提供据不代表;虚代理 (Virtual Proxy)根据需要创建开销很大的对象;保护代理(Protection Proxy)控制对原始对象的访问,用于对象应该有不同的访问权限的时候;智能指引(Smart Reference) 取代了简单的指针,它在访问对象时执行一些附加操作。 Builder模式的结构图如下所示:

Builder模式适用于当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时;当构造过程必须允许被构造的对象有不同的表示时。 Composite模式的结构图如下所示:

Composite模式适用于:想表示对象的部分-整体层次结构;希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。 Observer模式的结构图如下所示:

Observer模式适用于:.当一个抽象模型有两个方面,其中一个方面依赖于另一个方 面。将这两者封装在独立地对象中以使它们可以各自独立地改变和复用;当对一个对象的改变需要同时改变其他对象.而不知道具体有多少对象有待改变时;当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的。

数据库(这方面较弱)

全码(All-key)是指关系模型的所有属性组是这个关系模式的候选键

front指示队头元素的位置,rear指示队尾元素之后的位置,如下图所示。若该队列的容量为M。((Q.rear-Q.front+M)%M)

数据挖掘基本概念方面

决策树:决策树方法是利用信息论中的互信息(信息增益)寻找数据库中具有最大信息量的属性字段,建立决策树的一个结点,再根据该属性字段的不同取值建设树的分支;在每个分支子集中重复建立树的下层结点和分支的过程。国际上最早的、也是最有影响的决策树方法是Quiulan研究的ID3方法。

神经网络:神经网络方法是模拟人脑神经元结构,完成类似统计学中的判别、 回归、聚类等功能,是一种非线性的模型,主要有三种神经网络模型:前馈式网络、反馈式网络和自组织网络。人工神经网络最大的长处是可以自动地从数据中学习,形成知识,这些知识有些是我们过去未曾发现的,因此它具有较强的创新性。神经网络的知识体现在网络连接的权值上,神经网络的学习主要表现在神经网络权值的逐步计算上。

遗传算法:遗传算法是模拟生物进化过程的算法,它由三个基本过程组成:繁殖(选择)、交叉(重组)、变异(突变)。采用遗传算法可以产生优良的后代,经过若干代的遗传,将得到满足要求的后代即问题得解。

关联规则挖掘算法:关联规则是描述数据之间存在关系的规则,形式为 “A1A2...An=>B1B2...Bn”。一般分为两个步骤:求出大数据项集、用大数据项集产生关联规则。

除了上述的常用方法外,还有粗集方法,模糊集合方法,Bayesian Belief Netords , 最邻近算法(K-nearest Neighbors Method, kNN)等。

URL的使用和格式的基本知识。

URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。

URL的一般语法格式为(带方括号[]的为可选项):

protocol :// hostname[:port] / path /filename
  1. protocol指定使用的传输协议,最常见的是HTTP或者HTTPS协议,也可以有其他协议,如file、ftp、, gopher、mms、ed2k等;

  2. hostname是指主机名,即存放资源的服务域名或者IP地址;

  3. port是指各种传输协议所使用的默认端口号,该选项是可选选项,

  4. path是指路径,有一个或者多个“/”分隔,一般用来表示主机上的一个目录或者文件地址;filename是指文件名,该选项用于指定需要打开 的文件名称。

算法设计与分析

优先队列是一种常用的数据结构,通常用堆实现。对应于大顶堆和小顶堆,存在最大优先队列和最小优先队列。以最大优先队列为例,优先队列除了具有堆上的一些操作, 如调整堆、构建堆之外,还有获得优先队列的最大元素,抽取出优先队列的最大元素, 向优先队列插入一个元素和增大优先队列中某个元素的值。其中除了获得优先队列的最大元素的时间复杂度为(Θ1)之外,其他几个操作的时间复杂度均为二叉树的高度,即Θ(lgn)。


2017.4.17 21:58:20

softwaredesign's People

Contributors

azcy avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.