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