http://doc.mbalib.com/view/80a4cb49465991abb50ac02605b44a06.html

一、绪论
  1 系统架构的概念
    现代信息系统“架构”三要素:构件、模式、规划,规划是架构的基石,也是这三个贡献中最重要的。
    架构本质上存在两个层次:概念层,物理层。
    软件架构是关于软件系统的结构、行为和属性的高级抽象。指定了软件系统的组织结构,拓扑结构和系统需求, 以及构成组件的对应关系,设计决策的基本方法、原理。
    描述阶段:定义系统抽象组件和组件间的通讯接口规则
    实现阶段:细化组件为具体类和对象
  2.1 系统架构师的定义
      负责理解、管理并最终确认和评估非功能性系统需求(可维护性、性能、复用性、可靠性、有效性、和可测试性等),给出开发规范,搭建系统实现的核心架构,对整个软件架构、关键构建、接口进行总体设计,并澄清关键技术细节。
      主要着眼于系统的“技术实现”,同时还要考虑系统的“组织协调”。
      要对所属的开发团队有足够的了解,能够评估该开发团队实现特定的功能需求目标和资源代价。
  2.2 系统架构师技术素质
      对软件工程标准规范有良好的把握。
  2.2.1 系统架构师职责
        架构设计与持续改进
        业务向技术的转换桥梁
    协助制定项目计划,控制项目进度
    承担技术管理工作,如组织技术攻关,技术培训,技术支撑,技术保障
  2.2.2 系统架构师技术要求
        丰富的一线项目总体规划、方案设计、技术队伍管理经验
    软件行业业务领域经验
    项目管理理论和实践经验
    熟悉相关技术标准与软件工程规范
    C/S或B/S体系结构或特定领域软件产品开发架构经验
    面向对象分析设计、开发能力
    熟悉相关编程技术、架构和设计模式
    精通大型数据库开发
    对计算机系统、网络和安全、应用系统架构有全面认识
    团队协作、内外沟通能力
  2.3 系统架构师管理素质
      领导素质:系统架构师是一个高效工作团队的创建者,必须尽可能使所有团队成员的想法一致,为一个项目订制清晰的、强制性的、有元件的目标作为整个团队的动力;
      技术领导:必须提供特定的方法和模型作为理想的技术解决方案;
      技术管理:必须避免犹豫,必须具备及时解决技术问题的 紧迫感和自信心。
  2.4 系统架构师与其他团队角色的协调
      系统分析师:需求分析,技术实现
      系统架构师:系统设计,基于环境和资源的系统技术实现
      项目管理师:资源组织,资源实现
      由于职位角度出发产生冲突制约,不可能很好地给出开发规范,搭建系统实现的核心架构,并澄清技术细节,扫清主要难点。所以把架构师定位在项目管理师与系统分析师之间,为团队规划清晰的目标和技术实现。对于大型企业或项目,如果一人承担多个角色,往往容易发生顾此失彼的现象。
  3 系统架构的知识结构
    技术路线引导者
    需要从大量互相冲突的系统方法和工具中区分出哪些是有效的,那些是无效的。
    多层次多方面的知识维度
    系统构件、模式、规划的技术基础、原理和方法
  4 从开发人员到架构师
    总结自己的架构模式,深入行业总结规律。

二、计算机与网络基础知识
  1 软件定义
    操作系统(Operating System),是计算机系统的核心系统软件。
    计算机系统由硬件和软件组成,软件通常分为系统软件和应用软件。
    系统软件支持应用软件的运行,为用户开发应用软件提供平台,用户可以使用它,但不能随意修改它。
    常用的系统软件有:操作系统、语言处理程序、连接程序、诊断程序、数据库等。
    应用软件指计算机用户利用软硬件资源为某一专门的应用目的而开发的软件。
  2 操作系统的原理、类型、结构
  2.1 操作系统定义
      硬件资源包括中央处理器、存储器、输入输出设备。
      软件资源是以文件形式保存在存储器上的 程序和数据。
      操作系统既有效组织和管理系统中各种软硬件资源,合理地组织计算机系统的工作流程,又控制程序的执行,为用户使用计算机提供了一个良好的环境和友好的接口。
  2.2 操作系统分类
      批处理操作系统、分时操作系统、实时操作系统、网络操作系统、分布式操作系统;
      单用户操作系统、嵌入式操作系统。
  2.3 操作系统的特征
      并发性、共享性、虚拟性、异步性;
      不确定性(不可再现)。
  2.4 操作系统的功能
      进程(处理机)管理、文件(信息)管理、存储管理、设备管理、作业管理。
  2 处理机与进程管理
  2.1 进程的定义及其分类
      进程通常由 程序、数据、进程控制块(PCB)组成。
  2.2 进程的状态转换与控制
      就绪、运行、阻塞。
      进程控制是通过进程控制原语实现的,进程控制原语主要有:创建原语、撤销原语、挂起原语、激活原语、阻塞原语、唤醒原语。
      注:原语不可分割,不允许中断。
  2.3 进程互斥与同步以及 P/V 操作
      同步是使在异步环境下的各进程按一定的顺序和速度执行。
      互斥要保证临界资源时一次只能提供一个进程使用,称为临界资源(CR)。
      PV操作是低级通信原语,在执行期间不可分割,P表示申请一个资源,V表示释放一个资源。
      P操作定义:S:=S-1,若S>=0,则执行P操作的进程继续执行,否则若S<0, 则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。
      V操作定义:S:=S+1,若S>0, 则执行V操作的进程继续执行,否则若S<=0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,然后执行V操作的进程继续执行。
  2.4 进程通信与管程
      控制信息的交换成为低级通信,数据的交换称为高级通信。
      高级通信的类型包括:共享存储系统,消息传递系统,管道通信。
      在任一时刻最多只有一个进程能够真正地进入管程,其他的只能等待
  2.5 进程调度与死锁
      产生死锁的四个必要条件:互斥条件、请求保持条件、不可剥夺条件、环路条件。
      预防策略:破坏死锁的四个必要条件之一
  2.6 线程
      线程是进程中的一个实体,是被系统独立分配和调度的基本单位
      线程中只拥有一些运行中必不可少的资源
      同一个进程中的多个线程可以并发执行
      线程基本状态:就绪、运行、阻塞
  3 存储管理
    存储器的发展方向:高速、大容量、小体积
    存储管理的主要任务:如何提高主存的利用率,扩展主存,对主存信息实现有效保护
  4 设备管理
    设备管理的目标:提高设备利用率,为用户提供方便统一的界面
    磁盘调度算法:先来先服务(FCFS)、最短寻道时间优先(SSTF)、扫描算法(SCAN)
  5 文件管理
    随机访问:指对文件中的信息可以按任意次序随机读写文件中的信息
    文件控制块(FCB):描述和控制文件的数据结构
  6 作业管理
    作业调度算法:先来先服务、短作业优先、响应比高优先、优先级调度算法、均衡调度算法
  7 网络操作系统(NOS)
    分类:集中模式、客户机/服务器模式、对等模式
    现代操作系统已经把网络功能包含到操作系统的内核中,作为操作系统核心功能的一个组成部分
  8.1 关系数据库基础
      数据库三要素:数据结构、数据操作、数据约束条件
      E-R模型强调的是语意
      关系数据库设计理论的核心是数据间的函数依赖,衡量的标准是关系规范化的程度及分解的无损连接和保持函数依赖性
      数据依赖包括:函数依赖、平凡的函数依赖、非平凡的函数依赖、部分函数依赖、完全函数依赖、传递依赖、码、主属性、非主属性、外码、值依赖定义、函数依赖的公理系统。
      事务是数据库环境中不可分割的逻辑工作单位
      数据库四个特性(ACID):原子性、一致性、隔离性、持久性。
      SQL语言中事务定义语句:事务开始(BeginTransaction)、事务提交(Commit)、事务回滚(RollBack)
      并发操作是指在多用户共享系统中,用户可能同时对同一数据进行操作。带来的问题主要有:丢失更新、不可重复读、读脏数据
      并发控制主要技术是封锁:排他锁(X锁/写锁)、共享锁(S锁/读锁)
      保护数据库的关键技术在于建立冗余数据(备份数据),方法是数据转储、建立日志
  8.2 关系数据库设计
      需求分析、概念结构设计、逻辑结构设计、屋里结构设计、应用程序设计、运行维护。
      E-R方法的数据库概念结构设计可分3步:设计局部E-R模型、设计全局E-R模型、全局E-R模型优化
  8.3 分布式数据库系统
      满足分布性、逻辑相关性、场地透明性、场地自治性的数据库系统被称为完全分布式数据库系统。
      分布式数据库特点:数据的集中控制性、数据独立性、数据冗余可控性、场地自治性、存取有效性。
      分布式数据库4层模式:全局外层、全局概念层、局部概念层、局部内层。
  8.4 商业智能(BI)组成部分:数据仓库、联机分析处理、数据挖掘技术
  8.4.1 数据仓库特征:面向主题、集成的、非易失的、时变的
        数据仓库三层结构:数据仓库服务器、OLAP服务器(联机分析处理服务器)、前端工具
    数据仓库的实现步骤:规划、需求研究、问题分析、数据的抽取/清洗/集成/装载、数据仓库设计、数据仓库管理、分析报表查询、数据仓库性能优化、数据仓库部署分布
  8.4.2 OLAP分析模式:切片、切块、下钻、上卷、旋转
        OLAP系统架构:基于关系数据库的ROLAP、基于多维数据库的MOLAP、基于混合数据组织的HOLAP
  8.4.3 数据挖掘是在没有明确架设的前提下去挖掘信息、发现知识
        信息特征:先知、有效、实用
    信息功能:自动预测趋势和行为、关联分析、聚类、概念描述、偏差检测
  9 计算机网络基础知识
  9.1 计算机网络定义
      按通信距离分类:广域网、城域网、局域网
      按信息交换方式分类:电路交换网、分组交换网、综合交换网
      按拓扑结构分类:星型网、树形网、环形网、总线型网
      按传输带宽分类:基带网、宽带网
      按实用范围分类:公用网、专用网
      按通信传播方式分类:广播式、点到点式
      OSI/RM(开放系统互连参考模型):把复杂的问题分解开,保持了层次之间的独立性
      OSI分层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
  9.2.1 广域网、局域网、城域网
        广域网又称远程网,覆盖范围广,传输速率相对低,以数据通信为主要目的的数据通信网。数据传输可靠性随着传输介质的不同而不同,拓扑结构复杂。包括公共交换电话网、各种公用数据网。
    局域网是指传输距离有限,传输速率较高,以共享网络资源为目的的网络系统。数据传输可靠,误码率低。网络控制一般分为:总线拓扑、环形拓扑、星型拓扑、混合型。
    城域网是一种较大范围的高速网络,拓扑结构:网络中通信线路和节点的几何排布,反映个节点之间的结构关系影响着整个网络的设计、功能、可靠性、通信费用等重要方面。
    局域网和城域网都是IEEE802标准。决定局域网的主要技术有:传输介质、拓扑结构、介质访问控制方法。其决定了传输数据的类型、网络响应时间、吞吐率、利用率、以及网络应用。其中最重要的技术是介质访问控制方法(CSMA/CD)。
    无线局域网具有以下优点:安装便捷、使用灵活、经济节约、易于扩展。
    无线局域网标准:IEEE802.11
  9.2.2 网络互联
        网络互联目的是使一个网络的用户能访问其他网络的资源,使不同网络上的用户能够互相通信、交换信息。
    网络互联设备的作用是连接不同的网络
    传输介质是信号传输的媒体,常用的介质分为有限介质和无限介质。
    局域网中的基本组成部件:服务器、客户机、网络设备、通信介质、网络软件
  9.2.3 Internet及应用
        世界上规模最大、覆盖面最广、最具影响力的计算机互联网络。
    它将分布在世界各地的计算机利用开放系统互联协议连接在一起,用来进行数据传输、信息交换、资源共享。
    TCP/IP作为Internet的核心协议,已被广泛应用于局域网和广域网中。
    TCP/IP协议特性:逻辑编址、路由选择、域名解析、错误检测、流量控制、对应用程序的支持
    TCP/IP是一个协议族,网际层除了IP协议外,还有ICMP、ARP、RARP等几个重要协议
    Internet的地址主要有两种书写形式:域名格式、IP地址格式。
    WWW也称万维网或全球网,是指在Internet上一超文本为基础形成的信息网。采用统一的资源定位器(UAL)和图文并茂的用户界面。
  9.3 网络管理与网络安全
  9.3.1 网络管理是对计算机网络的配置、运行状态、计费等进行管理。它提供了监控、协调、测试、等各种网络资源以及网络运行状况的手段,还可以提供安全处理功能。
        OSI网路网络协议标准中定义了网络管理的5大基本功能:配置管理、性能管理、故障管理、安全管理、计费管理;实际上还应该包括网络规划和网络操作人员管理。
  9.3.2 计算机网络安全是指计算机网络系统的硬件、软件、数据等受到保护,不因偶然或恶意的原因而遭到破坏、更改、泄漏,确保系统能连续可靠地运行,使网络服务不中断。
        网络安全从本质上讲就是网络上的信息安全,对信息的传输、存储、访问需要提供安全保护,以防止信息被窃取、篡改、非法操作。
        信息安全的基本要素:保密性、完整性、可用性、真实性、可控性。
        完整的信息安全保障体系包括:保护、检测、响应、恢复。
        信息安全术语:密码学、鉴别、Kerberos鉴别、公钥基础设施、数字签名、访问控制。
  9.3.3 VPN即虚拟专用网,是建立在共用网上,没有专用物理连接,而通过ISP提供的公用网络来实现通信,VPN内部用户可以实现安全通信。
        关键技术:隧道技术、加密技术、密钥管理技术、身份认证技术。
        解决方案:内联网VPN、外联网VPN、远程接入VPN。
  9.4 网络工程阶段:网络规划、网络设计、工程组织、实施阶段、维护阶段。
  9.5 存储及负载均衡技术
      RAID磁盘阵列,目的使建立数据冗余、增强容错、提高容量、增进性能。
      网络存储体系结构大致分为三种:直接式存储DAS、网络连接存储NAS、存储区域存储SAN。
      负载均衡(Load Balance)从结构上分为:本地负载均衡、全局负载均衡。一般情况下从传输链路聚合、采用更高层网络交换技术、设置服务器集群策略等三个角度实现。
      集群(Cluster):大多数模式下,集群中所有计算机拥有一个共同的名称,各节点服务器通过一个内部局域网互相通信,集群内任一系统上运行的服务都可被所有的网络客户所使用,当一台节点服务器发生故障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管,客户也能很快自动地连接到新的服务器上。
  10 多媒体技术及应用
  10.1 媒体有两种含义:信息的载体、存储信息的实体。
       根据ITU-T(原CCITT)的建议,媒体有5种:感觉媒体、表示媒体、显示媒体、存储媒体、传输媒体。
       CCITT:国际电报电话咨询委员会(International Consultative Committe On Telecommunication And Telegraphy)
       多媒体技术是指:以数字化为基础,对多种媒体信息进行采集、编码、存储、传输、处理、表现,使之建立有机的逻辑联系,具有良好的交互性的技术。
       多媒体特征:多样性、集成星、交互性、实时性。
  10.2 多媒体数据压缩编码技术
       JPEG(Joint Photographic Experts Group,联合图像专家组) 是一种对静态图像压缩的编码算法。其中“联合”的含义是:CCITT和ISO联合组成的图像专家小组。
       MPEG(Moving Picture Experts Group,运动图像专家组) 是作为一个国际标准来研究制定的,具有很好的兼容性。比其它算法能提供更好的压缩比,最高可达200:1。对数据损失很小。不存在专利问题,适合大力推广。
       数据压缩编码类型:无损压缩编码法(也称冗余压缩算法或熵编码法)、有损压缩编码法(也称熵压缩法)。

