(计算机软件与理论专业论文)网络电话终端软件的设计与实现.pdf_第1页
(计算机软件与理论专业论文)网络电话终端软件的设计与实现.pdf_第2页
(计算机软件与理论专业论文)网络电话终端软件的设计与实现.pdf_第3页
(计算机软件与理论专业论文)网络电话终端软件的设计与实现.pdf_第4页
(计算机软件与理论专业论文)网络电话终端软件的设计与实现.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(计算机软件与理论专业论文)网络电话终端软件的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕士论文:网络电话终端软件的设计与实现 摘要 本文描述了嵌入式应用软件项目网络电话终端软件的开发设计过程。该项目的 目的是设计一个集传统的电话功能、网络功能、p d a 功能于一身的新型的电话终端。 在该项目中,采用了科银公司的d e l t a c o r e 嵌入式操作系统内核,使网络电话 终端软件系统具有多任务、实时的特点,能较好地处理各种并发的事件。采用了 d e l t a g u i 嵌入式图形用户接口组件,向用户提供了丰富的图形界面。并实现了 t c p i p 协议栈、浏览器。为用户提供了较好的网络功能。 在项目开发的过程中,采用了面向对象的编程技术,并通过u m l 建模技术对 项目进行控制。i l _ i m l 是一种定义良好、易于表达、功能强大且普遍适用的建模语言。 它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对 象的分析与设计,还支持从需求分析开始的软件开发的全过程。u m l 代表了面向对 象方法的软件开发技术的发展方向,同时也提供软件工程化的思想和方法夕本文按 照u m l 建模的过程,描述了软件的开发过程。 关键词:嵌入奴嵌入式应用软件;网络电话,1u m 、 硕士论文:网络电话终端软件的设计与实现 a b s t r a c t t h i sa r t i c l ed e t a i l st h e d e s i g n i n g a n d d e v e l o p i n gp r o c e s s o fa n e m b e d d i n g a p p l i c a t i o np r o j e c t n e t w o r kt e l e p h o n es o f t w a r e t h ep u r p o s eo f t h i sp r o j e c ti st od e v e l o p an e w t y p eo f t e l e p h o n ew i t hi n t e g r a t e df u n c t i o no f c o n v e n t i o n a lt e l e p h o n e ,n e t w o r ka n d p d a ,e t c i nt h i sp r o j e c t ,w ea d o p t e dt h ee m b e d d i n go p e r a t i o ns y s t e mc o r e d e l t a c o r eo f c o r e t e k i n c w h i c hm a d et h es o f t w a r eh a v et h ec h a r a c t e r i s t i c so f m u l t i p l et a s ka n d r e a lt i m ea n d g o o d a t d e a l i n g w i t hv a r i o u sc o n c u r r e n t l y e v e n t s b yu t i l i z i n g t h e e m b e d d i n gg r a p h i c u s e ri n t e r f a c e d e v e l o p e db y d e l t ag u i ,i tc a r lp r o v i d et h eu s e r sp l e n t y o fa c t i v eg r a p h i ci n t e r f a c e s a n dm a k e st h et c p pp r o t o c o ls t a c ka n dt h ee m b e d d i n g b r o w s e ri n t or e a l i t y t ot h i se n d ,aw e l l p e r f o r m e dn e t w o r kf u n c t i o ni sp r o v i d e dt ot h e u s e r s w e a p p l i e dt h eo b j e c t - o r i e n t e dp r o g r a m m i n gt e c h n i q u e si nt h ed e v e l o p m e n tp r o c e s s o f t h e i sp r o j e c ta n du m l t e c h n o l o g yi sa l s ou s e d t oc o n t r o lt h i sp r o j e c tu m li sak i n do f w e l ld e f i n e d ,e a s yo f e x p r e s s i o n p o w e r f u la n dw i d e l yu s e dm o d u l el a n g u a g e i ta b s o r b s t h en e wi d e a ,n e wm e t h o d ,a n dn e wt e c h n o l o g yo fs o f t a r ee n g i n e e r i n gf i e l d i t s f u n c t i o n a ld o m a i nc o v e r e dn o to n l yt h eo b j e c t o r i e n t e da n a l y s i sa n dd e v e l o p m e n t ,b u t a l s ot h ew h o l ep r o c e s so fs o f t w a r ed e v e l o p m e n tb e g i n n i n gf r o md e m a n da n a l y s i s u m l r e p r e s e n t st h ed e v e l o p i n gd i r e c t i o no f t h eo b j e c t o r i e n t e ds o f t w a r ed e v e l o p m e n t i ta l s o p r o v i d e st h o u g h t sa n dm e t h o d so fs o f t w a r ee n g i n e e r i z a t i o n ,i nt h i sa r t i c l e ,w ew i l l d e s c r i b e st h es o f t w a r ed e v e l o p i n gp r o c e s sa c c o r d i n gt ot h eu m l m o d u l em e t h o d k e y w o r d s :e m b e d d i n g ,e m b e d d i n ga p p l i c a t i o ns o f t w a r e ,n e t w o r kt e l e p h o n e ,u m l i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 签名: 皇i 上i 垒 日期:。3 年j 月f 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:皇! l 塑 导师签名: 日期:一。j 年;月岁日 硕: 论文:网络电话终端软件的设计与实现 1 1 引言 第1 章概述 按照培养计划的要求,需将硕士论文的设计与实际的工程实践相 结合。为此,笔者参与了爱达数码科技有限公司的熊猫网络电话项目 的软件设计工作。 该项目是一个较为综合性的嵌入式的应用软件工程,它涉及到计 算机科学的各个方面,从嵌入式操作系统内核、g u i 图形应用的开发、 t c p i p 协议栈、浏览器、以及底层各种接口的驱动等各方面的知识。 并在开发中采用了u m l 描述、跟踪项目开发过程。 本文是在参与该项目实践的基础上,总结项目开发的过程,特别 是在按照u m l 建模过程,对项目的开发过程进行了描述,以达到对涉 及的嵌入式应用软件设计技术、软件项目的设计与实现过程以及新的 面向对象开发技术的理解。 1 2 项目概述 自从进入九十年代以来,世界步入了信息时代。特别是国际互联 网络的出现以及迅速的发展,更使信息量呈现爆炸性增长。其在社会 经济生活中的地位越来越突出,信息产业已经成为最有前途的新兴产 业。在这种形势下,对数据信息的需求使人们需要更方便、快捷、廉 价的通信工具。 电话是当今最普遍的通信工具,但由于传统的电话只能传输模拟 的语音信号,接听和拨出电话,功能较为单一,已不能满足人们的需 要。网络电话终端就是为满足这种需求而设计的。所谓网络电话,是 针对传统的电话而言,为满足人们对互联网接入功能的需求,同时又 具有普通电话功能的网络终端。它使用宽带接入或有线电话上网,除 了具有普通电话的功能外,还提供高速互动的互联网接入功能。通过 网络技术与电话技术相结合的方式实现双向通讯,上网方便快捷,操 作简单,可方便浏览w a p 网页、收发电子邮件。网络电话同时具有高 档电话机及p d a 功能,可获取各种个性化信息。以满足人们对信息的 及时获取以及及时与世界交流的需要。 熊猫网络电话终端的硬件系统配置如下:c p u 采用了d r a g o n b a l l 6 8 v z 3 2 8 ,配置有4 m bf l a s h ,8 m bs d r a m ,便携式键盘,3 2 0 x 2 4 0 硕士论文:网络电话终端软件的设计与实现 l c d ,1 0 b a s e t 接口,非标准串行接口,支持实时钟,支持声音和音 乐,外挂标准电话,v 3 4m o d e m 等。 熊猫网络电话终端软件系统采用了嵌入式操作系统内核 d e l t a c o r e ,以及嵌入式的图形用户界面组件d e l t a g u i ,并自行开发了 嵌入式的t c p i p 的协议栈,嵌入式的浏览器。 1 3 论文的创新点 本文在深入理解了嵌入式操作系统原理、图形用户界面的消息映 射机制的基础上,总结出一种嵌入式应用软件的结构。认真学习了u m l 语义,根据自己的体会总结出在嵌入式应用软件开发中通过u m l 对工 程项目进行描述和建摸的方法,该方法严格遵守软件开发的原则,并 将其应用到项目的实施过程中。尝试性地完成了从需求分析到代码实 现的实际建模。 1 4 论文的组织结构 本文主要分为7 个部分,其中第一部分概述了项目的来源、实际 意义、采用的各项技术,第二部分简要介绍了在项目中用到的各项技 术,第三部分描述了系统的总体设计,第四部分描述了系统的实现, 第五部分为系统的测试用例,第六部分描述了系统的使用,第七部分 为结束语,总结自己在项目中做的工作以及体会和收获。 硕士论文:网络电话终端软件的设计与实现 第2 章相关技术 熊猫网络电话终端软件虽然只是一个嵌入式的应用软件,但它涉及 到了计算机技术的许多方面。首先,由于嵌入式应用软件自身具有的 与操作系统整和性较强的的特征,使得嵌入式实时应用软件成为应用 程序和操作系统两种软件的一体化程序,对于通用计算机系统,例如 p c 机、工作站,操作系统等系统软件和应用软件之间界限分明。换句 话说,统一配置的操作系统环境下,应用程序是独立的运行软件,可 以分别装入执行。但是,在嵌入式实时系统中,这一界限并不明显。 这是因为,应用系统配置差别较大,所需操作系统繁简不一,1 0 操作 也不标准,这部分驱动软件常常由应用程序提供。这就要求采用不同 配置的操作系统和应用程序,链接装配成统一的运行软件系统。在这 里,操作系统成为应用软件的一部分而存在,也就是说,在系统总设 计目标指导下将它们综合加以考虑、设计与实现。所以,我将首先对 嵌入式操作系统进行介绍。 由于熊猫网络电话终端软件向用户提供了丰富的图形界面,它使用 了嵌入式的g u i 图形用户接口组件。在代码的实现中大多时候都在与 g u i 组件中的消息机制打交道,因此,本文将对g u i 组件的机制进行 介绍。 在开发的过程中,采用了面向对象的编程技术,并通过u m l 模型 对项目进行控制,它对于软件开发起这至关重要的作用。因此,u m l 建模技术的介绍将成为讨论的重点。 下面我就在软件开发过程将用到的嵌入式操作系统的结构原理、实 时多任务软件的设计方法、嵌入式实时应用软件的开发以及在软件开 发过程中将用到的u m l 作一简单的介绍。 2 1 嵌入式应用软件的特点 大多数实时系统都是嵌入式应用( e m b e d d e da p p l i c a t i o n s ) , 在这 种系统中计算机是一种智能部件内装于专用设备系统的高速计算机。 内藏这种计算机的系统威力大、反应速度快、自动化程度高。它的主 要功能是在一个大型的工程系统中作为信息处理部件, 在这种情况 下,用户不需知道装置内计算机的存在,一般不能被用户编程, 它 有一些专用的1 1 0 设备,对用户的接口是应用专用的。因此, 嵌入 式应用软件的开发一般是通过交叉开发来实现的,即开发环境和实时 硕士论文:网络电话终端软件的设计与实现 运行环境是不同的。嵌入式应用软件具有以下的特点: 21 1 实时- 性 实时软件对外部事件作出反应的时间必须要快,在某些情况下还需 要是确定的、可重复实现的,不管当时系统内部状态如何,都是可预 测的( p r e d i c t a b l e ) 。 21 2 有处理异步并发事件的能力 实际环境中,嵌入式实时系统处理的外部事件往往不是单一的, 这些事件往往同时出现,而且发生的时刻也是随机的,即异步的。实 时软件应有能力对这类外部事件组有效地进行处理。 2 13 快速启动、并有出错处理和自动复位功能 这一要求对机动性强、环境复杂的智能系统显得特别重要,快速 机动的环境,不允许控制软件i 临时从盘上装入,因此嵌入式实时软件 需事先固化到只读存贮器,开机自行启动,并在运行出错死机时能自 动恢复先前运行状态。因此嵌入式实时软件应采用特殊的容错、出错 处理措施。 2 1 4 嵌入式实时软件是应用程序和操作系统两种软件的一体化程序 对于通用计算机系统,如p c 机、工作站,操作系统等系统软件和 应用软件之间界限分明。换句话说,统一配置的操作系统环境下,应 用程序是独立的运行软件,可以分别装入执行。但是,在嵌入式实时 系统中,这一界限并不明显。这是因为,应用系统配置差别较大,所 需操作系统繁简不一,1 0 操作也不标准,这部分驱动软件常常由应用 程序提供。这就要求采用不同配置的操作系统和应用程序,链接装配 成统一的运行软件系统。也就是说,在系统总设计目标指导下将它们 综合加以考虑、设计与实现。 2 1 5 交叉开发平台 由于嵌入式实时应用系统的软件开发受到时间、空间开销的限制, 常常需要在专门的开发平台上进行软件的交叉开发,其交叉开发环境 如图2 1 所示。 硕士论文:网络电话终端软件的设计与实现 图2 一l 交叉开发环境 开发平台称为宿主机,应用系统称作目标机。宿主机可以是与目 标机相同或不相同的机型。主机系统与目标机系统之间既可以通过串 口相连,也可以通过以太网等局域网络接口相连。这种不同机型的开 发平台又称作交叉式开发系统。目标机平台的要求通常是不兼容的, 经常和主机的要求冲突,而且,目标机硬件有时是为专用的项目定制 的,因此,交叉开发环境的工具必须提供与目标机相关的初始化代码。 主机提供了支持程序开发的工具环境,包括编辑器、编译器和连接器 等。主机系统一般是传统的u n i x 工作站或是运行w i n d o w 或l i n u x 操作 系统的p c 机,而目标机只有少量的计算机资源。在交叉开发环境中, 主机操作系统、目标机的实时操作系统、应用编程语言和交叉调试工 具都是以库的形式实现相互的支持。显然,在这种独立的实时软件开 发系统上,应配备完整的实时软件开发的工具,如高级语言、在线调 试器和在线仿真器等。因此,嵌入式实时软件开发过程较为复杂。 2 2d e l t a c o r e 嵌入式操作系统的结构与特点 本系统采用的是科银精诚公司的d e l t a c o r e 内核,图2 2 是 d e l t a c o r ex 8 6 f r m 基本体系结构,从图中可以看出,系统共由三层组 成。每一层都使用下一层提供的功能,每一层都为其上层定义了一 个虚拟机,每一层都增加了一些功能。硬件构成了系统的最底层,紧 接着为与硬件相关的板极支持层和内核层,最上层是应用程序。 d e l t a c o r ex 8 6 f p m 直接建立在硬件层之上,对硬件的基本要求即 p r o m 、r a m 、c p u 、c l o c k 、字符i o 设备;它由任务管理、中断 管理、信箱、信号量管理、通信管理等各个功能模块组成,而它们相 应的功能是通过系统调用接口提供给多任务应用程序的。各模块的功 能如下: 任务管理模块:完成应用任务的管理,是操作系统内核的核心部 分。它进行实时内核的初始化工作,启动实时调度,创建任务、删除 硕士论文:网络电话终端软件的设计与实现 任务、挂起任务、解挂任务、设置任务优先级等功能。 时间管理模块:为应用系统的实时响应提供支持,保证整个系统 的实时性、正确性,以提高整个嵌入式系统的实时工作能力。该模块 允许应用任务设置和读取系统时间:允许应用任务睡眠一段时间或睡 眠到某一时刻;完成系统计时和对任务时间片的计算;完成系统的定 时功能。在定时时间后调用相应的定时处理程序。 中断管理模块:完成响应中断的一些必要处理,支持中断嵌套时 任务堆栈和中断专用堆栈的切换。 任务间的通信、同步、互斥管理模块:本模块提供应用任务之间 通信、同步和互斥机制,对各任务之间的协调工作起着重要的作用。 内核提供了三种机制: a 信箱机制一完成任务间的数据传输; b 信号量机制一一实现任务间资源的共享与互斥及任务间的同步; c 异步通信管理一一支持任务间的异步通信。 内存管理模块:提供申请可变大小数据块和申请固定大小数据块 的管理。 字符i 0 管理模块:d e l t a c o r ex 8 6 f p m 提供大小为1 2 8 个字符的 输入和输出缓冲区,支持字符等待和接收操作。 在内核中还有一个重要的组成部分i s r ( 中断服务例程) ,它为内 核中的功能管理模块提供了最基本的服务。同时还为用户扩展系统提 供了支持,在此基础上,可以建立应用对d e l t a c o r e 的扩充服务例程, 然后通过应用定义的系统调用接口提供给上层的多任务应用程序。 上层多任务应用程序就是通过调用内核提供的系统调用接口和应 用自定义的系统调用接口来获得系统服务的。 6 硕:仁论文:网络电话终端软件的设计与实现 图2 - 2d e l t a c o r ex 8 6 f p m 基本体系结构 d e l t a c o r ex 8 6 f p md e l t a c o r e 是一个强实时、嵌入式多任务操 作系统内核。其运行方式为平面保护模式( f l a tp r o t e c t e dm o d e ) ,适用 于内存要求较大、可靠性要求较高的嵌入式系统。它的结构紧凑,因 此需要的存储容量较小,并提供了真正的芯片级的支持。d e l t a c o r e 的任务响应时间快速、确定,并且不随负载大小改变。d e l t a c o r e 提 供任务扩展处理接口,用户可以通过这些接口扩展内核处理任务的功 能。用户可以容易地将应用程序和d e l t a c o r ex 8 6 f p m 结合起来,既 可以由应用程序独立运行自己的调用程序和例程,也可以由 d e l t a c o r ex 8 6 f p m 统一管理。d e l t a c o r ex 8 6 f r m 提供系统配置表, 用户可以根据应用的具体情况配置内核的规模。具有较好的内核扩充 机制,操作系统的其它组件也可容易地加到系统中。尽管d e l t a c o r e x 8 6 f p m 运行时不是位置无关的,但在连接时却是位置无关的,它具有 一个可重定位的目标库,可以定位到内存允许的任意地址空间。 因此,d e l t a c o r ex 8 6 f p l m 可用于开发不同类型的嵌入式应用中。 2 3 应用系统软件的结构 基于d e l t a c o r ex 8 6 f p m 的应用系统软件,实际上是一个应用程 序与系统内核的整和体。也就是说,是应用对内核的扩展。它主要由 硕士论文:网络电话终端软件的设计与实现 初始化部分、操作系统内核、应用程序、系统配置等几部分组成。如 图2 - 3 , 图2 3 一个完整的d e l t a c o r ex 8 6 f p m 应用系统的软件结构 首先,它需要一个初始化程序,对各种设备进行初始化,馒它们 处于正常的工作状态中。之后,进入到操作系统内核的运行,内核会 根据系统配置表,决定内核的规模。然后生成用于管理系统正常运行 的任务。而应用程序,可以通过调用系统调用接口,生成用于完成具 体工作的任务,添加到系统的任务表中。 24d e l t a c o r ex 8 6 f p m 的配置 系统配置和设备的中断处理程序在操作系统、开发工具和应用环 硕士论文:网络电话终端软件的设计与实现 境之间提供了一个接口,将系统环境与应用环境有机地结合起来。 工具系统l a m b d a t o o l 提供了专i g 的o s 配置工具d e l t a c o n f i g 来 配置d e l t a c o r ex 8 6 f p m 在特定应用环境中需要的所有参数( 例如用 户可创建的最大任务数、任务扩展程序的指针等等) 。任务扩展程序提 供了用户对d e l t a c o r ex 8 6 f p m 内核机制的扩充,即对任务某一特定 事件( 如:创建任务,删除任务,任务切换等等) 的扩展。d e l t a c o r e x 8 6 f p i n 在处理这些事件时,检查并执行相应的扩展程序。 2 5 嵌入式多任务应用软件的设计方法 嵌入式多任务应用软件的设计一般有如下的步骤: 1 需求分析与详细说明 分析用户需求,说明系统到能满足这些需求的程度; 2 系统设计 任务分解,将系统分解成任务( 并发进程) ,定义任务间接口关系; 3 任务设计 按模块方式设计每个任务,并定义出模块间接口; 4 模块构筑 完成每个模块的详细设计、编码和单元测试; 5 任务与系统集成 逐个模块连接、测试以构成任务,逐个任务连接和测试形成最终 系统: 6 系统测试 测试整个系统或主要子系统,以验证功能指标的实现,为具有更 强的客观性,系统测试最好由一个独立的测试小组执行。 2 6 基于d e l t a c o r e 嵌入式操作系统的g u i 组件 基于d e l t a c o r e 嵌入式操作系统的g u i 组件d e l t a g u i ,为开发者 提供了开发图形界面所需的基本元素,如窗口、菜单、按钮、文本框、 滚动条、进度条等,提供了丰富的图形文件支持,包括b m p 、g i f 、 j p g ,提供了完整的中文支持,包括完善的中文显示和内置的中文输入 法。同时,字体和输入法都可以由用户自行扩充。并对点阵字库和矢 量字库提供了支持。 9 硕士论文:网络电话终端软件的设计与实现 2 6 1d e l t a g u l 程序框架 d e l t a g u i 程序主要有三部分组成,也就是下面三个函数,它们的 作用分别如下: r o o t ( ) :用户应用程序的入口,初始化键盘和鼠标等设备,创建 任务c t q t a s k c t q i d l e f u n c t i o n ( ) :查询系统时间、处理键盘和鼠标等输入设 备的输入 c t g t a s k ( ) :创建应用的核心组件,完成必要的初始化,启动消 息循环 d e l i a g u i 程序用到的主要数据结构以及他们作用分别如下: c t g t a s k :创建应用的核心组件 c t g p r e s e n t a t i o n m a n a g e r :管理一个f i f o 消息队列 c t g m e s s a g e q u e u e :管理所有添加到显示设备上窗口和子对象 c t g s c r e e n :为d g u i 对象的显示提供图元 在 c t g t a s k中必须创建d g k p r e s e n t a t i o n m a n a g e r , d g k m e s s a g e q u e u ,d g k s c r e e n 的对象,因为上述三个对象是应用程序 能够运行并显示的关键 2 6 2d e l t a g u i 工作过程 图2 4g u i 工作过程图 在系统中,可以创建多个任务,分别用于处理不同的事务,如用 于接收网络数据、解析h t m l 文件等等。通常,我们创建个g u i 任务 与用户进行交互,这就要求o u i 任务能与输入设备、显示设备等外设 硕士论文:网络电话终端软件的设计与实现 进行通信,获得用户的请求,并将结果显示给用户。g u i 任务将用户 的要求通过消息传递给其他任务在后台进行处理,处理完成后,再将 结果传给g u i 任务显示给用户。 2 6 4d e l t a g u i 消息处理流程 从消息处理流程的角度看,系统可以分成三个部分,即消息的生 成、消息的处理、结果显示。消息可以是输入设备生成,如键盘、鼠 标等,也可以是其他的实时任务生成,消息生成后,由操作系统将它 们挂到系统的消息队列中,然后按一定的顺序策略将消息发送给g u i 任务。在g u i 任务中,也维护了一个消息队列。并且,存在一个消息 管理器,对g u i 的消息进行路由。在消息管理器的内部,存在一个无 限循环,对消息队列进行检查,并按相应的策略,将消息分发到对应 的g u i 对象。g u i 对象通过操纵视频管理器来进行信息的显示。视频 管理器实际是对视频设备的一个抽象。由它发消息给视频设备,完成 信息的显示。( 如图2 5 ) 图2 - 5d e l t a g u i 消趣墼理流程图 2 7d e l t a g u i 消息队列 c t g m e s s a g e q u e u e 用于管理一个f i f o 消息队列 消息主要来源:输入设备,如鼠标,触摸屏,或键盘;多任务系 统中其他任务;d g u i 对象本身 消息分类:系统消息和用户定义消息 硕士论文:网络电话终端软件的设计与实现 消息路由:自顶而下的消息路由体系 采用信号方式发送消息 d g u i 内部传递消息时,必须采用d g u i 定义的消息格式。而消息 通过o s 环境传输时,则必须采用操作系统要求的格式。两种消息格式 的转换由c t g t a s k 完成。 2 7 1d e l t a g u i 的输入焦点树 曲 c t g p r e s e n t a t i o n m a n a g e r 管理所有添加到显示设备上窗1 3 和子对 象,并确定输入焦点对象和显示对象间的位置关系,它可以看成是系 统软件执行时所有显示的窗口,对话窗,控件的容器。 2 7 2d e l t a g u i 图形显示 c t g s c r e e n 为d e l t a g u i 对象的显示提供图元。d e l t a g u i 并不直接 操作视频存储器,而是使用c t g s c r e e n 的成员函数实现画线,显示正文, 位图等操作。c t g s c r e e n 使d e l t a g u i 库和视频硬件隔离,确保d e l t a g u i 能方便地移植到任何目标环境 c t g s c r e e n 是抽象类,在c t g s c r e e n 派生类中必须提供成员函数具 体实现,如v g a s c r e e n 就是c t g s c r e e n 的派生类,实现对v g a 显示 的支持。 2 8u m l 语言及其建模方法的简介 面向对象的分析与设计( o o a & d ) 方法的发展在8 0 年代末至9 0 年 代中出现了一个高潮,u m l 是这个高潮的产物。它不仅统一了b o o c h 、 r u m b a u g h 和j a c o b s o n ( u m l 之父:三人) 的表示方法,而且对其作了进 一步的发展,并最终统一为业界所接受的标准建模语言。 u m l 是一种定义良好、易于表达、功能强大且普遍适用的建模语 言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域 不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开 发的全过程。 u m l 代表了面向对象方法的软件开发技术的发展方向,同时也提 供软件工程化的思想和方法。 硕士论文:网络电话终端软件的设计与实现 28 1u m l 简单结构 图2 - 6u m l 结构图 樊 接口 协依 用纠 生动樊 构件 节点 应 根据u m l 的结构,u m l 也相关对其操作、运用和表述提供一系 列的规则, 2 82u m l 的语义 u m l 语义描述基于u m l 的精确元模型定义。元模型为u m l 的所 有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开 发者能在语义上取得一致,消除了因人而异的最佳表达方法造成的影 响,此外,u m l 还支持对元模型的扩展定义。下面介绍u m l 中的几 个基本概念。 委燃 包 ;蠹 撇漱蹴缀 硕士论文:网络电话终端软件的设计与实现 2 8 2 1 用例( u s ec a s e ) 一个用例( u s ec a s e ) 是用户与计算机之间的一次典型交互作用。 以字处理软件为例,“将某些正文置为黑体”和“创建一个索引”便是 两个典型的用例。在u m l 中,用例被定义成系统执行的一系列动作, 动作执行的结果能被指定执行者( a c t o r ) 察觉到。 2 8 2 2 包( p a c k a g e ) 在系统划分过程中,将许多类集合成一个更高层次的单位,形成 一个高内聚、低耦合的类的集合,u m l 中这种分组机制叫包( p a c k a g e ) 。 包中的元素既可为类( c l a s s ) 也可为其子包( s u b p a c k a g e ) ,包既可是 一个子系统( s u b s y s t e m ) 也可是一个模型( m o d e l ) 。 2 8 2 3 类( c l a s s ) 在u m l 中,类( c l a s s ) 是对一类具有相同特征的对象的描述, 类描述一类对象的属性( a t t r i b u t e ) 和行为( b e h a v i o r ) ,类通过其接 口( i n t e r f a c e ) 向外界提供服务( s e r v i c e ) 。类既可是抽象的( a b s t r a c t ) 也可是可执行的( e x e c u t a b l e ) 。 2 8 2 4 例( i n s t a n c e ) 在u m l 中,实例( i n s t a n c e ) 是一种可在其上定义操作,并具有 操作运行结果状态的实体( e n t i t y ) ,如:对象是类的实例。 2 8 2 5 对象( o b j e c t ) 一个对象( o b j e c t ) 是边界条件定义良好的、可识别的、封装了状 态( s t a t e ) 和行为( b e h a v i o r ) 的一个实体( e n t i t y ) 。对象的行为可由 操作( o p e r a t i o n ) 、方法( m e t h o d ) 和状态机( s t a t em a c h i n e ) 来描述。 对象是类的实例( i n s t a n c e ) 。 2 8 2 6 操作( o p e r a t e ) 操作( o p e r a t e ) 是由类或对象提供的,用于完成某行为的服务 ( s e r v i c e ) 。每项操作都由某特定符号( s i g n a t u r e ) 表示,操作的符号 必须指明操作所需的参数( p a r a m e t e r ) 。 2 8 2 7 方法( m e t h o d ) 方法( m e t h o d ) 是操作的实现,它描述了实现某项操作的算法或 过程。 1 4 硕士论文:网络电话终端软件的设计与实现 2 8 2 8 关联i a s s o c i a t i o n ) 关联( a s s o c i a t i o n ) 描述了两个或多个类之间的语义( s e m a n t i c ) 关系,包括类的实例之间的连接( c o n n e c t ) 。 2 8 2 9 接口( i n t e r f a c e ) 接口( i n t e r f a c e ) 是对某操作集合的声明,用于定义由某实例提供 的服务( s e r v i c e ) 。 2 8 2 1 0 构件( c o m p o n e n t ) 在u m l 中,构件( c o m p o n e n t ) 是一个实际文件,可以是源代码 文件、二进制代码文件和可执行文件等。 2 8 3u m l 表示法( u m l 的符号) u m l 表示法定义了u m l 符号的表示法,为开发者或开发工具使 用这些图形符号和文本语法进行系统建模提供了标准。u m l 的抽象语 义是通过这些可视化的图形符号来表达的。这些图形符号和文字所表 达的是应用级的模型,在语义上它是u m l 元模型的实例。 2 8 4用u m l 来描述所开发的软件 在严格遵守u m l 元模型语义定义的基础上,u m l 为系统建模提 供了静态和动态两种建模机制,共五类图( 1 0 种图形) ,具体l 如图 2 77 所示。 图2 。7u m l 的建模图 下面,对每种图的功能作简要介绍。 硕士论文:网络电话终端软件的设计与实现 2 8 4 1 用例图( u s ec a s ed i a g r a m ) 用例图描述的是外部执行者( a c t o r ) 所理解的系统功能,执行者 是指用户在系统中所扮演的角色。在处理执行者时,应考虑其作用, 而不是人或工作名称。 用例图可用来描述待开发系统的功能需求。它将系统看作黑盒, 从外部执行者的角度来理解系统。不仅可用来作为系统开发的依据, 而且可用于验证和检测所开发的系统,在传统的面向对象建模中,用 例模型主要用于系统的测试阶段 2 8 4 2 态图( s t a t i cd i a g r a m ) 静态图包括类图( c l a s sd i a g r a m ) ,对象图( o b j e c td i a g r a m ) 和 包图( p a c k a g ed i a g r a m ) 。 2 8 4 3 类图( c l a s sd i a g r a m ) 类图描述系统中类的静态结构,不仅定义了系统中的类,类之间 的联系如依赖、聚合等,也定义了类的内部结构( 类的属性和操作) 。 类图描述的是一种静态关系,在系统中的整个生命期都是有效的。类 图不仅显示了信息的结构,同时还描述了系统的行为。类图是定义其 它图的基础。在类图的基础上,状态图和合作图等进一步描述了系统 其它方面的特性。 2 8 4 4 对象图( o b j e c td i a g r a m ) u m l 中对象图与类图具有相同的表示形式。对象图可以看作是类 图的一个实例。对象是类的实例;对象之间的链( l i n k ) 是类之间的 关联( a s s o c i a t i o n ) 的实例。对象与类的图形表示相似,链的图形表示与 关联相似。对象图常用于表示复杂的类图的一个实例。由于对象存在 生命周期,因此对象图只能在系统某一时间段存在。 2 8 4 5 包图( p a c k e td i a g r a m ) 包图主要描述了包与包之间的关系如依赖、聚合等。 2 8 4 6 行为图( b e h a v i o rd i a gr a m ) 行为图描述系统的动态模型和组成对象之间的交互关系,包括状 态图( s t a t ed i a g r a m ) 和活动图( a c t i v i t yd i a g r a m ) 。 2 8 4 7 状态图( s t a t ed l a g r a m ) 状态图描述类的对象所有可能状态以及事件发生时状态的转移条 1 6 硕士论文:网络电话终端软件的设计与实现 件,是对类图的补充。 2 8 4 8 活动图( a c t i v i t yd i a gr a m ) 活动图是状态图变化而来的,它们各自用于不同的目的。活动图 依据对象状态的变化来捕获动作( 将要执行的工作或活动) 与动作的 结果。描述满足用例要求所要进行的活动间的约束关系。活动图中一 个活动结束后将立即进入下一个活动( 在状态图中状态的变迁可能需 要事件的触发) 。 2 8 4 9 交互图( i n t e r a c t i v ed i a g r a m ) 交互图描述对象之间的交互关系,包括顺序图( s e q u e n c ed i a g r a m ) 和合作图( c o l l a b o r a t i o nd i a g r a m ) 。 2 8 4 10 顺序图( s e q u e n c ed i a g r a m ) 顺序图显示对象之间的动态合作关系,强调对象之间消息发送的 顺序和时间。 2 8 4 1 1 合作图( c o l l a b o r a t i o nd i a g r a m ) 合作图描述对象间的合作关系,强调对象之间上下级关系。虽然 顺序图和合作图都用来描述对象间的交互关系,但侧重点不一样。顺 序图着重体现交互的时间顺序,合作图则着重体现交互对象间的静态 链接关系。 2 8 4 1 2 实现图( 1 m p l e m e n t a t i o nd i a gr a m ) 实现图显示系统实现时的一些特性,包括源代码的静态结构和运 行时刻的实现结构,实现图包括构件图( c o m p o n e n t d i a g r a m ) 和配置 图( d e p l o y m e n td i a g r a m ) 。 2 8 4 1 3 构件图( c o r n p o n e n td i a gr a m ) 显示软件构件在编译、链接或执行时之间的依赖关系。 2 8 4 1 4 配置图( d e p l o y m e n td i a g r a m ) 描述系统硬件的物理拓扑结构以及在此结构上执行的软件。配置 图可以显示计算节点的拓扑结构和通信路径、节点上运行的软件构件、 软件构件包含的逻辑单元( 对象、类) 等。配置图常常用于帮助理解 系统总体框架。 硕士论文:网络电话终端软件的设计与实现 2 8 5u m l 抽象建模方法 在u m l 建模过程中不同的开发阶段建立的模型可以归纳为不同 层次的抽象。如图2 - 9 所示: 概念层:在概念层,u m l 模型描述的是应用论域的概念,独立于 实现它们的软件技术和程序设计语言。 说明层:说明层模型描述软件的接口部分,而不是软件的实现部 分。功能与实现的分离是面向对象开发方法的重要特征,但过去却没 能提供有效的分离机制。这主要是因为在过去面向对象技术中,类的 概念将接口与实现合在了一起。u m l 语言在语义上不仅实现了接口 ( i n t e r f a c e ) 和类( c l a s s ) 的分离,还实现了操作( o p e r a t i o n ) 和方 法( m e t h o d ) 的分离,可以非常方便的对接口和实现分开描述。 图2 8u m l 抽象层次 实现层:软件实现是u m l 建模的最后一步,在实现层,软件模型 描述了软件的实现部分。只有在实现层,类才真正能被用于编程。这 一层可能是大多数人最常用的模型,但在很多时候,说明层的模型更 易于开发者之间的互相理解和交流。 在如图2 8 的基础上,我们将指导实际建模的主要信息抽象为五 种:功能信息、结构信息、服务信息、实现信息和集成信息,信息的 提取过程也是抽象的演化过程,同时,这五种信息分别处于不同的抽 象层次,并代表了u m l 建模的五个重要阶段。 2 8 5 1 功能信息 u m l 是基于面向对象方法的建模语言,面向对象方法实现了从分 析到设计的无缝连接,但未能完成从需求到分析的完美过渡。现代u m l 建模方法在综合吸收结构化和面向对象方法的基础上,对从需求到分 析阶段的建模作了改进,确定了系统建模应从功能开始,而不是从类 硕士论文:网络电话终端软件的设计与实现 开始。 功能分解是结构化设计的基本特征,同时也是一种非常重要的分 析方法,因为人们对事物的理解总是从其具备的功能开始的。首先为 应用论域创建功能模型符合人类认识和改造世界的自然规律。因此, 我们把从应用论域中选取对设计起主导作用的功能信息,并为之创建 模型,作为整个u m l 建模过程的开端。 功能信息属于概念层的抽象结构,在u m l 中可被具体化为用例 ( u s ec a s e ,在过去的建模方法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论