资源描述
范例软件设计说明详细部分
23
2020年4月19日
文档仅供参考,不当之处,请联系改正。
软件设计说明
时间
版本号
修改人
修改内容
审批人
目 录
1 范围 1
1.1 标识 1
1.2 系统概述 1
1.3 文档概述 1
2 引用文档 1
3 CSCI 级设计决策 1
4 CSCI 体系结构设计 2
4.1 CSCI 部件 2
4.2 执行方案 3
4.3 接口设计 3
4.3.1 接口标识和接口图 3
4.3.x (接口的项目唯一标识符) 4
5 CSCI 详细设计 6
5.x (软件单元的项目唯一标识符,或者一组软件单元的标志符) 6
6 需求可追踪性 7
7 注解 7
附录A 7
软件设计说明
1 范围
1.1 标识
要求:本节应包含这个文档所适用的系统和软件的完全标识,(若适用)应包括标识号、名称、缩略名、版本号及发布号。
1.2 系统概述
要求:
1)本节主要描述本文档适用的系统和软件的用途;
2)概述系统开发、运行和维护的历史;
3)标识项目的投资方、需方、用户、开发方和保障机构;
4)标识当前和计划的运行现场;
5)列出其它有关文档。
1.3 文档概述
本节应概述本文档的用途和内容,描述与它的使用有关的保密性或私密性考虑。
2 引用文档
列出引用的所有文档,包括文档的编号、标题、修订版本和日期。
3 CSCI 级设计决策
要求:本章应根据需要分节给出CSCI 级设计决策,即CSCI 行为设计的决策(忽略其内部实现,从用户角度出发描述系统将怎样运转以满足需求)和其它影响组成该CSCI 的软件单元的选择与设计的决策。如果在需求中所有这些决策是明确的,或者这些决策要推迟到CSCI 的软件单元的设计时指出,则本章应如实陈述。
针对关键性需求(例如对安全性、保密性、私密性等需求)作出的设计决策,应在专门的章节中加以叙述。
CSCI 级设计决策的例子如下:
1)关于CSCI 将接收的输入和将产生的输出的设计决策,包括与其它系统、HWCI、CSCI 和用户的接口(本文档的4.3.x 节指出本说明要考虑的主题);
2)有关响应每个输入或条件的CSCI 行为的设计决策,包括CSCI 要执行的动作、响应时间和其它性能特性,模型化的物理系统的说明,选定的方程式/算法/规则,以及对不允许的输入或条件进行的处理;
3)有关数据库/数据文件如何呈现给用户的设计决策(本文档的4.3.x 节标识了本说明要考虑的主题)。如果这一信息的全部或部分在数据库设计说明(DBDD)中给出,则可直接引用;
4)为满足安全性、保密性、私密性需求所选择的方法;
5)为满足需求所做的其它CSCI 级设计决策,例如为提供所需的灵活性、可用性和可维护性所选择的方法。
【提示:本章主要是要求从整体(系统/子系统级别)架构设计的层面,分不同视角(功能划分、性能、可靠性、安全性、灵活性、可维护性等)确定相应的关键设计机制,从而最终确定系统/子系统级别的体系结构设计。】
4 CSCI 体系结构设计
要求:本章应分为以下几节来描述CSCI 体系结构设计。如果设计信息在多于一个节中出现,它只需被提供一次,而在其它节中引用之。
【提示:对各个CSCI(子系统)进行概要设计,拆分出各子系统包含的软件部件(模块)和各个软件部件包含的软件单元(子模块)。】
以下4.1节分别对各个软件部件进行静态结构说明,4.2节对各个软件部件和软件单元进行动态行为关系说明。
4.1 CSCI 部件
要求:本节应:
1)标识构成该CSCI 的所有软件单元。应赋予每个软件单元一个项目唯一标识符;
【注:软件单元是CSCI 设计中的一个元素;例如,CSCI 的一个主要分支、该主要分支的一个组成部分,一个类、对象、模块、函数、例程或数据库。软件单元能够出现在层次结构的不同层上,且又能够由其它软件单元组成。在设计中,软件单元与实现它们的代码和数据实体(例程,过程,数据库,数据文件等),或与包含这些实体的计算机文件之间,能够有、也能够没有一对一的对应关系。一个数据库可被处理为一个CSCI 也可被处理为一个软件单元。SDD 能够采用与所使用设计方法相一致的任何名字来称呼软件单元。】
2)给出软件单元的静态(如,由…组成)关系。根据所选择的软件设计方法学,能够给出多种关系(例如,采用面向对象的设计方法时,本节既可给出类和对象结构,也可给出CSCI 的模块和过程结构);
3)说明每个软件单元的用途,指明分配给它的CSCI 需求和CSCI 级设计决策(需求的分配也可在6.a 中提供);
4)标识每个软件单元的开发状态/类型(如新开发、按原样重用已有的设计或软件、再工程的已有的设计或软件、为重用而要开发的软件等,为构建版N 计划的软件)。针对现有的设计或软件,本说明应提供标识信息,例如名字、版本、文档引用、库等;
5)说明CSCI(若适用,针对每个软件单元)计划使用的计算机硬件资源(例如处理机能力,内存能力,输入/输出设备能力,辅存能力以及通信/网络设备能力)。本说明应覆盖CSCI 的资源使用需求中、影响该CSCI 的系统级资源分配中、以及在软件开发计划(SDP)的资源使用测量策划的中包含的全部计算机硬件资源。如果针对给定计算机硬件资源的所有使用数据都在同一处提供,例如在SDD 中提供,那么本节可直接引用。对每个计算机硬件资源,应包括如下信息:
a)得到满足的CSCI 需求或系统级资源分配;
b)使用数据基于的假设和条件(例如,典型用法、最坏情况用法、特定事件的假定);
c)影响使用的特殊考虑(例如,虚存、覆盖、多处理器的使用情况,操作系统、库软件的开销或其它实现开销影响);
d)所使用的测度的单位(例如,处理器能力的百分比、周期/秒、内存字节数、千字节/秒);
e)进行评估或测量的级别(例如,软件单元,CSCI 或者可执行程序);
f)标识实现每个软件单元的软件放置在哪个程序库中(若适用)。
【提示:本章主要是要求从整体架构设计的层面,分不同视角(功能划分、性能、可靠性、安全性、灵活性、可维护性等)确定相应的关键设计机制,从而最终确定系统的体系结构设计。】
4.2 执行方案
本节应说明软件单元间的执行方案。应采用图表和描述,说明软件单元间的动态关系,即CSCI 运行期间软件单元间的相互作用情况,(若适用)应包括执行控制流程、数据流、动态控制序列、状态转换图、时序图、单元间的优先关系、中断处理、时序/排序关系、例外处理、并发执行、动态分配与去除分配、对象/进程/任务的动态创立/删除、以及动态行为的其它方面。
4.3 接口设计
4.3.1 接口标识和接口图
要求:本节应说明赋予每个接口的项目唯一的标识符,(若适用)应经过名称、编号、版本及文档引用来标识接口实体(软件单元、系统、配置项、用户等)。该标识应说明哪些实体具有固定的接口特性(从而把接口需求分配给这些接口实体);说明哪些实体正在开发或修改(这些实体已有各自的接口需求)。(若适用)应经过接口图来描述这些接口。
【提示:对系统外部接口、内部接口(子系统与子系统、部件与部件、软件单元与软件单元)采用接口结构图、接口汇总表等形式对所有接口进行定义和标识。】
4.3.x (接口的项目唯一标识符)
要求:本节(从4.3.2 开始)应经过项目唯一标识符来标识接口,应简要地标识接口实体,根据需要可分节描述单方或双方接口实体的特性。如果一给定的接口实体未包含在本SDD 中(例如,一个外部系统),而描述接口实体需要提到其接口特性时,这些特性应作为假设予以陈述、或以“当[未涵盖的实体]这样做时,[所指定的实体]将……”的形式描述。本节可引用其它文档(例如数据字典、协议标准、用户接口标准)代替在此所描述的信息。本设计说明应包括以下内容(若适用),以任何适合于所提供的信息的顺序提供,并应从接口实体角度说明这些特性之间的区别(例如关于数据元素的大小、频率或其它特性的不同期望):
1)接口实体分配给接口的优先级;
2)要实现的接口类型(例如实时数据传输、数据的存储和检索等);
3)接口实体将提供、存储、发送、访问、接收的各个数据元素的特性,例如:
a)名称/标识符:
l 项目唯一的标识符;
l 非技术(自然语言)名称;
l 数据元素名称;
l 技术名称(如在代码或数据库中的变量名或字段名);
l 缩略名或同义名。
b) 数据类型(字母数字、整数等);
c)大小与格式(如:字符串的长度和标点符号);
d)计量单位(如:米、元、纳秒);
e)可能值的范围或枚举(如:0-99);
f)准确性(正确程度)和精度(有效数位数);
g)优先级、时序、频率、容量、序列以及其它约束条件(例如数据元素是否能够被更新、业务规则是否适用);
h)保密性与私密性约束;
i)来源(建立/发送的实体)和接受者(使用/接收的实体)。
4)接口实体将提供、存储、发送、访问、接收的数据元素集合体(记录、消息、文件、数组、显示、报表等)的特性,例如:
a) 名称/标识符:
l 项目唯一的标识符;
l 非技术(自然语言)名称;
l 技术名称(如在代码或数据库中的记录名或数据结构名);
l 缩略名或同义名。
b)数据元素集合体中的数据元素及其结构(编号、顺序和分组情况);
c)介质(例如磁盘)以及介质上数据元素/数据集合体的结构;
d)显示和其它输出的视听特性(例如颜色、布局、字体、图标和其它显示元素、峰鸣声和亮度);
e)数据集合体之间的关系,如排序/存取特性;
f)优先级、时序、频率、容量、序列及其它约束,例如数据集合体是否可被更新、业务规则是否适用;
g)保密性与私密性约束;
h)来源(建立/发送的实体)和接受者(使用/接收的实体)。
5)接口实体用于接口的通信方法的特性。如:
a)项目唯一的标识符;
b)通信链接/带宽/频率/介质及其特性;
c)消息格式;
d)流控制(如:序列编号和缓冲区分配);
e)数据传输率、周期或非周期、传输间隔;
f)路由、寻址及命名约定;
g)传输服务,包括:优先级和等级;
h)安全性/保密性/私密性考虑,如:加密、用户鉴别、隔离和审核。
6)接口实体用于接口的协议的特性,如:
a)项目唯一的标识符;
b)协议的优先级别/层次;
c)打包,包括分段与重组、路由和寻址;
d)合法性检查、错误控制和恢复过程;
e)同步,包括连接的建立、保持和终止;
f)状态、标识和其它报告特性。
7)其它特性,例如接口实体的物理兼容性(尺寸、公差、负荷、电压和接插件的兼容性等)。
【提示:对每个接口从源对象、目标对象、数据结构和属性、接口类型、优先级、其它质量特性等方面进行详细说明。】
5 CSCI 详细设计
5.1 XX软件单元
5.1.1 流程设计
在收到ERQ消息时系统会根据ATM地址判断是否为本局地址,如果不是则启动交换入局连接建立流程,向节点发送交换连接建立请求,从而要求交换出局协议实体向ANI对应局向发送ERQ消息,并在收到ECF后向交换入局方发送连接建立证实消息。交换入局在收到该消息后会将承载入局连接和承载出局连接的两块APB板连接起来,并向连接发起端发送ECF消息,从而完成连接的建立。
Ø 正常流程
(1) A2SP入局实体从邻接局接收到ERQ消息
(2) A2SP入局实体向A2SP节点功能发送入局连接指示。
(3) A2SP节点功能请求数据库根据ATM地址查询目标ANI。
(4) DBS查询ATM地址与ANI的静态关系配置表,向A2SP节点功能返回ANI。
(5) A2SP判别出ANI不为0(即不是本网元终结)时,认为是AAL2中继交换场景,否则即AAL2终结点场景。设置协议实体ActOrd为LINKMIDSTART。A2SP请求DBS检查CEID的有效性。
(6) DBS调用事业部注册的回调函数,回调函数中对入局段进行接纳控制。
(7) DBS返回CEID检查结果,接口中包含APB1的媒体面地址信息。
(8) 收到aal2UPInfoCfmEvent消息,如果协议实体为LINKMIDSTART,调用aal2EntityMain(aal2ETEstablishRsp, (BYTE *)&SAID)发送ECF。(注:不必发送连接指示及启动吊死定时器。)
(9) 通知协议实体发送ECF,协议实体状态为aal2ETCNT。
Ø 异常流程
² 如果调用函数要求建立交换出局连接失败,则交换入局部分将收到交换出局方发送的释放指示或释放证实,之后的释放流程将在连接释放(交换入局部分)讨论。
² 等待确认定时器超时,调用aal2NDReceiveSwitchReleaseCfmPrc(新增)模拟交换出局发起的连接释放,其中,SERID为本协议实体的OSAID,由于RSAID是0,aal2NDReceiveSwitchReleaseCfmPrc函数将直接给对端发RLC,发给对端的RLC消息原因为AAL2RECOVERYONTIMEREXPIRY_V。
² 收到aal2EstablishCfmEvent消息后发现相应协议实体状态(State)不为aal2ETINP或者协议实体RSAID不为0,向发送方发送aal2ReleaseReqEvent消息,同时调用aal2NdReceiveSwitchReleaseCfmPrc发起连接释放。
² 收到aal2UPInfoCfmEvent发送ECF失败,需要向交换出局发送释放请求同时释放本板资源。
² DBS返回CEID检查结果,结果失败,给对端回RLC,使用当前流程。
² DBS查询ATM地址结果失败,给对端回RLC,使用当前流程。
² 入局协议实体SAId分配失败,使用当前流程。
注:在aal2ETINP状态收到REL消息或释放指示的情况在释放流程(交换入局部分)讨论
5.1.2 流程图
AAL2中继交换功能处理流程如图。为了描述全面,图中入局和出局AAL2资源分配不在同一MP上。当在同一MP上时过程(11)和(21)不存在。
流程说明:
(1) A2SP入局实体从邻接局接收到ERQ消息。
(2) A2SP入局实体向A2SP节点功能发送入局连接指示。
(3) A2SP节点功能请求数据库根据ATM地址查询目标ANI。
(4) DBS查询ATM地址与ANI的静态关系配置表,向A2SP节点功能返回ANI。
(5) A2SP判别出ANI不为0(即不是本网元终结)时,认为是AAL2中继交换场景,否则即AAL2终结点场景。A2SP请求DBS检查CEID的有效性。
(6) DBS调用事业部注册的回调函数,回调函数中对入局段进行接纳控制。
(7) DBS返回CEID检查结果,接口中包含APB1的媒体面地址信息。
(8) 节点功能向自身进程发送aal2SwitchEstablishReqEvent,要求建立入局连接,启动定时器,等待连接确认。
(9) A2SP请求DBS分配出局CEID。
(10) DBS调用事业部注册的回调函数,回调函数中对出局段进行接纳控制。
(11) 当出局资源在另一块MP上分配时,DBS将CEID分配请求转发到另一块MP上。
(12) DBS调用事业部注册的回调函数,回调函数中对出局段进行接纳控制。
(13) DBS向A2SP返回CEID,接口中包含APB1和APB2的媒体面地址信息。
(14) A2SP节点功能请求DBS建立出局段AAL2接续关系。
(15) DBS向APB2请求建立AAL2接续关系。
(16) APB2向A2SP节点功能确认AAL2接续建立。
(17) A2SP节点功能请求A2SP出局实体建立连接。
(18) A2SP出局实体构造ERQ消息,向出局侧网元发送。
(19) A2SP出局实体收到ECF消息。
(20) A2SP出局实体向A2SP节点功能确认连接建立。
(21) MP2上的A2SP节点功能向MP1上的A2SP节点功能确认连接已经建立。
(22) MP1上的A2SP节点功能请求DBS建立入局段AAL2接续关系。
(23) DBS向APB1请求建立AAL2接续关系。
(24) APB1向A2SP节点功能确认AAL2接续建立。
(25) A2SP节点功能向A2SP入局实体响应连接建立。
(26) A2SP入局实体构造ECF消息,向入局侧网元发送。
5.1.3 SDL图和状态机
由于交换入局协议实体没有了上层用户而且会作为上层用户与交换出局实体进行消息交互,因此状态机略有变化。其状态机如图
其中SWITCH_RELEASE.IND表示收到交换出局的连接释放指示,SWITCH_RELEASE.CFM表示收到交换出局的连接释放证实。
5.1.4 数据结构
5.1.4.1 AalSwitchInfo_T
数据结构如表7-1所示
表7-1
名称
AalSwitchInfo_T
缩写
无
用途
用于存放在中继交换应用场景下,ALCAP在向数据库申请CID时在数据库与ALCAP之间透传的数据
结构
Typedef struct
{
DWORD dwSAID; /*用于存放相关交换入局实体对应的SAID*/
BYTE abyReserve[28]; /*保留*/
} AalSwitchInfo_T;
序号
元素填写说明
1
dwSAID:用于存放相关交换入局实体对应的SAID
2
abyReserve:保留,以备后续扩展
5.1.4.2 AppRelative_T
数据结构如表7-2所示
表7-2
名称
AppRelative_T
缩写
无
用途
用于存放不同的应用场景追踪,ALCAP在向数据库申请CID时在数据库与ALCAP之间透传的数据
结构
typedef struct
{
DWORD dwApplicationType; /*0:下面Union内容无效 1:交换功能相关*/
union
{
T_AalSwtichInfo tAalSwitchInfo;
}unAppRelativeData;
} AppRelative_T;
序号
元素填写说明
1
dwApplicationType:应用类型。0表示下面Union内容无效 1表示数据为交换功能相关
2
unAppRelativeData:用于存放不同应用不同类型的数据。
5.1.5 常量
表7-4
序号
名称
类型
取值
说明
1
LINKMIDSTART
BYTE
(BYTE)3
交换入局协议实体
2
LINKMIDEND
BYTE
(BYTE)4
交换出局协议实体
3
APPLICATION_TYPE_SWITCH
BYTE
(BYTE)1
用于为AppRelative_T结构的dwApplicationType字段赋值,表示该应用为ALCAP中继交换
4
MAX_SEND_HEARTBEAT_COUNT
BYTE
(BYTE)2
用于交换入局与交换出局之间连接保活消息发送次数的判断
5
T_WAITESTCFM
BYTE
(BYTE)18
等待交换出局连接证实消息定时器标识
6
T_ WAITESTCFML
WORD32
(WORD32)(T_ERQL + T_RDMPL + 1000)
T_WAITESTCFM定时器长度。应大于出局T_ERQL+ T_RDMPL
7
T_HEARTBEAT
BYTE
(BYTE)19
心跳定时器
8
T_HEARTBEAT L
WORD32
(WORD32)( T_ T_WAITESTCFML*2)
心跳定时器时长
要求:本节应经过项目唯一的标识符来标识软件单元,并对该单元进行说明。(若适用)该说明应包括下列信息。但作为一种变通,本节也能够指定一组软件单元,然后再分小节对它们分别进行标识和说明。包含其它软件单元的软件单元可引用那些软件单元的说明,而无需在此重复。
1)(若有)单元设计决策,如要使用的算法(之前尚未选定);
2)该软件单元设计中的任何约束、限定或非常规特征;
3)如果使用的编程语言不同于该CSCI 所指定的语言,则应指出并说明使用它的理由;
4)如果该软件单元包含过程性(procedural )命令或由过程性命令组成(例如数据库管理系统(DBMS)中用于定义表单和报表的菜单选择,用于数据库访问和操纵的在线DBMS 查询,用于代码自动生成的图形用户接口(GUI)构造器的输入,操作系统的命令或Shell 脚本),应列出这些过程性命令,并引用解释它们的用户手册或其它文档;
5)如果该软件单元包含、接收或输出数据,(若适用)应对它的输入、输出及其它数据元素和数据元素集合体进行说明。本文档的4.3.x 节提供了(若适用)应包括的主题的列表。软件单元的局部数据应与软件单元的输入或输出数据分开来描述。如果该软件单元是一个数据库,应引用相应的数据库设计说明(DBDD);接口特性能够在这里提供、也能够引用第4 章或相应的接口设计说明(IDD);
6)如果该软件单元包含逻辑,给出该软件单元所用到的逻辑,(若适用)应包括:
a)该软件单元执行启动时,其内部起作用的条件;
b)将控制传递给其它软件单元的条件;
c)对每个输入的响应以及响应时间,包括数据转换、重命名以及数据传输操作;
d)在软件单元运行期间的操作顺序和动态控制序列,包括:
l 顺序控制的方法;
l 该方法的逻辑和输入条件,例如时序变异、优先级分配等;
l 进出内存的数据传输;
l 对离散输入信号的感知,以及该软件单元内中断操作之间的时序关系。
e)异常和错误处理。
【提示:本章主要是要求对每个软件单元(软件模块/子模块)的内容实现细节(局部数据结构、输入输出、处理逻辑、引用的脚本命令等)进行详细的设计,以指导该软件单元的编程实现。】
6 需求可追踪性
本章应包含:
1)从本SDD 所标识的每个软件单元,到分配给它的CSCI 需求的可追踪性(这一可追踪性也能够在4.1 节中提供);
2)从每个CSCI 需求,到被分配这些需求的软件单元的可追踪性。
7 注解
本章应包含有助于理解本文档的一般信息(例如,背景信息、词汇表、原理等)。本章应包括一个按字母顺序编排的列表,列出所有的字头词、缩略语以及它们在本文档中使用时的含义,并列出理解本文档所需的术语和定义。
附录A
给出便于文档维护而单独出版的信息(如图表、分类数据)。在文档主体部分应引用附录。附录可单独装订成册。附录应按字母的顺序(A,B 等)编排。
展开阅读全文