(教育技术学专业论文)通用语音控制命令识别com组件的研究与开发.pdf_第1页
(教育技术学专业论文)通用语音控制命令识别com组件的研究与开发.pdf_第2页
(教育技术学专业论文)通用语音控制命令识别com组件的研究与开发.pdf_第3页
(教育技术学专业论文)通用语音控制命令识别com组件的研究与开发.pdf_第4页
(教育技术学专业论文)通用语音控制命令识别com组件的研究与开发.pdf_第5页
已阅读5页,还剩76页未读 继续免费阅读

(教育技术学专业论文)通用语音控制命令识别com组件的研究与开发.pdf.pdf 免费下载

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

文档简介

四川师范大学硕士学位论文 通用语音控制命令识别c o m组件的 研究与开发 专业: 教育技术学 研究生:李禹材指导教师:王玲教授 随 着微软语音开发平台 ( s p e e c h s d k ) 的出 现,由 于它基于 软 件构架理 论和面向构架/ # j 件的软件开发方法, 使得一般程序员开发语音应用程序的梦 想成为现实。 本文研究了s p e e c h s d k的技术基础:软件重用技术, 软件体系结构理 论,面向构如 构件的软件开发方法。基于这些技术,我们分析归纳了徽软 s p e e c h s d k 5 . 1 里语音应用程序接口 ( s a p i ) 的结构和工作原理;以“ z + z 智能教学平台的语音识别接口”的设计为例,展示了 这类系统的主框架和关 键技术;总结出语音控制命令识别的领域构架;提出了语音控制应用程序的 设计方法。这些工作对语音控制应用程序的设计具有普遥的 参考价值。 为了解决在 “ z + z 智能教育平台的语音识别接口”的研究开发中出 现的 问题一构架包含的接口 太多和理解使用太复杂, 在构件的架的专向领域软件 设计方法的基础上, 提出了“ 面向子领域通用模式的构架2 构件再集成” 的软 件设计思想,旨 在简化构架及其组装使用, 并论证其可行性, 完善其开发模 型, 设计出“ 通用语音控制命令识别c o m组件” 。 这种软件设计思想可以 作 为基于构件/ 构架的专向领域软件设计的补充. 关 键词: 语音命令识别 软件重用 构架 构件 s a p i包容 四川师范大学硕士学位论文 r e s e a r c h a n d d e s i g n o f g e n e r a l c o m c o m p o n e n t o r i e n t e d v o i c e c o n t rol l e d c o mma n d r e c o g n i t i o n m川o r : e d u c a t i o n t e c h n o l o g y a u t h o r : uy u - c a l s u p e r v i s o r : p r o # wa n g l i n g wi t h t h e e m e r g e n c e o f mi c r o s o ft s p e e c h s d k , . w h i c h , is b a s e d o n s o f t w a r e a r c h i t e c t u r e t h e o ry a n d a r c h i t e c t u r e / c o m p o n e n t b a s e d d e v e l o p m e n t , t h e d e v e l o p m e n t o f s p e e c h a p p l i c a t i o n p r o g r a m i s n o t a d r e a m a n d i n t h e h a n d f o r t h e g e n e r a l p r o g r a m m e r . i n t h i s p a p e r , t e c h n o l o g y b a s i s o f mi c r o s o ft s p e e c h s d k , s u c h a s s o f tw a r e r e u s e t e c h n o l o g y , s o f t w a r e a r c h i t e c t u r e , a r c h i t e c t u re / c o m p o n e n t b a s e d d e v e l o p m e n t , a r e r e s e a r c h e d . b a s e d o n t h e s e m o d e m s o f t w a r e t e c h n o l o g i e s , a r c h i t e c t u r e a n d t h e o ry o f s p e e c h a p p li c a t i o n p r o g r a m i n t e r f a ce o f mi c r o s o ft s p e e c h s d k 5 . 1 a r e a n a l y z e d ; i t s m a i n f r a m e a n d k e y t e c h n o l o g y i s i l lu s t r a t e d i n t h e p r o c e d u re o f d e s i g n i n g s p e e c h r e c o g n i z e i n t e r f a ce f o r z + z i n t e l l i g e n ce e d u c a t i o n p l a t f o r m ; t h e d o m a i n a r c h i t e c t u r e o f r e c o g n i z i n g v o i ce c o n t ro l l e d c o m m a n d i s s u m m a r i z e d ; a m e t h o d o f d e s i g n i n g a v o i ce c o n t r o ll e d a p p l i c a t i o n i s p r o p o s e d . o u r w o r k s a r e u n i v e r s a l l y i m p o rt a n t t o d e s i g n o f v o i c e c o n t ro l l e d a p p l i c a t i o n , a n d v e ry h e l p f u l . f u r t h e r m o re , i n o r d e r t o s o l v e t h e p rob l e m ,w h i c h i s f o u n d i n t h e p ro c e s s o f r e s e a r c h a n d d e v e l o p m e n t o f s p e e c h r e c o g n i z e i n t e r f a c e f o r z + z i n t e l l i g e n ce e d u c a t i o n p l a t f o r m , t h a t i s t h e r e a r e t o o m a n y c o m p o n e n t i n t e r f a ces t o b e u n d e r s t o o d a n d t o b e u s e d e a s i l y , a s t r a t e g y f o r d e s i g n i n g s o f t w a re, n a m e d re - i n t e g r a t i n g o f a r c h i t e c t u r e / c o m p o n e n t o r i e n t e d g e n e r a l m o d e l o f s u b - d o m a i n , i s p ro p o s e d o n t h e b a s i s o f d o m a i n - s p e c i fi c a p p li c a t i o n s y s t e m , w h i c h c a n s i m p l i 行a r c h i t e c t u r e s a n d s y s t e m i n t e g r a t i o n . f e a s i b i li t y a n d d e s i g n m e t h o d o f n e w s t r a t e g y a r e d e m o n s t r a t e d , d e v e l o p m e n t m o d e l o f d o m a i n - s p e c i f i c a p p l i c a t i o n 四川师范大学硕士学位论文 s y s t e m b a s e d o n a r c h i t e c t u r e / c o m p o n e n t i s i m p r o v e d , a n d a g e n e r a l c o m p o n e n t f o r r e c o g n i z i n g v o i ce c o n t ro ll e d c o m m a n d i s d e s i g n e d . t h i s i d e a o f s o f t w a r e d e s i g n c a n b e c o m p l e m e n t e d o f d o m a i n - s p e c i fi c a p p l i c a t i o n s y s t e m b a s e d o n a r c h i t e c t u r e / c g m p o n e n t . k e y w o r d s : r e c o g n iz i n g o f c o m m a n d , s o ft w a re r e u s e a r c h i t e c t u re, c o m p o n e 叭 s a m c o n t a i n m e n t , s o f t w a re 四川师范大学硕士学位论文 1前言 随 着计算机技术的快速发展和应用领域的不断扩大,在与计算机的 信息 交流中,人们越来越需要一种更方便、更自 然地方式。而语言是人类交流信 息最自 然、最有效和最方便地手段。让计算机听懂我们说的话,从而让我们 与计算机用语言方便自 然地进行交流,一直是近半个世纪以来,语音识别技 术追求的目 标。 1 . 1 课题背景及意义 本文的研究和开发项目来源于: 全国教育科学“ 十五” 规划国家级课题” 中国特色远程教育学科理论体系构建及教师与基础教育课程和信息技术整合 的教改实验研究”之子课题”基于网络环境下教学资源的整合”的子课题” z + z智能教学平台的语音识别接口,o 课题的目的是要开发一个能实时识别标准课堂作图用语的语音识别接 口, 嵌入 “z + z智能教学平台”里, 将识别的作图命令传送给宿主程序, 宿 主程序根据命令作图。 这样, 在教师课堂讲课的同时, “z + z智能教学平台” 就可以实时地在计算机上画出相应的图形。 “z 十 2智能教学平台的语音识别接口”使得 “z + z 智能教学平台” 具 有根据语音命令实时作图的功能,对于改善课堂教学环境, 提高教学质最具 有重要的意义。 对于教师,过去常常由于需要操作计算机画图 而打断讲课的思路,如果 能通过语音命令作图,教师就能 更加专注于教学本身;它同时要求教师用语 的规范,客观上提高了教学的质量;语音实时作图,即使很复杂的图,也可 以马上在计算机上画出,提高了教学的效率。 对于学生,可以学习到规范的术语,在听到老师的描述时,可以马上看 到图形,有利于将抽象的概念与具体的图形结合起来,有利于增强学生的空 间想像和思维能力。 四川师范大学硕士学位论文 1 .2 国内外研究发展状况与趋势 语音识别的 研究工作大约开始于5 0 年代, 标志就是a t mi c r o s o f t 在语音识别领域后来居上,推出了以c o m组件 库形 式 提 供的s p e e c h s d k 。 它 们为 普 通的 语音 应用 程 序开 发者 提 供了 一 个 语 音识别和合成的二次开发平台。 这些s d k可以 识别多种语言, 如英文、 中文和日 文, 具有良 好的软件体 系 结 构, 组 件 的 可 重 用 性 好, 向 编 程 人 员 屏 蔽 了 复 杂的 语 音 技 术, 程 序 设 计 者根据语音软件的构架,将语音构件组装起来,就可以在自 己的软件里嵌入 四川师范大学硕士学位论文 语音识别和合成功能。为我们与计算机用语言进行交流提供了坚实的技术支 持,我们可以利用它们在自己开发的软件里嵌入语音识别和合成功能,从而 使用户可以 用声音来代替原来使用键盘、鼠 标完成的操作, 比如: 文字输入、 菜单控制、 画图、 公式输入、 用声音向用户汇报程序执行结果或提示信息等。 在国内, 广泛的语音识别应用系统的开发正澎勃发展, 应用微软的s p e e c h s d k开发实用系统尤为广泛:如武汉大学开发的“ 基于语音识别的火车票查 询 系 统” m , 上 海 交 大的c a ll c e n t e : 系 统 12 1 。 广 州 外 语外 贸大 学的 “ 利 用s p e e c h s d k 实现中英文全文朗读”. 在程序或网页中实现了中英立全文朗读i2 代 总的说来,现在的语音识别和合成技术领域的现状和发展趋势具有以下 特点: ( 1 ) 语音技术步入使用阶段, 开始广泛应用于各 个领域。 ( 2 ) 语音技术的 墓础研究由实力雄厚的大公司和研究机构承担。 并利用现 代软件的重用技术,向广大应用程序开发者提供构件库和开发环境, 并 封装了复杂的语音低层技术和实现。 ( 3 ) 应用程序开发者无豁了 解复杂的语音技术, 只须在基于构件/ 构架的 软件开发方法的指导下,根据语音软件的构架,将语音构件组装起来, 就可以在自己的软件里嵌入语音识别和合成功能。 1 .3 在语音识别开发平台上进行二次开发存在的问题 虽然使用m i c r o s o f t 或i b m等公司的语音s d k开发语音应用程序,相 对于自己独立开发已经很方便了,但还是存在以下问题: ( 1 ) 没有公开领域构架 这是目 前基于构架/ 构件的软件开发里的一个通病: 构架/ # j 件的开发者只 向 外界提供构件库,而构架却留 在开发者的头脑里。使得应用程序组装的依 据不为应用程序设计者所知。 应用程序设计人员只有通过自己阅读帮助文档,研究程序实例的方式来 分析领域应用程序的总体结构,构件间的逻辑关系和约束关系,程序推进的 四川师范大学硕士学位论文 顺序等。这给应用程序的设计增加了很大的难度。 ( 2 ) 缺乏开发语音应用程序的方法 语音应用程序的广泛开发近年来才刚开始, 而语音程序的设计又很特别, 现在还没有一个规范的开发方法来指导应用程序开发。这就使开发人员在进 行设计开发时缺乏方法的指导。 ( 3 ) 构架的件太复杂 语音识别技术原本相当复杂, 虽然 s d k尽量对应用程序的开发者屏蔽了 中何的复杂实现技术细节, 但由于它面向整个语音识别领域t .因此,构架l 构件,以及其中的数据结构等仍然非常复杂。 对于开发人员来说,难度和工作童依然很大。 1 .4 论文的意义 虽然语音技术已 经应用于许多领域,但将语音识别技术用于改善课堂教 学环境还未见文献报道。 现在, 国 内 应 用m icr o s o f t 的s p e e c h s d k 来 开发 语 音应 用 程 序的 项目 很 多, 但还没有人将用s p e e c h s d k开发应用程序的 方法归纳总结出 来; 语音 识别的软件构架也未见文献,使得c o m组件的组装没有指导。这些都给开 发 人员的开发 增加了 不必要的困 难和 难度。 本文将归 纳总结出 用s p e e c h s d k 开发应用程序的方法;给出语音命令识别的软件构架。以便于语音应用程序 的开发。对语音控制应用程序的设计具有普遍的参考价值。 更为重要的是,本文最终的研发结果是一个面向语音控制命令识别领域 的通用c o m组件,应用范围已不再局限于课堂用语识别,而可以广泛应用 于语音控制命令识别领域,如:菜单、画图、公式输入等各种控制命令的识 别,具有广阔的应用前景。凡是开发语音控制命令识别应用程序, 都可以 使 用这个通用组件来开发。 最后,在软件理论方面,出于开发出既简单易用又能适应广大用户的构架/ 构件库的目 的, 在基于构件/ 构架的专向 领域软件设计方法的基础上, 针对有 些子构架包含的接口 太多和理解使用太复杂的问题,提出了“ 面向子领域通 四川师范大学硕士学位论文 用模式的构架/ 构件再集成”的 软件设计思想,旨 在简化构架及其组装使用, 这种软件设计思想可以作为基于构件/ 构架的专向领域软件设计的补充。 还改 进了基于构件/ 构架的专向领域软件设计方法。 1 .5 论文的主要工作 ( ”通过阅 读大皿参考文献和开发 帮助文 档, 研究了s p e e c h s d k 的 软 件技米基础。 -几 包括: 软件重用技术,软件体系结构,基于构架 / 构件的软件开发方法, s p e e c h s d k 5 . 1 的s a p i ( 语 音 应用 程 序 接口 ) 0 其中对s a p i 的研究来源于 s d k的帮助文档和实际的开发经验。 在软件体系结构理论的指导下,应用基于构如构件的软件开发方法, 进 行了以下的研究和开发工作: ( 2 ) 归纳总结出用s p e e c h s d k 开发应用程序的 方法。 由 于语音识 别的 二次 开发 平台 基于 语音技术和构 细构件库, 应用s p e e c h s d k开发语音应用程序的方法比较特殊。本文基于实际的开发经验, 总结出 这类程序的开发方法为:归纳、 总结子领域的构架: 根据构架, 来进行需求分 析;应用系统的详细设计。 ( 3 给出语音命令识别的软件构架。 本文在软件体系结构理论的指导下, 根据基于构如构件的现代软件开发 模式,通过提练实际的开发经验,理解各个相关的构件功能及其相互关系和 连接模式,总结出语音命令识别的软件构架。 ( 4 ) 开发出“ z + z 智能教育平台的 语音命令识别接口” . 开发出一般意义下的接口程序, 该程序可以嵌入宿主软件进行语音识别。 接口 程序由两个模块组成:初始化和识别结果提取,它们可以分别嵌入宿主 程序的初始化模块和消息相应过程里。 ( 5 ) 提出了 面向领域通用模式的构架/ 构件的 再集成的软件设计思想。 在软件体系结构理论的指导下, 在基于构件/ 构架的专向 领域软件设计方 四川师范大学硕士学位论文 法的基础上,针对语音命令识别子构架包含的接口太多和理解使用太复杂的 问题,提出了“ 面向 子领域通用模式的 构架/ 构件再集成”的软件设计思想。 其目 的在于: 通过将语音命令识别子领域的构架/ 构件集成为一个子领域通用 的构件,简化语音命令识别子领域的构架及其组装使用过程,使得应用程序 的开发更加简单快速。 ( 6 ) 改进了墓于构件的架的 专向领域软件设计方法。 本文从实际需要出发,改进了基于构件胸架的专向 领域软件设计方法。 在 原 来 的 设 计 模 型 上 增 加 了 面 向 子 领 域 通 用 模 式 设 计 的 内 容 , 使 得 设 计 出 的 构架 / 构件库可以 兼顾不同 用户的 需 要。 新模式下, 普 通用户开发应用 程序更 加简单方便。 仍 开发出 一个面向 语音控制命令识别领域的通用c o m组件。 根据本文前面的软件设计思想和方法,归来出语音控制命令识别领域的 通用模式,该模式包含了该领域与应用程序无关的共同特性;将与应用相关 的特性分离出去,处理成外挂部分。再将与具体应用无关的、领域共有的构 架2 构件集成为一个领域通用的c o m组件,组件在运行时才将每个应用特定 的语法装载进去。就这样,实现了一个通用 c o m组件,它既具有面向语音 控制命令识别领域所有应用的统一一致的形式,又能兼顾不同的应用系统. 1 .6 论文的创新点 ( 1 ) 归纳总结出 用s p e e c h s d k 开发应用程序的 方法. ( 2 ) 给出 语音命令识别的 软件构架。 ( 3 ) 提出了面向 领域通用 模式的 构架1 1 件的再集成的观点。 () 改进了基于构件 湘架的 专向领域软件设计方法. ( 5 ) 开发出一个面向语音控制命令识别领域的通用c o m组件。 1 . 7 论文的结构 本文可以分为五部分: 第一部分 ( 第 1 章) 四川师范大学硕士学位论文 一一一前言一一一 介绍了课题背景,国内外的发展趋势。 本文的工作、意义、创新和结构。 第二部分 ( 第2 - 3 章) 一一一理论技术基础一一一 研究了s p e e c h s d k的软件技术基础, 包括: 软件重用技术,软件体系结构,基于构架/ a件的软件开发方法, s p e e c h s d k 5 .1的s a p i ( 语 音 应 用 程序 接口 ) 。 - 第三部分 ( 第4 章) 一一一开发实践及归纳总结一一一 归纳总结出 用s p e e c h s d k开发应用程序的方法。 给出语音命令识别子领域的软件构架。 开发 “ z + z智能教育平台的语音命令识别接口 程序, 。 第四 部分 ( 第5 - 7 章) 一一一理论创新和实践创新一一一 提出了面向子领域通用模式的构架/ 构件的再集成的软件设计思想。 改进了基于构件了 构架的专向领域软件设计方法。 开发出一个面向语音控制命令识别领域的通用c o m组件。 给出面向语音控制命令识别领域的通用c o m组件的使用方法。 第五部分 ( 第8 章) 一一一总结与展望一一一 总结了本文的贡献,指出今后的工作方向。 四川师范大学硕士学位论文 2 软件复用技术及基于构件/ 构架的专向领域软件设计方 法 2 . , 软件复用技术 软 件复 用 ( s o f tw a re r e u s e , 又 称 软 件重 用或 软 件再 用 ) 是 软 件 开发 中 避 免 重复 劳动的解决方案由于软件复用有助于提高软件开发的效率, 提高软件系统 的 可 靠 性 , 减 少 维 护 负 担 , 因 而 , 软 件 复 用 从 一 开 始 就 被 认 为 是 摆 脱 软 件 危 机的一种手段,并受到广泛的重视。也正是这个原因,在随后的几十年里, 软件复用在各个方面影响着整个软件的发展过程。 2 . 1 . 1软件复用技术的历史 1 9 6 8 年, 在n a t o软件工程 会议 上d .m c ll m y 首次 提出 可复 用库的 思想 和以不同精确度定制构件的自 动化技术,并且引入了形式化软件复用概念。 他当时提出了建立现行的、标准的源代码构件产业,并设想了通过目 录可以 使用小积木构造复杂的系统的想法。 m c ll r o y 的 想法是产生软件工厂概念的关键。 此后, 软件工厂便成为软件 复用的一种有效途径。 美国通用电器公司r .w b e m e r 将软件工厂定义为: 软 件工厂是一个以计算机为依托,并由计算机控制的编程环境。程序的编码、 检查和使用都应当在此环境下利用其中的工具来实现。同时工厂应具有生产 率、 质量的度童和管理, 成本核算和进度计划的财务记录,以及使管理者能 靠原先的数据进行预算的能力。环境中的工具应包括测试实例,用以 测试不 依赖于 机器的 语言 编译程序、 仿真 程序、 文档编制工具 ( n自 动流 程图 编制程 序、 文 本编辑程 序、 索引 程 序) 、 计 算装置、 链接和接口 验证程序和 代 码筛选 程 序 等 . b e m e r 的 阐 述 倾向 于 工 具 和 管 理 控制, 而m c l lr o y 将 软 件 复 用的 概 念引入到软件工厂,强调了在制作新程序过程中系统的代码复用。 7 0 年代末期,复用引起学术界的广泛兴趣. 到了9 0 年代初, 软件复用的实践有三个趋势, 一是软件界将软件复用的 四川师范大学硕士学位论文 实践惯例化、用户化,不仅考虑技术的因素, 而且要考虑管理的因素,二是 将复用技术集成到软件开发的过程中,并且研究软件过程形式化问题,三是 将领域分析标准化,研制支持领域分析的方法和工具。 当前,基于构件的软件开发方式己经成为软件复用的主要手段。软件复 用 模仿传统产业的 发展,以 符合标准的 零部件( 构件) 生产以 及 基于 标准构件 的 产品 生 产 ( 组 装 ) 为 手段, 快 速生 成 应 用系 统。 构件 式软 件开 发强 调了 功能 的局部封装性,使得软件可以像传统工业如机械、建筑等行业中的标准元件 ( #l 械零 部件、 建筑器柳一 样通过一 定的 封装 过程达到 定制软件 的过 程 要生产出 封装的、易于复用的软件构件就必须进行领域分析,以 快 速地 确定软件的体系结构、框架和构件,从而准确地实例化出一系列适应性很强 的产品谱系,而不是功能、性能满足某个特定用户需求的产品。因此,基于 构件的软件开发尤为重视其领域分析的结果。 从上述整个软件复用的发展过程可以看到,整个软件复用技术经历着一 个从个别复用到整体复用,从分散复用到集中复用,从工程化软件开发中的 编 码 复 用 到 分 析 、 设 计 等 各 个 阶 段 复 用 的 变 革 历 程 、 2 . 1 .2软件复用的意义 软件复用发展如此的迅速, 主要是因为软件复用具有非常吸引人的意义。 具体看来,软件复用的意义主要体现在以下5 个方面. ( i ) 软件复用能 够提高软件生产率, 从而减少开发 代价。 用可复用的构件构造系统可以 提高系统的性能和可靠性,因为可复用构 件经过了高度的优化,并且在实践中经受过考验。 ( 2 ) 软件复用能够减少系统的 维护代价. 由 于使用经过检验的构件,减少了可能的错误,同时软件中需要维护的 部分也减少了。 ( 3 ) 软件复用能 够提高系统间的互操作性。 通过使用统一的接口,系统将更为有效地实现与其他系统之间的互操作 性。 ( 4 ) 软件复用能够支持快速原型设计。 四川师范大学硕士学位论文 利用可复用构件和构架可以快逮有效地构造出应用程序的原型,以获得 用户对系统功能的反馈。 ( 5 ) 软件复用还能 够减少培训开销. 2 . 1 .3 软件复用的分类 从不同的角度理解软件复用,软件复用可以 进行不同的分类。 ( i ) 依据可复用信息进行复用的方式, 可以 将软件复用分为黑盒复用和白 盒复用。 黑盒复用是指对已 有构件不需做任何修改,直接复用。这是最理想的方 式。 白盒复用是指己有构件并不能完全符合用户需求,要根据用户需求进行 适应性修改后方可使用。在大多数应用的组装过程中,构件的适应性修改是 必需的。 ( 2 ) 依据复用的对象, 可以 将软件复用分为产品复用和过程复用。 产品复用是指复用已有的软件构件,通过构件集成组装得到新系统。 过程复用是指复用己有的软件开发过程,使用可复用的应用生成器来自 动或半自 动地生成所需系统。过程复用依赖于软件自 动化技术的发展,目 前 只适用于一些特殊的 应用领域,而产品复用则是目 前现实的、主流的途径。 2 .2 软件体系结构 自 从软件工程的概念提出以来,软件工程界已经提出了一系列的理论、 方 法、 语言 和 工具 来 解决软 件开 发过 程中 出 现的 若千向 题. 但是 , 软件固 有 的复杂性、易变性和不可见性, 使得软件开发周期长、代价高和质t低的问 题依然存在。 为了提高软件需求和软件设计的质量,软件工程界提出了需求分析工程 技术和各种软件建模技术,但是在需求与设计之间仍存在一条很难逾越的鸿 沟,即缺乏能够反映做决策的中间过程,从而很难有效地将软件需求转换为 相应的设计;而在软件的设计中,软件的局部和整体的系统结构显得越来越 重要,人们需要一种超越传统算法和数据结构的高层的抽象结构来描述整个 四川师范大学硕士学位论文 系统。为此,软件体系结构概念应运而生。 2 .2 . 1 软件体系结构的发展史 软件体系结构最初源于对软件结构的研究,系统复杂性和软件复用是它 产生的内在驱动力。软件系统的规模在迅速增大的同时,软件开发方法也经 历了一系列的变革,在这个过程中,软件体系结构也由最初模糊的概念发展 到一个渐趋成熟的技术.纵观软件体系结构技术发展过程, 从最初的“ 无结 构”设计到现行的基于体系结构软件开发,可以认为经历了4 个阶段, ( 1 ) “ 无 体系结构” 设计阶段 2 0 世纪7 0 年代以前, 尤其是在以a l g o l 6 8 为代表的高级语言出现以前, 软件开发基本上都是汇编程序设计.此阶段系统规模较小,很少明确考虑系 统结构。一般不存在系统建模工作。 ( 2 ) 萌芽阶段 7 0 年代中后期,由于结构化开发方法的出现与广泛应用,软件开发中出 现了概要设计与详细设计, 而且主要任务是数据流设计与控制流设计。 因此, 此时软件结构己作为一个明确的概念出现在系统的开发中。 ( 3 ) 初期阶段 2 0 世纪8 0 年代初到9 0 年代中期, 是面向 对象开发方法兴起与成熟阶段。 由于对象是数据与基于数据之上操作的封装,因而在面向对象开发方法下, 数据流设计与控制流设计则统一为对象建模,同时,面向对象方法还提出了 一些其他的结 构视图。 如在o m t方法中 提出了 功能视图、 对象视图与动态 视 图 泡括 状 态 图 和 事 件 追 踪 图 ); 而b o o g 杆 方 法 中 则 提 出 了 类 视 图 、 一 对 象 视 图、状态迁移图、交互作用图、模块图、进程图; 而 1 9 9 7年出现的统一建模 语言u m l为 本阶段的典型 代表, 它 从功能 模型( 用 例视图 ) 、 静态模型 ( 包括 类图、 对象图、 构件图、 包图 ) 、 动 态模型( 协作图、 顺序图、 状态图 和活动 图 ) 、 配置 模型( 配置图 ) 描述应用系统的结构。 ( 4 ) 高级阶段 9 0 年代以后则是基于构件的软件开发阶段, 该阶段以描述系统的高层抽 象为中心,不关心具体的建模细节,划分了体系结构模型,强调软件开发采 四川师范大学硕士学位论文 用构件化技术和体系结构技术,要求开发出的软件具备很强的自 适应性、互 操作性、可扩展性和可重用性.此阶段中,软件体系结构己经作为一个明确 的文档和中间产品存在于软件开发过程中,同时,软件体系结构作为一门学 科逐 渐得到 人们的 重视, 并 成为软件工 程领域的 研究 热点, 因 而p e r ry和w o l f 认为,未来的 年代将是研究软件体系结构的时代仍 . 与 传统的 软 件结 构的 界限 , 该阶 段以k r u c h t e n 提出的“ 4 + 1 ” 模型8 . 为 标 志。由于概念尚未统一、描述规范也不能达成一致认识,目 前尚未成熟,在 软件开发实践中软件体系结构尚不能发挥重要作用。软件体系结构技术还需 要进一步的发展。 2 .2 . 2软件体系结构的有关定义 关于软件体系结构的概念早在2 0 世纪8 0 年代就已经提出,但真正引起 关注和重视是在9 0 年代。 所以, 有关软件体系结构的定义主要来自 这一时期。 1 9 9 2 年, d e w a y n e p e r ry和a l e x a n d e r w o lf 定 义 9 : 软 件 体系 结 构 是 具 有 特定 形式的 体 系结构 元素( e le m e n t s ) 或设计元素构 成, 包括处理元素、 数 据元 素和连接元素三类。内涵的进一步扩大包括了模块和模块之间的控制关系。 1 9 9 3 年, m a ry s h a w和d a v i d g a r l a n 提出 : 软 件 体 系结 构 是设 计过 程中 的 一个层次,它处理那些超越算法和数据结构的设计,研究整体结构设计和描 述方法。体系结构还包括大体组织结构、全局控制结构、通信和同步以及数 据存取的协议、设计元素的功能、物理分布和合成、设计方案的选择、评估 和实现等。设计和说明总体系统结构作为一个新问题被正式提出来了。 1 9 9 4 年 , 、 b a s s 等 人 在 关 于 软 件 品 质 属 性 研 究 中 提 断 体 系 结 构 设 计 李 少 可包括应用领域的功能分割、系统结构、结构的领域功能分配的三个方面。 h a y e s 一r o th 指出 :软 件 体系 结 构 是由 功能 构 件组 成的 抽象 系 统的 说明, 它 是 按照功能构件的行为、界面和构件之间的相互作用进行描述的。 1 9 9 5 年, d e w a y n e p e n t 和d a v id g a l a n 于i e e e 软 件 工 程学 报上 定 义 “ o f 软件体系结构包括系统构件的结构、构件的相互关系、以及控制构件设计演 化的原则和指导三个方面。 南加州大学软件工程中 心的b a r r y b o e h m指出: 一个软件体系结构包括; 四川师范大学硕士学位论文 一个软件和系统构件、 互联及约束的 集合; 一个系统需求说明的集合; 一个基本 原理用以 说明这一构件、互联和约束能够满足系统的需求。 1 9 9 7 年, b a s s . c l e m e n t s 和k a z m a n 在” 使用软件体系结构” 一书中的 定义:一个程序或计算机系统的软件体系结构包括一个或一组软件构件、软 件构件的外部可见特性及其相互关系。 “ 外部可见特性” 是指软件构件提供的 服务、性能、特性、错误处理、共享资源使用等。这一定义强调软件体系结 构必须从系统中抽象出用于分析、决策的信息。 比较上述各种体系结构的定义可以发现尽管各种定义都从不同的角度关 注软件体系结构,但其核心内容都是软件系统的结构,并且都涵盖了如下一 些 实 体 和 联 系: 构 件 及 其 约 束; 构 件 之 间 的 交 互 关 系 , 如: 连 接 ( c o n n e c to r ) . 配置 ( c o n fi g u r a t i o n ) 、 端口 ( p o r t ) 和角色 ( r o l e ) ) : 构 件和连接件构成的 拓扑结 构、 设计原则与指导方针。 可以 这样认为:软件体系结构奠基于程序算法、数据结构和对象设计, 它是系统实施的抽象描述。体系结构概括了整体系统结构、功能部件分解、 部件的本质和特性、部件的界面和部件之间的通讯协议和整体性布局策略及 法则。 2 .2 .3 软件体系结构设计的优势 最初的基于构件的软件系统体系结构是用框图和很不正规的描述形式来 表示的,然而这样的框图和描述形式带有很大的二义性,其意义完全建立在 人们的 共同 直觉 和过去 经验的 基础之上 i i i 。 系 统设 计 人员 缺乏 适当的 概念、 工具及选择和描述适宜的系统体系结构的 淮则。越来趁多的 人们认识到有效 的软件系统方法必须要辅以体系结构级的设计设施。坚实的软件体系结构基 础将直接带来开发和维护上的巨大效率,这表现在以下几个方面: ( 1 ) 理解系统 要使现代的系统为人们所理解是个很大的挑战,以体系结构为中心进行 开发,可以防止出现这种无法理解的现象。 ( 2 ) 组织开发 软件项 目组织越庞大,开发人员协调工作所付出的开销也就越大。当项 四川师范大学硕士学位论文 目 分散在不同地点时,这种交流的开销也会增加。通过将系统划分为带有明 确定义接口的子系统,并让一个开发组或个人负责每个子系统,体系结构设 计 者 都 可以 减 少 负 责 不 同 子 系 统 的 开 发 组 之间 的 交 流 的 工 作 里 一 个 高 质 量 的体系结构应该明确定义这些接口,尽可能减少子系统间的通信。 ( 3 ) 鼓励复用 软件产业要达到硬件领域己经达到的标准化水平,好的体系结构和明确 的接口是实现这一目 标的关键步骤。好的体系结构为开发人员提供了可以在 其上开展工作的稳定的骨架,并有助于开发人员知道在哪里能有效地寻找到 可复用的元素以及发现合适的可复用构件。 ( 4 ) 进化系统 任何有相当规模的系统都需要不断进化。开发人员应该可以改变部分设 计和实现,而不必担心这种改变会对整个系统产生非期望的效果。这就要求 系 统本身 应该 对变化具 有一定的 柔性 ( 或 称容变能 力 ) : 或者说 系统应该能 够适 度地进化。 通过对特定应用软件进行分析, 找出其中的稳定需求和易变需求, 建立可复用的领域模型。根据用户需求和领域模型,产生应用系统的需求规 格说明。在领域模型的基础上,找出特定领域的软件体系结构。高层设计的 任务是根据需求规格说明进行休系结构设计,通过复用体系结构库中的特定 领域的体系结构,或创造适合该应用环境的体系结构,并加以提炼存放到库 中,以备将来用。低层设计主要解决具体构件和连接件的设计问题,通过复 用库中存放的设计模式、和其他类型的可复用设计件,或根据情况设计一新 的 构 件 , 并 提 炼 入 库 。 低 层 设 计 的 结 果 可 以 直 接 f ar- 实 现 。 、 因此,软件体系结构研究的最大贡献在于对软件生产率的提高和维护的 简化。提高软件生产率的关键在于软件相关部分的复用,而简化维护的关键 是减少软件理解的成本和提高软件的质量,这也是研究软件体系结构的目的 1 1 2 1 2 . 2 .4软件体系结构的构成 软件体系结构包括对软件系统以下四个方面所作的决策: 四川师范大学硕士学位论文 ( 1 ) 软件系 统的 组织 (2 ) 构 成系 统的连 接件和 各构 件之间 的 接口 , 以及由 构件间 各种 协 作所 规 定的各构件的行为 ( 3 ) 连接件和构件合成为逐渐增大的子系 统 (4 ) 知道 这 种组织的 构架风格:构 件、 连接件以 及它 们的 接口 、 协作 和组 . 吞 然而,软件体系结构不只涉及结构和行为,还涉及到使用、功能、 性能、柔性、复用、可理解性、经济性和技术约束以 及折衷方 图2 . 1 软件体系结构的组成元素 四川师范大学硕士学位论文 案、美学等方面。 综上所述,结合软件体系结构定义,软件体系结构由5 种元紊组成 ( 如图2 . 1 所tv ) :构 件 ( c o m p o n e n t) 、 连 接 ( c o n n e c t o r ) . 配置 ( c o n f i g u r a t io n ) 、 端口 ( p o rt ) 和角色( ro l e ) 。 其中 部件、 连接和配置是最基本的元素: ( a ) 部件 是具有某种功能可复用的软件模板单元,表示了系统中主要的计算元素 和数据存储。 (b ) 连接 表示了 部 件之间的 交互, 简单的 连接如:p i p e s p r o c e d u r e c a l l e v e n t b r o a d c a s t 等,更为复杂的交互如:c li e n t / s e r v e : 通信协议,数据库和应用之间的 s q l 连接。 连接作为建模软件体系结构的主要实体,同样也有接口,连接的接口由 一组角色组成,连接的每一个角色定义了该连接表示的交互的参与者,二元 连 接 有两 个角 色, 如 :p ip e 的 角 色 是r e a d in g 和w r it i n g , 消 息 传递 连 接的 角 色 是s e n d e r 和r e c e i v e r 。 有的连接有多于两个的角色, 如事件广播有一个事件发 布者角色和任意多个事件接受者角色。 ( c ) 配it 表示了部件和连接的拓扑逻辑和约束。 需要注意的是,部件作为一个封装的实体,只能通过其接口与外部环境 交 互 , 部 件 的 接 口 由 一 组 端 口 组 成 , 每 个 端 口 表 示 了 部 件 和 外 部 环 境 的 交 互 点 。 通 过不 同 的 端口 类型 , 个 部 件 可以 提 供多 重 接口 . 个 端口 可以 非 常 简单, 如过程调用, 也可以 表示更为复杂的界面( 包含一些约束) ,如必须以 某种顺序调用的一组过程调用。 2 . 2 .5 软件体系结构的 风格 人们己经开发体系结构多年,已经积累了开发好的体系结构的经验和知 识; 有许多经过多年进化而得到的通用 “ 方案” ,这些 “ 方案”可以直接使用。 其中最重要的就是软件体系结构风格和软件体系结构模式,两者的内容非常 四川师范大学硕士学位论文 类 似 13 系 统 体系 结 构 风 格 ( a r c h i t e c t u r a l s ty le ) 是 指 在众 系 统中 所 拥有的 共同 结 构 和语义 特性, 指导如 何将各个大粒度 构 件和子系统 组织成一完整的 系统, 可 将体系结构看成是一些计算性构件集成的特定系统。软件复用技术从早期的 源代码复用、函数/ 子程序库复用, 到面向 对象中的继承机制等, 复用的抽象 层次越来越高,最高层次的复用是对某种风格的软件体系结构的复用,每种 体系 结 构 风 格 确定了 系 统的 公 共 元素 及 其 构 件组 装 规则。 风 格 通过 集中 于 特 定的设计空间,简化了系统的设计和实现过程,从而达到降低开发和维护费 用的目的。体系结构风格针对大粒度的子系统甚至系统的结构和交互. 目 前提出的体系结构的风格主要有 9 大类: ( 1 ) 数据流系统( d a t a fl o w s y s t e m ) 它包含顺序批处理、管道和过滤器。 ( 2 ) 调用一返回 系统( c a l l 一a n d 一 e t u r n s y s t e m ) 它包含主程序和子程序、面向对象系统、层次结构。 ( 3 独立部件 它包含通讯进程、事件隐式调用. ( 4 ) 虚 拟 机 ( vi r t u a l m a c h in e s ) 它包括解释器、规则基系统。 ( 5 ) 以 数据为中 心的系 统库( d a t a 一c e n t e r e d s y s t e m s / r e p o s it o

温馨提示

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

最新文档

评论

0/150

提交评论