三、信息系统
  1 信息的特征
    客观性:反映了事物的 运动状态和方式,既事实性。
    普遍性:信息无所不在。
    无限性:事物及其变化是 无限多样的。
    动态性:随着时间变化而变化。
    依附性:不能完全脱离物质而独立存在。
    变换性:可以用不同的载体 以不同的方法来负载。
    传递性:时间上的传递 即存储;空间上的传递 即 转移或扩散。
    层次性:信息可以分为 战略级、管理级、操作级。
    系统性:可以形成与现实世界相对应的信息系统。
  2 信息化的定义
    信息化(Informationalization),是以信息资源开发利用为核心,以网络技术、通讯技术等高科技技术为依托的一种新技术扩散的过程。
  3 信息化的内容
    信息资源的开发利用
    信息网络的全面覆盖,计算机网络、电信网、电视网等,逐步实现三网合一。
    信息技术的广泛应用,这是信息化的基础。
    信息产业的大力发展
    信息化人才的培养
    信息化政策和标准规范建设
  4 基于web的架构是松散耦合的,优势在于能够在不同的网络及操作系统中运行;以服务器为中心,客户端瘦小、简单,容易在运行时实现自动升级。
  5 电子政务的内容
    政府与政府 G2G
    政府对企事业 G2B
    政府对居民 G2C
    企业对政府 B2G
    居民对政府 C2G
  6 企业资源规划(ERP)的结构和功能
    物料需求计划(MRP)、物料单系统(BOM)、制造资源计划(MRPII)。
  6.1 ERP的概念
      企业的所有资源包括三大流:物流、资金流、信息流。
      ERP是建立在信息技术基础上,全面地集成了企业的所有资源信息,并为企业提供决策、计划、控制、经营业绩评估的全方位和系统化的管理平台。
      ERP是一种管理理论和管理思想,不仅仅是信息系统。
  6.1.1 生产预测
        市场需求是企业生存的基础,ERP中首先需要对市场进行较准确的预测,预测主要用于计划。
        常用的预测方法有:德尔菲方法、移动平移法、指数平滑法、非线性最小二乘曲线拟合法。
  6.1.2 销售管理(计划)
        销售管理从其计划角度来看,属于最高层计划的范畴,是企业最重要的决策层计划之一。
  6.1.3 经营计划(生产计划大纲)
  6.1.4 主生产计划
  6.1.5 物料需求计划
        根据主生产计划 对最终产品的 需求数量和交货期,推导出构成产品的零部件及材料的需求数量和需求时期,再导出自制零部件的制作订单下达日期和采购件的采购订单发送日期。
  6.1.6 能力需求计划(CRP)
        通过分析比较(MRP)的需求和企业现有生产力,及早发现 能力瓶颈所在。
  6.1.7 车间作业计划(PAC)
        将零部件的生产计划以订单的形式下达给适当的车间,属于(ERP)执行层计划。当前主流的车间作业计划模式是(JIT)模式。
  6.1.8 采购与库存管理
        是ERP的基本模块,从采购订单产生至货物受到的全过程进行组织、实施、控制,库存管理IM 对企业物料的 进、出、存进行管理。
  6.1.9 质量与设备管理
        全面质量管理(TQM):对企业的全过程进行质量管理,而且明确指出执行质量职能是企业全体人员的责任。
        设备管理:对设备寿命周期内的所有设备物资运动形态和价值运动形态进行综合管理。
  6.1.10 财务管理
        以货币的形式反映和监督企业的日常经济活动,并对数据进行分类、汇总,为企业管理和决策提供必要的信息支持。
  6.2 ERP 有关扩展应用模块
      客户关系管理、分销资源管理、供应链管理、电子商务等。
  6.3 ERP的功能
      ERP为企业提供的功能是多层面的,全方位的。
3.3.2 客户关系管理在企业的应用
1、CRM 的概念
提供的信息要有利于更好地理解客户;
流程管理要为客户提供高效、适当的体验;
提供那些构件强有力关系、提高客户忠诚度的体验。
CRM 的核心思想就是 以客户为中心,
从传统的“以产品为中心”的经营理念解放出来,通过富有意义的交流沟通,理解并影响客户行为,最终实现客户 保留、客户忠诚、客户创利 的目的。
将客户信息 转化为 积极的客户关系 的 反复循环过程。
市场竞争,客户资源逐渐减少,市场主动权让给客户,了解市场和客户 真实需要的基础上 提供令其满意的 产品和服务。
客户能根据自己的需求 量身定做 合适自己需要的产品和服务。
客户信息是 客户关系管理 的基础。
更低成本、更高效率 地 满足客户的需求,与客户建立起 基于学习性关系基础,最大程度提高客户满意度、忠诚度。
3.3.3 销售自动化 SFA
功能:日历和日程安排、联系和客户管理、佣金管理、商业机会、传递渠道管理、销售管理、建议的生产和管理、定价、区域划分、费用报告 等。
产品目录和价格、购买记录、服务记录、存货情况、促销文本资料、信用记录。
SFA 应用往往集成 电子邮件、办公软件 等 其它各种标准应用。
3.3.4营销自动化 MA
集成客户商业智能信息、产品信息、“营销百科全书”等 信息资源。
CRM 中,客户服务与支持主要是通过 呼叫中心 和 互联网 来实现,在满足客户的个性化要求方面,高速度、准确性、高效率 来完成客户服务人员的各种要求。
当把客户服务与支持功能同销售、营销功能比较好地结合起来时,就能为企业提供很多机会。
客户服务与支持的内容应包括:客户关怀;纠纷、订货、订单跟踪;现场服务;问题及解决方法数据库;维修行为安排调度;服务协议合同;服务请求管理 等。
商业智能是指利用 数据挖掘、知识发现 等 技术 分析和挖掘 结构化的、面向特定领域的 存储与数据仓库的信息,帮用户 认清发展趋势、识别数据模式、获取职能决策支持、得出结论。
智能的范围:客户、产品、服务、竞争者 等。
收集和分析市场、销售、服务 和整个企业的各类信息,对客户进行全方位的了解,从而理顺企业资源与客户需求之间的关系。
CRM 尚未有成型的理论出现
对市场的设定、跟踪、分析总结。
呼叫中心支持由合作的硬件厂商参与并提供全套设备,而不仅仅是提供支持呼叫中心的应用软件。
对移动设备的支持。
决策者所掌握的信息完全,能更及时地做出决策。
不管客户由何种渠道与企业联系,与客户的互动都应该是 无缝的、统一的、高效的。
需要任命一名来自企业的 系统管理员,作为内部系统专家。
经特殊调整的系统 必须 伴随技术培训。
由于数据转换过程工作量极大,因此要精确预测该过程的时间表几乎是不可能的。
“培训者”必须接受由软件供应商 进行的培训,称为新系统专家。
对所有用户的 正规培训,用户必须认识到 使用新系统的 即时和明显好处。
对系统的持续支持要求公司配备至少一名全职的内部系统管理员,可保证技术上自给自足的灵活性,CRM 系统的支持是艰巨的工作。
为保证系统带来所希望的益处,在将其推广到所有用户之前一定要加以测试。
间接电子商务,商品是有形货物。
直接电子商务,商品是无形的货物或服务,双方越过地理界限直接进行交易。
3.3.5 供应链管理
供应链是企业赖以生存的商业循环系统,企业供应链可以耗费企业高达 25% 的运营成本。
从供应商开始,经由制造商、分销商、零售商,直到最终客户的全要素、全过程的集成化管理模式。
正向 推动式 运作模式是 以生产为中心;逆向 拉动式 运作模式是 以用户为中心;两种不同的运作模式 适用于不同市场环境。

4.1 软件开发方法
4.1.1 软件开发生命周期
传统的软件生命期 是指软件产品 从形成概念(构思)开始,经过定义、开发、使用、维护、废弃,的全过程。
可以把软件生命期划分为 软件定义、软件开发、软件运行与维护,三个阶段。
1、软件定义时期
1.问题定义,目标系统“是什么”,系统的定位以及范围。
2.可行性研究,技术可行性、经济可行性、操作可行性、社会可行性。
3.需求分析,确定软件系统的功能需求、性能需求、运行环境的约束,写出需求规格说明书、软件系统测试大纲、用户手册概要。
充分理解用户的需求,并以书面形式写出规格说明书,这是以后软件设计和验收的依据;用户也许很难 一次性 说清楚系统应该做什么。
系统分析员、软件开发人员、用户,共同完成,逐步细化、一致化、完全化 等。
软件需求规格说明 SRS,内容可以有 系统(或子系统)名称、功能描述、接口、基本数据结构、性能、设计需求、开发标准、验收原则 等。
2、软件开发时期
软件开发时期就是软件的设计与实现,概要设计、详细设计、编码、测试 等。
概要设计是在软件需求规格说明的基础上,建立系统的 总体结构(含子系统的划分) 和 模块间的关系,定义功能模块及各功能模块之间的关系。
详细设计对概要设计 产生的功能模块 逐步细化,包括 算法与结构、数据分布、数据组织、模块间接口信息、用户界面 等,写出详细设计报告。
测试可分成 单元测试、集成测试、确认测试、系统测试 等。通常把编码和测试 称为系统的实现。
3、软件运行和维护
软件维护就是尽可能地延长软件的寿命,没有维护的价值时,宣告退役,软件的生命结束。

