大型软件系统的开发介绍v.ppt
《大型软件系统的开发介绍v.ppt》由会员分享,可在线阅读,更多相关《大型软件系统的开发介绍v.ppt(60页珍藏版)》请在三一办公上搜索。
1、大型软件系统的开发介绍(An Introduction to the Development of Large Software Systems,ver.02),于忠德 2003年3月中国成都Zhongde YuMarch 2003Chengdu,China,于忠德 2002年11月 于中国,第2页,大型软件系统的开发介绍,1.软件工程方面的考虑2.软件系统开发实例介绍,于忠德 2002年11月 于中国,第3页,1.软件工程方面的考虑,1.1 软件开发的生命周期Software Life Cycle 1.2 软件质量保证Software Quality Assurance,SQA1.3 软件开
2、发的方法Software Dev Methodology,于忠德 2002年11月 于中国,第4页,1.1 软件开发的生命周期,市场调查(Marketing Investigation)需求分析(Requirement Specification)概要设计(High-Level Design)接口设计(Interface Design)详细设计(Low-Level Design)编码(Coding/Implementation)单元测试(Unit Testing)集成测试(Integration Testing)系统测试(System Testing)售后服务(After-Sale Servi
3、ce)系统升级(System Upgrade)技术支持(Technical Support),于忠德 2002年11月 于中国,第5页,1.1 软件开发的生命周期(contd),市场调查,需求分析,概要设计,接口设计,详细设计,编码,单元测试,集成测试,系统测试,系统升级,技术支持,售后服务,After Sale,Design,Testing,Coding,Requirement,SQA,于忠德 2002年11月 于中国,第6页,市场调查,市场调查(Marketing Investigation)由市场部(Marketing Dept.)来完成,产品经理PM(Product Manager)负
4、责了解用户需求,确立研发方向形成 MRD(Marketing Requirement Document)举例:在路由器上实现IP电话功能企业局域网,租用电信专线,连接位于不同城市的总部与分部提供附加业务,在局域网内打电话,零话费!向局域网外打电话,只花本市话费!,于忠德 2002年11月 于中国,第7页,需求分析,需求分析(Requirement Specification)引言目的,范围 系统概述 系统体系结构,功能简单描述,数据流描述 运行需求 对硬件环境的需求,对软件环境的要求 需求分解 功能体划分,功能体1,功能体2,功能体n功能体描述,需求条目,于忠德 2002年11月 于中国,第8
5、页,需求分析(contd),举例:IP电话系统的语音处理模块,下图描述了语音处理模块与其它主要模块之间的关系:,于忠德 2002年11月 于中国,第9页,需求分析(contd),需求条目:RTP/RTCP基本需求条目 RTP/RTCP包的字节顺序和对齐方式 RTP数据包格式 RTCP包结构与发送时间间隔RTP使用UDP偶数端口号,RTCP使用下一个连续的奇数端口号RTP的端口号从5000以上开始选择RTP包没有长度域,RTP包依靠UDP提供长度指示RTP包的处理RTCP包的处理,于忠德 2002年11月 于中国,第10页,需求分析(contd),于忠德 2002年11月 于中国,第11页,概要
6、设计,概要设计(High-Level Design)VERY IMPORTANT but VERY HARD!引言 目的,范围 子系统概述 功能区域分割 功能区域1,功能区域n 功能区域描述,数据结构描述,需求条目 逻辑接口功能区域X到功能区域Y的接口 接口1,接口n,于忠德 2002年11月 于中国,第12页,概要设计(contd),举例:VoIP功能模块的划分 接口卡驱动(POTS卡驱动)PDRV语音模块VOICE呼叫控制CC呼叫控制(FXS)CCFXS呼叫控制(FXO)CCFXO呼叫控制(H323)CCH323网络接口NETH.245 Control SignallingH245H.22
7、5.0 Call Signalling(Q.931)Q931H.225.0 RASRAS跟踪告警信息处理INFOASN.1编解码ASN1配置数据CFG动态存储管理DMM其他:虚拟操作系统,命令行接口VOS,OAM/CLI,于忠德 2002年11月 于中国,第13页,概要设计(contd),语音模块的功能区域划分:模块控制功能区域 RTP会话管理功能区RTP包转发功能区RTCP包收发功能区和统计信息表Note1:VoIP 实时操作系统任务(Tasks)或进程(Processes)控制任务(VOIPC)语音任务(VOIPV)网络任务(VOIPN),于忠德 2002年11月 于中国,第14页,概要设
8、计(contd),于忠德 2002年11月 于中国,第15页,概要设计(contd),功能区域1:模块控制功能区域功能区域描述语音模块类 class VOIP_CVoice的定义语音任务主进程函数 task_VOIPVMain()语音模块的初始化消息的分发语音模块的配置、统计查询、跟踪监视、出错信息报告,于忠德 2002年11月 于中国,第16页,概要设计(contd),需求条目 语音任务与消息队列的创建语音模块对象(object)的建立语音任务主进程函数完成如下的功能语音模块的初始化 进入一个永久循环,进行消息分拣 接收消息的处理概述 消息分拣的原则 RTP会话管理 RTP包的转发 RTCP
9、包的接收与发送 配置、跟踪监视、出错报告 VOS时钟超时,于忠德 2002年11月 于中国,第17页,接口设计,接口设计(Interface Design)引言 目的,范围 系统概述 系统体系结构,子系统说明,子系统间接口机制 公共定义描述 消息结构,消息头,通用规则,公共参数定义消息定义消息名,方向,消息鉴别号,消息体,于忠德 2002年11月 于中国,第18页,接口设计(contd),公共单元编码单元名,单元描述,单元值共享数据区数据名,数据描述,数据值域,使用机制,保护机制函数接口函数名1,函数名n 功能描述,输入量,输出量信号量信号量1,信号量n信号量描述,使用机制,保护机制,于忠德
10、2002年11月 于中国,第19页,接口设计(contd),举例:VoIP子系统间接口机制VoIP子系统与其它子系统:与TCPUDP采用socket接口与VOS采用函数接口VoIP子系统内部各模块之间与ASN1,CFG,DMM采用函数接口其它子模块之间采用消息接口(通过VOS消息传递机制,以及VoIP内部消息分发机制),于忠德 2002年11月 于中国,第20页,详细设计,详细设计(Low-Level Design)引言目的,范围功能区域分割任务划分任务设置,任务间调度策略任务1名称,任务n名称功能描述,优先级,输入项,输出项,处理过程描述,于忠德 2002年11月 于中国,第21页,详细设计
11、(contd),功能区域设计功能区域1,功能区域n功能区域描述模块1名称,模块n名称模块描述,函数构成函数1名称,函数n名称函数原型,功能描述,输入参数,输出参数调用者,全局数据,算法描述,伪码描述数据字典内存的需求,结构消息,表格其他数据结构,于忠德 2002年11月 于中国,第22页,详细设计(contd),举例:VoIP语音模块给出数据结构(data structures)给出具体算法(algorithms)写出函数原型(prototypes)写出伪码描述(pseudo-code)。系统详尽的详细设计能够使编码工作易于进行,软件蓝领可以据此进行“代码填写”,于忠德 2002年11月 于中
12、国,第23页,编码,编码(Coding/Implementation)建立开发环境:操作系统(Operating System)编程语言(Programming Language)编译器连接器调试器(Compiler/Linker/Debugger)目标机工控机(Target)掌握编程规范编写代码,于忠德 2002年11月 于中国,第24页,编码(contd),举例:VoIP软件开发实时嵌入式软件(Real-Time,Embedded s/w)跨平台开发(Cross-Platform Dev)Host:Windows 98/NT/2000Target:Intel Pentium x86 pro
13、cessorConnection:Ethernet 实时操作系统(RTOS)VxWorks集成开发环境(IDE)Tornado编程语言ANSI C&C+,于忠德 2002年11月 于中国,第25页,编码(contd),Cross-Platform Development,Host(Tornado Win NT),Target(x86),LAN(Ethernet),Download&Debug,于忠德 2002年11月 于中国,第26页,编码(contd),软件编程规范 1(for VoIP only)目的:为增加软件编码的一致性,减少程序员的理解误差适用范围:适用于标准CC+语言模块命名:RT
14、P(rtp),RTCP(rtcp),RAS(ras),etc.文件命名方法和内部格式 一律为小写,格式为“子系统名_模块名.扩展名 e.g.voip_voice_rtp_session.cpp头文件的格式,内容,于忠德 2002年11月 于中国,第27页,编码(contd),前缀缩写:Hungarian Notation,于忠德 2002年11月 于中国,第28页,编码(contd),常用类型的统一定义,typedef int INT32;typedef unsigned int UINT32;typedef short INT16;typedef unsigned short UINT16;
15、typedef char INT8;typedef unsigned char UINT8;typedef signed long LONG;typedef unsigned long DWORD;typedef unsigned short WORD;typedef unsigned char BYTE;typedef unsigned int BOOL;,于忠德 2002年11月 于中国,第29页,编码(contd),标识符 本模块特有的命名风格自始至终保持一致,不要来回变化普通常量、普通宏:使用全大写字母加下划线的方式,结构为:模块名称+下划线+变量内容名称,例如:#define VOI
16、P_VOICE_PAYLOAD_TYPE_G711 1 普通局部变量:建议采用UNIX的全小写加下划线的风格或大小写混排的匈牙利方式,不要使用大小写和下划线混排的方式,例如:ip_packet_recv_tid、arp_frame_count全局变量:前缀为小写的“g_”,然后是模块名称加下划线,然后是由两个以上单词形成的字符串,每个单词首字母大写,其他字母小写,例如:g_Icmp_TraceRouteQueue、g_Ospf_InterfList,于忠德 2002年11月 于中国,第30页,编码(contd),指针变量:命名前缀为小写的“p_”,然后是由两个以上单词形成的字符串,每个单词首字
17、母大写,其他字母小写,例如:pIppkt、pAccessList如果是全局指针变量,则添加小写的“g_”,例如:g_pIppkt函数和过程名:前缀为全小写的模块名称,中间为下划线,然后为由两个以上单词形成的字符串,每个单词首字母大写,其他字母小写。例如:vos_MsgCreate()、icmp_PktRecv()调试用的编译开关:首尾均为下划线的全大写字符串,具体格式是:下划线+子系统名称+下划线+模块名称+下划线+调试内容名称+DEBUG+下划线,例如:_IPF_IP_PACKET_DEBUG_SUPP_TCPUDP_UDP_DEBUG_,于忠德 2002年11月 于中国,第31页,编码(c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大型软件 系统 开发 介绍

链接地址:https://www.31ppt.com/p-6266287.html