面向对象分析,事物与事物之间的关系

  1. 依赖关系:一个事物发生变化影响另一个事物
  2. 泛化关系:特殊/一般关系
  3. 关联关系:描述了一组链,链是对象之间的连接
  4. 聚合关系:整体与部分生命周期不同
  5. 组合关系:整体与部分生命周期相同
  6. 实现关系:接口与类之间的关系

加密算法

常见的对称的加密算法包括:

DES(56位密钥),3DES(K1、K2、K3决定了算法的安全性,若三个秘钥互不相同,本质上就相当于用一个长为168位的密钥进行加密。多年来,它在对付强力攻击时是比较安全的。若数据对安全性要求不那么高,K1可以等于K3。在这种情况下,密钥的有效长度为112位。),RC-5,IDEA,AES

常见的非对称加密算法包括:

RSA,ECC,Elgamal、背包算法、Rabin、D-H

常见的信息摘要算法包括:

SHA(160位密钥)、MD5(56位密钥*3或者2)、HMAC

非对称加密

在使用非对称加密体质进行加解密时,甲使用乙的公钥加密,则乙使用配套的私钥解密(即乙的公钥加密得用乙的私钥解密)

数字证书

数字证书按X.509体系标准包含以下内容

  1. 证书的版本信息
  2. 证书的序列号,每个证书均有且只有一个证书序列号
  3. 证书的用的签名算法
  4. 证书的发行机构名称,命名规则通常用X.500格式
  5. 证书的有效期,目前通用的证书通常用UTC时间格式
  6. 证书所有人的名称,命名规则一般用X.500格式
  7. 证书所有人的公开秘钥(公钥)
  8. 证书发行者对证书的签名

数字签名

在安全领域,使用数字签名技术,能防消息篡改,消息伪造,也可防 消息在传输过程中出错,但不能防止消息泄密。因为数字签名本质上 来讲,是利用私钥加密,公钥验证,这意味着所有人都能解开数字签 名的内容,故无保密作用。

微内核结构

微内核结构示意图

存储结构

1.冯诺依曼结构

冯诺依曼结构

冯诺依曼结构也称普林斯顿结构,程序指令和数据存放在同一个存储器中,因此数据和指令的长度必须相同。

2.哈佛结构

哈佛结构

哈佛结构数据存储和程序存储在不同的存储器中,每一个存储器独立编址,独立访问.数据阿程序指令的宽度可以不同。需要四条总线。

3.改进型哈佛结构

改进型哈佛结构

改进型哈佛结构数据与程序存储在不同的结构中,区别是将两个的数据总线和程序总线合并,只需要俩条总线。

多核CPU调度

对于多核 CPU,优化操作系统任务调度算法是保证效率的关键。一般任务调度算法有全局队列调度和局部队列调度。 前者是指操作系统维护一个全局的任务等待队列,当系统中有一个 拾弐 CPU 核心空闲时,操作系统就从全局任务等待队列中选取就绪任务开 始在此核心上执行。这种方法的优点是 CPU 核心利用率较高。 后者是指操作系统为每个 CPU 内核维护一个局部的任务等待队列, 当系统中有一个 CPU 内核空闲时,便从该核心的任务等待队列中选 取恰当的任务执行,这种方法的优点是任务基本上无需在多个 CPU 核心间切换,有利于提高 CPU 核心局部 Cache 命中率。目前多数多核 CPU 操作系统采用的是基于全局队列的任务调度算法

信息资源管理

信息资源管理包括数据资源管理和信息处理管理,前者强调对数据的 拾参 控制(维护和安全),后者则关心企业管理人员如何获取和处理信息 (流程和方法)且强调企业中信息资源的重要性。信息资源管理的基 础是数据管理。数据管理与数据库管理有很大的区别,数据库管理仅 仅负责物理数据库的设计、实现、安全性和维护工作;而数据管理在 于确定数据规划、数据应用、数据标准、数据内容、数据范围等

信息资源规划

信息资源规划是信息化建设的基础工程,是指对企业生产经营活动所 需要的信息,对产生、获取、处理、存储、传输和利用等方面进行全 面的规划。 IRP 强调将需求分析与系统建模紧密结合起来,需求分析是系统建模 的准备,系统建模是用户需求的定型和规划化表达

业务流程重组

业务流程重组(Business Process Reengineering,BPR)是针对企业业 务流程的基本问题进行反思,并对它进行彻底的重新设计,使业绩取 得显著性的提高。与目标管理、全面质量管理、战略管理等理论相比, BPR 要求企业管理人员从根本上重新思考业已形成的基本信念,即对 长期以来企业在经营中所遵循的基本信念(例如,分工思想、等级制 度、规模经营和标准化生产等体制性问题)进行重新思考。这就需要 打破原有的思维定势,进行创造性思维。 由于 BPR 理论突破了传统的企业分工思想,强调以流程为核心,改变 了原有以职能为基础的管理模式,为企业经营管理提出了一个全新的 思路。