软件架构设计(Software Architecture 简称 SA)
5.1.1 软件架构设计与生命周期
1、需求分析阶段
需求 和 SA设计 面临的是不同的对象:一个是问题空间;另一个是解空间。保持二者的可跟踪性和转换。
2、设计阶段
1.传统的设计概念只包括 构件,随着研究的深入,构件间的 互联机制 逐渐独立出来,成为与构件同等级别的实体,称为 连接子。
2.体系结构描述语言(Architecture Description Language ADL)对 连接子 的重视成为区分 ADL和其他建模语言的重要特征之一。
3.不同的视角 得到多个视图,组织起来以描述整体的SA模型;不同侧面的视图反映所关注的系统的特定方面,体现了关注点分离的思想。
3、实现阶段
团队的 结构 应该和体系结构模型有一定的对应关系,提高软件开发 效率和质量。
分析和记录 不同版本构件和连接子之间的演化。
填补高层 SA模型 和 底层实现 之间的鸿沟,典型的方法如下:
1.引入实现阶段的概念。
2.SA模型 逐步精化。
3.封装底层称为较大粒度构件。
4、构件组装阶段
可复用构件 组装 可以在较高层次上实现系统,研究内容包括:
1.如何互联。
2.如何检测并消除体系结构失配问题。
中间件跨平台交互。
产品化的中间件更好地保证最终系统的质量,中间件导向的体系结构风格。
失配是指复用过程中,待复用构件对最终系统的体系结构和环境的架设(Assumption)与实际状况下不同而导致的冲突。

6.1 UML 建模与架构文档化
方法种类的膨胀,极大地妨碍了用户的使用和交流。
UML通过统一的表示法,使不同知识背景的 领域专家、系统分析、开发人员、用户 可以方便地交流。
6.1.1 UML 体系结构演变
UML 是用 元模型 描述的,元模型是 4层元模型体系结构模式中的一层,其他层次分别是 元-元模型、模型层、用户对象曾。其中元模型层由 元-元模型层 导出。
元模型的体系结构模式 可以用来定义 复杂模型 所要求的 精确定义,这种复杂模型通常需要被 可靠地 保存、共享、操作 以及在工具之间进行交换。它的特点如下:
1、在每一层都递归地定义语义结构。
2、可用来定义 重量级和轻量级 扩展机制。
3、在体系结构上 将其他体系结构的标准统一起来。
UML 元模型又被分解为三个逻辑子包:基础包、行为元素包、模型管理包。
6.2 UML 基础
UML 通过 图形化的表示机制 从多个侧面 对系统的分析和设计模型进行刻画。
10种视图,四类:
1、用例图
2、静态图,包括 类图、对象图、包图。
类图的边表示类之间的联系,包括 继承、关联、依赖、聚合 等。
对象图描述在某种状态下或某一时间段,系统中 活跃的对象及其关系。
包由 子包、类 组成。
3、行为图,包括 交互图、状态图、活动图,他们从不同的侧面刻画系统的动态行为。
交互图分为 顺序图、合作图。顺序图强调 对象之间 消息发送的时序。合作图更强调对象间 的动态协作关系。
状态图 描述 对象的动态行为。
活动图 描述 操作序列,这些操作序列 可以并发、同步,包含控制流、信息流。
4、实现图,包括 构件图、部署图。描述组成和分布情况。
部署图 节点表示实际的计算机和设备,边表示节点之间的物理连接,也可以显示连接的类型及节点之间的依赖性。

7.1 设计模式概述
重复遇到的典型问题,描述这些共同问题和解决这些问题的方案 就形成了所谓的模式。
7.1.1 设计模式的历史
模式分为几个部分:
特定的情景(Context),指模式在 何种情况下发生作用;
动机(System of Force),指问题或预期的目标;
解决方案(Solution),平衡各动机 或解决所阐述问题的 构造或配置。
每个模式描述了一个在某种特定情境下不断重复发生的问题,以及解决该问题解决方案的核心所在。
7.1.2 为什么要使用设计模式
面向对象设计时需要考虑 封装性、力度大小、依赖关系、灵活性、可重用性 等。
1、简化并加快快设计
无需从底层做起,重用成功的设计,节约开发时间,提高软件质量。
2、方便开发人员之间的通信
可以更准确地 描述问题 及 问题的解决方案,使解决方案具有一致性。
3、降低风险
4、有助于转到面向对象技术
开发人员对新技术往往会有抵触或排斥心理,对成熟的设计模式具有以下特性:
1.巧妙。
2.通用,不依赖于 系统、语言、领域。
3.不仅仅停留在理论上。
4.简单。
5.可重用。
6.面向对象。

8.1 XML 概述
可扩展标记语言(xml)是标准通用标记语言(SGML)的一个子集;可以用XML来开发一种标记语言,它的元素和属性多是为专门行业和产业而定义的。
支持统一字符编码 UCS,使得 XML 成为了国际标准,XML 和 HTML 都支持 样式表(style sheet)。
8.1.1 标签语法
XML 元素的结构与 HTML基本相同,使用尖括号来界定标签,但二者相同点也就仅此而已。
与 HTML 不同,几乎所有的 XML 标签 都是大小写敏感的,主要是满足 XML 国际化的设计目标和简化处理过程的需要。
非英语字母可能没有对应的大小写,合并会存在许多缺陷。
1、字符
XML 指定的字符 均在16位的 Unicode 2.1 字符集。
2、命名
XML 命名必须以字母、下划线或冒号 开头,后面跟着的是 有效命名字符(数字、减号、点)。
实际应用中不应该使用冒号,除非是用作命名空间修饰的分隔符。
字母并非局限于 ASCII 码,这一点是非常重要的。
8.1.2 文档部分
格式正规的 XML:
1、一个可选的序言(prolog)
2、文档的主体(body)
3、可选的“繁杂”的尾声(epilog),包括:注释、处理指令(Processing Instruction,PI) 和/或 紧跟在元素后面的空白。

面向构件的软件设计
9.1 术语、概念
1、构件
构件的特征如下:
独立部署单元。
作为第三方的组装单元。
没有(外部的)可见状态。
独立可部署,意味着 必须能 跟他所在的环境 及 其他构件 完全分离。
原子性,构件不但必须具备足够好的内聚性,还必须将自己的依赖条件和所提供的服务说明清楚。
缓存具有这样的特征:当它被清空时,除了可能会降低性能以外,没有其它后果。
构建本质上没有状态,同一操作系统进程中 装载多个构件的拷贝 是毫无意义的,至多会存在一个特定构件的拷贝。
许多系统中,构建被实现为 大粒度的单元,工资管理服务程序就是一个构件,工资数据只是实例(对象),将不易变的“模型”和易变的“实例”分离的做法避免了大量的维护问题。
2、对象
对象的特征如下:
一个实例单元,具有唯一的标志。
可能具有状态,此状态外部可见。
封装了自己的状态和行为。
显式存在的实例化方案称为类,也有隐式的实例化方案,既通过克隆一个已存在的对象来实现,即原型对象。
新生的对象都必须被设置一个初始状态,创建与初始化 对象 的代码可以是一个静态过程——类的一部分,称为构造函数。
如果这个对象是专门用来创建与初始化对象的,称为 工厂。
对象中 专门用来返回其他 新创建的对象的方法 称为 工厂方法。
3、构件与对象
构件通常包含了若干类 或 不可更改的 原型对象。还包括一系列对象。
但构件并非一定要包含类元素,它甚至可以不包含类,可以拥有传统过程体,甚至全局变量。
构件创建的对象——更确切地说是对这些对象的 引用——可以与该构件分离开来,并对构件的客户可见。构件的客户通常是指其他构件。
一个构件可以包含多个类元素,但是一个类元素只能属于一个构建。将一个类拆分进行部署通常没有什么意义。
4、模块
模块化方法成熟的标志是其对分离编译技术的支持,包括跨模块的正确的类型检查能力。
模块没有实例化的概念,在任何情况下,模块都可以包含多个类。类之间的继承关系并不受模块界限的限制。
模块本身就可以作为一个最简单的构件,这些库是功能性的,而不是面向对象的。
资源可以参数化一个构件,重新配置该构件而无需更改构件代码,例如,本地化设置可以通过资源配置实现。
某些情况下,模块并不适合作为构件,构件没有外部可见的状态,但是模块却可以显式地用全局变量来使其状态可见。
5、白盒抽象、黑盒抽象 与 重用 白盒抽象中,可以通过继承对构件的实现细节进行修改,白盒方式中实现细节对外界是完全可见的。
绝大多数系统中,(Application Programming Interface,API)相当于黑盒重用这些接口的实现。
白盒重用不可以轻易地被另外的软件替换,因为 依赖于 细节。
软件构件是一种组装单元,它具有规范的接口规约和显式的语境依赖,软件构件可以被独立地部署并由第三方任意地组装。
6、接口
接口是一个已命名的一组操作集合。
一个构件可以有多个接口,每个接口提供一种服务。
尽量不要重复引入功能相近的接口。
推行标准化,可能会由于笨拙官僚的“委员会设计”问题而不能达到最优;市场竞争,的 非技术本质 也可能导致结果不是最优。
接口标准化 是对消息的 格式、模式、协议 的标准化,XML 提供了一种统一的数据格式
3、构件与对象
构件通常包含了若干类 或 不可更改的 原型对象。还包括一系列对象。
但构件并非一定要包含类元素,它甚至可以不包含类,可以拥有传统过程体,甚至全局变量。
构件创建的对象——更确切地说是对这些对象的 引用——可以与该构件分离开来,并对构件的客户可见。构件的客户通常是指其他构件。
一个构件可以包含多个类元素,但是一个类元素只能属于一个构建。将一个类拆分进行部署通常没有什么意义。
4、模块
模块化方法成熟的标志是其对分离编译技术的支持,包括跨模块的正确的类型检查能力。
模块没有实例化的概念,在任何情况下,模块都可以包含多个类。类之间的继承关系并不受模块界限的限制。
模块本身就可以作为一个最简单的构件,这些库是功能性的,而不是面向对象的。
资源可以参数化一个构件,重新配置该构件而无需更改构件代码,例如,本地化设置可以通过资源配置实现。
某些情况下,模块并不适合作为构件,构件没有外部可见的状态,但是模块却可以显式地用全局变量来使其状态可见。
5、白盒抽象、黑盒抽象 与 重用 白盒抽象中,可以通过继承对构件的实现细节进行修改,白盒方式中实现细节对外界是完全可见的。
绝大多数系统中,(Application Programming Interface,API)相当于黑盒重用这些接口的实现。
白盒重用不可以轻易地被另外的软件替换,因为 依赖于 细节。
软件构件是一种组装单元,它具有规范的接口规约和显式的语境依赖,软件构件可以被独立地部署并由第三方任意地组装。
6、接口
接口是一个已命名的一组操作集合。
一个构件可以有多个接口,每个接口提供一种服务。
尽量不要重复引入功能相近的接口。
推行标准化,可能会由于笨拙官僚的“委员会设计”问题而不能达到最优;市场竞争,的 非技术本质 也可能导致结果不是最优。
接口标准化 是对消息的 格式、模式、协议 的标准化,XML 提供了一种统一的数据格式。
6、构件与生成式编程
必须要精确控制实际的构件边界,包括提供接口和需求接口,必须能精确控制同其他构件间的静态依赖。
9.3.2 语境相关组合构建框架
COM+ 增加了可租赁线程“套间”的概念,一次只允许一个线程入住,但是多个线程能顺序地入住该“套间”。
相同事务域中的对象 共享一个单独的逻辑线程和一个单独共享事务资源集合,一旦线程从事务域中返回,事务要么提交要么终止。
COM+中,如果两个构件共享一组兼容的语境属性集,则它们可以被看作是处于同一域中。
9.3.3 构件开发
异步问题
事件分发机制负责接收这些事件对象,并把它们发送给对其感兴趣的其他构件实例。
多线程
多线程主要关注于对程序执行进行更好的分配,获取性能最大化的手段却根本不依赖于多线程,而是尽量在第一时间内以最快的速度处理用户的请求。

