1 信息系统与信息化
1.1 信息质量属性
- 精确性:对事物状态描述的精准程度
- 完整性:对事物状态描述的全面程度,完整信息应包括所有重要事实
- 可靠性:指信息的来源、采集方法、传输过程是可信任的,符合预期的
- 及时性:指获取信息的时刻与事件发生时刻的间隔长短
- 经济性:指信息获取、传输带来的成本在可以接受的范围之内
- 可验证性:指信息的主要质量属性可以被证实或者伪造的程度
- 安全性:指在信息的生命周期中,信息可以被非授权访问的可能性,可能性越低,安全性越高
1.2 信息传输模型
- 信息是有价值的客观存在。信息只有流动起来才能体现其价值,因此,信息的传输技术(通常指通信、网络等)是信息技术的核心。信息的传输模型如图所示:
1.3 信息化
-
信息化从小到大分为五个层次:
- 产品信息化:产品信息化是信息化的基础。例:智能电视、集成了车载电脑系统的小轿车
- 企业信息化:企业信息化指企业在产品的设计、开发、生产、管理、经营等多个环节中广泛应用信息技术。例:生产制造系统、ERP、CRM、SCM
- 产业信息化:比如服务业
- 国民经济信息化
- 社会生活信息化:比如智慧城市
-
信息化的基础内涵
- 信息化的主体:全体社会成员
- 信息化的手段:基于现代信息技术的先进社会生产工具
- 信息化的途径:创建信息时代的社会生产力,推动社会生产关系及社会上层建筑的改革
- 信息化的目标:使国家的综合实力,社会的文明素质和人民的生活质量全面提升
-
国家信息化体系:
1.4 信息化系统的生命周期
- 四大:立项、开发、运维、消亡
- 五小:系统规划、系统分析【逻辑模型】、系统设计【物理模型】、系统实施、运行维护
- 二者对应关系:
2 开发方法
2.1 结构化开发方法
- 自顶而下,逐步求精,模块化设计
- 特点:开发目标清晰化、开发工作阶段化、开发文档规范化、设计方法结构化
- 适用于:数据处理领域
- 不适应:规模大、比较复杂的系统开发
- 局限性:开发周期长,难于适应需求变化,很少考虑数据结构
2.2 面向对象的方法
- 自底而上的开发
- 对于大型项目:结构化方法自顶而下的整体划分,面向对象自底而上的开发
2.3 原型化方法
- 特点:
- 开发周期短,成本风险降低,速度加快
- 以用户为中心
- 用户参与系统开发全过程,对系统功能结构容易理解
- 适用于:需求不明确的系统开发
- 分类
- 按是否实现功能:水平原型【界面】、垂直原型【算法】
- 按最终结果划分:抛弃式原型【原型展现给客户,后期不适用】、演化式原型【后期开发在原型的基础上】
2.4 面向服务的方法
- 特点:提高系统可复用性,信息资源共享,系统之间互操作性
3 常规的信息系统集成技术
3.1 网络标准和网络技术
-
OSI协议
- IEEE 802.11 无线局域网协议
- TCP/IP协议是Internet的核心
-
TCP/IP协议
-
应用层协议
- FTP(文件传输协议):运行在TCP之上。FTP在客户机和服务器之间建立两条TCP连接,一条用于传送控制信息(21端口),一条用于传送文件内容(20端口)
- TFTP(简单文件传输协议):建立在UDP之上。使用场景:局域网内向嵌入式设备上传文件
- HTTP(超文本传输协议):用于从WWW服务器传输超文本到本地浏览器的传输协议
- SMTP(简单邮件传输协议):建立在TCP之上。一种提供可靠且有效的电子邮件传输
- DHCP(动态主机配置协议):建立在UDP之上,实现自动分配IP地址
- Telnet(远程登录协议):建立在TCP之上。允许用户登录进入远程计算机系统
- DNS(域名系统):建立在UDP之上,实现域名解析
- SNMP(简单网络管理系统):用以监测连接到网络上的设备是否有任何引起管理上关注的情况
-
传输层协议
- TCP提供了一个可靠的、面向连接的、全双工的数据传输服务。一般用于传输数据量比较少,且对可靠性要求高的场合。
- UDP是一种不可靠、无连接的协议,可以保证应用程序进程间的通信。一般用于传输数据量大,对可靠性要求不是很高,但要求速度快的场合。
-
网络层协议
- IP:提供无连接、不可靠的服务
- ICMP(网络控制报文协议):一种专门用于发送差错报文的协议,即传送的数据可能丢失、重复、延迟、或乱序传递,所以需要一种尽量避免差错并能发生差错并能发生差错时报告的机制。
- IGMP(网际组管理协议):允许Internet中计算机参加多播,是计算机用做向相邻多路由器报告多目组成员的协议
- ARP(地址解析协议):用于动态地完成IP到物理地址的转换
- RARP(反向地址解析协议):用于动态完成物理地址向IP地址的转换
-
3.2 网络存储技术
- 主流的网络存储技术有三种
-
直接附加存储(Direct Attached Storage, DAS)
- 存储设备通过SCSI电缆连接到服务器
- 适用于:直接连接到服务器【硬盘】
-
网络附加存储(Network Attached Storage, NAS)
- 通过网络接口与网络直接相连,用户通过网络访问
- 支持即插即用、支持多种TCP/IP协议
- 主要是NFS(网络文件存储系统)、CIFS(通用Internet文件)来进行文件访问
-
存储区域网络(Storage Area Network, SAN)
- 通过专用交换机将磁盘阵列与服务器连接起来的高速专用子网
- 根据数据传输过程采用的协议,其技术划分为:FC SAN, IP SAN, IB SAN
- FC SAN(光纤存储区域网络):
- 三个基本组件构成:接口(SCSI、FC)、连接设备(交换机、路由器)和协议(SCSI、IP)
- 优点:允许独立、动态地增加存储设备,使得管理和集中控制更加简化
- 缺点:成本高、复杂
- IP SAN
- 基于IP网络实现数据块级别存储方式的存储网络
- 优点:设备成本低、配置技术简单、可共享和使用大容量的存储空间
- IB SAN(无线宽带)
- 通过一套中心机构在远程存储器、网络、服务器等设备之间建立一个单独的连接链路,并由IB交换机来指挥流量。
- 优点:提高了系统的性能、可靠性、有效性,能缓解设备之间的数据流量拥塞
- FC SAN(光纤存储区域网络):
-
3.3 网络规划与设计
-
2019.6.6,工信部正式向中国电信、中国移动、中国联通、中国广电发放5G商用牌照
-
5G速率:1Gbps
-
网络设计
-
核心层
- 目的是通过高速的转发通信,提供优化,可靠地骨干传输结构。因此,核心层交换机应拥有更高的可靠性、性能和吞吐量
-
汇聚层
- 完成网络访问策略控制、数据包处理、过滤、寻址、以及其他数据处理任务
-
接入层
- 直接面向用户连接,具有低成本、高密度的特性
-
3.4 数据库
- 关系型数据库:Oracle、MySql、SQLServer
- 非关系型数据库:MongDB
3.5 数据仓库
-
定义:一个面向主题的、集成的、非易失的,且随时间变化的数据集合,用于支持管理决策
-
数据源:是数据仓库系统的基础,是整个系统数据源泉
-
数据的存储与管理:是整个系统数据仓库系统的核心
-
OLAP(联机分析处理):对分析需要的数据进行有效的集成,按多维名予以组织,以便进行多角度、多层次的分析,并发现趋势。
3.6 中间件
-
定义
- 在一个分布式系统环境中,处于操作系统与应用程序之间的软件
- 一种独立的系统软件或服务程序
-
从底向上可将中间件进行划分:底层中间件、通用型中间件、集成型中间件
- 底层中间件:JVM, JDBC, ODBC等
- 通用型中间件:CORBA, J2EE, MOM, COM
- 集成型中间件:WorkFlow, EAI
-
中间件的应用
- 为了完成系统底层传输层集成,可采用CORBA技术
- 为了完成不同系统的信息传递,可以采用消息中间件产品
- 为了完成不同硬件和操作系统的集成,可以采用J2EE中间件产品
-
高可靠性和高可用性
- 可用性:系统能够正常运行的时间比例。可用性度量:
- 无故障时间/(无故障时间+故障恢复时间)*100%
- 可靠性:软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力
- 可用性:系统能够正常运行的时间比例。可用性度量:
4 软件工程
4.1 需求分析
-
需求的层次
- 业务需求:指反应企业或客户对系统高层次的目标要求
- 用户需求:用户的具体目标,或用户要求系统必须能完成的任务
- 系统需求:从系统的角度来说明软件的需求
- 功能需求:系统为用户提供的功能与服务
- 非功能需求:用户必须具备的属性和品质,例:易用性、可维护性和效率
- 设计约束:对系统的约束说明,例:系统必须运行在Linux下
-
质量功能部署(Quality Function Deployment, QFD)
- 一种将用户需求转换为软件需求的技术
- 包括三种:常规需求、期望需求、意外需求
-
需求分析
-
完整的需求分析过程包括:获取用户需求、分析用户需求、编写需求说明书、需求评审
-
需求获取方法:用户访谈、问卷调查、采样、情节串联板、联合需求计划等
-
结构化分析方法进行需求分析
-
结构化分析(Structured Analysis, SA):建立模型的核心是数据字典
-
模型
- 实体联系图(E-R图):表示数据模型【对用在数据库中,表示实体关系,便于创建表】
- 数据流图(Data Flaw Diagram, DFD):表示功能模型【数据流由一组固定成分的数据组成,表示数据的流向】
-
状态转换图(State Transform Diagram, STD):表示行为模式
-
-
-
软件需求规格说明书
- 使干系人对系统初始规定有一个规定的理解
- 包括:范围、引用文件、需求、需求可追踪性、合格性规定、尚未解决的问题、注解、附录
-
需求验证/需求确认
- 通过需求评审和需求测试对需求进行验证
-
UML
-
一种建模语言
-
关系
- 依赖(dependency):是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。
-
关联(association):是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师和学生、师傅和徒弟、丈夫和妻子等。
-
泛化(generalization):是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系。例如,Student类和Teacher类都是Person类的子类。
- 实现(realization):是接口与实现类之间的关系。例如,汽车和船实现了交通工具。
-
图
-
类图、对象图、用例图、顺序图、定时图、状态图、活动图、部署图、包图、构件图、组合结构图、制品图、通信图
-
类图
-
-
视图
- 逻辑视图
- 进程视图
- 实现视图
- 部署视图
- 用例视图
-
4.2 软件架构设计
-
软件架构风格
- 数据流风格:批处理序列、管道/过滤器
- 调用/返回风格:主/子程序、数据抽象和面向对象、层次结构
- 独立构件风格:进程通信、事件驱动
- 虚拟机风格:解释器、基于规则
- 仓库风格:数据库系统、黑板系统、超文本系统
-
软件架构评估
- 关注点:系统的质量属性
- 敏感点和权衡点
- 敏感点:一个或多个构件的特性
- 权衡点:影响多个质量属性的特性
- 评估方式
- 基于调查问卷(检查表)的方式
- 基于场景的方式:分析软件架构对场景的支持程度
- 用一系列对软件修改来反应易修改性方面的需求
- 用一系列攻击性操作来代表安全性方面的需求等
- 基于度量的方式
4.3 软件设计
- 在结构性设计中,一个基本的原则:高内聚、低耦合
4.4 软件工程的过程管理
-
在软件过程管理方面,最著名的是能力成熟度模型集成CMMI
-
CMMI继承了CMM的阶段式表示法和EIA的连续式表示法
-
两种方法各有优缺点,均采用统一的24的过程域,他们在逻辑上是等价的,对同一组织采用阶段式模型和连续式模型分别进行CMMI评估,得到的结论应该是相同的
4.5 软件测试
-
测试的方法:静态测试和动态测试
- 静态测试:包括对文档的静态测试和对代码的静态测试。对文档的静态测试主要以检查单的形式进行;对代码的测试一般采用桌前检查、代码走查、代码审查
- 动态测试:指在计算机上实际运行程序进行软件测试。一般采用白盒测试和黑盒测试
- 白盒测试/结构测试
- 主要思想:将程序看做成一个透明的白盒,测试人员完全清楚程序的结构和算法,按照程序内部逻辑结构设计测试用例。
- 应用:软件单元测试
- 方法:控制流测试、数据流测试、程序变异测试
- 最常用的技术:逻辑覆盖。主要覆盖标准:语句覆盖、判定覆盖、条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径覆盖
- 黑盒测试/功能测试
- 主要思想:将测试看做是一个不透明的黑盒,完全不考虑程序内部结构和处理算法
- 应用:集成测试、确认测试、系统测试
- 方法:等价类划分、边界值分析、判定表、因果图、状态图、随机测试、正交验证法等
- 白盒测试/结构测试
-
测试的类型
- 单元测试、集成测试、系统测试、配置项测试、回归测试、确认测试等
- 单元测试:也称为模块测试
- 集成测试:目的是检查模块之间,以及模块和已集成的软件之间的接口关系
- 系统测试:测试的对象是完整的、集成的计算机系统。目的是在真实系统工作环境下,验证完整的软件配置项是否和系统正确连接,并满足系统/子系统设计文档和软件开发合同规定的要求
- 配置项测试:测试的对象是软件配置项。目的是检验软件配置项与SRS的一致性
- 回归测试:目的是测试软件变更之后,变更部分的正确和对变更需求的符合性,以及软件原有的、正确的功能、性能和其他规定的要求不损害性
- 确认测试:主要用于验证软件功能、性能、和其他特性是否与用户需求一致。
- Aloha测试:在开发环境下进行测试
- Beta测试:在实际使用环境下进行测试
- 单元测试、集成测试、系统测试、配置项测试、回归测试、确认测试等
4.6 企业应用集成EAI
-
表示集成:界面集成、黑盒集成
-
数据集成:白盒集成
-
控制集成:功能集成、应用集成、黑盒集成
-
业务流程集成:过程集成,由一系列的基于标准的,异同的数据格式的工作流组成
-
企业之间的应用集成
- 适用于大多数需要实施电子商务的企业,以及企业之间的应用集成
- 使得应用集成框架里的客户和业务伙伴都可以通过集成应用链内的所有应用和数据库实现信息共享