第一章 信息化和信息系统
第一节 信息
信息质量属性:
精确性:对事物状态描述的准确程度
完整性:对事物状态描述的全面程度,完整信息应包括所有重要事实
可靠性:信息来源、采集方法、传输过程可信任,符合预期
及时性
经济性:信息获取、传输带来的成本在可接受的范围内
可验证性:主要质量属性可证实或证伪
安全性:生命周期内,被非授权访问的可能性
信息技术的核心:
信息的传输技术(通信、网络等)。
信息的传输模型:
信源->编码->信道(噪声)->解码->信宿
编码器:
解码器:
第二节 信息化
信息化的五个层次(由小到大):
产品信息化,是信息化的基础
企业信息化
产业信息化
国民经济信息化
社会生活信息化(智慧城市、互联网金融)
信息化的主体、手段、途径、目标
主体:全体社会成员
手段:基于现代信息技术的先进社会生产工具
途径:创建信息时代的社会生产力,推动生产关系及上层建筑的改革
目标:使国家的综合实力,社会的文明素质和人民的生活质量全面提升
两网一站四库十二金
政务内外网
政府门户网站
四库:人口、法人单位、空间地理和自然资源、宏观经济数据库
十二金:办公业务资源系统等十二个业务系统
信息化体系六要素:
左人右龟上鹰下鸡中资与网
信息资源,信息资源的开发和利用是国家信息化的核心任务
信息网络,信息网络是信息资源开发和利用的基础设施
信息技术应用,反应了效率、效果、效益,是龙头,是主阵地
信息化技术与产业,是物质基础
信息化人才,是成功之本
信息化政策法规和标准规范,是保障
第三节 信息化系统
信息化系统的生命周期:
4大:立项、开发、运维、消亡
5小:系统规划、系统分析、系统设计、系统实施、运行维护
- 立项(系统规划):确定信息系统的发展战略,对建设新系统的要求做出分析和预测,写成可行性报告
- 开发
a) 系统分析,确定系统的基本目标和逻辑功能,提出新系统的逻辑模型
b) 系统设计,具体设计实现逻辑模型的技术方案,设计新系统的物理模型
c) 系统实施,将设计的系统付诸实施 - 系统运行和维护
- 消亡
信息化系统的开发方法:
1. 结构化方法
2. 面向对象方法
3. 原型化方法
4. 面向服务的开发方法
-
结构化方法:
也称生命周期法,是一种传统的信息系统开发方法,由结构化分析、设计、程序设计三部分组合而成(流程图),其精髓是自顶而下,逐步求精和模块化设计
主要特点:
1.目标清晰化
2.工作阶段化
3.文档规范化
4.设计方法结构化
结构化方法是最成熟、应用较广泛的一种工程化方法,适合数据处理,不适合大规模复杂工程
局限性:
1.开发周期长
2.难以适应需求变化
3.较少考虑数据结构 -
面向对象方法
系统分析、设计、实现阶段的界限不明确
大型信息系统开发,使用结构化方法自顶向下整体划分;然后,自底向上使用面向对象方法进行开发 -
原型化方法
由用户初步需求,快速建立简单模型,在此基础上与用户交流,最终实现需求
是否实现功能:水平原型(界面)、垂直原型(算法与功能)
最终结果:抛弃式原型、演化式原型
特点:
缩短周期,降低风险成本,获得高收益
以用户为中心,提高用户参与度和满意度,提高开发成功率
用户对系统了解,利于系统移交、运行和维护
缺点:
开发环境要求高
管理水平要求高
原型法能更有效的确认用户需求,
适用于 需求不明确及分析层面难度大的系统开发
不适用于 技术层面难度大 -
面向服务方法
进一步将接口的定义与实现进行解耦
提高系统可复用性、信息资源共享和系统之间的互操作性,提高信息化建设效率
第四节 网络模型
osi七层网络模型
7.应用层:http talnet ftp smtp tftp dhcp dns snmp(简单网络管理协议)
6.表示层:jpeg ascii gif des mpeg
5.会话层:rpc sql nfs
4.传输层:tcp udp spx
3.网络层:ip icmp(网络控制报文) igmp(国际组管理) ipx arp(地址解析) rarp(反向地解)
2.数据链路层:ieee802.3/.2 hdlc ppp atm
1.物理层:rs232 v.35 rj-45 fddi
IEEE802.11 无线局域网协议
Tcp/ip协议是internet的核心
网络设备
根据交换层次的不同,网络交互可分为
物理交互(电话网)
链路层交互(二次交换、对mac地址变更)
网络层交换(三层交换、对IP地址进行变更)
传输层交换(四层交换、变更端口)
应用层交换
互联设备
中继器(物理层协议转换,在电缆间转换二进制信号)
网桥(实现物理层和数据链路层协议转换)
路由器(在网络层实现网络层和以下各层协议转换)
网关(从最底层到传输层或以上各层)
交换机(各层都有)
网络存储技术
直连DAS,存储设备通过scsi电缆连接到服务器
网络附加存储NAS,支持多种TCP/IP协议,主要是NFS和CIFS来进行访问
存储区域网络SAN,根据数据传输协议,可分为FCsan/IPsan/IBsan
网络规划与设计
接入Internet的两大方式:有线、无线
有线:pstn\isdn\adsl\fttx+lan\hfc
无线:gprs\3G\4G\WIFI
2019年6月6日发放5G牌照,商用元年;10月31日公布套餐;11月1上线套餐
5G速率1Gbps
网络设计:核心层、汇聚层、接入层
核心层:高速转发通信,高可靠、高性能、高吞吐
汇聚层:网络访问策略控制,数据包处理,过滤,寻址,以及其他的数据处理任务
接入层:底成本、高密度
数据库:
关系型数据库:Oracle、mysql、sqlserver
非关系型数据库:mongodb
数据仓库:
是一个面向主题的,集成的,非易失的,且随时间变化的数据集合,用于支持管理决策
中间件:
一个分布式系统环境中处于操作系统与应用之间的软件(独立)
分类:
底层型:jvm、CLR(公共语言运行库)、ACE、JDBC(java数据库连接)、ODBC
通用型:CORBA、J2EE、MOM(面向消息的中间件)、COM
集成型:workflow、EAI
应用:
系统底层传输层集成,使用CORBA技术
不同系统的信息传递,使用消息中间件产品
不同硬件和操作系统的集成,使用J2EE中间件
可用性和可靠性:
可用性:能够正常运行的时间比例
错误检测(心跳)、错误恢复(冗余、表决)、错误防范(进程监控)
可靠性:在错误或意外下维持软件系统的功能特性的基本能力
第五节 需求分析
需求三层次
业务需求:反应企业或客户对系统高层次的一个目标追求,通常来自项目投资人、客户、市场营销部门或产品策划部门
用户需求:指用户的具体目标,或用户要求系统必须能完成的任务,用户需求描述了用户能让系统来做什么
系统需求:指从系统的角度来说明软件的需求,包括功能需求,非功能需求和设计约束
质量功能部署
一种将用户需求转化成软件需求的技术,最大限度地提升软件工程中用户的满意度,将软件需求分为三类:常规需求、期望需求、意外需求
需求分析(获取)
常用的需求获取方法包括:用户访谈、调查问卷、采样、情节串联板、联合需求计划等;
需求应具有无二义、完整、一致、可测试、确定、可跟踪、正确、必要等特征
需求分析的工作是把 杂乱无章的用户要求和期望 转换为 用户需求,确定系统必须完成的工作,对目标系统提出完整、准确、具体的要求。
需求分析的的过程:获取、分析、编写需求说明书、需求验证与确认
结构化分析SA方法进行需求分析
核心是数据字典
模型:
数据模型:实体联系图(E-R图)描述实体、属性、以及实体之间的关系
功能模型:数据流图(DFD)从数据传递和加工的角度,利用图形符号通过逐层细分描述系统内各个部件的功能和数据在他们之间传递的情况,来说明系统所完成的功能
行为模型:状态转换图(STD)通过描述系统的状态和引起系统状态转换的事件,来表示系统的行为,指出作为特定时间的结果将执行哪些动作(如数据处理)
需求规格说明书(SRS)内容包括:范围引用需合规,追踪尚未注附录
- 范围
- 引用文件
- 需求
- 合格性规定
- 需求可追踪性
- 尚未解决的问题
- 注解
- 附录
需求验证(确认):方式:需求评审和需求测试;实质:对SRS进行技术评审;目的:
SRS正确描述了预期的、满足项目干系人需求的系统行为与特征
SRS中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的
需求是完整和高质量的;需求的表示在所有地方都是一致的
需求为继续进行系统设计、实现和测试提供了足够的基础
UML
是一种定义良好,易于表达、功能强大且普遍适用的建模语言。UML结构包括造块、规则和公共机制三个部分。
用关系把事物集合在一起,主要有四个关系:
- 依赖,一个事物改变会影响到另一个事物的语义
- 关联,描述一组对象之间连接的结构关系
- 泛化,是一般化和特殊化的关系,描述特殊元素的对象可替换的一般元素的对象
- 实现,是实现类与类之间的语义定义关系,其中一个类指定了由另外一个类保证执行的契约
UML2.0 14种图(静态(6):部队负包类成狗;动态图(8):制定交通,顺桩活用)
- 类图:描述了一组类、接口、协作和他们之间的关系,类图给出系统静态设计视图,活动类的类图给出了系统的静态进程视图。
- 对象图:描述了一组对象及他们之间的关系。
- 构件图:描述了一个封装的类和它的接口、端口以及由内嵌的构件和连接件构成的内部结构。
- 组合结构图:组合结构图描述结构化类(例如,构件或类)的内部结构,包括结构化类与系统其余部分的交互点
- 用例图:描述一组用例、参与者及他们之间的关系
- 顺序图(序列图):是一种交互图,展示了一种交互,由一组对象或参与者以及他们之间可能发送的消息构成。交互图关注于系统的动态视图。顺序图是强调消息的时间次序的交互图。
- 通信图:是一种交互图,强调收发消息的对象或参与者的结构组织。通信图强调的对象之间的组织机构关系。
- 定时图(计时图):是一种交互图,强调消息跨越不同对象或参与者的实际时间,而不仅仅只是关心消息的相对顺序。
- 状态图:描述一个状态机,由状态、转移、事件和活动组成,给出了对象的动态视图
- 活动图:描述进程或其他计算机结构展位为计算内部一步步的控制流和数据流。活动图专注于系统的动态视图,强调对象间的控制流程
- 部署图:描述对运行时的处理节点及在其中生存的构件配置。部署图给出了架构的静态部署视图,通常一个节点包含一个或多个部署图
- 制品图:描述计算机中一个系统的物理结构,制品包括文件、数据库和类似的物理比特集合。制品图通常与部署图一起出现。制品也给出了他们的实现的类和构件
- 包图:描述由模型本身分解而成的组织单元,以及他们之间的依赖关系
- 交互概览图:是交互图和顺序图的混合物
UML视图(组织结构划分,了解):
逻辑视图:又称设计视图,表示设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集
进程视图:是可执行线程与进程作为活动类的建模,是逻辑视图的一次执行实例,描述了并发与同步结构
实现视图:对组成基于系统的物理代码的文件和构件进行建模
部署视图:把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构
用例结构:用例视图是最基本上的需求分析模型
OOA与OOD(了解):
OOA(object-Oriented Analysis)面向对象分析方法,做什么
OOD(object-Oriented Design)面向对象设计,怎么做
OOA模型独立于具体实现,不考虑具体实现有关的因素,是两者的区别因素
面向对象分析阶段的核心工作是建立系统用例模型于分析模型
软件架构
软件架构风格(掌握)
研究软件架构的目的:解决好软件的复用、质量和维护问题
软件架构设计的核心:能否达到架构级的软件复用,关注的是系统质量属性
风格包括:
数据流风格:批处理序列(顺序执行)和管道/过滤器(输入输出数据流)
调用/返回风格:主程序/子程序(过程调用)、数据抽象和面对对象(对象及封装),以及层次结构(分层调用)
独立构件风格:进程通信(消息传递、远程调用)和事件驱动(事件触发调用)的系统
虚拟机风格:解释器(解释引擎)和基于规则(规则集)的系统
仓库风格:数据库系统(中央共享数据源)、黑板系统(知识源、黑板及共享数据和控制)和超文本系统(非线性交叉引用)
软件架构评估(了解)
敏感点是一个或多个构件的特性,权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。
三类主要的评估方式:
- 基于调查问卷(检查表)的方式
- 基于场景的方式(最常用):
a) 架构权衡分析法
b) 软件架构分析法
c) 成本效益分析法
场景的描述:
刺激:场景中解释或描述项目干系人怎么引发与系统的交互部分
环境:刺激发生时的情况
响应:系统如何通过架构对刺激做出反应的 - 基于度量的方式
软件设计(掌握)
软件设计分为结构化设计与面向对象设计
结构化设计SD是一种面向数据流的方法,他以SRS和SA阶段所产生的DFD和数据字段等文档为基础,是一个自顶向下,逐步求精和模块化的过程。SD分为概要设计和详细设计两个阶段。在SD中需要遵循一个基本原则:高内聚,低耦合,模块内部高度内聚,模块与模块之间需要降低耦合度
面向对象设计OOD的基本思想包括抽象、封装、可扩展性,其中可扩展性主要通过继承和多态来实现,三大特征是封装、继承、多态。
软件工程的过程管理