构建平台与典型架构
10.1 OMG 方式
对象管理组 OMG,通过规范化对象 开放市场的 所有层次上的互操作性。
10.1.1 对象请求代理
CORBA 的主要目标就是使用不同语言、不同实现、不同平台 能进行交互。
CORBA 三个基本部分:一套调用接口、对象请求代理 ORB、一套对象适配器。
10.1.2 公共对象服务规范
两类服务:一类服务应用于企业计算系统。一类服务应用于细粒度的对象操作,但目前这些服务的实用价值较差。
1、支持企业分布式计算的服务
1.命名服务、交易器服务
命名服务 允许 任意地给对象赋予一个名字,这个名字在其所属的命名语境中是唯一的。
命名语境所形成的层次结构,使得所有的名字形成名字树。
交易器服务 允许给对象 赋予一个复杂的描述,从而允许客户基于该描述来定位所需的对象。
搜寻结果往往是 满足查询条件的 一组对象列表。
2.事件服务、通告服务
事件服务 允许定义那些 从 时间生产者 被 发送到时间消费者 的事件对象。
信息只能从生产者流向消费者,事件必须通过事件通道传播,事件可以具有类型,而通道可以根据类型过滤事件。
事件通道支持“推”“拉”两种方式 的事件通告模型。
通告服务为事件服务增加了几个重要的特征——服务质量 QoS 规范和管理。
3.对象事务服务
对象事务服务OTS,是建立分布式应用最重要的服务之一。
OTS 实现必须支持平坦事务,而嵌套事务是可选的。
在基于构件的系统中,嵌套事务似乎不可避免。
平坦事务在构件系统中的价值有限,实际上,现有的主流事务中间件也不支持嵌套事务
6.并发控制服务
支持对象资源进行 加锁、解锁。
锁必须依赖于 事务的语境 或 其他语境才能获得。
读锁、写锁、升级锁。
读锁允许多个客户同时执行读操作,写锁允许一个客户写操作,升级锁是可以升级为写锁的读锁 支持互斥读。
每个受保护的资源都拥有一个锁集合。锁集合 不是事务型 就是非事务型,并可与其他锁集合建立关联。
8.生命周期服务
支持 创建、复制、移动、删除 CORBA对象,及其相关的对象组。
包含关系支持嵌套复制。
11.外部化服务
支持对象网 和 对象流 之间的双向映射。对象网外部化后 再内部化 意味着创建该对象网副本。
外部化服务并不保证引用的完整性,仅保留同时外部化的对象之间的引用。
对象必须实现 Streamable 接口才能被外部化。
12.属性服务
允许将任意的属性与对象关联起来,被关联的对象必须实现 ProperySet接口。
13.对象查询服务
依靠属性定位对象。
15.时间服务
拥有众多异步时钟的分布式系统 固有的误差问题。
10.1.3 CORBA 构件模型
CORBA 对象适配器主要的作用 就是在一个 ORB 和 真正接收调用并且返回结果的 对象之间 进行交互。
10.2 SUN 公司的方式
Java 构件技术的概述
Java中,编译器会检查 Applet 代码的安全性,通过了编译器检查的 Applet 代码不会带来安全隐患。
由于编译得到的字节码仍然可能被人修改,代码在装载时刻会被再次检查(称为“校验”)。
运行环境(Runtime Environment,RE)、软件开发工具包(Software Development Kit,SDK)、参考实现。
运行环境是 Java 虚拟机 和 必须具有的 J2SE API 的实现。
10.3 Microsoft 的方式
微软选择的是最简单的路线,他没有提出一整套标准;相反,他不断对已有的应用和平台基础进行再工程,这就可以获益于以前的成功技术。
语言无关性,作为 CLR 的一条主要原则。
10.3.1 第一个基础关联模型——COM
COM 所定义的一个基础实体是接口。在二进制层面上,一个接口被表示为指向一个接口节点的指针。
接口节点 唯一被指定的部分是 置于其内部第一个域的 另一个指针,这个指针指向一个过程变量表(或者说,函数指针表)。
每个 COM 对象都有 IUnknown接口,通常置于 COM对象图的顶端。
他的“真实”名字是他的 IID,即 00000000-0000-0000-C000-000000000046 为了方便,所有接口也有一个 可读名。
根据习惯,可读接口名以字母I开头。与 IID 不同,可读接口名 并不保证是唯一的。因此,编程中的接口引用均使用 IID。
IUnknown 接口的首要用途是在 最抽象的情况下 标志 COM对象,此时 COM对象 没有任何特殊功能。
IUnknown 接口 只提供对任何 COM接口都必须的三个强制性方法。QueryInterface、AddRef、Release,后两个强制性方法被用来控制对象的生命周期。
类型 HRESULT 被大多数 COM接口的方法用来表示调用成功或失败。 QueryInterface表明查询的接口是否被支持。
每个 COM对象都会进行引用计数,引用计数变量被共享使用的情况下,COM对象 不能释放接口节点。
一般这样做没有问题,也是通常的做法。
某些情况下占用很多资源,可以使用独立的引用计数变量,以便节点可以尽早释放。这种根据需要创建和删除接口节点的技术有时被称作“快速装卸接口(Tear-Off Interface)”
10.3.2 COM对象重用
COM不支持任何形式的实现继承。
COM支持两种形式的对象组装:包含(Containment)和 聚集(Aggregation)。
包含 是一个对象 拥有 指向另一个对象的唯一引用。
外部对象 只是把请求转发给内部对象,所谓转发 就是调用内部对象的方法。
包含能重用内含于其他构件的实现,是完全透明的。
如果包含层次较深,或者被转发的方法本身相对简单,包含会存在性能上的问题。因此 COM定义第二类重用形式,聚集。
聚集直接把内部对象接口引用传给外部对象的客户,而不是再转发请求。
保持透明性是很重要的,因为外部对象的客户无法辨别哪个特定接口是从内部对象聚集而来的。
10.3.3 接口和多态
COM接口可通过(单)接口继承 从其他 COM接口中派生。
COM 的接口继承与其支持的多态无关。
接口和版本化,一旦公布,COM 接口和他的规范不允许以任何形式改变。
既解决了语法问题,也解决了弱基类问题。
IID 可用于标志接口中的版本,因为接口总是通过IID被请求。
CORBA 讨论中所提及的传递性版本冲突问题 在COM中不会发生。
构件可以选择实现接口的多个版本,处理方式就像处理 别的不同接口一样。
基于COM的系统能并发支持旧接口和新接口。
10.3.4 COM对象的创建和COM库
创建 COM类 的实例对象时,COM需要把给定的 CLSID 映射为包含所请求的类的实际构件。COM 支持系统注册器,它类似 CORBA存储器。
进程内(inprocess)服务器、本地服务器、远程服务器。
10.3.5 从 COM到分布式 COM(DCOM)
代理(Proxy)对象 和 服务器 桩(Stub)对象。
为支持 跨进程 或 跨机器 的透明通信,COM在客户端创建代理对象,在服务器端创建桩对象。
跨进程传递的 接口引用需要被映射为 对象引用。
DCOM 将数据整理成平台无关的网络数据表达(NDR)形式。
10.3.6 复合文档和OLE 对象
OLE 可被 概括为 一组预定义的 COM 接口。

文档容器 和 文档服务器。
文档服务器 是提供某种内容模型 和显示、操作内容的能力。文档容器没有自己的内容,但可以接受任意文档服务器提供的内容成分。
许多文档容器也是文档服务器,即是说,他们支持外来的成分,同时也有自己的内容。
10.3.7 .NET 框架
没有原始类型。

信息安全技术
11.1 信息安全关键技术
11.1.1 加密和解密
有意的计算机犯罪和无意的数据破坏
被动攻击:非法地从传输信道上截取信息,或从存储载体上偷窃、复制信息。
主动攻击:对传输或存储的数据进行恶意的删除、篡改 等。
密码技术是防止数据攻击的一种有效而经济的方法。
信源、信宿、明文、密文。
传输消息的通道称为信道,参数称为密钥,解密算法是加密算法的逆运算。
加密密钥与解密密钥相同,或者可以简单相互推导的密码体质称为对称密码体质。
不能(在有效时间内)相互推导的,称为非对称密码体质。
1、对称密钥密码体质及典型算法
对称算法(Symmetric Algorithm),有时又称为 传统密码算法,也称单密钥算法。
安全通信之前,商定一个密钥,安全性依赖于密钥,密钥的保密性对通信至关重要。
优点:算法实现的 效率高、速度快。
缺点:密钥的管理过于复杂。1. DES 算法简介
DES(Data Encryption Standard,数据加密标准)是IBM公司研制,美国国家标准局 1977年公布,作为非机要部门使用的数据加密标准。
DES 是一个分组加密算法,以64位为分组对数据加密。密钥长度56位(因为每个第8位都用作奇偶校验)。
2. IDEA 算法简介
国际数据加密算法(International Data Encryption Algorithm,IDEA)前身是推荐加密标准(Proposed Encryption Standard,PES)。
分组长度 64b,密钥长度128b。
运算非常简单,只是 异或,速度极快,穷举破解不现实。
2、不对称密码加密算法
不对称密码体制又称 双密钥和公钥密码体质,1976年 由 Diffie 和 Hellman 提出的。
私钥秘密保存。
不需要事先通过安全秘密管道交换密钥。
RSA 的安全性依赖于大素数分解。公钥和私钥 都是两个大素数(大于100个十进制位的函数)。
据猜测,从一个密钥和密文中,推断出明文的难度等同于分解两个大素数的积。
具体操作时 考虑到 安全性 和 M信息量 较大等因素,一般是先做 HASH 运算。
速度慢一直是 RSA 的缺陷,因此一般来说,RSA只用于少量数据加密。
11.1.2 散列函数与数字签名
1、MD5 散列算法
散列函数是一种公开的数学函数。散列函数运算的输入信息叫做 报文,运算后所得的结果叫做散列码或消息摘要。
特点:
1. 给定 M,要找到另一消息 M,使 H(M)= H(M)很难。
2. 散列函数都是单向的,反推M很难。
3. 对于任何一个报文,无法预知它的散列码。
4. 散列码具有固定的长度,不管原始报文长度如何。
常见的散列函数有:MD5、SHA、HMAC 等。
MD5(Message Digest 5)已成为国际标准,产生128位(16字节)长度的散列值(或称 消息摘要)。
通过以下4个步骤:
1. 附加填充位,填充后数据长度 MOD 512 后 余 448。如果数据长度正好 MOD 512 余 448,增加 512 个填充位,填充个数也就是1~512。
填充位第一个为 1,其余全部是 0。
2. 补足长度。
3. 初始化MD缓存器。
4个32位寄存器,A、B、C、D,初始化为:
A: 01 23 45 67
B: 89 AB CD EF
C: FE DC BA 98
D: 76 54 32 10
4. 处理数据段。
2、数字签名与数字水印
1. 数字签名可以解决 否认、伪造、篡改、冒充 等问题。
凡是需要对用户身份进行判断的情况 都可以使用数字签名。
三个过程:系统的初始化过程、签名产生过程、签名验证过程。
签名者必须注意保护好私有密钥,因为它是公开密钥体系安全的重要基础。
如果密钥丢失,应该立即报告鉴定中心取消认证,鉴定中心必须能够迅速确定用户的身份及其密钥的关系。
RSA、ElGamal、Fiat-Shamir、美国的数字签名标准/算法(DSS/DSA)、椭圆曲线 等多种。
2. 数字水印(Digital Watermarking)是实现版权保护的有效办法,也是信息隐藏技术研究领域的重要分支。
通过在原始数据中嵌入秘密信息——水印(Watermark)来证实该数据段所有权。
水印可以是一段 文字、标识、序列号 等,通常是不可见或不可察的,与原始数据紧密结合并隐藏其中。
数字水印技术必须具有较强的 鲁棒性、安全性、透明性。
数字水印主要应用领域:
版权保护,作品被盗版或出现版权纠纷时,所有者即可从盗版作品或水印版作品中 获取水印信号作为依据。
加指纹,将不同用户端ID或序列号 作为不同的水印(指纹)嵌入作品的合法备份中,一旦发现未授权的备份,就可以确定它的来源。
标题与注释。
篡改提示,可将原始图像分成多个独立块,再将每个块加入不同的水印,来确定作品的完整性,这类水印必须是脆弱的,并且检测水印信号时,不需要原始数据。
使用控制,防复制。
空域算法、变换域算法、压缩域算法、NEC算法、生理模型算法 等。
11.1.3 密钥分配中心与公钥基础设施
现代密码系统中,算法本身的保密已经不重要了,只要密钥能够保密,即使加密算法公开,甚至加密设备丢失,也不会对加密系统的坚固性和正常使用产生多大影响。
如何高效地分配密钥、安全地管理密钥 对保证数据安全来说至关重要。
1、密钥分配中心
密钥自动分配 是 密钥分配中心(Key Distribution Center,KDC)技术。
2、数字证书和公开密钥基础设施
数字证书的内容一般包括:唯一标识证书所有者的名称、唯一标识证书签发者的名称、证书所有者的公开密钥、证书签发者的数字签名、证书的有效期、证书的序列号等。
PKI(Public Key Infrastructure,公钥基础设施)的结构模型有三类实体:管理实体、端实体、证书库。
管理实体是PKI的核心,是服务的提供者,端实体是PKI的用户。
CA 和 RA 是两种管理实体,CA 能够 发布和撤销 证书,维护证书的生命周期。RA负责处理用户请求。
证书库的存取对象为证书和CRL,其完整性由数字签名来保证,因此不需要额外的安全机制。
11.1.4 访问控制
自动、有效地防止对系统资源进行非法访问或者不当使用。
它是建立在身份认证的基础之上的。
1、身份认证技术
识别用户的身份有两种不同形式:身份认证、身份鉴定。
认证的方法 归结为 3大类:知道什么、拥有什么、是什么。
是什么,是一种基于生物识别技术的认证。
1. 用户名和口令认证,三种简单的认证方式:明文传送、单向散列、单向散列函数和随机函数。
2. 使用令牌认证,密钥存储于令牌中。
令牌是一个可以加密存储并运行相应加密算法的设备,完成对用户必须拥有某物的验证。
令牌的实现分为:质询响应令牌、时间戳令牌,常用的是时间戳令牌。
系统的安全强度大大增加:私钥采用令牌存储的方式解决了 私钥自身的安全问题,安全强度大大增加。
而且令牌有 PIN码 保护,对令牌的非法访问超过一定次数后,令牌会死锁。
时间戳令牌利用时间代替随机数,需要重点考虑时间同步问题,目前在安全性较高的认证系统中,多是采用这种方案。
3. 生物识别与三因素认证
基于生物识别技术的认证,主要根据认证者的 图像、指纹、气味、声音等作为认证数据。
2、访问控制技术
根据 控制手段 和 具体目的 的不同,通常将 访问控制技术 划分为几个方面:入网访问控制、网络权限控制、目录级安全控制、属性安全控制、网络服务器安全控制等。
入网访问控制,控制准许用户 入网的时间、准许的工作站等。
由于用户口令验证方式容易被攻破,很多网络都开始采用 基于数字证书的验证方式。
用户 和 用户组 被 赋予一定的权限。
访问机制 两种实现方式:“受托者指派”和“继承权限屏蔽”
“受托者指派”控制用户 和 用户组 如何使用网络服务器。
“继承权限屏蔽”相当于一个过滤器,可以限制子目录从父目录那里继承哪些权限。
特殊用户、一般用户、审计用户。
对目录和文件的访问权限 一般有 8种:系统管理员权限、读、写、创建、删除、修改、查找、访问控制。
属性 能够控制以下几个方面的权限:写 数据、复制 文件、删除 目录或文件、察看 目录和文件、执行 文件、隐含 文件、共享、系统属性等。
11.1.5 安全协议
1、IPSec 协议简述
因特网工程任务组(IETF),IPSec 在 IP层上 对数据包 进行高强度 的 安全处理 提供 数据源验证、无连接数据完整性、数据机密性、抗重播、有限通信流机密性等安全服务。
1. IPSec 协议工作原理
通过使用两种信息安全协议 来为数据报提供高质量的安全性:认证头(AH)协议 和 封装安全载荷(ESP)协议,以及像 Internet 密钥交换(Internet Key Exchange,IKE)协议这样的密钥管理协过程和协议。
IPSec 允许系统或网络用户 控制安全服务提供的粒度。
由通信双方建立的安全关联(Security Association,SA)来提供。
3. IPSec 协议 安全性分析
可以应用于所有跨越网络边界的通信。
如果所有来自外部的通信必须使用IP,且防火墙是 Internet 与 组织的唯一入口,则 IPSec 是不能被绕过的。
IPSec 位于传输层(TCP、UDP)之下,因此对应用程序是透明的,实现时,没有必要在用户或服务器上更改软件。
IPSec 对最终用户是透明的,没有必要 培训用户掌握安全机制。
2、SSL 协议
SSL 协议(Secure Socket Layer)对计算机之间的 整个会话进行加密,位于 TCP 和 应用层 之间,可为应用层 提供 安全业务,主要是 Web应用。
基本目标是 在通信双方之间 建立安全的连接。
SSL 协议工作原理
两个重要的概念:SSL 连接和SSL 会话。
连接 是 提供恰当类型服务的传输,对于 SSL ,连接是点到点的关系。
SSL 的会话是 客户和服务器之间的关联,会话通过握手协议来创建。
会话定义了 加密安全 参数的一个集合。
会话可以用来避免为每个连接进行 昂贵的新安全参数的协商。
3、PGP 协议
1. PGP 协议的定义
PGP(Pretty Good Privacy)针对 电子邮件 在 Internet上 通信的 安全问题而设计的一种混合加密系统。
公钥密码和分组密码 是在同一个系统中,PGP 的用户拥有一张公钥表。
PGP 应用程序具有很多优点:速度快、效率高、可移植性好。
2. PGP 协议 的 加密过程
用 IDEA 算法对明文加密,接着用接收者的 RSA公钥 对这个IDEA密钥进行加密。
PGP 没有用 RSA 算法直接对明文加密,而是对 IDEA 密钥 进行加密。
由于 IDEA 算法 速度很快,所以不会因为邮件的数量大而耽误时间,而IDEA的密钥位数较少,所以使用RSA算法在速度上也不会有很大影响。
11.1.6 数据备份
1、备份的类型
备份数据常常被人们遗忘,造成的后果往往是毁灭性的。
保证数据完整性以及准确性,一直都面临着极大的考验。
1. 完全备份,所需时间最长,但恢复时间最短,操作最方便可靠。
2. 差异备份,备份上一次的 完全备份后发生变化的所有文件。备份时间较长,占用空间较多,恢复时间较短。
3. 增量备份,上一次备份后,所有发生变化的文件。备份时间较短,占用空间较少,恢复时间较长。
4. 按需备份。有很好的选择性。
2、异地备份
数据异地备份 是 容灾系统 的核心技术,确保一旦本地系统出现故障,远程的容灾中心能够迅速进行完整的业务托管。
进行异地备份时,要注意以下几个问题:
避免让备份带上病毒。
保证磁片质量,定期对其进行质量检查。
对于光盘,最大的缺点是 兼容性不好,最好是用哪台刻录机刻录 就用哪台刻录机读取(有时光头歪了也刻歪了,好光驱读不出来)。
对于移动硬盘,要做磁盘检查,保证其性能良好。
3、自动备份软件
具备 多个备份的文件 无论怎样重命名 都只备份一个。
对员工正常工作无任何干扰,就好像这个软件不存在一样。
11.1.7 计算机病毒免疫
1、计算机病毒定义
通过修改其他程序 使之含有该程序本身或它的一个变体,具有感染力,借助使用者的权限感染他们的程序。
每个被感染的程序也像病毒一样可以感染其他程序。
2、计算机病毒免疫的原理
传染模块一般包括传染条件判断和实施传染两部分。
一般情况下,传染完一个对象后,都要给被传染对象加上传染标识,若不存在这种标识,则病毒就对该对象实施传染。
不判断是否存标识,反复传染多次,雪球越滚越大。
当某些尚不能被病毒检测软件检查出来的病毒感染了文件,该文件又被免疫外壳包在里面时,查毒软件查不到它。
11.2 信息安全管理和评估
11.2.1 安全管理技术
安全管理技术就是 监督、组织、控制网络通信服务以及信息处理所必须的 各种技术手段和措施的总称。
目标是确保计算机网络的持续正常运行,出现异常时能及时响应和排除故障。
各种网络安全产品的作用 提现在网络中的不同方面,统一的网络安全管理平台 必然要求对网络中部署的安全设备进行协同管理。
安全设备的管理、安全策略管理、安全风险控制、安全审计,几个方面。
安全审计:安全设备、操作系统、应用系统的日志信息收集汇总,进一步分析,得出更深层次的分析结果。

