系统架构设计师教程思维导图
2025-06-27 15:09:05 0 举报
AI智能生成
系统架构设计师教程内容导图
作者其他创作
大纲/内容
1.计算机与网络基础知识
操作系统基础知识
常见操作系统
Unix
发明者:美国贝尔实验室发明
多用户,多任务的分时操作系统
多用户,多任务的分时操作系统
windows
发明者:Microsoft公司
linux
芬兰赫尔辛基大学的学生linus torvalds利用互联网,发布了他在i386个人计算机上开发的linux系统内核的源代码,创建了具有全部unix特性的linux操作系统
支持多用户、多进程、多任务、实时性较好、功能稳定而强大的操作系统,也是目前运行硬件平台最广泛的操作系统
支持多用户、多进程、多任务、实时性较好、功能稳定而强大的操作系统,也是目前运行硬件平台最广泛的操作系统
数据库系统基础知识
概念
数据库(DataBase,DB)是指长期储存在计算机内的、有组织的、可共享的数据集合。
数据库系统(DataBase System, DBS)从广义上讲是由数据库、硬件、软件和人员组成,管理的对象是数据。
数据库管理系统(DataBase Management System, DBMS)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。 主要功能有数据定义、数据库操作、数据库运行管理、数据组织、存储和管理、数据库的建立与维护及其他功能。
DBMS通常分为三类:
关系数据库系统(Relation DataBase Systems, RDBS)
面向对象的数据库系统(Object-Oriented DataBase system, OODBS)、
对象关系数据库系 统(Object-Oriented Relation DataBase system, ORDBS)。
数据库系统采用三级模式结构,
数据库系统在三级模式间提供了两级映像:模式/内模式映像、外模式/模式映像来保证数据库中数据具有较高的逻辑独立性和物理独立性。
数据库(DataBase,DB)是指长期储存在计算机内的、有组织的、可共享的数据集合。
数据库系统(DataBase System, DBS)从广义上讲是由数据库、硬件、软件和人员组成,管理的对象是数据。
数据库管理系统(DataBase Management System, DBMS)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。 主要功能有数据定义、数据库操作、数据库运行管理、数据组织、存储和管理、数据库的建立与维护及其他功能。
DBMS通常分为三类:
关系数据库系统(Relation DataBase Systems, RDBS)
面向对象的数据库系统(Object-Oriented DataBase system, OODBS)、
对象关系数据库系 统(Object-Oriented Relation DataBase system, ORDBS)。
数据库系统采用三级模式结构,
数据库系统在三级模式间提供了两级映像:模式/内模式映像、外模式/模式映像来保证数据库中数据具有较高的逻辑独立性和物理独立性。
关系数据库基础
数据库的结构和模式
数据库结构的基础是数据模型,是用来描述数据的一组概念和定义。数据型的三要素是数据结构、数据操作以及数据的约束条件。常用的数据模型有概念数据模型、基本数据模型以及面向对象模型。
关系数据模型由关系数据结构、关系操作集合和关系完整性约束三大要素组成
关系数据模型由关系数据结构、关系操作集合和关系完整性约束三大要素组成
实体-联系(E-R)模型
概念模型中最常用的方法为实体-联系方法,简称E-R方法,主要概念有实体、联系和属性。该方法直接从现实世界中抽象出实体和实体间的联系。
特别需要指出的是,E-R 模型强调的是语义,与现实世界的问题密切相关。扩充的E-R 模型包括弱实体、特殊化、概括和集等。
特别需要指出的是,E-R 模型强调的是语义,与现实世界的问题密切相关。扩充的E-R 模型包括弱实体、特殊化、概括和集等。
数据的规范化
范式
1NF
简单来说就是属性不可分(1NF是对属性的原子性约束,要求属性具有原子性,不可再分解)。数据库表的每一列(也称为属性)都是不可分割的原子数据项,不能是集合,数组,记录等非原子数据项。实体中的某个属性有多个值时,必须拆分为不同的属性。在符合第一范式(1NF)表中的每个域值只能是实体的一个属性或一个属性的一部分。简而言之,第一范式就是无重复的域。
2NF
在满足第一范式(1NF)的基础上,每一个非码属性(不在主键中的列)都必须完全函数依赖于候选码。(2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性,更通俗的说法就是一个表必须有主键ID)。
3NF
在满足第二范式(2NF)的基础上,每个非主属性不依赖于其它非主属性(即在2NF基础上,消除非码属性对候选码的传递函数依赖。3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余)。
也就是说,任何非主属性都直接依赖于主属性,不能传递依赖于主属性。即表中的每一列只与主键直接相关,而不是间接相关(表中的每一列只能依赖于主键)。每一个非码属性既不部分依赖于码,也不传递依赖于码。
也就是说,任何非主属性都直接依赖于主属性,不能传递依赖于主属性。即表中的每一列只与主键直接相关,而不是间接相关(表中的每一列只能依赖于主键)。每一个非码属性既不部分依赖于码,也不传递依赖于码。
BCNF
巴斯-科德范式(BCNF,Boyce-Codd Normal Form)
某些特殊情况下,即使关系模式符合3NF的要求,仍然存在着插入异常,修改异常与删除异常的问题。BCNF由Boyce与Codd提出,通常被认为是修正的第三范式。
巴斯-科德范式即在满足第三范式(3NF)基础上,任何非主属性不能对主键子集依赖(即在3NF基础上,消除主属性对候选码的部分函数依赖和传递函数依赖)。
BC范式既检查非主属性,又检查主属性。当只检查非主属性时,就成了第三范式。满足BC范式的关系都必然满足第三范式。或者还可以换一种说法:若一个关系达到了第三范式,并且它只有一个候选码,或者它的每个候选码都是单属性,则该关系自然达到BC范式。
一般来说,一个数据库设计符合3NF或BCNF就可以了。
某些特殊情况下,即使关系模式符合3NF的要求,仍然存在着插入异常,修改异常与删除异常的问题。BCNF由Boyce与Codd提出,通常被认为是修正的第三范式。
巴斯-科德范式即在满足第三范式(3NF)基础上,任何非主属性不能对主键子集依赖(即在3NF基础上,消除主属性对候选码的部分函数依赖和传递函数依赖)。
BC范式既检查非主属性,又检查主属性。当只检查非主属性时,就成了第三范式。满足BC范式的关系都必然满足第三范式。或者还可以换一种说法:若一个关系达到了第三范式,并且它只有一个候选码,或者它的每个候选码都是单属性,则该关系自然达到BC范式。
一般来说,一个数据库设计符合3NF或BCNF就可以了。
4NF
多值依赖的概念:
多值依赖即属性之间的一对多关系,记为K→→A。
函数依赖事实上是单值依赖,所以不能表达属性值之间的一对多关系。
平凡的多值依赖:全集U=K+A,一个K可以对应于多个A,即K→→A。此时整个表就是一组一对多关系。
非平凡的多值依赖:全集U=K+A+B,一个K可以对应于多个A,也可以对应于多个B,A与B互相独立,即K→→A,K→→B。整个表有多组一对多关系,且有:“一”部分是相同的属性集合,“多”部分是互相独立的属性集合。
第四范式即在满足巴斯-科德范式(BCNF)的基础上,消除非平凡且非函数依赖的多值依赖(即把同一表内的多对多关系删除)。
多值依赖即属性之间的一对多关系,记为K→→A。
函数依赖事实上是单值依赖,所以不能表达属性值之间的一对多关系。
平凡的多值依赖:全集U=K+A,一个K可以对应于多个A,即K→→A。此时整个表就是一组一对多关系。
非平凡的多值依赖:全集U=K+A+B,一个K可以对应于多个A,也可以对应于多个B,A与B互相独立,即K→→A,K→→B。整个表有多组一对多关系,且有:“一”部分是相同的属性集合,“多”部分是互相独立的属性集合。
第四范式即在满足巴斯-科德范式(BCNF)的基础上,消除非平凡且非函数依赖的多值依赖(即把同一表内的多对多关系删除)。
5NF
即在满足第四范式(4NF)的基础上,消除不是由候选码所蕴含的连接依赖。如果关系模式R中的每一个连接依赖均由R的候选码所隐含,则称此关系模式符合第五范式。
函数依赖是多值依赖的一种特殊的情况,而多值依赖实际上是连接依赖的一种特殊情况。但连接依赖不像函数依赖和多值依赖可以由语义直接导出,而是在关系连接运算时才反映出来。存在连接依赖的关系模式仍可能遇到数据冗余及插入、修改、删除异常等问题。
函数依赖是多值依赖的一种特殊的情况,而多值依赖实际上是连接依赖的一种特殊情况。但连接依赖不像函数依赖和多值依赖可以由语义直接导出,而是在关系连接运算时才反映出来。存在连接依赖的关系模式仍可能遇到数据冗余及插入、修改、删除异常等问题。
事务管理
原子性
一致性
隔离性
持久性
并发控制
并发操作是指在多用户共享的系统中,用户可能同时对同一数据进行操作。并发操作带来的问题是数据的不一致,主要有丢失更新、不可重复读和读脏数据。其主要原因是事务的并发操作破坏了事务的隔离性。DBMS的并发控制子系统负贵协调并发事务的执行,保证数据库的完整性不受破坏,避免用户得到不正确的数据。并发控制的主要技术是封锁。封锁的类型有排他锁(简称X锁或写锁)和共享锁(简称 S 锁或读锁)。并发控制还与三级封锁协议、活锁与死锁、并发调度的可串行性、两段封锁协议、封锁的粒度、事务的嵌套等有关。
数据库的备份和恢复
备份数据
保护数据库的关键技术在于建立冗余数据,即备份数据。建立冗余数据的方法是进行数据转储和建立日志文件。
数据的转储分为静态转储和动态转储、海盘转储和增量转储。
数据的转储分为静态转储和动态转储、海盘转储和增量转储。
数据库恢复
如何在系统出现故障后能够及时使数据库恢复到故障前的正确状态,就是数据库恢复技术。
数据库的 4类故障是事务故障、系统故障、介质故障及计算机病毒。事务故障的恢复一般有两个操作:撤销事务(UNDO)和重做事务(REDO)。介质故障的恢复需要数据库管理员(DataBase Administrator,DBA)的参与,装入数据库的副本和日记文件副本,再由系统执行撤销和重做操作。在一个数据库系统中,这两种方法一般是同时采用的。为了避免磁盘介质出现故障影响数据库的可用性,许多 DBMS提供数据库镜像功能用于数据库恢复,数据库镜像是通过复制数据实现的,但频繁地复制数据会降低系统的运行效率,因此实际应用中往往只对关键的数据和日志文件镜像。
数据库的 4类故障是事务故障、系统故障、介质故障及计算机病毒。事务故障的恢复一般有两个操作:撤销事务(UNDO)和重做事务(REDO)。介质故障的恢复需要数据库管理员(DataBase Administrator,DBA)的参与,装入数据库的副本和日记文件副本,再由系统执行撤销和重做操作。在一个数据库系统中,这两种方法一般是同时采用的。为了避免磁盘介质出现故障影响数据库的可用性,许多 DBMS提供数据库镜像功能用于数据库恢复,数据库镜像是通过复制数据实现的,但频繁地复制数据会降低系统的运行效率,因此实际应用中往往只对关键的数据和日志文件镜像。
关系数据库设计
数据库设计特点
数据库设计的很多阶段都可以和软件工程的各阶段对应起来,数据库设计的特点有:
从数据结构即数据模型开始,并以数据模型为核心展开,这是数据库设计的一个主要特点:
静态结构设计与动态行为设计分离;
试探性;
反复性和多步性。
从数据结构即数据模型开始,并以数据模型为核心展开,这是数据库设计的一个主要特点:
静态结构设计与动态行为设计分离;
试探性;
反复性和多步性。
数据库设计的方法
直观设计法
规范设计法
计算机辅助设计法
自动化设计法
数据库设计的基本步骤
1.需求分析
需求分析阶段的任务是:对现实世界要处理的对象(组织、部门、企业等)进行详细调查,在了解现行系统的概况、确定新系统功能的过程中,收集支持系统目标的基础数据及其处理方法。需求分析是在用户调查的基础上,通过分析逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。在需求分析中,通过自顶向下、逐步分解的方法分析系统。分析的结果用数据流图(DataFlow Diagram,DFD)进行图形化的描述,并用一些规范的表格对数据分析结果和描述做补充,最后形成需求说明书。
2.概念结构设计
数据库概念结构设计是在需求分析的基础上,依照需求分析中的信息需求,对用户信息加以分类、聚集和概括,建立信息模型,并依照选定的数据库管理系统软件,把它们转换为数据的逻辑结构,再依照软硬件环境,最终实现数据的合理存储。这一过程也称为数据建模。
数据库概念结构设计的策略通常有自顶向下、自底向上、逐步扩张、混合策略,最常用的是自底向上策略。
设计数据库概念模型的最著名、最常用的方法是PPS.chen于1976年提出的“实体.联系方法”(Entity RelationshipApproach),简称E-R方法。采用 E-R方法的数据库概念结构设计可分为三步:设计局部 E-R模型、设计全局 E-R 模型以及全局 E-R 模型的优化。
数据库概念结构设计的策略通常有自顶向下、自底向上、逐步扩张、混合策略,最常用的是自底向上策略。
设计数据库概念模型的最著名、最常用的方法是PPS.chen于1976年提出的“实体.联系方法”(Entity RelationshipApproach),简称E-R方法。采用 E-R方法的数据库概念结构设计可分为三步:设计局部 E-R模型、设计全局 E-R 模型以及全局 E-R 模型的优化。
3.逻辑结构设计
逻辑结构设计是在概念结构设计基础上进行的数据模型设计,可以是层次、网状模型和关系模型。逻辑结构设计阶段的主要任务是确定数据模型、将 E-R图转换为指定的数据模型、确定完整性约束、确定用户视图。
4.物理结构设计
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构。数据库的物理结构设计是对已确定的数据库逻辑结构,利用DBMS所提供的方法、技术,以较优的存储结构和数据存取路径、合理的数据存放位置以及存储分配,设计出一个高效的、可实现的数据库物理结构。
一般来说,物理结构设计要做的工作有存储记录的格式设计、存储结构设计、存取方法设计和确定系统配置。
一般来说,物理结构设计要做的工作有存储记录的格式设计、存储结构设计、存取方法设计和确定系统配置。
5.应用程序设计
数据库应用系统开发是 DBMS的二次开发,一方面是对用户信息的存储,另一方面就是对用户处理要求的实现。
数据库应用程序设计要做的工作有选择设计方法、制定开发计划、选择系统架构、设计安全性策略。在应用程序设计阶段,设计方法有结构化设计方法和面向对象设计方法两种;安全性策略主要是指硬件平台、操作系统、数据库系统、网络及应用系统的安全。
数据库应用系统的实现是根据设计、由开发人员编写代码程序来完成的,包括数据库的操作程序和应用程序。作为关系数据库标准语言,SQL已经被大量的DBMS 系统所使用。
数据库应用程序设计要做的工作有选择设计方法、制定开发计划、选择系统架构、设计安全性策略。在应用程序设计阶段,设计方法有结构化设计方法和面向对象设计方法两种;安全性策略主要是指硬件平台、操作系统、数据库系统、网络及应用系统的安全。
数据库应用系统的实现是根据设计、由开发人员编写代码程序来完成的,包括数据库的操作程序和应用程序。作为关系数据库标准语言,SQL已经被大量的DBMS 系统所使用。
6.运行维护
数据库的正常运行和优化也是数据库设计的内容之一。
在数据库运行维护阶段要做的工作主要有数据库的转储和恢复,数据库的安全性和完整性控制,数据库性能的监督、分析和改造,数据库的重组和重构等。
在数据库运行维护阶段要做的工作主要有数据库的转储和恢复,数据库的安全性和完整性控制,数据库性能的监督、分析和改造,数据库的重组和重构等。
分布式数据库
分布式数据库概念
概念
分布式数据库系统(DistributedDatabaseSystem,DDBS)是针对地理上分散,而管理上又需要不同程度集中管理的需求而提出的一种数据管理信息系统。
特点
数据的集中控制性
数据独立性
数据冗余可控性
场地自治性
存取的有效性
完全分布式数据库系统
满足分布性、逻辑相关性、场地透明性和场地自治性的数据库系统被称为完全分布式数据库系统。
分布式数据库的体系结构
四层结构模式
全局外层
全局念层
局部念层
局部内层
同构型分布式数据库
异构型分布式数据库
分布式数据库的应用
分布式数据库的应用领域有分布式计算、Interet 应用、数据仓库、数据复制以及全球联网查询等,Sybase 公司的Replication Server 即是一种典型的分布式数据库系统。
商业智能
基本概念
商业智能(Business Intelligence,BI)是企业对商业数据的搜集、管理和分析的系统过程,目的是使企业的各级决策者获得知识或洞察力,帮助他们做出对企业更有利的决策。它是数据仓库、联机分析处理(OnlineAnalyticalProcessing,OLAP)和数据挖掘相关技术走向商业应用后形成的一种应用技术。商业智能系统主要实现将原始业务数据转换为企业决策信息的过程。它主要包括数据预处理、建立数据仓库、数据分析及数据展现4个主要阶段。一般认为数据仓库、联机分析处理和数据挖掘技术是商业智能的三大组成部分。
数据仓库
概念
著名的数据仓库专家WH.Inmon在Buildingte Data Warehouse一书中将数据仓库定义为:数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile),且随时间变化的(Time Variant)数据集合,支持管理部门的决策过程。
特性
面向主题
集成的
非易失的
时变的
结构
底层是数据仓库服务器
中间层是OLAP服务器
顶层是前端工具
图 2-12
实现方法
步骤
1.规划
2.需求研究
3.问题分析
4.数据的抽取洗集成装载
5.数据仓库设计
6.数据仓库管理
7.分析报表查询
8.数据仓库性能优化及数据仓库的部署发布
实现方法
自顶向下方法
自底向上方法
二者混合方法
多维分析海量数据分析器——OLAP
对于 TB 级的海量数据,联机分析处理 OLAP 利用多维的概念,提供了切片、切块、下钻、上卷和旋转等多维度分析与跨维度分析功能。
OLAP 系统架构主要分为基于关系数据库的ROLAP(Relationa1OLAP)、基于多维数据库的 MOLAP(Multidimensional OLAP)和基于混合数据组织的 HOLAP(HybridOLAP)三种。
OLAP 系统架构主要分为基于关系数据库的ROLAP(Relationa1OLAP)、基于多维数据库的 MOLAP(Multidimensional OLAP)和基于混合数据组织的 HOLAP(HybridOLAP)三种。
数据挖掘
功能
自动预测趋势和行为
关联分析
聚类
概念描述
偏差检测
常用技术
关联分析
序列分析
分类分析
聚类分析
预测
时间序列分析
流程
1.确定挖掘对象
2.准备数据
3.建立模型
4.数据挖掘
5.结果分析
6.知识应用
应用
热点
空间数据库的挖掘
多媒体数据库的挖掘
时序数据和序列数据的挖掘
文本数据库的挖掘
Web 挖掘
应用领域
生物医学和 DNA 的数据挖掘
金融业中的数据挖掘
零售业中的数据挖掘
电信业中的数据挖掘
视频和音频数据挖掘
科学和统计数据挖掘
常见的数据库管理系统
Oracle
IBM DB2
Sybase
Microsoft SQL Server
计算机网络基础知识
网络概述
计算机网络是指利用通信设备和线路将地理位置分散的、功能独立的计算机系统或由计算机控制的外部设备连接起来,在网络操作系统的控制下,按照约定的通信协议进行信息交换、实现资源共享的系统。
分类
按通信距离
广域网(WAN)
局域网(LAN)
城域网(MAN)
按信息交换方式
电路交换网
分组交换网
综合交换网
按网络拓扑结构
星形网
树形网
环形网
总线网
按通信介质
双绞线网
同轴电缆网
光纤网
卫星网等
按传输带宽
基带网
宽带网
按使用范围
公用网
专用网
按速率
高速网
中速网
低速网
按通信传播方式
广播式
点到点式
按使用方式
校园网
企业网
按连接范围
内联网
外联网
按网络提供的服务
通信网
信息网
开放系统互联参考模型
概念
开放系统互连参考模型(OSI /RM)
组成
网络结点
通信链路
功能
数据通信
资源共享
负载均衡
高可靠性
OSI协议集
计算机网络
广域网、局域网、城域网
广域网(远程网)
概念
广域网又称远程网,它是指覆盖范围广,传输速率相对较低,以数据通信为主要目的的数据通信网。
特点
分布范围广
数据传输率低
数据传输可靠性随着传输介质的不同而不同
扑结构复杂
应用
公共交换电话网
各种公用数据网(包括分组交换网、帧中继网、ATM 网、移动通信网等)
使用协议
PPP(点对点协议)
DDN、ISDN(综合业务数字网)
FR(中继)和ATM(步传输模式)等
局域网
概念
局域网是指传输距离有限,传输速度较高,以共享网络资源为目的的网络系统
特点
分布范围有限
有较高的通信带宽
数据传输率高
数据传输可靠误码率低
通常采用同轴电缆或双绞线作为传输介质
拓扑结构简单简洁
网络的控制一般为分布式
通常被单一组织所拥有和使用
拓扑结构
总线拓扑
环型拓扑
星形拓扑以及它们的混合型
国际标准
IEEE802 标准
无线局域网
概念
优点
安装便捷
使用灵活
经济节约
实现
无线局域网可以在普通局域网基础上通过无线 Hub、无线接入站(AP)、无线网桥、无线 Modem 及无线网卡等来实现,其中以无线网卡最为普遍,使用最多
无线局域网在室外主要有以下几种结构
点对点型
点对多点型
多点对点型和混合型
城域网
概念
城域网是规模介于局域网和广域网之间的一种较大范围的高速网络,一般覆盖临近的多个单位和城市,从而为接入网络的企业、机关、公司及社会单位提供文字、声音和图像的集成服务
国际标准
IEEE802 标准
网络拓扑结构
概念
网络拓扑结构是指网络中通信线路和节点的几何排序,用以表示整个网络的结构外貌,反映各节点之间的结构关系。
作用
它影响着整个网络的设计、功能、可靠性和通信费用等重要方面。
常用的网络拓扑结构
总线型
星型
环型
树型
分布式结构等
网络互联
目的
网络互连目的是使一个网络的用户能访问其他网络的资源,使不同网络上用户能够互相通信和交换信息,实现更大范围的资源共享。在网络互连时,一般不能简单地直接相连而通过一个中间设备来实现。
作用
连接不同的网络,网络互联设备可以根据它们工作的协议层进行分类:中继器(repeater)、网桥(bridge)、路由器(router)、网关(gateway)和交换机等
Internet 及应用
概念
Intermet,又称因特网,是世界上规模最大、覆盖面最广且最具影响力的计算机互联网络,它将分布在世界各地的计算机利用开放系统互联协议连接在一起,用来进行数据传输、信息交换和资源共享。
用户接入因特网的方式
终端方式
SLIP/PPP方式
专线方式(DDN、FR、ISDN专线、网络电缆直连)
代理服务器方式等
TCP/IP(Transmission Control Protocol /Internet Protocol)
TCP/IP(Transmission Control Protocol /Internet Protocol)作为 Internet 的核心协议,已被广泛应用于局域网和广域网中,TCP/IP的主要特性为逻辑编址、路由选择、域名解析、错误检测和流量控制以及对应用程序的支持等。TCP/IP 是个协议族,它包含多种协议。ISO/OSI模型与TCPIIP 模型的对比如表 2-3所示。
地址书写形式
域名格式
WWW(World Wide Web),也称万维网或全球网,是指在因特网上以超文本为基础形成的信息网。它采用统一的资源定位器(UniformResource Locator,URL)和图文声并茂的用户界面,可以方便地测览Intermet上的信息和利用各种网络服务。互联网常用的服务包括:域名服务(DomainNameSerVer,DNS)、WWW服务、E-mail电子邮件服务、FTP 文件传输服务、Telnet远程登录服务、Gopher等等。
常用服务
域名服务(DomainNameSerVer,DNS)
WWW服务
E-mail电子邮件服务
FTP 文件传输服务
Telnet远程登录服务
Gopher等等
IP格式
现在的IP协议版本号为4,也称为IPv4,新的IP协议为IPv6,IPv6将彻底解决IP地址缺乏的问题
在用协议
IPv4
IPv6
网络管理和网络安全
网络管理
网络管理是对计算机网络的配置、运行状态和计费等进行的管理。它提供了监控协调和测试各种网络资源以及网络运行状况的手段,还可提供安全字处理和计费等功能在 OSI网络管理标准中定义了网络管理的五大基本功能:配置管理、性能管理、故障管理、安全管理和计费管理。事实上,网络管理还应该包括其他一些功能,如网络规划、网络操作人员的管理等。
计算机网络安全
概念
计算机网络安全是指计算机、网络系统的硬件、软件以及系统中的数据受到保护不因偶然的或恶意的原因而遭到破坏、更改、泄露,确保系统能连续和可靠地运行,使网络服务不中断
网络安全
概念
信息安全是在分布式计算环境中对信息的传输、存储、访问提供安全保护,以防止信息被窃取、改和非法操作。
网络安全从本质上讲就是网络上的信息安全。
网络安全从本质上讲就是网络上的信息安全。
基本要素
保密性
完整性
可用性
真实性
可控性
完整的信息安全保障体系包括四个方面
保护
检测
响应
恢复
信息安全术语
密码学
鉴别
Kerberos 鉴别
公钥基础设施
数字签名
访问控制
网络威胁
概念
是对网络安全缺陷的潜在利用,这些缺陷可能导致非授权访问、信息泄露、资源耗尽、资源被盗或者被破坏等。
种类
窃听
假冒
重放
流量分析
数据完整性破坏
拒绝服务
资源的非授权使用
陷门和特洛伊木马
病毒
诽谤等
网络安全漏洞
通常,入侵者首先寻找网络存在的安全弱点,然后从缺口处无声无息地进入网络。因而开发黑客反击武器的思想是找出现行网络中的安全弱点,演示、测试这些安全漏洞,然后指出应如何堵住安全漏洞。当前,信息系统的安全性非常弱,主要体现在操作系统、计算机网络和数据库管理系统都存在安全隐患,这些安全隐患表现在:物理安全性、软件安全漏洞、不兼容使用安全漏洞、选择合适的安全哲理。
网络攻击
网络攻击是指所有非授权行为
攻击的范围从简单的使服务器无法提供正常的服务到完全破坏或控制服务器。在网络上成功实施的攻击级别依赖于用户采取的安全措施。
分类
被动攻击
主动攻击
物理临近攻击
内部人员攻击
分发攻击
网络安全措施
数据加密
数字签名
身份认证
防火墙
入侵检测等
VPN(VirtualPrivate Network,VPN)
概念
所谓虚拟专用网(VirtualPrivate Network,VPN)是建立在公用网上的、由某一组织或某一群用户专用的通信网络,其虚拟性表现在任意一对VPN 用户之间没有专用的物理连接,而是通过(Internet ServicesProvider,ISP)提供的公用网络来实现通信;其专用性表现在 VPN 之外的用户无法访问 VPN 内部的网络资源,VPN 内部用户之间可以实现安全通信。这里讲的 VPN 是指在 Intermet 上建立的、由用户(组织或个人)自行管理的 VPN,而不涉及一般电信网中的 VPN。
实现 VPN的关键技术
隧道技术(Tunneling)
加解密技术(Encryption&Decryption)
密钥管理技术(KeyManagement)
身份认证技术(Authentication)
VPN 的解决方案
内联网VPN(IntranetVPN)
外联网 VPN(Extranet VPN)
远程接入 VPN(Access VPN)
网络工程
网络工程是根据用户单位的需求及具体情况,结合现时网络技术的发展水平及产品化程序,经过充分需求分析和市场调研,从而确定网络建设方案,依据方案有步骤、有计划实施的网络建设活动。
阶段划分
1.网络规划和网络设计阶段
2.工程组织和实施阶段
3.系统运行维护阶段
存储及负载均衡技术
RAID 技术
概念
RAID(Redundant Array of Inexpensive Disks,磁盘阵列)是一种由多块廉价磁盘构成的冗余阵列。
使用磁盘阵列的目
建立数据冗余
增强容错
提高容量
增进性能
RAID 技术主要包含 RAID 0~RAID 7等规范,以及复合 RAID 模式 RAID 0+1、5+1等。在 RAID 家族里,RAIDO和RAID1在个人电脑上得到了广泛的应用。
硬件 RAID 的实现
硬件 RAID 的实现:一般使用 SCSI或者 IDE/ATA 作为硬盘系统的接口。硬件 RAID实现分为两种:一种是内置(或集成)RAID控制器,一种是外置RADD控制器。软件 RAID 的实现:除了使用 RAID 卡或者主板所带的芯片实现磁盘阵列外,在一些操作系统中可以直接利用软件方式实现RAID 功能,例如在 Windows 2000/XP 中就已经内置了RAID功能,Linux用Raidtools来实现RAID功能。
网络存储技术
网络存储采用面向网络的存储体系结构,使数据处理和数据存储分离,由专门的系统负责数据处理,存储设备或子系统负责数据的存储。网络存储结构通过网络连接服务器和存储资源,具有灵活的网络寻址能力和远距离数据传输能力,实现了在一个或多个位置简单而可靠的数据存储、恢复和不同主机不同存储设备之间的资源共享。
网络存储体系结构
直连式存储(DirectAttachedStorage,DAS)
网络连接存储(NetworkAttachedStorage,NAS)
存储区域存储(Storage Area Network,SAN)
负载均衡技术
概念
负载均衡(Load Balance)是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。
负载均衡是在现有的网络结构的基础上,通过扩展网络设备和服务器的带宽,来加吞吐量,提升网络的数据处理能力,提高网络的灵活性、可靠性、可用性和可维护性最终目的是加快服务器的响应速度,从而提高用户的体验度。
作用
增加吞吐量
提升网络数据处理能力
提高网络灵活性、可靠性、可用性、可维护性
目的
加快服务器的响应速度,提高用户体验度
负载均衡从结构分类
本地负载均衡(LocalServerLoad Balance)
全局负载均衡Global Server Load Balance).
负载均衡的实现方法有两种
1.把大量的并发访问或数据流量分配到多个设备上分别处理,以减少用户等待响应的时间
2.将单个的重负载的运算分摊到多个设备上做并行处理,再将每个设备的运行结果汇总后返回给用户
常用的负载均衡技术
操作系统自带的负载均衡服务
基于特定服务器软件的负载均衡
基于 DNS 的负载均衡
反向代理负载均衡
基于 NAT 的负载均衡技术
服务器集群技术
集群(Custer)
集群(Custer)是一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理。此单一系统为客户端提供高可靠性的服务,并大幅提高了服务器的安金性
一个Cluster 包含多台(至少二台)拥有共享数据存储空间的服务器,任何一台服务器在运行一个应用时,应用数据被存储在共享的数据空间内。每台服务器的操作系统和应用程序文件存储在各自的本地存储空间上。
大多数模式下,集群中所有的计算机拥有一个共同的名称;各节点服务器通过一内部局域网相互通讯,集群内任一系统上运行的服务都可被所有的网络客户所使用,当一台节点服务器发生故障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管,客户也能很快地自动地连接到新的应用服务器上。
大多数模式下,集群中所有的计算机拥有一个共同的名称;各节点服务器通过一内部局域网相互通讯,集群内任一系统上运行的服务都可被所有的网络客户所使用,当一台节点服务器发生故障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管,客户也能很快地自动地连接到新的应用服务器上。
多媒体技术及其应用
多媒体技术基本概念
媒体
概念
媒体是指承载信息的载体,又称媒介。媒体有两种含义:一是表示信息的载体,如文本、图形、图像、动画、音频和视频等;二是存储信息的实体,如纸张、磁盘、光盘和半导体存储器等。
种类
感觉媒体
感觉媒体(Perception Medium)是指人们接触信息的感觉形式,如视觉、听觉、触觉、嗅觉和味觉等。
表示媒体
表示媒体(Representation Medium)是指信息的表示形式,如文字、图形、图像动画、音频和视频等。
显示媒体
显示媒体(Presentation Medium)是表现和获取信息的物理设备。如输入显示媒体
键盘、鼠标器和麦克风等;输出显示媒体显示器、打印机和音箱等。
存储媒体
存储媒体(Storage Medium)是存储数据的物理设备,如磁盘、光盘和内存等
传输媒体
传输媒体(Transmission Medium)是指传输数据的物理载体,如电缆、光缆和交换设备等。
多媒体
多媒体是数字、文字、声音、图形、图像和动画等各种媒体的有机组合,并与先进的计算机、通信和广播电视技术相结合,形成一个可组织、存储、操纵和控制多媒体信息的集成环境和交互系统。由此可见,“多媒体”这个术语既指信息表示媒体的多样化又包括了传播、处理和使用多媒体的各种技术和方法。
多媒体技术
概念
多媒体技术是指以数字化为基础,能够对多种媒体信息进行采集、编码、存储、传输、处理和表现,综合处理多种媒体信息并使之建立起有机的逻辑联系,集成为一个系统并能具有良好交互性的技术。
多媒体媒体元素
概念
多媒体媒体元素是指多媒体应用中可显示给用户的媒体形式。
常见的媒体元素
文本
图形
图像
声音
动画
视频图像等
多媒体技术包括
计算机技术
视听技术
通信技术
特征
多样性
集成性
交互性
实时性
多媒体计算机
多媒体计算机(Multimedia Persona Computer,MPC)是指能够综合处理多种媒体信息的计算机。也即:
MPC=PC+CD-ROM+声卡十显示卡十多媒体操作系统
多媒体数据压缩解码技术
多媒体数据压缩编码的国际标准
静态图像压缩编码的国际标准
JPEG(Joint Photographic Experts Group,联合图像专家小组标准)是一种对静态图像压缩的编码算法。“联合”的含义是:国际电报电话咨询委员会(Consultative Committeeon Intermational Telephone and Telegraph,CCITT)和国际标准化协会联合组成的图像专家小组。静态图像压缩标准有JPEG、IPEG2000。
运动图像压缩标准
MPEG(Moving Picture ExpertsGroup,运动图像专家组)是专门制定多媒体领域内的国际标准的一个组织,该组织成立于1988年,由全世界大约 300名多媒体技术专家组成。MPEG 标准是面向运动图像压缩的一个系列标准。目前有MPEG-1、MPEG-2、MPEG-4、MPEG-7、MPEG-21、DVI.
MPEG的优势
很好的兼容性
比其他算法提供更好的压缩比,最高可达200:1
提供高压缩比的同时,对数据的损失很小
不存在专利权的问题
多媒体数据压缩方法的分类
无损压缩编码法(LosslessCompression Coding),也称冗余压缩法或编码法
有损压缩编码法(LossCompression Coding),也称为熵压缩法
多媒体系统的组成
多媒体硬件
多媒体硬件系统由主机、多媒体外部设备接口卡和多媒体外部设备构成。多媒体计算机的主机可以是大/中型计算机,也可以是工作站,用得最多的是微机。多媒体外部设备接口卡根据获取、编辑音频、视频的需要插接在计算机上。常用的有声卡、视频压缩卡、VGA/TV 转换卡、视频捕捉卡、视频播放卡和光盘接口卡等。多媒体外部设备十分丰富,按功能分为视频/音频输入设备、视频/音频输出设备人机交互设备、数据存储设备4类。视频/音频输入设备包括摄像机、录像机、影碟机扫描仪、话简、录音机、激光唱盘和 MIDI合成器等;视频/音频输出设备包括显示器、电视机、投影电视、扬声器和立体声耳机等;人机交互设备包括键盘、标、触摸屏和光笔等;数据存储设备包括 CD-ROM、磁盘、打印机和可擦写光盘等。
多媒体软件(核心)
分类
系统软件
应用软件
系统软件是多媒体系统的核心,它不仅具有综合使用各种媒体、灵活调度多媒体数据进行媒体的传输和处理的能力,而且要控制各种媒体硬件设备协调地工作。多媒体系统软件主要包括多媒体操作系统、媒体素材制作软件及多媒体函数库、多媒体创作工具与开发环境、多媒体外部设备驱动软件和驱动器接口程序等,如下。
。多媒体素材制作工具软件。
。文字特效制作软件:MSWord(艺术字)、UleadCOOL3D。
音频处理软件:Syntrillium Cooledit、TwelveTone Cakewalk。
图形与图像处理软件:CoreIDRAW、AdobePhotoshop、Ulead Photolmpact。
动画制作软件:MacromediaFlashMX、Discreet 3dsmax、Alias/Wavefront Maya。
视频编辑软件:AdobePremiere、UleadMediaStudio。
多媒体著作工具软件:MicrosofPowerPoint、MicrosofFrontPage、Macromedia
Authorware、acromedia Director.多媒体编程语言:VB、VC++、Delphi。应用软件是在多媒体创作平台上设计开发的面向应用领域的软件系统,通常由应用领域的专家和多媒体开发人员共同协作、配合完成的多媒体应用系统和多媒体产品。例如,教育软件、电子图书等。
。多媒体素材制作工具软件。
。文字特效制作软件:MSWord(艺术字)、UleadCOOL3D。
音频处理软件:Syntrillium Cooledit、TwelveTone Cakewalk。
图形与图像处理软件:CoreIDRAW、AdobePhotoshop、Ulead Photolmpact。
动画制作软件:MacromediaFlashMX、Discreet 3dsmax、Alias/Wavefront Maya。
视频编辑软件:AdobePremiere、UleadMediaStudio。
多媒体著作工具软件:MicrosofPowerPoint、MicrosofFrontPage、Macromedia
Authorware、acromedia Director.多媒体编程语言:VB、VC++、Delphi。应用软件是在多媒体创作平台上设计开发的面向应用领域的软件系统,通常由应用领域的专家和多媒体开发人员共同协作、配合完成的多媒体应用系统和多媒体产品。例如,教育软件、电子图书等。
多媒体技术的研究内容
数据压缩
在多媒体系统中,由于涉及的各种媒体信息主要是非常规数据类型,如图形、图像、视频和音频等,这些数据所需要的存储空间是十分巨大和惊人的。为了使多媒体技术达到实用水平,除了采用新技术手段增加存储空间和通信带宽外,对数据进行有效压缩将是多媒体发展中必须要解决的最关键的技术之一。
数据的组织和管理
数据量大,种类繁多,关系复杂是多媒体数据的基本特征。面向对象数据库(ObiectOriented Data Base,OODB)和多媒体数据库结合超媒体(hypermedia)技术的应用,为多媒体信息的建模、组织和管理提供了有效的方法。
多媒体信息的展现与交互
在多媒体环境下,各种媒体并存,视觉、听觉、触觉、味觉和嗅觉媒体信息的综合与合成,各种媒体的时空安排和效应,相互之间的同步和合成效果,相互作用的解释和描述等都是多媒体领域需要研究和解决的问题。
多媒体通讯和分布处理
多媒体通信对多媒体产业的发展、普及和应用有着举足轻重的作用,构成了整个产业发展的关键和瓶颈。还需要优化现有的电话网、广播电视网和计算机网络,以使其传输性能能较好地满足多媒体数据数字化通信的需求。
多媒体的分布处理是一个十分重要的研究课题。因为要想广泛地实现信息共享,计算机网及其在网络上的分布式与协作操作就不可避免。多媒体空间的合理分布和有效的协作操作将缩小个体与群体、局部与全球的工作差距。超越时空限制,充分利用信息,协同合作,相互交流,节约时间和经费等是多媒体信息分布的基本目标。
多媒体的分布处理是一个十分重要的研究课题。因为要想广泛地实现信息共享,计算机网及其在网络上的分布式与协作操作就不可避免。多媒体空间的合理分布和有效的协作操作将缩小个体与群体、局部与全球的工作差距。超越时空限制,充分利用信息,协同合作,相互交流,节约时间和经费等是多媒体信息分布的基本目标。
虚拟现实技术
所谓虚拟现实,就是采用计算机技术生成一个逼真的视觉、听觉、触觉及味觉等感官世界,用户可以直接用人的技能和智慧对这个生成的虚拟实体进行考察和操纵。这个概念包含三层含义:首先,虚拟现实是用计算机生成的一个逼真的实体,“逼真”就是要达到三维视觉、听觉和触觉等效果;其次,用户可以通过人的感官与这个环境进行交互;最后,虚拟现实往往要借助一些三维传感技术为用户提供一个逼真的操作环境。虚拟现实是一种多技术多学科相互渗透和集成的技术,研究难度非常大。但由于它是多媒体应用的高级境界,且应用前景远大,而且某些方面的应用甚至远远地超过了这种技术本身的研究价值。
智能多媒体技术
将具有推理功能的知识库与多媒体数据库结合起来,形成智能多媒体数据库。智能多媒体数据库另一个重要研究课题是多媒体数据库基于内容检索技术,它需要把人工智能领域中的高维空间的搜索技术、视音频信息的特征抽取和识别技术、视音频信息的语义抽取问题以及知识工程中的学习、挖掘及推理等问题应用到基于内容的检索技术中。
把多媒体信息实时处理和压缩编码算法集成到 CPU 芯片中
计算机产业的发展趋势应该是把多媒体和通讯的功能集成到 CPU芯片中,过去计算机结构设计较多地考虑计算功能,主要用于数学运算及数值处理,随着多媒体技术和网络通讯技术的发展,需要计算机具有综合处理声、文、图信息及通讯的功能。其一,是以多媒体和通讯功能为主,融合 CPU 芯片原有的计算功能,它的设计目标是用在多媒体专用设备、家电及宽带通讯设备,可以取代这些设备中的 CPU 及大量 Asic 和其他芯片。其二,是以通用 CPU计算功能为主,融合多媒体和通讯功能,它们的设计目标是与现有的计算机系列兼容,同时具有多媒体和通讯功能,主要用在多媒体计算机中。
多媒体技术应用领域
办公自动化
多媒体技术的出现为办公室增加了控制信息的能力和充分表达思想的机会,许多应用程序都是为提高办公人员的工作效率而设计的,从而产生了许多新型的办公自动化系统。由于采用了先进的数字影像和多媒体计算机技术,把文件扫描仪、图文传真机、文件资料微缩系统和通信网络等现代化办公设备综合管理起来,构成了全新的办公自动化系统。
电子出版物
电子出版物是指以数字代码方式将图、文、声、像等信息存储在磁、光、电介质上,通过计算机或类似设备阅读使用,并可复制发行的大众传播媒体。电子出版物的内容可分为电子图书、手册、文档、报刊杂志、教育培训、娱乐游戏、宜传广告、信息咨询和简报等,许多作品是多种类型的组合。多媒体电子出版物是计算机多媒体技术与文化、文艺、教育等多种学科相结合的产物。
多媒体通讯
随着网络的发展,电子邮件已被普遍采用。而包括声、文、图在内的多媒体邮件更受到用户的普遍欢迎,在此基础上发展起来的可视电话、视频会议系统、数字家电(电话、电视、传真、音响)和远程医疗系统为人类提供了全新的服务方式。多媒体通信有着极其广泛的内容,信息点播(InformationDemand)和计算机协同工作(Computer Supported Cooperative Work,CSCW)系统对人类生活、学习和工作产生了深刻的影响。
教育和培训
以多媒体计算机为核心的现代教育技术使教学手段和方法丰富多彩,使计算机教学如虎添翼。多媒体教学不仅使学生获得生动的学习环境,而且使教师拥有高水平、高质量的教学环境。
正是因为多媒体教育对于促进教学思想、教学内容和教学手段的改革,实现多元化主体化和社会化,全面提高教学质量有着重大的意义,网络课程、虚拟课堂、虚拟实验室、数字图书馆、多媒体技能培训系统等多媒体教育产品已广泛用于初、中级基础教育,高等教育及职业培训等方面。
商业与咨询
各类商家将各种服务指南存放于多媒体系统中向公众展示、推介和咨询的有多媒体商业简报、产品演示、查询服务等。
军事与娱乐
将多媒体技术应用于军事和娱乐的有军事遥感、核武器模拟、战场模拟、CD、MIDI、VCD、DVD、游戏等。
系统性能
性能指标
概念
性能指标,是软、硬件的性能指标的集成。在硬件中,包括计算机、各种通信交换设备、各类网络设备等;在软件中,包括操作系统、协议以及应用程序等。
计算机
对计算机评价的主要性能指标有时钟频率(主频)、运算速度、运算精度、内存的存储容量、存储器的存取周期、数据处理速率(ProcessingDataRate,PDR);吞吐率、各种响应时间、各种利用率、RASIS特性,即可靠性(Reliability)、可用性(Availability)、可维护性(Sericeability)、完整性和安全性(Integraity and Security);平均故障响应时间、兼容性、可扩充性、性能价格比。
路由器
对路由器评价的主要性能指标有设备吞吐量、端口吞吐量、全双工线速转发能力、背靠背帧数、路由表能力、背板能力、丢包率、时延、时延抖动、VPN 支持能力、内部时钟精度、队列管理机制、端口硬件队列数、分类业务带宽保证、RSVP、IPDifServ、CAR 支持、冗余、热插拔组件、路由器冗余协议、网管、基于 Web 的管理、网管类型、带外网管支持、网管粒度、计费能力/协议、分组语音支持方式、协议支持、语音压缩能力、端口密度、信令支持。
交换机
对交换机评价所依据的性能有交换机类型、配置、支持的网络类型、最大 ATM 端口数、最大 SONET 端口数、最大 FDDI端口数、背板吞吐量、缓冲区大小、最大 MAC地址表大小、最大电源数、支持协议和标准、路由信息协议(RIP)、RIP2、开放式最短路径优先第2版、边界网关协议(BGP)、无类别域间路由(CIDR)、互联网成组管理协议(IGMP)、距离矢量多播路由协议(DVMRP)、开放式最短路径优先多播路由协议(MOSPF)、协议无关的多播协议(PM)、资源预图协议(RSVP)、802.1p优先级标记多队列、路由、支持第3层交换、支持多层(4到7层交换、支持多协议路由、支持路由缓存、可支持最大路由表数、VLAN、最大 VLAN 数量、网管、支持网管类型、支持端口镜像、QoS、支持基于策略的第2层交换、每端口最大优先级队列数、支持基于策略的第3层交换、支持基于策略的应用级 QoS、支持最小/最大带宽分配、冗余、热交换组件(管理卡,交换结构,接口模块,电源,冷却系统、支持端口链路聚集协议、负载均衡。
网络
评价网络的性能指标有设备级性能指标、网络级性能指标、应用级性能指标、用户级性能指标、吞吐量。
操作系统
评价操作系统的性能指标有系统的可靠性、系统的吞吐率(量)、系统响应时间、系统资源利用率、可移植性。
数据库管理系统
衡量数据库管理系统的主要性能指标包括数据库本身和管理系统两部分,有数据库的大小、数据库中表的数量、单个表的大小、表中允许的记录(行)数量、单个记录(行)的大小、表上所允许的索引数量、数据库所允许的索引数量、最大并发事务处理能力、负载均衡能力、最大连接数等等。
Web 服务器
评价 Web 服务器的主要性能指标有最大并发连接数、响应延迟、吞吐量。
性能计算
性能指标计算的主要方法有定义法、公式法、程序检测法和仪器检测法。常用的性能指标的计算过程(MillionsofInstructionsPerSecond,MIPS)的计算方法、峰值计算、等效指令速度(吉普森(Gibson)法)。在实际应用中,往往是对这些常用性能指标的复合计算,然后通过算法加权处理得到最终结果。
性能设计
性能调整
阿姆达尔解决方案
性能评估
基准测试程序
web服务器的性能评估
评估方法
基准性能测试
压力测试
可靠性测试
性能指标
最大并发连接数
响应延迟
吞吐量等
系统监视
方法
系统本身提供命令
通过系统记录文件查看指定时间内运行状态
集成命令、文件记录和可视化技术
2.信息系统基础知识
信息化概述
信息的定义
信息是对客观事物变化和特征的反映,是客观事物之间相互作用和联系的表征,是客观事物经过感知或认识后的再现。
信息的特征
客观性
信息反映了客观事物的运动状态和方式。客观性也即事实性,不符合事实的信息不仅没有价值,而且可能有副作用。
普遍性
:物质的普遍性决定了信息的普遍存在,因而信息无所不在。
无限性
由于一切事物运动的状态和方式都是信息,而事物及其变化是无限多样的,因而信息是无限的。
动态性
信息是随着时间的变化而变化,因而是动态的,
依附性
信息是客观世界的反映,因而要依附于一定的载体而存在,需要有物质的承担者。信息不能完全脱离物质而独立存在。
变换性
信息是可变换的,它可以用不同的载体以不同的方法来负载。
传递性
信息可以在时间上或空间上从一点传递到另一点。信息在时间上的传递即是存储,在空间上的传递即是转移或扩散。
层次性
客观世界是分层次的,反映它的信息也是分层次的。信息可分为战略级、管理级和操作级。
系统性
信息可以表示为一种集合,不同类别的信息可以形成不同的整体。因而,可以形成与现实世界相对应的信息系统。
信息化的定义
所谓信息化是指在国家宏观信息政策指导下,通过信息技术开发、信息产业的发展、信息人才的配置,最大限度地利用信息资源以满足全社会的信息需求,从而加速社会各个领域的共同发展以推进信息社会的过程。
本质
信息化应该是以信息资源开发利用为核心,以网络技术、通讯技术等高科技技术为依托的一种新技术扩散的过程。
主体
信息化的主体是全体社会成员,包括政府、企业、事业、团体和个人:它的时域是一个长期的过程;它的空域是经济和社会的一切领域;它的手段是基于现代信息技术的先进社会生产工具:它的途径是创建信息时代的先进生产力,推动社会生产关系及社会上层建筑的改革;它的目标是使国家的综合实力、社会的文明素质和人民的生活质量全面达到现代化水平。
信息化的内容
从新计划建设角度出发
六要素
信息资源的开发利用
信息资源开发利用
需要解决的问题
需要解决的问题
原始信息的采集
使存在的信息在给定的时间内获得
使用户获得真正需要的信息
信息网络的全面覆盖
信息网络
信息网络是信息资源开发,利用的基础设施,使信息传输、交换和共享的必要手段
信息网络在国家信息化的过程中将逐步实现三网融合,并最终做到三网合一
信息技术的广泛应用(重要要素)
信息化的基础
把信息技术广泛应用于经济和社会各个领域,这是信息化的基础
信息技术应用是国家信息化中十分重要的要素,它直接反映了效率、效果和效益
信息产业的大力发展(信息化物质基础)
国家信息化只有在产品和技术方面拥有雄厚的自主知识产权,才能提高综合国力
信息化人才的培养
信息化政策法规和标准规范建设
信息化政策法规和标准规范是国家信息化快速、有效、健康和持续发展的保障,主要包含了电子商务交易、知识产权保护、信息资源管理、网络安全、信息管理和安全认证等法规标准。
信息化的经济社会意义
信息化促进全球化的发展
信息化极大促进了经济增长
信息化引发社会生活全面变革
信息化对国际关系产生了深刻影响
信息化对组织的意义
组织的结构创新
卒子的管理创新
组织的经营创新
造就信息化的人才队伍
信息化的需求
组织信息化需求的层次性
战略需求
运作需求
技术需求
组织信息化需求的系统性
信息化战略
《2006-2020年国家信息化发展战略》
九大战略重点
推进国家经济信息化
推进电子政务
建设先进网络文化
推进社会信息化
完善综合信息基础设施
加强信息资源的开发利用
提高信息产业竞争力
建设国家信息安全保障体系
提高国民信息技术应用能力,造就信息化人才队伍
战略目标
综合信息基础设施基本普及,信息技术自主创新能力显著增强、信息产业结果全面优化,国家信息安全保障水平大幅提高,国家经济和社会信息化取得明显成效,新型工业化发展模式初步确立,国家信息化发展的制度环境和政策体系基本完善,国家信息技术应用能力显著提高,为迈向信息社会尊定坚实基础。
信息系统工程总体规划
信息系统工程总体规划的目标范围
创造性分析
对现存问题采用新的方法进行调查分析。
批判性分析
毫无偏见地仔细询问系统中各组成部分是否有效益或效率,是否应建立新的关系,是否已超越手工作业系统的自动化:询问用户的陈述和假设,选择合理的解决方法:查消及分析有冲突的目标和发展方向。
信息系统工程总体规划的方法论
关键成功因素法
战略目标集转化法
企业系统规划法
信息系统成功总体规划的软件架构组成
文件服务器架构
基于局域网,服务器仅仅装载数据层,系统应用的其它层都在客户端实现
典型的客户/服务器两层架构
数据和数据处理在服务器,应用领域、表现逻辑和表现层访客户端
客户/服务器N层架构
客户端和服务器端之间加入一层或者多层引用服务程序(应用服务器)
基于web的架构
基于web的架构是松散耦合的
能够在不同的网络及操作系统中运行,并能方便的扩充到相关企业和追踪用户
把数据表现层逻辑从客户端分离出来部署在web服务器上,应用事务逻辑部署在应用服务器上,数据处理逻辑和数据本身部署在数据服务器上
以服务器为中心,客户端瘦小、简单,容易在运行时实现自动升级;应用事务层可在异构的平台的客户端上共享;分离不同的逻辑构建,并采用中间件技术,使得人机交互设计人员、事务逻辑开发人员可以独立的设计和维护他们各自的部分,同时增强了应用系统的动态适应性。
总体规划的实现过程
1.按总体规划报告购置和安装计算机网络系统
2.建立数据库系统
3.层序设计
4.系统转换
5.试运行
信息化的典型应用
政府信息化与电子政务
电子政务的概念
电子政务实质上是对现有的、工业时代形成的政府形态的一种改造,即利用信息技术和其他相关技术,将其管理和服务职能进行集成,在网络上实现政府组织结构和工作流程优化重组,超越时间、空间与部门分隔的制约,实现公务、政务、商务、事务的一体化管理与运行。电子政务主要包括三个组成部分:
(1)政府部门内部的电子化和网络化办公。
(2)政府部门之间通过计算机网络进行的信息共享和实时通信。
(3)政府部门通过网络与居民之间进行的双向信息交流。
电子政务的发展过程实质上是对原有的政府形态进行信息化改造的过程,通过不断地摸索和实践,最终构造出一个与信息时代相适应的政府形态。
电子政务的内容
政府与政府(G2G)
政府对企(事)业(G2B)
政府对居民(G2C)
企业对政府(B2G)
居民对政府(C2G)
电子政务的技术形式
发展的四个阶段
1.起步阶段
2.政府与用户单向互动
3.政府与用户双向互动
4.网上事务处理
电子政务的应用领域
面向社会的应用
政府部门之间的应用
政府部门内部的各类应用系统
涉及政府部门内部的核心数据的应用系统
政府电子化采购
电子社区
企业信息化与电子商务
企业信息化的概念
企业信息化就是企业应用信息技术及产品的过程(企业信息化是信息技术由局部到全局,由战术层次到战略层次向企业全面渗透,运用于流程管理、支持企业经营管理的过程。)
企业信息化的目的
目标是优化企业业务活动使之更加有效,它的根本目的在于提高企业竞争能力,使得企业具有平稳和有效的运作能力,对紧急情况和机会做出快速反应,为企业内外部用户提供有价值的信息。企业信息化涉及到对企业管理理念的创新,管理流程的优化,管理团队的重组和管理手段的革新。
企业信息化的规划
企业战略的层面
业务运作层面
管理运作层面
企业信息化方法
业务流程重构方法
核心业务应用方法
信息系统建设方法
主题数据库方法
资源管理方法
人力资本投资方法
企业资源规划的结构和功能
ERP的概念
ERP是对物流、资金流和信息流进行全面集成管理的管理系统
ERP的管理范围设计企业的所有供需过程,是对供应链的全面管理
ERP的结构
ERP实际上就是对物流资源、资金流资源和信息流资源“三流”进行全面集成管理的管理信息系统
主要模块
生产预测
销售管理(计划)
经营计划(生成计划大纲)
主生产计划
物料需求计划
能力需求计划
车间作业计划
采购与库存管理
质量与设备管理
财务管理
ERP有关扩展应用模块
ERP的功能
支持决策的功能
为处于不同行业的企业提供有针对性的IT解决方案
从企业内部的供应链发展为全行业和跨行业的供应链
客户关系管理在企业的应用
CRM的概念
是将市场营销的科学管理理念通过信息技术的手段集成在软件上面
CRM 主要包含以下4个内容:提供的信息要有利于更好地理解客户:流程管理要为客户提供高效、适当的体验;允许员工使用以上知识的软件;培训并改变管理要素,使员工和企业了解并且有能力提供那些构建强有力关系、提高客户忠诚度的体验。
CRM 的目的是提高收入。CRM通过管理客户与企业之间的关系(包括营销、销售、服务和维护)使企业达到并超过客户期望来提高客户忠诚度进而提高收入。客户关系管理不仅仅是使客户满意,理解客户或流程自动化,它致力于将4种核心要素(息、流程、技术和人员)相结合,提供一组持续而积极的可控个人化体验来提高客户忠诚度。
CRM 的核心思想就是以客户为中心。CRM的宗旨就是改善企业与客户之间的关系,使客户时时刻刻感觉到企业的存在,企业随时了解客户的变化。CRM要求企业从传统的“以产品为中心”的经营理念解放出来,确立“以客户为中心”的企业运作模式,从而提高客户的忠诚度,为企业带来丰厚的利润和上升空间。可见,CRM 就是指企业通过富有意义的交流沟通,理解并影响客户行为,最终实现客户保留、客户忠诚和客户创利的目的,是一个将客户信息转化为积极的客户关系的反复循环的过程。
CRM的背景
CRM 的产生,是市场需求和管理理念更新的需要,是企业管理模式和企业核心竞争力提升的要求,使电子化浪湖和信息技术支持等因素推动和促成的结果。
CRM系统的主要模块
销售自动化
营销自动化
客户服务与支持
商业智能
CRM的解决方案和实施过程
CRM特点
(1)通常都支持电子商务的销售方式(这里指的电子商务是以电子流的方式进行销售活动的商业模式,如网上购物)。
(2)CRM的基本构成通常包括以下4部分。
。销售管理:对销售队伍、销售机会以及销售业务的管理。
。市场管理:对市场的设定、追踪和分析总结。
。服务管理:对服务活动的信息支持,包括对日程的安排、服务活动的监控以及知识库。
。现场服务管理:为游离于企业之外的现场服务人员利用移动设备检索服务的安排以及关于产品、客户等与服务有关的信息。
(3)CRM 的辅助构成。在上述基本框架的基础上一些国外的软件厂商还纳入以下部分。
电子商务支持CRM系统,不仅提供电子商务接口,还全面开发电子商务。
呼叫中心支持由合作的硬件厂商参与并提供全套设备,而不仅仅是提供支持呼叫中心的应用软件。
对移动设备的支持。
CRM 的6个主要功能和技术要点
1.信息分析能力
2.对客户互动渠道进行集成的能力
3.支持网络应用的能力
4.建设集中的客户信息仓库的能力
5.对工作流进行集成的能力
6.与ERP功能的集成
实施中的重要问题
1.寻找正确的客户
2.提供正确的产品和服务
3.在正确的时间与客户接触
4.利用正确的渠道为客户提供服务
成功实施的八个战略阶段
1.分析与规范
2.项目计划和管理
3.系统配置与修改
4.原型、兼容测试和系统重复运行
5.主导系统和系统保证测试
6.最后实施和推广
7.持续支持
8.系统的持续管理
CRM的价值
提高内部员工的工作效率,节省日常开支
提高客户满意度
提高客户的忠诚度
企业门户
主要功能
个性化
演示功能
知识及内容的创建与管理
搜寻和检索
全文本搜索
允许在全部信息资源中进行搜索,包括文件、数据库、因特网及更多
更具主题进行搜索
对信息进行分类搜索
元数据管理/分类
查询/报告和分析
数据管理和应用集成
文档管理
协同和信息共享/知识汲取和索引
虚拟社区
流程支持
商业功能/垂直市场应用程序
集中式目录支持和门户管理
安全功能
分类
企业信息门户
企业知识门户
企业应用门户
垂直门户
要素
计划和设计
技术决策
行政人员的支持
限定初始项目的范围
超过组织物理界限的扩展
信息组织
内部推广和门户的使用范围
门户实施中的社会和心理因素以及这些因素对企业及其门户方案的影响
用户对门户的持续管理和支持
什么是电子商务
商业活动与 Internet 的结合产生了电子商务。通俗地说,所谓电子商务就是用数字信号在网上开展商务活动,当企业将它的主要业务通过企业内部网、外部网以及Intermet与企业的职员、客户、供销商以及合作伙伴直接相连时,其中发生的各种活动就是电子商务。
分类
广义电子商务
使用各种电子工具从事商务或者活动
狭义电子商务
主要利用Internet从事商务或活动
电子商务的类型
按产于交易的对象分类
企业与消费者之间的电子商务(BusinesstoCustomer即B-TO-C)
企业与企业之间的电子商务(BusinesstoBusiness即B-TO-B)
企业与政府方面的电子商务(B-TO-G)
按交易涉及的商品内容分类
间接电子商务
直接电子商务
电子商务使用的网络类型分类
EDI(Electronic Data Interchange,电子数据交换)网络电子商务
因特网电子商务(Intemmet 网络)
内联网络电子商务(Intranet网络)
电子商务的标准
基于XML的电子商务标准
ebXML
RosettaNet
cnXML
基于web服务的电子商务集成标准
微软、IBM、Sun、Oracle 及其他有关厂商纷纷摈弃了各自不同的技术标准,共同选定了万维网联盟(World Wide Web Consortium)、简单对象访问协议(Simple Object AccessProtocol)、互联网服务描述语言(Web Services Description Language)和统一显示接口(Unified Display Interface)四种基于 XML, 的相关标准作为 Web 服务的底层架构技术。另外,在 W3C联盟及 OASIS 等业内标准组织的协助下,微软、BM等公司还计划进步合作,共同制定对全球 Web 服务市场发展至关重要的诸如安全与可靠性等方面的 Web服务标准。
企业应用集成(EAI)
EAI提供四个层次的服务
1.通讯服务
2.信息传递和转化服务
3.应用连接服务
4.流程控制服务
供应链管理
定义
是指产品生产和流通过程中设计的原材料供应商、制造商、批发商、零售商以及最终消费者组成的工序网络
基本思想
运作模式
3.系统开发基础知识
软件开发方法
软件开发生命周期
概念
传统软件生命期指软件产品从概念(构思)开始,经过定义、开发、使用和维护,直到最后被废弃(不再使用)为止的全过程
生命期划分
1.软件定义
概念
软件定义包括可行性研究和详细需求分析过程,任务是确定软件开发工程必须完成的总目标
需完成目标
问题定义
系统的定位以及范围,说明是什么样的系统
可行性研究
包括技术可行性、经济可行性、操作可行性和社会可行性等,确定问题是否有解,解决办法是否可行
需求分析
需确定软件系统的内容
功能需求
是软件必须完成的功能
性能需求
是软件安全性、可靠性、可维护性、结果的精度、容错性(出错处理)、响应速度和适应性等
运行环境的约束
是软件必须满足运行环境的要求,包括硬件和软件平台
需要编写的文档
软件需求规格说明书
是软件设计和验收的依据
内容
系统名称(或子系统名称)
功能描述
结构
基本数据结构
性能
设计需求
开发标准
验收原则等
软件系统测试大纲
用户手册概要
参与人员
系统分析员
软件开发人员
用户
2.软件开发
概念
是软件的设计与实现,可分为概要(总体)设计、详细设计、编码、测试等
内容及步骤
1.概要设计
在软件需求规格说明的基础上,建立系统的总体结构(含子系统的划分)和模块间的关系,定义功能模块及各项功能模块之间的关系
2.详细设计
对概要设计产生的功能模块逐步细化,把模块内部细节转化为可编程的程序过程性描述
内容
算法与数据结构
数据分布
数据组织
模块间结构信息设计
用户界面等设计
需编写文档
设计报告(详细)
3.编码
编码又称编程,是把详细设计转化为能在计算机上运行的程序
4.测试
单元测试
集成测试
确认测试
系统测试等
3.软件运行与维护
软件运行
是将软件移交用户使用,投入运行后的主要任务是使软件持久满足用户需求
软件维护
是对软件产品进行修改或对软件需求变化做响应的过程,尽可能地延长软件的寿命
当软件已经没有维护的价值,宣告退役,软件的生命随之宣告结束
软件开发模型
软件开发模型也称软件生存周期模型或者软件过程模型,他是从某一个特点的角度提出的软件过程的描述
是软件开发实际过程的抽象和概括,对软件开发过程各个阶段之间关系的一个描述和表示
是软件开发实际过程的抽象和概括,对软件开发过程各个阶段之间关系的一个描述和表示
特点
简单化
软件过程模型基本概念
软件过程是制作软件产品的一组活动以及结果
软件活动
软件描述
必须定义软件功能以及使用的限制
软件开发
软件有效性验证
软件进化
随着客户需求变化不断改进
软件开发模型是软件工程的重要内容,为软件工程管理提供里程碑和进度表,为软件开发过程提供原则和方法
模型划分
瀑布模型
最早使用的软件生存开发模型之一
描述软件开发的一些基本过程活动,所以也称为软件生命走起模型,这些活动从一个阶段到另一个阶段逐次下降,工作流程形式上想瀑布,而得名瀑布模型
特点
因果关系紧密相连
缺点
软件需求分析准确性难确定,甚至是不可能和不实现的
用户和软件项目负责人要相当长的时间才能得到初始版本,如果改变需求将会带来巨大损失(人力,财力,时间等)
原型模型
又称快速原型
开发阶段
1.原型开发阶段
软件开发人员根据用户提出的软件系统定义,快速的开发一个原型,该原型包含目标系统的关键问题和反应目标系统的大致面貌,展示目标系统的全部或部分功能、性能等
开发原型可以考虑的三种途径
利用模拟软件系统的人机界面和人机交互方式
真正开发一个原型
找来一个或几个正在运行的类似软件进行比较
2.目标软件开发阶段
征求用户对原型的意见后对原型进行修改完善,确认软件系统的需求并达到一致的理解后,进一步开发实际系统
原型模型的使用应注意
用户对系统模糊不清,无法准确回答目标系统的需求
要有一定的开发环境和工具支持
经过对原型的若干次修改,应收敛到项目目标范围内,否则可能会失败
对大型软件来说,原型可能非常复杂而难以快速形成,如果没有现成的,就不应考虑用原型法
螺旋模型
是在快速原型的基础上扩展而成
将开发流程分成多阶段,每个阶段由四个部分组成
1.目标设定
2.风险分析
3.开发的有效性验证
4.评审
该模型支持大型软件开发,适用于面向规格说明,面向过程和面向对象的软件开发,也适用于几种开发方法的组合
基于可重用构建的模型
基于面向对象的模型
基于面向对象的模型,是综合了面向对象和原型方法及重用技术的一种模型
基于四代技术的模型
四代语言(4th Generation Language,4GL)是在大型数据库管理系统的基础上发展起来的程序设计语言
程序设计语言分为
机器语言
汇编语言
高级语言第四代语言
为人工智能领域应用而设计的语言——第五代语言
4GL定义描述
用于快速开发应用软件的高产工具(重点强调提高软件开发的生产率)
用于快速事务处理系统的高产工具(突出了主要应用领域)
4GL特征描述
它是非过程化的语言,目的在于高效、直接地实现各种应用系统
它与数据库的关系密切,能够对大型数据库进行高效处理
敏捷方法
特点
敏捷性方法是“适应性”而非“预设性的”
敏捷型方法是,“面向人的”而非“面向过程的”
核心思想
是适应型,而非可预测型
利用变化来发展,改变自己,最后完善自己
是以人为本,而非以过程为本
强调充分发挥人的特性,不去限制他
迭代增量式的开发过程
以原型开发思想为基础,采用迭代增量式开发,发行版本小型化
含义及其特征
重型方法
软件开发过程中拥有大最中间产品(如求规约、设计模型等)和复杂控制的软件开发方法
轻型方法
中间产品较少的方法
敏捷型方法认为最根本的文档应该是源码,而不是繁琐的文档
区别
思想是“自适应”的,而非如“预设”的重型方法试图预先固定需求并拟定详细开发计划;
适应需求变化
思考角度是“面向人”的,而非“面向开发过程”的
强调以人为本,并贯穿实践始终
适用范围
比较适合需求变化比较大的项目
开发前期对需求不是很清晰的项目
敏捷方法对设计者、开发者和客户之间的有效沟通和及时反馈要求比较高,所以不易在开发团队比较庞大的项目中实施,但这也不是绝对的
主要内容
四个核心价值观
沟通
强调设计者、开发者和客户三者之间的有效交流是开发成功的关键
简单
是设计和编码的指导原则,强调只满足当前功能需求,不做假想设计,尽量使代码简单化
反馈
强调设计者、开发者和客户之间及时和详细的意见反馈是开发成功的保证
勇气
是开发适应变化的前提,要求设计者和开发者在必须做出取舍和重构时,勇于抉择,勇于实践
12条过程实践规则
简单设计
测试驱动
代码重构
结对编程
持续集成
现场客户
发行版本小型化
系统隐喻
代码集体所有制
规划策略
规范代码
40小时工作机制
不提倡加班,每周40小时工作制,因为长时间加班严重影响团队工作效率,敏捷开发提倡可持续性,保持可持续稳定的进展速度,才能形成稳定的迭代节奏
主要敏捷方法简介
(1)XP(Extreme Programming,极限编程)在所有的敏捷型方法中,XP是最引人瞩目的。它源于 Smalltalk圈子,特别是Kent Beck和 Ward Cunningham在 20世纪 80年代末的密切合作。XP在一些对费用控制严格的公司中的使用,已经被证明是非常有效的。
(2)Cockbum的水晶系列方法。水晶系列方法是由Alistair Cockbum 提出的。它与XP方法一样,都有以人为中心的理念,但在实践上有所不同。Alistair 考虑到人们一般很难严格遵循一个纪律约束很强的过程,因此,与XP的高度纪律性不同,Alistair探索了用最少纪律约束而仍能成功的方法,从而在产出效率与易于运作上达到一种平衡。也就是说,虽然水晶系列不如 XP那样的产出效率,但会有更多的人能够接受并遵循它。
(3)开放式源码。这里提到的开放式源码指的是开放源码界所用的一种运作方式。开放式源码项目有一个特别之处,就是程序开发人员在地域上分布很广,这使得它和其他敏捷方法不同,因为一般的敏捷方法都强调项目组成员在同一地点工作。开放源码的一个突出特点就是査错排障(debug)的高度并行性,任何人发现了错误都可将改正源码的“补丁”文件发给维护者。然后由维护者将这些“补丁”或是新增的代码并入源码库。
4)SCRUM。SCRUM已经出现很久了,像前面所论及的方法一样,该方法强调这样一个事实,即明确定义了的可重复的方法过程只限于在明确定义了的可重复的环境中,为明确定义了的可重复的人员所用,去解决明确定义了的可重复的问题
(5)Coad的功用驱动开发方法(Feature DrivenDevelopment,FDD)。FDD 是由JefDe Luca 和大师 Peter Coad提出来的。像其他方法一样,它致力于短时的迭代阶段和可见可用的功能。在 FDD中,一个迭代周期一般是两周。在 FDD 中,编程开发人员分成两类:首席程序员和“类”程序员(classowmer)。首席程序员是最富有经验的开发人员,他们是项目的协调者、设计者和指导者,而“类程序员则主要做源码编写。
(6)ASD方法。ASD(Adaptive Software Development)方法由 Jim Highsmith 提出其核心是三个非线性的、重叠的开发阶段:猜测、合作与学习。
RUP
概述
RUP(Rational Unifed Process)根据字面理解,可以知道RUP包括三方面的意思,即 Rational、Unifed 和 Process。Rational 表示 RUP 是由 Rational 公司提出的,Unified表示 RUP 是最佳开发经验总结,而Process 表示RUP是一个软件开发过程。
生命周期
RUP软件开发生命周期是一个二维的软件开发模型,其中有9个核心工作流
核心工作流
业务建模
需求
分析和设计
实现
测试
部署
配置与变更管理
项目管理
环境
RUP 把软件开发生命周期划分为多个循环(cycle),每个cycle生成产品的一个新的版本,每个cycle依次由4个连续的阶段(phase)组成,每个阶段完成确定的任务。这4个阶段如下。
初始阶段
细化阶段
构建阶段
移交阶段
核心概念
角色(Role)-who的问题
活动(activity)——how的问题
制品(artifact)——what的问题
工作流(workflow)——when的问题
特点
用例驱动
以体系结构为中心
4+1 视图模型来描述软件系统的体系结构
迭代与增量
优点
(1)在软件开发的早期就可以对关键的、影响大的风险进行处理。
(2)可以提出一个软件体系结构来指导开发。
(3) 可以更好地处理不可避免的需求变更。
(4)可以较早地得到一个可运行的系统,鼓舞开发团队的士气,增强项目成功的信心。
(5)为开发人员提供一个能更有效工作的开发过程。
RUP裁剪
步骤
(1)确定本项目的软件开发过程需要哪些工作流。RUP的9个核心工作流并不总是需要的,可以根据项目的规模、类型等对核心工作流做一些取舍。如嵌入式软件系统项目一般就不需要业务建模这个工作流。
(2)确定每个工作流要产出哪些制品。如规定某个工作流应产出哪些类型的文档。
(3)确定4个阶段之间(初始阶段、细化阶段、构造阶段和移交阶段)如何演进。确定阶段间演进要以风险控制为原则,决定每个阶段要执行哪些工作流,每个工作流执行到什么程度,产出的制品有哪些,每个制品完成到什么程度等。
(4)确定每个阶段内的迭代计划。规划 RUP的4个阶段中每次迭代开发的内容有哪些。迭代是 RUP非常强调的一个概念,可以进一步降低开发风险。
(5)规划工作流内部结构。工作流不是活动的简单堆积,工作流涉及角色、活动和制品,工作流的复杂程度与项目规模及角色多少等有很大关系,这一步决定裁剪后的RUP 要设立哪些角色。最后,规划工作流的内部结构,通常用活动图的形式给出。
软件系统工具
分类
软件开发工具
需求分析工具
设计工具
编码与排错工具
编码工具
编辑程序
汇编程序
编译程序
生成程序
排错工具
源代码排错程序
排错程序生成程序
测试工具等
软件维护工具
版本控制工具
在软件开发和维护过程中一个软件会有多个版本,版本控制工具用来储存、更新、恢复和管理一个软件的过个版本。
文档分析工具
文档分析工具用以对软件开发过程中形成的文档进行分析。给出软件维护活动所需的维护信息
开发信息库工具
用来维护软件项目的开发信息,包括对象、模块等
逆向工程工具
在软件生存周期中,将某种形式表示的软件转换成更高抽象形式表示的软件的活动成为逆向工程
再工程工具
再工程工具用来支持重构一个功能和性能更为完善的软件系统
软件管理工具
软件支持工具
需求管理
需求管理是一个对系统需求变更、了解和控制的过程
主要活动
需求管理强调
控制对需求基线的变动
保持项目计划与需求一致
控制单个需求和需求文档版本的情况
管理需求和联系链,或者管理单个需求和其他项目可交付产品之间的依赖关系
跟踪基线中的需求状态
需求管理原则
过程能力成熟度模型
过程能力成熟度模型(Capability Maturity Model,CMM)在软件开发机构中被广泛用来指导软件过程改进
目标
为软件需求建立一个基线,提供给软件工程和管理使用
软件计划、产品和活动与软件需求保持一致
原则和策略
(1)需求管理的关键过程领域不涉及收集和分析项目需求,而是假定已收集了软件需求,或者已由更高一级的系统给定了需求。一旦需求获得并且文档化了,软件开发组和有关的团队(例如质量保证和测试组)需要评审文档。发现问题应与客户或者其他需求源协商解决。软件开发计划是基于已确认的需求。
(2)开发人员在向客户以及有关部门承诺(commitent)某些需求之前,应该确认需求和约束条件、风险、偶然因素、假定条件等。也许不得不面对由于技术因素或者进度等原因,承诺一些不现实的需求。但是,决不要承诺任何无法实现的事。
(3)关键处理领域同样建议通过版本控制和变更控制来管理需求文档。版本控制确保随时能知道在项目开发和计划中正在使用的需求的版本情况。变更控制提供了支配下的规范的方式来统一需求变更,并且基于业务和技术的因素来同意或者反对建议的变更当在开发中修改、增加、减少需求时,软件开发计划应该随时更新,确保与新的需求保持一致。
需求规格说明的版本控制
需求属性
在文档中考虑和明确这些属性
在文档中考虑和明确这些属性
创建需求的时间
需求的版本号
创建需求的作者
负责认可该软件需求的人员
需求状态
需求的原因和根据
需求涉及的子系统
需求涉及的产品版本号
使用的验证方法或者接收的测试标准
产品的优先级或者重要程度
需求的稳定性
需求变更
变更控制过程
为了使开发组织能够严格控制软件项目,应确保以下事项
仔细评估已建议的变更
挑选合适的人选对变更作出决定
变更应及时通知所有涉及的人员
项目要按一定的程序来采纳需求变更
变更控制过程
1.问题分析和变更描述
2.变更分析和成本计算
3.变更实现
变更策略
所有需求变更必须遵循变更控制过程
对于未获得批准的变更,不应该做设计和实现工作
变更应该由项目变更控制委员会决定实现哪些变更
项目风险承担者应该能够了解变更数据库的内容
决不能从数据库删除或者修改变更请求的原始文档
每一个集成的需求变更必须能够跟踪到一个经核准的变更请求
需求变更控制工具选择条件
可以定义变更请求的数据项
可以定义变更请求生存期的状态转换图
可以加强状态转换图使经授权的用户仅能做出所允许的状态变更
记录每一条状态变更的数据,确认作出变更的人员
可以定义在提交新请求或请求状态被更新后应该自动通知的设计人员
可以根据需要生成标准的或定制的报告和图标
变更控制委员会
变更控制委员会可以帮助我们很好的管理项目,哪怕是一个小项目
包含代表
产品或计划管理部门
项目管理部门
开发部门
测试或质量保证部门
市场部或客户代表
制作用户文档的部门
技术支持部门
帮助桌面或用户支持热线部门
配置管理部门
过程及操作步骤
制定决策
变更控制委员会必须到会的人数或作出有效决定必须出席得人数
决策的方法(例如投票,一致通过或其他机制)
变更控制委员会主席是否可以否决该集体的决定
交流情况
重新协商约定
需求跟踪
需求跟踪包括编制每个需求同系统元素之间的联系文档,这些元素包括别的需求、体系结构、其他设计部件、源代码模块、测试、帮助文件和文档等
跟踪能力(联系)链(traceability link)
客户需求向前追溯到软件需求
从软件需求回溯相应的客户需求
从软件需求向前追溯到下一级工作产品
从产品部件回溯到一个需求
需求变更的代价和风险
“变更是免费的”这种误解是造成项目范围延伸的主要原因之一
影响分析时需求管理的一个重要组成部分
需求变更对软件的进度、成本、技术和效率都会有不同程度的影响,变更只能在项目时间、预算、资源等的限制内进行协商
开发管理
项目的范围、时间、成本
范围
在初步项目范围说明书中已文档化的主要的可交付物、假设和约束条件的基础上准备详细的项目范围说明书,是项目成功的关键
范围定义的内容
项目章程
项目范围管理计划
组织过程资产
批准的变更申请
时间
项目时间管理包括使项目按时完成所必须得管理过程
过程
活动定义
活动排序
活动的资源估算
活动历时估算
制定进度计划以及进度控制
成本
项目成本管理是项目管理的一个重要组成部分,它是指在项目的实施过程中,为了保证完成项目所花费的实际成本不超过其预算成本而展开的项目成本估算、项目预算编制和项目成本控制等方面的管理活动。
内容
成本估算
成本预算
成本控制
配置管理、文档管理
配置管理
在项目管理中具有重要的地位和作用
配置管理的一个重要内容就是对变更加以控制,使变更对成本、工期和质量的影响降到最小
产品配置
指一个产品在其生命周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、计算机程序、部件及数据的集合。该集合中的每一个元素称为该产品配置中的一个配置项(ConfigurationItem,CI),
配置项
处于产品组成部分的工作成果,如需求文档、设计文档、源代码和测试用例等
属于项目管理和机构支撑过程产生的文档,如工作计划、项目质量报告、项目跟踪报告等。
配置项的主要属性
名称
标识符
文件状态
版本
作者
日期等
文档管理
文档是影响软件可维护性的决定因素
软件系统文档分类
用户文档
主要描述系统功能和使用方法,不关心功能实现
内容
功能描述
安装文档
使用手册
参考文档
操作员指南(如需要有系统操作员的话)
系统文档
描述系统设计、实现和测试等各方面的内容
所谓系统文档指从问题定义、需求说明到验收测试计划这样一系列和系统实现有关的文档
软件文档需满足要求
(1)必须描述如何使用这个系统,没有了这种描述即使是最简单的系统也无法使用。
(2)必须描述怎样安装和管理这个系统。
(3)必须描述系统需求和设计。
(4)必须描述系统的实现和测试,以便使系统成为可维护的。
软件开发的质量与风险
软件质量
软件开发风险
设计方法
结构化分析和设计
结构化程序设计师程序设计技术,它采用自顶向下逐步求精(先整体后局部,先抽象后具体的步骤)的设计方法和单入口单出口的控制构件
面向对象的分析设计
分析模型
顶层架构图
用例与用例图
领域概念模型
设计模型
软件体系结构图
以交互图标识的用例实现图
完整精确的类图
针对复杂对象的状态图
用以描述流程化处理过程的活动图等
设计人员必须处理的任务
针对分析模型中的用例,设计实现方案
设计技术支撑设施
设计过程
软件的重用
软件重用是指在两次或者多次不同的软件开发过程中重复使用相同或相似的软件元素的过程(软件元素又称为软部件)
软件元素包括
分析文档
设计过程
设计文档
程序代码
测试用例
领域知识等
软件重用方法
优点
减少软件开发活动中大量重复性工作
提高软件生产率
降低开发成本
缩短开发周期
改善软件质量
逆向工程与重构工程
逆向工程与重构工程是目前预防性维护采用的主要技术
逆向工程
凡是在软件生命周期内将软件某种形式的描述转换为更抽象的形式的活动都可以称为逆向工程
重构
指在同一抽象级别上转换系统描述形式
设计恢复
指借助工具从已有程序中抽象出有关数据设计,总体结构设计和过程设计
重构工程
也称恢复和改造工程,它是在逆向工程所获信息的基础上修改或重构已有的系统,产生系统的一个新版本
恢复信息的级别
1.实现级
包括程序的抽象语法树,符号表等信息
2.结构级
包括反应程序分量之间相互依耐关系的信息,如调用图、结构图等
3.功能级
包括反映程序段功能及程序段之间关系的信息
4.领域级
包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息
恢复信息的方法
用户指导下的搜索与变换
变换式方法,出领域级外所有抽象级别上的信息都可用该方法推到
基于领域知识的,主要用于恢复功能级和领域级信息
铅板恢复方法,仅适用于推导实现级和结构级信息
4.软件架构设计
软件架构设计概念
软甲架构的定义
软件架构(Software Architecture,SA)
一个程序和计算系统软件体系结构是指系统的一个或者多个结构。结构中包括软件的构件,构件的外部可见属性以及它们之间的相互关系。
体系结构并非可运行软件。确切地说,它是一种表达,使软件工程师能够:
(1)分析设计在满足规定需求方面的有效性。
(2)在设计变更相对容易的阶段,考虑体系结构可能的选择方案。
(3)降低与软件构造相关联的风险。
体系结构并非可运行软件。确切地说,它是一种表达,使软件工程师能够:
(1)分析设计在满足规定需求方面的有效性。
(2)在设计变更相对容易的阶段,考虑体系结构可能的选择方案。
(3)降低与软件构造相关联的风险。
软件构件
程序模块
面向对象的类
包含数据库和能够完成客户与服务器网络配置的“中间件”
设计层次
数据设计
表示出传统系统中体系结构的数据构件和面向对象系统中的类的定义(封装了属性和操作)
体系结构设计
关注软件构件的结构、属性和交互作用
软件结构设计与生命周期
需求分析阶段
软件架构的起步阶段
从软件需求模型到软甲架构模型转换需关注问题
如何根据需求模型构建SA模型
如何保证模型转换的可追踪性
需求阶段研究SA,有助于将SA的概念贯穿整个软件生命周期,从而保证软件开发过程的概念完整性,有利于各阶段参与者的交流,也易于维护各阶段的可追踪性
设计阶段
SA研究主要包括
SA模型描述
SA的基本概念,即SA模型有哪些元素组成,组成元素之间按何种原则组织
体系结构描述语言,支持构件、连接子及其配置的描述语言就是体系结构描述语言
SA模型的多视图表示,从不同视角描述特定系统的体系结构,从而得到多个视图,并将这些视图组织起来以描述整体的SA模型
SA模型的设计与分析方法
对SA设计经验的总结与复用等
多视图方案
4+1模型
逻辑视图
进程视图
开发视图
物理视图
加上统一的场景
Hofmesiter的4视图模型
概念视图
模块视图
执行视图
代码视图
CMU-SEI的Views and Beyond模型
模块视图
构件和连接子视图
分配视图
设计阶段
实现阶段体系结构研究方面
1.研究基于SA的开发过程支持,如项目组织结构、配置管理等
2.寻求从SA向实现过渡的途径,如将程序设计语言元素引入SA阶段、模型映射、构件组装、复用中间件平台等。
3.研究基于SA的测试技术
缩小SA模型和底层实现概念差距的方法
(1)在 SA模型中引入实现阶段的概念,如引入程序设计语言元素等。
(2)通过模型转换技术,将高层的 SA 模型逐步精化成能够支持实现的模型
(3)封装底层的实现细节,使之成为较大粒度构件,在SA指导下通过构件组装的方式实现系统,这往往需要底层中间件平台的支持。
构件组装阶段
可复用构件组装可以在较高层次上实现系统,提高系统实现的效率
SA需研究探讨的问题
如何支持可复用构件的互联,即对SA设计模型中规约的连接子的实现提供支持
在组装过程中,如何检测并消除体系结构失配问题
中间件构件
其遵循特定构件标准,为构件互联提供支持,提供相应公共服务,如安全系统等。
中间件支持的连接子实现优势
中间件提供了构件之间跨平台交互的能力,且遵循特定工业标准,可以有效地保证构件之间的通信完整性
产品化的中间件可以提供强大的公共服务能力,能够更好的保证最终系统的质量属性
构件组装阶段失配问题
由构件引起的失配
系统对构件基础设施存在冲突引起
构件控制模型和构件数据模型的假设存在冲突引起
由连接子引起的失配
系统对构件交互协议存在冲突引起
连接子数据模型的假设存在冲突引起
由于系统成分对全局体系结构的假设存在冲突引起的失配等
部署阶段
SA对软件部署的作用
提供高层的体系结构视图描述部署阶段的软硬件模型
基于SA模型可以分析部署方案的质量属性,从而选择合理的部署方案
SA研究内容
更多集中在组织和展示部署阶段的SA、评估分析部署方案等方面
后开发阶段
SA研究内容
维护
演化
复用等方面
SA研究方向
动态软件体系结构
体系结构设计阶段的支持
运行时刻基础设施的支持
体系结构恢复与重建
手工体系结构重建
工具支持的手工重建
通过查询语言来自动建立聚焦
使用其他技术,比如数据挖掘等
软件架构的重要性
软件架构设计师降低成本、改进质量、按时和按需交付产品的关键因素
架构设计能够满足系统的品质
结构设计使受益人达成一致的目标
架构设计能够支持计划编制过程
架构设计对系统开发的指导性
架构设计能够有效的管理复杂性
架构设计为复用尊定了基础
结构设计能够降低维护费用
架构设计能够支持冲突分析
基于架构的软件开发方法
体系结构的软件设计(Architecture-Based SoftwareDesig,ABSD)方法
ABSD方法是体系结构驱动,即指构成体系结构的商业、质量和功能需求的组合驱动的
ABSD方法的三个基础
功能的分解
通过选择体系结构风格来实现质量和商业需求
软件模版的使用
ABSD方法是一个自顶向下,递归细化的方法,软件系统的体系结构通过该方法得到细化,知道能产生软件构件和类
设计元素
顶层
系统被分解为若干概念子系统和软件模版
第二层
概念子系统分解成概念构件和附件软件模版
体系结构的开发模型
ABSDM模型
传统软件开发过程阶段
问题定义
需求分析
软件设计
软件实现
软件测试等
体系结构需求
需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望
体系结构需求过程
体系结构设计
软件体系设计过程
体系结构文档化
主要输出结果
体系结构规格说明
测试体系结构需求的质量设计说明书
文档要从使用者的角度进行编写,必须分发给所有与系统有关的开发人员,且必须保障开发者手上的文档是最新的
体系结构复审
体系结构设计、文档化和复审是一个迭代过程
复审目的
标识潜在的风险,及早发现体系结构设计中的缺陷和错误
体系结构实现
体系结构的演化
演化步骤
需求变化归类
制订体系结构演化计划
修改、增加或删除构件
更新构件的相互作用
构件组装预测试
技术评审
核心目标
重复的体系结构模式,即达到体系结构级的软件重用
软件架构风格
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式
经典风格
管道和过滤器
数据抽象和面向对象组织
事件驱动系统
构件不直接调用过程,而是触发或广播一个或多个事件
分层系统
仓库系统及知识库
中央数据结构说明当前状态,独立构件在中央数据存储上执行
若构件控制共享数据,则仓库是传统型数据库,若中央数据结构的当前状态触发进程执行的选择,则仓库是一黑板系统
C2风格
可以概括为通过连接件绑定在一起按照一组规则运行的并行构建网络
系统组织规则
(1)系统中的构件和连接件都有一个顶部和一个底部。
(2)构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部而构件与构件之间的直接连接是不允许的。
(3)一个连接件可以和任意数目的其他构件和连接件连接。
(4)当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。
客户/服务器风格
服务器任务
数据库安全性的要求
数据库访问并发性的控制
数据库前端的客户应用程序的全局数据完整性规则
数据库的备份与恢复
客户端应用程序任务
提供用户与数据库交互的界面
向数据库服务器提交用户请求并接收来自数据库服务器的信息
利用客户应用程序对存在于客户端的数据执行应用逻辑要求
C/S体系结构的优点
对于硬件和软件的变化显示出极大地适应性和灵活性
易于对系统进行扩充和缩小
C/S体系结构的缺点
开发成本较高
客户端程序设计复杂
信息内容和形式单一
用户界面风格不一
软件移植困难
软件维护和升级困难
三层C/S结构风格
表示层
功能层
数据层
浏览器/服务器风格(B/S)
是三层C/S应用结构的一种实现方式
浏览器
web服务器
数据库服务器
优点
达到“零客户端”的功能
很容易在运行时自动升级
不足之处
缺乏对动态页面的支持能力,没有集成有效的数据库处理功能
扩展能力差,安全性较难以控制
数据查询等响应速度上,要远低于C/S体系结构
数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理应用
C/S与B/S混合体系结构风格
特定领域软件体系结构(DSSA)
DSSA定义
在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构
Hayes Roth定义:DSSA专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的、为成功构建应用系统先顶了标准的组合结构的软件构件的集合
Tracz定义:DSSA就是一个特定的问题领域中支持一组应用的领域模型、参考需求、参考体系结构等组成的开发基础,其目标就是支持在一个特定领域中多个应用的生成。
DSSA的特征
(1)一个严格定义的问题域和问题解域。
(2)具有普遍性。使其可以用于领域中某个特定应用的开发。
(3)对整个领域的构件组织模型的恰当抽象。
(4)具备该领域固定的、典型的在开发过程中可重用元素。
DSSA的基本活动
领域分析
主要目标是获得领域模型
领域设计
目标是获得DSSA
领域实现
目标是依据领域模型和DSSA开发和组织可重用信息
参与DSSA的人员
领域专家
可能包括该领域中系统的有经验的用户、从事该领域中系统的需求分析、设计、实现以及项目管理的有经验的软件工程师等
领域分析师
由具有知识工程背景的有经验的系统分析师担任
领域设计人员
由又经验的软件设计人员担任
领域实现人员
由又经验的软件设计人员担任
DSSA的建立过程
过程是并发的,递归的,反复的
五个阶段
1.定义领域范围
2.定义领域特定的元素
3.定义领域特定的设计和实现需求约束
4.定义领域模型和体系结构
5.产生,搜索可重用的产品单元
DSSA的三层次系统模型
系统架构的评估
评估的质量属性
性能
可靠性
容错
健壮性
可用性
安全性
可修改性
可维护性
可扩展性
结构重组
可移植性
功能性
可变性
互操作性
重要概念
敏感点和权衡点
敏感点是一个或多个构件的特性
权衡点事影响多个质量属性的特性,是多个质量属性的敏感点
风险承担者或者称为利益相关人
续表
主要评估方法
SAAM
ATAM(体系结构权衡分析方法)
5.UML建模与结构文档化
UML基础
概述
UML通过图形化的表示机制从多个侧面对系统的分析和设计模型进行刻画
分类
用例图
从外部用户的角度描述系统的功能,并指出功能的执行者
代表系统中各相关人员之间就系统的行为所达成的契约
编写用例必须识别元素
参与者
用例间关系
包含
扩展
用例的描述
静态图
类图
对象图
包图
行为图
交互图
用来描述对象之间以及对象参与者之间的动态协助关系以及协作过程中行为次序的图形文档
顺序图
协助图
状态图
活动图
实现图
构件图
部署图
UML的软件开发过程
开发四个阶段
1.初启
2.细化
初步的需求分析
初步的高层设计
部分的详细设计
部分的原型构造
3.构建
需制定迭代计划
用户认为业务价值较大的用例应优先安排
开发人员评估后认为开发风险较高的用例应优先安排
可能需要使用的语言机制
用例与用例图
类图
交互图
状态图
活动图
包图
构件图
部署图
4.部署
基于UML的需求分析
需求分析过程
生成用例
用活动图表示用例
生成用例图
建立顶层架构
UML包图
顶层架构设计
建立概念模型
面向对象的设计方法
设计过程
设计用例实现方案
提取边界类。实现类和控制类
边界类
用于描述目标软件系统和外部环境之间的交互
界面控制
外部接口
环境隔离
实现类
表示目标软件系统中具有持久意义的信息项及其操作
控制类
作用完成用例任务的责任承担者
构建交互图
根据交互图精华类图
设计技术支撑方案
设计用户界面
熟悉用户并对用户分类
按用户类别分析用户的工作流程和习惯
设计命令系统并进行优化
设计用户界面的各种细节
增加用户界面专用的类和对象
精化设计模型
系统架构文档化
逻辑架构(逻辑蓝图)
子主题
进程架构(进程蓝图)
子主题
开发架构
物理架构(物理蓝图)
子主题
6.设计模式
设计模式的作用
简化并加快设计
方便开发人员之间的通信
降低风险
有助于转到面向对象技术
成熟软件设计模式特性
巧妙
通用
得到很好的证明
简单
可重用
面向对象
设计模式的组成元素
模式名
问题或意图
情景
动机
解决方案
示例
结果情景
基本原理
相关模式
已知应用
设计模式分类
创建型模式
对对象实例化过程的抽象
结构型模式
组合已有的类和对象以获得更大的结构
行为型模式
用于对象之间职责及其提供的服务的分配
设计模式实例
创建型模式
Abstract Factory(抽象工厂)。
系统独立于产品的创建。组成以及表示
系统配置成具有多个产品的系列
相关产品对象系列是共同使用的,而且必须确保这一点
你希望提供产品的类库,只开放其接口,而不是其实现
Builder(构建器)。
创建复杂对象的算法独立于组成对象的部分以及这些部分的集合方式
构造过程必须运行已构建对象有不同表示
Factory Method(工厂方法)。
类不能预料它必须创建的对象的类
类希望其子类指定它要创建的对象
类将责任转给某个帮助子类,而用户希望定位那个被授权的帮助子类
Prototype(原型)。
在运行时,指定需要实例化的类,例如动态载入
避免构建与产品的类层次结构相似的工厂类层次结构
当类的实例是仅有的一些不同状态的组合之一的时候
Singleton(单独)。
结构型模式
Adapter(适配器)
要使用已有类,而该类接口与所需的接口并不匹配
要创建可重用的类,该类可以与不相关或未知类进行协作,也就是说,类之间并不需要兼容接口
要在一个不同于一直对象接口的接口环境使用对象
必须要进行多个源自检的接口转换的时候
Bridge(桥接模式)
想避免在抽象及其实现之间存在永久的绑定
抽象及其实现可以使用子类进行扩展
抽象的实现被改动应该对客户端没有影响,也就是说不用重新编译代码
Composite(复合模式)
想要表示对象的整个或者部分的层次结构
想要客户端能够忽略复合对象和单个对象之间的差异
结构可以具有任何级别的复杂性,而且是动态的
Decorator(装饰器)
想要在单个对象中动态并且透明的添加责任,而这样并不会影响其他对象
想要在以后可能要修改的对象中添加责任
当无法通过静态子类化实现扩展时
Facade(门面模式)
想要为复杂的子系统提供简单的接口
在客户端和抽象的实现类中存在许多依赖关系
相对子系统进行分层
Flyweight(享元模式)
应用程序使用大量的对象
由于对象数目巨大,导致很高的存储开销
应用程序不依赖于对象的身份
Proxy(代理模式)
行为型模式
Chain of Responsibility
多个对象可以处理一个请求,而其他处理器却是未知的
想要在不指定确切的请求接收对象的情况下,想几个对象中的一个发送请求
可以动态的指定能够处理请求的对象集
Command(命令模式)
想要通过要执行的动作来参数化对象
想在不同的时间指定、排序以及执行请求
必须支持Undo、日志记录或事物
Interpreter
语言的语法比较简单
效率并不是最主要的问题
Iterator(迭代器模式)
在不开放集合对象内部表示的片提下,访问集合对象内容
支持集合对象的多重遍历
为遍历集合中的不同结构提供了统一的接口
Mediator(中介模式)
对象集合需求以一个定义规范但复杂的方式进行通信
想要在不使用子类的情况下自定义分布在几个对象之间的行为
Memento
必须保存对象状态的快照,这样以后就可以恢复状态
使用直接接口来获得状态可能会公开对象的实现细节,从而破坏对象的封装性
Observer(观察者模式)
对一个对象的修改涉及对其他对象的修改,而不知道有多少对象需要进行相应修改
对象应该能够在不用假设对象标记的前提下通知其他对象
State(状态模式)
对象的行为依赖于其状态,并且该对象必须在运行时根据其状态修改其行为
操作具有大量以及多部分组成的取决于对象状态的条件语句
Strategy(策略模式)
许多相关类只是在行为方面有区别
需要算法的不同变体
算法使用客户端未知的数据
Template Method(模版方法模式)
想要以此实现算法的不变部分,而使用子类实现算法的可变行为
当子类的通用行为需要分解、定位到通用类的时候,这样可以避免代码重复的问题
Visitor(访客模式)
对象结构包含许多具有不同接口的对象类,并且需要对这些依赖于具体类的对象进行操作
定义对象结构的类很少被修改,但想要在此结构之上定义新的操作
7.XML(可扩展标记语言)技术
XML的特点和功能
(1)X,允许各种各样的文档显示类型,不仅可以显示在许多计算机平台上,而且可以显示蜂窝电话、掌上电脑等其他设备上。程序员可以使用任何编程语言或脚本语言来定义文档。
2)XML支持但并不需要 DTD(Document Type Definition,文档类型定义)。如果你使用 DTD,就要通知 XMI编辑器严格地按照 DTD 中设定的规则来处理文档。
(3)XM的支持标准(Xink 和 XPointer)支持比 HTML, 更为复杂的链接。在 HTMI和 XM, 中你只能链接到一个 URL。然而在 XML, 支持标准中可以同时使用几个或者组链接。
(4)XML 标准支持打印文档和电子文档以及其他的为不同用户定义了不同内容和
外观的文档。
(5)XML 支持客户端或者服务端计算机上的进程,这就允许开发人员分配资源和随时地节省资源。当前,XML1.0规范已经定义了,而Xink和XPointer语言仍处在开发和候选建议状态,这意味着它们已经被各技术团体评论过了。在成为最后建议之前,两种语言都可能发生改变。
XML基本语法
几乎所有的XML标签都是大小写敏感的
标签语法
字符
XML指定的字符均在16位的Unicode2.1字符集中定义
命名
必须以字母、下划线(_)或者冒号(:)开头
格式正规的XML文档组成
一个可选的序言(prolog)
文档的主体(body),有一个或多个元素组成,其形式为层次树状结构,其中可能也包含一些字符数据
可选地“繁杂”的尾声(epilog),其内容包含注释、处理指令。和/或紧跟在元素树后面的空白
元素
起始标签
结束标签
空元素标签
文档元素
元素嵌套
字符串
字符数据
就是任何不是标记的文本,是元素或者属性值的文本雷荣
大于号、小于号和&符号是标记分隔符,不能以字符串的形式出现在字符数据中(CDATA部分除外),需要将使用实体引用“&It;”、“>”、“&”代替
属性
注释
基本语法为<!-- comment text -->
CDATA部分
用来包含文本的方法,可以让XML忽略其中包含的标记分隔符
基本语法:<![DATA[........]]>
满足格式正规文档的条件
语法符合XML规范
元素构成一个层次树,只有一个根节点
没有对外部实体的应用,除非提供了DTO
XML命名空间
XML命令空间是解决多义性和名字冲突问题的方案,是一组具有结构的名称的集合
命名空间的存在主要是用于将名称组织称特有的集合以及回避名称冲突
定义和声明命名空间
提供了Xmlns属性,属性值为URI,其唯一的定义了当前使用的命名空间
为命名空间提供别名,可以在xmlns后面加上冒号和别名
修饰名
可以使用命名空间的别名修饰每个元素名,是元素可以明确表示来自哪个命名空间
作用范围
默认
省略前缀可以将一个命名空间声明为某范围内默认的
修饰
在文档开头声明将需要的命名空间,然后在使用地点使用命名空间来修饰那些需要的元素和属性
DTD
什么事DTD
文档的类型定义为DTD
DTD主要定义的内容
元素声明,包括元素的内容和元素的排列组合方式
实体声明
属性的种类
为什么引入DTD
DTD的使用实现了文件格式的统一化,可以促进行业或系统内部的文件标准化,同时提高文件的重用性
DTD的申明
内部DTD声明
外部DTD声明
元素的声明
基础语法
<!ELEMENT 元素名称 元素定义>
空元素声明
通过EMPTY实现
<!ELEMENT 附加条件 EMPTY>
文本元素的声明
用(#PCDATA)描述,意思是可解析数据
<!ELEMENT 地址 (#PCDATA)>
无限制元素的声明
解释
可以包含任何在钙DTD中声明过的子元素
这些子元素的出现次数和次序不受限制
可以包含文本数据(文本元素)
数据内容与子元素可以交错出现
通过关键字ANY实现
<!ELEMENT 附加条件 ANY>
包含子元素的元素声明
实体的声明
实体是一些预先定义好的数据,在需要的时候通过引用将其放入特定的位置
内部实体
声明方法
<!ENTITY 实体名称 实体内容>
引用方法
&实体名称
外部实体
声明方法
<!ENTITY 实体名称 SYSTEM | PUBLIC "URI">
引用方法
&实体名称
常见特殊字符的实体引用方式
不可分解实体
不可分解实体为图片、声音文件等
声明方式
<!NOTATION 格式 SYSTEM|PUBLIC 处理程序的URI >
<!ENTITY 实体名称 SYSTEM|PUBLIC 实体的URI NDATA格式>
<!ENTITY 实体名称 SYSTEM|PUBLIC 实体的URI NDATA格式>
引用方法
&实体名称
可分解实体
为文本实体
参数型实体
声明方法
<!ENTITY % 实体名称 实体内容>
引用方法
%实体名称
一般性实体和参数型实体的区别
属性的声明
声明语法
<!ATTLIST 元素名称 属性名称 属性类型 属性默认值类型>
属性类型
CDATA 类型
<!ATTLIST 元素名称 属性名称 CDATA 属性默认值类型>
属性值为字符串文字
枚举类型
<!ATTLIST 元素名称 属性名称 (可选属性值1|可选属性值2|...|可选属性值N) 属性默认值类型>
NMTOKEN和NMTOKENS类型
属性值只能由字母、数字、“_”等字符构成的字符串,且不能出现空格
<!ATTLIST 元素名称 属性名称 NMTOKEN | NMTOKENS 属性默认值类型>
ENATITY和ENTITIES类型
属性值是外部实体的应用
NOTATION类型
把一个属性声明为NOTATION类型时,首先要确定存在相应的NOTATION声明
<!NOTATION 格式 SYSTEM|PUBLIC 处理程序的URI>
<!ATTLIST 元素名称 属性名称 NOTATION 属性默认值类型>
<!ATTLIST 元素名称 属性名称 NOTATION 属性默认值类型>
ID类型
ID类型时CDATA类型的属性类型上加上更强的约束条件,作为此类型值的名字只能在XML文件中出现一次,ID类型的值必须是能唯一标识的元素
XML Schema
XML Schema 是一种特殊的XML文档,具备XML文档的语法要求
逻辑XML Schemma的文档结构
根标记必须为<Schema></Schema>
Xmlns是一个名域声明,表示Schema文档中使用的标记都是内标记为urn:sch-emas-microsoft-com:xml-data规范所定义的,前面的字符串可以当做是该规范的名字
xmtns:dt指定了文档中有关数据类型定义的表示都来自urn:schemas-microsoft-com:datatypes
元素定义
使用标记<ElementType>
<ElementType name="date" dt:type="date"/>
元素内容类型的指定
通过content 指定
标记子标记的出现次数
minOccurs、maxOccurs属性设置
子标记可以出现一次或多次
maxOccurs="*"
只能出现一次
maxOccurs="1"
子标记可有可无
maxOccurs="0"
子标记最少出现次数
minOccurs="0"
minOccurs="1",表示该标记必须出现
标记的子标记出现次序
order="one"
表示是它子标记列表中的任一个
order="many"
其所有子标记可以按任意的顺序出现任意次数
order="seq"
表示其所有的子标记必须按照定义好的次序出现
元素的开放性和封闭性
使用属性model描述
model="open"
开放的
model="close"
封闭的
可扩展样式表语言
eXtensible Stylesheet Language,XSL·
是描述XML文档样式信息的语言,由W3C制定
是通过xml进行定义,准从xml语法规范,是xml的一种具体应用
XML中使用如下语句声明XSL样式单
<?xml-stylesheet type="text/xsl" href="mystyle.xsl">
<?xml-stylesheet type="text/xsl" href="mystyle.xsl">
XSL在网络中应用模式
服务器端转换模式
客户端转换模式
其他相关规范
XPath
XLink和XPointer
8.面向构件的软件设计
构件的概念
构件特性
独立部署单元
跟他所在环境及其他构件完全分离
具有原子性,不可拆分
作为第三方的组装单元
构件必须封装实现,只通过接口与外部环境交互
没有(外部的)可见状态
对象
一个实例单元,具有唯一的标志
可能具有状态,此状态外部可见
封装了自己的状态和行为
黑河抽象
客户对接口和规约之外的实现细节一无所知
白盒抽象
可以通过继承对构件的实现细节进行修改
接口
一个以命名的操作的集合
标准化与规范化
进程间通信(Internet Process Connection,IPC)
例子
文件
套接字(socket)
共享内存
优势
很容易的扩展到网络甚至因特网上
RPC
深层次问题
接口和对象引用规范
接口关系和多态性
命名和定位服务
复合文档
构建框架
特性
由一组平台决策、一组构建框架和构建框架之间的互操作设计组成
构件框架是一种专门的体系结构,也是一组固定的作用于构件层次机制的策略
概念框架的互操作设计包括系统体系结构连接的所有框架间的互操作的规则
构件是一组通常需要同时部署的原子构件
一个院子构件是一个模块和一组资源
模块是一组类和可能得飞面向对象的结构体,比如过程或者函数
资源师一个类型化的项的固定集合
构件开发
面向构件的编程方法学
关注与如何支持建立面向构件的解决方案
基本要求
多态性(可替代性)
模块封装性(高层次信息的隐藏)
后期的绑定和装载(部署独立性)
安全性(类型和模块安全性)
可能遇到的问题
异步问题
多线程
不能采取继承实现(会引发严重问题)
坚壳类
语言支持
调用者封装
环境和选择目标框架
工具与选择编程语言
9.构件平台与典型架构
OMG方式
Sun公司的方式
java构件技术的概述
java2
运行环境
java runtime environment,JRE
包含运行时刻。核心库和浏览器插件
子主题
J2EE
JavaBean
事件
bean可以声明他们的实例是潜在的事件源或者特定类型事件的监听者
属性
bean通过成对的getter和setter方法暴露出一系列的属性
自检
一个组装工具能够检查一个bean,发现这个bean的属性、事件。以及所支持的方法
定制
使用组装工具,一个bean实例能够通过设置他的各种属性来完成定制
持久化
定制好的、已经连接的bean实例需要进行保存,以便在应用程序使用它的时候重新装载
基本java服务
反射
检查雷和接口,包括他们的属性和方法
构建新的类实例和新数组
对象和类的属性域的访问和修改
数组元素的访问和修改
对象和类的方法调用
对象序列化
能够被序列化一定要实现java.io.Serializable
java本地接口(Java Native interface,JNI)
创建、检查和更新一个Java对象
调用Java方法
捕捉和抛出异常
装载类,获得类的信息
进行运行时刻类型检查
java构件
Applet
JavaBean
EJB
servlet
J2EE
高级java服务
分布式对象模型和RMI
java和CORBA
企业级服务接口
java命名和目录接口(JNDI)
JAVA消息服务(JMS)
Java数据库链接(JDBC)
Java事务API和服务(JTA,JTS)
J2EE连接器架构(JCA)
Java和XML
Microsoft的方式
第一个基础关联模型——COM
COM是微软平台所有构件的基石
COM对象重用
COM不支持任何形式的实现继承
支持以包含和聚集的方式进行对象组装
接口和多态
COM接口可通过(单)接口继承从其它COM接口中派生
.NET框架
10.信息安全技术
加密和解密技术
对称算法(传统密码算法)
在大多数对称算法中,加密秘钥和解密密钥是相同的,也被称为秘密秘钥算法或单密钥算法
对称算法的安全性依赖于密钥,泄露密钥就意味着任何人都可以对他们发送或接受的消息解密
优点
算法的实现效率高,速度快
缺点
密钥的管理过于复杂
常用对称算法
DES
是一组分组加密算法,以64为为分组对数据加密,同时DES也是一个堆成算法
他的密匙长度为56位(因为每个第八位都用作奇偶校验),密匙可以是任意56位的数,而且可以任意时候改变
算法步骤
子主题
IDEA等
国际数据加密算法(International Data Encryption Algorithm, IDEA)分组长度为64b,密钥长度为128b
不对称密码体制(双密钥和公钥密码体制)
与对称密码相比,非对称密码有两个不同的密钥,其中一个密钥称为私钥,该密钥被秘密保存,另一个密钥公开,不需要保密
公钥密码系统工作方式
1.任何人都可以将自己加密的公钥公布在网络或其它可以公开的地方
2.其他人想要传送数据给接收方,可使用该接收方提供的公钥将信息加密之后算送给接收方
3.接收方收到加密后的信息时,利用拥有的由此公钥相对应的密钥,将该加密信息解析出来
RSA密码
常用非对称密码,是一个能用于数据加密,也能用于数字签名的算法
RSA的安全性依赖于大素数分解
密钥对的产生
加密程序
使用者将需要加密的信息M,在取得对方的公钥e及N之后,执行模(mod,即同余的运算,C=M mod N,C等于M除以N的余数)指数运算,就可以得到密文C.然后通过网络传送至通信的对方
C=M^e mod N
C=M^e mod N
解密程序
对方收到密文C后,以自己的私钥执行下面的解密程序,解密时作如下计算:M=C^d mod N 即可得到明文M
散列函数与数字签名
散列函数
是一种公开的数学函数
散列函数运算的输入信息叫做保温信息,运算后所得结果叫做散列码或者叫做消息摘要
散列函数h=H(M) 的特点
不同内容的报文具有不同的散列码,给定M,要找到另一消息M,使H(M)=H(M`)很难
散列函数是单项的,给出M,容易家算出h,给定h,根据h=H(M),反推M却很难
对于任何一个报文,无法预知它的散列码
散列码具有固定的长度,不管原始报文的长度如何,通过散列函数运算后的散列码都具有一样的长度
MD5散列算法
MD5散列算法对输入的任意长度消息产生128位(16字节)长度的散列值
算法步骤
1.附加填充位。首先对输入的报文进行填位补充,使填充后的数据长度模512后与448.如果数据长度正好模512余448则需增加512个填充位,也就是说填充个数为1~512位,填充位第一位为1,其余全部为0.
2.补足长度。将数据长度表示为二进制,如果长度超过64位,则截取其低64位,如果长度不足64位,则在其高位补0,将这个64位的报文长度补在经过填充的报文后面,使得最后的数据为512位的整数倍
3.初始化MD缓存器。MD5运算要用到一个128位的MD5缓存器,用来保存中间变量和最终结果。该缓存器又可看成是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
A: 01 23 45 67 B:89 ab cd ef C:fe dc ba 98 D:76 54 32 10
4.处理数据段。首先定义4个非线性函数F、G、H、I,对输入的报文运算以512位数据段为单位进行处理,对每个数据段都要进行4轮的逻辑处理,在4轮中分别使用4个不同的函数F、G、H、I。每一轮以ABCD和当前的512位的块为输入,处理后送入ABCD(128位)
数字签名
数字签名可以解决否认、伪造、篡改及冒充等问题
具体要求
发送者时候不能否认发送的报文签名
接受者能够核实发送者发送的报文签名
接受者不能伪造发送者的报文签名
接受者不能对发送者的报文进行部分篡改
网络中的某一用户不能冒充另一个用户作为发送者或接受者
场景
凡事需要对用户的身份进行判断的情况都可以使用数字签名
加密信件
商务信函
订货购买系统
数字签名过程
1.系统初始化过程
2.签名产生过程
用户利用给定的算法对消息产生签名
3.签名验证过程
验证者利用公开验证方法对给定消息的签名进行验证,得到签名的有效性
实现数字签名的方法
对称加密技术
非对称加密技术
数字签名算法
RSA
ELGamal
Fiat-Shamir等
数字水印
实现版权保护的有效办法
这种被嵌入的水印可以是一段文字、标记、序列号等,通常是不可见或不可察的,它与原始数据(如图像、音频和视频数据)紧密结合并隐藏其中,在经过一些不破坏源数据使用价值或商业价值的操作后仍能保存下来
特性
具有较强的鲁棒性
较强的安全性
较强的透明性
子主题
数字水印模型
水印信号嵌入模型
水印信号检测模型
主要应用领域
版权保护
加指纹
标题与注解
篡改信息
使用控制
典型数字水印算法
空域算法
变换域算法
压缩域算法
NEC算法
生理模型算法等
密钥分配中心与公钥基础设施
密钥分配中心
一种有效的密钥自动分配方案
数字证书
数字证书提供了一个在公钥和拥有相应私钥的实体之间建立关系的机制
证书内容
唯一标识证书所有者的名称
唯一标识证书签发者的名称
证书所有者的公开密钥
证书签发者的数字签名
证书的有效期及证书的序列号等
公钥基础设施(PKI)
目的是想广大信息系统用户和应用程序提供公开密钥的管理服务
结构模型
管理实体
是PKI的核心,是服务的提供者
端实体
是PKI的用户,是服务的使用者
证书库
是一个分布式的数据库,用于证书和CRL的存放和检索
访问控制
访问控制是通过某种途径限制和允许对资源的访问能力以及范围的一种方法
身份认证技术
用户和口令认证
验证数据的明文传送
利用单向散列函数处理验证数据
利用单向散列函数和随机数处理验证数据
使用令牌认证
生物识别与三因素认证
一种基于生物识别技术的认证,主要是根据认证这的图像,指纹,气味和声音等作为认证数据
访问控制技术
入网访问控制
为网络访问提供的第一层访问控制
访问控制步骤
1.用户名的识别与验证
2.用户口令的识别与验证
3.用户账号的默认限制检查
网络权限控制
针对网络非法操作所应该的安全保护措施
访问控制机制明确了用户和用户组可以访问那些目录,子目录,文件和其他资源,以及指定用户对这些文件。目录,是被等够执行哪些操作
实现方式
受托者指派
控制用户和用户组如何使用网络服务器的目录、文件和设备
继承权限屏蔽
相当于一个过滤器,限制子目录从父目录那里继承那些权限
用户分类
特殊用户(系统管理员等)
一般用户
系统管理员根据他们的实际需求分配操作权限
审计用户
负责网络的安全控制和资源使用情况的审计
目录级安全控制
针对用户设置的访问控制,控制用户对目录、文件和设备的访问
对目录和文件的访问权限划分
系统管理员权限
读权限
写权限
创建权限
删除权限
修改权限
文件查找权限
访问控制权限
属性安全控制
在权限安全控制的基础上提供更进一步的安全性
可以控制的权限
想某个文件写数据
复制文件
删除目录或文件
查看目录和文件
执行文件
隐含文件
共享
系统属性等
网络服务器的安全控制等
安全协议
IPSec协议
子主题
SSL协议
PGP协议
数据备份
分类
完全备份
差异备份
增量备份
按需备份
异地备份
数据异地备份是容灾系统的核心技术,特点是具有异地性
异地备份需注意问题
(1)在进行异地备份前,要集中精力进行杀毒查毒工作,避免让备份带上病毒
(2)对于软盘,要保证磁片质量,非常有必要定期对其进行质量检查。
(3)对于CD-RW 光盘,它的一个最大的缺点就是兼容性不好,因此最好就是由哪台刻录机刻录的盘片,就在哪台刻录机上继续刻录、改写等操作。
(4)对于移动硬盘,要做磁盘检查,保证其性能良好。
新型备份解决方案
优秀备份解决方案特点
(1)最大限度地降低对应用数据流量的影响,从而保证通信性能。
(2)最大限度地降低服务器的负载,保证服务器的性能;
(3)优化备份资源的使用,包括服务器、驱动器等。
网络备份模式
用存储网络备份
磁盘和磁盘之间直接传输数据的备份
计算机病毒与免疫
计算机病毒
“计算机病毒是这样的一种程序,它通过修改其他程序使之含有该程序本身或它的-个变体。病毒具有感染力,它可借助其使用者的权限感染他们的程序,在一个计算机系统中或网络中得以繁殖、传播。每个被感染的程序也像病毒一样可以感染其他程序从而使更多的程序受到感染。”
基本特征
感染性
潜伏性
可触发性
破坏性
人为性
衍生性
分类
引导区病毒
文件感染病毒
宏名都
特洛伊病毒
蠕虫病毒
计算机病毒免疫
免疫方法
针对某一种病毒进行的计算机病毒免疫
缺点
(1)对于没有设感染标识的病毒不能达到免疫的目的。有的病毒只要在激活的状态下,会无条件的把病毒传染给被攻击对象,而不论这种对象是否已经被感染过或者是否具有某种标识。
(2)当出现这种病毒的变种不再使用这个免疫标志时或出现新病毒时,免疫标志发挥不了作用。
(3)某些病毒的免疫标志不容易仿制,非要加上这种标志不可,则对原来的文件要做大的改动。例如对大麻病毒就不容易做免疫标志。
(4)由于病毒的种类较多,又由于技术上的原因,不可能对一个对象加上各种病毒的免疫标识,这就使得该对象不能对所有的病毒具有免疫作用。
(5)这种方法能阻止传染,却不能阻止病毒的破坏行为,仍然放任病毒驻留在内存中。目前使用这种免疫方法的商品化反病毒软件已不多见了。
基于自我完整性检查的计算机病毒免疫
原理
为可执行程序增加免疫外壳,同时在免疫外壳中记录有关用于恢复自身的信息
缺点
(1)每个受到保护的文件都要增加1~3KB,需要额外的存储空间。
(2)现在使用中的一些校验码算法不能满足防病毒的需要,被某些种类的病毒感染的文件不能被检查出来。
(3)无法对付覆盖方式的文件型病毒
(4)有些类型的文件不能使用外加免疫外壳的防护方法,这样将使那些文件不能正常执行。
信息安全管理和评估
安全管理主要解决的问题
1)集中化的安全策略管理(Centralized Security Policy Management,CSPM)企业的安全保障需要自上而下地制定安全策略,这些安全策略会被传送并装配到不同的执行点(Enforcemment Point)中。
2)实时安全监视(Real-TimeSecurityAwareness,RTSA)企业用户实时了解企业网络内的安全状况。
3)安全联动机制(ContainMechanism,CM)安全设备之间需要具备有中心控制或无中心控制的安全联动机制,即当 IDS发现在某网段有入侵动作时,它需要通知防火墙阻断此攻击。
4)配置与补丁管理(Configuration and Patching Management)企业用户可以通过对已发现的安全缺陷快速反应,大大提高自己抵抗风险的能力。
5)统一的权限管理(Privilege anagement across the Enterprise)通过完善的权限管理和身份认证实现对网络资源使用的有效控制和审计。
计算机信息安全保护条例
实体安全
网络通信安全
软件与信息安全
管理组织与制度安全
安全技术措施
信息安全保障体系
建立统一的身份认证体系
建议统一的信息安全管理体系
建立规范的信息安全保密体系
建立完善的网络边界防护体系
11.系统安全架构设计
网络和信息安全风险
常见安全威胁
信息泄露
信息被泄露或透露给某个非授权的实体
破坏信息的完整性
数据被非授权的进行增删、修改或破坏而受到损失
拒绝服务
对信息或其它资源的合法访问被无条件阻止
非法使用(非授权访问)
某一资源被某个非授权的人、或以非授权的方式使用
窃听
用各种可能得合法或非法的手段窃取系统重的信息资源和敏感信息
业务流分析
通过对系统进行长期监听,利用统计分析方法对诸如通信频度、通信的信息流向、通讯总量的变化等阐述进行研究,从而发现有价值的信息和规律
假冒
通过欺骗通信系统(或用户)达到非法用户冒充成合法用户,或者特权小的用户冒充称为特权大的用户的目的
旁路控制
攻击者利用系统的安全缺陷或安全性上的脆弱之处获得非授权的权利或特权
授权侵犯
被侵权以某一目的的使用某一系统或资源的某个人,却将此权限用于其它非授权的目的,也称“内部攻击”
特洛伊木马
软件中含有一个察觉不出的或者乌海的程序段,当他被执行时会破坏用户的安全
陷阱门
在某个系统或某个部件中设置了机关,使得当提供特定的输入数据时,允许违反安全策略
抵赖
一种来自用户的攻击,比如否认自己曾经发布过的某条消息、伪造一份对方来信等
重放
所截获的某次合法的通信数据备份,处于非法的目的而被重复发送
计算机病毒
一种在计算机系统运行过程中能够实现传染和侵害的功能程序
人员不慎
一个授权的人为了钱和利益,或由于粗心,将信息泄露给一个非授权的人
媒体废弃
信息被从废弃的磁盘或打印过的存储介质中获得
物理侵入
侵入者通过绕过物理控制而获得对系统的访问
窃取
重要的安全物品,如令牌或身份卡被盗
业务欺骗
某一伪系统或系统部件欺骗合法的用户或系统资源的放弃敏感信息
国内外影响较大的标准和组织
标准
国外标准
(1)可信计算机标准评估规则橘皮书(TCSEC,美国)
(2)欧洲 ITSEC 标准
(3)加拿大CTCPEC 标准
(4)美国联邦准则(FC)
(5)美国信息技术安全评价通用准则(CC)(6)ISO安全体系结构标准(ISO7498-2-1989)<信息处理系统开放系统互连基本参考模型第二部分安全体系结构>
(7)美国国家安全局:信息保障技术框架(IATF)
我国标准
主管部门:公安部、信息产业部和国家技术标准局等
主要技术标准如下。
GA163-1997(计算机信息系统安全专用产品分类原则)
GB17895-1999(计算机信息系统安全保护等级划分准则)
GB/T9387.2-1995(信息处理系统开放系统互连基本参考模型第二部分安全体系结构)
GB15834.1-1995(信息处理数据加密实体鉴别机制第一部分:一般型)GB 4943-1995(信息技术设备的安全)
组织
国际标准化组织(ISO)
信息技术安全分技术委员会
系统安全体系架构规划框架及其方法
信息系统安全体系
信息系统安全规划框架图
网络安全体系架构设计
信息安全体系结构示意图
鉴别框架
基本目的,防止其他实体占用和独立操作被鉴别实体的身份
鉴别方式
已知的,比如秘密的口令
拥有的,比如IC卡或令牌等
不改变的特征,比如生物特征
详细可靠的第三方建立的鉴别(递推)
环境(如主机地址等)
鉴别信息(Artificial InteLLigence,AI)
指申请者要求鉴别过程结束所生成、使用和交互的信息
类型
交换鉴别信息(交换AI)
申请鉴别信息(申请AI)
验证鉴别信息(验证AI)
鉴别服务阶段
1.安装阶段
2.修改鉴别信息阶段
3.分发阶段
4.获取阶段
5.传送阶段
6.验证阶段
7.停活阶段
7.重新激活阶段
8.取消安装阶段
访问控制(Access Control)框架
访问控制基础性功能
基本访问控制功能示意图
ADF示意图
机密性框架
机密性服务的目的是确保信息仅仅是对被授权者使用
机密性机制
通过禁止访问提供机密性
通过加密提供机密性
通过数据填充提供机密性
通过虚假事件(把在不可信链路上交换的信息流总量隐藏起来)提供机密性
通过保护PDU头提供机密性
通过时间可变域提供机密性
完整性框架
完整性框架的目的是通过阻止威胁或探测威胁,保护可能遭到不同方式危害的数据完整性和数据相关属性的完整性
完整性服务分类
根据防范的违规分类
未授权的数据修改
未授权的数据创建
未授权的数据删除
未授权的数据插入
未授权的数据重放
依据提供的保护方法分类
阻止完整性损坏
检测完整性损坏
依据是否包含恢复机制分类
具有恢复机制的
不具有恢复机制的
完整性机制类型
阻止对媒体访问的机制
用以探测对数据或数据项序列的非授权修改的机制
按照保护强度分类
不做保护
对修改和创建的探测
对修改、创建、删除和重复的探测
对修改和创建的探测并带恢复功能
对修改、创建、删除和重复的探测并带恢复功能
抗抵赖框架
抗抵赖服务包括证据生成、验证和记录,以及在解决纠纷时随即进行的数据恢复和再次验证
抗抵赖有四个独立阶段组成
证据生成
证据传输、恢复和储存
证据验证
解决纠纷
数据库系统的安全设计
数据库完整性设计原则
(1)根据数据库完整性约束的类型确定其实现的系统层次和方式,并提前考虑对系统性能的影响。一般情况下,静态约束应尽量包含在数据库模式中,而动态约束由应用程序实现。
(2)实体完整性约束、参照完整性约束是关系数据库最重要的完整性约束,在不影响系统关键性能的前提下需尽量应用。用一定的时间和空间来换取系统的易用性是值得的。
(3)要慎用目前主流 DBMS 都支持的触发器功能,一方面由于触发器的性能开销较大;另一方面,触发器的多级触发不好控制,容易发生错误,非用不可时,最好使用 Before型语句级触发器。
(4)在需求分析阶段就必须制定完整性约束的命名规范,尽量使用有意义的英文单词、缩写词、表名、列名及下划线等组合,使其易于识别和记忆,如CKC EMP REALINCOME EMPLOYEE、PK EMPLOYEE、CKT EMPLOYEE。如果使用CASE 工具,一般有默认的规则,可在此基础上修改使用。
(5)要根据业务规则对数据库完整性进行细致的测试,以尽早排除隐含的完整性约束间的冲突和对性能的影响。
(6)要有专职的数据库设计小组,自始至终负责数据库的分析、设计、测试、实施及早期维护。数据库设计人员不仅负责基于DBMS的数据库完整性约束的设计实现,还要负责对应用软件实现的数据库完整性约束进行审核。
(7)应采用合适的 CASE 工具来降低数据库设计各阶段的工作量。好的CASE 工具能够支持整个数据库的生命周期,这将使数据库设计人员的工作效率得到很大提高,同时也容易与用户沟通。
数据库完整性的作用
(1)数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。
(2)利用基于 DBMS 的完整性控制机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率。同时,基于DBMS的完整性控制机制是集中管理的,因此比应用程序更容易实现数据库的完整性。
(3)合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能。例如装载大量数据时,只要在装载之前临时使基于 DBMS的数据库完整性约束失效,此后再使其生效,就能保证既不影响数据装载的效率又能保证数据库的完整性。
(4)在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。
(5)数据库完整性约束可分为6类:列级静态约束、元组级静态约束、关系级静态约束、列级动态约束、元组级动态约束和关系级动态约束。动态约束通常由应用软件来实现。不同 DBMS 支持的数据库完整性基本相同,Oracle 支持的基于 DBMS 的完整性约束如表 12-1 所示。
基于DBMS的数据库完整性设计阶段
1.需求分析阶段
2.概念结构设计阶段
3.逻辑结构设计阶段
12.系统可靠性设计
可靠性定义
指产品在规定的条件下和规定的时间内完成规定功能的能力
可靠性分类
按产品可靠性的形成分类
固有可靠性
通过设计、制造赋予产品的可靠性
使用可靠性
受设计、制造的影响,又受使用条件的影响
使用可靠性总是低于固有可靠性的
软件和硬件可靠性的不同
复杂性
软件内部逻辑复杂度高,硬件相对简单
物理退化
软件不存在物理退化现象,硬件失效则主要是由于物理退化导致
唯一性
软件是唯一的,软件复制不改变软件本身,而任何两个硬件不可能绝对相同
版本更新较快
硬件更新周期通常较慢,硬件产品一旦定型一般不会变更,而软件通常受需求、软件缺陷修复的需要,造成软件版本更新较快,这也给软件的可靠性评估带来较大的难度
软件可靠性框架性定义
规定的时间
软件可靠性只体现在其运行期间,将运行时间作为规定时间度量
规定的条件
主要指软件的运行环境
所要求的功能
和规定的任务和功能有关
软件可靠性定义的特点
①用内在的“缺陷”和外在的“失效”关系来描述可靠性,更能深刻地体现软件的本质特点。
②)定义使人们对软件可靠性进行量化评估成为可能。对于软件的可靠性这样一个质量特性,很难用一个明确直观的数值去体现。而依据这个定义,我们有可能通过分析影响可靠性的因素,用函数的形式,按照不同的目的建立各种数学模型去分析软件可靠性。
③用概率的方法去描述可靠性是比较科学的。前面讲到,软件失效是随机的外部表现,完全是一个随机事件,而软件缺陷是软件固有的没有损耗的内在特点。定义用规定时间内其操作不出现软件失效的概率,也就是输入未碰到软件缺陷的概率来描述可靠性,这种方法就是用概率来描述纯粹的随机事件,是比较合理的,也是可行的。
软件可靠性问题的影响
软件失效可能造成灾难性的后果
软件失效在整个计算机系统失效中比例较高
相对硬件可靠性计算,软件可靠性技术不成熟,加剧了软件可靠性问题的重要性
软件可靠性问题是造成费用增加的主要原因之一
可靠性测试
目的
发现软件系统在需求、设计、编码、测试和实施等方面的各种缺陷
为软件的使用和维护提供可靠数据
确认软件是否达到可靠性的定量要求
软件可靠性建模
影响可靠性的因素
运行环境
软件规模
软件内部结构
软件的开发方法和开发环境
软件的可靠性 投入
软件可靠性模型组成
模型假设
性能度量
参数估计方法
数据要求
模型假设
代表性假设
独立性假设
相同性假设
模型失效内容表达
(1)任何时间点所经历的平均失效数。
(2)一段时间间隔内的平均失效数。
(3)任何时间点的失效强度。
(4)失效区间的概率分布。
可靠性模型所需特性
(1)基于可靠的假设。
(2)简单。
(3)计算一些有用的量。
(4)给出未来失效行为的好的映射。
5)可广泛应用。
软件可靠性模型分类
种子法模型。
这类模型利用捕获一再捕获抽样技术估计程序中的错误数,在程序中预先有意“播种”一些设定的错误“种子”,然后根据测试出的原始错误数和发现的诱导错误的比例,来估计程序中残留的错误数。其优点是简便易行,缺点是诱导错误的“种子”与实际的原始错误之间的类比性估量困难。
失效率类模型。
这类模型用来研究程序的失效率,主要有下列内容。
Jelinski-Moranda的De-eutrophication 模型。
Jelinski-Moranda 的几何 De-eutrophication 模型。
Schick-Wolverton 模型。
改进的 Schick-Wolverton 模型。
Moranda的几何泊松模型。
Goal和 Okumoto 不完全排错模型。
曲线拟合类模型。
这类模型用回归分析的方法研究软件复杂性、程序中的缺陷数、失效率、失效间隔时间,包括参数方法和非参数方法两种。
可靠性增长模型。
这类模型预测软件在检错过程中的可靠性改进,用增长函数来描述软件的改进过程,这类模型如下:
Duane 模型。
Weibull 模型。
Wagoner 的 Weibull 改进模型。
Yamada 和 Osaki 的逻辑增长曲线。
Gompertz的增长曲线。
Duane 模型。
Weibull 模型。
Wagoner 的 Weibull 改进模型。
Yamada 和 Osaki 的逻辑增长曲线。
Gompertz的增长曲线。
程序结构分析模型。
程序结构模型是根据程序、子程序及其相互间的调用关系,形成一个可靠性分析网络。网络中的每一结点代表一个子程序或一个模块,网络中的每一有向弧代表模块间的程序执行顺序。假定各结点的可靠性是相互独立的,通过对每一个结点可靠性、结点间转换的可靠性和网络在结点间的转换概率,得出该持续程序的整体可靠性。这类模型如下。
Littewood 马尔可夫结构模型
Cheung的面向用户的马尔可夫模型,
Littewood 马尔可夫结构模型
Cheung的面向用户的马尔可夫模型,
输入域分类模型。
这类模型选取软件输入域中的某些样本“点”运行程序,根据这些样本点在“实际使用环境中的使用概率的测试运行时的成功/失效率,推断软件的使用可靠性。这类模型的重点(亦是难点)是输入域的概率分布的确定及对软件运行剖面的正确描述。这类模型如下。
Nelson 模型。
Bastani 的基于输入域的随机过程模型。
执行路径分析方法模型。
这类模型的分析方法与上面的模型相似,先计算程序各逻辑路径的执行概率和程序中错误路径的执行概率,再综合出该软件的使用可靠性。Shooman分解模型属于此类。
非齐次泊松过程模型。
非齐次泊松过程模型,即 NHPP,是以软件测试过程中单位时间的失效次数为独立泊松随机变量,来预测在今后软件的某使用时间点的累计失效数。这类模型如下。
Musa 的指数模型。
Goel和Okumoto的NHPP 模型:
S_型可靠性增长模型。
超指数增长模型。
Pham 改进的 NHPP 模型
Musa 的指数模型。
Goel和Okumoto的NHPP 模型:
S_型可靠性增长模型。
超指数增长模型。
Pham 改进的 NHPP 模型
马尔可夫过程模型。
这类模型如下,
完全改错的线性死亡模型
不完全改错的线性死亡模型。
完全改错的非静态线性死亡模型。
完全改错的线性死亡模型
不完全改错的线性死亡模型。
完全改错的非静态线性死亡模型。
贝叶斯分析模型。
这是利用失效率的试验前分布和当前的测试失效信息,来评估软件的可靠性。这是一类当软件可靠性工程师对软件的开发过程有充分的了解,软件的继承性比较好时具有良好效果的可靠性分析模型。这类模型如下。
。连续时间的离散型马尔可夫链。
。Shock 模型。
另外,Musa和 Okumoto 依据模型的不同属性对可性模型进行以下分类。
。时间域:有两种,自然或日历时间与执行(CPU)时间。
失效数类:取决于无限时间内发生的失效数是有限的还是无限的。
。失效数分布:相对于时间系统失效数的统计分布形式,主要的两类是泊松分布型和二项分布型。
。有限类:对有限失效数的类别适用,用时间表示的失效强度的函数形式。
。无限类:对无限失效数的类别适用,用经验期望失效数表示的失效强度的函数形式。
。连续时间的离散型马尔可夫链。
。Shock 模型。
另外,Musa和 Okumoto 依据模型的不同属性对可性模型进行以下分类。
。时间域:有两种,自然或日历时间与执行(CPU)时间。
失效数类:取决于无限时间内发生的失效数是有限的还是无限的。
。失效数分布:相对于时间系统失效数的统计分布形式,主要的两类是泊松分布型和二项分布型。
。有限类:对有限失效数的类别适用,用时间表示的失效强度的函数形式。
。无限类:对无限失效数的类别适用,用经验期望失效数表示的失效强度的函数形式。
可靠性模型举例
Jelinski-Moranda模型(JM模型)
模型假设
(1)软件系统中的初始错误个数为一个未知的常数,用表示。
(2)可靠性测试中发现的错误立即被完全排除,并且排除过程不引入新的错误,排除时间忽略不计。因此,每次排错之后,M就要减去1。
(3)在任何一个失效间隔区间,软件系统的失效率与系统中剩余的错误个数成正比比例常数用 Φ表示。
软件可靠性测试
软件可靠性测试是一种有效的软件测试和软件可靠性评价技术
组成
可靠性目标的确定
运行剖面的开发
测试用例的设计
测试实施
测试结果的分析等
定义软件运行剖面
一个产品有可能需要开发多个运行剖面,这取决于它所包含的运行模式和关键操作,通常需要为关键操作单独定义运行剖面。
可靠性测试用例设计
典型测试用例组成
(1)测试用例标识。
(2)被测对象。
(3)测试环境及条件。
(4)测试输入。
(5)操作步骤。
(6)预期输出。
(7)判断输出结果是否符合标准。
(8)测试对象的特殊需求。
重点考虑情况
可靠性测试实施
用时间定义的软件可靠性数据内容
(1)失效时间数据。记录发生一次失效所累积经历的时间。
(2)失效间隔时间数据。记录本次失效与上一次失效间的间隔时间,
(3)分组时间内的失效数。记录某个时间区内发生了多少次失效。
(4)分组时间的累积失效数。记录到某个区间的累积失效数。
测试过程的记录信息内容
(1)测试时间。
(2)含有测试用例的测试说明或标识。
(3)所有与测试有关的测试结果,包括失效数据。
(4)测试人员。
《软件可靠性测试报告》内容
软件产品标识。
测试环境配置(硬件和软件)。
测试依据。
测试结果。
测试问题。
测试时间。
软件可靠性评价
评估和预测软件可靠性过程
(1)选择可靠性模型,
(2)收集可靠性数据。
(3)可靠性评估和预测。
怎么选择可靠性模型
模型假设的实用性
模型假设是可靠性模型的基础,模型假设要符合软件系统的现有状况,或与假设冲突的因素在软件系统中应该是可忽略的。
预测的能力和质量
预测的能力与质量是指模型根据现在和历史的可靠性数据,预测将来的可靠性和失效概率的能力,以及预测结果的准确程度。
模型输出值能否满足可靠性评价需求
可以根据可靠性测试目的来确定那些模型的输出值满足可靠性评价需求
最重要的需要精确估计的可靠性定量指标
(1)当前的可靠度。
(2)平均无失效时间。
(3)故障密度。
(4)期望达到规定可靠性目标的日期。
(5)达到规定的可靠性目标的成本要求。
模型使用的简便性
(1)模型需要的数据在软件系统中应该易于收集,而且收集需要投入的成本不能超过可靠性计划的预算。
(2)模型应该简单易懂,进行可靠性分析的软件测试人员不会花费太多的时间去研究专业的数学理论,他们只需要知道哪些假设适用,需要收集哪些数据,能够得到哪些分析结果就可以了。
(3)模型应该便于使用,最好能用工具实现数据的输入。也就是说,测试人员除了输入可靠性数据外,不需要深入模型内部进行一些额外的工作。
可靠性数据的收集
收集工作中需解决问题
可靠性数据规范不统一,对软件进行度量的定义混乱
数据收集工作连续性不能保证
缺乏有效的数据收集手段
数据的完整性不能保证
数据质量和准确性不能保证
解决问题的办法
(1)及早确定所采用的可靠性模型,以确定需要收集的可靠性数据,并明确定义可靠性数据规范中的一些术语和记录方法,如时间、失效、失效严重程度类的定义,制定标准的可靠性数据记录和统计表格等。
(2)制定可实施性较强的可靠性数据收集计划,指定专人负责,抽取部分开发人员、质量保证人员、测试人员、用户业务人员参加,按照统一的规范收集记录可靠性数据。
(3)重视软件测试特别是可靠性测试产生的测试数据的整理和分析,因为这部分数据是用模拟软件实际运行环境的方法、模拟用户实际操作的测试用例测试软件系统产生的数据,对软件可靠性评价和预测有较高的实用价值。
(4)充分利用数据库来完成可靠性数据的存储和统计分析。一方面减少数据管理的混乱,一方面提高数据处理的效率。
软件可靠性的评价和预测
目的
为了评估软件系统的可靠性状况和预测将来一段时间的可靠性水平
需解答的问题
(1)判断是否达到了可靠性目标,是否达到了软件付诸使用的条件,是否达到了中止测试的条件。
(2)如未能达到,要再投入多少时间、多少人力和多少资金,才能达到可靠性目标或投入使用。
(3)在软件系统投入实际运行一年或若干时间后,经过维护、升级、修改,软件能否达到交付或部分交付用户使用的可靠性水平。
基于对可靠性模型的补充、完善和修正的辅助方法
(1)失效数据的图形分析法。运行图形处理软件失效数据,可以直观地帮助我们进行分析。图形指标如下。
① 累积失效个数图形,
②)单位时间段内的失效数的图形。
③失效间隔时间图形。
(2)试探性数据分析技术(ExploratoryDataAnalysis,EDA)。对于失效数据图形进行一定的数字化分析,能发现和揭示出数据中的异常。对可靠性分析有用的信息如下
① 循环相关。
②)短期内失效数的急剧上升。
③)失效数集中的时间段。
软件的可靠性设计与管理
软件可靠性设计
软件可靠性设计的原则
(1)软件可靠性设计是软件设计的一部分,必须在软件的总体设计框架中使用,并且不能与其他设计原则相冲突。
(2)软件可靠性设计在满足提高软件质量要求的前提下,以提高和保障软件可靠性为最终目标。
(3)软件可靠性设计应确定软件的可靠性目标,不能无限扩大化,并且排在功能度、用户需求和开发费用之后考虑。
软件可靠性设计技术
容错设计技术
常用容错技术
恢复快设计
恢复块设计就是选择一组操作作为容错设计单元,从而把普通的程序块编程恢复块
恢复块可以是模块、过程、子程序和程序段等
N版本程序设计
N版本程序的核心是通过设计出过个模块或不同版本,对于相同初始条件和相同输入的操作结果,实行多数表决,防止其中某一软件模块/版本的故障提供错误的服务,以实现软件容错
需注意点
① 使软件的需求说明具有完全性和精确性。这是保证软件设计错误不相关的前提,因为软件的需求说明是不同设计组织和人员的唯一共同出发点。
②)设计全过程的不相关性。它要求各个不同的软件设计人员彼此不交流,程序设计使用不同的算法、不同的编程语言、不同的编译程序、不同的设计工具、不同的实现方法和不同的测试方法。为了彻底保证软件设计的不相关性,甚至提出设计人员应具有不同的受教育背景,来自不同的地域、不同的国家。
冗余设计
改善软件可靠性的重要技术
实现原理
在一套完整的软件系统之外,设计一种不同路径、不同算法或不同实现方法的模块或系统作为备份,在出现故障时可以使用冗余的部分进行替换,从而维持软件系统的正常运行
检错技术
在软件出现故障后能及时发现并报警,提醒维护人员进行处理
实现代价一般低于容错技术和冗余技术,明细确定是不能自动解决故障,出现故障不进行人工干预,将最终导致软件系统不能正常运行
着重考虑要素
检测对象
监测点和检测内容
检测延时
实现方式
处理方法
降低复杂度设计
设计思想
在保证实现软件功能的基础上,简化软件结构,缩短程序代码长度,优化软件数据流向,降低软件复杂度,从而提高软件可靠性
软件复杂性是产生软件缺陷的重要根源
软件可靠性管理
目的
全面提高和保证软件可靠性
阶段内容
需求分析阶段
确定软件的可靠性目的
分析可能影响可靠性的因素
确定可靠性的验收标准
确定可靠性管理框架
制定可靠性文档编写规范
制定可靠性活动初步计划
确定可靠性数据收集规范
概要设计阶段
确定可靠性度量
制定详细的可靠性验收方案。
可靠性设计。
收集可靠性数据。
调整可靠性活动计划。
明确后续阶段的可靠性活动的详细计划。
编制可靠性文档。
编码阶段
可靠性测试(含于单元测试)
排错
调整可靠性活动计划
搜集可靠性数据
明确后续阶段的可靠性活动的详细计划
编制可靠性文档
测试阶段
可靠性测试(集成测试,系统测试)
排错
可靠性建模
可靠性评价
调整可靠性活动计划
搜集可靠性数据
明确后续阶段的可靠性活动的详细计划
编制可靠性文档
实施阶段
可靠性测试(含验收测试)
排错
搜集可靠性数据
调整可靠性模型
可靠性评价
编制可靠性文档
13.基于ODP(开放分布进程参考模型【RM-ODP】)的架构实践
分布式系统重要性质
开放性
整体性
灵活性
可塑性
联合性
可操作管理性
优质服务
安全性
透明性
视点
(1)企业视点:在如下因素的环境中分析系统,商业需求和策略、以及系统的范围和目的。RM-ODP处理可能会影响系统中的与企业相关的信息,如组织结构等。
(2)信息视点:指信息的结构,它的变化、流程以及在不同功能间的逻辑划分。
(3)计算视点:重点在于把系统分解为实体和实体间的接口。
(4)工程视点:处理分布式系统对象之间的交互,以及交互是如何得到支持的。
(5)技术视点:定义构成系统的硬件和软件构件。
系统架构开发的过程
系统构想
定义
只一个系统开发人员与系统用户之间共同的协议
构想描述建立了从需求分析开始的所有项目活动的语境,概括了企业业务架构的核心内容
架构师合理介入好处
(1)有利于使系统架构师本身对系统的看法更加全面、准确。
(2)有利于统一系统开发人员对系统的看法。
(3)有利于正确确定需求的优先次序。
(4)通过系统构想,可以在最大程度上提高客户对设计等过程的参与程度,更好地与客户沟通。
架构面临困难
对控制能力范围外的因素(例如组织等)通常是无能为力的
只有一个架构,构想会受到更多因素制约
架构师容易把架构看成独自的创造,认为合适的就进行修改,而可能欠缺考虑
由于招聘问题,架构师的能力以及理解不能得到保证
需求分析
架构需考察内容
系统范围对象关系图
用户接口原型
需求的适用性
确定需求的优先级
为需求建立功能结构模型
使用质量功能分配
需求分析的目的
完整、准确的描述用户对系统的需求,跟踪用户需求的变化,将用户需求准确反映到系统架构和设计中,设计和用户需求保持一致。
需求分析的特点
(1)完整性:是准确、全面地描述用户对系统架构的需求。
(2)一致性:是通过分析整理,剔除用户需求矛盾的方面,规范用户需求。
(3)验证性:是需求的一致性表现形式,主要包含以下几个方面的含义。
保持和用户要求的同步。
保持需求分析各侧面之间的一致。
保持需求和系统设计间的同步。
需求文档和架构
用例
每个用例都有一个相关需求的文字描述
定义用例应该和领域专家一起进行,不然只能是一种“伪分析”
用例为定义架构提供系统的领域行为模型
用户界面
用户外观、功能和导航和用例精密相关
一个有效定义屏幕的方法叫做低保真度原型
系统架构设计
企业业务架构
企业的业务和战略目标
企业的组织机构
业务的分类
各类业务之间的关系
组织机构与业务的关系
企业与外部机构的关系
逻辑信息架构
计算接口架构
分布式工程架构
技术选择架构
实现模型
架构原型
可解答问题
主要组件的责任是否得到了良好定义?是否适当?
主要组件间的协作是否得到了良好定义?
耦合是否得以最小化?
我们能否确定重用的潜在来源?
接口定义和各项约束是否可接受?
每个模块在执行过程中是否能访问到其所需的数据?是否能在需要时进行访问?
项目规划
规划内容
(1)项目的目的、范围、目标和对象。
(2)软件生存周期的选择。
(3)精选的供开发和维护软件用的规程、方法和标准。
(4)待开发的软件工作产品。
(5)软件工作产品的规模估计、软件项目的工作量和成本的估计。
(6)关键计算机资源的估计:项目的里程碑。
(7)风险的识别和评估。
(8)工程设施和支持工具计划
并行开发
可提高软件生产率(开发速度、提高生产率、缩短开发周期)和改善软件质量
并行开发研究内容
(1)软件过程及其模型。
(2)并行成分划分。
(3)并行控制。
(4)支持环境。
(5)交互机制与集成技术。
并行开发过程
核心问题
并行模块划分
设计质量的关键
模块独立性
一个开发小组负责一个模块开发
并行模块划分方法
(1)基于Petri 网系统模型的动态划分方法。
(2)基于脚本的系统划分方法。
系统转换
指运用某一种方式由新的系统代替旧的系统的过程,也就是系统设备、系统数据和人员等方面的转换
转换方式
直接转换
平行转换
分段转换
分批转换
转换注意事项
(1)新系统的运行需要大量的基础数据,这些数据的整理与录入工作量很大,应及早准备,尽快完成。
(2)系统的转换不仅仅是机器的转换、程序的转换,更难的是人员的转换,应提前做好人员的培训工作。
(3)系统运行时会出现一些局部性的问题,这是正常现象。系统工作人员对此应有足够 的准备,并做好记录。系统只出现局部性问题,说明系统是成功的:反之,如果出现致命问题,说明系统设计质量不好,整个系统甚至要重新设计。
操作与维护
内容
数据管理与维护
机器设备的管理与维护
系统软件的管理与维护工作
系统维护与架构
可维护性评价指标
可理解性
可测试性
可修改性
维护工作
更正性维护
适应性维护
完善性维护
预防性维护
维护步骤
系统移植
不可修改已有的软件
高位互换
仿真功能
虚拟机功能
修改软件
把已有软件资源,即层序、数据、计算机应用方法及各种说明书转换为与新机器具有匹配性的软件
重编软件
从逻辑设计开始
从程序设计开始
从编程开始
工作阶段划分
计划阶段
准备阶段
转换阶段
测试阶段
验证阶段
移植工具
(1)分析工具:是分析现有软件资源,得到探讨移植方法有用信息的工具。
(2)生成工具:是编制作业控制语言、测试数据、转换工作所需文档的工具。
(3)转换工具:包括程序转换、数据转换和作业控制语言转换。
(4)数据应用工具:使用这种工具不用编文件就可以简便地存取磁带上的数据
(5)测试、验证工具:作为可分类的工具包括静态、动态跟踪。
(6)管理工具:是管理资源及作业的工具。
14.层次式架构设计
表现层架构设计
MVC模式设计
核心模块
控制器(Comtroller)
模型(Model)
视图(View)
优点
允许多种用户界面的扩展
易于维护
功能强大的用户界面
XML设计表现层,统一web form 与windows form 的外观
从设计模式角度出发,XML表现层解析机制是一种策略模式
表现层中UIP设计思想
UIP(User Interface Process Application Block)是微软社区开发的众多Application Block中的其中之一,开源,UIP提供了一个扩展框架,用于简化用户界面与商业逻辑代码的分离方法,可以用它来写复杂的用户界面导航和工作流处理,并且它能够复用在不同的场景、并可以随着应用的增加而进行扩展
UIP表现层分层
User Interface Components
这个组件是原来的表现层,用户看到的和进行交互的都是这个组件,它负责获取用户的数据并返回结果
User Interface Process Components
这个组件用于协调用户界面的各部分,使其配合后台的活动,例如导航和工作流控制,以及状态和视图的管理
主要负责功能
管理经过User interface components的信息流
管理UIP中各个事件之间的事务
修改用户过程的流程以响应异常
将概念上的用户交互流程从实现或者设计的设备上分离出来
保持内部的事务关联状态,通常是持有一个或者多个的与用户交互的实物实体
表现层动态生成设计思想
中间层架构设计
业务逻辑层组件设计
业务逻辑组成
接口
接口用于定义业务逻辑组件,定义业务逻辑组件必须实现的方法是整个系统运行的核心
实现
业务逻辑层工作流设计
业务逻辑层实体设计
业务逻辑层框架
业务框架位于系统架构的中间层,是实现系统功能的核心组件
业务层实现(Domain Model——Service——Control思想)
Domain Model是领域层业务对象,仅仅包含业务相关的属性
Service是业务过程实现的组成部分,是应用程序的不同功能单元,通过在这些服务之间定义良好的接口和契约联系起来
Controller服务器控制器,是服务之间的纽带,实现不同服务之间的切换
子主题
Domain Model——Service——Control互动关系
Service的运行会依赖于Domain Model的状态,反之,Service也会更具业务规则改变Domain Model的状态
Control作为服务控制器,根据Domain Model的状态和相关参数决定Service之间的执行顺序及相互关系
数据访问层设计(持久层架构设计)
5中数据访问模式
在线访问
DataBase Access Object(DAO)
含有组件
一个DAO工厂类
一个DAO接口
一个实现了DAO接口的具体类
数据传输对象
DataBase Transfer Object(DTO)
设计选择
使用编程语言内置的集合对象,通常只需要一个类就可以在整个应用程序中满足任何数据传输目的,而且几乎所有的编程语言都内置集合类型,不需要另外编写实现代码
通过创建自定义类来实现DTO对象,通过定义显示的get或是set方法来访问数据
离线数据模式
以数据为中心,数据从数据源获取之后,将按照某种预定义的结构存在系统中,成为应用的中心
对象/关系映射(Object/Relation Mapping,O/R Mapping)
大多数应用中的数据都依据关系模型存储在关系型数据库中,应用程序中的数据在开发或是运行时则是以对象的形式组织起来。
工厂模式在数据访问层的应用
ORM数据库框架
ORM、Hibernater与CMP2.0设计思想
ORM
Hibernater
灵活运用XML Schema
XML Schema规范
1)XML Schema PartO:Primer.个非标准化的文档,提供了XMLSchema的一个简单可读的描述,目的是快速地理解如何利用XMI Schema语言创建一个 Schema(框架)。
(2)XM Schema Partl:Structures。这一部分详细说明了 XL, Schema 定义语言,这个语言为描述 XML 1.0文档的结构和内容限制提供了便利,包括开发了XMNamespace(命名空间)的使用。
(3)XML, Schema Part2:Datatypes。这一部分定义了可用于'XML Schema 和其他XML,规范中的定义数据类型的方法。这个数据类型语言,本身由XL1.0自描述,提供了说明元素和属性数据类型的XML1.0文档类型定义(DTD)的一个超集。这部分提出了标准的数据类型内容集合,其中讲述了目的、需求、范围和术语。XML Schema与 DTD相比,有其独特的特点,提供了丰富的数据类型,实现了继承和复用,与命名空间紧密联系,易于使用。
事务处理设计
如果一组处理步骤或者全部发生或者一步页不执行,我们称该组处理步骤为一个事务
当所有的步骤项一个操作一样被完整的执行,我们称该事物被提交
由于其中的一部分或多步执行失败,导致没有步骤被提交,则事务必须回滚(回到最初的系统庄涛)
事务必须服从ACID原则
原子性(atomicity)
表示事物执行过程中的任何失败豆浆导致事务所做任何修改失效
一致性(consistency)
表示事物执行失败时,所有该事物影响的数据都应该恢复到事务执行前的状态
隔离性(isolation)
事务执行过程中对数据的修改,在事务提交之前对其他事物不可见
持久性(durability)
表示已提交的数据在事务执行失败时,数据的状态都应该正确
连接对象管理设计
资源池(数据库连接池)
解决资源频繁分配、释放所在成的问题
数据架构规划与设计
数据库设计与类的设计融合
数据库设计与XML设计融合
.Net中标准BS分层式结构
实战案例(网上商店PetShop)
PetShop2.0架构
没有明显数据访问层
提高了数据访问性能
导致业务逻辑层与数据访问的职责混乱
要求支持的数据库发生变化或需要修改数据访问逻辑,会导致项目做大修改
PetShop3.0
将数据访问逻辑单独为一层
分层导致的性能影响可以利用缓存、异步处理等机制解决
PetShop4.0
引入缓存和异步处理机制
数据访问层模型结构图
业务逻辑层模块结构图
表现层模块结构
15.企业集成架构设计
集成平台应用架构
企业集成平台的优点
应用系统维护和扩展的难度及费用大为减少
在异构分布环境下的应用通过接口集成到平台,共享平台所拥有的资源
降低集成的复杂度,提高集成的有效性
企业集成平台的基本功能
通信服务
提供分布环境下透明的同步/异步通讯服务功能
信息集成服务
为应用提供透明的信息访问服务,通过实现异种数据库系统之间数据的交换、互操作、分布数据管理和共享信息模型定义(或共享信息数据库的建立),使集成平台上运行的应用、服务或用户端能够以一致的语义和接口实现对数据(数据库、数据文件、应用交互信息)的访问与控制。
应用集成服务
通过高层应用编程接口实现对相应应用程序的访问
二次开发工具
是集成平台提供的一组帮助用户开发特定应用程序(如实现数据转换的适配器或应用封装服务等)的支持工具,其目的是简化用户在企业集成平台实施过程中(特定应用程序接口)的开发工作。
平台运行管理工具
企业集成平台的运行管理和控制模块,负责系统的静态和动态配置,运行管理和维护、时间管理和出错管理等
企业集成平台12层OSI模型
实现技术的发展趋势
集成技术实现从2层到N层过度
两层实现
N层实现
集成支持方式从面向信息集成扩充到面向过程集成,服务集成
面向信息集成
针对设计、制造和管理部门中大量存在的自动化孤岛和信息孤岛而提出,目的是为了解决企业内不同应用和系统间的数据共享和集成
主要用于企业内的数据库和数据源
实现方式
数据复制
数据捆绑
基于接口的信息集成
面向过程集成
通过工作流引擎对企业内业务流程模型的执行来实现业务应用数据或信息在不同应用、子过程或执行任务的人员之间流动
面向服务集成
为支持大范围内的公共业务过程集成而提出的一种动态集成方式,可以较好的实现具有松散耦合关系的不同应用间的互操作
集成规范的标准化程度不断提高
所支持的集成耦合度及集成的粒度的变化
集成平台产品发展主要趋势
与商业工作流产品的融合发展
与底层集成服务器产品的融合发展
兼容点到点(Point-to-Point)集成和端到端(End-to-End)集成
基于模型的集成与协调
企业集成平台的实现
数据集成
为平台上运行的各种应用、系统或服务,提供具有完整性、一致性和安全性的数据访问、信息查询及决策支持服务
数据集成三种模式
数据联邦
数据联邦是指不同的应用共同访问一个全局虚拟数据库,通过全局虚拟数据库管理系统为不同的应用提供全局信息服务,实现不同的应用和数据源之间的信息共享和数据交换,其具体实现由客户端应用、全局信息服务和若干个局部数据源三部分组成。
数据复制
在数据复制模式中,通过底层应用数据源之间的一致性复制来实现(访问不同数据库的)不同应用之间的信息共享和互操作,其实现的关键是必须能够提供在两个或多个数据库系统之间实现数据转换和传输的基础结构(以屏蔽不同数据库间数据模型的差异)。
基于接口的数据集成
在基于接口的数据集成模式中,不同的应用系统之间利用适配器(或接口代理)提供的应用编程接口来实现相互调用。应用适配器或接口代理通过其开放或私有接口将业务信息从其所封装的具体应用系统中提取出来,进而实现不同的应用系统之间业务数据的共享与互交换。接口调用的方式可以采用同步调用方法,也可以采用基于消息中间件的异步方法来实现。
应用集成
指两个或多个应用系统根据业务逻辑的需要而进行的功能之间相互调用和互操作
集成模式
适配器集成模式
信使集成模式
面板集成模式
代理集成模式
企业集成
在软件系统具体实现上分类
单层架构系统
两层结构系统
三层结构系统
N层结构系统
运行的实现策略上分类
前端集成模式
后端集成模式
混合集成模式
企业集成的关键技术
数据交换格式
EDI
EDI(Electronic Data Interchange,电子数据交换)是一种利用计算机进行商务处理的方法,它将贸易、运输、保险、银行和海关等行业的信息,用一种国际公认的标准格式,通过计算机通信网络,供有关部门、公司与企业之间进行数据交换与处理,并完成以贸易为中心的全部业务过程。
XML
STEP
STEP 标准(Standard for the Exchange ofProduct Model Data)是一个描述如何表达和交换数字化产品信息的ISO标准(IS010303),其目的是提供一种不依赖于具体系统的中性模型和机制,并将其用来描述整个生命周期内的产品数据。
PDML
分布式应用集成基础框架
CORBA
CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是对象管理组织(OMG)为解决分布式处理环境中硬件和软件系统的互连而提出的一种标准的面向对象应用程序体系规范。
OMG
子主题
COM+
J2EE
基于J2EE的应用集成架构
Web Service
面向整体解决方案的企业模型
企业模型在整体解决方案中的作用
企业模型可以为信息化整体解决方案提供对企业公共一致的、规范的表达和描述
建模和基于模型的分析是企业信息化工作的入手点和建立有效的实施途径的基础
建模可以对信息系统规划方案进行预评价
基于模型的工作流执行可以导航和监控个信息系统之间及信息系统与外界的交互
整体解决方案中的企业模型重用
重用的通用性层次
通用层
部分通用层
专用层
基于参考模型建立企业模型实现过程
参考模型的选择
(1)确定企业建模的目标和基本需求。
(2)划定企业建模的范围。企业建模可以覆盖整个企业,也可以覆盖企业的某一部分。
(3)提出候选参考模型。参考模型的选择要依据企业规模相关性、行业相关性、产品相关性、生产经营模式相关性和领域相关性等准则。
(4)确定最终使用的参考模型。在候选参考模型中,经过进一步的分析和评价,最终确定一个或一组参考模型。
参考模型的实例化
(1)继承:将参考模型中的模型构件或组件直接继承为企业应用模型的一部分
(2)剪裁:对选取的参考模型,根据企业建模的目的和范围,进行适当的剪裁,作为企业应用模型的一部分。
(3)细化:在参考模型的基础上,根据企业建模的目的和需求,对模型中的某些部分作进一步的分解、细化和完善。
(4)扩充:按照参考模型的结构,对参考模型没有覆盖的企业建模范围加以扩充,形成企业应用模型。
(5)修改:对参考模型中的某些部分按照企业的实际需要进行修改,或者对参考模
企业模型的三个层次关系
企业模型液化
子主题
基于企业模型的集成系统演化模式
16.面向方面的编程(AOP)
基本思想
将传统的按功能或对象划分程序模块的方法转化为按系统特征划分程序模块
方面的定义
一个设计用于捕捉应用程序横切面功能的程序单位
方面的组成
切入点
定义程序中要执行代码处的点
通知代码
要执行的代码
方面的非功能的服务和方面
安全性和权限问题
依赖性的颠倒
AOP组成
(1)join point(连接点):是程序执行中的一个精确执行点,例如类中的一个方法。它是一个抽象的概念,在实现 AOP 时,并不需要去定义一个joim point。
(2)point cut(切入点):本质上是一个捕获连接点的结构。在AOP中,可以定义一个 point cut,来捕获相关方法的调用。
(3)advice(通知):是pointcut 的执行代码,是执行“方面”的具体逻辑。(4)aspect(方面):pointcut和 advice 结合起来就是 aspect,它类似于 OOP 中定义的一个类,但它代表的更多的是对象间横向的关系。
(5)introduce(引入):为对象引入附加的方法或属性,从而达到修改对象结构的目的。有的 AOP 工具又将其称为 mixing。
AOP特性
可扩展性
可重用性
易理解性和易维护性
AOP程序设计步骤
1)将系统需求进行功能性分解,区分出普通关注点以及横切关注点,确定哪些功能是组件语言必须实现的,哪些功能可以以 aspect的形式动态加入到系统组件中。
(2)单独完成每一个关注点的编码和实现,构造系统组件和系统aspect。这里的系统组件,是实现该系统的基本模块,对OOP语言,这些组件可以是类:对于过程化程序设计语言,这些组件可以是各种函数和API。系统aspect是指用AOP语言实现的将横切关注点封装成的独立的模块单元。
(3)用联结器指定的重组规则,将组件代码和 aspect代码进行组合,形成最终系统。为达到此目的,应用程序需要利用或创造一种专门指定规则的语言,用它来组合不同应用程序片断。这种用来指定联结规则的语言可以是一种已有编程语言的扩展,也可以是一种完全不同的全新语言。将以上过程用图18-3的形式来表示,该图中将系统需求看作一束光线,需求光束通过可标识关注点的棱镜将每个关注点区分开,形成单独关注点的实现,最后通过另一个 Weaver棱镜将这些关注点整合,形成最终的应用程序。
AspectJ
一个语言规范,也是一个AOP语言实现
连接点
方法的调用(call)和执行(execution)
构造器(constructor)的调用和执行
对属性(field)的读写访问
异常处理的执行
对象和类的初始化执行
切入点
用来指明所需连接点的程序构造,可用来指明一系列的连接点
通知
通知指定当到达特定切入点处应执行的代码
方面
是AspectJ的模块单元
Springboot AOP
spring
重要概念
(1)方面:一个关注点的模块化,这个关注点的实现可能横切另外多个对象。事务管理是 J2EE 应用中一个很好的横切关注点例子。方面用Spring的 Advisor 或拦截器实现。
(2)连接点:程序执行过程中明确的点,如方法的调用或特定的异常被抛出。
(3)通知:在特定的连接点,AOP框架执行的动作。各种类型的通知包括 around、before 和 throws 通知。许多 AOP 框架包括 Spring 都是以拦截器做通知模型,维护一个“围绕”连接点的拦截器链。
(4)切入点:指定一个通知将被引发的一系列连接点的集合。AOP框架必须允许开发者指定切入点。例如,使用正则表达式。
(5)引入:添加方法或字段到被通知的类。Spring允许引入新的接口到任何被通知的对象。例如,可以使用一个引入使任何对象实现IsModifed接口,来简化缓存。(6)目标对象:包含连接点的对象。也被称作被通知或被代理对象。
(7)AOP 代理:AOP 框架创建的对象,包含通知。在Spring中,AOP 代理可以是JDK 动态代理或者 CGLIB 代理。
(8)织入:组装方面来创建一个被通知对象。这可以在编译时完成(例如使用 Aspect]编译器),也可以在运行时完成。Spring和其他纯Java AOP 框架一样,在运行时完成织入。
17.嵌入式系统设计
嵌入式系统
嵌入式系统特点
系统专用性强
系统实时性强
软、硬件依赖性强
处理器专用
多种技术精密结合
系统透明性
系统资源受限
实时嵌入式系统
兼有实时系统的特性和嵌入式系统特性的系统
嵌入式系统分类
根据嵌入式方式分类
整机式嵌入
部件式嵌入
芯片式嵌入
根据嵌入程度分类
深度嵌入
中度嵌入
浅度嵌入
根据实时性分类
实时嵌入式系统
非实时嵌入式系统
根据系统复杂度分类
单微处理器嵌入式系统
组件式嵌入式系统
分布式嵌入式系统
嵌入式系统的应用领域
工业控制领域
家电领域
商业和金融领域‘’
交通运输领域
通信领域
建筑领域
环境检测领域
医疗卫生领域
嵌入式系统基本架构
典型嵌入式系统硬件架构
微处理器
嵌入式系统核心,负责控制系统的执行
分类
嵌入式微处理器
嵌入式微控制器
嵌入式数字型号处理器
嵌入式片上系统
基于linux的嵌入式软甲架构
嵌入式操作系统
特点
微型化
代码质量高
专业性
实时性强
可载减、可配置
分类
获取形式上分类
商业型
非商业型
根据实时性分类
实时嵌入式操作系统
非实时嵌入式操作系统
嵌入式操作系统一般结构
内核部件
嵌入式操作系统的多任务调度
基本概念
任务
任务对象
多任务
调度器
可调度实体
上下文切换
可重入性
分发器
调度算法
优先级
调度算法
任务优先级分配方法
时间轮转调度
任务操作
嵌入式系统的内核对象
信号量
消息队列
管道
事件
信号等
嵌入式系统内核服务
异常和中断
计时器
I/O管理
内存管理内容
嵌入式系统中固定尺寸内存池的内存管理
阻塞与非阻塞的内存函数
硬件内存管理单元
同步与通信
典型嵌入式操作系统
子主题
子主题
嵌入式数据库管理
嵌入式数据库管理系统使用环境的特点
设备随时移动性
网络频繁断接
网络条件多样化
通信能力不对称
嵌入式数据库管理系统组成
主数据库管理系统
同步服务
嵌入式数据库管理系统
连接网络等
嵌入式数据库管理系统特性和功能
微核结构
对标准SQL的支持
事务管理功能
万三的数据同步机制
支持多种连接协议
完备的嵌入式数据库管理功能
支持多种嵌入式操作系统
嵌入式网络
是用于连接各种嵌入式系统,让其可以互相传递信息、共享资源的网络系统
现场总线网
将数字传感器、交换机、工业仪表及控制执行机构等现场设备与工业过程控制单元、现场操作站等相互连接而成的网络
优点
全数字化
全分布
双向传输
自诊断
节省布线及控制室空间
多功能
开放性
互操作性
智能化与自治性
家庭网络网
把家庭范围内的个人计算机,家用电器、水、电、气仪表,照明设备和网络设备及安全设备等连接在一起的局域网
无线数据通信网
通过无线电波传送数据的网络系统
嵌入式英特网
其它
嵌入式系统的其它支撑软件
嵌入式窗口系统
嵌入式窗口系统实例分析
嵌入式系统的Java虚拟机
嵌入式系统的设计
设计的核心技术
处理器技术
处理器技术与实现系统功能的计算引擎结构有关,不可编程的数字系统也可以视为处理器,这些处理器的差别在于其面向特定功能的专用化程度,导致其设计指标与其他处理器不同。
分类
通用处理器
可用于不同类型的应用,无法得知处理器将会运行何种运算,无法用数字电路建立程序
单用途处理器
设计用于执行特定程序的数字电路,如协处理器、加速器和外设等
专用处理器
专用指令集成处理器是一个可编程处理器,针对某一特定类型的应用进行最优化
IC技术
全定制/VLSI
半定制ASIC
可编程ASIC
设计或验证技术
主要包括硬件设计技术和软件设计技术
系统设计流程过程
评估用户的需求采用计算机的必要性
用户需求调查与分析,并提炼出规格说明
选择处理器
制定系统方案
软、硬件分别设计
实验室联调
现场调试和试运行
鉴定和验收
嵌入式软件设计模型
状态机模型
有限状态机
特点
(1)输出由当前的输入和当前的状态决定。这是状态机模型和组合模型之间的最大区别。
(2)当前的状态由过去的输入决定。很显然,一个对象之所以拥有当前状态,是因为它在此前经历过初始化并响应过若干次外界的操作请求(即接受了外界的输入)
(3)当前的状态是上一步输出的反映。被测对象处于当前状态的直接原因是对象对上一次的输入做了有效的回应,即产生了上一步的输出。
(4)输出受输入顺序的影响。因为对状态机模型而言,当前状态加上当前输入才可以得到预期的输出。如果把当前输入放在上一步输入之前,那时状态机既然不是处于当前状态之下,就无法得到预期的输出了。
数据流模型
布尔数据流
层次化的流图
Petri网
并发进程模型
CSP
CCS
面向对象模型
0 条评论
下一页