//Description: 记录系统分析中的一些概念和方法,备考软考系统分析师。主要参考书籍《系统分析师》(2010),辅助参考书籍《网络规划设计师》,其中后者用于补充前者所没有的知识点,如软件著作权、新技术等。部分内容大学课程中学过,如《计算机体系结构》、《数据库》、《操作系统》等。整个笔记共分两部分:第一部分为知识点总结,第二部分为笔记及经验。
[toc]
系统分析师真题
综合知识
第1章 信息论
信息是系统有序程度的度量,表现为负熵。
信息的特征:
(1)客观性。信息是客观事物在人脑中的反映,而反映的对象则有主观和客观的区别,因此,信息可分为主观信息(例如,决策、指令和计划等)和客观信息(例如,国际形势、经济发展和一年四季等)。主观信息必然要转化成客观信息,例如,决策和计划等主观信息要转化成实际行动。因此,信息具有客观性。
(2)普遍性。物质决定精神,物质的普遍性决定了信息的普遍存在。
(3)无限性。客观世界是无限的,反映客观世界的信息自然也是无限的。无限性可分为两个层次,一是无限的事物产生无限的信息,即信息的总量是无限的:二是每个具体事物或有限个事物的集合所能产生的信息也可以是无限的。
(4)动态性。信息是随着时间的变化而变化的。
(5)相对性。不同的认识主体从同一事物中获取的信息及信息量可能是不同的。
(6)依附性。信息的依附性可以从两个方面来理解,一方面,信息是客观世界的反映,任何信息必然由客观事物所产生,不存在无源的信息:另一方面,任何信息都要依附于一定的载体而存在,需要有物质的承担者,信息不能完全脱离物质而独立存在。
(7)变换性。信息通过处理可以实现变换或转换,使其形式和内容发生变化,以适应特定的需要。
(8)传递性。信息在时间上的传递就是存储,在空间上的传递就是转移或扩散。
(9)层次性。客观世界是分层次的,反映它的信息也是分层次的。
(10)系统性。信息可以表示为一种集合,不同类别的信息可以形成不同的整体。
因此,可以形成与现实世界相对应的信息系统。
(11)转化性。信息的产生不能没有物质,信息的传递不能没有能量,但有效地使用信息,可以将信息转化为物质或能量。
信息系统的生命周期:系统规划、系统分析、系统设计、系统实现、系统运行与评价。
信息系统建设原则:
- 高层管理人员介入原则
- 用户参与开发原则
- 自顶向下规划原则
- 工程化原则
第2章 经济管理与应用数学
查找算法
- 顺序查找 O(n)
- 折半查找 O($log_2 n$)
- 分块查找
- 哈希查找 O(1)
排序算法
- 插入排序 $O(n^2)$
- 简单选择排序 $O(n^2)$
- 冒泡排序 $O(n^2)$
- 快速排序 $O(nlog_2 n)$
- 希尔排序
- 堆排序 $O(nlog_2 n)$
- 归并排序 $O(nlog_2 n)$
- 外排序
PERT图(Program Evaluation and Review Technique)
- 关键路径 (Critical Path)
完成工程的最少时间是从开始顶点到结束顶点的最长路径长度,为关键路径,关键路径上的活动为关键活动
- 任务依赖关系
- 松弛时间
三点估算法:
\(t_i = (a_i + 4 m_i + b_i) / 6\)
其中$a_i$表示乐观时间,$b_i$表示悲观时间,$m_i$表示最可能时间。
\(\sigma^2 = (b_i - a_i)^2 / 36\)
Gantt图(甘特图)
第3章 操作系统
3.1 操作系统的类型
-
分布式系统
是由多台计算机组成的系统,系统中若干台计算机可以相互合作,共同完成同一个任务。在分布式系统中,任意两台计算机之间都可以利用通信来交换信息, 系统中的资源为所有用户共享。分布式系统的优点是各节点的自治性好、资源共享的透明性强、各节点具有协同性,其主要缺点是系统状态不精确、控制机构复杂、通信开销会引起性能的下降。
-
客户/服务器结构
。现代操作系统大多拥有两种工作状态,分别是核心态和用户态。一般应用程序工作在用户态,而内核模块和最基本的操作系统核心工作在核心态。
客户/服务器结构也称为微内核结构。操作系统的一个发展趋势是将传统的操作系统代码放置到更高层,从操作系统中去掉尽可能多的东西,而只留下一个最小的核心,称之为微内核。通常的方法是将大多数操作系统功能由在用户态运行的服务器进程来实现。
为了获取某项服务,用户进程(客户进程)将请求发送给一个服务器进程,服务器进程完成此操作后,把结果返回给用户进程。这样,服务器以用户进程的形式运行,而不是运行在核心态。因此,它们不能直接访问硬件,某个服务器的崩溃不会导致整个系统的崩溃。客户/服务器结构的另一个优点是它更适用于分布式系统。
微内核技术
的主要优点如下:
1. 统一的接口,在用户态和核心态之间无需进程识别。
1. 可伸缩性好,能适应硬件更新和应用变化。
1. 可移植性好,所有与具体机器特征相关的代码,全部隔离在微内核中,如果操作系统要移植到不同的硬件平台上,只需修改微内核中极少代码即可。
1. 实时性好,微内核可以方便地支持实时处理。
1. 安全可靠性高,微内核将安全性作为系统内部特性来进行设计,对外仅使用少量应用编程接口。
1. 支持分布式系统,支持多处理器的体系结构和高度并行的应用程序。
- 面向对象的操作系统中的对象是操作系统管理的信息和资源的抽象,可以被视为受保护的信息或资源的总称。它拥有自己的状态和存储空间,而且其状态(也就是存储内容)只能由事先定义好的操作来改变,而改变这些对象状态的操作又需要其他对象发送相应的消息后才能被启动,因此,容易采取某种手段对其对象实施保护。
3.2 进程管理
进程
是一个具有独立功能的程序关于数据集合的一次可以并发执行的运行活动,是系统进行资源分配和调度的基本单位。相对于程序,进程是动态的概念,而程序是静态的概念,是指令的集合。进程具有动态性和并发性,需要一定的资源(例如,CPU时间、内存、文件和1/0设备等)来完成其任务,这些资源在创建进程或执行时被分配。在大多数操作系统中,进程是进行资源分配和调度的基本单位。
一个进程是通过其物理实体被感知的,进程的物理实体又称为进程的静态描述,通常由三部分组成,分别是程序、数据集合和进程控制块(Process Control Block,PCB)。
程序描述了进程所要完成的功能,数据集合描述了程序运行所需要的数据部分和工作区, PCB包括进程的描述信息、控制信息和资源信息,是进程动态特性的集中反映。程序和数据集合是进程存在的物质基础,是进程的实体;PCB是进程存在的标志,进程与PCB 是一对一的关系,操作系统利用PCB对并发执行的进程进行控制和管理。
- 三态模型。进程具有三种最基本的状态,分别是运行、就绪和阻塞。
3.2.2 信号量与PV操作
m个进程n个资源,则 $$ PV \in [-m + n, n] $$
3.2.3 死锁问题
产生死锁的4个必要条件:
- 互斥
- 不剥夺
- 请求与保持
- 环路
对死锁的处理,常用的方法有 死锁的预防、避免和检测与解除等方法。
3.2.4 线程管理
线程
是进程的活动成分,是处理器分配资源的最小单位,它可以共享进程的资源与地址空间,通过线程的活动,进程可以提供多种服务(对系统进程而言)或实行子任务并行(对用户进程而言)。每个进程创建时只有一个线程,根据需要在运行过程中创建更多的线程(前者也可称“主线程”)。显然,只有主线程的进程才是传统意义下的进程。
- 线程的实现方式
- 内核线程
- 用户线程
- 轻权进程:内核支持的用户线程,每个轻权进程由一个单独的内核线程来支持
- 与进程的比较
在引入线程的操作系统中,通常一个进程有若干个线程,至少也需要有一个线程。
进程和线程的区训主要体现在以下5个方面:
- 调度。在传统的操作系统中,拥有资源的基本单位和独立调度、分配的基本单位都是进程。而在引入线程的操作系统中,则将线程作为调度和分配的基本单位,将进程作为资源拥有的基本单位。
- 并发性。在引入线程的操作系统中,不仅进程之间可以并发执行,而且同一个进程的多个线程之间也可并发执行,从而使操作系统具有更好的并发性,能够有效地使用多个资源和提高系统吞吐量。
- 拥有资源。一般来说,线程除了拥有一点必不可少的资源外,它自己不拥有系统资源,但它可以访问其隶属进程的资源。也就是说,一个进程所拥有的资源可供它的所有线程共享。
- 系统开销。在进程切换时,涉及整个当前进程CU环境的保存和新被调度运行进程的CPU环境的设置、裸机地址空间的切换:而线程切换只需保存和设置少量寄存器的内容,并不涉及存储器管理方面的操作。由此可见,进程切换的开销远大于线程切换的开销。此外,由于同一进程中的多个线程具有相同的地址空间,这使它们之间的同步和通信变得比较容易。在有的系统中,线程的切换、同步和通信都无需操作系统内核的干预。
- 通信方面。进程间通信需要进程同步和互斥手段的辅助,以保证数据一致性, 而线程间可以直接读写进程数据段(例如,全局变量等)来进行通信。
3.3 内存管理
- 逻辑地址(相对地址、虚拟地址)
- 物理地址(绝对地址、实际地址)
3.4 文件系统
- 索引结构(随机结构)。
为每个文件建立一个索引表,其中每个表项指出信息所在的物理块号,表目按逻辑记录编写顺序或按记录内某一关键字顺序排列。对于大文件,为检索方便,可以建立多级索引,还可以将文件索引表也作为一个文件(称为索引表文件)。该方式可以满足文件动态增长的要求且存取方便,但建立索引表增加了存储空间的开销,对于多级索引,访问时间开销较大。
例如,在UNIX系统中,文件的物理结构采用直接、一级、二级和三级间接索引技术,假如索引节点有13个地址项,并且规定地址项0~9采用直接寻址方法,地址项10 采用一级间接寻址,地址项11采用二级间接寻址,地址项12采用三级间接寻址。每个盘块的大小为1KB,每个盘块号占4B,那么,对于访问文件的第356168B处的数据来说;先进行简单换算356168/1024≈348KB,由于地址项0~9可直接寻址10个物理盘块,每个物理块大小为1KB,所以访问文件的前1OKB范围的数据时是直接寻址。地址项10采用一次间接寻址,即地址项10里存放的是一级索引表的地址,因为每个盘块号占4B,该索引表可存放1024/4-256个物理块的地址,所以当访问文件为10~266KB之间的数据时是一次间接寻址。由于要访问的数据是348KB,所以还有348-266-82KB。
显然地址项11足够存取这些数据,因此,最多就在地址项11而无须存取地址项12,即只需要二级间接寻址。
- 位示图
位示图是利用二进制的1位来表示文件存储空间中的1个块的使用情况。一个m行、n列的位示图,可用来描述mXn块的文件存储空间,当行号、列号和块号都是从0开始编号时,第i行、第j列的二进制位对应的物理块号为i * n + j。如果“0”表示对应块空闲,“1”表示对应块已分配,则在进行存储空间的分配时,可顺序扫描位示图。
第4章 数据通信与计算机网络
4.1 数据通信基础知识
香农公式:
\(C = W log_2(1 + \frac{S}{N} )\)
其中速率$C$,带宽$W$ Hz,信噪比 $dB = 10 * log_{10}{\frac{S}{N}}$
4.2 网络体系结构与协议
- 应用层协议:FTP、TFTP、HTTP、SMTP、DHCP、Telnet、DNS、简单网络管理协议(Simple Network Management Protocol,SNMP)等
- 传输层协议:TCP、UDP
负责提供流量控制、错误校验和排序服务。
- 网络层协议:IP、ICMP、IGMP、ARP、RARP等。
端口
| 服务 | 端口号 | 功能说明 |
| :——– | — | :——– |
| FTP | 21 | 文件传输协议 |
| Telnet | 23 | 远程登录协议 |
| SMTP | 25 | 简单邮件传输协议 |
| DNS | 53 | 域名系统 |
| HTTP | 80 | 超文本传输协议 |
| SNMP | 161 | 简单网络管理协议 |
| HTTPS | 443 | 超文本传输协议 |
4.2.3 网络地址与分配
- 子网掩码
- IPv6中IP地址的长度为128位。(8组每组16位)
- 不分大小写
- 不写前导0
- 相邻0缩写::,只出现一次,为最长相邻0串,长度相同时取最前
4.3 局域网和广域网
- 无线局域网 IEEE 802.11标准
局域网的网络拓扑结构:星型、总线、环型、网状
4.4 网络互连与常用设备
路由选择协议:
内部网关协议(IGP)、外部网关协议(EGP)、核心网关协议(GGP)三大类。
补充点
- IPsec认证头(AH)不提供数据加密服务。
第5章 数据库系统
5.1 数据库模式
数据库系统由外模式、概念模式和内模式三级构成。
![数据库系统结构层次图](./images/SAr_DB.png)
5.2 数据模型
数据模型一般有两大类:概念数据模型(实体联系模型,E-R模型)和基本数据模型(结构数据模型)。E-R模型有层次模型、网状模型、关系模型和面向对象模型等。基本数据模型由数据结构、数据操作、完整性约束三部分组成。
5.2.2 关系模型
关系代数的基本运算主要有并、交、差、笛卡尔积、选择、投影、连接和除法运算。
数据库的并发操作会带来一些数据不一致问题,如丢失修改、读脏数据、不可重复读,(写写、写读、读写)
5.4.2 数据库性能优化
在数据库的概念设计过程中,先设计各子系统的局部E-R图
,其设计过程是,首先, 确定局部视图的范围;然后,识别实体及其标识,确定实体之间的联系;最后,分配实体及联系的属性。各子系统的局部E-R图设计好后,下一步就是要将所有的分ER图综合成一个系统的总体E-R图,一般称为视图的集成。
- 各局部E-R图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。
在初步的ER图中,可能存在一些冗余的数据和实体间冗余的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,应当予以消除。消除冗余的主要方法为分析方法,即以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。
数据一致性实现方式:
- 应用程序实现:在进行添加、修改、删除操作时,从应用程序中,控制对两个数据表都进行相关操作,以保障数据的一致性。
- 触发器实现:在应用程序中,只对单个表进行操作。但写触发器,当单个表发生变化时同步更新到另一个表中。
- 物化视图实现:建立物化视图,物化视图会把相应的数据物理存储起来,而且在单个表发生变化时,会自动更新。
- 逻辑设计
也称为逻辑结构设计,其任务是将概念模型转化为某个特定的DBMS上的逻辑模型
。设计逻辑结构时,首先为概念模型选定一个合适的逻辑模型(例如,关系模型、网状模型或层次模型),然后将其转化为由特定DBMS支持的逻辑模型,最后对逻辑模型进行优化。
- 物理设计
物理设计也称为物理结构设计,其任务是对给定的逻辑模型选取一个最适合应用环境的物理结构,所谓数据库的物理结构,主要是指数据库在物理设备上的存储结构和存取方法。
5.5.2 实体联系模型(E-R模型)
E-R模型也称为E-R图。包括:实体、属性、实体之间的联系
5.6 分布式数据库系统
分布式数据库是由一组数据组成的,这组数据分布在计算机网终的不同计算机上, 网络中的每个节点具有独立处理的能力(称为场地自治),它可以执行局部应用,同时, 每个节点也能通过网络通信子系统执行全局应用。
查询处理和优化技术要复杂得多。具体方法有全局查询树的变换、副本的选择与多副本的更新策略、查询树的分解、半连接与直接连接等。
5.6.2 数据分片
- 水平分片
- 垂直分片
- 导出分片
- 混合分片
5.7 数据仓库技术
数据处理大致可以分为两大类:
- 联机事务处理(On-Line Transaction Processing, OLTP)
传统数据库的主要应用,支持基本的、日常的事务处理;
- 联机分析处理(On-Line Analytical Processing, OLAP)
数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的结果。
基本多维分析操作有钻取、切片和切块、旋转等。
5.7.2 数据仓库概述
数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织,整个过程可以简称为抽取、转换和加载(Extraction-Transformation-Loading,ETL)过程。
5.8 数据挖掘技术(论,架构)
5.8.1 数据挖掘概述
- 数据挖掘体系:知识发现系统管理器、知识库、数据访问接口、数据选择、知识发现引擎、发现评价、发现描述
![DataMining](./images/SAr_DataMining.png)
第6章 系统配置与性能评价
6.1 计算机层次体系结构
计算机系统是一个硬件和软件的综合体,可以把它看作是按功能划分的多级层次结构。这种结构的划分,有利于正确理解计算机系统的工作过程,明确软件、硬件在系统中的地位和作用。
当流水线中各个流水段的执行时间不完全相等时,吞吐率由执行时间最长的流水段决定。
- 加速比(Speedup Ratio) – 完成同一批任务,不使用流水线所用的时间和使用流水线所用的时间之比。
6.6 多处理机系统
主要目的是实现作业级和任务级代码的并行性。
- Flynn分类:单指令流单数据流(SISD)、单指令流多数据流(SIMD)、多指令流单数据流(MDISD)、多指令流多数据流(MIMD)。
6.7 系统性能设计
计算机系统的性能一般包括两个大的方面。一个方面是它的可靠性或可用性,也就是计算机系统能正常工作的时间,其指标可以是能够持续工作的时间长度(例如,平均无故障时间),也可以是在一段时间内,能正常工作的时间所占的百分比:另一个方面是它的处理能力或效率,这又可分为三类指标,第一类指标是吞吐率(例如,系统在单位时间内能处理正常作业的个数),第二类指标是响应时间(从系统得到输入到给出输出之间的时间),第三类指标是资源利用率,即在给定的时间区间中,各种部件(包括硬设备和软件系统)被使用的时间与整个时间之比。
6.8 系统性能评估
可以分为两大类:测量方法和模型方法。
性能评估的常用方法有时钟频率法、指令执行速度法、等效指令速度法、数据处理速率法、综合理论性能法和基准程序法等。
6.8.3 基准程序法
上述性能评估方法主要是针对CPU(有时包括主存)的性能,但没有考虑诸如I/O结构、操作系统、编译程序的效率等对系统性能的影响,因此,难以准确评估计算机系统的实际性能。
第7章 企业信息化战略与实施
7.1 企业信息化概述
企业信息化方法:
- 业务流程重组方法(BPR)。
在信息技术迅猛发展的时代,企业必须重新审视生产经营过程,利用信息技术,对企业的组织结构和工作方法进行“彻底的、根本性的”重新设计,以适应当今市场发展和信息社会的需求。现在,业务流程重组已经成为企业信息化的重要方法。
- 根本性、彻底性、显著性和流程是BPR强调的4个核心内容。
- 核心业务应用方法。
任何一个企业,要想在市场竞争的环境中生存并发展,都必须有自己的核心业务,否则,必然会被市场所淘汰。围绕核心业务应用信息技术是很多企业信息化成功的秘诀。
- 信息系统建设方法。
对大多数企业来说,企业信息化的重点和关键是建设好信息系统。因此,信息系统建设成了最具普遍意义的企业信息化方法。
- 主题数据库方法。
主题数据库就是面向企业业务主题的数据库,也就是面向企业的核心业务的数据库。
- 资源管理方法。
管理好企业的资源是企业管理的永恒主题。信息技术的应用为企业资源管理提供了强大的支持。
7.2 企业信息化规划 (论)
- 企业战略规划是用机会和威胁评价现在和未来的环境,用优势和劣势评价企业现状,进而选择和确定企业的总体和长远目标,制定和抉择实现目标的行动方案。
- 信息系统战略规划关注的是如何通过信息系统来支撑业务流程的运作,进而实现企业的关键业务目标,其重点在于对信息系统远景、组成架构、各部分逻辑关系进行规划。
- 信息技术战略规划通常简称为T战略规划,是在信息系统规划的基础上,对支撑信息系统运行的硬件、软件、支撑环境等进行具体的规划,它更关心技术层面的问题。
IT战略规划主要包括以下步骤:
- 业务分析,主要是理解业务部门的现在与未来;
- 检查当前的IT架构和信息系统,重点是评估其支持业务部门的程度;
- 识别机会,重点是定义通过信息系统改进业务的机会;
- 选择方案,主要是寻找和确定一致的机会和方案。
这些步骤作为一个连续统一体,实际上就是IT战略规划的过程。
- 信息资源规划是在以上规划的基础上,为开展具体的信息化建设项目而进行的数据需求分析、信息资源标准建立、信息资源整合工作。
- 企业战略和信息化战略集成方法
业务与IT整合(BITA)、企业IT架构(EITA)
7.3 信息系统开发方法 (论)
确定系统边界->
7.3.1 结构化方法/生命周期法: 系统模块化
- 结构化分析(SA):数据流程图(DFD)、数据字典(DD)
- 结构化设计(SD):概要设计和详细设计,系统结构图
- 结构化程序设计(SP)
7.3.2 面向对象方法(OO): 封装继承多态
面向对象(Obiect-Oriented,OO)方法是当前的主流开发方法,拥有很多不同的分支体系,主要包括OMT(Object Model Technology,对象建模技术)方法、CoadYourdon方法、OOSE (Object-Oriented Software Engineering,面向对象的软件工程)方法和Booch方法等,而OMT、OOSE和Booch已经统一成为统一建模语言(United Model Language,UML)。
- 面向对象的分析(Object-Oriented Analysis, OOA)
- 面向对象的设计(Object-Oriented Design, OOD)
- 面向对象的程序设计(Object-Oriented Programming, OOP)
对象、类、继承、封装、多态、消息
7.3.3 面向服务方法(SO): 操作、服务、业务流程
- 操作:位于最低层的操作代表单个逻辑单元的事物,执行操作通常会导致读、写或修改一个或多个持久性数据。
- 服务:位于第二层的服务代表操作的逻辑分组
- 业务流程:最高层的业务流程则是为了实现特定业务目标而执行的一组长期运行的动作或活动,包括依据一组业务规则按照有序序列执行的一系列操作。其中操作的排序、选择和执行成为服务或流程的编排,典型的情况是调用已编排的服务来响应业务事件。
OO的应用构建在类和对象之上,随后发展起来的建模技术将相关对象按照业务功能进行分组,就形成了构件(component)的概念。对于跨构件的功能调用,则采用接口的形式暴露出来。进一步将接口的定义与实现进行解耦,则催生了服务和面向服务(Service-Oriented,SO)的开发方法。由此可见,面向对象、基于构件、面向服务是三个递进的抽象层次。
7.3.4 原型化方法/快速原型法/原型法: 迭代开发
结构化方法和面向对象方法有一个共同点,即在系统开发初期必须明确系统的功能要求,确定系统边界。
它是一种根据用户初步需求, 利用系统开发工具,快速地建立一个系统模型展示给用户,在此基础上与用户交流,最终实现用户需求的信息系统快速开发的方法。
原型法的开发过程: 确定用户基本需求 -> 设计系统初始原型 -> 试用和评价原型 -> 否是否满意 ? 是 -> 整理原型、提供 : 修改和完善原型
7.4.1 企业系统规划法 (Business System Planning, BSP)
- 关键成功因素法(CSF) – 找到影响系统成功的关键因素,进行分析以确定企业的信息需求。
- 战略集合转化法(SST) – 将企业战略看成是一个信息集合。
- 战略数据规划法(Stagegy Data Planing, SDP) – 数据处理。
信息、过程和技术构成了企业信息系统的三要素。
IE方法自上而下地把整个信息系统的开发过程分为4个实施阶段,分别是信息战略规划阶段、业务领域分析阶段、系统设计阶段和系统构建阶段。这4个阶段在具体的实施中,根据其任务和性质,一般可再划分为信息战略规划、业务领域分析、业务系统设计、技术系统设计、系统构建、系统转换和系统运行7个步骤。
7.4.6 战略栅格法 (Strategic grid, SG)
利用栅格表/矩阵依据现有信息系统和规划中的信息系统的战略影响,确定不同的信息系统战略规划条件。
7.4.7 价值链分析法(VCA)
视企业为一系列的输入、处理与输出的活动序列集合。
7.4.8 战略一致性模型(Strategy Alignment Model, SAM)
把企业战略的目标转化为信息系统战略的目标。
7.5 企业资源规划和实施
- 企业资源规划(Enterprise Resource Planning, ERP)
企业资源可以归纳为:物流、资金流、信息流。
IRM包括数据资源管理和信息处理管理。
对企业生产经营活动所需要的信息,对产生、获取、处理、存储、传输和利用等方面进行全面的规划。
7.7 企业信息系统
7.7.1 客户关系管理 (Customer Relationship Management, CRM)
CRM的核心是客户价值管理,它将客户价值分为既成价值、潜在价值和模型价值,通过“一对一”营销原则,满足不同价值客户的个性化需求,提高客户忠诚度和保有率,实现客户价值持续贡献,从而全面提升企业盈利能力。
7.7.2 供应链管理(SCM)
由供应商、制造商、仓库、配送中心和渠道商等构成的物流网络。
7.7.3 产品数据管理(Product Data Management, PDM)
管理所有与产品相关信息(包括零件信息、配置、文档、计算机辅助设计文件、结构、权限信息等)和所有与产品相关过程(包括过程定义和管理)的技术。
- 凡是能以文字与数字来表达,而且以资料、科学法则、特定规格及手册等形式展现者皆属显性知识。这种知识随时都可在个人之间相互传送;
- 隐性知识是相当个人化而富弹性的东西,因人而异,很难用公式或文字来加以说明,因而也就难以流传或与别人分享。
个人主观的洞察力、直觉与预感等皆属隐性知识。隐性知识深植于个人的行动与经验之中,同时也储藏在一个人所抱持的理想与价值或所珍惜的情怀之中。
- 知识管理工具
通常,可以把知识管理工具分为知识生成工具、知识编码工具和知识转移工具三大类。
- (1)知识生成工具。知识的生成包括产生新的想法、发现新的商业模式、发明新的生产流程,以及对原有知识的重新合成。不同方式的知识产生模式有不同的工具对其进行支持。知识生成工具包括知识获取、识合成和知识创新三大功能。目前,利用具有初步人工智能功能的搜索引擎和知识挖掘工具进行知识的自动获取,可以将相关的词句组合起来,帮助人们将分散的创新观点进行合成。但是,目前实现知识的创新还一分困难,只能利用一些工具实现辅助性的知识创新。
- (2)知识编码工具。知识编码是通过标准的形式表现知识,使知识能够方便地被共享和交流。知识编码工具的作用就在于将知识有效地存储并且以简明的方式呈现给使用者,使知识更容易被其他人使用。知识编码的困难在于,知识儿乎不能以离散的形式予以表现。知识不断地积累,不断地改变,以至于人们很难对其进行清晰的区分。因此, 对知识进行审核和分类是十分困难的。
- (3)知识转移工具。知识转移工具最终就是要使知识能在企业内传播和分享。知识的价值在于流动和使用。在知识流动的过程中存在许多障碍,使知识不能毫无阻力地任
7.7.6 商业智能(BI)
BI系统主要包括数据预处理、建立数据仓库、数据分析和数据展现4个主要阶段。
- 数据预处理是整合企业原始数据的第一步,它包括数据的抽取(extraction)、转换(transfomation)和加载(load)三个过程(ETL过程)。
- 建立数据仓库则是处理海量数据的基础;
- 数据分析是体现系统智能的关键,一般采用OLAP和数据挖掘两大技术。
一般认为,数据仓库、OLAP和数据挖掘技术是BI的三大组成部分
7.7.7 企业门户(Enterprise Protal, EP)
EP可以分为4类:
- 企业网站
注重信息的单向传送
- 企业信息门户(Enterprise Information Portal,EIP)
企业信息门户是指在Intemet 环境下,把各种应用系统、数据资源和互联网资源统一集成到EP之下,根据每个用户使用特点和角色的不同,形成个性化的应用界面,并通过对事件和消息的处理传输把用户有机地联系在一起。EIP不仅仅局限于建立一个企业网站,提供一些企业和产品/服务的信息,更重要的是要求企业能实现多业务系统的集成
- 企业知识门户(Enterprise Knowledge Portal,EKP)
企业知识门户是企业员工日常工作所涉及相关主题内容的“总店”。企业员工可以通过EKP方便地了解当天的最新消息、工作内容、完成这些工作所需的知识等。
- 企业应用门户(Enterprise Application Portal,EAP)
企业应用门户实际上是对企业业务流程的集成。它以业务流程和企业应用为核心,把业务流程中功能不同的应用模块通过门户技术集成在一起。从某种意义上说,可以把EAP看成是企业信息系统的
7.7.8 电子商务(Electronic Commerce, EC)
- 企业对消费者(B2C)
- 企业对企业(B2B)
- 消费者对消费者(C2C)
7.7.9 决策支持系统 (Decision Support System, DSS)
决策按其性质可分为结构化决策、非结构化决策和半结构化决策。结构化决策是指对某一决策过程的环境及规则,能用确定的模型或语言描述,以适当的算法产生决策方案,并能从多种方案中选择最优解:非结构化决策是指决策过程复杂,不可能用确定的模型和语言来描述其决策过程,更无所谓最优解:半结构化决策是指介于结构化决策和非结构化决策之间的决策,这类决策可以建立运当的算法产生决策方案,使决策方案中得到较优的解。
DSS基本结构主要由4个部分组成:数据库子系统、模型库子系统、推理部分和用户接口子系统。
![SAr_DSS基本结构.png](./images/SAr_DSS基本结构.png)
7.8 电子政务
政府对政府(G2G)、政府对企业(G2B)、政府对公众(G2C)、政府对公务员(G2E)。
7.9 业务流程重组(Business Process Reengineering,BPR)
BPR是对企业的业务流程(process)进行根本性(fiundamental)的再思考和彻底性(radical)的再设计,从而获得可以用诸如成本、质量、服务和速度等方面的业绩来衡量的显著性(dramatic)的成就。其“根本性”、“彻底性”、“显著性”和“流程”就是BPR强调的4个核心内容。
7.10 企业应用集成 (Enterprise Application Integration, EAI) (论)
将多个企业信息系统连接起来,实现无缝集成。可以包括表示集成/界面集成、数据集成、控制集成/API集成和业务流程集成等。
- 事件驱动架构(Event-Driven Architecture, EDA) – 订阅方式通过消息代理传输,一个事件可以传送给多个订阅者。
- 订阅-发布模式(Subscript/Publish)
- 动态接收表模式(Dynamic List)
- 消息存储库模式(Message Store)
- 文件传输模式(File Transfer)
7.11 首席信息官
第8章 软件工程
8.2 软件开发方法
8.2.1 形式化方法
8.2.2 逆向工程
- 重构
- 设计恢复
- 再工程
- 正向工程
8.3 软件开发模型 (论)
- 软件开发生命周期(Software Development Life Cycle, SDLC)
大体上可分为三种类型。第一种是以软件需求完全确定为前提的瀑布模型;第二种是在软件开发初始阶段只能提供基本需求时采用的迭代式或渐进式开发模型,例如,喷泉模型、螺旋模型、统一开发过程和敏捷方法等,第三种是以形式化开发方法为基础的变换模型。
- 瀑布模型 – 将软件开发的过程分为软件计划、需求分析、软件设计、程序编码、软件测试和运行维护6个阶段,形如瀑布流水,最终得到软件产品。
- 演化模型
- 螺旋模型:瀑布模型与演化模型的结合
- 喷泉模型
- 变换模型
- 智能模型
- V模型
8.3.2 快速应用开发方法(Rapid Application Development, RAD)
强调极短的开发周期。
开发阶段: 业务建模、数据建模、过程建模、应用生成、测试与交互
RAD采用基于构件的开发方法,复用己有的程序结构(如果可能的话)或使用构件, 或者创建可复用的构件(如果需要的话)。在所有情况下,均可以使用CASE工具辅助进行软件构建。如果一个业务能够被模块化使得其中每一个主要功能均可以在不到三个月的时间内完成,那么,它就是RAD的一个候选者。每个主要功能可由一个单独的RAD 组来实现,最后再集成起来,形成一个整体。
8.3.3 统一过程(UP)
RUP(Rational Unified Process)中的软件过程在时间上被分解为4个顺序的阶段,分别是初始阶段基本产品定义、细化阶段(架构)、构建阶段和移交阶段。
8.3.4 敏捷方法
目前,主要的敏捷方法有极限编程(eXtreme Programming,XP)、自适应软件开发(Adaptive Software Development,ASD)、水晶方法(Crystal)、特性驱动开发(Feature Driven Development, FDD)、动态系统开发方法(Dynamic Systems Development Method, DSDM)、测试驱动开发(Test-Driven Development,TDD)、敏捷数据库技术(Agile Database Techniques,AD)和精益软件开发(Lean Software Development)等。
8.4 软件开发环境与工具
8.5 软件过程管理
8.5.1 软件能力成熟度模型(Capability Maturity Model, CMM)
CMM的5个成熟度等级分别为初始级、可重复级、已定义级、已管理级和优化级。
第9章 系统规划
9.1 系统规划概述
系统规划的主要步骤
- 对现有系统进行初步调查。根据企业战略和发展目标,从类似企业和本企业内部收集各种信息,站在管理层的高度观察企业的现状,分析现有系统的运行状况。
- 分析和确定系统目标。系统目标应包括服务的质量和范围、政策、组织和人员等,它不仅包括信息系统的目标,还要反映整个企业的目标。
- 分析子系统的组成和基本功能。自顶向下对系统进行划分,并且详细说明各个子系统应该实现的功能。
- 拟定系统的实施方案。可以对子系统的优先级进行设定,以便确定子系统的开发顺序。
- 进行系统的可行性(Feasibility)研究,编写可行性研究报告,召开可行性论证会。
- 制订系统建设方案。对可行性研究报告中提出的各项技术指标进行分析、比较,落实各项假设的前提条件,制订系统建设方案。
9.4 可行性研究(论)
- 经济可行性
也称为投资收益分析或成本效益分析,主要评估项目的建设成本、运行成本和项目建成后可能的经济收益。
- 技术可行性
技术可行性也称为技术风险分析,研究的对象是信息系统需要实现的功能和性能, 以及技术能力约束。
技术、资源、目标
- 法律可行性
法律可行性也称为社会可行性,具有比较广泛的内容,它需要从政策、法律、道德、制度等社会因素来论证信息系统建设的现实性。
- 用户使用可行性
用户使用可行性也称为执行可行性,是从信息系统用户的角度来评估系统的可行性,包括企业的行政管理和工作制度、使用人员的素质和培训要求等,可以细分为管理可行性和运行可行性。
9.5 成本效益分析技术
按照成本性态分类,可以分为固定成本、变动成本和混合成本。
- 固定成本。固定成本是指其总额在一定期间和一定业务量范围内,不受业务量变动的影响而保持固定不变的成本。
- 变动成本。变动成本也称为可变成本,是指在一定时期和一定业务量范围内其总额随着业务量的变动而成正比例变动的成本。
- 混合成本。混合成本就是混合了固定成本和变动成本的性质的成本。
收益:一次性经济收益、非一次性经济收益
9.5.2 净现值(Net Present Value,NPV)分析
$NPV = \sum (CI - CO)_i / (1 + i)^t$
9.5.3 投资回收期与投资回报率
- 静态投资回收期
如果投资在建设期m年内分期投入,t年的投资为$P_t$,t年的净现金收入为$(CI-CO)_t$, 则能够使下面公式成立的T即为静态投资回收期。
\(\sum_{t=0}^{m} P_t = \sum_{t=0}^T (CI - CO)_t\)
静态动态投资回收期的实用公式为:
$T$ = 累计净现金流量开始出现正值的年份数-1+上年累计净现金流量|/当年净现金流量
- 动态投资回收期
如果考虑资金的时间价值,则动态投资回收期$T_p$的计算公式,应满足
\(\sum_{t=0}^{T_p} (CI - CO)_t / (1 + i)^t = 0\)
计算动态投资回收期的实用公式为:
$T_p$=累计折现值开始出现正值的年份数1+|上年累计折现值|/当年折现值
- 投资收益率(rate ofreturm on investment)
又称为投资利润率,是指投资收益占投资成本的比率。投资收益率反映投资的收益能力。其计算公式为:
投资收益率=投资收益/投资成本×100%
9.6 系统方案
可行性分析矩阵
第10章 系统分析
10.2 详细调查
深入了解企业管理工作中信息处理的全部具体情况和存在的具体问题,为提出新系统的逻辑模型提供可靠的依据。
详细调查的主要内容有现有系统的运行环境和状况、组织结构、业务流程、系统功能、数据资源与数据流程、资源情况、约束条件和薄弱环节等。
10.3 现有系统分析
在系统规划阶段,对现有系统进行了初步调查,为提出新系统建议方案及其在技术上是否具有可行性提供原始资料。在系统分析阶段,对现有系统进行了详细调查,为系统逻辑模型的建立提供资料。
10.5 系统功能分析
确定了系统的所有功能后,还需要分析各功能之间的关系和流程,一般使用功能流程图来描述。功能流程图可以检验是否识别出所有的功能,判定系统分析师是否理解了系统功能,也是以后进行系统设计的基础。
10.6 业务流程分析
10.6.1 业务流程分析概述
业务流程分析的方法
- 价值链分析法
- 客户关系分析法
- 供应链分析法
- 基于ERP的分析法
- 业务流程重组
业务流程分析的工具:业务流程图(TFD)、业务活动图示(BAM)、UML的活动图等。
10.6.2 业务流程图(Transaction Flow Diagram, TFD)
TFD是分析和描述现有系统的传统工具,是业务流程调查结果的图形化表示。它反映现有系统各部门的业务处理过程和它们之间的业务分工与联系,以及连接各部门的物流、信息流的传递和流动关系,体现现有系统的边界、环境、输入、输出、处理和数据存储等内容。TFD是一种用尽可能少、尽可能简单的方法,描述业务处理过程的方法。
![SRr_TFD.png](./images/SAr_TFD.png)
10.6.3 业务活动图示(Business Activity Mapping, BAM)
![SRr_BAM.png](./images/SAr_BAM.png)
10.6.4 业务流程建模
企业业务流程包含三个要素,分别是实体、对象和活动。业务流程发生在实体之间, 它们可以是企业间的、功能间的,也可以是人与人之间的;业务流程的功能就是对对象进行操作,这些对象既可以是物理的(例如,订单等),也可以是逻辑的(例如,信息等); 业务流程涉及管理活动和业务操作活动。
目前,常见的方法有标杆瞄准(Bench marking)、IDEF(Integration DEFinition method,集成定义方法)、Petri网,DEMO(Dynamic Essential Modeling ofOrganization,组织动态本质建模法)和业务流程建模语言等。
- 标杆瞄准(Bench marking)
通过分析和评价,确定出代表最佳实践的经营过程和工作过程,以便合理地确定本企业的业务流程。
- 集成定义方法(Integration DEFinition method,IDEF)
IDEF是一系列建模、分析和仿真方法的统称,从IDEFO到IDEF14(包括IDEF1X 在内)共有16套方法,每套方法都是通过建模程序来获取某个特定类型的信息。它们分别是DEFO(功能建模)、IDEF1(信息建模、DEFlX(数据建模)、IDEF2(仿真建模设计)、IDEF3(过程描述获取)、DEF4(面向对象设计)、IDEFS(本体论描述获取)、IDEF6(设计原理获取)、DEF7(信息系统审计)、DEF8(用户界面建模、DEF9(场景驱动信息系统设计)、DEF10(实施架构建模)、IDEF11(信息制品建模)、IDEF12(组织建模)、IDEF13(三模式映射设计)和IDEF14(网络规划)。
IDEFO可以用来对业务流程进行建模。
- DEMO – 定义了信息系统中行为角色之间的通信方式。
- Petri网 – 适用于多种系统的图形化、数学化建模工具。
- 业务流程建模语言
主流的业务流程建模语言标准有业务流程执行语言(Business Process Execution Language,BPEL)、业务流程建模语言(Business Process Modeling Language,BPML)、业务流程建模标注(Business Process Modeling Notation, BPMN)、XPDL (XML Process Definition Language, XML流程定义语言)和UML五种。从语言的表现形式上来说,可以将它们划归为两大类:文本类和图元类。
10.7 数据与数据流程分析
数据的动态特性有三种:固定值属性、固定个体变动属性、随机变动属性。
第11章 软件需求工程
11.1 软件需求概述
质量功能部署(Quality Function Deployment, QFD)
11.2 需求获取 (论)
11.2.1. 用户访谈
是最基本的一种需求获取手段,其形式包括结构化和非结构化两种。结构化是指事先准备好一系列问题,有针对地进行;而非结构化则是只列出一个粗略的想法, 根据访谈的具体情况发挥。最有效的访谈是结合这两种方法进行。用户访谈具有良好的灵活性,有较宽广的应用范围。但是,也存在着许多困难,例如,用户经常较忙,难以安排时间;面谈时信息量大,记录较为困难;沟通需要很多技巧,同时需要系统分析师具有足够的领域知识等。
11.2.2. 问卷调查
与用户访谈相比,问卷调查可以在短时间内,以低廉的代价从大量的回答中收集数据;问卷调查允许回答者匿名填写,大多数用户可能会提供真实信息;问卷调查的结果比较好整理和统计。问卷调查最大的不足就是缺乏灵活性。
11.2.3. 采样
采样是指从种群中系统地选出有代表性的样本集的过程,通过认真研究所选出的样本集,可以从整体上揭示种群的有用信息。通过采样技术,选择部分而不是选择种群的全部,不仅加快了数据收集的过程,而且提高了效率,从而降低了开发成本。另外,采样技术使用了数理统计原理,能减少数据收集的偏差。但是,由于采样技术基于统计学原理,样本规模的确定依赖于期望的可信度和己有的先验识,很大程度上取决于系统分析师的主观因素,对系统分析师个人的经验和能力依赖性很强,要求系统分析师具有较高的水平和丰富的经验。
11.2.4. 情节串联板
11.2.5 联合需求计划(Joint Requirement Planning, JRP) (论)
是一个通过高度组织的群体会议来分析企业内的问题并获取需求的过程,它是联合应用开发(Joint Application Development,JAD)的一部分。
11.2.6 需求记录技术
任务卡片、场景说明、用户故事、Volere白卡。
11.3 需求分析 (论)
11.3.1 需求分析的任务
需求分析的关键在于对问题域的研究与理解。
11.3.2 需求分析的方法
方法主要有SA方法、OOA方法和面向问题域的分析(Problem Domain Oriented Analysis, PDOA)方法。另外, 还有一些形式化方法,例如,VDM(Vienna Design Method)和Z等。需求分析的形式化方法由于实用性不强,一般用在学术研究中。
- PDOA面向问题域的分析方法:问题域,解系统
- SA结构化分析方法:功能的分解
- OOA面向对象分析方法:抽象,信息隐藏
- UML的结构
UML的结构包括构造块、规则和公共机制三个部分。
- (1)构造块。UML有三种基本的构造块,分别是事物(thing)、关系(relationship) 和图(diagram)。事物是UML 的重要组成部分,关系把事物紧密联系在一起,图是多个相互关联的事物的集合。
- (2)公共机制。公共机制是指达到特定目标的公共UML方法,主要包括规格说明(详细说明)、修饰、公共分类(通用划分)和扩展机制4种。规格说明是事物语义的细节描述,它是模型真正的核心;UML为每个事物设置了一个简单的记号,还可以通过修饰来表达更多的信息;UML包括两组公共分类:类与对象(类表示概念,而对象表示具体的实体)、接口与实现(接口用来定义契约,而实现就是具体的内容):扩展机制包括约束(扩展了UML构造块的语义,允许增加新的规则或修改现有的规则)、构造型(扩展UML的词汇,用于定义新的构造块)和标记值(扩展了UML构造块的特性,允许创建新的特殊信息来扩展事物的规格说明)。
- (3)规则。规则是构造块如何放在一起的规定,包括为构造块命名:给一个名字以特定含义的语境,即范围;怎样使用或看见名字,即可见性;事物如何正确、一致地相互联系,即完整性;运行或模拟动态模型的含义是什么,即执行。
UML的视图
UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分,以及它们的关联性、交互机制和指导原则等提供系统设计的信息。具体来说,就是指以下5个系统视图:
- (1)逻辑视图。逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集。
- (2)进程视图。进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构。
- (3)实现视图。实现视图对组成基于系统的物理代码的文件和构件进行建模。
- (4)部署视图。部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。
- (5)用例视图。用例视图是最基本的需求分析模型。
- 事物
UML中的事物也称为建模元素,包括结构事物(Structural Things)、行为事物(Behavioral Things,动作事物)、分组事物(GroupingThings)和注释事物(Annotational Things,注解事物)。这些事物是UML模型中最基本的OO构造块。
- (1)结构事物。结构事物在模型中属于最静态的部分,代表概念上或物理上的元素。UML有7种结构事物,分别是类、接口、协作、用例、活动类、构件和节点。
类是描述具有相同属性、方法、关系和语义的对象的集合,一个类实现一个或多个接口;
接口是指类或构件提供特定服务的一组操作的集合,接口描述了类或构件的对外的可见的动作;
协作定义了交互的操作,是一些角色和其他事物一起工作,提供一些合作的动作,这些动作比事物的总和要大;
用例是描述一系列的动作,产生有价值的结果。在模型中用例通常用来组织行为事物。用例是通过协作来实现的:
活动类的对象有一个或多个进程或线程。活动类和类很相似,只是它的对象代表的事物的行为和其他事物是同时存在的;
构件是物理上或可替换的系统部分,它实现了一个接口集合;
节点是一个物理元素,它在运行时存在,代表一个可计算的资源,通常占用一些内存和具有处理能力。一个构件集合一般来说位于一个节点,但有可能从一个节点转到另一个节点。
- (2)行为事物:行为事物是UML模型中的动态部分,代表时间和空间上的动作。UML有两种主要的行为事物。第一种是交互(内部活动),交互是由一组对象之间在特定上下文中,为达到特定目的而进行的一系列消息交换而组成的动作。交互中组成动作的对象的每个操作都要详细列出,包括消息、动作次序(消息产生的动作)、连接(对象之间的连接);第二种是状态机,状态机由一系列对象的状态组成。
- (3)分组事物。分组事物是UML模型中组织的部分,可以把它们看成是个盒子, 模型可以在其中进行分解。UML只有一种分组事物,称为包。包是一种将有组织的元素分组的机制。与构件不同的是,包纯粹是一种概念上的事物,只存在于开发阶段,而构件可以存在于系统运行阶段。
- (4)注释事物。注释事物是UML模型的解释部分。
- 关系
UML用关系把事物结合在一起,主要有下列4种关系。
- (1)依赖(dependency)。依赖是两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。
- (2)关联(association)。关联描述一组对象之间连接的结构关系。
- (3)泛化(generalization)。泛化是一般化和特殊化的关系,描述特殊元素的对象可替换一般元素的对象。
- (4)实现(realization)。实现是类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。
- 图
UML2.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)交互概览图(lnteraction Overview Diagram)。交互概览图是活动图和顺序图的混合物。
静态视图主要包括:用例图、类图、包图。
交互视图主要包括:序列图、协作图。
11.5.2 用例模型
在OOA方法中,构建用例模型一般需要经历4个阶段,分别是识别参与者、合并需求获得用例、细化用例描述和调整用例模型, 其中前三个阶段是必需的。
- 用例图的元素
- (1)参与者。参与者是指存在于系统外部并与系统进行交互的任何事物,既可以是使用系统的用户,也可以是其他外部系统和设备等外部实体。
- (2)用例。用例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果。也就是说,用例表示系统所提供的服务,它定义了系统是如何被参与者所使用的,它描述的是参与者为了使用系统所提供的某一完整功能而与系统之间发生的一段对话。
- (3)通信关联。通信关联表示的是参与者和用例之间的关系,或用例与用例之间的关系。箭头表示在这一关系中哪一方是对话的主动发起者,箭头所指方是对话的被动接受者,箭尾所指方是对话的主动发起者。如果不想强调对话中的主动与被动关系,可以使用不带箭头的关联实线。在用例模型中,信息流不是由通信关联来表示的,该信息流是默认存在的,并且是双向的,它与箭头所指的方向没有关系。
- 细化用例描述
用例规约(use case specification)
- 调整用例模型
用例之间的关系主要有包含、扩展和泛化。
- (1)包含关系。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例。
- (2)扩展关系。如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰。
- (3)泛化关系。当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。
11.5.3 分析模型
类的职责包括两个方面的内容,一个是类所维护的知识,即成员变量或属性;另一个是类能够执行的行为,即成员方法或责任。
![类之间的关系表示](./images/SAr_UML.png)
- 关联关系
- 依赖关系
- 泛化关系
- 共享聚集/聚合关系 – 部分可能同时属于多个整体
- 组合聚集/组合关系 – 部分只属于一个整体
- 实现关系
11.6 需求定义
软件需求规格说明书(Software Requirement Specification, SRS)
11.7 需求验证(论)
因此,有必要对于SRS的正确性进行验证,以确保需求符合良好特征。需求验证也称为需求确认,其活动是为了确定以下几个方面的内容:
(1) SRS正确地描述了预期的、满足项目干系人需求的系统行为和特征。
(2) SRS中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的。
(3)需求是完整的和高质量的。
(4)需求的表示在所有地方都是一致的。
(5)需求为继续进行系统设计、实现和测试提供了足够的基础。
11.7.1 需求评审
- 技术评审的类型
根据IEEE的词汇表,技术评审可以分为以下三种类型:
(1)评审。评审是指一次正式的会议,在会议上向用户或其他项目干系人介绍一个或一组工作产品,以征求对方的意见和批准。
(2)检查。检查是一种正式的评估方法,将由非制作者本人的个人或小组详细检查工作产品,以验证是否有错误、是否违反开发标准、是否存在其他问题。
(3)走查。走查是一个评审过程,由某个开发人员领导一个或多个开发团队成员对他(或她)的工作产品进行检查,由其他成员针对技术、风格、可能的错误、是否违反开发标准和其他问题提出意见。
11.7.2 需求测试
需求测试仅仅是基于文本需求进行“概念”上的测试。
它们可以发现SRS中的错误、二义性和遗漏,还可以进行模型分析,以及作为用户验收测试的基础。在正式的系统测试中,还可以将它们细化成测试用例。
11.8 需求管理(论)
在CMM中,需求管理是可重复级的一个关键过程域,其目标是为软件需求建立一个基线,供软件开发及其管理使用,使软件计划、产品和活动与软件需求保持一致。从软件需求工程的角度来看,需求管理包括在软件开发过程中维持需求一致性和精确性的所有活动,包括控制需求基线,保持项目计划与需求一致,控制单个需求和需求文档的版本情况,管理需求和联系链之间的联系,或管理单个需求和项目其他可交付物之间的依赖关系,跟踪基线中需求的状态。
11.8.1 需求变更管理
11.8.3 需求风险管理
11.8.4 需求跟踪
需求跟踪矩阵
第12章 软件架构(Software Architecture)设计
12.1 构件与软件复用(SoftWare Reuse) (论)
可复用性(可重用性)是指系统和(或)其组成部分能在其他系统中重复使用的程度。软件开发的全生命周期都有可复用的价值,包括项目的组织、软件需求、设计、文档、实现、测试方法和测试用例,都是可以被重复利用和借鉴的有效资源。可复用性体现在软件的各个层次,遍用的、可复用性高的软件模块往往已经由操作系统或开发工具提供,例如,通用库、标准构件和模板库等,它们并不需要程序员重新开发。
是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。
构件(component) 也称为组件,是一个功能相对独立的具有可复用价值的软件单元。
12.1.1 主流构件标准
目前,主流的构件标准有对象管理集团(Object Management CGroup, OMG)的CORBA、Microsoft的构件对象模型(Component Object Model,COM)和分布式构件对象模型(Distributed Component Object Model, DCOM)和Sun的Java企业Bean (Enterprise JavaBean, EJB)。
目前,已有的构件分类方法大致可以归纳为三大类,关键字分类法、刻面(facet) 分类法和超文本组织方法。
12.1.2 构件获取与管理
遗留工程(Legacy Engineering)
12.3 软件架构建模
分为五种,分别是结构模型、框架模型、动态模型、过程模型和功能模型。
- (1)结构模型:这是一种最直观和最普遍的建模方法,它以构件、连接件和其他概念来刻画架构,并力图通过架构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格和性质等。研究结构模型的核心是架构描述语言。
- (2)框架模型:框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体结构。框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的架构。
- (3)动态模型:动态模型是对结构模型或框架模型的补充,研究系统的粗粒度行为性质。例如,描述系统的重新配置或演化等,这类系统通常是激励型的。
- (4)过程模型:过程模型研究构建系统的步骤和过程。
- (5)功能模型:功能模型认为架构是由一组功能构件按层次组成的,下层向上层提供服务。功能模型可以看作是一种特殊的框架模型。
12.4 软件架构风格
12.4.1 经典架构风格
- 数据流风格:批处理风格、管道/过滤器风格
- 调用/返回风格:主程序/子程序、数据抽象和面向对象、层次结构
- 独立构件风格:进程通信、事件驱动的系统
- 虚拟机风格:解释器、基于规则的系统
- 仓库风格:数据库系统、黑板系统、超文本系统
12.4.2 层次架构风格
- 二层架构:客户机/服务器
- 三层C/S架构
增加了一个应用服务器,将应用系统分成表示层、功能层、数据层。
12.5 面向服务的架构(Service-Oriented Architecture, SOA) (论)
12.5.2 SOA的关键技术
-
- REST
表述性状态转移(Representational State Transfer, REST)是一种只使用HTTP和XML进行基于Web通信的技术,可以降低开发的复杂性,提高系统的可伸缩性。它的简单性和缺少严格配置文件的特性。使它与SOAP很好地隔离开来,REST从根本上来说只支持几个操作(POST、GET、PUT和 DELETE),这些操作适用于所有的消息。
REST提出了如下一些设计概念和准则:
1. 网络上的所有事物都被抽象为资源。
2. 每个资源对应一个唯一的资源标识。
3. 通过通用的连接件接口对资源进行操作。
4. 对资源的各种操作不会改变资源标识。
5. 所有的操作都是无状态的。
12.6 软件架构评估
- 基于问卷调查的评估
- 基于场景的评估
- 基于度量的评估
12.7 软件产品线(Software Product Line)
软件产品线(Software ProductLine)是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足特定领域的特定需求。软件产品线是一个十分适合专业开发组织的软件开发方法,能有效地提高软件生产率和质量,缩短开发时间,降低总开发成本, 软件产品线主要由两部分组成,分别是核心资源和产品集合。
补充点
MVP(Model View Presenter)
MVP与MVC相比,最在的差异在于层次之类的耦合度不一样。MVP将M与V彻底分离,所有交互均通过P传达,这样,有利于软件构件及架构的重用,也利于修改,有良好的可扩展性。
第13章 系统设计
13.1 系统设计概述
系统设计的主要内容包括概要设计和详细设计。概要设计又称为系统总体结构设计, 它是系统开发过程中很关键的一步,其主要任务是将系统的功能需求分配给软件模块, 确定每个模块的功能和调用关系,形成软件的模块结构图,即系统结构图。在概要设计中,将系统开发的总任务分解成许多个基本的、具体的任务,为每个具体任务选择话当的技术手段和处理方法的过程称为详细设计。
- 用户界面设计
人机交互的“黄金三原则”。另外,在设计用户界面时,还需要保证界面的合理性和独特性, 有效进行组合,注重美观与协调:恰到好处地提供快捷方式,注意资源协调等。
- 置于用户控制之下
- 减轻用户的记忆负担
- 保持界面一致性
13.2 处理流程设计 (论)
处理流程设计的任务是设计出系统所有模块以及它们之间的相互关系,并具体设计出每个模块内部的功能和处理过程,为开发人员提供详细的技术资料。
一般来说,流程包括6个基本要素,分别是输入资源、活动、活动的相互作用(结构)、输出结果、用户和价值。
根据工作流管理联盟(WorkFlow Management Coalition,WFMC)的定义,工作流是一类能够完全或者部分自动执行的业务过程,根据一系列过程规则、文档、信息或任务,在不同的执行者之间传递和执行。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务,一个工作流包括一组活动(或任务)及它们的相互顺序关系,还包括流程和活动的启动和终止条件,以及对每个活动的描述。
- 工作流参考模型(Workflow Reference Model, WRM)包含6个基本模块,分别是工作流执行服务、工作流引擎、流程定义工具、客户端应用、调用应用和管理监控工具。这6个模块被认为是WFMS最基本的组成部分,WRM同时也包括了这些模块之间的接口标准,包括接口一、接口二、接口三、接口四和接口五。
处理流程的工具包括三类: 图形工具、表格工具和语言工具。其中常见的图形工具包括程序流程图、IPO图、盒图、问题分析图、判定树,表格工具包括判定表, 语言工具包括过程设计语言等。
13.2.2 工作流管理系统(WorkFlow Management System,WFMS)
![工作流参考模型](/SystemAnalyst/BAM.png)
- (1)工作流执行服务。工作流执行服务是WFMS的核心模块,它的功能包括创建和管理流程定义,创建、管理和执行流程实例。
- (2)工作流引擎。工作流引擎是为流程实例提供运行环境,并解释执行流程实例的软件模块,即负责流程处理的软件模块。
- (3)流程定义工具。流程定义工具是管理流程定义的工具,它可以通过图形方式把复杂的流程定义显示出来并加以操作,流程定义工具与工作流执行服务交,一般该模块为设计人员提供图形化的用户界面。
13.2.3 流程设计工具
- 程序流程图(Program Flow Diagram,PFD)
- 问题分析图(Problem Analysis Diagram,PAD)
- 系统结构图(Structure Chart,SC)
13.3 结构化设计(Structured Design,SD)
在SD中,这种功能分解就是将系统划分为模块,模块是组成系统的基本单位,它的特点是可以自由组合、分解和变换,系统中任何一个处理功能都可以看成一个模块。
13.3.1 模块结构
模块的扇入和扇出要合理。一个模块的扇出是指该模块直接调用的下级模块的个数:扇出大表示模块的复杂度高,需要控制和协调过多的下级模块。扇出过大一般是因为缺乏中间层次,应该适当增加中间层次的控制模块;扇出太小时可以把下级模块进一步分解成若于个子功能模块,或者合并到它的上级模块中去。一个模块的扇入是指直接调用该模块的上级模块的个数:扇入大表示模块的复用程度高。
![模块耦合类型](./images/SAr_耦合.png)
![模块内聚类型](./images/SAr_内聚.png)
13.3.2 系统结构图(Structure Chart, SC)
13.4 面向对象设计
其基本思想包括抽象、封装和可扩展性,其中可扩展性主要通过继承和多态来实现。
在系统设计过程中,类可以分为三种类型:实体类、边界类和控制类。
- 实体类
实体类映射需求中的每个实体,实体类保存需要存储在水久存储体中的信息,例如, 在线教育平台系统可以提取出学员类和课程类,它们都属于实体类。实体类通常都是永久性的,它们所具有的属性和关系是长期需要的,有时甚至在系统的整个生存期都需要。
- 控制类
控制类是用于控制用例工作的类,一般是由动宾结构的短语(“动词+名词”或“名词+动词”转化来的名词。
- 边界类
边界类用于封装在用例内、外流动的信息或数据流。边界类位于系统与外界的交接处,包括所有窗体、报表、打印机和扫描仪等硬件的接口,以及与其他系统的接口。
13.4.2 对象持久化和数据库
对象关系映射:CMP、Hibernate、iBatis、JDO
13.4.3 面向对象设计的原则
常用的OOD设计原则包括开闭原则、里氏替换原则(父类)、依赖倒置原则(参数)、组合/聚合复用原则、接口隔离原则(功能分离)、最少知识原则(解耦合)。
13.5 设计模式 (论)
根据目的和用途不同,设计模式可分为创建型(creational)模式、结构型(structural) 模式和行为型(behavioral)模式三种。
- 1.创建型模式: 实例化过程。
创建型模式对类的实例化过程(即对象的创建过程)进行了抽象,能够使软件模块做到与对象的创建和组织无关。创建型模式隐藏了对象是如何被创建的和组合在一起的, 以达到使整个系统独立的目的。创建型模式包括工厂方法模式、抽象工厂模式、原型模式、单例模式和建造者模式等。
- 2.结构型模式: 类结构模式和对象结构模式。
结构型模式描述如何将类或对象结合在一起形成更大的结构。结构型模式描述两种不同的事物,即类与类的实例(对象),根据这一点,可以分为类结构型模式和对象结构型模式。结构型模式包括适配器模式(Adapter)、桥接模式、组合模式、装饰模式(Decorator)、外观模式、享元模式(Flyweight)和代理模式(Proxy)等。
- 3.行为型模式: 类行为模式和对象行为模式。
行为型模式是对在不同的对象之间划分责任和算法的抽象化,它不仅仅是关于类和对象的,而且是关于它们之间的相互作用的。行为型模式分为类行为模式和对象行为模式两种,其中类行为模式使用继承关系在几个类之间分配行为,而对象行为模式则使用对象的聚合来分配行为。行为型模式包括职责链模式、命令模式、解释器模式、迭代器模式、中介者模式(Delegation)、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式等。
第14章 系统实现与测试
14.1 系统实现概述
面向方面的程序设计(Aspect-Oriented Programming, AOP)
14.3 软件测试方法
软件测试方法可分为静态测试和动态测试,其中动态测试一般采用白盒测试和黑盒测试方法。
14.4 测试的类型
可分为单元测试、集成测试、配置项测试、系统测试、验收测试和回归测试等类别。
14.4.4 其它测试类型
- 配置项测试
- 确认测试
主要用于验证软件的功能、性能和其他特性是否与用户需求一致。根据用户的参与程度,通常包括以下4种类型:
- (1)内部确认测试。内部确认测试主要由软件开发组织内部按照SRS进行测试。
- (2)Alpha测试和Beta测试。对于通用产品型的软件开发而言,Alpha测试是指由用户在开发环境下进行测试。通过Alpha测试以后的产品通常称为Alpha版:Beta测试是指由用户在实际使用环境下进行测试,通过Beta测试的产品通常称为Beta版。一般在通过Beta测试后,才能把产品发布或交付给用户。
- (3)验收测试。验收测试是指针对SRS,在交付前以用户为主进行的测试。
- 回归测试
第15章 系统运行与维护
15.1 遗留系统(Legacy System)的处理策略
- 启动评价 – 理解系统
- 业务价值评价
- 外部环境评价 – 系统的外部技术环境是指硬件、支撑软件和企业IT基础设施的统一体。
- 应用软件评价 – 应用软件评价可以分为系统级和部件级。系统级评价把整个系统看作是不可分割的原子,评价时不考虑系统的任何部分;部件级评价关注系统的每个子系统,考虑每个子系统的特征,包括复杂性、数据、文档、外部依赖性、合法性、维护记录、大小和安全性等指标。
- 分析评价结果 – 评价活动将产生硬件、支撑软件、企业的基础设施和应用软件的特征值矩阵,这些特征值体现了遗留系统当前的技术因素,其加权平均值代表了系统的技术水平。
15.1.2 演化策略 (论)
- 淘汰策略: 低水平低价值
- 继承策略: 低水平高价值 – 需兼容遗留系统的功能模型和数据模型
- 改造策略: 高水平高价值 – 改造包括系统功能的增强和数据模型的改造两个方面
- 集成策略: 高水平低价值
15.2 系统转换与交接
新旧系统转换:直接转换策略、并行转换策略、分段转换策略
15.2.2 数据转换与迁移
程序大致可以分为抽取、转换与装载三个过程。数据抽取、转换是根据新旧系统数据库的映射关系进行的,转换步骤一般还要包含数据清洗的过程,数据清洗主要是针对源数据库中,对出现二义性、重复、不完整、违反业务或逻辑规则等问题的数据进行相应的清洗操作。
嵌入式系统分析与设计
多任务调试算法
第18章 系统安全性分析与设计
18.1 系统安全
- 系统安全的分类
主要包括实体安全、信息安全、运行安全和人员安全等几个部分。
- 系统安全体系结构
可以将安全防范体系的层次划分为物理层安全、系统层安全、网络层安全、应用层安全和安全管理。
18.2 数据安全与
18.2.1 数据加密技术
- 加密
- DES – 是一种迭代的分组密码,明文和密文都是64位,使用一个56位的密钥以及附加的8位奇偶校验位。攻击DES的主要技术是穷举法,由于DES的密钥长度较短,为了提高安全性,就出现了使用112位密钥对数据进行三次加密的算法(3DES),即用两个56位的密钥Kl和K2,发送方用K1加密,K2解密,再使用K1加密;接收方则使用K1解密,K2加密,再使用K1解密,其效果相当于将密钥长度加倍。
- IDEA是在DES的基础上发展起来的,类似于3DES。IDEA的明文和密文都是64 位,密钥长度为128位。
- 加密
- RSA – RSA算法的密钥长度为512位。
18.2.2 认证(authentication)技术
- (1)消息摘要算法(Message Digest algorithm5,MD5)
- (2)安全散列算法。安全散列算法(Secure Hash Algorithm, SHA)能计算出一个数字信息所对应的长度固定的字符串(消息摘要,它对长度不超过264位的消息产生160 位的消息摘要。
- 数字证书
通常包括版本号、序列号(CA下发的每个证书的序列号都是唯一的)、签名算法标识符、发行者名称、有效期、主体名称、主体的公钥信息、发行者唯一识别符、主体唯一识别符、扩充域、发行者签名(就是CA用自己的私钥对上述数据进行数字签名的结果,也可以理解为是CA中心对用户证书的签名)等信息。
- 密钥管理基础设施(Key Management Infrastructure,KMI)
- 公钥基础设施(Public Key Infrastructure,PKI)
18.3
18.3.1 防火墙
一般可以分为包过滤型防火墙、电路级网关型防火墙、应用网关型防火墙、代理服务型防火墙、状态检测型防火墙和自适应代理型防火墙。
- (1)包过滤型防火墙。包过滤型防火墙是在网络层对数据包进行分析、选择,选择的依据是系统内设置的过滤规则(访问控制表)。通过检查每个数据包的源地址、目的地址、端口和协议状态等因素,确定是否允许该数据包通过。包过滤型防火墙的优点是逻辑简单、成本低,易于安装和使用,网络性能和透明性好,通常安装在路由器上。其缺点是很难准确地设置包过滤器,缺乏用户级的授权:包过滤判别的条件位于数据包的头部,由于IPv4的不安全性,很可能被假冒或窃取;是基于网终层的安全技术,不能检测通过高层协议而实施的攻击。
- (2)电路级网关型防火墙。电路级网关型防火墙起着一定的代理服务作用,监视两台计算机建立连接时的握手信息,判断该会话请求是否合法。一旦会话连接有效后,该网关仅复制和传递数据。电路级网关型防火墙在P层代理各种高层会话,具有隐藏内部网络信息的能力,且透明性高。但由于其对会话建立后所传输的具体内容不再作进一步的分析,因此安全性低。
- (3)应用网关型防火墙。应用网关型防火墙是在应用层上实现协议过滤和转发功能, 针对特别的网络应用协议制定数据过滤规则。应用网关通常安装在专用工作站系统上, 由于它工作于应用层,因此具有高层应用数据或协议的理解能力,可以动态地修改过滤规则,提供记录和统计信息。应用网关型防火墙和包过滤型防火墙有一个共同特点,就是它们仅依靠特定的逻辑来判断是否允许数据包通过,一旦符合条件,则防火墙内外的计算机系统建立直接联系,防火墙外部网络能直接了解内部网络结构和运行状态,这大大增加了实施非法访问攻击的机会。
- (4)代理服务型防火墙。代理服务器接收客户请求后,会检查并验证其合法性,如合法,它将作为一台客户机向真正的服务器发出请求并取回所需信息,最后再转发给客户。代理服务型防火墙将内部系统与外界完全隔离开来,从外面只看到代理服务器,而看不到任何内部资源,而且代理服务器只允许被代理的服务通过。代理服务安全性高, 还可以过滤协议,通常认为是最安全的防火墙技术。其不足主要是不能完全透明地支持各种服务和应用,而且会消耗大量的CPU资源,导致系统的低性能。
- (5)状态检测型防火墙。状态检测型防火墙动态记录和维护各个连接的协议状态, 并在网络层对通信的各个层次进行分析与检测,以决定是否允许通过防火墙。因此,状态检测型防火墙兼备了较高的效率和安全性,可以支持多种网络协议和应用,且可以方便地扩展实现对各种非标准服务的支持。
- (6)自适应代理型防火墙。自适应代理型防火墙可以根据用户定义的安全策略,动态适应传送中的分组流量。如果安全要求较高,则最初的安全检查仍在应用层完成。而一且代理明确了会话的所有细节,那么其后的数据包就可以直接经过速度快得多的网络层。因此,此类防火墙兼备了代理技术的安全性和状态检测技术的高效率。
安全协议
主要包括IPSec、SSL、PGP和安全套接字层上的超文本传输协议(Hypertext Transfer Protocol over Secure Socket Layer, HTTPS)等。
-
- SSL – SSL是一个传输层的安全协议,用于在Intemet上传送机密文件。SSL协议由握手协议、记录协议和警报协议组成。SSL主要提供三个方面的服务,分别是用户和服务器的合法性认证、加密数据以隐藏被传送的数据和保护数据的完整性。SSL使用40位关键字作为RC4流加密算法。
-
- HTTPS
-
- PGP – PGP是一个基于RSA的邮件加密软件。
-
- IPSec – IPSec是一个工业标准网络安全协议
虚拟专用网(Virtual Private Network, VPN)
- 隧道技术。隧道技术是VPN的基本技术,类似于点对点连接技术,它在公用网建立一条数据通道(隧道),让数据包通过这条隧道传输。隧道是由隧道协议形成的, 可分为第二层隧道协议和第三层隧道协议。第二层隧道协议是先将各种网络协议封装到PPP中,再将整个数据包装入隧道协议中。这种双层封装方法形成的数据包靠第二层(数据链路层)协议进行传输。第二层隧道协议主要有L2F(Level 2 Forwarding。第二层转发)协议、PPTP(Point to Point Tunneling Protocol,点对点隧道协议)和L2TP(LayerTwo Tunneling Protocol,第二层通道协议)等:第三层隧道协议是将各种网络协议直接装入隧道协议中,形成的数据包依靠第三层(网络层)协议进行传输。第三层隧道协议主要有VTP (VLAN Trunking Protocol,虚拟局域网干道协议)、IPSe等。
18.4 病毒防治与防闯入
18.4.2 入侵检测技术
- 入侵检测系统(Intrusion-detection system, IDS)
一个IDS系统通常由探测器(Sensor)、分析器(Analyzer)、响应单元(Response Units)和事件数据库(Event Database)组成。
常用的三种分析方法:模式匹配、数据完整性分析、统计分析
18.4.3 入侵防护技术
- 入侵防护系统(1ntrusion Prevention System, IPS)
- 拒绝服务(Denial of Service, DoS)
18.5 系统访问控制技术
18.5.1 访问控制概述
访问控制包括三个要素,分别是主体、客体和控制策略
18.6 容灾与业务持续
容灾与恢复
(论)
18.6.3 业务持续性规划(Business Continuity Planning, BCP)
18.7 安全管理措施
第19章 系统可靠性分析与设计 (论)
19.1 系统可靠性概述
系统可靠性指标
- 平均无故障时间(MTTF)
- 平均故障修复时间(MTTR)
- 平均故障间隔时间(MTBF)
- 系统可用性
19.2 系统可靠性分析
- 串联系统 – $R = R1 * R2 * … * Rn$
- 并联系统 – $R = 1 - (1-R1) * (1-R2) * … * (1-Rn)$
- 模冗余系统 – m模冗余系统,n+1个以上子系统能正常工作
19.4 软件容错技术
19.4.1 N版本程序设计
19.4.2 恢复块方法
19.4.3 防卫式程序设计
19.5 双机容错技术
- 双机热备模式
- 双机互备模式
- 双机双工模式
19.6 集群技术
第20章 项目管理 (论)
20.1 项目开发计划
20.2 范围管理
20.3 进度管理
- 前导图法(Precedence Diagramming Method,PDM)
也称为单代号网络图法(Active on the Node, AON),它用方格或矩形(节点)表示活动,用箭线表示依赖关系。在PDM 中,每项活动都有唯一的活动号,注明了预计工期。每个节点的活动有最早开始时间(Early Start,ES)、最迟开始时间(LateStart,LS)、最早结束时间(Early Finish,EF) 和最迟结束时间(Late Finish, LF)。
- 箭线图法(Arow Diagramming Method,ADM)
也称为双代号网络图法(ActiveOn the Arow,AOA),它用节点表示事件,用箭线表示活动,并在节点处将其连接起来, 以表示依赖关系。在ADM中,给每个事件而不是每项活动指定一个唯一的号码。活动的开始(箭尾)事件叫做该活动的紧前事件(Precede Event),活动的结束(箭头)事件叫做该活动的紧后事件(Successor Event)。
20.3.3 活动历时估算
德尔菲(Delphi)法:$E_i = \frac{a_i + 4 m_i + b_i}{6}$
20.4 成本管理
20.5.3 变更控制
20.6 质量管理 (论)
20.6.1 软件质量模型
![SAr_PolicyModel](./images/SAr_PolicyModel.png)
20.8 风险管理 (论)
项目风险管理的基本过程包括风险管理计划编制、风险识别、风险定性分析、风险定量分析、风险应对计划编制和风险监控。
知识产权与法律法规
著作权法
多媒体基础知识
压缩编码技术
- 无损压缩法
包括HaffMan编码、算术编码、行程编码等。
- 熵压缩法/有损压缩编码法
- MPEG
| 压缩技术 | 功能 |
| — | :——– |
| MPEG-7 | 多媒体内容描述接口 |
补充点
域名查询
案例分析
MDA(Model Driven Archtecture)
可移植性
在MDA中,先会建立平台无关模型(PIM),然后转换为平台相关模型(PSM),1个PIM可转换成多个PSM,所以要把一个软件移植到另一个平台时,只需要将平台无关模型转换成另一个平台的相关模型即可。所以可移植性很强。
平台互操作性
在MDA中,整个开发过程都是模型驱动的,所以标准化程度很高,这样为平台的互操作带来了非常大的帮助。
文档和代码的一致性
在MDA中,代码是由模型生成的,所以具有天然的一致性。这一点其它方法无法比拟。
问题分析
问题分析阶段的四项主要任务
包括:
1)研究问题领域
2)分析问题和机会
3)制定系统改进目标
4)修改项目计划
系统约束条件
可以分为四类
1.进度
2.成本
3.功能/技术约束
4.质量/政策标准约束
武器装备产品
企业要承担武器装备产品生产任务,需获得军工四证,包括:
- 武器装备科研生产单位保密资质认证;
- 武器装备科研生产许可证认证;
- 装备承制单位资格审查(装备承制单位资格名录认证 和 武器装备质量管理体系认证);
安全关键系统
是指系统功能一旦失效将引起生命、财产等重大损失以及环境可能遭到严重破坏的系统。如战斗机的航空电子系统,火控雷达系统等。
微服务
一个微服务中应该包含的内容有:资源、对资源的操作、API集合。
微服务的优势:
- 解决了复杂性问题。它把庞大的单一模块应用分解为一系列的服务,同时保持总体功能不变。
- 让每个服务能够独立开发,开发者能够自由选择可行的技术,让服务来决定API 约定。
- 每个微服务都能独立配置,开发者不必协调对于本地服务配置上的变化,这种变化一旦测试完成就被配置了。
- 让每个服务都可以独立调整,你可以给每个服务配置正好满足容量和可用性限制的实例数。
微服务架构带来的挑战:
- 并非所有的系统都能转成微服务。例如一些数据库层的底层操作是不推荐服务化的。
- 部署较以往架构更加复杂:系统由众多微服务搭建,每个微服务需要单独部署,从而增加部署的复杂度,容器技术能够解决这一问题。
- 性能问题:由于微服务注重独立性,互相通信时只能通过标准接口,可能产生延迟或调用出错。例如一个服务需要访问另一个服务的数据,只能通过服务间接口来进行数据传输,如果是频繁访问,则可能带来较大的延迟。
- 数据一致性问题:作为分布式部署的微服务,在保持数据一致性方面需要比传统架构更加困难。
活动图与流程图的区别
活动图和流程图的主要区别有以下三点:
(1)活动图是面向对象的,而流程图是面向过程的。
(2)活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系。
(3)活动图能够表示并发活动的情形,而流程图不能。
补充
Crc循环冗余校验
寄存器 (2017.15)
数据库分解无损性和函数依赖性 (2017.42)
遗产系统 (2016.36)
在CPU中至少要有六类寄存器:指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、数据寄存器(DR)、累加寄存器(AC)、程序状态字寄存器(PSW)。这些寄存器用来暂存一个计算机字,其数目可以根据需要进行扩充。
- 数据寄存器
数据寄存器(Data Register,DR)又称数据缓冲寄存器,其主要功能是作为CPU和主存、外设之间信息传输的中转站,用以弥补CPU和主存、外设之间操作速度上的差异。
数据寄存器用来暂时存放由主存储器读出的一条指令或一个数据字;反之,当向主存存入一条指令或一个数据字时,也将它们暂时存放在数据寄存器中。
数据寄存器的作用是:
1. 作为CPU和主存、外围设备之间信息传送的中转站;
1. 弥补CPU和主存、外围设备之间在操作速度上的差异;
1. 在单累加器结构的运算器中,数据寄存器还可兼作操作数寄存器。
- 指令寄存器
指令寄存器(Instruction Register,IR)用来保存当前正在执行的一条指令。
当执行一条指令时,首先把该指令从主存读取到数据寄存器中,然后再传送至指令寄存器。
指令包括操作码和地址码两个字段,为了执行指令,必须对操作码进行测试,识别出所要求的操作,指令译码器(Instruction Decoder,ID)就是完成这项工作的。指令译码器对指令寄存器的操作码部分进行译码,以产生指令所要求操作的控制电位,并将其送到微操作控制线路上,在时序部件定时信号的作用下,产生具体的操作控制信号。
指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码,即可向操作控制器发出具体操作的特定信号。
- 程序计数器
程序计数器(Program Counter,PC)用来指出下一条指令在主存储器中的地址。
在程序执行之前,首先必须将程序的首地址,即程序第一条指令所在主存单元的地址送入PC,因此PC的内容即是从主存提取的第一条指令的地址。
当执行指令时,CPU能自动递增PC的内容,使其始终保存将要执行的下一条指令的主存地址,为取下一条指令做好准备。若为单字长指令,则(PC)+1àPC,若为双字长指令,则(PC)+2àPC,以此类推。
但是,当遇到转移指令时,下一条指令的地址将由转移指令的地址码字段来指定,而不是像通常的那样通过顺序递增PC的内容来取得。
因此,程序计数器的结构应当是具有寄存信息和计数两种功能的结构。
- 地址寄存器
地址寄存器(Address Register,AR)用来保存CPU当前所访问的主存单元的地址。
由于在主存和CPU之间存在操作速度上的差异,所以必须使用地址寄存器来暂时保存主存的地址信息,直到主存的存取操作完成为止。
当CPU和主存进行信息交换,即CPU向主存存入数据/指令或者从主存读出数据/指令时,都要使用地址寄存器和数据寄存器。
如果我们把外围设备与主存单元进行统一编址,那么,当CPU和外围设备交换信息时,我们同样要使用地址寄存器和数据寄存器。
- 累加寄存器
累加寄存器通常简称累加器(Accumulator,AC),是一个通用寄存器。
累加器的功能是:当运算器的算术逻辑单元ALU执行算术或逻辑运算时,为ALU提供一个工作区,可以为ALU暂时保存一个操作数或运算结果。
显然,运算器中至少要有一个累加寄存器。
- 程序状态字寄存器
程序状态字(Program Status Word,PSW)用来表征当前运算的状态及程序的工作方式。
程序状态字寄存器用来保存由算术/逻辑指令运行或测试的结果所建立起来的各种条件码内容,如运算结果进/借位标志(C)、运算结果溢出标志(O)、运算结果为零标志(Z)、运算结果为负标志(N)、运算结果符号标志(S)等,这些标志位通常用1位触发器来保存。
除此之外,程序状态字寄存器还用来保存中断和系统工作状态等信息,以便CPU和系统及时了解机器运行状态和程序运行状态。
因此,程序状态字寄存器是一个保存各种状态条件标志的寄存器。
论文主题
- 2022
- 论原型法及其在信息系统开发中的应用 (7.3.4)
- 论面向对象设计方法及其应用 (13.4)
- 2021
- 论面向对象的信息系统分析方法 (7.3.2)
- 论静态测试方法及应用
- 论富互联网应用的客户端开发技术
- 论DevSecOps技术及其应用
- 2020
- 论面向服务的信息系统开发方法及其应用 (7.3.3)
- 论快速应用开发方法及其应用 (8.3.2)
- 论软件设计模式及其应用 (13.5)
- 论遗留系统演化策略及其应用 (15.1.2)
- 2019
- 论系统需求分析方法 (11.3)
- 论系统自动化测试及其应用
- 论处理流程设计方法及应用
- 论企业智能运维技术与方法
- 2018
- 论信息系统开发方法论 (7.3)
- 论软件构件管理及其应用 (12.1)
- 论软件系统需求获取技术及应用 (11.2)
- 论数据挖掘方法及应用
- 2017
- 论需求分析方法及应用 (11.3)
- 论企业应用集成 (7.10)
- 论数据流图在系统分析与设计中的应用
- 论软件的系统测试及其应用
- 2016
- 论软件需求验证方法及其应用 (11.7)
- 论软件的系统测试及其应用
- 论软件开发模型及应用 (8.3)
- 论信息系统规划及实践 (7.2)
- 2015
- 论项目⻛险管理及其应用 (20.8)
- 论软件系统测试及其应用
- 论软件系统的容灾与恢复 (18.6)
- 论非关系型数据库技术及应用
- 2014
- 论信息系统开发方法及应用 (7.3)
- 业务流程建模方法及应用
- 数据库集群技术及应用
- 企业信息集成技术及应用 (7.10)
- 2013
- 论面向对象建模方法的应用
- 论软件企业的软件过程改进
- 论企业业务流程优化
- 论信息系统的可靠性分析与设计 (19)
- 2012
- 论软件需求管理及其应用 (11.8)
- 论敏捷开发在企业软件开发中的应用 (8.3.4)
- 论信息化建设中的企业知识管理
- 论大数据处理技术及其应用
- 2011
- 论模型驱动的软件开发方法及其应用
- 论软件项目管理技术及其应用 (20)
- 论Web系统的测试技术及其应用
- 论联合需求计划在系统需求获取中的应用 (11.2.5)
- 2010
- 论软件维护及软件可维护性
- 论面向服务的企业应用集成技术及其应用 (7.3.3)
- 论快速应用开发在系统建模中的应用 (8.3.2)
- 论信息系统中的访问控制
- 2009
- 论软件项目质量管理及其应用 (20.6)
- 论企业服务总线技术及其在应用集成中的作用
- 论工作流管理技术在CIM系统协作中的应用
- 论政务流程的优化与再造
- 2008(下)
- 论基于场景的软件体系结构评估方法
- 论敏捷开发方法的应用 (8.3.4)
- 论SOA在企业信息化中的应用 (12.5)
- 论SaaS(So-ware-as-a-Service,软件即服务)的关键技术
- 2008(上)
- 论软件体系结构⻛格及其应用
- 论软件项目估算的过程与方法
- 论信息资源规划的需求分析 (11.3)
- 论P2P计算关键技术与应用
- 2007
- 论迭代式软件开发过程与方法
- 论工作流管理技术在BPR中的应用
- 论电子商务系统中的技术基础设施集成
- 论虚拟计算的应用
论文结构
- 摘要 (400)
- 项目介绍和主题介绍 (500-600)
- 项目介绍:应用背景、功能
- 担任角色:全面主持
- 存在问题及主题应用:主题方法、结果与成效
- 具体方法 (1300-1800)
- 总结:经验、感悟 (300-500)