结构化设计

结构化设计(Structured Design,SD)是一种面向数据流的方法,它 以 SRS 和 SA 阶段所产生的数据流图和数据字典等文档为基础,是一 个自顶向下、逐步求精和模块化的过程。SD 方法的基本思想是将软 件设计成由相对独立且具有单一功能的模块组成的结构,分为概要设 计和详细设计两个阶段,其中概要设计的主要任务是确定软件系统的 结构,对系统进行模块划分,确定每个模块的功能、接口和模块之间 的调用关系;详细设计的主要任务是为每个模块设计实现的细节。

耦合程度

耦合度从低到高排序为:

1、非直接耦合:两个模块之间没有直接关系,它们之间的联系完全 是通过主模块的控制和调用来实现的。

2、数据耦合:一组模块借助参数表传递简单数据。

3、标记耦合:一组模块通过参数表传递记录信息(数据结构)。

4、控制耦合:模块之间传递的信息中包含用于控制模块内部逻辑的 信息。

5、外部耦合:一组模块都访问同一全局简单变量而不是同一全局数 据结构,而且不是通过参数表传递该全局变量的信息。

6、公共耦合:多个模块都访问同一个公共数据环境,公共的数据环 境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

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

内聚程度

内聚程度从高到低排序为:

1、功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。

2、顺序内聚:处理元素相关,而且必须顺序执行。

3、通信内聚:所有处理元素集中在一个数据结构的区域上。

4、过程内聚:处理元素相关,而且必须按特定的次序执行。

5、瞬时内聚(时间内聚):所包含的任务必须在同一时间间隔内执 行。

6、逻辑内聚:完成逻辑上相关的一组任务。

7、偶然内聚(巧合内聚):完成一组没有关系或松散关系的任务。

JAVA持久化框架

JAVA 体系下,目前主流的持久化技术框架包括 CMP、Hibernate、iBatis 和 JDO 等。

1.CMP

在 J2EE 架构中,CMP(Container-Managed Persistence,容器管理持久 化)是由 EJB 容器来管理实体 EJB 的持久化,EJB 容器封装了对象/ 关系的映射和数据访问细节。CMP 和 ORM 的相似之处在于,两者都 提供对象/关系映射服务,都将对象持久化的任务从业务逻辑中分离 出来。区别在于 CMP 负责持久化实体 EJB 组件,而 ORM 负责持久化 POJO(Plain Ordinary Java Object,简单的 Java 对象),它是普通的基 弐拾 于 Java Bean 形式的实体域对象。 CMP 模式的优点在于它基于 EJB 技术,是 SUN J2EE 体系的核心部分, 获得了业界的普遍支持,包括各大厂商和开源组织等,如果选择它来 进行企业级开发,技术支持会非常完备,同时其功能日趋完善,包括 了完善的事务支持,EJBQL 查询语言和透明的分布式访问等。CMP 的 缺点在于开发的实体必须遵守复杂的 J2EE 规范,而 ORM 没有类似要 求,其灵活性受到影响;而且,CMP 只能运行在 EJB 容器中,而普通 POJO 可以运行在任何一种 Java 环境中;尽管遵循 J2EE 的规范,但 EJB 的移植性比 ORM 要差。

2.Hibernate

Hibernate 和 iBatis 都是 ORM 解决方案,不同的是两者各有侧重。

3. iBatis

iBatis 提供 Java 对象到 SQL(面向参数和结果集)的映射实现,实际 的数据库操作需要通过手动编写 SQL 实现,与 Hibernate 相比,iBatis 最大的特点就是小巧,上手较快。如果不需要太多复杂的功能,iBatis 是既可满足要求又足够灵活的最简单的解决方案。

4.JDO

JDO(Java Data Object,Java 数据对象)是 SUN 公司制定的描述对象 持久化语义的标准 API,它是 Java 对象持久化的新规范。JDO 提供了 透明的对象存储,对开发人员来说,存储数据对象完全不需要额外的 代码(例如,JDBC API 的使用)。这些繁琐的例行工作已经转移到 JDO 产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务 弐拾壱 逻辑上。 另外,JDO 很灵活,因为它可以在任何数据底层上运行。JDBC 只能应 用于关系型数据库,而 JDO 更通用,提供到任何数据底层的存储功能, 包括关系型数据库、普通文件、XML 文件和对象数据库等,使得应用 的可移植性更强。

七种流行的敏捷开发方法

七种流行的敏捷开发

  1. Scrum

这是一种非常流行的方法,它借用了足球scrum的名称并将其用作以下隐喻:

每日站立会议,
Scrum 的迭代很短。每次迭代都专注于交付由 Scrum 团队开发的工作软件,
Sprint和产品有严格的优先级“积压”,并且
分配了“产品所有者”角色来设置优先级。
维护敏捷最佳 实践的“ Scrum Master ”