系统安全架构设计
12.1 信息系统安全架构的简单描述
信息安全的特征是为了保证信息的机密性、完整性、可用性、可控性、不可抵赖性。
以风险策略为基础。
12.1.1 信息安全的现状及其威胁
计算机和网络的普及,会产生两个方面的效应:
其一,各行各业的业务运转几乎完全依赖于计算机和网络。
其二,大多数人对计算机的了解更加全面。
常见的安全威胁有如下几种:
1、信息泄露。
2、破坏信息的完整性。
3、拒绝服务。
4、非法使用。
5、窃听。
6、业务流分析,发现有价值的信息和规律。
7、假冒。
8、旁路控制。
9、授权侵犯。
10、特洛伊木马。
11、陷阱门,设置了“机关”,提供特定的输入数据时,允许违反安全策略。
12、抵赖。
13、重放,处于非法的目的而被重新发送。
14、计算机病毒。
15、人员不慎。
16、媒体废弃。
17、物理侵入。
18、窃取。
19、业务欺骗。
可以从安全技术的角度提取出5个方面的内容:认证鉴别、访问控制、内容安全、冗余恢复、审计响应。
12.2 系统安全体系架构规划框架及其方法
安全技术体系架构过程的目标 是 建立可持续改进的安全技术体系架构的能力。
OSI参考模型:物理、数据链路、网络、传输、会话、表示、应用。
根据网络中风险威胁的存在实体划分出5个层次的实体对象:应用、存储、主机、网络、物理。
信息系统安全规划是一个非常细致和非常重要的工作,需要对企业信息化发展的历史情况进行深入和全面的调研。
信息系统安全体系主要是由技术体系、组织结构体系、管理体系三部分共同构成。
技术体系由物理安全技术和系统安全技术两大类组成。
组织体系由机构、岗位、人事三个模块构成。
管理体系由法律管理、制度管理、培训管理三部分组成。
人员安全包括 安全管理的组织结构、人员安全教育与意识机制、人员招聘及离职管理、第三方人员安全管理等。
12.3 网络安全体系架构设计
12.3.1 OSI 的安全体系架构概述
在 OSI 7层协议中 除会话层外,每一层 均能提供相应的安全服务。
最适合配置安全服务的是 物理层、网络层、运输层、应用层。
ISO 开放系统互联 安全体系的5类安全服务:鉴别、访问控制、数据机密性、数据完整性、抗抵赖性。
分层多点安全技术体系架构,也称为深度防御安全技术体系架构,通过以下方式将防御能力分布至整个信息系统中。
1、多点技术防御,从内部或外部多点攻击一个目标,通过对以下多个防御核心区域的防御达到抵御所有方式的攻击的目的。
1. 网络和基础设施,确保可用性,确保机密性和完整性。
2. 边界,抵御主动的网络攻击。
3. 计算环境,抵御内部、近距离的分布攻击。
2、分层技术防御,有效的措施是使用多个防御机制。
支撑性基础设施为网络、边界、计算机环境中信息保障机制运行基础。包括公钥设施、检测和响应基础设施。
1. 公钥基础设施提供一种 通用的联合处理方式,以便安全地创建、分发、管理 公钥证书和传统的对称密钥。
公钥基础设施 必须支持受控的互操作性,并与各用户团体所建立的安全策略保持一致。
2. 迅速检测并响应入侵行为,便于结合其他相关事件观察某个事件的“汇总”性能。
识别潜在行为模式或者新的发展趋势。
12.3.2 鉴别框架
鉴别(Authentication)防止其他实体占用和独立操作被鉴别实体的身份。
鉴别有两种重要的关系背景:
一是实体由申请者来代表,申请者与验证者之间存在着特定的通信关系(如实体鉴别)。
二是实体为验证者提供数据项来源。
鉴别方式主要基于以下 5种:
1、已知的,如 一个秘密的口令。
2、拥有的,IC卡、令牌等。
3、不改变的特性,如生物特征。
4、相信可靠的第三方建立的鉴别(递推)。
5、环境(如主机地址等)。
鉴别信息(Artificial Intelligence,AI)是指申请者要求鉴别到 鉴别过程结束 所生成、使用、交换的信息。
交换AI、申请AI、验证AI。
鉴别服务分为以下阶段:安装阶段、修改鉴别信息阶段、分发阶段、获取阶段、传送阶段、验证阶段、停活阶段、重新激活阶段、取消安装阶段。
12.3.3 访问控制框架
访问控制(Access Control)决定 允许使用哪些资源、在什么地方适合阻止未授权访问的过程。
ACI(访问控制信息)用于访问控制目的的 任何信息。
ADI(访问控制判决信息)做出判决时 可供 ADF使用的部分(或全部)ACI。
ADF(访问控制判决功能)做出访问控制判决。
AEF(访问控制实施功能)。
涉及访问控制的有 发起者、AEF、ADF、目标。
12.3.4 机密框架
机密性(Confidentiality)服务确保信息仅仅是对被授权者可用。
数据只对那些拥有某种关键信息的人才是可访问的。
被保护的环境被交叠保护的环境。
从一个环境移到另一个环境的数据的连续保护必然涉及到交叠保护环境。
机密性机制
数据的机密性可以依赖于所驻留和传输的媒体。
数据在传输中的机密性 能通过禁止访问的机制、隐藏数据语义的机制、分散数据的机制。
物理方法保证媒体的数据只能通过特殊的有限设备才能检测到。
通过路由选择控制。
通过机密提供机密性。
12.3.5 完整性框架
完整性(Integrity)框架目的是通过组织威胁或探测威胁,保护可能遭到不同方式危害的数据完整性和数据相关属性完整性。
所谓完整性,就是数据不以未经授权方式 进行改变或损毁的特征。
几种分类方式:未授权的数据修改、未授权的数据创建、未授权的数据删除、未授权的数据插入、未授权的数据重放。
依据是否包括恢复机制分为具有恢复机制的和不具有恢复机制的。
完整性机制的类型
1、组织对媒体访问的控制,包括物理的、不受干扰的信息;路由控制;访问控制。
2、用以探测 对数据或数据项序列的非授权修改的机制。
按照保护强度,完整性机制可以分为 不作保护;对修改和创建的探测;对修改、创建、删除、重复的探测;对修改和创建的探测并带恢复功能;对修改、创建、删除、重复的探测并带恢复功能。
12.3.6 抗抵赖框架
抗抵赖(Non-repudiation)服务 包括证据的 生成、验证、记录,以及 在解决纠纷时随即进行的证据恢复和再次验证。
目的是 提供有关特定事件或行为的证据。
当涉及消息内容的抗抵赖服务时,为提供原发证明,必须确认数据原发者身份和数据完整性。
为提供递交证明,必须确认接收者身份和数据完整性。
抗抵赖服务提供 在试图抵赖的事件中 使用的设备:证据生成、证据记录、验证生成的证据、证据的恢复和重验。
抗抵赖由 4个独立的阶段组成:证据生成;证据传输、存储、恢复;证据验证;解决纠纷。
1、证据生成
卷入事件或行为中的实体,称为证据实体。证据实体可由证据实体、或可能与可信第三方的服务一起生成、或者单独由可信第三方生成。
3、证据验证
证据在 使用者的请求下被证据验证者 验证。让证据使用者确信被提供的证据确实是充分的。
12.4 数据库系统的安全设计
电子政务中所涉及的数据库 密级更高、实时性更强。
实现 数据库系统安全的 完整性、保密性、可用性。
安全策略一般为 用户管理、存取控制、数据加密、审计跟踪、攻击检测。
12.4.1 数据库安全设计的评估标准
1985 年,美国国防部颁布“可信计算机系统评估标准(Trusted Computer System Evaluation Criteria,TCSEC)”橘皮书(简称 DoD85)。
1991年,美国国家计算机安全中心(The National Computer Seaurity Center,NCSC)颁布了“可信计算机评估标准关于可信数据库管理系统的解释(Trusted Database Interpretation,TDI)”。
TDI 是 TCSEC 在数据库管理系统方面的扩充和解释,从 安全策略、责任、保护、文档 4个方面进一步描述了每级的安全标准。
按照 TCSEC标准,D类产品 基本没有安全保护措施,C类产品 只提供了 安全保护措施,B类以上产品 是实行强制存取控制的产品,是真正意义上的安全产品。
12.4.2 数据库的完整性设计
数据库的完整性是指数据库中数据的正确性和相容性。
由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。
通过DBMS或应用程序来实现。
1、数据库完整性设计原则
1. 根据数据库完整性约束的类型 确定其实现的系统层次和方式,并提前考虑对系统性能的影响。
一般情况下,静态约束应 尽量包含在数据库模式中,动态约束由应用程序实现。
2. 实体完整性约束、参照完整性约束 是关系数据库最重要的完整性约束,尽量应用。
3. 要慎用 触发器,一方面性能开销较大;另一方面,多级触发不好控制,容易发生错误,最好使用 Before 型语句级触发器。
4. 在需求分析阶段就必须制定完整性约束的命名规范。
5. 要根据业务规则 对数据库完整性进行细致的测试。
6. 要专职的数据库设计小组。
7. 应采用合适的 CASE工具 来降低数据库设计各阶段的工作量。
2、数据库完整性的作用
1. 能够防止合法用户使用数据库时 向数据库中添加不合语义的数据。
2. 实现业务规则,易于定义,易于理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率。集中管理。
3. 能够同时兼顾 数据库的完整性和系统效能。
4. 有助于尽早发现应用软件的错误。
5. 数据库完整性约束 6类:列级静态约束、元组级静态约束、关系级静态约束、列级动态约束、元组级动态约束、关系级动态约束。
动态约束通常由应用软件来实现。
3、数据库完整性设计示例
首先 需要在需求分析阶段确定要通过数据库完整性约束实现的业务规则。
然后 依据整个系统的体系结构和性能要求,遵照数据库设计方法和应用软件设计方法,合理选择每个业务规则的实现方式。
最后 认真测试,排除隐含的约束冲突和性能问题。
基于 DBMS的数据库完整性设计大体分为以下几个阶段:
1. 需求分析阶段。
2. 概念结构设计阶段。
3. 逻辑结构设计阶段,就是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化,包括对关系型的规范化。
每种业务规则都可能有好几种实现方式,应该选择对数据库性能影响小的一种,有时需通过实际测试来决定。
12.5 案例:电子商务系统的安全性设计
1、原理介绍
1. 验证(Authentication):是否可以获得授权。
2. 授权(Authorization):可以使用哪些服务。
3. 审计(Accounting):记录用户使用网络资源的情况,用户IP地址、MAC地址掩码 等。
2、软件架构设计
RADIUS 软件架构分为三个层面:协议逻辑层、业务逻辑层、数据逻辑层。
协议逻辑层 主要实现 RFC框架中的内容,处理网络通信协议的 建立、通信、停止方面的工作。
相当于一个转发引擎,起到分发处理的内容分发到不同的协议处理过程中。
业务逻辑进程分为:认证、计费、授权,三种类型。
数据库代理池 统一连接数据库,以减少对数据库系统的压力。同时减小了系统对数据库的依赖性,增强了系统适应数据库系统的能力。
RADIUS 软件分层架构的实现:
一是 对软件风险进行了深入的分析,
二是 可以构建一个或多个重用的构件单元,也可以继承原来的成果。
RADIUS 的功能:
一是 实际处理大量用户并发的能力,
二是 软件架构的可扩展性。
负载均衡是提高 RADIUS软件性能的有效方法,主要完成以下任务:
1. 解决网络拥塞问题,就近提供服务。
2. 为用户提供更好的访问质量。
3. 提高服务器响应速度。
4. 提高服务器及其他资源的利用效率。
5. 避免了网络关键部位出现单点失效。

