系统架构设计师 - 知识分类汇总

1. 计算机组成与体系结构

  • 流水线
    • 吞吐率是指单位时间里流水线处理机流出的结果数。对指令而言即为单位时间里执行的指令数。
      • =指令条数/ 流水线执行时间
      • 精确值、近似值(n 趋向于无穷大的结果)都可以,看选项里有哪一个
    • 加速比
      • =不用流水线的执行时间/使用流水线的执行时间
  • 校验与纠错
    • CRC码计算及校验原理的最通俗诠释
    • 步骤
      • 选择多项式(可以随便选,也可以按标准选,国际上有通行的标准选择,但最高位和最低位必须均为“1”)
      • 根据多项式的二进制位数,往信息码后面补相应个数的0
      • 然后用补充后的信息码除以多项式的二进制码,主要每次相减用的是异或操作
      • 除到最后一步后的余数,就是想要的校验码
        • 余数的位数一定要是比除数位数只能少一位,哪怕前面位是0,甚至是全为0(附带好整除时)也都不能省略。
      • 在信息传输过程中,这个余数要放到原信息码后面用于校验,然后发送出去
      • 接收方再把这个新帧以“模2除法”方式除以前面选择的除数,如果没有余数,则表明该帧在传输过程中没出错,否则出现了差错。
  • CPU
    • DSP采用的哈佛结构是程序和数据空间分开的。
    • CPU的主频=外频*倍频
  • 总线
  • 存储
    • 存储体系结构包括不同层次上的存储器,通过适当的硬件、软件有机地组合在一起形成计算机的存储体系结构。例如,由髙速缓存(Cache)、主存储器(MM)和辅助存储器构成的3层存储器层次结构存如下图所示。 
    • 接近CPU的存储器容量更小、速度更快、成本更高,辅存容量大、速度慢,价格低。采用分级存储体系的目的是解决存储的容量、价格和速度之间的矛盾。
    • 磁盘
      • 磁盘调度管理
        • 最短移臂调度算法指距离现在移动臂位置最近的柱面号请求将优先得到响应(移动臂移动距离最短),而对于同样柱面号不同扇区号的请求,将按磁头旋转时的划过顺序,可以简单理解为扇区号小的优先响应。
        • 处理记录的时间
          • 磁盘旋转期间,可以在经过记录时,顺便取出来记录
          • 磁盘旋转期间,可以同时处理记录,因此优化记录存储后,可以让记录之间的旋转时间正好等于处理时间,那么就可以不间断的进行并行处理了
          • 如果完全没优化,按照题目给定的记录存储位置,最差的情况下可以使每次处理刚读上来的记录处理后,正好错过了下一个记录,那么就只能再转一整圈回来读这个下一条记录了
      • RAID
        • RAID是英文Redundant Arrayof Independent Disks的缩写,中文简称为独立冗余磁盘阵列。简单地说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式称为RAID级别(RAID Levels)。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据备份。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求。常用的RAID级别有以下几种:NRAID,JBOD,RAIDO,RAID1,RAID1+0,RAID3,RAID5等。目前经常使用的是RAID5和RAID(1+0)。如果使用物理硬盘容量不相等的硬盘做RAID,那么创建的RAID阵列的总容量为较小的硬盘的计算方式。
        • RAID5的存储机制是两块存数据,一块存另外两块硬盘的交易校验结果。RAID5的建立后,坏掉一块硬盘,可以通过另外两块硬盘的数据算出第三块的,所以至少要3块。RAID5是一种旋转奇偶校验独立存取的阵列方式,它与RAID3,RAID4不同的是没有固定的校验盘,而是按某种规则把奇偶校验信息均匀地分布在阵列所属的硬盘上, 所以在每块硬盘上,既有数据信息也有校验信息。这一改变解决了争用校验盘的问题,使得在同一组内并发进行多个写操作。所以RAID5既适用于大数据量的操作,也适用于各种事务处理,它是一种快速、大容量和容错分布合理的磁盘阵列。当有N块阵列盘时,用户空间为N-1块盘容量。
    • 双缓冲与单缓冲
      • 在存储系统写数据的过程中,出于性能上的考虑,新写的数据并不是每次都flush到目标存储中的,而是先放入到一个buffer空间里,等到buffer空间满了,再做一次flush出去的动作。
      • 这种单缓冲设计模式还是存有一个主要弊端的,当缓冲数据满后将会阻塞住后面的数据操作直到缓冲数据完全flush出去。更简单的来说,这里会有个throughput的问题。那么有什么改进办法呢,答案是利用另外一个缓冲构成双缓冲模式。
      • 双缓冲设计将缓冲区分为2份,1份为当前缓冲区buf current,另外1份为预写入分区buf ready,两个缓冲区空间大小一致。current区负责当前的写操作存放,当我们达到缓冲处罚条件时,执行一次双缓冲的调换操作。然后由另外的程序执行ready区的flush操作。被交换变为空缓冲区的current区重新用于这的数据写入。
    • 文件系统
      • 采用文件索引节点法存储的文件系统可表示的单个文件最大长度是:(直接地址索引可存地址+一级间接地址索引可存地址+二级间接地址索引可存地址+...)*磁盘数据块大小
        • 不管直接地址索引可存地址、一级间接地址索引可存地址还是二级间接地址索引可存地址,地址也是存储在物理块中的,所以首先要算出一个物理块可以存多少个地址,其实这也就是直接地址索引可存地址数量,等于磁盘索引块大小/地指项大小
        • 二级间接地址可以存储的物理块数量是一级间接地址的平方,以此类推
  • DMA(直接存储器访问)
    • 直接主存存取( Direct Memory Access,DMA)是指数据在主存与I/O 设备间的直接成块传送, 即在主存与I/O 设备间传送数据块的过程中, 不需要CPU作任何干涉,只需在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时由CPU进行处理,实际操作由DMA 硬件直接完成, CPU在传送过程中可做其它事情。
  • RISC(精简指令系统计算机)与CISC(复杂指令系统计算机)
    • 特点
      • 指令长度固定,指令种类尽量少
      • 增加寄存器数目,以减少访存次数
      • 用硬布线电路实现指令解码,以尽快完成指令译码
  • 嵌入式系统
    • 嵌入式处理器是嵌入式系统的核心部件,一般可分为嵌入式微处理器(MPU) 、微控制器(MCU) 、数字信号处理器(DSP)和片上系统(SOC)。
      • MPU并没有提升性能,故不适用于运算量较大的智能系统。
      • MCU 典型代表是单片机,体积小从而使功耗和成本下降
      • DSP 处理器对系统结构和指令进行了特殊设计,适合数字信号处理
      • SOC 是一个有专用目标的集成电路, 其中包括完整系统并有嵌入式软件的全部内容
    • 嵌入式操作系统是应用于嵌入式系统,实现软硬件资源的分配,任务调度,控制、协调并发活动等的操作系统软件。它除了具有一般操作系统最基本的功能如多任务调度、同步机制等之外,通常还会具备以下适用于嵌入式系统的特性:面向应用,可以进行检查和移植,以支持开放性和可伸缩性的体系结构;强实时性,以适应各种控制设备及系统;硬件适用性,对于不同硬件平台提供有效的支持并实现统一的设备驱动接高可靠性,运行时无须用户过多干预,并处理各类事件和故障;编码体积小,通常会固化在嵌入式系统有限的存储单元中。
    • MMU
      • MMU是存储器管理单元的缩写,是用来管理虚拟内存系统的器件。MMU通常是CPU的一部分,本身有少量存储空间存放从虚拟地址到物理地址的匹配表。此表称作TLB(转换旁置缓冲区)。所有数据请求都送往MMU,由MMU决定数据是在RAM内还是在大容量存储器设备内。如果数据不在存储空间内,MMU将产生页面错误中断。
      • MMU的两个主要功能是将虚地址转换成物理地址,控制存储器存取允许。MMU关掉时,虚地址直接输出到物理地址总线。
      • Cortex-M3处理器采用ARMv7-M架构,它包括所有的16位Thumb指令集和基本的32位Thumb-2指令集架构。Cortex-M3支持线程模式和处理模式。在复位时处理器进入“线程模式”,异常返冋时也会进入该模式,特权和用户(非特权)模式代码能够在“线程模式”下运行。出现异常模式时处理器进入“处理模式”,在处理模式下,所有代码都是特权访问的。μC/OS-II可以运行在Cortex-M3处理器上。
    • 存储部件
      • 高速缓冲存储器(Cache)其原始意义是指存取速度比一般随机存取记忆体(RAM)来得快的一种RAM寄存器快,寄存器是CPU里的,当然是最快的。
      • 存取速度:寄存器>Cache>RAM>Flash?
    • 软件设计层面的功耗控制可以从以下方面展开:
      • 软硬件协同设计,即软件设计要与硬件的匹配,考虑硬件因素。
      • 编译优化,采用低功耗优化的编译技术。
      • 减少系统的持续执行时间,从算法角度进行优化。
      • 用“中断”代替“查询”。
      • 进行电源的有效管理。
    • 嵌入式数据库管理系统
      • 嵌入式系统的数据库系统称为嵌入式数据库系统或嵌入式实时数据库系统。嵌入式系统必须能够在没有人工干预的情况下,长时间不间断地运行,因此要求高的可靠性。同时要求数据库操作具备可预知性,而且系统的大小和性能也都必须是可预知的,以保证系统的性能。嵌入式系统需要与底层硬件打交道,因此在数据管理时,也要有底层控制的能力,如什么时候会发生磁盘操作,磁盘操作的次数,如何控制等。底层控制的能力是决定数据库管理操作的关键。
      • 嵌入式数据库管理系统一般只提供本机服务接口,为前端应用提供基本的数据支持。