Scrum

2.极限编程(XP)

XP是一套工程实践。开发人员必须超越他们的能力来实施这些实践。团队计划少量工作并在短时间内构建,称为 1-4 周迭代。

XP 与其他迭代框架的主要区别在于 XP 侧重于需要达到极端水平的软件工程实践。例如,XP 将代码审查视为极端,并鼓励通过结对编程 100% 的时间进行同行审查。

XP

3.快速应用程序开发 (RAD)

Rad不仅是一系列敏捷迭代方法的总称,也是 James Martin (1991) 所描述的一种方法。Rad 负责分析、设计、构建和测试阶段,并迭代开发原型和增加功能的版本。

RAD

4.动态系统开发方法(DSDM)

DSDM 是一种敏捷的软件开发方法。它是一种迭代和增量方法,主要基于快速应用程序开发(RAD)方法。

然而,RAD 方法通常是非结构化的,并且 rad 团队之间没有共同的流程。因此,每个组织都建立了自己的方法和框架,标准也各不相同,因此很难招募到有经验的 rad 从业人员。为了解决这个问题,DSDM应运而生。

该方法提供了一个四阶段的框架,包括:

  • 可行性和商业研究
  • 功能模型/原型迭代
  • 设计和构建迭代
  • 执行

DSDM

5.统一流程(UP)

Up是一个迭代和增量框架,具有多种实现,包括 RUP、Open-UP 和 Agile-UP。一个高度可定制的框架,具有以架构为中心和以风险为中心的 rad 方法。UP的每个阶段被称为初始阶段、细化阶段、构建阶段和过渡阶段,每个阶段都有不同的侧重点。

UP

6.精益方法

精益起源于 1970 年代的制造业。Mary 和 Tom Popendieck (2003) 在他们的《精益软件开发》一书中将精益原则应用于软件开发。精益专注于为客户提供价值并消除流程中的浪费。

7.看板

看板:一种起源于精益制造的方法,由 David Anderson (2010) 进一步发展。看板基于工作流可视化,通常在物理板上,解决导致问题的问题,限制团队正在进行的工作并平衡对团队的需求。

软件能力成熟度模型

CMM是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。

CMM/CMMI将软件过程的成熟度分为5个等级,以下是5个等级的基本特征:

(1)初始级(initial)

工作无序,项目进行过程中常放弃当初的计划。管理无章法,缺乏健全的管理制度。开发项目成效不稳定,项目成功主要依靠项目负责人的经验和能力,他一但离去,工作秩序面目全非。

(2)可重复级(Repeatable)

管理制度化,建立了基本的管理制度和规程,管理工作有章可循。 初步实现标准化,开发工作比较好地按标准实施。 变更依法进行,做到基线化,稳定可跟踪,新项目的计划和管理基于过去的实践经验,具有重复以前成功项目的环境和条件。

(3)已定义级(Defined)

开发过程,包括技术工作和管理工作,均已实现标准化、文档化。建立了完善的培训制度和专家评审制度,全部技术活动和管理活动均可控制,对项目进行中的过程、岗位和职责均有共同的理解 。

(4)已管理级(Managed)

产品和过程已建立了定量的质量目标。开发活动中的生产率和质量是可量度的。已建立过程数据库。已实现项目产品和过程的控制。可预测过程和产品质量趋势,如预测偏差,实现及时纠正。

(5)优化级(Optimizing)

可集中精力改进过程,采用新技术、新方法。拥有防止出现缺陷、识别薄弱环节以及加以改进的手段。可取得过程有效性的统计数据,并可据进行分析,从而得出最佳方法。

多种UML图有其严格的分类,首先分为静态图和动态图。其中动态图又有一个细化的分类:交互图,交互图包括顺序图(序列图)与通信图(协作图)。

UML 2.0

UML 2.0包括14种图,分别列举如下:

(1)类图(class diagram)

类图描述一组类、接口、协作和它们之间的关系。在OO系统的建模中,最常见的图就是类图。类图给出了系统的静态设计视图,活动类的类图给出了系统的静态进程视图。

(2)对象图(object diagram)

对象图描述一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。和类图一样,这些图给出系统的静态设计视图或静态进程视图,但它们是从真实案例或原型案例的角度建立的。

(3)构件图(component diagram)

构件图描述一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构。构件图用于表示系统的静态设计实现视图。对于由小的部件构建大的系统来说,构件图是很重要的。构件图是类图的变体。

(4)组合结构图(composite structure diagram)

组合结构图描述结构化类(例如,构件或类)的内部结构,包括结构化类与系统其余部分的交互点。组合结构图用于画出结构化类的内部内容。

(5)用例图(use case diagram)

用例图描述一组用例、参与者及它们之间的关系。用例图给出系统的静态用例视图。这些图在对系统的行为进行组织和建模时是非常重要的。

(6)顺序图(sequence diagram,序列图)