系统的可靠性
13.1 软件可靠性
目前,硬件可靠性测试技术和评估手段日趋成熟,已经得到了业界的认可。
软件可靠性模型的研究多集中在开发阶段、测试阶段、评估阶段的可靠性模型。
13.1.1 软件可靠性的定义
可靠性(Reliability)是指产品在规定的条件下和规定的时间内完成规定功能的能力。
按照产品可靠性的形成,分为固有可靠性、使用可靠性。
固有可靠性是通过设计、制造赋予产品的可靠性。
使用可靠性既受设计、制造的影响,又受使用条件的影响。
软件与硬件从可靠性角度来看,主要有4个不同点:
1、复杂性,软件内部的逻辑高度复杂,硬件则相对简单。
2、物理退化,一个正确的软件任何时刻均可靠,一个正确的硬件、元器件、系统则可能在某个时刻失效。
3、唯一性,软件是唯一的,软件复制不改变软件本身,硬件不可能完全相同,概率方法在硬件可靠性领域取得巨大成功。
4、版本更新快,软件版本更新较快,也给软件可靠性评估带来较大的难度。
1983年,美国IEEE 对“软件可靠性”做出了更明确的定义。
1989年,我国国家标准 GB/T-11457也采用了这个定义。
定义:在规定的条件下,在规定的时间内,软件不引起系统失效的概率。
依然沿用了“产品可靠性”的定义。
1、规定的时间
由于软件运行的环境与程序路径选取的随机性,软件的失效为随机事件,所以运行时间属于随机变量。
2、规定的条件
不同的环境条件下的可靠性是不同的,计算机的配置情况、对输入的要求。
有了明确规定的环境条件,还可以有效地判断软件失效的责任在用户方还是开发放。
3、所要求的功能
软件可靠性还与规定的任务和功能有关。
要准确度量软件系统的可靠性,必须先明确它的任务和功能。
4、“软件可靠性”定义具有如下特点:
1. 用内在的“缺陷” 和 外在的“失效”关系来描述可靠性。
2. 定义使人们对软件可靠性进行量化评估成为可能。
3. 用概率的方法描述可靠性是比较科学的。
13.1.2 软件可靠性的定量描述
软件的可靠性可以基于 使用条件、规定时间、系统输入、系统使用、软件缺陷 等变量构建的数学表达式。
1、规定时间:自然时间、运行时间、执行时间。
使用执行时间来度量软件的可靠性最为准确。
2、失效率:把软件从运行开始,到某一时刻t 为止,出现失效的概率用 F(t)表示。
F(0)=0,即软件运行初始时刻失效概率为0。
F(t)在时间域(0,+无穷大)上是单调递增的。
F(+无穷大)=1,即失效概率在运行时间不断增长时 趋向于1,这也意味着任何软件都存在缺陷。
3、可靠度:在规定的条件下,规定的时间内 不发生失效的概率。
4、失效强度(Failure Intensity)单位时间 软件系统出现失效的概率。
5、失效率(Failure Rate)又称 风险函数(Hazard Function),也可以称为条件失效强度。
就是当软件在 0~t 时刻内 没有发生失效的条件下,t 时刻软件系统的失效强度。
公式略。
6、可靠度与失效率之间的换算。
7、平均失效时间(Mean Time to Failure,MTTF)就是软件运行后,到下一次出现失效的平均时间。更直观地表明一个软件的可靠度。
需要对 软件可靠度 这个反映软件可靠性的肚量指标作下列补充说明:
1. 需指明它与其他软件的界限。
2. 软件失效必须明确定义。
3. 必须假设硬件无故障(失效)和软件有关变量输入正确。
5. 必须指明时间基准:自然时间(日历时间)、运行时间、执行时间(CPU 时间)、其他时间基准。
6. 通常以概率度量,也可以模糊数学中的可能性加以度量。
7. 在时间域上进行,是一种动态度量,也可以是在数据域上,表示成功执行一个回合的概率。
软件回合是软件运行最小的、不可分的执行单位。
8. 有时将软件运行环境简单地理解为软件运行剖面(Operational Profile)。
运行剖面定义了关于软件可靠性描述中的“规定条件”,测试环境、测试数据 等一系列问题。
13.1.3 可靠性目标
使用 失效强度 表示软件缺陷对软件运行的影响程度。
不仅取决于软件失效发生的概率,还和软件失效的严重程度有很大关系。引出另外一个概念——失效严重程度类(Failure Severity Class)。
失效严重程度类 就是对用户具有相同程度影响的失效集合。
对失效严重程度的分级 可以按照不同的标准进行,对成本影响、对系统能力的影响 等。
对成本的影响可能包括失效引起的额外运行成本、修复和恢复成本、现有潜在的业务机会的损失等。
对系统能力的影响常常表现为 关键数据的损失、系统异常退出、系统崩溃、导致用户操作无效等。
可靠性目标是指客户对软件性能满意程度的期望。通常用 可靠度、故障强度、平均失效时间(MTTF)等指标来描述。
建立定量的可靠性指标需要对可靠性、交付时间、成本进行平衡。
13.1.4 可靠性测试的意义
1、软件失效可能造成灾难性的后果。
2、软件的失效在整个计算机系统失效中的比例较高。
80%和软件有关。
结构太复杂了,一个较简单的程序,其所有路径数量可能是一个天文数字。
3、相比硬件可靠性技术,软件可靠性技术很不成熟。
4、软件可靠性问题是造成费用增长的主要原因之一。
5、系统对于软件的依赖性越来越强。
13.1.5 广义的可靠性测试与侠义的可靠性测试
广义的软件可靠性测试是指为了最终评价软件系统的可靠性而运用建模、统计、试验、分析、和评价等一系列手段对软件系统实施的一种测试。
侠义的软件可靠性测试是指为了获取可靠性数据,按预先确定的测试用例,在软件的预期使用环境中,对软件实施的一种测试。
也叫“软件可靠性试验(Software Reliability Test)”,它是面向缺陷的测试,以用户将要使用的方式来测试软件,所获得的测试数据与软件的实际运行数据比较接近。
可靠性测试是对软件产品的可靠性进行调查、分析、评价的一种手段。
对检测出来的失效的分布、原因、后果 进行分析,并给出纠正建议。
总的来说,可靠性测试的目的可归纳为以下三个方面:
1、发现软件系统在 需求、设计、编码、测试、实施 等方面的 各种缺陷。
2、为软件的使用、维护提供可靠性数据。
3、确认软件是否达到可靠性的定量要求。
13.2 软件可靠性建模
13.2.1 影响软件可靠性的因素
软件可靠性模型(Software Reliability Model)是指 为预计或估算软件的可靠性所建立的可靠性框图和数学模型。
模型将复杂系统的可靠性逐级分解为简单系统的可靠性,以便 定量预计、分配、估算、评价复杂系统的可靠性。
影响软件可靠性的主要因素:缺陷的引入、发现、清除。
缺陷的引入主要取决于软件产品的特征和软件的开发过程特性。
缺陷的发现依靠运行剖面。
缺陷的清除依赖于失效的发现、修复活动、可靠性方面的投入。
影响软件可靠性的主要因素如下:
1、运行剖面(环境)。
2、软件规模。
3、软件内部结构。
4、软件的开发方法和开发环境。
5、软件的可靠性投入。人力、资金、资源、时间 等。
早期重视软件可靠性并采取措施开发出来的软件,可靠性有明显的提高。
13.2.2 软件可靠性建模方法
可靠性模型通常由以下几部分组成:
1、模型假设。模型是实际情况的简化或规范化,总要包含若干假设。
2、性能度量。软件可靠性模型的输出量就是性能度量。
3、参数估计方法。
4、数据要求。
绝大多数模型包含三个共同假设:
1、代表性假设。选取代表软件实际的运行剖面。
2、独立性假设。假设认为软件失效是独立发生于不同时刻。
3、相同性假设。认为所有软件失效的后果(等级)相同,即建模过程只考虑软件失效的具体发生时刻,不区分软件的失效严重等级。
如果在进行预测时发现引入了新的错误,或修复行为使新的故障不断发生,就应该停止预测。否则,这样的变化会因为增加问题的复杂程度而使模型的适用性降低。
好的软件可靠性模型应该具有如下重要特性:
1、基于可靠性的假设。
2、简单。
3、计算一些有用的量。
4、给出未来失效行为的好的映射。
5、可广泛使用。
13.2.3 软件的可靠性模型分类
可靠性模型大致可分为如下10类:
1、种子方法模型。
利用捕获一再捕获抽样技术估计程序中的错误数,在程序中预先有意“播种”一些设定错误的“种子”,然后根据测试出的原始错误和发现的诱导错误比例,估计程序中残留的错误数。
优点是简单易行,缺点是诱导错误的“种子”与实际的原始错误之间的类比性估量困难。
2、失效率类模型。
3、曲线拟合类模型。
用回归分析的方法研究软件 复杂性、缺陷数、失效率、失效间隔时间,包括参数方法和非参数方法两种。
4、可靠性增长模型。
5、程序结构分析模型。
通过对每一个节点可靠性、节点间转换的可靠性和网络在节点间的转换概率,得出该持续程序的整体可靠性。
6、输入域分类模型。
7、执行路径分析方法模型。
8、非其次泊松过程模型。
NHPP,以软件测试过程中单位时间的失效次数为独立泊松随机变量,来预测今后软件的某使用时间点的积累失效次数。
9、马儿可夫过程模型。
10、贝叶斯模型。
利用失效率的试验前分布和当前的测试失效信息,来评估软件的可靠性。
当软件可靠性工程师对软件的开发过程有充分的了解,软件的继承性比较好时具有良效果的可靠性分析模型。
时间域。
失效数类:失效数是有限的还是无限的。
失效数分布。
有限类:用时间表示的失效强度的函数形式。
无限类:用经验期望失效数表示的失效强度的函数形式。
13.2.4 软件可靠性模型举例
1、模型假设
JM 模型的基本假设如下:
1. 初始错误个数为一个未知的常数。
2. 发现错误立即被完全排除,并且不引入新的错误,排除时间忽略不记,因此每次排错后就要减 1。
3. 失效率剩余的错误个数成正比。
2、函数表达式。
软件可靠性模型并不成熟,定量分析方法和数学模型要在实践中不断加以验证和修正。
不同类型的软件,应用方式也有很大区别。
13.2.5 软件可靠性测试概述
可靠性测试 由可靠性目标的确定、运行剖面的开发、测试用例的设计、测试实施、测试结果的分析 等主要活动组成。
软件可靠性测试 还必须考虑对软件开发进度和成本的影响,最好是在受控的自动测试环境下,由专业测试机构完成。
13.2.6 定义软件运行剖面
弧 用来连接状态并表示由各种激励导致的转换,将转换概率分配给每个弧。
每类用户都可能以不同的方式使用系统。
两种类型分层形式:用户级分层、用法级分层。
用法级分层依赖于在测试状态下系统能做什么。
用户级分层考虑各种类型的用户,以及他们如何使用系统。
这些概率估计主要是基于如下几个方面:
1、从现有系统收集到的数据。
2、与用户的交谈或对用户进行观察获得的信息。
3、原型使用与测试分析的结果。
4、相关领域专家的意见。
13.2.7 可靠性测试的实施
有必要检查软件需求与文档是否一致,检查软件开发过程中形成的文档的准确性、完整性、一致性。
可靠性测试依赖于软件的可测试性。
为了获得更多的可靠数据,应该使用多态计算机同时运行软件,以增加累计时间。
用时间定义的软件可靠性数据分为4类:
1、失效时间数据。
2、失效间隔时间数据。
3、分组时间内的失效数据。
4、分组时间的累计失效数。
这 4类数据可以相互转化。
测试过程中必须真实地进行记录,每个测试记录必须包含如下信息:
1、测试时间。
2、含有测试用例的测试说明或标识。
3、所有与测试有关的测试结果,包括失效数据。
4、测试人员。
测试活动结束后要编写《软件可靠性测试报告》具备如下内容:
1、软件产品标识。
2、测试环境配置(硬件和软件)。
3、测试依据。
4、测试结果。
5、测试问题。
6、测试时间。
13.3 软件可靠性评价
13.3.1 软件可靠性评价概述
估计软件当前的可靠性,以确认是否可以终止测试并发布软件,还可以预计软件要达到相应的可靠性水平所需要的时间和工作量,确认软件的执行与需求的一致性。
13.3.2 怎样选择可靠性模型
可以从以下几个方面进行比较和选择:
1、模型假设的适用性。
2、预测的能力与质量。
3、模型输出值能否满足可靠性评价需求。
最重要的几个需要精确估计的可靠性定量指标包括如下内容:
1. 当前的可靠度。
2. 平均失效时间。
3. 故障密度。
4. 期望达到规定可靠性目标的日期。
5. 达到规定的可靠性目标的成本要求。
4、模型使用的简便性
简便性一般包含如下三层含义:
1. 模型需要的数据 易于收集,成本不能超过可靠性计划的预算。
2. 模型应该简单易懂,测试人员不会花费太多的时间去研究专业的数学理论。
3. 模型应该便于使用。
13.3.3 可靠性数据的收集
面向缺陷的可靠性测试 产生的测试数据经过分析后,可以得到非常有价值的可靠性数据,这部分数据取决于定义的运行剖面和选取的测试用例集。
可靠性数据的收集工作是贯穿整个软件生命周期的。
可行的一些办法如下:
1、及早确定所采用的可靠性模型。
2、指定可实施性较强的可靠性数据收集计划,指定专人负责,按照统一的规范收集记录可靠性数据。
3、重视软件测试特别是可靠性测试产生的测试数据的整理和分析。
4、充分利用数据库来完成可靠性数据的存储和统计分析。
13.3.4 软件可靠性的评估和预测
1、判断是否达到了可靠性目标。
2、如未能达到,要再投入多少时间、多少人力、多少资金。
3、在软件系统投入实际运行 若干时间后,能否达到交付或部分交付用户使用的可靠性水平。
没有失效就无法估计可靠性。
要在模型之外运行一些统计技术和手段对可靠性数据进行分析,作为可靠性模型的补充、完善、修正。
辅助方法如下:
1、失效数据的图形分析方法。
1. 积累失效个数图形。
2. 单位时间段内的失效数的图形。
3. 失效间隔时间图形。
2、试探性数据分析技术(Exploratory Data Analysis,EDA)对可靠性分析有用的信息如下:
1. 循环相关。
2. 短期内失效数的急剧上升。
3. 失效数集中的时间段。
13.4 软件的可靠性设计与管理。
13.4.1 软件可靠性设计
实践证明,保障软件可靠性,最有效、最经济、最重要的手段是 在软件设计阶段采取措施进行可靠性控制。
1、软件可靠性设计是软件设计的一部分,必须在软件的总体设计框架中使用,并且不能与其他设计原则相冲突。
2、软件可靠性设计在满足提高软件质量要求的前提下,以提高和保障软件可靠性为最终目标。
3、软件可靠性设计应确定软件的可靠性目标,不能无限扩大化,排在功能度、用户需求、开发费用之后考虑。
容错设计、检错设计、降低复杂度设计 等技术。
1、容错设计技术
1. 恢复块设计,一旦文本出现故障,用备份文本加以替换。
2. N版本程序设计,对于相同初始条件和相同输入的操作结果,实行多数表决,防止其中某一软件模块/版本的故障提供错误的服务。
必须注意以下两方面:
使软件的需求说明具有完整性和精确性。
设计全过程的不相关性。
3. 冗余设计
在相同的运行环境中,一套软件出故障的地方,另外一套也一定会出现故障。
在一套完整的软件系统之外,设计一种不同路径、不同算法或不同实现方法的模块或系统作为备份。
费用可能接近单个版本软件开发费用的两倍,还有可能导致软件运行时所花费的存储空间、内存消耗、运行时间有所增加,需要在可靠性要求和额外付出代价之间做出折中。
2、检错技术
检错技术实现的代价一般低于容错技术和冗余技术,但它有一个明显的缺点,就是不能自动解决故障。
着重考虑几个要素:检测对象、检测延时、实现方式、处理方式。
3、降低复杂度设计
模块复杂性主要包含模块内部数据流向和程序长度两个方面,结构复杂性用不同模块之间的关联程度表示。
软件复杂性是产生软件缺陷的重要根源。
在设计师就应该考虑降低软件的复杂性,是提高软件可靠性的有效方法。
在保证实现软件功能的基础上,简化软件结构,缩短程序代码长度,优化软件数据流向,降低软件复杂度,从而提高软件可靠性。
13.4.2 软件可靠性管理
为了进一步提高软件可靠性,又提出软件可靠性管理的概念,把软件可靠性活动贯穿于软件开发的全过程。
各个阶段的可靠性活动的目标、计划、进度、任务、修正措施等。
由于软件之间的差异较大,下面的每项活动并不是每一个软件系统的可靠性管理的必须内容,也不是软件可靠性管理的全部内容。

