SDL软件设计技术.ppt
《SDL软件设计技术.ppt》由会员分享,可在线阅读,更多相关《SDL软件设计技术.ppt(305页珍藏版)》请在三一办公上搜索。
1、SDL软件设计技术,一 通信软件,1.通信软件的特点 什么是通信软件?凡是用来实现两个或多个实体(计算机,电信终端,交换设备等)之间相互通信的软件都可称为通信软件。通信软件主要有两大类:电信软件和计算机网络软件。电信软件主要包括:电话交换软件、移动通信软件、智能网软件等。网络软件主要包括:各种网络协议和网络应用软件。,电信软件和计算机网络软件的特点不尽相同,电信软件具有以下特点:(1)实时性强 电信软件系统属于实时系统,系统对外部事件能做出及时响应,如电话交换机用户在任何时刻拿起话机都能听到拨号音(300ms以内),用户拨完号码后,系统就会马上为其找到被叫,如果被叫空闲,就可接通被叫(向被叫振
2、铃,向主叫用户送同铃音)。被叫摘机后,双方即可通话。(2)运行时间长 电信软件系统一旦投人运行,就要一直运行下去,除非发生故障。因而要求系统具有很高的可靠性。,(3)并发性强 电信软件系统能够“同时”为成千上万的用户服务,必须具有很强的并发处理能力。(4)结果可预期 用户在接受电信软件系统提供的服务时,对其结果是可预期的,如电话用户拿起话机应该听到拨话音(作为主叫时)或可以与对方通话(作为被叫时),如果不是这样,说明系统出故障了,用户只好挂机。用户拨完一号码后,可以听到回铃音(被叫空闲)或忙音(被叫忙)或空号音(号码错)或相应的语音提示。否则可认定系统发生故漳了。(5)离散性电信软件系统是离散
3、系统,支持离散事件,系统行为可以用有限状态机来描述。,网络软件具有以下特点:(1)网络软件采用分层结构,如TCP/IP协议栈把计算机网络分成四层。即应用层、传输层、网络层和数据链路层,上下层之间通信采用原语形式,每层使用不同的协议。(2)网络软件实时性要求较低而可靠性要求高。网络技术的发展趋势是电信与计算机网络的融合。如VoIP就是利用IP来承载语音信息;软交换就是利用计算机网络来取代传统电话交换机,实现语音和多媒体信息的交换;XDSL技术则是利用现有电话网络承载宽带业务。,2.通信软件的开发过程与开发其他软件一样,开发通信软件也需要经历以下阶段:需求分析;概要设计;详细设讨;编码;单元测试;
4、集成测试;系统测试;运行维护。,(1)需求分析需求分析的主要任务是把用户对软件产品的需求和软件产品的运行环境搞清楚,经过对要求和环境的分析,采用某种形式化语言对需求进行描述,最后形成需求规格说明书。用户的需求分为功能性需求和非功能性需求。对于通信软件而言,功能性需求主要包括:软件系统应其有的功能、采用协议或信令系统的情况、与硬件环境的接口关系、与其他系统交互信息的情况等。非功能性需求主要包括:软件的可移植性、可靠性、实时性、可用性、安全保密和可重用性等。,在需求分析阶段,可以采用对象建模技术(OMT)把分析结果抽象成不同的对象,并描述对象之间的关系。统一建模语言 UML是一种比较成熟的标准建模
5、语言。非常适合于实时系统、特别是通信软件系统的分析建模。UML具有完备的语法和语义定义,具有两种语法表示:图形语法和文本语法。图形语法直观易懂,便于交流,设计人员一般采用图形语法来建模。UML的主要内容可归纳为静态建模机制和动态建模机制。静态建模机制主要用来构造系统的结构。而动态建模机制主要用来描述系统的行为。,由于通信软件的特殊性,在需求分析阶段,除了要描述系统的结构和系统行为以外,还需要对系统与应用环境之间交互信息的情况以及系统组件之间交换信息的情况进行描述。Msc(消息顺序图)是一种形式化语言,特别适合于描述通信软件系统与外部环境之间以及系统内个功能模块之间的消息交互情况。,需求分析阶段
6、的文档是需求规格说明书。需求规格说明书主要包括以下内容:1引言 说明本项目的背景,如项目的委托单位和开发单位、本软件系统一与其他系统的关系等:给出缩写词的原文和专用术语的定义;列出参考文献。(2任务概述 说明本软件系统的设计目标、运行环境、条件与限制等。(3功能需求 说明本软件系统的功能划分情况、类的定义、系统类图、系统与外部环境之间的消息(信号)交互图等。(4)性能需求 说明本软件系统的可移植性、可靠性、实时性、可用性、安全保密性和可重用性等。(5)数据描述 给出本软件系统用到的数据项(包括静态数据和动态数据)的描述。如果用到数据库,还要给出数据库的名称和库表结构等。,(2)概要设计 需求分
7、析阶段解决了系统应该“做什么”的问题,而概要设计和详细设计阶段就是要解决系统“如何做”的问题。概要设计的任务就是根据需求规格说明书,采用合适的形式化语言给出系统的结构设计,划分功能模块,给出模块间接口定义,定义主要的数据结构,设计主要算法等。,ITU-T z.100建议中给出的SDL(规范说明和描述语言)也是一种形式化语言,该语言基于扩展的有限状态自动机(EFSM)模型,特别适合于描述软件系统的离散过程。SDL既适用于概要设计阶段,也适用于详细设计阶段。由于已有工具支持SDL到C语言或C+语言的翻译,即代码自动生成,使得SDL语言在通信软件设计中得到越来越多的应用。如果在设计阶段采用SDL.语
8、言,则在概要设计阶段需设计出SDL系统图(含功能块划分),给出必要的信号(消息)定义,设计必要的进程类和功能块类,明确各功能块的功能等。,本阶段的文档是概要设计说明书,概要设计说明书的主要内容包括:(l)总体设计 说明软件系统的总体结构和功能模块划分情况,以及各模块的功能分配。(2)接口设计 设计系统与环境的接口(包括软件接曰和硬件接口)和各功能模块之间的接口。(3)数据结构设计 设计数据的逻辑结构和物理结构,定义必要的新的数据类型,说明静态数据的加载方法等。(4操作维护管理设计 定义故障信息,设计系统故障监测和故障处理策略,设计系统维护操作等。,(3)详细设计 概要设计完成后,系统功能已划分
9、清楚,系统结构也已确定。详细设计的任务就是细化各功能模块的功能,详细设计系统行为,并用形式化语言来描述设计结果。详细设计分功能模块进行,一般将功能模块分解成多个有限状态自动机(FSM),先画出状态机的状态转移图,然后用SDL语言来描述这些状态机。一个状态机对应SDL.的一个进程,进程间的信号(消息)交互情况可用MSC来描述。对于一些复杂的算法,可以定义过程来实现。编写测试计划也是详细设计阶段的任务,测试计划包括测试方法的设计和测试用例的设计。,本阶段的文档是详细设计说明书。详细设计说明书的主要内容包括:(1软件结构 说明进程划分情况和进程间的消息交互情况,定义本模块内使用的消息。(2)数据定义
10、 定义本模块内使用和各进程内使用的数据类型和数据结构,声明变量等。(3)行为描述 用SDL进程图详细描述系统行为,定义必要的过程,提供变量和过程的共享机制。(4)测试计划 设计各进程单元测试的测试方法和测试用例,设计本模块集成测试的测试方法和测试用例。,3.通信协议开发过程,开发协议有两个含义:一是指为了满足新的通信需求,研究开发新的协议,指定协议标准;二是指在一个特定的应用环境下,实现某个已经成熟的协议。对于第一个含义,开发协议的目标是形成新的协议文本,重点是说明本协议应该具有什么功能,其协议开发过程包括:协议分析:协议环境分析包括用户要求、通道性质、工作模式等;,协议功能分析,根据环境分析
11、结果明确本协议应具有的功能;协议设计:协议结构设计、协议机制设计协议元素设计,设计服务原语,PDU格式等;形成协议文本,用自然语言描述协议结构即协议元素之间的关系;协议描述,用一种形式化语言来描述协议内容,包括建议的软件系统结构、模块划分、系统应具有的行为等;协议验证,在开发环境下仿真运行协议软件,验证协议的正确性。,二、规范说明和描述语言SDL,1.SDL 概述,SDL语言是CCITT推荐的规格与描述性语言(Specifical and Description Language),是一种用来说明和描述系统的国际通用的标准化语言。它将简明的图形与固定的格式结合起来,使开发人员可以将规范与协议以
12、一种清晰而明确的格式描述出来。这种简洁有效的描述语言能够极大地加速标准与协议的开发制定过程。,ITU将SDL描述为“实时系统的特性描述语言”。绝大多数SDL概念有文本和图形两种表述形式。由于缺乏某些范围内的高层结构和一些象C语言的概念,SDL并非编程语言。SDL并不描述系统发展进程。SDL具有两种不同的语法SDL/GR(图形表示法)与SDL/PR(文本表示法),两者之间可以互相转换。SDL中的数据定义只能采用文本表达方法。SDL允许嵌入高级语言或者转换为高级语言,如C、C+。在实际开发中,开发人员可以应用SDL图形化表示法来描述系统,再由SDL工具将其转化为C语言代码或者CHILL源代码,最后
13、嵌入到实际开发环境中。,SDL既可以用来说明一个系统所应该具有的行为,也可以用来描述一个系统实际具有的行为。因而,SDL可以用来制作以下文档:需求说明、系统设计说明、系统设计描述(结构设计和详细设计)、系统测试说明等。,SDL主要用于电信领域,描述实时、交互式和分布式系统的行为,对于能用扩展的有限状态机描述的系统都非常适用于用SDL描述,如电话、用户电报、数据交换、信令系统、信令系统与数据协议的互通等。,2.SDL开发的优点,1)开发周期可以缩短4075;2)可以明显改善软件质量;3)作为正式规范描述语言,可以提高质量在1015。4)可以大幅降低系统的差错率。5)可以快速原型化,验证实现是否满
14、足需求,并在开发的早期进行测试,即使系统未完全实现。6)对系统图形化、直观、易于维护。,3.工具支持,目前最流行的支持SDL语言的开发工具是瑞典公司Telelogic提供的TAU开发套餐,此工具被全球客户广泛验证。Telelogic TAU工具是行业公认的用于实时及其他先进软件开发和测试的可视化软件环境。它可在开发环境中实现仿真、测试、执行、自动代码生成、早期错误检测及最小化后期开发维护扥功能。,TAU中包含了UML Suite、SDL Suite、TTCN Suite 3个部分,可以融合UML、SDL、TTCN等语言元素来构建面向实际目标环境的系统。,SDL把应用领域分为两部分:SDL系统和
15、环境,SDL系统是设计者关注的对象,系统以外的部分都被视作环境,系统与环境之间可以通过交换信号来通信,保证系统能对外部事件作出反映。系统与环境的关系可抽象成下图:,4.SDL系统行为,SDL描述系统行为的基础是扩展的有限状态自动机,系统行为由系统内的所有进程实例对应的有限状态机协同工作并通过与环境的交互来实现。SDL 的每个进程实例就是一个有限状态机。进程实例之间的通信由交换信号来实现,发送信号时可以明确地给出目标地址。每个进程实例都有一个私有存储空间记录该实例的状态和一些变量,因而系统的所有进程实例可以并发地工作。SDL系统与环境之间也能通信,SDL把环境视为一个进程,可以通过信号交互信息。
16、,在SDL系统中,进程实例是基本单位,系统行为主要用进程实例来描述。具有相同特性的进程实例构成进程集,进程集与进程集之间可以信号方式交互信息,进程集之间用信道相连,交互的信号都通过信道来传递。功能相近的进程集构成功能块,系统则由若干功能块组成,功能块之间也用信道相连。信道说明了功能块之间的通信关系,没有用信道相连的功能块之间不能以信号方式进行通信。从层次关系来看,SDL系统结构可用图1-1来表示,即SDL系统由系统、功能块和进程3个层次的实体组成,系统由功能块组成,功能块可以由进程组成,也可以由功能块组成。,5.SDL系统结构,图 1-1 SDL 层次结构图,图1-2 SDL系统包含关系,从包
17、含关系上,SDL系统结构可用图1-2来表示,即进程图被包含在功能块图中,功能块图又被包含在系统图中。,例:用“helloword”来说明SDL图的包含关系:工作方式:系统启动以后,当从环境向系统发送信号”helloworld”时,系统将向环境回送“helloworld”;当从环境向系统发送信号“terminated(结束)”时,系统会终止工作。系统图如下图所示:,System helloworld,Signal hellworld;Signal terminated;,blk,Helloworld,terminated,helloworld,etos,stoe,SDL系统图,下图是功能块“BL
18、K”的功能块图。该功能块只包含一个进程集,而且该进程集最多只有一个进程实例。“Procs”是进程集的名称,进程集名后的“(1,1)”表示该进程集将由系统在初始化时静态创建一个进程实例(第一个1),系统在运行过程中最多允许存在的该进程集的实例数也是1(后一个1)。进程不能直接从环境得到信号,所以进程图的边框不代表环境,只是该功能块的边界,功能块通过与之相连的信道与外界通信,所以在边框上需标注与其相连的信道名。功能块内部也需要定义信道,负责连接外部信道与进程集,当功能块由多个进程集组成时,内部信道也用来提供进程集之间的通信通道。,SDL 功能块图,下图是进程集“Procs”的进程图,只有一个状态,
19、只接受两条信号,当收到信号“helloworld”时,输出信号“helloworld”。由于该信号可以在两条信道上传递,输出时必须指出从哪条信道传输,Sdl进程图,1.包把系统图中需要定义的信号等放到包里。在SDL中,包(package)的作用类似于C语言中的“.h”。包中包含的内容都是可以重用的,即可以被多次引用(如C语言中的#include*.h)。SDL允许各层次的图和过程图引用包,包内可以包含所有图中可以定义的内容,如类型定义、信号定义、数据结构定义等。,6.SDL语法,*,Package,包引用部分,表明在定义包时可以引用其他已经定义过的包,是可选项。,包定义:关键字package
20、开头,由用户给出包名;包中可以定义文本内容,在部分给出;包中也可以画图,在部分给出;,包的一般定义格式如图所示:,Package sig_def,Syntype dev_no=integer constants 0:127Endsyntype dev_no;Syntype dial_no=integer constants 0:9,11,12Endsyntype dial_no;Signal off_hook(dev_no),on_hook(dev_no),digit(dev_no,dial_no);Signal dial_tone_on(dev_no),ring_back_tone(dev_
21、no),tone_off(dev_no),busy_tone_on(dev_no),null_tone_on(dev_no),tone_off(dev_no),ringing_on(dev_no),ringing_off(dev_no),path_connect(dev_no,dev_no),disconnect(dev_no,dev_no);Signallist from_env=off_hook,on_hook,digitSignallist to_env1=dial_tone_on,ringback_tonf_on,busy_tone_on,null_tone_on,tone_off,p
22、ath_connect,disconnect;Signallist to_env2=ringing_on,ringing_off;Synonym sec duration=external;,包的定义内容,2.系统,SDL系统完整地描述一个真实系统或一个真实系统中相对独立的一部分。在SDL/GR中,系统由系统图来定义或由系统类图实例化得到。,图 简单的SDL系统图,一个SDL系统就是用SDL规格所描述的一个具体物理存在,也就是从SDL语言的角度所关注的一切,对于目前不用SDL语言描述的,都作为SDL的环境看待。用SDL描述的系统是一个层次化的结构。最高一层成为系统System层。SDL系统通过
23、信道与环境连接。,每个系统可以划分为多个功能块(Block),功能块之间通过信道相连,各功能块相对于其他功能块而言是独立的,功能块之间以及功能块与环境之间的通信是靠发送信号来实现的。块的内部可以进一步划分为进程Process,进程之间通过信号进行通信。,SDL中在各个结构层次中均可定义信号。信号在text symbol中加以定义。信号的定义由信号名和信号携带的参数构成。系统层中定义的信道对应于协议层的上下SAPs;信号则对应于ASPs。,3.功能块(Block)SDL的功能块是在SDL系统内的部分功能集合。通常情况下,功能块是一些关联较为密切的功能的集合。一个功能块又可根据需要划分为子功能块,
24、以便在不同程度上对系统进行描述。子功能块与进程处在同一级,他们都通过一定的路由与信道相连。功能块所包含的功能最终是由在功能块内的进程来实现的。一个功能块又可有多个不同的进程来分别实现不同功能。,Block代表了系统的静态结构,Process规定了系统的动态结构。Block中定义的信号对应系统的协议数据单元PDUs或者控制信息。功能块由功能块图来描述。功能块图与系统图基本相同,只是在功能块图的边界上要标出与本功能块相连的信道标识。,图 由功能块组成的功能块图,SDL系统中的功能块最终都需要用进程来定义。如:,图 由进程集组成的功能块图,P1,P2两个个进程集之间存在创建关系,即进程集P2的实例由
25、进程集P1的实例来创建。创建符的定义如下:=图中还用到了进程符,其定义如下::=,进程符中包含进程名和进程实例数,进程实例数由两个数组成,格式为:(N1,N2),其中N1表示初始化时系统创建的该进程的实例数,N2表示系统在运行过程中允许动态创建的该进程的最大实例数。如P1(l,l)表示系统初始化时创建一个P1实例,由于允许创建的最大实例数为1,在系统运行过程中就不能再创建P1实例了;P2(0,128)表示系统初始化时不创建P2实例,但在系统运行过程中,最多可以同时存在128个P2实例。进程实例数可以不写出来,缺省的进程实例数为(0,inf),inf表示不受限。,4.进程(Process)进程是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SDL 软件设计 技术
链接地址:https://www.31ppt.com/p-2876116.html