顺序图是一种交互图(interaction diagram),交互图展现了一种交互,它由一组对象或参与者以及它们之间可能发送的消息构成。交互图专注于系统的动态视图。顺序图是强调消息的时间次序的交互图。

(7)通信图(communication diagram)

通信图也是一种交互图,它强调收发消息的对象或参与者的结构组织。顺序图和通信图表达了类似的基本概念,但它们所强调的概念不同,顺序图强调的是时序,通信图强调的是对象之间的组织结构(关系)。在UML 1.X版本中,通信图称为协作图(collaboration diagram)。

(8)定时图(timing diagram,计时图)

定时图也是一种交互图,它强调消息跨越不同对象或参与者的实际时间,而不仅仅只是关心消息的相对顺序。

(9)状态图(state diagram)

状态图描述一个状态机,它由状态、转移、事件和活动组成。状态图给出了对象的动态视图。它对于接口、类或协作的行为建模尤为重要,而且它强调事件导致的对象行为,这非常有助于对反应式系统建模。

(10)活动图(activity diagram)

活动图将进程或其他计算结构展示为计算内部一步步的控制流和数据流。活动图专注于系统的动态视图。它对系统的功能建模和业务流程建模特别重要,并强调对象间的控制流程。

(11)部署图(deployment diagram)

部署图描述对运行时的处理节点及在其中生存的构件的配置。部署图给出了架构的静态部署视图,通常一个节点包含一个或多个部署图。

(12)制品图(artifact diagram)

制品图描述计算机中一个系统的物理结构。制品包括文件、数据库和类似的物理比特集合。制品图通常与部署图一起使用。制品也给出了它们实现的类和构件。

(13)包图(package diagram)

包图描述由模型本身分解而成的组织单元,以及它们之间的依赖关系。

(14)交互概览图(interaction overview diagram)

交互概览图是活动图和顺序图的混合物。

UML构造

从总体上来看,UML的结构包括构造块、规则和公共机制三个部分。

(1)构造块

UML有三种基本的构造块,分别是事物(thing)、关系(relationship)和图(diagram)。事物是UML的重要组成部分,关系把事物紧密联系在一起,图是多个相互关联的事物的集合。

(2)公共机制

公共机制是指达到特定目标的公共UML方法,主要包括规格说明(详细说明)、修饰、公共分类(通用划分)和扩展机制四种。规格说明是事物语义的细节描述,它是模型真正的核心;UML为每个事物设置了一个简单的记号,还可以通过修饰来表达更多的信息;UML包括两组公共分类,分别是类与对象(类表示概念,而对象表示具体的实体)、接口与实现(接口用来定义契约,而实现就是具体的内容);扩展机制包括约束(扩展了UML构造块的语义,允许增加新的规则或修改现有的规则)、构造型(扩展UML的词汇,用于定义新的构造块)和标记值(扩展了UML构造块的特性,允许创建新的特殊信息来扩展事物的规格说明)。

(3)规则

规则是构造块如何放在一起的规定,包括为构造块命名;给一个名字以特定含义的语境,即范围;怎样使用或看见名字,即可见性;事物如何正确、一致地相互联系,即完整性;运行或模拟动态模型的含义是什么,即执行。

计算机系统的多级层次结构

层级结构图

(1)硬联逻辑级

这是计算机的内核,由门、触发器等逻辑电路组成。

(2)微程序级

这一级的机器语言是微指令集,程序员用微指令编写的微程序一般直接由硬件执行。

(3)传统机器级

这一级的机器语言是该机的指令集,程序员用机器指令编写的程序可以由微程序进行解释。

(4)操作系统级

从操作系统的基本功能来看,一方面它要直接管理传统机器中的软硬件资源,另一方面它又是传统机器的延伸。

(5)汇编语言级

这一级的机器语言是汇编语言,完成汇编语言翻译的程序称为汇编程序。

(6)高级语言级

这一级的机器语言就是各种高级语言,通常用编译程序来完成高级语言翻译的工作。

(7)应用语言级

这一级是为了使计算机满足某种用途而专门设计的,因此,这一级的机器语言就是各种面向问题的应用语言。

指令系统

指令系统

商业智能系统

BI系统主要包括数据预处理、建立数据仓库、数据分析和数据展现四个主要阶段。

数据预处理是整合企业原始数据的第一步,它包括数据的抽取(Extraction)、转换(Transformation)和加载(Load)三个过程(ETL过程);建立数据仓库则是处理海量数据的基础;数据分析是体现系统智能的关键,一般采用OLAP和数据挖掘两大技术。OLAP不仅进行数据汇总/聚集,同时还提供切片、切块、下钻、上卷和旋转等数据分析功能,用户可以方便地对海量数据进行多维分析。数据挖掘的目标则是挖掘数据背后隐藏的知识,通过关联分析、聚类和分类等方法建立分析模型,预测企业未来发展趋势和将要面临的问题;在海量数据和分析手段增多的情况下,数据展现则主要保障系统分析结果的可视化。

