1、 通信软件设计通信软件设计西安邮电学院西安邮电学院 通信工程系通信工程系 。课程目标课程目标n了解通信软件开发过程了解通信软件开发过程 n理解数链层、网络层、传输层和自定义应用层理解数链层、网络层、传输层和自定义应用层协议的通信软件开发方法协议的通信软件开发方法n理解串行通信、网络通信、状态机的编程方法理解串行通信、网络通信、状态机的编程方法n理解通信软件协议分析和设计,自定义协议编理解通信软件协议分析和设计,自定义协议编程方法程方法。主要内容主要内容n通信软件设计概述通信软件设计概述nVC+程序设计基础程序设计基础 n串口通信串口通信n网络通信网络通信n状态机状态机n协议分析与设计协议分析与
2、设计。课程安排课程安排n理论课理论课16学时学时n实验实验16学时学时考核方式考核方式n平时成绩:平时成绩:30n大作业设计大作业设计+实验报告:实验报告:70。实验报告模板实验报告模板n封皮封皮n实验名称:实验名称:n试验时间和地点:试验时间和地点:n指导教师:指导教师:n学号:学号:n姓名:姓名:n内容内容n实验名称:实验名称:n实验目的:实验目的:n实验步骤:实验步骤:n思考题:思考题:n实验心得:实验心得:。参考书参考书n通信软件设计基础通信软件设计基础,宋茂强,北京邮电大学,宋茂强,北京邮电大学出版社出版社nVisual C+/Turbo C串口通信编程实践串口通信编程实践 龚龚建伟
3、建伟/熊光明,电子工业出版社熊光明,电子工业出版社nEffective TCP/IP Programming,Jon C.C.SnaderSnader 高级高级TCP/IPTCP/IP编程编程,中国电力出版社,中国电力出版社n网络安全技术实践与代码详解网络安全技术实践与代码详解,牛冠杰等,牛冠杰等,人民邮电出版社人民邮电出版社。第一讲第一讲 通信软件设计概述通信软件设计概述。主要内容主要内容 1.1.通信软件基本概念通信软件基本概念 2.2.通信软件开发过程通信软件开发过程 3.3.通信软件开发工具通信软件开发工具。1.1.通信软件基本概念通信软件基本概念n通信的定义通信的定义n通信就是在两个
4、或多个实体之间传递或交换通信就是在两个或多个实体之间传递或交换信息信息。n古代,人们通过驿站、飞鸽传书、烽火报警等方式进行古代,人们通过驿站、飞鸽传书、烽火报警等方式进行信息传递。信息传递。n今天,随着科学水平的飞速发展,相继出现了无线电,今天,随着科学水平的飞速发展,相继出现了无线电,固话,手机,互联网,可视电话等通信方式。固话,手机,互联网,可视电话等通信方式。1.1.通信软件基本概念通信软件基本概念n通信的分类通信的分类n基于连接的通信基于连接的通信 需要在通信实体之间建立连接需要在通信实体之间建立连接n基于无连接的通信基于无连接的通信 在通信实体之间不需要建立连接在通信实体之间不需要建
5、立连接。1.1.通信软件基本概念通信软件基本概念n通信的要素通信的要素n 通信通信实体实体(自然人、计算机、通信终端等)(自然人、计算机、通信终端等)n 传输传输信道信道(电路、无线信道、卫星信道、计算机网(电路、无线信道、卫星信道、计算机网 络等)络等)n 通信通信协议协议(No.7信令、信令、TCP/IP、SIP等)等)。1.1.通信软件基本概念通信软件基本概念n通信协议通信协议 在通信网中,为了在两个或多个通信实体之间准确、在通信网中,为了在两个或多个通信实体之间准确、完整地交换信息,必须对信息交换的完整地交换信息,必须对信息交换的顺序和条件顺序和条件、交换、交换信息的信息的格式和内容格
6、式和内容等做出约定,这一整套约定就称为通等做出约定,这一整套约定就称为通信协议。信协议。1.1.通信软件基本概念通信软件基本概念n通信协议三要素通信协议三要素n语法:确定通信双方通信时数据报文的语法:确定通信双方通信时数据报文的格式格式。n语义:确定通信双方的通信语义:确定通信双方的通信内容内容。n时序:指出通信双方信息交互的时序:指出通信双方信息交互的顺序顺序。1.通信软件基本概念通信软件基本概念n通信协议举例通信协议举例 两台计算机之间进行文件传输,主机两台计算机之间进行文件传输,主机A(发送方发送方)发文件发文件给主机给主机B(接收方接收方)。首先定义双方进行通信的协议(双方约。首先定义
7、双方进行通信的协议(双方约定好通信的格式),定好通信的格式),例如:可以定义一个简单的文件传输例如:可以定义一个简单的文件传输协议:协议:。1.通信软件基本概念通信软件基本概念n通信软件通信软件n定义:能够实现在两个或多个实体(计算机、电信终端、定义:能够实现在两个或多个实体(计算机、电信终端、交换设备等)之间传递或交换信息的软件称为通信软件。交换设备等)之间传递或交换信息的软件称为通信软件。n通信软件主要包括通信软件主要包括电信软件电信软件和和计算机网络软件计算机网络软件两大类。两大类。n电信软件包括电信软件包括电话交换软件电话交换软件,移动通信软件移动通信软件,智能网软智能网软件件等。等。
8、n计算机网络软件包括计算机网络软件包括网络协议网络协议和和网络应用软件网络应用软件。1.通信软件基本概念通信软件基本概念n电信软件的特点电信软件的特点n实时性强实时性强n运行时间长:要求系统具有很高的可靠性运行时间长:要求系统具有很高的可靠性n并发性强:并发性强:“同时同时”为成千上万的用户服务为成千上万的用户服务n结果可预期结果可预期n大部分是嵌入式软件大部分是嵌入式软件n离散性,基于有限状态机离散性,基于有限状态机。1.通信软件基本概念通信软件基本概念n计算机网络软件的特点计算机网络软件的特点n采用分层结构采用分层结构n由网络协议组成由网络协议组成n实时性要求低,可靠性要求高实时性要求低,
9、可靠性要求高。主要内容主要内容 1.1.通信软件基本概念通信软件基本概念 2.2.通信软件开发过程通信软件开发过程 3.3.通信软件开发工具通信软件开发工具。需求分析和定义系统概要设计详细设计编码单元测试集成测试系统测试系统交付维护AnalystDesignerProgrammerTesterTrainer2.通信软件开发过程通信软件开发过程。2.1 需求分析需求分析n要解决的问题:系统应该要解决的问题:系统应该“做什么做什么”。n主要任务:用户的需求运行环境主要任务:用户的需求运行环境形式化描述形式化描述需求规格说明书需求规格说明书需求需求功能性需求功能性需求非功能性需求非功能性需求系统功能
10、系统功能采用的协议和信令系统的情况采用的协议和信令系统的情况与硬件环境的接口关系与硬件环境的接口关系与其他系统交互信息的情况与其他系统交互信息的情况可移植性、可靠性、实时性、可用性可移植性、可靠性、实时性、可用性安全保密性安全保密性可重用性可重用性。2.1 需求分析需求分析n统一建模语言(统一建模语言(UML:Unified Modeling Language)是一种比较)是一种比较成熟的标准建模语言。非常适合于实时系统,特别是通信软件系统成熟的标准建模语言。非常适合于实时系统,特别是通信软件系统的分析建模,主要用于描述系统的结构和行为。的分析建模,主要用于描述系统的结构和行为。UML具有完备
11、的语法和语义定义,其中语法的表示又分为:图形语具有完备的语法和语义定义,其中语法的表示又分为:图形语法和文本语法。图形语法直观易懂,便于交流,因此设计人员一般法和文本语法。图形语法直观易懂,便于交流,因此设计人员一般采用图形语法来建模。采用图形语法来建模。其中,用其中,用例图例图用于需求分析,用于需求分析,类图类图用于概要设计和详细设计。用于概要设计和详细设计。nMSC(Message Sequence Chart,消息顺序图,消息顺序图)是一种形式化语是一种形式化语言,特别适合于描述通信软件系统与外部环境之间以及系统内各功言,特别适合于描述通信软件系统与外部环境之间以及系统内各功能模块之间的
12、消息交互情况。能模块之间的消息交互情况。2.1 需求分析需求分析 最后形成的文档是最后形成的文档是需求规格说明书需求规格说明书,主要内容如下:,主要内容如下:n引言引言:项目的背景,给出缩写词的原文和专用术语的定义,列出参:项目的背景,给出缩写词的原文和专用术语的定义,列出参考文献。考文献。n任务概述任务概述:软件系统的设计目标、运行环境、条件与限制。:软件系统的设计目标、运行环境、条件与限制。n功能需求功能需求:软件的功能划分情况、类的定义、系统类图、系统与外:软件的功能划分情况、类的定义、系统类图、系统与外部环境之间的消息交互图。部环境之间的消息交互图。n非功能性能需求非功能性能需求:软件
13、系统的可移植性、可靠性、实时性、可用性、:软件系统的可移植性、可靠性、实时性、可用性、安全保密性和可重用性。安全保密性和可重用性。n数据描述数据描述:给出软件系统用到的数据项的描述。:给出软件系统用到的数据项的描述。2.2 概要设计概要设计n要解决的问题:怎么做,解决要解决的问题:怎么做,解决“系统架构系统架构”问题。问题。n主要任务:主要任务:n根据需求规格说明书,采用形式化语言,给出系统的结构根据需求规格说明书,采用形式化语言,给出系统的结构设计。设计。n划分功能模块,定义模块间的接口。划分功能模块,定义模块间的接口。n设计数据结构。设计数据结构。n设计主要的算法。设计主要的算法。2.2
14、概要设计概要设计nSDL(Specification and Description Language,规范说明和描述语,规范说明和描述语言言)也是一种形式化说明语言。也是一种形式化说明语言。SDL基于扩展的有限状态自动机模基于扩展的有限状态自动机模型,特别适合于描述软件系统的离散过程。型,特别适合于描述软件系统的离散过程。nSDL适用于概要设计和详细设计阶段。适用于概要设计和详细设计阶段。n目前有工具支持目前有工具支持SDL到到C语言或语言或C+语言的翻译,即代码的自动生语言的翻译,即代码的自动生成,使得成,使得SDL在通信软件设计中得到越来越多的应用在通信软件设计中得到越来越多的应用。2.
15、2 概要设计概要设计 本阶段的文档是本阶段的文档是概要设计说明书概要设计说明书,主要内容包括:,主要内容包括:n总体设计总体设计 说明软件系统的总体结构、功能模块的划分、各模块的功能。说明软件系统的总体结构、功能模块的划分、各模块的功能。n接口设计接口设计 设计系统与环境的接口、功能模块之间的接口。设计系统与环境的接口、功能模块之间的接口。n数据结构设计数据结构设计 设计数据的逻辑结构和物理结构。设计数据的逻辑结构和物理结构。n操作维护管理设计操作维护管理设计 设计系统故障检测和处理策略。设计系统故障检测和处理策略。2.3 详细设计详细设计n要解决的问题:怎么做。要解决的问题:怎么做。n主要任
16、务主要任务n细化各模块的功能细化各模块的功能n详细设计系统行为,用形式化的语言来描述设计结果详细设计系统行为,用形式化的语言来描述设计结果n编写测试计划,包括测试方法和测试用例编写测试计划,包括测试方法和测试用例n详细设计分功能模块进行,一般将功能模块分解成多个有限状态自详细设计分功能模块进行,一般将功能模块分解成多个有限状态自动机,画出状态机的状态转移图,并用动机,画出状态机的状态转移图,并用SDL语言描述这些状态机。语言描述这些状态机。一个状态机对应于一个状态机对应于SDL的一个进程,进程间的消息交互可以用的一个进程,进程间的消息交互可以用MSC来描述。来描述。2.3 详细设计详细设计 本
17、阶段的文档是本阶段的文档是详细设计说明书详细设计说明书,主要内容包括:,主要内容包括:n软件结构软件结构 进程划分,进程间的消息交互情况,本模块自定义的消息。进程划分,进程间的消息交互情况,本模块自定义的消息。n数据定义数据定义 定义数据类型和数据结构,声明变量。定义数据类型和数据结构,声明变量。n行为描述行为描述 详细描述系统行为,定义必要的过程。详细描述系统行为,定义必要的过程。n测试计划测试计划 各个进程单元测试的测试方法和测试用例,本模块集成测试的测各个进程单元测试的测试方法和测试用例,本模块集成测试的测试方法和测试用例试方法和测试用例。2.3 详细设计详细设计Conceptual D
18、esignfunctionsTechnical DesignThe form system Will takeWhatHowSystemdesignersCustomersSystembuilders 要将需求转化成一个工作系统,设计者必须同时满足用户和系统要将需求转化成一个工作系统,设计者必须同时满足用户和系统构建者的要求。构建者的要求。2.4 编码编码n要解决的问题:要解决的问题:“系统实现系统实现”问题问题n主要任务主要任务n代码自动生成代码自动生成n人工编码人工编码n编译调试编译调试n系统生成系统生成n本阶段的文档是本阶段的文档是程序清单程序清单。2.5 软件测试软件测试n要解决的问题
19、:尽可能多地发现软件产品(主要指程序)中的错要解决的问题:尽可能多地发现软件产品(主要指程序)中的错误和缺陷。误和缺陷。n测试用例:包括测试数据和测试结果。测试用例:包括测试数据和测试结果。n测试的方法测试的方法n黑盒测试:把程序看成一个黑盒子,测试者不需了解程序结构黑盒测试:把程序看成一个黑盒子,测试者不需了解程序结构和处理过程,只需根据需求分析中的功能来测试。和处理过程,只需根据需求分析中的功能来测试。n白盒测试:测试者必须了解程序结构和处理过程,根据程序的白盒测试:测试者必须了解程序结构和处理过程,根据程序的内部逻辑来测试。内部逻辑来测试。2.5 软件测试软件测试n测试步骤测试步骤n单元
20、测试:对单个模块进行测试,主要发现编码和详细设计单元测试:对单个模块进行测试,主要发现编码和详细设计中产生的错误,通常采用中产生的错误,通常采用白盒测试白盒测试,可由程序员完成。,可由程序员完成。n集成测试:对由多个模块组成的程序进行测试,检查模块间集成测试:对由多个模块组成的程序进行测试,检查模块间的接口和通信,主要发现设计阶段产生的错误,通常采用的接口和通信,主要发现设计阶段产生的错误,通常采用黑黑盒测试盒测试。n系统测试:以需求规格说明书作为依据,测试软件功能和性系统测试:以需求规格说明书作为依据,测试软件功能和性能等,通常采用黑盒测试。能等,通常采用黑盒测试。n本阶段的文档是本阶段的文
21、档是软件测试计划、软件测试报告。软件测试计划、软件测试报告。2.6 系统维护系统维护n系统维护阶段覆盖了从软件交付使用到软件被淘汰的整个时期。系统维护阶段覆盖了从软件交付使用到软件被淘汰的整个时期。n要解决的问题:改正软件中隐藏的错误,使软件适应新的环境,或要解决的问题:改正软件中隐藏的错误,使软件适应新的环境,或者为了扩充和完善软件的功能或性能。者为了扩充和完善软件的功能或性能。n在系统维护阶段,在修改程序代码的同时要修改相应的需求说明文在系统维护阶段,在修改程序代码的同时要修改相应的需求说明文档、设计文档等,还要进行档、设计文档等,还要进行回归测试回归测试(回归测试是指修改了旧代码(回归测
22、试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误)和软件配置复审等。生错误)和软件配置复审等。软件开发的基本原则软件开发的基本原则n 著名的软件工程专家著名的软件工程专家B.W.BoehmB.W.Boehm于于19831983年综合了软年综合了软件工程专家们的意见并总结了开发软件的经验,提出了软件工程专家们的意见并总结了开发软件的经验,提出了软件工程的件工程的7 7条基本原理。这条基本原理。这7 7条原理被认为是确保软件产品条原理被认为是确保软件产品质量和开发效率的原理的最小集合,又是相互独立、缺一质量
23、和开发效率的原理的最小集合,又是相互独立、缺一不可、相当完备的最小集合。下面就简单介绍软件工程的不可、相当完备的最小集合。下面就简单介绍软件工程的这这7 7条原理:条原理:。1用分阶段的生存周期计划严格管理用分阶段的生存周期计划严格管理n这条基本原理是应该把软件生存周期划分成若干个阶段,这条基本原理是应该把软件生存周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软并相应地制定出切实可行的计划,然后严格按照计划对软件开发与维护工作进行管理。件开发与维护工作进行管理。n应该制定的计划有项目概要计划、里程碑计划、项目控制应该制定的计划有项目概要计划、里程碑计划、项目控制计划、产
24、品控制计划、验证计划和运行维护计划等。计划、产品控制计划、验证计划和运行维护计划等。n各级管理人员都必须严格按照计划对软件开发和维护工作各级管理人员都必须严格按照计划对软件开发和维护工作进行管理。进行管理。据统计,不成功的软件项目中,有一半左右是据统计,不成功的软件项目中,有一半左右是由于计划不周造成的。由于计划不周造成的。2坚持进行阶段评审坚持进行阶段评审n据统计,在软件生存周期各阶段中,编码阶段之前的错据统计,在软件生存周期各阶段中,编码阶段之前的错误约占误约占63%63%,而编码错误仅占,而编码错误仅占37%37%。n另外,错误发现并改正得越晚,所花费的代价越高。另外,错误发现并改正得越
25、晚,所花费的代价越高。n坚持在每个阶段结束前进行严格的评审,就可以尽早发坚持在每个阶段结束前进行严格的评审,就可以尽早发现错误,从而可以最小的代价改正错误。因此,这是一现错误,从而可以最小的代价改正错误。因此,这是一条必须坚持的重要原理。条必须坚持的重要原理。3实行严格的产品控制实行严格的产品控制n决不能随意改变需求,只能依靠科学的产品控制技术来顺决不能随意改变需求,只能依靠科学的产品控制技术来顺应用户提出的改变需求的要求。为了保持软件各个配置成应用户提出的改变需求的要求。为了保持软件各个配置成分的一致性,必须实行严格的产品控制。其中主要是实行分的一致性,必须实行严格的产品控制。其中主要是实行
26、基准配置管理(又称为变动控制),即凡是修改软件的建基准配置管理(又称为变动控制),即凡是修改软件的建议,尤其是涉及基本配置的修改建议,都必须按规程进行议,尤其是涉及基本配置的修改建议,都必须按规程进行严格的评审,评审通过后才能实施。严格的评审,评审通过后才能实施。n这里的这里的“基准配置基准配置”是指经过阶段评审后的软件配置成分,是指经过阶段评审后的软件配置成分,即各阶段产生的文档或程序代码等。即各阶段产生的文档或程序代码等。4采用现代程序设计技术采用现代程序设计技术n实践表明,采用先进的程序设计技术既可以提高软件开实践表明,采用先进的程序设计技术既可以提高软件开发与维护的效率,又可以提高软件
27、的质量。发与维护的效率,又可以提高软件的质量。n多年来,人们一直致力于研究新的多年来,人们一直致力于研究新的“程序设计技术程序设计技术”。比如,比如,2020世纪世纪6060年代末提出的结构化程序设计技术;后年代末提出的结构化程序设计技术;后来又发展出各种结构分析(来又发展出各种结构分析(SASA)和结构设计()和结构设计(SDSD)技术;)技术;之后又出现了之后又出现了面向对象分析面向对象分析(OOAOOA:Object-Oriented Object-Oriented AnalysisAnalysis )和)和面向对象设计面向对象设计(OODOOD)技术等等。)技术等等。5结果应能清楚地审
28、查结果应能清楚地审查n软件产品是一种看不见、摸不着的逻辑产品。因此,软件软件产品是一种看不见、摸不着的逻辑产品。因此,软件开发小组的工作进展情况可见性差,难于评价和管理。开发小组的工作进展情况可见性差,难于评价和管理。n为了更好地进行评价与管理,应根据软件开发的总目标和为了更好地进行评价与管理,应根据软件开发的总目标和完成期限,尽量明确地规定软件开发小组的责任和产品标完成期限,尽量明确地规定软件开发小组的责任和产品标准,从而使所得到的结果能清楚地审查。准,从而使所得到的结果能清楚地审查。6开发小组的人员应少而精开发小组的人员应少而精n软件开发小组人员素质和数量是影响软件质量和开发效软件开发小组
29、人员素质和数量是影响软件质量和开发效率的重要因素。实践表明,素质高的人员与素质低的人率的重要因素。实践表明,素质高的人员与素质低的人员相比,开发效率可能高几倍至几十倍、而且所开发的员相比,开发效率可能高几倍至几十倍、而且所开发的软件中的错误也要少得多。软件中的错误也要少得多。n另外,开发小组的人数不宜过多,因为随着人数的增加,另外,开发小组的人数不宜过多,因为随着人数的增加,人员之间交流情况、讨论问题的通信开销将急剧增加,人员之间交流情况、讨论问题的通信开销将急剧增加,这不但不能提高生产率,反而由于误解等原因可能增加这不但不能提高生产率,反而由于误解等原因可能增加出错的概率。出错的概率。7承认
30、不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性n遵循上述六条基本原理,就能够较好地实现软件的工程遵循上述六条基本原理,就能够较好地实现软件的工程化生产。但是,软件工程不能停留在已有的技术水平上,化生产。但是,软件工程不能停留在已有的技术水平上,应积极主动地采纳或创造新的软件技术,要注意不断总应积极主动地采纳或创造新的软件技术,要注意不断总结经验,收集工作量、进度、成本等数据,并进行出错结经验,收集工作量、进度、成本等数据,并进行出错类型和问题报告的统计。这些数据既可用来评估新的软类型和问题报告的统计。这些数据既可用来评估新的软件技术的效果,又可用来指明应优先进行研究的软件工件技术
31、的效果,又可用来指明应优先进行研究的软件工具和技术。具和技术。软件工程的目标软件工程的目标n软件工程的目标是在给定成本、进度的前提下,开发软件工程的目标是在给定成本、进度的前提下,开发出具有出具有可修改性可修改性、有效性有效性、可靠性可靠性、可理解性可理解性、可维可维护性护性、可重用性可重用性、可适应性可适应性、可移植性可移植性并满足用户需并满足用户需求的软件产品。求的软件产品。名词名词1 1)可修改性(可修改性(modifiability),),允许对软件系统修改而不增加其复杂性。允许对软件系统修改而不增加其复杂性。它支持软件调试与维护。它支持软件调试与维护。2 2)有效性(有效性(effi
32、ciency),),指软件系统的时间和空间效率。这是一个应指软件系统的时间和空间效率。这是一个应当努力追求的重要目标。当努力追求的重要目标。3 3)可靠性(可靠性(reliability),),是指在给定的时间间隔内,程序成功运行的是指在给定的时间间隔内,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。概率。可靠性是衡量软件质量的一个重要目标。4 4)可理解性(可理解性(understandability),),指系统具有清晰的结构,能直接反指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件映问题的需求。可理解性有助于控制软件系统的复杂性,并支持
33、软件的维护、移植和重用。的维护、移植和重用。5 5)可维护性(可维护性(maintainability),),是指软件产品交付使用后,在改正潜是指软件产品交付使用后,在改正潜伏的错误、改进性能等属性、适应环境变化等方面工作的难易程度。伏的错误、改进性能等属性、适应环境变化等方面工作的难易程度。由于软件的维护费用在整个软件生存周期中占主要的比重,因此,可由于软件的维护费用在整个软件生存周期中占主要的比重,因此,可维护性是软件工程中的一个十分重要的目标。软件的可理解性和可修维护性是软件工程中的一个十分重要的目标。软件的可理解性和可修改性支持软件的可维护性。改性支持软件的可维护性。名词名词6 6)可
34、重用性()可重用性(reusability),),是指软部件可以在多种场合使是指软部件可以在多种场合使用的程度。用的程度。概念或功能相对独立的一个或一组相关模块可构成一概念或功能相对独立的一个或一组相关模块可构成一个个软部件软部件。软部件应具有清晰的结构和注释、正确的编码。软部件应具有清晰的结构和注释、正确的编码和较高的时空效率。可将各种软部件按照某种规则放在软和较高的时空效率。可将各种软部件按照某种规则放在软部件库中供开发人员选用。部件库中供开发人员选用。广义地讲,可重用性还应包括应用项目、规格说明、广义地讲,可重用性还应包括应用项目、规格说明、设计、概念和方法等等的重用。一般来说,重用的层
35、次越设计、概念和方法等等的重用。一般来说,重用的层次越高,带来的效益越大。高,带来的效益越大。可重用性有助于提高软件产品的质量和开发效率、降可重用性有助于提高软件产品的质量和开发效率、降低软件开发和维护费用。低软件开发和维护费用。名词名词7)可适应性()可适应性(adaptability),),是指软件在不同的系统约束是指软件在不同的系统约束条件下,使用户需求得到满足的难易程度。条件下,使用户需求得到满足的难易程度。选择广为流行的软硬件支持环境、采用广为流行的程选择广为流行的软硬件支持环境、采用广为流行的程序设计语言编码、采用标准的术语和格式书写文档可增强序设计语言编码、采用标准的术语和格式书
36、写文档可增强软件产品的可适应性。软件产品的可适应性。8)可移植性()可移植性(portability),),是指软件从一个计算机系统或是指软件从一个计算机系统或环境移植到另一个上去的难易程度。环境移植到另一个上去的难易程度。采用通用的运行支持环境和尽量通用的程序设计语言采用通用的运行支持环境和尽量通用的程序设计语言的标准部分可提高可移植性。而应将依赖于计算机系统的的标准部分可提高可移植性。而应将依赖于计算机系统的低级(物理)特征部分相对独立、集中起来。可移植性支低级(物理)特征部分相对独立、集中起来。可移植性支持软件的可重用性和可适应性。持软件的可重用性和可适应性。主要内容主要内容 1.1.通
37、信软件基本概念通信软件基本概念 2.2.通信软件开发过程通信软件开发过程 3.3.通信软件开发工具通信软件开发工具。3.通信软件开发工具通信软件开发工具n通信软件的特点通信软件的特点n通信系统越来越庞大通信系统越来越庞大n复杂度越来越高复杂度越来越高n人工编码的弊端人工编码的弊端n水平不同水平不同n风格不同风格不同n人员流动人员流动。3.通信软件开发工具通信软件开发工具 因此,需要采用软件开发工具。因此,需要采用软件开发工具。n对通信软件的整个开发过程采用系统工程的方法来管理。对通信软件的整个开发过程采用系统工程的方法来管理。n用形式化语言来设计。用形式化语言来设计。n用模拟验证工具进行分析验
38、证,排除逻辑错误,提高系统用模拟验证工具进行分析验证,排除逻辑错误,提高系统的可靠性。的可靠性。n用代码自动生成工具生成代码,保证代码质量,缩短开发用代码自动生成工具生成代码,保证代码质量,缩短开发周期。周期。3.1 电信软件开发工具电信软件开发工具 Telelogic Tau 我国多家通信设备制造商采用瑞典我国多家通信设备制造商采用瑞典TeleLogic AB公司的公司的Telelogic Tau作为软件开发工具。它是基于作为软件开发工具。它是基于SDL的通信软件开发工具。它包括以的通信软件开发工具。它包括以下几部分:下几部分:nTelelogic DOORS文档管理系统文档管理系统,支持整
39、个开发过程的文档管理。,支持整个开发过程的文档管理。nUML Suite需求分析建模套件需求分析建模套件,支持图形化的,支持图形化的UML语言分析建模。语言分析建模。nSDL Suite设计套件设计套件,支持用,支持用SDL语言设计、模拟、验证,支持语言设计、模拟、验证,支持SDL到到C或或C+的自动翻译。的自动翻译。nTTCN Suite测试套件测试套件,支持用测试语言,支持用测试语言TTCN设计测试用例。设计测试用例。3.2 计算机网络软件计算机网络软件开发工具开发工具n在需求分析阶段用到在需求分析阶段用到UML的用例图。的用例图。n在概要设计、详细设计阶段用到在概要设计、详细设计阶段用到UML的类图,状态图,的类图,状态图,顺序图。顺序图。n在编码阶段,用到的开发工具:在编码阶段,用到的开发工具:VS,VC,C+builder,jbulder,qt desinger,eclipse等。等。n测试阶段,设计测试用例。测试阶段,设计测试用例。思考题思考题n什么是通信软件?什么是通信软件?n通信软件的分类以及各自的特点。通信软件的分类以及各自的特点。小小 结结n通信软件的概念通信软件的概念n通信软件的开发过程通信软件的开发过程n软件开发的原则软件开发的原则。