信息的特征
信息的质量属性
信息的传输技术
信息的传输技术是信息技术的核心
信息的传输模型:
信息化从小到大五个层次
信息化的主体、时域、空域、手段、途径、目标
信息化的主体是全体社会成员,包括政府、企业、事业、团体和个人。它的时域是一个长期的过程;它的空域是政治、经济、军事和社会的一切领域;它的手段是基于现代信息技术的先进社会生产工具;它的途径是创建信息时代的社会生产力,推动社会生产关系及社会上层建筑的改革;它的目标是使国家的综合实力、社会的文明素质和人民的生活质量全面提升
国家信息化体系6要素
上鹰下鸡左人右龟中织网
四阶段生命周期
五阶段生命周期
系统规划阶段的任务是对组织的环境、目标以及现行系统的状况进行初步调查,对建设新系统的需求做出分析和预测,同时考虑建设新系统所受的各种约束,研究建设新系统的必要性和可能性。给出拟建系统的备选方案。对这些方案进行可行性研究,写出可行性研究报告。可行性研究报告审议通过后,将新系统建设方案及实施计划编写成系统设计任务书
注:调查分析当前在用系统运行情况,对新系统建设的必要性或者选择其他方案进行对比,进行可行性研究,最后审议出具的可行性研究报告通过后。把新系统建设方案及实施方案编写成系统设计任务书
系统分析阶段的任务是根据系统设计任务书所确定的范围,对现行系统进行详细调查,描述现行系统的业务流程,指出现行系统的局限性和不足之处,确定新系统的基本目标和逻辑功能要求,即提出新系统的逻辑模型
系统分析阶段又称为逻辑设计阶段。系统分析阶段的工作成果体现在系统说明书中,系统说明书一旦讨论通过了,就是系统设计的依据,也是将来验收系统的依据
注:系统分析其实就是决定 做什么 的阶段,根据系统设计任务书划定的范围,对现行系统的缺点和局限性进行分析,确定新系统的目标和逻辑要求(怎么解决老系统的缺点和局限性),最后对新系统进行逻辑设计,编撰到系统说明书,作为系统设计和验收的依据
根据系统说明书中规定的功能要求,考虑实际条件,具体设计实现逻辑模型的技术方案。又称为物理设计阶段,可以分成总体设计(概要设计)和详细设计两个子阶段,这个阶段的技术文档是系统设计说明书
注:系统设计阶段其实就是决定怎么做,根据前面分析阶段得出的要做什么的系统说明书,进行具体实现技术方案设计,可以分为概要设计和详细设计,最后把实现方案输出到系统设计说明书
系统实施阶段是将设计的系统付诸实施的阶段。这一阶段的任务包括计算机等设备的购置、安装和调试、程序的编写和调试、人员培训、数据文件转换、系统调试与安装等。系统实施是按实施计划分阶段完成的,每个阶段都应该写出实时进展报告。系统测试之后写出系统测试分析报告
注:系统实施阶段就要开始做事了,把前面的设计进行落地,这个落地实施过程是可以分阶段的,每个阶段都会出具实施进展报告,最后测试结束后还要出具系统测试分析报告
系统投入运行后,需要经常进行维护和评价,记录系统运行的情况,根据一定的规则对系统进行必要的修改,评价系统的工作质量和经济效益
注:系统后续保障工作,对系统运行情况进行分析评价,根据一定规则对系统进行维护性变更。分析系统的运行质量和带来的经济效益
总结
五阶段周期总体输出的文件有:可行性研究报告、系统设计任务书、系统说明书、系统任务说明书、系统阶段实施报告、系统测试分析报告
五阶段转换成一件事做的顺序就是,
常用的开发方法有结构化开发、面向对象开发、原型化开发、面向服务开发等
结构化方法也称为生命周期法;是一种传统信息系统开发方法,由结构化分析、结构化设计和结构化程序设计三部分有机组合而成,精髓是自顶向下、逐步求精和模块设计
结构化方法特点
结构化方法的优缺点
结构化方法特别适合于数据处理领域的问题,适用于需求一开始就非常明确的项目,但不适应与规模较大、比较复杂的系统开发,这是因为结构化方法以下特性和局限性:
总结
结构化开发是自顶向下、逐步求精、模块化设计的开发方法,就是系统严格划分各个阶段各个模块,每个阶段每个模块必须做某个功能。整体比较规范、结构、清晰。但是不够灵活,只适用于需求非常明确,业务简单的系统
面向对象方法认为,客观世界是由各种对象组成的,任何事务都是对象
与结构化方法类似,OO方法也划分阶段,但是其中的系统分析、系统设计和系统实现三个阶段已经没有缝隙。也就是说在面向对象方法内,这三者之间的界限变得模糊、不明确。
面向对象方法的特点
OO方法使系统的描述及系统模型的表示与客观实体相对应,符合人们的思考习惯,有利于系统开发过程中用户与开发人员的交流和沟通,缩短开发周期。OO方法可以普遍适用于各类信息系统的开发。当前一些大型系统的开发通常是将结构化方法和OO方法结合起来使用
总结
面向对象注重与把系统模型对应到客观实体上,进行对象的设计。整体易于理解,符合人们的思考习惯,利于开发和用户的沟通以及对象的业务更改。适用于所有系统开发,但是由于面向对象设计时会模糊系统分析和系统设计、系统实现三个阶段之间的界限,整体不够规范,模块划分不够清晰,所以实际工作中对于一些大型系统大家一般把结构化方法和面向对象方法结合起来使用进行系统的开发
原型化方法也称为快速原型法,或者简称为原型法。它是一种根据用户初步需求,利用系统开发工具,快速建立一个系统模型展示给用户,在此基础上与用户交流,最终实现用户需求的信息系统快速开发的方法
原型法的特点
原型法的不足之处
原型法的优点主要在于能更有效地确认用户需求,直观来看,原型法适用于那些需求不明确的系统开发。事实上对于分析层面难度大、技术层面难度不大的系统,适合于原型法开发;而对于技术层面困难远大于分析层面的系统,则不适用原型法
总结
原型法主要在于快速实现一个原型demo交付给用户确认需求,反复修改完善原型,最后交付验收。用户参与度比较高,而且在循环反复修改完善过程中,用户对系统熟悉度高,有利于系统交付。适用于没有竞品,需求分析难度比较大,技术层面实现难度相对较小的系统。而对于一些技术层面难度较分析层面较大,实现原型本身就很困难的项目,则不适用
面向对象的应用构建在类和对象之上,随后发展起来的建模技术将相关对象按照业务功能进行分组,就形成了构件的概念。对于跨构件的功能调用,则采用接口的方式暴露出来。进一步将接口的定义和实现进行解耦,则催生了服务和面向服务的开发方法。面向服务满足了如何使信息系统快速响应需求和环境变化,提高系统可复用性、信息资源共享和系统之间的互操作性,成为影响信息化建设效率的关键问题,而面向服务方法的思维方式恰好满足了这种需求
总结
面向服务其实就是基于面向对象的的对象按照功能进行分组,形成构件。然后构建功能的调用采用接口的形式暴露就是服务,面向服务的典型实现就是微服务,主要实现信息系统需求和环境快速变化,提升系统复用性,信息资源之间共享和互操作性
OSI协议
OSI采用分层结构化技术,从下到上分成七层
管理会话,IP
转化数据供计算机展示 GIF等
接口应用,Telnet、FTP、SFTP
总结
七层协议从低到高:
目前主流网络存储技术有三种,直接附加存储DNS、网络附加存储NAS和存储区域网络SAN
DAS
DAS是磁盘挂载,直接物理层面的存储连接
NAS
NAS支持多种网络协议TCP/IP,主要是网络文件系统和通用Internet文件系统进行访问,真正做到即插即用
SAN
磁盘阵列、区域网络进行搭建
需求的三个层次
业务需求是指反映企业或客户对系统高层次的目标要求,通常来自项目投资人、购买产品的客户、客户单位的管理的管理人员等
用户需求描述的是用户的具体目标,或用户要求系统必须能完成的任务书。也就是说,用户需求描述了用户能使用系统来做什么。通常采取用户访谈和问卷调查等方式,对用户使用的场景进行整理,从而建立用户需求
系统需求是从系统的角度来说明软件需求,包括功能需求、非功能需求和设计约束等
注:三种类型:业务需求一般由对方领导单位进行提出,比较大的功能目标之类的需求。用户需求注重于用户真正需求,实际使用用户想要什么。系统需求是系统建设条件,建设约束,必须实现什么(功能需求),性能需求(非功能需求)之类的
质量功能部署(QFD)
是一种将用户要求转换成软件需求的技术,目的是最大限度提升软件工程过程中用户的满意程度,QFD将软件需求分为三类:
用户认为系统应该做到的功能或性能,实现越多用户越满意
用户想当然认为系统应该具备的功能或性能,但并不能正确描述自己想要得到这些功能或性能需求,如果期望需求没有实现,用户会感到不满意
又称为兴奋需求,使用户要求范围外的功能或性能,可以有也可以没有,用户彩蛋或惊喜
注:常规需求,用户需要的功能或需求,实现越多用户越满意。用户感觉系统基本要实现的功能需求,实现越少用户越不满意。比如12306举例:订票、退票就是它的常规需求;逢年过节大家同时订票也可以保证系统正常可以订退票,就是期望需求。可以在某个站订餐下个站领到餐就是意外需求
常见需求获取方法
常见的需求获取方法包括:用户访谈、调查问卷、采样、情节串联板、联合需求计划等。
需求分析的工作
一个好的需求应该有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性。因此需要分析人员把杂乱无章的用户要求和期望转化为用户需求,这就是需求分析的工作
结构化需求分析方法
使用SA方法进行需求分析,建立的模型的核心是数据字典。在实际工作中,一般使用实体联系图(E-R图)表示数据模型,用数据流图(DFD)表示功能模型,用状态转换图(STD)表示行为模型。ER图主要描述实体、属性,以及实体之间的关系;DFD从数据传递和加工的角度,利用图形符号通过逐层细分描述系统内各个部件的功能和数据在他们之间传递的情况,来说明系统所完成的功能;STD通过描述系统的状态和引起系统状态转换的事件,来表示系统的行为支出作为特定事件的结果将执行那些动作(例如处理数据等)。
注:结构化分析方法需求分析时,把需求分成三块:数据模型、功能模型、行为模型。实体联系图分析表示数据模型,数据流图从数据的传递和加工的角度,利用图形符号逐层细分描述系统各个部件的功能和数据流转,来说明系统完成的功能。状态转换图通过系统状态转换和引起系统转换的事件表示系统的行为和特定事件的结果将执行哪些行为
需求规格说明书(SRS)
SRS是需求开发活动的产物,应该包括以下内容:
需求规格说明书做完之后,还需要需求确认(需求验证)
在实际工作中,一般通过需求评审和需求测试工作来对需求进行验证。需求评审就是对SRS进行技术评审
UML的四种关系
UML的五个视图
解决好软件的复用、质量和维护问题,是研究软件架构的根本目的。软件架构设计的一个核心问题是能否达到架构级的软件复用
软件架构的几种风格
软件架构分为数据流风格,调用返回风格、独立构件风格、虚拟机风格和仓库风格
软件架构评估
软件架构评估可以只针对一个架构,也可以针对一组架构。在架构评估过程中,评估人员关注的是系统的质量属性。
敏感点
敏感点是一个或多个构件的特性,权衡点是影响多个质量属性的特性,是多个质量属性的敏感点
软件架构评估技术
从目前的已有的软件架构评估技术来看,可以归纳为三类
这三种方式,目前基于场景的评估方式最为常见
软件设计分为结构化设计与面向对象设计
结构化设计SD是一种面向数据流的方法,它以SRS需求分析和SA架构设计阶段所产生的DFD和数据字典等文档为基础,是一个自顶向下、逐步求精和模块化的过程,结构化设计分为概要设计和详细设计两个阶段
在结构化设计中,要遵循基本原则:高内聚、低耦合
面向对象设计OOD是OOA方法的延续,,基本思想包括抽象、封装和可扩展性
设计模式
设计模式根据处理范围不同可以分为类模式和对象模式;
根据目的和用途不同,可以分为:
连续式模型
四个分组:
组织级过程焦点、组织级过程定义、组织级培训、组织级过程性能、组织级改革与实施
项目计划、项目监督与控制、供应商合同管理、基层项目管理、风险管理、集成化的团队、定量项目管理
需求管理、需求开发、技术解决方案、产品集成、验收、确认
配置管理、度量和分析、过程和产品质量保证、决策分析和解决方案、组织级集成环境、因果分析和解决方案
注:记忆技巧;记住连续式模型四个分组:过程管理、项目管理、工程、支持。涉及到组织级的,除了集成环境,都是过程管理分组的内容。涉及到计划、监督控制、管理、团队、分析都是项目管理的;涉及到需求、集成方案的都是工程分组的;涉及到分析、配置、集成环境都是支持分组的
软件测试方法
软件方法可以分为静态测试和动态测试。
静态测试是指被测试的程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测;静态测试还包括对文档的静态测试和对代码的静态测试。
动态测试是指在计算机上实际运行程序进行软件测试,一般采用白盒测试和黑盒测试方法
白盒测试也称为结构测试,主要用于软件单元测试中,它的主要思想是,将程序看做是一个透明的白盒子,测试人员完全清楚程序的结构和处理算法,按照程序内部逻辑结构设计测试用例。白盒测试方法主要有控制流测试、数据流测试、和程序变异测试等。另外静态测试的方法也可以实现白盒测试,例如静态测试中的代码审查就可以用人工的方式来检查代码的逻辑问题,也属于白盒测试的范畴。
白盒测试方法中最常用的是逻辑覆盖:即使用测试数据运行被测程序,考察队程序逻辑的覆盖程度。主要的覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、条件组合覆盖哦、修正的条件判定覆盖和路径覆盖等
黑盒测试也称为功能测试,主要用于集成测试、确认测试和系统测试中。黑盒测试将程序看做是一个不透明的黑盒子,完全不考虑或不了解程序的内部结构和处理算法,一般包括等价类划分、边界值分析、判定表、因果图、状态图、随机测试、猜错发和正式实验法等
注:静态测试分为代码静态测试和文档静态测试,对代码的静态测试针对的还没有在机器上运行的代码,手段包括代码走查、代码审查和桌前检查。对文档的静态测试主要以检查单的形式进行;就是代码部署前开发过程中的代码审查以及文档检查单,检查文档是否规范和代码是否规范和是否有隐患。
动态测试分为白盒测试和黑盒测试,主要针对已经跑起来的代码进行测试。其中白盒测试是了解程序逻辑以及数据结构的人员,针对程序逻辑、判定、条件、数据结构进行单元测试,主要是开发及个别测试人员进行测试。黑盒测试是不了解或不清楚程序数据结构及逻辑,对程序进行盲目的测试,完整功能测试试用。主要应用于集成测试、确认测试和系统测试中。
软件测试类别
软件测试可分为单元测试、集成测试、确认测试、系统测试、配置项测试和回归测试等类别
单元测试也指模块测试,一般是开发阶段由开发人员自己进行的测试
集成测试的目的是检查模块之间,以及模块和已集成的软件之间的接口关系。针对模块集成后进行各个模块之间功能搭配的测试,开发和测试人员一般是一起参与的
确认测试主要用于验证软件的功能、性能和其他特性是否与用户需求一直。根据用户的参与程度,通常包括以下类型。
通过Beta测试的产品通常称为Beta版。一般在通过Beta测试后才能把产品发布或交付给用户
c. 验收测试:验收测试是指针对SRS在交付前以用户为主进行的测试,其测试对象为完整的、集成的计算机系统
系统测试的对象是完整的、集成的计算机系统,系统测试的目的是在真实系统工作环境下,验收完整的软件配置项是否和系统正确连接,并满足系统/子系统设计文档和软件爱你开发合同规定的要求。一般对应试运行阶段
配置项测试的对象是软件配置项,配置项测试的目的是检验软件配置项与SRS的一致性,就是系统配置
回归测试的目的是测试软件变更后,变更部分的正确性和对变更需求的复合型,以及软件原有的正确的功能、性能和其他规定要求的不损害性。就是指软件更新或添加了功能是否符合要求,是否影响原有的正常的功能的使用
常用软件调试策略
常用的软件调试策略可以分为蛮力法、回溯法和原因排除法三类。
软件调试和测试的区别主要体现在以下几个方面:
软件测试管理
软件测试的管理包括过程管理、配置管理和评审工作
测试就绪评审是指在测试工作执行前对测试计划和测试说明进行评审,测试评审是指在测试完成后,评审测试过程和测试结果的有效性,确定是否达到测试目的,主要对测试记录和测试报告进行评审。
企业应用集成EAI
企业应用集成包括表示集成、数据集成、控制集成和业务流集成等多个层次和方面。当然,也可以在多个企业之间进行应用集成。
相对而言,数据集成比表示集成要更加灵活。但是,当业务逻辑经常发生变化时,数据集成就会面临困难,主要集成点在中间件(数据库)
数据集成其实就是定时数据同步,数据源共享之类的程序。当逻辑发生变更数据结构发生变更,同时继承程序也要变更,所以就会面临困难
供应链和供应商之间系统集成
物联网是指通过信息传感设备,按照约定的协议,将任何物品与互联网相连接,进行信息交换和通信,实现智能化识别、定位、跟踪监控和管理的一种网络。物理网主要解决物品与物品,人与物品,人与人之间的互联。在物联网应用中有两项关键技术,分别是传感器技术和嵌入式技术
RFID射频识别
RFID是物联网中使用的一种传感器技术,可通过无线电信号识别特定目标并读写相关数据,而无需识别系统与物特定目标之间建立机械或光学接触
嵌入式技术
嵌入式技术是综合了计算机硬件、传感器技术、集成电路技术、电子应用技术为一体的复杂技术。
物联网架构
物联网架构可分为三层,分别是感知层、网络层和应用层
注:感知层识别信息采集信息相当于人的眼睛和耳朵以及皮肤触觉,网络层负责传递和处理信息,相当于人类的神经和大脑。应用层是物联网和用户的接口,负责连接物品和用户,相当于人类的嘴巴和手脚做出响应的动作和东西
物联网产业链
物联网的产业链包括传感器和芯片、设备、网络运营及服务、软件与应用开发和系统集成。作为物联网金字塔的塔座,传感器将是整个产业需求总量最大和最基础的环节。
智慧城市的五个功能层
提供对城市环境的智能感知能力,通过各种信息采集设备、各类传感器、监控摄像机、GPS终端等实现对城市范围内的基础设施、大气环境、交通、公共安全等方面信息采集、识别和监测
广泛互联,以互联网、电信网、广播电视网以及传输介质为光纤的城市专用网作为骨干传输网络,以覆盖全城的无线网络、移动4G作为主要接入网,组成网络通信基础设施
包括软件资源、计算资源和存储资源,为智慧城市提供数据存储和计算,保障上层对于数据汇聚的相关需求
利用SOA、云计算、大数据等技术,通过数据和服务的融合,支撑撑在智慧应用层中的相关应用,提供应用所需各种服务和共享资源
各种基于行业或领域的智慧应用及应用整合,如智慧交通、智慧家政、智慧园区、智慧社区、智慧政务、智慧旅游、智慧环保、智慧气象等,为社会公众、企业、城市管理者等提供整体的信息化应用
注:物联感知层》感知数据,通信网络层》数据传输通信;计算与存储层》对数据进行汇总计算、存储;数据及服务支撑层》共享服务、数据;智慧应用层》对数据进行汇总最后形成相应产品,智慧城市应用,最后直接影响市民生活、城市环境
智慧城市支撑体系
为智慧城市建设构建统一安全平台,实现统一入口、统一认证、统一授权、日志记录等服务。
为智慧城市建设提供整体的运维管理机制,确保指挥城市整体建设管理和可持续运行
标准规范体系用于知道和支撑我国各地城市信息化用户、各行业智慧应用信息系统的总体规划和工程建设,同时规范和引导我国智慧城市相关IT产业的发展,为智慧城市建设、光环里和运行维护提供统一规范,便于互联共享、互操作和扩展。
未完待续...