业务流程分析

业务流程分析的主要方法有价值链分析法、客户关系分析法、供应链分析法、基于ERP的分析法和业务流程重组等。

(1)价值链分析法

价值链分析法找出或设计出那些能够使顾客满意,实现顾客价值最大化的业务流程。价值链就是一个创造价值的工作流程,在这一总流程基础上,可把企业具体的活动细分为生产指挥流程、计划决策流程、营销流程、信息搜集与控制流程、资金筹措流程等。其中有些业务流程特别重要,对形成企业核心竞争力起着关键作用,这样的业务流程称为基本业务流程,对应于价值链中的基本活动;其他业务流程是对企业的基本经营活动提供支持和服务,称为辅助业务流程,对应于价值链中的辅助活动。

(2)客户关系分析法

客户关系分析法就是把CRM用在业务流程的分析上。CRM的目标是建立真正以客户为导向的组织结构,以最佳的价值定位瞄准最具吸引力的客户,最大化地提高运营效率,建立有效的合作伙伴关系。从CRM的角度分析业务流程,企业的业务流程应当是以客户与企业的关系,以及客户行为为依据的,而不是传统的按照企业内部管理来实施的。

(3)供应链分析法

供应链分析法是从企业供应链的角度分析企业的业务流程,它源于SCM。供应链是指用一个整体的网络用来传送产品和服务,从原材料开始一直到最终客户(消费者),它凭借一个设计好的信息流、物流和资金流来完成。供应链分析法主要从企业内部供应链和外部供应链两个角度来分析企业的业务流程,分析哪些流程处于供应链的核心环节。

(4)基于ERP的分析法

ERP的基本思想是将企业的业务流程看作是一个紧密联接的供应链,将供应商和企业内部的采购、生产、销售,以及客户紧密联系起来,对供应链上的所有环节进行有效管理,实现对企业的动态控制和各种资源的集成和优化,从而提升企业基础管理水平,追求企业资源的合理、高效利用。

(5)业务流程重组

通过重新审视企业的价值链,从功能成本的比较分析中,确定企业在哪些环节具有比较优势。在此基础上,以顾客满意为出发点进行价值链的分解与整合,改造原有的业务流程,实现业务流程的最优化。

模块4要素

(1)输入和输出

模块的输入来源和输出去向都是同一个调用者,即一个模块从调用者那儿取得输入,进行加工后再把输出返回调用者。

(2)处理功能

指模块把输入转换成输出所做的工作。

(3)内部数据

指仅供该模块本身引用的数据。

(4)程序代码

指用来实现模块功能的程序。前两个要素是模块的外部特性,即反映了模块的外貌;后两个要素是模块的内部特性。在结构化设计中,主要考虑的是模块的外部特性,其内部特性只做必要了解,具体的实现将在系统实施阶段完成。

系统设计,类

在系统设计过程中,类可以分为三种类型,分别是实体类、边界类和控制类。

(1)实体类

实体类映射需求中的每个实体,实体类保存需要存储在永久存储体中的信息,例如,在线教育平台系统可以提取出学员类和课程类,它们都属于实体类。实体类通常都是永久性的,它们所具有的属性和关系是长期需要的,有时甚至在系统的整个生存期都需要。

实体类是对用户来说最有意义的类,通常采用业务领域术语命名,一般来说是一个名词,在用例模型向领域模型的转化中,一个参与者一般对应于实体类。通常可以从SRS中的那些与数据库表(需要持久存储)对应的名词着手来找寻实体类。通常情况下,实体类一定有属性,但不一定有操作。

(2)控制类

控制类是用于控制用例工作的类,一般是由动宾结构的短语(“动词+名词”或“名词+动词”)转化来的名词,例如,用例“身份验证”可以对应于一个控制类“身份验证器”,它提供了与身份验证相关的所有操作。控制类用于对一个或几个用例所特有的控制行为进行建模,控制对象(控制类的实例)通常控制其他对象,因此,它们的行为具有协调性。

控制类将用例的特有行为进行封装,控制对象的行为与特定用例的实现密切相关,当系统执行用例的时候,就产生了一个控制对象,控制对象经常在其对应的用例执行完毕后消亡。通常情况下,控制类没有属性,但一定有方法。

(3)边界类

边界类用于封装在用例内、外流动的信息或数据流。边界类位于系统与外界的交接处,包括所有窗体、报表、打印机和扫描仪等硬件的接口,以及与其他系统的接口。要寻找和定义边界类,可以检查用例模型,每个参与者和用例交互至少要有一个边界类,边界类使参与者能与系统交互。边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。常见的边界类有窗口、通信协议、打印机接口、传感器和终端等。实际上,在系统设计时,产生的报表都可以作为边界类来处理。

信息基本属性

真伪性:真实是信息的中心价值,不真实的信息价值可能为负。

