导图社区 物联网系统开发整理
物联网系统开发相关知识点的整理
编辑于2020-06-09 13:41:13物联网系统开发
1. 物联网系统开发概述
概念
通过装置在物体上的各种信息传感设备,赋予物体智能,并通过接口与互联网相连形成一个物品与物品相连的巨大分布式协同网络
物联网基本模型
子主题
物联网基本特征
全面感知
可靠传输
智能处理
物联网核心技术
感知识别层
RFID、GPS等传感器放置在物品上
网络构建层
网络是物联网最重要的基础设施之一
互联网
IPV6、物联网的核心网络
无线宽带网
WiFi/WiMAX,覆盖广、速度快
无线低速网
Zigbee/蓝牙/红外等
移动通信网
作用:连接感识别层和管理服务层,具有纽带作用
管理服务层
“物联网智慧源泉”
解决的问题
数据存储
数据检索
数据使用
数据安全
物联网数据特点:海量、多态、关联以及语义性
综合应用层
根据以下几层催生出的顶层应用
关键技术
感知技术
标识技术
感知技术
智能技术
安全技术
能耗管理
云计算
网络融合
* 主要特点
感知识别普适化
异构设备互联化
联网终端规模化
管理调控智能化
应用服务链条化
经济发展跨越化
*体系结构
平台+通信
C3SD技术结构
六域模型
USN
WSN
EPS/UID
CPS
M2M
物联网系统开发流程
可行性论证与分析
了解客户业务过程中问题是否可以解决
需求分析
项目清单的方式例举用户对物联网工程项目应用的各种可能需求、分析各种问题。
概要设计
设计系统的软硬件结构
详细设计
为每个模块完成功能进行具体描述,把功能描述转变为精确的、结构化的过程描述
设备选型
根据各种因素选择设备优化方案
系统集成
根据用户需求,优选各种技术和产品,将个分离子系统连接成为完整可靠经济的有效整体
测试
验证系统是否满足需求规定的定义
管理与维护
保证系统安全、正常可靠运行
2. 物联网需求获取
需求定义
软件:一些列按照特定顺序组织的计算机数据和指令的集合
软件=数据结构+算法+文档
需求:用户为解决问题或达到某些目标所需要的条件或能力;系统或系统部件为了满足合同、标准、规范或其他正式文档所规定的要求而需要具备的条件或能力
软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,导致软件开发和维护过程中出现的一些列严重问题现象。
软件需求分类
功能需求
业务需求(why)
为什么要开发软件或系统,组织希望达到的目标
用户需求(what)
用户使用系统能够做什么事情,通过用户需求信息形成文档称为“用例说明文档”
系统需求(how)
开发人员如何设计具体解决方案来实现这些需求,系统需求记录在需求规格说明文档中
非功能需求
性能需求
一个系统或其组成部分在限定的约束下,完成对其指定功能的程度
质量属性
系统完成工作的质量。灵活性、高效性、可维护性等
对外接口
系统和环境中其他系统之间建立的接口,包含硬件接口、软件接口和数据库接口等
接口数据格式
接口命令格式
接口标准
接口输入输出
接口用途
约束
构建系统时需要遵循的约束。系统不受系统功能需求影响,却会给系统开发带来很多限制,会在总体程度上限制开发人员设计等
需求获取
概念
需求获取是软件需求工程中最前沿的部分,是软件设计的第一阶段
本质是人的活动,主要涉及软件需求工程师如何与客户建立有效沟通,从过年需求来源获取需求的技术
是一个确定和理解不同用户类的需要和限制的过程
面谈法
面对面讨论,通过集体讨论的方法将众多涉众集中在一起,通过讨论发现需求,是需求获取内容达到完整,统一。
过程
面谈前准备
面谈中控制和记录
面谈后分析整理
优缺点
优点
开展面谈条件简单,经济成本低
获得包括事实、问题、被会见者观点、态度、信仰等各类信息,内容噶滚翻
通过面谈,需求工程师可以和涉众间建立友好关系
缺点
耗时
受被会见者地理限制
对需求工程师人际交往能力要求高
态度偏见、潜在知识、默认知识等影响面谈结果
会见者不了解被会见者认知结构的情况下,面谈结果比较糟糕
综述:面谈法一般和其他需求获取方法配合使用
原型法
概念:为了确定需求而提出的实际模型。打破传统的自顶向下结构开发模型的方法,在计划和需求分析后,把系统主要接口做设计一句,快速开发出软件样机,及时争取用户一件,确定系统需求,进一步准确进行系统设计的实现
优缺点
优点
与用户见面快,开发成功率高,适合于需求不确定的大系统
缺点
周期长,开发成本高
面向过程的结构化方法
程序 = 算法 + 数据
数据为基础,通过算法计算数据
面向对象的方法
程序 = 对象 + 消息
万物皆对象,对象通过消息相互作用
用例建模
概念:使用用例方法描述系统的功能需求过程
用例图
确定系统中所包含的参与者、用例以及两者之间的对应关系,用例图描述的是关于系统功能的一个概述
用例描述了在不同条件下,系统对某一项目相关人员的请求作出的响应,是系统各相关人员之间就系统行为所达成的契约
根据参与者作出的请求和请求涉及的条件,系统将执行不同的行为序列,每一行序列称为一个场景
掌握如何画用例图
用例描述
简单描述
对用例角色、目的进行简要描述
前置条件
执行用例前系统必须要处于的状态或满足的条件
基本事件流
描述该用例发生的事情,没有任何备选项和异常流,只有最可能发生的事件流
其他事件流
表示这个行为或流程是可选的或备选的
异常事件流
表示发生了某些正常的事情所要执行的流程
后置条件
用例一旦执行后,系统所处的状态
需求分析
系统结构
系统的结构图和各部分主要功能
业务需求
核型业务需求和辅助业务需求
用户需求
用户的目标,描述用户要求系统必须要完成的任务
场景描述、用例模型、用例图
功能需求
表示开发人员必须在软件产品中实现的功能,用户可以利用这些功能完成各自的任务,从而满足业务的需求
非功能需求
性能需求
用户界面需求
压力需求
主流技术应用需求
安全需求
故障处理需求
环境需求
其他需求
3. 物联网系统设计
物联网系统设计开发流程
概要设计
根据数据流图确定各系统主要组成部分之间关系
详细设计
根据控制规格说明、状态转换图和加工规格说明,将体系结构的组成部分,转换成组成部分的过程性描述
接口设计
根据数据流图,定义软件和硬件内部各组成部分之间、软件与其他协同系统之间及软件与用户之间的交互方式
数据库描述
将数据对象描述中的数据、实体联系图中描述的数据对象和关系、等变换成软件需要的数据结构
物联网系统设计的原则
抽象
抽象原理:将现实生活中具有共性的一类事物的相似的、本质的方面集中概括起来,暂时忽略细节差异
方法
过程抽象
对软件要执行的动作进行抽象
数据抽象
通过选择特定的数据类型及相关功能特性的办法。保持抽取数据的本质特性所得的结果
控制抽象
包含程序控制机制无需规定内部细节
模块化
模块化指:系统由若干离散部分组成的离散程度,即模块化程度
模块化原理
模块指的是具有相对独立性的,由数据说执行语句等程序对象构成的集合
模块化指将整个程序划分为若干个模块,每个模块用于实现一个特定功能
将复杂问题分解为若干个小问题,逐个击破,所需工作量小于直接解决复杂问题所需工作量
结论:模块化可以降低解决问题复杂度,从而降低系统开发工作量
模块化与成本关系
当划分模块数处于最小成本区域时,开发系统总成本最低
信息隐蔽
信息隐蔽指每个模块的实现细节对其他模块来说是隐蔽的。
举例:使得一个模块内包含的信息对于不需要访问这些信息的模块来说,是不能访问的
模块独立性指系统中每个模块具有单一功能,并与其他模块没有太多联系
原理:有效的模块化可以通过一组独立的模块来实现,这些独立的模块彼此间仅仅交换那些为了完成系统功能而必须交换的信息
优势
提高模块独立性,即当修改或维护系统模块时减少模块错误扩散到其他模块中去的机会
简化了系统结构的复杂度,提供程序模块设计标准化的可能性
内聚度
单个程序模块所执行的诸任务在功能上互相关联的程度
功能内聚度
顺序内聚度
过程内聚度等
耦合度
计算机程序中模块之间相互依赖的程度
数据耦合度
公共耦合度
控制耦合度等
*局部化
把一些关系密切的系统元素物理地放的比较近,严格控制数据对象可以访问的范围
*逐步求精原理
为了能集中解决主要问题而推迟对问题细节的考虑
优化原则
改进系统结构提高模块独立性
力求降低耦合提高内聚,各模块相对独立性,优化初始的系统结构
模块化作用域应处于控制范围内
系统结构深度和宽度不宜过大
深度:系统体系结构中控制层数,粗略反映软件系统规模和复杂程度
宽度:系统体系结构内统一层次上模块个数的最大值,宽度越大的系统越复杂
模块应具有高扇入和适当扇出
扇入:多少上级模块直接调用它
扇出:一个模块直接调用的下级模块数
适当保持模块规模和复杂度
保持程序可读性
降低模块接口复杂度
设计单入口单出口的模块
模块功能可预测
物联网系统设计概念
概要设计的概念
主要任务是更具需求分析确定系统整体架构,设计其中的硬件结构、软件结构和数据结构
主要目的:主要集中于划分模块、分配任务、定义模块间调用关系
概要设计图形工具
结构图
模块调用为线索,自下而上的连线表示调用关系并注明参数传递方向和内容
箭头表明调用关系
清晰反映出软件系统的模块和层次结构,反映出程序中个模块调用关系和联系
模块类型
传入模块
从下级获取数据,处理后送至上级
传出模块
从上级获取数据,处理后送至下级
变换模块
上级获取数据,特定处理送回上级
协调模块
对所有下级模块进行协调和管理的模块
层次图
用来描绘软件的层次结构
一个矩形代表一个模块
连线表示调用关系
HIPO图
层次图具有可追踪性
详细设计的概念
详细设计对概要设计的进一步细化,确定模块的两个内部特性:模块执行过程和定义模块的局部数据结构
详细设计图形工具
流程图
基本组成
处理、判断、条件流
顺序型、选择型、while、util、case
子主题
优缺点
优点
对控制流程的描述直观、清晰、易于学习和掌握
缺点
诱使程序员过早进行程序控制流程,而不去考虑程序的全局结构
用箭头代表控制流,可以完全不顾结构程序设计对的思想,随转移控制
不易表示数据结构
修改麻烦
N-S图
优点
所有程序结构均用方框来表示,无需并列或嵌套,结构清晰
它的控制不能任意规定,必须遵守结构化程序设计的要求
容易确定局部和全程数据作用域
容易表现嵌套关系和层次结构
缺点
当程序嵌套的层数增多时,内层方快越来越小,比较困难
当需要设计修改时,工作量很大
伪代码
概要设计与接口设计区别
概要设计是设计软件的结构,包括组成模块、模块层次结构、调用关系等,还要设计项目应用系统的总体数据结构和数据库结构「应用系统要存储什么数据、数据什么结构、他们什么关系」
详细设计阶段即为了每个模块完成的功能进行具体的描述,把功能描述转变为精确的、结构化的过程描述
详细设计概念补充
目的
又称过程设计
确定模块算法
对选定工具给出清晰描述
原则
保证将程序清晰度放在首位
设计过程中应采用逐步细化的实现方式
选择适当的表达工具
过程
定算法,详细描述
定数据结构和模块接口细节
进行预定测试
编写详细设计说明书
结构化程序设计
概念
一种设计程序的技术,采用自顶向下、逐步细化的设计方法和单入口、单出口的控制技术。任何程序都可以通过顺序、选择和循环三种基本控制结构复合实现。
优点
自顶向下、逐步细化的方法复合人类解决复杂问题的普遍规律,可以提高系统开发成功率和生产率
先全局后局部、先整体后细节以及先抽象后具体的逐步求精的过程开发出的程序有清晰的层次结构
单入口单出口控制,而不实用Goto语句,程序的静态结构和他的动态执行情况一致
控制结构有确定的逻辑模式,编写程序代码限于少数集中直截了当的方式
程序清晰和模块化使得在修改和重新设计一个系统时可重用的代码量最大
程序的逻辑结构清晰,有利于程序正确性证明
缺点
结构化方法编制的源代码较长,存储容量和运行时间会增加
有些非接哦股化语言不直接提供单入、单出的基本控制结构
个别情况下结构化程序的结构也十分复杂
设计方法
逐步细化
由粗到细的对程序逐步的细化,每一步可选择其中一条或数条将他们分解为更多或更详细的程序步骤
在细化过程中,对数据的描述同时进行细化
每步细化均使用相同的结构语言,最后一步一般直接用伪代码描述
自顶向下
6.物联网测试
概念
系统测试定义
为了发现程序中的错误而执行程序的过程,系统测试在系统生命周期中横跨了两个阶段
系统测试基本原则
尽早测试
避免自己测试自己程序
不仅要输入,也需对应的预期结果
需要合法输入,也需要非法输入
充分测试过程胡总的集群现象
严格测试计划,排除随意性
对每个结果全面检查
系统测试方法
静态测试
被测试程序不在计算机上运行,而是人工检测;即通过分析代码来发现错误
人工测试
个人复查
走查
会审
动态测试
白盒测试法
面向内部,几乎代码的测试,需要了解代码运行逻辑等
黑盒测试法
面向内部
系统测试目的
用户角度出发,希望测试中暴露隐藏缺陷
开发者角度出发,希望测试成为表明系统产品不存在错误的过程
测试是程序执行过程,目的在于发现错误
一个好的测试用例在于能否发现至今未发现的错误
一个成功的测试是发现了至今未发现的错误
步骤
单元测试
大量白盒技术
每个程序单元进行测试
模块测试、逻辑测试、结构测试
内容
模块接口测试
局部数据结构测试
路径测试
错误处理测试
边界测试
集成测试
所有规模按设计要求组装成一个完整的系统而进行测试
组装测试、联合测试
方法
非渐增式测试
渐增式测试
确认测试
仅使用黑盒测试
验收测试、有效性测试
系统测试
作为计算机系统的一个整体元素,对系统进行一系列集成测试有效性测试
使用综合测试
黑盒设计基本测试用例,白盒补充一些必要测试用例
测试
简单调试方法
插入打印语句
运行部分程序
借助调试工具
归纳法调试
从特殊到一般的思维过程
收集有关数据
组织数据
提出假设
证明假设
演绎法调试
列出所有可能的错误原因的假设
排除不适当的假设
精化余下假设
证明余下假设
回溯法调试
思考与错误征兆有关的信息
避开死胡同
调试工具当作辅助手段使用
避免试探法
5.物联网网络层设计任务
蓝牙
概念
支持设备短距离通信的技术
采用分散式网络结构
支持点对点、点对多通信
采用灵活、无基站的组网方式
技术组网
微微网
特定的方式连接起来的微型网络
设备级别相同,权限相同
采用自组网方式
散射网
散射网由多个独立的、非同步的微微网组成,以特定方式连接在一起
网桥最多可以作为一个微微网主设备,多个微微网从设备,作为两个或两个以上微微网成员的蓝牙单元就成了网桥节点
微微网中主设备单元同时作为微微网从设备单元
主从设备
主设备
具有输入端、用户通过输入端可输入随机匹配密码进行匹配
从设备
不具有输入端,固化匹配密码
协议栈
应用层
实现各种应用功能指定的协议
中间件层
提供针对某种通信的方式、服务模式和协议
数据链路层
在物理层基础上,提供两个或多个设备之间和物理层无关的逻辑传输通道
物理层
负责提供数据传输的物理信道
*安全模式
非安全模式
业务层安全模式
对系统各应用和服务进行安全保护
链路层安全模式
对所有应用和服务的访问都需要访问授权、身份验证等
WiFi
无线局域网通信技术
版本
IEEE802.11
IEEE802.11a
IEEE802.11b
IEEE802.11n
本质特点
不使用通信电缆将计算机与网络连接,使用无线,使用网络构建,终端更加灵活
重要基本概念
站点(STA)
每个连接到无线网络中的终端
无线接入点(AP)
无线网络创建者,网络中心节点
拓扑结构
基础网
基于AP组建
由AP创建,众多STA加入
AP是网络中心
各STA间不能直接通信,通过AP转发
自组网
Ad-hoc也称对等模式
两个以上的STA组成,网络中不存在AP
各设备自发组网,设备之间对等
网络中所有STA之间直接通信
安全机制
访问控制
加密
用户加入过程认证
开放系统认证
共享密钥认证
Zigbee
基于IEEE802.15.4的低功耗局域网协议
低距离、低复杂度、低速率、低成本双向无线通信技术
自动控制和远程控制领域
最多65000各模块组成网络平台
技术特性
低功耗
低成本
低速率
短时延
高安全
网络角色
协调器
网络核心,网络搭建和网络维护功能
路由器
有信息转发和辅助协调器维护网络的功能
终端
最末端,加入网络即可
拓扑结构
星状网络
必须经过中心节点转发
树状网络
沿着树的路径向上传递到共同父节点
网状网络
每个节点可以重新选择路由,可以重新组网
协议栈
物理层
MAC层
处理所有物理无线信道访问
网络层
节点加入或离开网络等功能
应用层
实现不同应用对象映射到Zigbee网络层
4.物联网系统设计总任务
系统设计概述「信息系统设计的概念」
概念
设计实现信息系统逻辑模型的技术方案,给出物理模型
从适合计算机解决问题,实现任务角度出发
系统设计目的
回答系统“怎么做”问题
如何实现系统分析说明书规定的系统功能
根据技术、经济、社会条件确定系统的实施方案
总体设计
硬件体系
软件体系
网络体系
模块体系「模块结构图」
模块结构图设计策略
模块结构图优化准则
详细设计
文件或数据库设计
代码设计
输入/输出设计
模块设计
总体设计
概念
在系统分析基础上,对整个系统划分软硬件、网络配置等整体安排
体现任务分解和组合
确定模块、模块之间的关系、子系统、子系统之间的关系
软件设计体系
操作系统
数据库管理系统
Web服务软件
其他开发环境
各种软件工具
硬件设计体系
主机
工作站
设计设备主要性能指标
网络体系
拓扑结构、传输介质、网关
B/S、C/S、云架构
硬件选型
依据
逻辑模型、容量、外设(数量、速度)
指标
可靠性
可维修性
兼容性
熟悉性
方便性
可扩充性
经济合理性