2. 操作系统

  • 进程管理
    • PCB(进程控制块)
    • 三种方式
      • 线性(顺序)
        • 所有的PCB都组织在一张线性表中,该表的首地址放在内存的一个专用区域,每次使用都遍历整张表,适合进程数目较少的操作系统。
      • 链接
        • 将具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列,这样可以形成就绪队列、阻塞队列和空白队列等。
      • 索引
        • 即系统根据进程状态不同,建立几张索引表。
        • 三态模型
    • 进程前趋图
      • 从第一个节点开始,按层次,先是第一层的,再是第二层的......
    • PV操作
      • 如果公共数据单元是一个临界资源,最多允许1个终端进程使用,因此需要设置一个互斥信号量S,初值等于1
      • 进入临界区时执行P操作,退出临界区时执行V操作
  • 死锁与活锁
    • 与操作系统一样,封锁的方法可能引起活锁和死锁。
      • 例如事务T1封锁了数据R,事务了T2请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。然后T4又请求封锁R,当:T3释放R上的封锁后系统又批准了T4的请求,……T2有可能长期等待,这就是活锁(申请同一资源)。避免活锁的简单方法是采用先来先服务的策略。即让封锁子系统按请求封锁的先后次序对事务排队。数据R上的锁一旦释放就批准申请队列中的第一个事务获得锁。
      • 又如事务T1封锁了数据R1,T2封锁了数据R2,T3封锁了数据R3。然后T1又请求封锁R2,T2请求封锁R3,T3请求封锁R1。于是出现T1等待T2释放R2上的封锁,T2等待T3释放R3上的封锁,T3等待T1释放R1上的封锁。这就使得三个事务永远不能结束。即多个事务都请求封锁别的事务已封锁的数据,导致无法运行下去的现象称为死锁(循环申请不同资源)
  • 实时操作系统(RTOS)
    • 实时系统的正确性依赖于运行结果的逻辑正确性和运行结果产生的时间正确性,即实时系统必须在规定的时间范围内正确地响应外部物理过程的变化。
    • RTOS 实质上就是一个计算机资源管理程序,需要及时响应实时事件和中断
    • 实时多任务操作系统是根据操作系统的工作特性而言的。实时是指物理进程的真实时间。
    • 实时操作系统是指具有实时性,能支持实时控制系统工作的操作系统。首要任务是调度一切可利用的资源来完成实时控制任务, 其次才着眼于提高计算机系统的使用效率,重要特点是要满足对时间的限制和要求。
    • 一个实时操作系统可以在不破坏规定的时间限制的情况下完成所有任务的执行。任务执行的时间可以根据系统的软硬件的信息而进行确定性的预测。也就是说,如果硬件可以做这件工作,那么实时操作系统的软件将可以确定性的做这件工作。
    • 实时操作系统可根据实际应用环境的要求对内核进行裁剪和重新配置, 根据不同的应用,其组成有所不同。