层次性:信息一般和管理层一样,可以为战略层、策略层和执行层3个层次。

不完全性:客观事实的全部信息是不可能得到的。我们需要正确滤去不重要的信息、失真的信息,抽象出有用的信息。

滞后性:信息是数据加工的结果,因此信息必然落后于数据,加工需要时间。

扩压性:信息和实物不同,它可以扩散也可以压缩。

分享性:信息可以分享,这和物质不同,并且信息分享具有非零和性。

SEI 的 5 级管理能力模式

(1)临时凑合阶段

工作无正式计划,作业进度经常被更改,任务计划、预算、功能、质量都不可预测, 开发机构的整体组织非常混乱。系统的性能、水平依个人能力而定。

(2)简单模仿阶段

开发方开始采用基本的项目管理方法与原理;项目从规划到运行都有明确的计划; 这些计划是通过模仿以前成功的项目开发的例子制定的,有可能通过模仿在本次开发中成功。

 3)完成定义阶段

与项目有关的整体机构的作业进度规格化、标准化,由此达到持续稳定的技术水平 与管理能力。这种工程进度管理能力要求把与开发项目有关的活动、作用和责任充分告知所有的开发者, 并使之充分理解。

(4)管理阶段

这是理想的项目管理阶段。表现在开发者的工程管理能力不断强化,通过可靠的组织与 计划保障,能及早发现可能影响系统功能与性能的缺陷,使系统的性能与可靠性不断改进与提高。

(5)佳化阶段

这一阶段是理想的项目管理阶段。其特点表现在开发者的工程管理能力不断强化,通 过可靠的组织与计划保障,能及早发现项目中可能影响系统功能与性能的缺陷,系统的关键指标在工程的 实施过程中得到全面保证与提高。

数据库层级

数据库层级结构

面向对象类和类之间的三种关系

is-a、has-a和use-a关系

  1. is-a关系也叫继承或泛化,⽐如学⽣和⼈的关系、⼿机和电⼦产品的关系都属于继承关系。
  2. has-a关系通常称之为关联,⽐如部门和员⼯的关系,汽车和引擎的关系都属于关联关系;关联关系如果是整体和部分的关联,那么我
    们称之为聚合关系;如果整体进⼀步负责了部分的⽣命周期(整体和部分是不可分割的,同时同在也同时消亡),那么这种就是最强

的关联关系,我们称之为合成关系。

  1. use-a关系通常称之为依赖,⽐如司机有⼀个驾驶的⾏为(⽅法),其中(的参数)使⽤到了汽车,那么司机和汽车的关系就是依赖关系。
  2. IS-PART-OF 是一种整体与部分的关系。

设计模式

设计模式

CRC编码计算方法

例题说明

循环冗余校验码(Cyc1ic Redundancy Check ,CRC)是数据通信领域中最常用的一种差错校验码,该校验方法中,使用多项式除法(模2 除法)运算后的余数为校验字段。若数据信息为 n 位,则将其左移k 位后,被长度为 k+1 位的生成多项式相除,所得的 k 位余数即构成 k 个校验位,构成 n+k 位编码。若数据信息为 1100,生成多项式为 X3+X+l ,则 CRC 编码是1100010

​ 解: 根据多项式可以知道X3+X+1→1011 又因为幂的最高位是3

∴在原始数据后面加上3个0,此时数据信息为1100 000

再根据多项式除法(模2除法)运算

计算过程

IDEF建模

IDEF是一系列建模、分析和仿真方法的统称,从IDEF0到IDEF14(包括IDEF1X在内)共有16套方法,每套方法都是通过建模程序来获取某个特定类型的信息。它们分别是IDEF0(功能建模)、IDEF1(信息建模)、IDEF1X(数据建模)、IDEF2(仿真建模设计)、IDEF3(过程描述获取)、IDEF4(面向对象设计)、IDEF5(本体论描述获取)、IDEF6(设计原理获取)、IDEF7(信息系统审计)、IDEF8(用户界面建模)、IDEF9(场景驱动信息系统设计)、IDEF10(实施架构建模)、IDEF11(信息制品建模)、IDEF12(组织建模)、IDEF13(三模式映射设计)和IDEF14(网络规划)。

IDEF0的建模特点使它可以用来描述企业的业务流程,它的阶梯层次可用来描述业务流程的阶梯结构特性。从高层次看,IDEF0的功能活动与业务流程相对应;而从低层次看,功能活动与流程的业务活动相对应。利用IEDF0的活动描述方式及活动之间的联系方式,可以很好地描述业务流程的架构。IDEF0模型形象、直观、易于理解和分析,但是,这种图形化的模型没有深刻揭示业务流程的内部结构特征和规律,而且当业务流程很复杂时,所对应的有向图就成为一个相互交叉、混乱的网络,不利于分析流程的特征。

人机交互“黄金三原则”

置于用户控制之下、减少用户的记忆负担、保持界面的一致性。