基于ODP的架构师实践
14.1 基于ODP的架构开发过程
系统架构反映了功能在系统系统构件中的分布、基础设施相关技术、架构设计模式等,它包含了架构的原则和方法、构件关系与约束,并能支持迭加或增量开发。
以软件架构为中心的开发过程是以质量和风险驱动的,最终提供一个稳定、低风险的系统架构,并满足客户的需求(包含潜在需求)。
开放分布进程的参考模型(RM-ODP)是一个ISO标准,定义了分布系统的重要性质:
开放性、整体性、灵活性、可塑性、联合性、可操作管理性、优质服务、安全性、透明性。
RM-ODP定义的 5个观点:
1、企业视点:商业需求和策略、系统的范围和目的。可能会影响系统中的与企业相关的信息,如组织结构等。
2、信息视点。
3、计算视点。
4、工程视点。
5、技术视点。
每一个观点有具体的建模目标和系统相关者。
分层子系统视图提供了一个所有子系统高度抽象的视图。
14.2 系统构想
14.2.1 系统构想的定义
系统构想是开发人员与用户之间共同的协议。
按照该协议,开发人员需要在特定的时间内完成系统用户的需求,系统构想必须简短而切中要点。
高度概括了业务架构的核心内容。
14.2.2 架构师的作用
系统构想有助于各方明了系统的目标和范围。
确保系统开发的计划、设计等阶段能依次有序地展开。
系统构想阶段,架构师合理的介入,有以下好处:
1、有利于使系统架构师本身对系统的看法更加全面、准确。
2、统一系统开发人员对系统的看法。
3、正确确定需求的优先次序。
4、最大程度上提高客户对设计等过程的参与程度,更好地与客户沟通。
14.2.3 系统构想面临的挑战
架构师对其控制能力之外的因素通常无能为力,可以通过有效地评估,以及高级经理和架构师之间保持紧密的联系克服这些困难。
还必须面对以下几种情况:
1、很多架构师把架构看成是他们独自的创造,只要他们认为合适的就进行修改。
2、有些人不是拥有产品线构想的高级经理,却总是由这些人决定雇佣谁来做架构师。
14.3 需求分析
14.3.1 架构师的工作
需求一般定义系统的外部行为和外观以及用户信息,而不用设计系统的内部结构。
对需求分析通常考察以下6个方面的内容:
1、系统范围对象关系图。
2、用户接口原型,用户操作的一个雏形。
3、需求的适用性,该用什么技术解决,性能怎么样,是否与其他需求相重合或矛盾,需求分析应注意需求本身的实用或适用,而不必考虑其实现。
4、确定需求的优先级。
5、为需求建立功能结构模型,组件图,实体数据对象图。
6、使用质量功能分配(Quality Function Deploymen,QFD)发现隐藏质量需求,建立相关质量场景,先期预测需求风险。
有效地捕捉行为需求的方法是分析用例(Use Case)
用例包含图和文字描述,符号 简单、抽象,保证表述需求时简单性和清晰度。
14.3.2 需求分析的任务
1、需求分析的目的
完整、准确地描述用户对系统的需求,跟踪用户需求的变化,准确地反映到系统架构和设计中,设计和用户的需求保持一致。
具有决策性、方向性、策略性的作用。
2、需求分析的特点
追求系统需求的完整性、一致性、验证性。
保持和用户要求同步,
保持需求分析各侧面之间的一致,
保持需求和系统设计间的同步。
14.3.3 需求文档与架构
每个用例都有一个相关需求的文字描述,定义用例应该和领域专家一起进行,如果没有领域专家的长期参与,只能是一种“伪分析”。
用例为定义架构提供了一个系统的领域行为模型。
界面的外观、功能、导航同用例紧密相连,有效定义屏幕的方法叫低保真度原型(Low-fidelity Prototyping),领域专家也始终参与到屏幕定义中去。
需求分析的项目词汇表,也将在架构规划中被扩展。
14.4 系统架构设计
系统架构沟通了需求和软件之间巨大的语义上的鸿沟。
系统架构的第一个任务就是定义这两个极端之间的映射。
开放分布式处理(Open Distributed Processing,ODP)包括企业、逻辑信息、计算接口、分布式工程、技术选择。
对每个观点,确认架构需求的一致性是非常重要的。
14.4.1 企业业务架构
企业业务架构从IT角度,对企业的业务结构、企业机构、业务的关系、内部的关系、与外部机构的关系进行整理定义。
包含如下内容:
1、企业的业务和战略目标,近期、中期、长远 目标。
2、企业的组织结构。
3、业务的分类。
4、各类业务之间的关系。
5、组织机构与业务的关系。
6、企业与外部机构的关系。
这些业务对象模型标识出系统的关键性约束,包括系统目标和重要的系统策略。
策略包含如下三类明确的表达方式:
责任:业务对象必须做什么。
许可:业务对象可以做什么。
禁止:业务对象不可以做什么。
对业务问题进行分析时,要考虑企业业务的发展,如新的服务或产品推出、考虑组织机构的改变等。
所有这些可能的变化(易变场景)都应该提现在企业业务架构中。
通过对企业业务架构的定义,很清楚地知道由于企业业务特点、业务的流程特点、企业的组织机构等原因对IT系统所带来的自然分块和各个分块之间的边界关系。
企业业务架构的维护是一个长期而反复的工作。
测试结果报告系统(Test Results Reporting System,TRRS)。
对象约束语言(Object Constraint Language,OCL)来定义企业活动者的这些策略(如 许可、禁止、义务等)。
14.4.2 逻辑信息架构
逻辑信息架构(信息视点)标识出系统必须知道什么。
强调定义系统状态的属性。
开放分布式处理是一种面向对象的方法,模型包含了关键信息的处理,如传统的对象概念。
软件架构对象并不是编程的对象,它表示对系统的约束和依赖,这些约束能够消除把需求翻译成软件过程中的许多猜测性工作。
架构师应该把他们的建模集中于有高风险、高复杂性、模糊性的关键方面。
14.4.3 计算接口架构
计算接口对系统架构非常有帮助,但是它常常被架构师所忽略。
消除多个开发者和小组的主要设计争端,这些接口的架构控制对于一个支持变化和控制复杂性的稳定的系统结构来说,是非常重要的。
接口定义语言(IDL),完全独立于编程语言和操作系统。
14.4.4 分布式工程架构
分布式工程架构定义了底层结构的需求,独立于所选择的技术,解决了最复杂的系统策略,包括物理位置、系统规模可变性、通信服务质量。
ODP的一个最大好处是关注点分离。
14.4.5 技术选择架构
大多数架构是独立的。
基于对候选者的初始选择,根据产品价格、培训要求、维护风险之类的项目因素而反复进行。
14.5 实现模型
最终用户和架构师应在一起审查并贯穿于用例,始终来证实需求的有效。
对产品设计的可行性做出准确地评估、论证。
14.6 架构原型
架构原型是很好的需求验证工具,作为改进设计的手段,确保与工程约束相一致。
下面是一些架构师可以在架构原型中寻求解答的具体问题:
1、主要组件是否得到了良好的定义?是否恰当?
2、主要组件间的协作是否得到了良好的定义?
3、耦合是否得意最小化?
4、我们能否确定重用的潜在来源?
5、接口定义和各项约束是否可以接受?
6、每个模块是否能访问到其所需要的数据?
经过2次或3次迭代之后,架构变得稳定。主要的抽象对象都已找到,子系统和过程都已经完成,所有的接口都已明确定义。
利用架构原型,几个好处:
1、落实之前,让团队成员能自由发表他们自己的看法。
2、统一团队之间的思想看法,提高系统开发的成功率。
3、对系统内部的结构分析与设计也有帮助。
14.7 项目规划
项目规划是通过批准的正式文档,以它为基准跟踪和控制项目,行动方案和资源分配,引导项目实施。
主要作用是将指定规划的假设和决定批准的范围、成本、进度 的基线等用正式的文档记录保存。
估算是项目规划的核心。
随着项目的进展,估算会不断校正并逐渐地接近实际。
项目管理者通过计划与规划的差异,不断优化和更新计划策略,使项目按规划的要求得以实现,计划的变更是可管理和可受控的。
规划包括:
1、项目的目的、范围、目标、对象。
2、软件生存周期 的选择。
3、精选的规程、方法、标准。
4、待开发的软件工作产品。
5、规模估计、软件项目的工作量和成本估计。
6、关键计算机资源的估计;项目的里程碑。
7、风险的识别和评估。
8、工程实施和支持工具计划。
软件项目计划的目标有:软件估计被文档化,活动和约定形成文档,受影响的组和个人认同与软件项目规划的约定。
14.8 并行开发
14.8.1 软件并行开发的内容及意义
提高软件生产率,改善软件质量,有效地组织可以重复的资源。
并行开发研究的内容主要如下:
1、软件过程及其模型。
2、并行分成划分。
3、并行控制。
4、支持环境。
5、交互机制与集成技术。
14.8.2 并行开发的过程
把软件系统的开发过程划分为若干个可以并行的成分,这个成分称之为子开发过程。
子开发过程 = 开发小组 + 软件对象 + 对软件对象的开发活动。
并行开发活动,称为并行开发系统,实体是个开发小组,实体属性是被开发的软件对象,行为是开发软件对象的活动。
行为模块的划分是并行开发中的核心问题,模块独立性是衡量软件设计质量的关键。
系统划分方法:
1、基于 Petri网系统模型的动态划分方法。
2、基于脚本的系统划分方法。
软件过程并行控制是一个非常重要的问题。
就是要用正确的方式调度并行操作,避免造成不一致性,使一个操作的执行不受其他系统的干扰。
保证一致性、相容性、正确性、可靠性,手段有 加锁、时间戳、管程、Petri 网、PV 操作等。
继承和测试被分为两个阶段,如果不考虑硬件或软件的集成,两个阶段并没有明显的界限,所以,软件集成的主要问题是集成测试技术。
14.9 系统转换
系统转换是指运用某一种方式由新的系统代替旧的系统的过程,也就是系统设备、数据、人员等方面的转换。
14.9.1 系统转换的准备
转换前,必须认真做好准备。
还需测试试运行这项工作。
注意如下两个问题:
1、系统试运行工作的代表性。
2、系统试运行中错误的修正。
14.9.2 系统转换的方式
直接转换、平行转换、分段转换、分批转换。
14.9.3 系统转换的注意事项
1、大量的基础数据,录入工作量很大,应及早准备,尽快完成。
2、应提前做好人员的培训工作。
3、出现一些局部性的问题,应有足够的准备,并做好记录。如果出现致命问题,要重新设计。
14.10 操作与维护
14.10.1 操作与维护的内容
数据管理与维护。
设备管理与维护。
软件的管理与维护工作。
14.10.2 系统维护与架构
系统架构的好坏,可维护性是一个重要方面,维护人员应参与架构的审评。
可维护性可以定性地定义为:维护人员 理解、改正、改动、改进的难易程度。
可维护性有如下几个评价指标:
可理解性。
可测试性。
可修改性。
系统维护工作可以分为以下4种类型:
更正性维护。
适应性维护。
完善性维护。
预防性维护。
维护人员必须先理解要维护的系统,然后建立一个维护方案。
由于某处修改很可能会影响其他模块程序,所以考虑的重要问题是修改的影响范围和波及面的大小。
必须强调的是,维护是对整个系统而言的,必须同时修改涉及的所有文档。
14.11 系统移植
14.11.1 系统移植的方式
不修改已有的软件。
修改软件。
重新编软件。
14.11.2 系统移植的工作阶段划分
计划阶段。
准备阶段,准备转换所需的材料。
转换阶段。
测试阶段。
验证阶段。
使系统移植工作标准化,工具实现自动化。
14.11.3 系统移植工具
系列化、标准化、文档化,使任何人都能以相同的顺序开展工作,提高效率。