3. 数据库系统

  • 关系模式及关系运算(演算)
    • 自然连接会自动去除列名相同的重复列
    • 投影运算:只保留指定列
    • 注意关系运算表达式中,投影和自然连接使用的列序号,是去重之后的,比如ABC和CDE关联,那么1是A,2是B,3是C,4就是D了,5是E,4不是第二个表中的C!
    • 为了提高查询效率,先做选择,再做关联;指定用什么列进行关联要比自然连接快
  • 码、函数依赖与范式
    • 就是用来区分实体集中不同实体的属性集合。
    • 超码是一个或多个属性的集合,这些属性的组合可以使我们在一个实体集中惟一地标识一个实体。
    • 通常只关心这样的超码: 它们的任意真子集都不能成为超码,这样的最小超码称为候选码
  • 数据仓库
  • 静态转储与动态转储
    • 静态转储是转储期间不允许对数据库进行任何存取、修改活动。动态转储是转储期间允许对数据进行存取或修改。本题要求转存全部数据。
  • 分布式数据库
    • 二阶段提交(Two-phaseCommit)是指,在计算机网络以及数据库领域内,为了使基于分布式系统架构下的所有节点在进行事务提交时保持一致性而设计的一种算法(Algorithm)。通常,二阶段提交也被称为是一种协议(Protocol))。在分布式系统中,每个节点虽然可以知晓自己的操作时成功或者失败, 却无法知道其他节点的操作的成功或失败。当一个事务跨越多个节点时, 为了保持事务的ACID特性,需要引入一个作为协调者的组件来统一掌控所有节点(称作参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交(比如将更新后的数据写入磁盘等等)。因此,二阶段提交的算法思路可以概括为:参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中止操作。
      • 所谓的两个阶段是指: 第一阶段:准备阶段(表决阶段)和第二阶段: 提交阶段(执行阶段)。
      • 准备阶段:事务协调者(事务管理器)给每个参与者(资源管理器)发送Prepare 消息,每个参与者要么直接返回失败(如权限验证失败),要么在本地执行事务,写本地的redo 和undo 日志,但不提交,到达一种万事俱备,只欠东风的状态。提交阶段: 如果协调者收到了参与者的失败消息或者超时, 直接给每个参与者发送回滚(Rollback)消息;否则,发送提交(Commit)消息;参与者根据协调者的指令执行提交或者回滚操作,释放所有事务处理过程中使用的锁资源。(注意:必须在最后阶段释放锁资源)
    • 分片透明是指用户或应用程序不需要知道逻辑上访问的表具体是怎么分块存储的。复制透明是指采用复制技术的分布方法,用户不需要知道数据是复制到哪些节点,如何复制的。位置透明是指用户无须知道数据存放的物理位置,逻辑透明,即局部数据模型透明,是指用户或应用程序无须知道局部场地使用的是哪种数据模型。

4. 计算机网络

  • 分层
  • DiffServ
    • 区分服务( DiffServ )是一种保证QoS的网络技术。用户( 或网络边界节点) 通过设置每个数据包的DS 字段(IPV4 首标中的服务类型(ToS) 字段或IPV6 首标中的通信类(Traffic Class) 字段) 的值要求特定的服务等级。
    • IETF集成服务(IntServ)工作组根据服务质量的不同,把Internet服务分成了三种类型:
      • 保证质量的服务(Guranteed Services):对带宽、时延、抖动和丢包率提供定量的保证;
      • 负载受控的服务(Comrolled-load Services):提供一种类似于网络欠载情况下的服务,这是一种定性的指标;
      • 尽力而为的服务(Best-Effort):这是Internet提供的一般服务,基本上无任何质量保证。
  • IPv6
    • IPv6地址增加到128位,并且能够支持多级地址层次;地址自动配置功能简化了网络地址的管理;在组播地址中增加了范围字段,改进了组播路由的可伸缩性;增加的任意播地址比IPv4中的广播地址更加实用。
    • 每个主机拥有不止一个的IPv6地址
    • IPv6地址是一个或一组接口的标识符。IPv6地址被分配到接口,而不是分配给结点。IPv6地址有三种类型:单播(Unicast)地址、任意播(AnyCast)地址、组播(Multicast)地址
    • 状态自动配置与无状态自动配置
      • 除了状态自动配置, IPv6 还采用了一种被称为无状态自动配置( Stateless Auto Configuration )的自动配置服务。具体地说,在无状态自动配置过程中,主机首先通过将它的网卡MAC地址附加在链接本地地址前缀1111111010 之后,产生一个链接本地单播地址。
  • 管理距离
    • 管理距离AD是指一种路由协议的路由可信度。每一种路由协议按可靠性从高到低,依次分配一个信任等级,这个信任等级就叫管理距离。
    • AD值越低, 则它的优先级越高。一个管理距离是一个从0—— 255 的整数值, 0 是最可信赖的,而255 则意味着不会有业务量通过这个路由。静态路由一般默认AD为1。
  • DNS
    • A记录代表“主机名称”与“IP”地址的对应关系,作用是把名称转换成IP地址。
    • PTR记录代表“IP地址”与“主机名”的对应关系,作用刚好与A记录相反。
  • DHCP
  • 协议
    • IPSec是IETF制定的IP层加密协议,PKI技术为其提供了加密和认证过程的密钥管理功能。IPSec主要用于开发新一代的VPN。
    • L2TP是一种二层协议主要是对传统拨号协议PPP的扩展,通过定义多协议跨越第二层点对点链接的一个封装机制,来整合多协议拨号服务至现有的因特网服务提供商点,保证分散的远程客户端通过隧道方式经由Internet等网络访问企业内部网络。
    • PAP协议是二层协议PPP协议的一种握手协议,以保证PPP链接安全性。
    • HTTPS是一个安全通信通道,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,所有的数据在传输过程中都是加密的。
    • MIME与S/MIME
      • MIME(Multipurpose Internet Mail Extensions)中文名为:多用途互联网邮件扩展类型。Internet 电子邮件由一个邮件头部和一个可选的邮件主体组成,其中邮件头部含有邮件的发送方和接收方的有关信息。而MIME 是针对邮件主体的一种扩展描述机制。它设定某种扩展名的文件用一种应用程序来打开的方式类型, 当该扩展名文件被访问的时候, 浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名, 以及一些媒体文件打开方式。所以这是与邮件内容直接相关的一个协议。
      • 而S/MIME (Secure Multipurpose Internet Mail Extensions)是对MIME 在安全方面的扩展。它可以把MIME 实体(比如数字签名和加密信息等)封装成安全对象。增强安全服务, 例如具有接收方确认签收的功能, 这样就可以确保接收者不能否认已经收到过的邮件。还可以用于提供数据保密、完整性保护、认证和鉴定服务等功能。
      • S/MIME 只保护邮件的邮件主体,对头部信息则不进行加密,以便让邮件成功地在发送者和接收者的网关之间传递。
  • 网络规划/设计
    • 利用需求分析和现有网络体系分析的结果来设计逻辑网络结构,最后得到一份逻辑网络设计文档,输出内容包括以下几点:
      • 1、逻辑网络设计图
      • 2、IP 地址方案
      • 3、安全方案
      • 4、招聘和培训网络员工的具体说明
      • 5、对软硬件、服务、员工和培训的费用初步估计
    • 物理网络设计是对逻辑网络设计的物理实现, 通过对设备的具体物理分布、运行环境等确定,确保网络的物理连接符合逻辑连接的要求。输出如下内容:
      • 1、网络物理结构图和布线方案
      • 2、设备和部件的详细列表清单
      • 3、软硬件和安装费用的估算
      • 4、安装日程表,详细说明服务的时间以及期限
      • 5、安装后的测试计划
      • 6、用户的培训计划
    • 层次化路由的含义是指对网络拓扑结构和配置的了解是局部的, 一台路由器不需要知道所有的路由信息, 只需要了解其管辖的路由信息, 层次化路由选择需要配合层次化的地址编码。而子网或超网就属于层次化地址编码行为。
    • 网闸
      • 双主机系统,即使外网被黑客攻击瘫痪也无法影响到内网
      • 可以防止外部主动攻击
      • 设备对外网的任何响应都是对内网用户请求的应答
    • 大型局域网三层模型
      • 三层模型将大型局域网划分为核心层、汇聚层和接入层,每一层都有特定的作用。
        • 核心层是因特网络的高速骨干网,由于其重要性,因此在设计中应该采用冗余组件设计。在设计核心层设备的功能时,应尽量避免使用数据包过滤和策略路由等降低数据包转发速率的功能。如果需要连接因特网和外部网络,核心层还应包括一条或多条连接到外部网络的连接。
        • 汇聚层是核心层和接入层之间的分界点,应尽量将资源汸问控制、流量的控制等在汇聚层实现。为保证层次化的特性,汇聚层应该向核心层隐藏接入层的细节,例如不管接入层划分了多少个子网,汇聚层向核心层路由器进行路由宣告时,仅宣告由多个子网地址汇聚而成的网络。为保证核心层能够连接运行不同协议的区域网络,各种协议的转换都应在汇聚层完成。
        • 接入层为用户提供在本地网段i方问应用系统的能力,也要为相邻用户之间的互访需求提供足够的带宽。接入层还应该负责一些用户管理功能,以及户信息的收集工作。
    • 结构化布线系统
      • 分为6个子系统:工作区子系统、水平子系统、管理子系统、干线(或垂直)子系统、设备间子系统和建筑群7系统。其中水平子系统是指各个楼层接线间的配线架到工作区信息插座之间所安装的线缆系统,其作用是将干线子系统与用户工作区连接起来。

5. 软件工程

  • 软件设计
    • 软件设计分为概要设计和详细设计两个阶段。
    • 软件设计活动包括4个活动:数据设计,软件结构设计,人机界面设计,过程设计。
  • 软件重用
    • 可重用的软件元素包括程序代码、测试用例、设计文档、设计过程、需球分析文档甚至领域知识。通常,可重用的元素也称作软构件,可重用的软构件越大,重用的粒度越大。
  • 结构化程序设计
    • 结构化分析方法的基本思想是自顶向下,逐层分解,把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题。经过逐层分解,每个最低层的问题都是足够简单、容易解决的。结构化方法分析模型的核心是数据字典,围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型(也称为状态模型)。在实际工作中,一般使用E-R图表示数据模型,用DFD表示功能模型,用状态转换图表示行为模型。这三个模型有着密切的关系,它们的建立不具有严格的时序性,而是一个迭代的过程。
  • 面向对象分析与设计
    • "4+1"视图模型
      • UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分,以及它们的关联性、交互机制和指导原则等提供系统设计的信息。具体来说,就是指以下5个系统视图:
        • 逻辑视图。逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集。
        • 进程视图。进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构。
        • 实现视图。实现视图对组成基于系统的物理代码的文件和构件进行建模。
        • 部署视图。部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。
        • 用例视图。用例视图是最基本的需求分析模型。
      • 逻辑视图
      • 开发视图
      • 进程视图
      • 物理视图
      • 场景
        • 静态视图
        • 动态视图
    • 用例
      • 包含关系。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例。
      • 扩展关系。如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰。
      • 泛化关系。当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。
  • 设计模式
    • 设计模式的目的,可划分为创建型、结构型、行为型;创建型模式五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式; 结构型模式七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式; 行为型模式十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
  • 面向构件的编程
    • 面向构件的编程(Component Oriented Programming ,COP)
      • 需要的基本支持包括多态性(可替代性),模块封装性(高层次信息的隐藏),后期绑定和装载(部署独立性)、安全性(类型和模块安全性)。
      • 构件是一组通常需要同时部署的原子构件。构件和原子构件之间的区别在于, 大多数原子构件永远都不会被单独部署, 尽管它们可以被单独部署。相反, 大多数原子构件都属于一个构件家族,一次部署往往涉及整个家族。
      • 一个原子构件是一个模块和一组资源。一个模块是不带单独资源的原子构件。
      • 构件的特性是:
        • (1)独立部署单元;
        • (2)作为第三方的组装单元;
        • (3)没有(外部的)可见状态。
      • 一个构件可以包含多个类元素, 但是一个类元素只能属于一个构件。将一个类拆分进行部署通常没什么意义。
      • 对象的特性是:
        • (1)一个实例单元,具有唯一的标志。
        • (2)可能具有状态,此状态外部可见。
        • (3)封装了自己的状态和行为。
    • CORBA
      • 可移植对象适配器POA的主要作用是在底层传输平台与接收调用并返回结果的对象实现之间进行协调。
      • POA规范引入了伺服对象Servant的概念,使抽象的CORBA对象能和实现该对象功能的具体编程语言实体彻底分离。CORBA对象是作为伺服对象Servant 实现的。
    • Java
      • EJB
      • J2EE 连接器架构Java Connector Architecture JCA 是对J2EE标准集的重要补充。因为它注重的是将Java 程序连接到非Java 程序和软件包中间件的开发。
      • Java 消息服务JMS用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java 消息服务是一个与具体平台无关的API。
      • Java 接口描述语言JavaIDL 是Java 2 开发平台中的CORBA功能扩展。JavaIDL 使得利用 OMGID L 能够定义服务对象的基本功能, 并且将 IDL 根据 CORBA规范的要求, 映射到 Java语言,并以此开发出标准的具有互操作性和可连接性的分布式应用。
  • 面向服务系统
    • 业务流程执行语言( Business Process Execution Language, BPEL ),也叫业务过程执行语言, 是一种基于XML的,用来描写业务流程的编程语言, 被描写的业务流程的每个单一步骤则由Web服务来实现。BPEL的目标是要实现业务流程定义格式的标准化,使得公司之间可以通过Web服务无缝的进行交互。
  • 软件架构&体系结构
    • 一个体系结构定义一个词汇表一组约束。词汇表中包含一些构件连接件类型, 而这组约束指出系统是如何将这些构件和连接件组合起来的。
    • 风格
      • 体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。
      • 软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。
      • 具体分类
        • 面向对象架构风格
          • 是将应用或系统任务分割成单独、可重用、可自给的对象, 每个对象包含数据,以及与对象相关的行为。
        • 黑板系统
          • 传统应用是信号处理领域,如语音和模式识别。
          • 语音识别系统是一个十分典型的专家系统,其特点是求解的正确结果不止一个,求解过程比较复杂,需要通过专家知识和反馈逐步得到正确结果。黑板结构特别适合求解这类问题。
        • 管道-过滤器
          • 输入某个构件,经过内部处理,产生数据输出的系统,正是管道-过滤器中过滤器的职能,把多个过滤器使用管道相联的风格为管道-过滤器风格。
        • 事件驱动系统
        • C2架构/体系结构风格
          • C2 体系结构风格可以概括为:通过连接件绑定在一起按照一组规则运作的并行构件网络。
          • C2风格中的系统组织规则如下。
            • ①系统中的构件和连接件都有一个顶部和一个底部。
            • ②构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部。而构件与构件之间的直接连接是不允许的。
            • ③一个连接件可以和任意数目的其他构件和连接件连接。
            • ④当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。
        • 解释器
          • 该软件系统特别强调用户定义系统中对象的关系和行为这一特性,这需要在软件架构层面提供一种运行时的系统行为定义与改变的能力
        • 仓库风格/数据仓储
        • 过程控制
          • 其特点是不断采集系统当前状态,与系统中的设定状态进行对比,并通过将当前状态与设定状态进行对比从而进行控制。
        • 规则系统
          • 规则系统比较适合根据外邹事件,以自身状态为基础自动进行处理和动作的场景。
    • 基于软件架构的设计
      • 根据基于软件架构的设计的定义,基于软件架构的设计( Architecture BasedSoftware Development,ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。它强调采用视角和视图来描述软件架构, 采用用例和质量属性场景来描述需求。进一步来说, 用例描述的是功能需求, 质量属性场景描述的是质量需求(或侧重于非功能需求)。
    • 体系结构文档化过程
      • 体系结构文档化过程的主要输出结果是体系结构规格说明和测试体系结构需求的质量设计说明书这两个文档。软件体系结构的文档要求与软件开发项目中的其他文档是类似的。文档的完整性和质量是软件体系结构成功的关键因素。文档要从使用者的角度进行编写, 必须分发给所有与系统有关的开发人员, 且必须保证开发者手上的文档是最新的。
    • 特定领域软件架构(Domain Specific Software Architecture, DSSA)
      • 参与 DSSA 的人员分为4 种角色:领域专家、领域分析师、领域设计人员、领域实现人员。其基本活动包括领域分析、领域设计和领域实现。
      • 特定领域软件架构(Domain Specific Software Architecture,DSSA)以一个特定问题领域为对象,形成由领域参考模型、参考需求、参考架构等组成的开发基础架构,其n标是支持一个特定领域中多个应用的生成。DSSA的基本活动包括领域分析、领域设计和领域实现。其中领域分析的主要目的是获得领域模型,领域模型描述领域中系统之间共同的需求,即领域需求;领域设计的主要目标是获得DSSA,DSSA描述领域模璀中表示需求的解决方案;领域实现的主要目标是依据领域模型和DSSA开发和组织可重用信息,并对基础软件架构进行实现。参加DSSA的人员可以划分为多种角色,其中领域分析者的任务是控制整个领域分析过程,进行知识获取,将获取的知识组织到领域模型中;领域设计者的任务是根据领域模型和现有系统开发出DSSA,并对DSSA的准确性和一致性进行验证。
    • 架构权衡分析方法(Architecture Tradeoff Analysis Method, ATAM)
      • 架构权衡分析方法是一种系统架构评估方法,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。ATAM可以分为4个主要的活动阶段,包括需求收集、架构视图描述、属性模型构造和分析、架构决策与折中,整个评估过程强调以属性作为架构评估的核心概念。
    • 质量属性
    • 可修改性(Modifiability) 是指能够快速地以较高的行价比对系统变更的能力。可修改性包含可维护性、可扩展性、结构重组、可移植性4 个方面。
    • 软件维护
      • 在系统运行过程中,软件需要维护的原因是多样的。根据维护的原因不同,可以将软件维护分为以下4种:
        • 改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程称为改正性维护。
        • 适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方法、数据存储介质)可能发生变化。为使软件适应这种变化而修改软件的过程称为适用性维护。
        • 完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提髙软件的可维护性。这种情况下进行的维护活动成为完善性维护。
        • 预防性维护。指预先提髙软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。
    • 界面设计
      • 用户界面设计的基本原则是从实践中总结出来的一些设计规则。Theo Maiidel在他的界面设计著作中提出3条“黄金规则”:
        • 让用户拥有控制权。用户希望控制计算机,而不是被计算机控制,因此在设计人机界面时应遵循以下原则:交互模式的定义不能强迫用户进入不必要的或不希望的动作的方式;提供灵活的交互;允许用户交互可以被中断和撤销;当技能级別增长时可以使交互流水化并允许定制交互;使用户隔离内部技术细节。
        • 减少用户的记忆负担。要求用户记住的东西越多,与系统交互时出错的可能也越大,因此好的用户界面设计不应加重用户的记忆负担。减少用户记忆负担的设计原则为:减少对短期记忆的要求;建立有意义的默认值;定义直觉性的捷径;界面的视觉布局应该基于真实世界的隐喻;以不断进展的方式祸示信息。
        • 保持界面一致。用户应该以一致的方式展示和获取信息,这意味着:所有可视信息的组织遵循统一的设计标准,所有屏幕显示都遵守该标准。输入机制被约束到有限的集合内,在整个软件系统中被一致地使用,同时从任务到任务的导航机制也被一致地定义和实现。保持界面一致性的设计原则包括以下内容:允许用户将当前任务放在有意义的语境中;在应用系列内保持一致性;不要改变用户己经熟悉的用户交互模型。
  • 系统构建
    • 系统移植
      • 移植工作大体上分为计划阶段、准备阶段、转换阶段、测试阶段、验证阶段。
        • 1、计划阶段,在计划阶段,要进行现有系统的调查整理,从移植技术、系统内容(是否进行系统提炼等)、系统运行三个方面,探讨如何转换成新系统,决定移植方法,确立移植工作体制及移植日程。
        • 2、准备阶段,在准备阶段要进行移植方面的研究,准备转换所需的资料。该阶段的作业质量将对以后的生产效率产生很大的影响。
        • 3、转换阶段,这一阶段是将程序设计和数据转换成新机器能根据需要工作的阶段。提高转换工作的精度, 减轻下一阶段的测试负担是提高移植工作效率的基本内容。
        • 4、测试阶段,这一阶段是进行程序单元、工作单元测试的阶段。在本阶段要核实程序能否在新系统中准确地工作。所以,当有不能准确工作的程序时, 就要回到转换阶段重新工作。
        • 5、验证阶段,这是测试完的程序使新系统工作,最后核实系统,准备正式运行的阶段。
  • 逆向工程、再工程、设计恢复等
    • 所谓软件的逆向工程就是分析已有的程序,寻求比源代码更高级的抽象表现形式。一般认为,凡是在软件生命周期内将软件某种形式的描述转换成更为抽象形式的活动都可称为逆向工程。
    • 重构( restructuring),指在同一抽象级别上转换系统描述形式;
    • 设计恢复( design recovery),指借助工具从已有程序中抽象出有关数据设计、总体结构设计和过程设计的信息(不一定是原设计);
    • 再工程( re-engineering),也称修复和改造工程,它是在逆向工程所获信息的基础上修改或重构已有的系统,产生系统的一个新版本。
  • 测试
    • 动态测试和静态测试
      • 动态测试(也可分为边界值分析、逻辑覆盖、基本路径)
        • 黑盒测试法
        • 白盒测试法
        • 灰盒测试法
      • 静态测试
        • 静态测试是指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。静态测试包括对文档的静态测试和对代码的静态测试。对代码的静态测试包括控制流分析、数据流分析、接口分析和表达式分析。
          • 控制流分析。控制流分析是指使用控制流程图检査被测程序控制结构的过程。例如,可检查被测程序是否存在没有使用的语句或子程序、是否调用并不存在的子程序,以及是否存在无法达到的语句等。
          • 数据流分析。数据流分析是指使用控制流程图分析数据各种异常情况的过程,包括数据初始化、賦值或引用过程中的异常。例如,引用未定义的变量、对以前未使用的变量再次陚值等程序差错或异常情况。
          • 接口分析。接口分析主要包括模块之间接口的一致性分析、模块与外部数据库及其他软件配置项之间的一致性分析、子程序和函数之间的接口一致性分析等。例如可以检查函数形参与实现的数量、顺序、类型和使用的一致性。
          • 表达式分析。表达式分析用于检查程序代码中的表达式错误。例如,括号不配对、数组引用越界、除数为零,以及浮点数变量比较时的误差等错误。
        • 桌面检查(Desk Checking)
        • 代码审查
        • 代码走查
    • 单元测试
      • 单元测试也称为模块测试,测试的对象是可独立编译或汇编的程序模块、软件构件或面向对象软件中的类(统称为模块),其目的是检查每个模块能否正确地实现设计说明中的功能、性能、接口和其他设计约束等条件,发现模块内可能存在的各种差错。单元测试的技术依据是软件详细设计说明书。
      • 测试一个模块时,可能需要为该模块编写一个驱动模块和若干个桩模块。驱动模块用来凋用被测模块,它接收测试者提供的测试数据,并把这些数据传送给被测模块,然后从被测模块接收测试结果,并以某种可见的方式将测试结果返回给测试人员;桩模块用來模拟被测模块所调用的子模块,它接受被测模块的调用,检验调用参数,并以尽町能简单的操作模拟被调用的子程序模块功能,把结果送回被测模块。顶层模块测试时不需要驱动模块,底层模块测试时不要桩模块。
      • 单元测试策略主要包括自顶向下的单元测试、自底向上的单元测试、孤立测试和综合测试策略。
        • 自顶向下的单元测试先测试上层模块,再测试下层模块。测试下层模块时由于它的上层模块已测试过,所以不必另外编写驱动模块。
        • 自底向上的单元测试。自底向上的单元测试先测试下层模块,再测试上层模块。测试上层模块由于它的下层模块己经测试过,所以不必另外编写桩模块。
        • 孤立测试不需要考虑每个模块与其他模块之间的关系,逐一完成所有模块的测试。由于各模块之间不存在依赖性,单元测试可以并行进行,但因为需要为每个模块单独设计驱动模块和桩模块,增加了额外的测试成本。
        • 综合测试。上述三种单元测试策略各有利弊,实际测试时可以根据软件特点和进度安排情况,将几种测试方法混合使用。
    • 集成测试
      • 也称为组装测试、联合测试。它将已通过单元测试的模块集成在一起, 主要测试模块之间的协作性。从组装策略而言, 可以分为一次性组装和增量式组装, 集成测试计划通常是在软件概要设计阶段完成的。
    • 软件确认测试
      • 一种针对需求的测试,是用户参与的测试。它主要验证软件功能、性能及其它特性是否与用户需求一致。
      • 软件确认测试包括:内部确认测试、Alpha、Beta和验收测试。

6. 项目管理

  • 项目范围管理
    • 项目范围是为了达到项目目标,为了交付具有某种特制的产品和服务,项目所规定要做的。在信息系统项目中,产品范围是指信息系统产品或者服务所应该包含的功能,项目范围是指为了能够交付信息系统项目所必须做的工作。产品范围是项目范围的基础,产品的范围定义是信息系统要求的度量,而项目范围的定义是生产项目计划的基础。产品范围描述是项目范围说明书的重要组成部分。
    • 在初步项目范围说明书中已文档化的主要的可交付物、假设和约束条件的基础上准备详细的项目范围说明书, 是项目成功的关键。范围定义的输入包括以下内容:
      • 项目章程。如果项目章程或初始的范围说明书没有在项目执行组织中使用,同样的信息需要进一步收集和开发,以产生详细的项目范围说明书。
      • 项目范围管理计划。
      • 组织过程资产。
      • 批准的变更申请。
  • 项目成本管理
    • 项目成本管理的几个主要过程是:
      • 成本估算:编制一个为完成项目各活动所需要的资源成本的近似估算。
      • 成本预算:将总的成本估算分配到各项活动或工作包上,来建立一个成本的基线。
      • 成本控制:控制项目预算的变更。
  • 需求管理
    • 每一项需求都必须完整、准确地描述即将要开发的功能
    • 需求必须能够在系统及其运行环境的能力和约束条件内实现
    • 每一项需求记录的功能都必须是用户的真正的需要
    • 理想情况下,每一项用户、业务需求和功能需求都应具备下列性质。
      • 完整性。每一项需求都必须完整地描述即将交付使用的功能。它必须包含开发人员设计和实现这项功能需要的所有信息。
      • 正确性。每一项需求都必须准确地描述将要开发的功能。判断正确性的参考是需求来源,如实际用户和高级的系统需求。如果一项软件需求与其相对应的系统需求发生冲突,这是不正确的。
      • 可行性。需求必须能够在系统及其运行环境的已知能力和约束条件内实现。
      • 必要性。每一项需求记录的功能都必须是用户的真正需要,或者是为符合外部系统需求或标准而必须具备的功能。每项需求都必须来源于有权定义需求的一方。对每项需求都必须追溯至特定的客户需求的来源,例如用例、业务规则或者其他来源。
      • 有优先次序。为每一项功能需求、特性或用例指定一个实现优先级,以表明它在产品的某一版本中的重要程度。如果所有需求都被视为同等重要,项目经理就很难采取措施应对预算削减、进度拖后、人员流失或开发过程中需求增加等情况。
      • 无歧义。一项需求声明对所有读者应该只有一种一致的解释,编写需求时应该使用用户所在领域的、简洁明了的语言。应该在词汇表中列出所有专用的和可能让用户感到迷惑的术语。
      • 可验证性。如果某项需求不可验证,那么判定其实现的正确与否就成了主观臆断,而不是客观分析。不完备、不一致、不可行或有歧义的需求也是不可验证的。
    • 需求变更
      • 需求变更的管理过程一般经过变更申请、变更评估、决策、回复这四大步骤。广义上,变更控制委员会对项目中任何基线工作产品的变更都可做出决定。
      • 在需求管理过程中需求的变更是受严格管控的,其流程为:
        • 1、问题分析和变更描述。这是识别和分析需求问题或者一份明确的变更提议,以检查它的有效性,从而产生一个更明确的需求变更提议。
        • 2、变更分析和成本计算。使用可追溯性信息和系统需求的一般知识,对需求变更提议进行影响分析和评估。变更成本计算应该包括对需求文档的修改、系统修改的设计和实现的成本。一旦分析完成并且确认, 应该进行是否执行这一变更的决策。
        • 3、变更实现。这要求需求文档和系统设计以及实现都要同时修改。如果先对系统的程序做变更, 然后再修改需求文档, 这几乎不可避免地会出现需求文档和程序的不一致。
  • 项目时间管理
    • 过程包括活动定义、活动排序、活动的资源估算、活动历时估算、制定进度计划以及进度控制
  • 项目开发管理
    • 文档
      • 软件文档可归入三种类别:开发文档(描述开发过程本身)、产品文档(描述开发过程的产物)、管理文档(记录项目管理的信息)
      • 需求文档、设计文档、源代码、测试用例属于产品组成部分的工作成果,工作计划、项目质量报告、项目跟踪报告属于项目管理和机构支撑过程域产生的文档。
      • 用户文档主要描述系统功能和使用方法。系统文档描述系统设计、实现、测试等各方面内容。操作员指南属于用户文档。
    • 开发模型、方法
      • 软件过程模型
        • 软件过程模型的基本概念: 软件过程是制作软件产品的一组活动以及结果, 这些活动主要由软件人员来完成,软件活动主要有:
          • (1) 软件描述。必须定义软件功能以及使用的限制。
          • (2) 软件开发。也就是软件的设计和实现,软件工程人员制作出能满足描述的软件。
          • (3) 软件有效性验证。软件必须经过严格的验证,以保证能够满足客户的需求。
          • (4) 软件进化。软件随着客户需求的变化不断地改进。
      • 螺旋模型将瀑布模型和变换(原型?)模型相结合, 综合两者的有点, 并增加了风险分析。它以原型模型为基础,沿着螺线自内向外旋转,每旋转一圈都要经过制定计划、风险分析、实施工程及客户评价等活动。
      • 瀑布模型的特点是因果关系紧密相连, 前一个阶段工作的结果是后一个阶段工作的输入。或者说, 每一个阶段都是建筑在前一个阶段正确结果之上, 前一个阶段的错漏会隐蔽地带到后一个阶段。这种错误有时甚至可能是灾难性的。因此每一个阶段工作完成后,都要进行审查和确认,这是非常重要的。历史上,瀑布模型起到了重要作用, 它的出现有利于人员的组织管理, 有利于软件开发方法和工具的研究。
      • 敏捷方法
        • 极限编程是著名的敏捷开发方法
        • 敏捷型方法是"适应性"而非"预设性"
        • 敏捷开发方法是迭代增量式的开发方法
      • 快速应用开发(RAD)
  • 项目配置管理
    • 配置管理SCM是一种标识、组织和控制修改的技术, 目的是使错误降为最小并最有效地提高生产效率。
      • 并不简简单单的是一个产品在其生命周期各个阶段所产生的各种形式和各种版本的文档、计算机程序、部件及数据的集合
    • 配置项是构成产品配置的主要元素,配置项主要有以下两大类:
      • (1)属于产品组成部分的工作成果:如需求文档、设计文档、源代码和测试用例等;
      • (2)属于项目管理和机构支撑过程域产生的文档:如工作计划、项目质量报告和项目跟踪报告等。这些文档虽然不是产品的组成部分, 但是值得保存。所以设备清单不属于配置项。所以选项C的工作计划虽可充当配置项, 但不属于产品组成部分工作成果的配置项。
    • 在配置管理中,所有的配置项都应列入版本控制的范畴。配置项的状态通常有3种,分别是草稿、正式发布和正在修改。
  • 软件系统工具
    • 软件系统工具的种类繁多, 很难有统一的分类方法。通常可以按软件过程活动将软件工具分为软件开发工具、软件维护工具、软件管理和软件支持工具。
      • 软件开发工具:需求分析工具、设计工具、编码与排错工具。
      • 软件维护工具:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。
      • 软件管理和软件支持工具:项目管理工具、配置管理工具、软件评价工具、软件开发工具的评价和选择。
    • 版本控制软件提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史, 是软件开发者的必备工具, 是软件公司的基础设施。版本控制软件的最高目标,是支持软件公司的配置管理活动, 追踪多个版本的开发和维护活动,及时发布软件。SCCS是元老级的版本控制软件,也叫配置管理软件。
  • CMM
    • 能力成熟度模型( Capacity Maturity Model )
    • CMM/CMMI将软件过程的成熟度分为5个等级(还有一个0级其实就是未实施CMM时的)
      • CL0:未完成的
      • CL1:已执行的
      • CL2:已管理的
      • CL3:已定义(级)的
      • CL4:定量管理的
      • CL5:优化的
  • 集成机制
    • 对工具的集成及用户软件的开发、维护及管理提供统一的支持。按功能可以划分为三个部分:
      • 环境信息库
      • 过程控制和消息服务器
      • 环境用户界面
  • 系统工程

7. 系统配置与性能评价

  • 基准测试是指通过设计科学的测试方法、测试工具和测试系统, 实现对一类测试对象的某项性能指标进行定量的和可对比的测试。
  • 性能指标,是软、硬件的性能指标的集成。在硬件中,包括计算机、各种通信交换设备、各类网络设备等;在软件中,包括:操作系统、协议以及应用程序等。
    • 1、计算机
      • 对计算机评价的主要性能指标有:时钟频率(主频);运算速度;运算精度;内存的存储容量;存储器的存取周期;数据处理速率PDR(processingdatarate);吞吐率;各种响应时间;各种利用率; RASIS特性(即:可靠性Reliability、可用性Availability、可维护性Sericeability、完整性和安全性Integraity and Security);平均故障响应时间;兼容性;可扩充性;性能价格比。
    • 2、路由器
      • 对路由器评价的主要性能指标有: 设备吞吐量、端口吞吐量、全双工线速转发能力、背靠背帧数、路由表能力、背板能力、丢包率、时延、时延抖动、VPN支持能力、内部时钟精度、队列管理机制、端口硬件队列数、分类业务带宽保证、RSVP、IP Diff Serv、CAR支持、冗余、热插拔组件、路由器冗余协议、网管、基于Web的管理、网管类型、带外网管支持、网管粒度、计费能力/协议、分组语音支持方式、协议支持、语音压缩能力、端口密度、信令支持。
    • 3、交换机
      • 对交换机评价的主要性能指标有:交换机类型、配置、支持的网络类型、最大ATM端口数、最大SONET端口数、最大FDDI端口数、背板吞吐量、缓冲区大小、最大MAC地址表大小、最大电源数、支持协议和标准、路由信息协议RIP、RIP2、开放式最短路径优先第2 版、边界网关协议BGP、无类域间路由CIDR、互联网成组管理协议IGMP、距离矢量多播路由协议DVMRP、开放式最短路径优先多播路由协议MOSPF、协议无关的多播协议PIM、资源预留协议RSVP、802.1p 优先级标记,多队列、路由、支持第3 层交换、支持多层( 4 到7 层交换、支持多协议路由、支持路由缓存、可支持最大路由表数、VLAN、最大VLAN数量、网管、支持网管类型、支持端口镜像、QoS、支持基于策略的第2 层交换、每端口最大优先级队列数、支持基于策略的第3 层交换、支持基于策略的应用级QoS、支持最小/最大带宽分配、冗余、热交换组件(管理卡, 交换结构, 接口模块, 电源,冷却系统、支持端口链路聚集协议、负载均衡。
    • 4、网络
      • 评价网络的性能指标有:设备级性能指标;网络级性能指标;应用级性能指标;用户级性能指标;吞吐量。
    • 5、操作系统
      • 评价操作系统的性能指标有:系统的可靠性、系统的吞吐率(量)、系统响应时间、系统资源利用率、可移植性。
    • 6、数据库管理系统
      • 衡量数据库管理系统的主要性能指标包括数据库本身和管理系统两部分, 有:数据库的大小、数据库中表的数量、单个表的大小、表中允许的记录(行)数量、单个记录(行)的大小、表上所允许的索引数量、数据库所允许的索引数量、最大并发事务处理能力、负载均衡能力、最大连接数等等。
    • 7、WEB服务器
      • 评价Web 服务器的主要性能指标有:最大并发连接数、响应延迟、吞吐量。
      • 作为承载Web应用的Web服务器, 对其进行性能评估时, 主要关注最大并发连接数、响应延迟、吞吐量等指标。相对来说,对个别数据的丢包率并不是很关心。
  • 在大多数情况下,为测试新系统的性能,用户必须依靠评价程序来评价机器的性能。对于真实程序、核心程序、小型基准程序和合成基准程序来说,其评测程度依次递减。把应用程序中用的最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序(Benchmark)。事务处理性能委员会(Transaction Processing Performance Council,TPC)是制定商务应用基准程序(Benchmark)标准规范、性能和价格度量,并管理测试结果发布的非营利组织,其发布的TPC-C是在线事务处理的基准程序,TPC-D是决策支持的基准程序。

8. 系统安全性与保密性设计

  • 由于DES 密钥只有56bit ,易于遭受穷举时攻击。三重DES 作为一种替代加密方案,在1985 年成为美国的一个商用加密标准。该方法使用两个密钥,执行三次DES 算法。故两个密钥合起来有效密钥长度有112bit 。
  • 被动攻击主要是收集信息而不是进行访问, 数据的合法用户对这种活动一点也不会觉察到。被动攻击包括嗅探、信息收集等攻击方法。被动攻击包括传输报文内容的泄露和通信流量分析。
  • SQL注入攻击是指用户通过提交一段数据库查询代码,根据程序返回的结果,获得攻击者想要的数据,这就是所谓的SQL Injection,即SQL注入攻击。这种攻击方式是通过对数据库查询代码和返回结果的分析而实现的。
  • Land攻击是指攻击者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过IP欺骗的方式发送给被攻击主机,这种包可以造成被攻击主机因试图与自己建立连接而陷入死循环,从而很大程度地降低了系统性能。
  • Ping of Death攻击是攻击者向被攻击者发送一个超过65536字节的数据包ping包,由于接收者无法处理这么大的ping包而造成被攻击者系统崩溃、挂机或重启。
  • Teardrop攻击就是利用IP包的分段/重组技术在系统实现中的一个错误,即在组装IP包时只检查了每段数据是否过长,而没有检查包中有效数据的长度是否过小,当数据包中有效数据长度为负值时,系统会分配一个巨大的存储空间,这样的分配会导致系统资源大量消耗,直至重新启动。

9. 数学与经济管理

  • 图论
    • 网络与最大流量
    • 关键路径/路线规划(最好的畅通率/最小的拥堵率)?
      • 先把拥堵率转换成畅通率
      • 原则:每一条路线上的畅通率等于所有各段畅通率之乘积。两点之间的畅通率等于两点之间所有可能路线畅通率的最大值。以下用T(ijk...)表示从点i出发,经过点j、k...等的路线的畅通率。
      • 据此原则, 可以从①开始逐步计算到达各点的最优路线。
  • 线性规划
  • 决策论
    • 不确定型决策 - 最大投资收益/指派问题
      • 先求得投资各公司的收益增加矩阵,再分别求几种分配情况最大收益进行比较。
      • 任一行(或列)各元素都减(或加)一常数后,并不会影响最优解的位置,只是目标值(指派方案的各项总和)也减(或加)了这一常数。我们可以利用这一性质使矩阵更多的元素变成0,其他元素保持正,以利于求解。得到最多的0元素解。
    • 确定型决策/风险决策 - 决策树等
      • 决策树
        • 先画决策树,从左至右逐步画出各个决策分支,并在各分支上标出概率值,再在最右端分别标出年获利值。然后,从右至左,计算并填写各节点处的期望收益。
        • 在右面四个节点处依次按下列算式计算5年的期望值,并将结果分别写在节点处。
        • 再在②、③节点处按如下算式计算2年的期望值(扣除投资额),并将结果(7年总收益)写在节点处。
  • 数学模型
    • 是关于部分现实世界为一定目的而作的抽象的,简化的数学结构。
    • 数学建模是需要在简单性和准确性之间求得平衡
    • 数学模型应该用统一的、普适的标准对其进行评价

10. 法律法规与标准化

  • 计算机软件著作权保护的对象是计算机软件, 即计算机程序及其有关文档。同一计算机程序的源程序和目标程序为同一作品。文档是指用来描述程序的内容、组成、设计、功能规格、开发情况、测试结果及使用方法的文字资料和图表等,如程序说明、流程图、用户手册等。
  • 在先权利包括著作权、外观设计专利权、商号权、地理标志权、姓名权等。
  • 著作权
  • 商标权
    • 在我国商标权的取得实行的是注册原则, M 画家并未将其美术作品实施商标注册,不享有其美术作品的商标权。
    • 软件商标权是软件商标所有人依法对其商标(软件产品专用标识)所享有的专有使用权。在我国,商标权的取得实行的是注册原则,即商标所有人只有依法将自己的商标注册后,商标注册人才能取得商标权,其商标才能得到法律的保护。对其软件产品已经冠以商品专用标识,但未进行商标注册,没有取得商标专用权,此时该软件产品专用标识就不能得到商标法的保护,即不属于软件商标权的保护对象。未注册商标可以自行在商业经营活动中使用,但不受法律保护。未注册商标不受法律保护,不等于对使用未注册商标行为放任自流。为了更好地保护注册商标的专用权和维护商标使用的秩序,需要对未注册商标的使用加以规范。所以《商标法》第四十八条专门对使用未注册商标行为做/规定。未注册商标使用人不能违反此条规定,否则商标行政主管机关将依法予以查处。
  • 专利

11. 企业信息化战略与实施

  • 管理信息系统规划的方法
    • 用于管理信息系统规划的方法很多,主要是关键成功因素法( Critical Success Factors,CSF)、战略目标集转化法( Strategy Set Transformation, SST )和企业系统规划法( Business System Planning, BSP )。其它还有企业信息分析与集成技术(BIAIT)、产出/方法分析(E/MA)、投资回收法(ROI)、征费法(chargout)、零线预算法、阶石法等。用得最多的是前面三种。
      1. 关键成功因素法( CSF)
      • 在现行系统中, 总存在着多个变量影响系统目标的实现, 其中若干个因素是关键的和主要的(即关键成功因素)。通过对关键成功因素的识别,找出实现目标所需的关键信息集合,从而确定系统开发的优先次序。关键成功因素来自于组织的目标, 通过组织的目标分解和关键成功因素识别、性能指标识别,一直到产生数据字典。
      • 识别关键成功因素, 就是要识别联系于组织目标的主要数据类型及其关系。不同的组织的关键成功因素不同, 不同时期关键成功因素也不相同。当在一个时期内的关键成功因素解决后,新的识别关键成功因素又开始。
      • 关键成功因素法能抓住主要矛盾, 使目标的识别突出重点。由于经理们比较熟悉这种方法, 使用这种方法所确定的目标, 因而经理们乐于努力去实现。该方法最有利于确定企业的管理目标。
    • 2.战略目标集转化法( SST)
      • 把整个战略目标看成是一个“信息集合”,由使命、目标、战略等组成,管理信息系统的规划过程即是把组织的战略目标转变成为管理信息系统的战略目标的过程。
      • 战略目标集转化法从另一个角度识别管理目标, 它反映了各种人的要求, 而且给出了按这种要求的分层, 然后转化为信息系统目标的结构化方法。它能保证目标比较全面,疏漏较少,但它在突出重点方面不如关键成功因素法。
      1. 企业系统规划法( BSP)
      • 信息支持企业运行。通过自上而下地识别系统目标、企业过程和数据, 然后对数据进行分析,自下而上地设信息系统。该管理信息系统支持企业目标的实现,表达所有管理层次的要求, 向企业提供一致性信息, 对组织机构的变动具有适应性。
      • 企业系统规划法虽然也首先强调目标, 但它没有明显的目标导引过程。它通过识别企业“过程”引出了系统目标,企业目标到系统目标的转化是通过企业过程/数据类等矩阵的分析得到的。
  • 组织信息化需求
    • 一般说来,信息化需求包含3 个层次,即战略需求、运作需求和技术需求。
      • 一是战略需求。组织信息化的目标是提升组织的竞争能力、为组织的可持续发展提供一个支持环境。从某种意义上来说, 信息化对组织不仅仅是服务的手段和实现现有战略的辅助工具; 信息化可以把组织战略提升到一个新的水平, 为组织带来新的发展契机。特别是对于企业,信息化战略是企业竞争的基础。
      • 二是运作需求。组织信息化的运作需求是组织信息化需求非常重要且关键的一环,它包含三方面的内容: 一是实现信息化战略目标的需要; 二是运作策略的需要。三是人才培养的需要。
      • 三是技术需求。由于系统开发时间过长等问题在信息技术层面上对系统的完善、升级、集成和整合提出了需求。也有的组织, 原来基本上没有大型的信息系统项目,有的也只是一些单机应用, 这样的组织的信息化需求, 一般是从头开发新的系统。
  • ERP
    • ERP是对企业物流、资金流和信息流资源进行全面集成管理的管理信息系统。在ERP五个层次的计划中,生产预测计划是对市场需求进行比较准确的预测,是经营计划、生产计划大纲和主生产计划编制的基础;销售管理计划是针对企业的销售部门的相关业务进行管理,属于最高层计划的范畴,是企业最重要的决策层计划之一;生产计划大纲根据经营计划的生产目标制定,是对企业经营计划的细化;主生产计划说明了在一定时期内生产什么,生产多少和什么时候交货,它的编制是ERP的主要工作内容;物料需求计划是对主生产计划的各个项0所需的全部制造件和全部采购件的网络支持计划和时间进度计划;能力需求计划是对物料需求计划所需能力进行核算的一种计划管理方法,能够帮助企业尽早发现企业生产能力的瓶颈,为实现企业的生产任务提供能力帮面的保障。
  • 电子政务
    • 电子政务是政府机构应用现代信息和通信技术,将管理和服务通过网络技术进行集成,在因特网上实现政府组织结构和工作流程的优化重组,超越时间和空间及部门之间的分隔限制,向社会提供优质和全方位的、规范而透明的、符合国际水准K管理与服务。
    • 电子政务的主要模式有4种:(1)政府对政府(Government To Government);(2)政府对公务员(Government To Employee);(3)政府对企业(Government To Business);(4)政府对公民(Government To Citizen)。
  • 电子商务
    • 电子商务分五个方面,即电子商情广告、电子选购与交易、电子交易凭证.的交换、电子支付与结算,以及网上售后服务等。参与电子商务的实体有4类:客户(个人消费者或集团购买)、商户(包括销售商、制造商和储运商)、银行(包括发行和收单行)及认证中心。
  • BI(商业智能系统)

猜你喜欢

转载自www.cnblogs.com/wyp1988/p/11764485.html