欢迎来到天天文库
浏览记录
ID:59202169
大小:2.04 MB
页数:182页
时间:2020-09-26
《第2章 物联网软件工程基础(二)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、物联网工程设计1第二章物联网软件工程基础最少学时:8学时;知识点:物联网软件工程的相关概念软件工程的过程管理及质量保证;需求分析、系统设计、编码、测试;学习目标:掌握物联网工程软件工程的相关概念;理解可行性研究、需求分析的内容和步骤;熟悉系统设计的方法和步骤;熟悉并能选择合理的编码工具;熟悉测试的基本概念、流程,掌握测试用例的设计方法;2主要内容3物联网软件工程概述软件测试与运行维护软件开发过程管理及改进软件需求分析软件系统设计软件界面设计软件实现2.4软件系统设计软件需求分析阶段较好解决了开发的软件“做什么”的问题并通过需求分析说明书详细阐明,下一步就着手对软件系统进行设计,即解
2、决“怎么做”的问题。软件系统设计需要将分析阶段的需求分析说明转换为计算机中可实现的系统,要完成的内容包括:系统架构设计、数据设计、过程设计、界面设计等,目标就是构造一个高内聚、低耦合的软件模型。系统架构设计定义系统的整体结构,建立系统主要成分之间的关系,是后续工作的核心和提纲;数据设计侧重于本系统中数据的定义;过程设计则根据系统架构给出构成系统的主要成分部件的算法和接口描述;界面设计是对系统边界的描述,是用户和协调进行交互的工具。42.4软件系统设计2.4.1软件系统设计原则(1)软件体系结构设计准则软件体系结构是软件系统中最本质的东西。一个软件体系结构的设计准则如下:1.体系结构
3、是对复杂事物的一种抽象。良好的体系结构是普通适用的,它能够描述各种风格的软件系统结构,可以高效地处理多种多样的个体需求;2.体系结构在一定的时间内保持稳定。确保接口一致,既能确保某一体系结构配置描述内相关接口描述的一致,又能确保建立关联的两个构件接口描述的一致性;3.良好的体系结构意味着普通、高效和稳定。52.4软件系统设计2.4.1软件系统设计原则(2)面向对象设计准则1、模块化:对象是面向对象软件系统中的模块;2、抽象:过程抽象、数据抽象、参数化抽象;3、信息隐藏:类;4、弱耦合:面向对象系统中的耦合包括交互耦合(应尽可能松散)和继承耦合(应尽可能紧密)两种类型。5、强内聚:面
4、向对象系统中的内聚包括服务内聚(一个服务应该完成一个且仅完成一个功能)、类内聚(最佳的内聚是通信内聚)和一般-特殊内聚(紧密的继承耦合与高度的一般-特殊内聚是一致的)。6、可重用:重用已有类;设计时考虑重用性;62.4软件系统设计2.4.1软件系统设计原则(3)软件模块设计准则1、降低模块之间的耦合性,提高模块的内聚性;2、模块结构的深度、宽度、扇出和扇入应适当;3、模块的作用范围应该在控制范围内;4、模块接口设计要简单,以便降低复杂程度和冗余度;5、设计功能可预测并能得到验证的模块;6、适当划分模块规模,以保持其独立性;7软件模块设计准则1.降低模块之间的耦合性,提高模块的内聚性
5、.通过模块分解或合并,降低耦合提高内聚。ABCABCDEFABCDEF图模块的分解和合并软件模块设计准则2.模块结构的深度、宽度、扇出和扇入应适当。深度:软件结构中模块的层数,它表示控制的层数,在一定意义能粗略地反映系统的规模和复杂程度。宽度:同一层次上模块的最大个数。扇出:是一个模块直接调用的模块数目。经验证明,好的系统结构的平均扇出数一般是3-4,不能超过5-9。扇入:有多少个上级模块直接调用它。一般设计的比较好的软件结构,顶层扇出高,中层扇出较少,底层模块有高扇入。软件模块设计准则深度=5宽度=9扇入=2扇出=1软件模块设计准则PPP1P2扇出过大QQQ1Q2Q3扇入过大软件
6、模块设计准则3.模块的作用范围应该在控制范围之内。模块的作用范围:指受该模块内一个判断影响的所有模块的集合;模块的控制范围:指模块本身以及其所有直接或者间接从属于它的模块集合;在设计的好的软件结构中,所有受判断影响的模块都从属于作出判断的那个模块,最好局限于做出判定的那个模块本身及它的直属下级模块。软件模块设计准则MAGBCDEFA的作用范围A的控制范围软件模块设计准则MAGBCDEFMAGBCDEF解决方案:把模块A中的判定移到模块M中。A的判定上移把模块G移到模块A下面,作为它的下级模块。软件模块设计准则4.模块接口设计要简单,以便降低复杂程度和冗余度。模块接口复杂是软件发生错
7、误的一个主要原因,应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。例:解一元二次方程的函数QUAD_ROOT(TBL,X)其中数组TBL传送方程的系数数组X返回求得的根QUAD_ROOT(A,B,C,ROOT1,ROOT2)软件模块设计准则5.设计功能可预测并能得到验证的模块。模块的功能应该能够预测,但也要防止模块功能过分局限。功能可预测:如果一个模块可以当作一个黑盒子,只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。软件模块设计准则6.
此文档下载收益归作者所有