系统架构设计师教程学习笔记相关推荐

  1. 系统架构设计师教程-学习-记录(1)系统架构师知识结构

    系统架构设计师教程-学习-记录(1)系统架构师知识结构 初 记 系统架构师知识结构 系统架构师具备的能力 初 欢迎进qq群交流:546496965 学习<系统架构设计师教程>,初心是为了学 ...

  2. 系统架构设计师教程学习随笔 (计算机与网络基础知识--操作系统基础知识)

    一. 操作系统分类 1. 网络操作系统 网络操作系统(NOS)是网络的心脏和灵魂,是向网络计算机提供服务的特殊的操作系统.它在计算机操作系统下工作,使计算机操作系统增加了网络操作所需要的能力.例如像前 ...

  3. 《网络规划设计师考试大纲》、《网络规划设计师教程》和《系统架构设计师教程》...

    <网络规划设计师考试大纲>.<网络规划设计师教程>和<系统架构设计师教程>即将与广大考生见面 2009年下半年即将开考的系统架构设计师和网络规划设计师两个科目,是自 ...

  4. 【软考 - 高级系统架构设计师】(笔记)01 -企业信息化战略与实施

    [软考 - 高级系统架构设计师](笔记)01 -企业信息化战略与实施 一.企业信息化战略与实施 二.企业信息化与电子商务 一.企业信息化战略与实施 信息的定义 香农:信息就是不确定性的减少 维纳:信息 ...

  5. 《系统架构设计师教程》 第一章:绪论

    1. 系统架构的概念与发展历史 现代信息系统的架构三要素:构件.模式以及规划. 软件系统架构是关于软件系统的结构.行为和属性的高级抽象. 20世纪80年代,IBM首先引入"信息系统架构框架& ...

  6. 系统架构设计师(学习资料)

    系统架构设计师 系统开发基础 系统开发基础 软件设计包括:体系结构设计.接口设计.数据设计.过程设计 结构设计:说明各个组件的关系 接口设计:人与软件.软件与操作系统之间的如何通信 数据设计:将模型转 ...

  7. 系统架构设计师考试题库笔记重点6:信息化基础

    信息系统数据环境 数据文件:没有数据库管理系统,分散设计各种数据文件. 应用数据库:为分散的应用设计的数据库. 主题数据库:存储结构和处理过程都是独立的. 信息检索数据库:保证信息检索和快速查询的需求 ...

  8. 《系统架构设计师教程》 第二章:计算机与网络基础知识

    目录 1. 操作系统基础知识 1.1 操作系统基础知识 1.2 进程管理 1.3 存储管理 1.4 设备管理 1.5 文件管理 1.6 作业管理 2. 数据库系统基础知识 2.1 关系数据库系统基础 ...

  9. 软考高级系统架构设计师所需要的所有资料,教程、大纲、整体 (清华版本)

    Zip包中包含软考高级系统架构设计师所需要的所有资料,包括清华版本(官网采用)的系统架构设计师教程以及希赛第4版本的教程.系统架构设计师考试大纲(2009版)也就是清华版本的以及系统架构设计师历年真题 ...

最新文章

  1. MIME types [记录]
  2. WPF 问题 PresentationCore.dll!System.Windows.Media.Composition.DUCE.Channel.SyncFlush() 分析
  3. github authentication设置里,fallback SMS number国家选项里没有中国的问题
  4. 今日头条核心技术“个性推荐算法”揭秘
  5. 桌面程序explorer_备份Internet Explorer 7搜索提供程序列表
  6. jQ效果:简单的手风琴效果
  7. python效率低为什么_为什么我的工作效率降低了?
  8. 自动优化工具Black帮你写出规范漂亮的python代码
  9. [转]抛弃jQuery,使用原生JavaScript
  10. i7-10750H和i7-8750H 对比哪个好
  11. 多款日志分析工具,总有一款适合你
  12. 数字签名的原理及其应用
  13. LCD和LED屏幕的工作原理总结
  14. box-shadow详解
  15. php 按汉字拼音排序,php 数组按中文拼音排序
  16. Sublime text3 高级操作(直接上代码,超爽。)
  17. 技嘉b365m小雕驱动工具_百元也有“雕”牌!技嘉B365M Aorus Elite主板评测
  18. Fractal解题笔记
  19. vue组件的动态加载
  20. 看天涯社区如何防验证码接口短信轰炸

热门文章

  1. 手机录音m4a怎么转换成mp3
  2. 关于爬取猫眼电影的口碑评分和累计票房的尝试
  3. 使用树莓派3B+ 制作一个属于自己的无线AP 无线路由器 一个Wi-Fi热点
  4. FPGA控制AD7606进行数据采集
  5. 基于JavaWeb的互联网金融创意众筹网站系统
  6. 计算机硬盘加密的几种方法,对于移动硬盘加密方法 你了解多少种呢?
  7. 四大CPU架构的区别
  8. cadence SPB17.4 - Active Class and Subclass
  9. 谷歌浏览器(chrome)版本与驱动对照表
  10. (附源码)springboot社区疫苗接种管理系统 毕业设计 281442