工作流参考模型

工作流参考模型(Workflow Reference Model,WRM)包含六个基本模块,分别是工作流执行服务、工作流引擎、流程定义工具、客户端应用、调用应用和管理监控工具。这六个模块被认为是WFMS最基本的组成部分,WRM同时也包括了这些模块之间的接口标准,包括接口一、接口二、接口三、接口四和接口五,如图1-1所示。

工作流参考模型

(1)工作流执行服务。工作流执行服务是WFMS的核心模块,它的功能包括创建和管理流程定义,创建、管理和执行流程实例。在执行上述功能的同时,应用程序可能会通过编程接口与工作流执行服务交互,一个工作流执行服务可能包含有多个分布式工作的工作流引擎。该模块还为每个用户维护一个活动列表,告诉用户当前必须处理的任务,可以通过电子邮件或者短消息的形式提醒用户任务的到达,例如,在开通课程流程中,当新的课程申请的到来时,可以提示上级主管。

(2)工作流引擎。工作流引擎是为流程实例提供运行环境,并解释执行流程实例的软件模块,即负责流程处理的软件模块。

(3)流程定义工具。流程定义工具是管理流程定义的工具,它可以通过图形方式把复杂的流程定义显示出来并加以操作,流程定义工具与工作流执行服务交互,一般该模块为设计人员提供图形化的用户界面。通过流程定义工具,设计人员可以创建新的流程或者改变现有流程,在流程定义时,可以指定各项活动的参与者的类型、活动之间的相互关系和传递规则等。

(4)客户端应用。客户端应用是通过请求的方式与工作流执行服务交互的应用,也就是说,是客户端应用调用工作流执行服务。客户端应用与工作流执行服务交互,它是面向最终用户的界面,可以将客户端应用设计为B/S架构或C/S架构。

(5)调用应用。调用应用是被工作流执行服务调用的应用,调用应用与工作流执行服务交互。为了协作完成一个流程实例的执行,不同的工作流执行服务之间进行交互,它通常是工作流所携带数据的处理程序,常用的是电子文档的处理程序,它们在工作流执行过程中被调用,并向最终用户展示数据,这些应用程序的信息包括名称、调用方式和参数等。例如,在OA系统中,可以调用相关的程序来直接查看Word文档或者Excel表格数据等。

(6)管理监控工具。管理监控工具主要指组织机构和参与者等数据的维护管理和流程执行情况的监控,管理监控工具与工作流执行服务交互。WFMS通过管理监控工具提供对流程实例的状态查询、挂起、恢复和销毁等操作,同时提供系统参数和系统运行情况统计等数据。用户可以通过图形或者图表的方式对系统数据进行汇总与统计,并可随时撤销一些不合理的流程实例。

决策支持系统

决策支持系统(Decision Support System,DSS)是辅助决策者通过数据、模型和知识,以人机交互方式进行半结构化或非结构化决策的计算机应用系统。它是MIS向更高一级发展而产生的先进信息系统。它为决策者提供分析问题、建立模型、模拟决策过程和方案的环境,调用各种信息资源和分析工具,帮助决策者提高决策水平和质量。但是,DSS不可以代替决策者。

DSS基本结构主要由四个部分组成,分别是数据库子系统、模型库子系统、推理部分和用户接口子系统,如图2所示。

决策支持系统

数据库概念结构设计

数据库概念结构设计阶段的工作步骤依次为抽象数据→设计局部视图→合并取消冲突→修改重构消除冗余

关系模式例题

给定关系模式 R < U ,F >, U= {A,B,C,D ,E} , F = {B→A ,D→A ,A→E ,AC→B },则 R 的候选关键字为(42),分解ρ= {Rl(ABCE),R2(CD)} ( 43)。

(42)A. CD B. ABD C. ACD D.ADE

(43)A. 具有无损连接性,且保持函数依赖

B. 不具有无损连接性,但保持函数依赖

C. 具有无损连接性,但不保持函数依赖

D. 不具有无损连接性,也不保持函数依赖

【答案】A D

【解析】

​ 根据题意可绘制出函数依赖图:

略

图可以看出,入度为0的结点只有C与D,而两者的结合能遍历全图,所以CD为候选键。

用公式法判断是否为无损分解,由于R1∩R2=C,而原关系中没有C->*的函数依赖,所以可以断定,分解为有损分解。

判断是否保持函数依赖,由于函数依赖D->A未被保存下来,所以此分解不是保持函数依赖的分解。

线性规划问题

​ 线性规划问题的求解结果可能出现以下几种情况:得到的最优解是唯一的,无穷多最优解(多重解),无界解(无最优解),无可行解。当求解结果出现后两种情况时,一般说明线性规划问题的数学模型有错误。无界解源于缺乏必要的约束条件,无可行解源于矛盾的约束条件。当线性规划问题的可行域非空时,它是有界或无界凸多边形。若线性规划问题存在最优解,它一定在可行域的某个顶点得到;若在两个顶点同时得到最优解,则它们连线上的任意一点都是最优解,即有无穷多最优解。

RIP协议

​ RIP协议存在的一个问题就是当网络出现故障的时候,要经过比较长的时间才能把信息传送到所有的路由器。在这个中间过程中,实际就是路由环路问题:当发生路由环路的时候,路由表会频繁的进行变化,从而导致路由表中的一条或者几条,都无法收敛,结果会使得网络处于瘫痪或半瘫痪状态。

水平分隔:从一个方向学来的路由信息,不能再放入发回那个方向的路由更新包,并又发回那个方向。

浮点数

如果浮点数的阶码(包括1位阶符)用R位的移码表示,尾数(包括1位数符)用M位的补码表示,则这种浮点数所能表示的数值范围如下:

最大的正数: ,最小的负数:

CPU替换算法

(1)随机算法。这是最简单的替换算法。随机法完全不管cache块过去、现在及将来的使用情况,简单地根据一个随机数,选择一块替换掉。

(2)先进先出(First In and First Out,FIFO)算法。按调入cache的先后决定淘汰的顺序,即在需要更新时,将最先进入cache的块作为被替换的块。这种方法要求为每块做一记录,记下它们进入cache的先后次序。这种方法容易实现,而且系统开销小。其缺点是可能会把一些需要经常使用的程序块(如循环程序)替换掉。

(3)近期最少使用(Least Recently Used,LRU)算法。LRU算法是把CPU近期最少使用的块作为被替换的块。这种替换方法需要随时记录cache中各块的使用情况,以便确定哪个块是近期最少使用的块。LRU算法相对合理,但实现起来比较复杂,系统开销较大。通常需要对每一块设置一个称为“年龄计数器”的硬件或软件计数器,用以记录其被使用的情况。

(4)最不经常使用页置换(Least Frequently Used (LFU))算法,要求在页置换时置换引用计数最小的页,因为经常使用的页应该有一个较大的引用次数。但是有些页在开始时使用次数很多,但以后就不再使用,这类页将会长时间留在内存中,因此可以将引用计数寄存器定时右移一位,形成指数衰减的平均使用次数。

I/O系统工作方式

在计算机中,I/O系统可以有5种不同的工作方式,分别是程序控制方式、程序中断方式、DMA工作方式、通道方式、I/O处理机。从程序控制方式到I/O处理机,CPU的介入程度,消耗CPU资源数呈递减的趋势。

遗产系统

遗产系统(Legacy System)的演化策略分为淘汰策略、继承策略、改造策略和集成策略

如上图,把对遗留系统的评价结果分列在坐标的四个象限内。对处在不同象限的遗留系统采取不同的演化策略。

image-20220520163518923

1、淘汰策略

第三象限为低水平、低价值区,即遗留系统的技术含量较低,且具有较低的业务价值。对这种遗留系统的演化策略为淘汰,即全面重新开发新的系统以代替遗留系统。完全淘汰是一种极端性策略,一般是企业的业务产生了根本变化,遗留系统已经基本上不再适应企业运作的需要;或者是遗留系统的维护人员、维护文档资料都丢失了。经过评价,发现将遗留系统完全淘汰,开发全新的系统比改造旧系统从成本上更合算。

对遗留系统的完全淘汰是企业资源的根本浪费,系统分析师应该通过对遗留系统功能的理解和借鉴,可以帮助新系统的设计,降低新系统开发的风险。

2、继承策略

第二象限为低水平、高价值区,即遗留系统的技术含量较低,已经满足企业运作的功能或性能要求,但具有较高的商业价值,目前企业的业务尚紧密依赖该系统。对这种遗留系统的演化策略为继承。在开发新系统时,需要完全兼容遗留系统的功能模型和数据模型。为了保证业务的连续性,新老系统必须并行运行一段时间,再逐渐切换到新系统上运行。

3、改造策略

第一象限为高水平、高价值区,即遗留系统的技术含量较高,本身还有极大的生命力。系统具有较高的业务价值,基本上能够满足企业业务运作和决策支持的需要。这种系统可能建成的时间还很短,对这种遗留系统的演化策略为改造。改造包括系统功能的增强和数据模型的改造两个方面。系统功能的增强是指在原有系统的基础上增加新的应用要求,对遗留系统本身不做改变;数据模型的改造是指将遗留系统的旧的数据模型向新的数据模型的转化。

4、集成策略

第四象限为高水平、低价值区,即遗留系统的技术含量较高,但其业务价值较低,可能只完成某个部门(或子公司)的业务管理。这种系统在各自的局部领域里工作良好,但对于整个企业来说,存在多个这样的系统,不同的系统基于不同的平台、不同的数据模型,形成了一个个信息孤岛,对这种遗留系统的演化策略为集成。

最后修改:2022 年 07 月 25 日 11 : 24 AM