(计算机应用技术专业论文)基于uml和z的需求分析到软件体系结构的映射研究.pdf_第1页
(计算机应用技术专业论文)基于uml和z的需求分析到软件体系结构的映射研究.pdf_第2页
(计算机应用技术专业论文)基于uml和z的需求分析到软件体系结构的映射研究.pdf_第3页
(计算机应用技术专业论文)基于uml和z的需求分析到软件体系结构的映射研究.pdf_第4页
(计算机应用技术专业论文)基于uml和z的需求分析到软件体系结构的映射研究.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机应用技术专业论文)基于uml和z的需求分析到软件体系结构的映射研究.pdf.pdf 免费下载

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

文档简介

摘要 需求分析和体系结构设计是软件生命周期的两个关键活动。需求 分析关注如何刻画问题空间,而体系结构则主要关注如何刻画解空 间。所以,需求分析和软件体系结构领域的大多数研究工作都相对独 立。基于软件体系结构的开发方法将软件开发过程划分为问题定义、 需求分析、体系结构设计、详细设计和软件实现五个阶段,保持需求 分析和软件体系结构的一致性和可追踪性一直是软件工程领域所追 求的目标,因此,需求分析到软件体系结构的映射问题研究将是一个 很有价值的课题。 如何将需求分析映射为相应的体系结构,以及如何验证一个体系 结构是否符合期望的系统需求,是基于软件体系结构的软件开发方法 所必须研究和解决的核心问题。本文主要从这个问题出发,首先分析 比较了传统的结构化方法和面向对象方法的分析到设计的映射方案, 然后在面向对象的映射方案的基础上,提出了一种基于u m l 和z 的需 求分析到软件体系结构的映射方案。u m l 是一种通用的对象建模语言, 可以用来描述软件体系结构,然而,由于复杂系统的建模往往需要进 行严格的语义分析,而u m l 却缺乏精确的语义,这使得对模型难以进 行一致性检查和正确性分析。形式化方法恰好能在这方面弥补u m l 的 不足,z 形式化语言精确、简洁和无二义性的特点有利于保证系统的 正确性,因此本文结合u m l 和z 来实现需求模型到体系结构模型的映 射。最后,通过一个网上书店系统为例详细阐述了这一映射方案在实 际开发中的应用。 关键词:需求分析、软件体系结构、映射、u m l 、z 、形式化 a b s t r a c t r e q u i r e m e n ta n a l y s i sa n ds o f t w a r ea r c h i t e c t u r ed e s i g na r e t w ok e ya c t i v i t i e si nt h es o f t w a r e1i f ec y c l e r e q u i r e m e n t a n a l y s i sp a y sa t t e n t i o nt ot h eq u e s t i o ns p a c e ,b u ts o f t w a r e a r c h i t e c t u r ed e s i g nm a i n l yr a i s e sc o n c e r na b o u tt h es o l u t i o n s p a c e t h e r e f o r e ,t h em a j o r i t yr e s e a r c hw o r ko fr e q u i r e m e n t a n a l y s i sa n ds o f t w a r ea r c h i t e c t u r ei sr e l a t i v e l yi n d e p e n d e n t s o f t w a r ea r c h i t e c t u r e b a s e da p p r o a c hd i v i d e st h ep r o c e s so f s o f t w a r ed e v e l o p m e n ti n t of i v ep h a s e s :q u e s t i o nd e f i n i t i o n , r e q u i r e m e n ta n a l y s i s ,s o f t w a r ea r c h i t e c t u r ed e s i g n ,d e t a i l e d d e s i g na n dm a t e r i a l i z a t i o n m a i n t a i n i n gt h ec o n s i s t e n c ya n d t r a c e a b i l i t yo fr e q u i r e m e n ta n a l y s i sa n ds o f t w a r ea r c h i t e c t u r e i st h eg o a lo fs o f t w a r ee n g i n e e r i n g t h e r e f o r e ,m a p p i n gf r o m r e q u i r e m e n ta n a l y s i s t os o f t w a r ea r c h i t e c t u r ew i l lb ea v a l u a b l et o p i c h o wt o m a pr e q u i r e m e n ta n a l y s i s t o c o r r e s p o n d i n g a r c h i t e c t u r e a n dh o wt ov e r i f yw h e t h e rt h ea r c h i t e c t u r ea g r e e w i t ht h ed e s i r e ds y s t e mr e q u i r e m e n t so rn o t ,a r et h ec o r e p r o b l e m so fs o f t w a r ea r c h i t e c t u r e b a s e da p p r o a c ht or e s e a r c h a n ds o l v e t h ep a p e rm a i n l ye m b a r k sf r o mt h i si s s u e ,f i r s t c o m p a r e sw i t ht h em a p p i n gp r o g r a mf r o ma n a l y s i st od e s i g no f t h et r a d i t i o n a ls t r u c t u r a lm e t h o da n do b j e c t o r i e n t e dm e t h o d , a n dt h e nb a s e so nt h em a p p i n gp r o g r a mo fo b j e c t o r i e n t e dm e t h o d , a na p p r o a c ho fm a p p i n gf r o mr e q u i r e m e n ta n a l y s ist os o f t w a r e a r c h i t e c t u r eb a s e do nu m la n dzi sp r o p o s e d u m li sag e n e r a l o b j e c tm o d e li n gl a n g u a g e ,c a nb eu s e dt od e s c r i b es o f t w a r e a r c h i t e c t u r e ,h o w e v e r ,d u et ot h em o d e li n go fc o m p l e xs y s t e m s o f t e nr e q u i r e ss t r i c ts e m a n t i ca n a l y s i s ,b u tu m la c t u a l l yl a c k s t h ep r e c i s es e m a n t i c s ,w h i c hm a k e si td i f f i c u l tt oc h e c kf o r c o n s i s t e n c ya n da c c u r a c ya n a l y s i s f o r m a lm e t h o dc a nb em a d e i nt h i sa r e aj u s tt om a k eu pt h es h o r t a g eo fu m l ,zl a n g u a g e w i t hp r e c i s e ,c o n c i s ea n dn o n a m b i g u o u sc h a r a c t e r i s t i c sw h i c h iso fa d v a n t a g et ot h es y s t e ma c c u r a c y ,t h e r e f o r et h isp a p e r u s e su m la n dzt or e a l i z et h em a p p i n gf r o mr e q u i r e m e n tm o d e l t oa r c h i t e c t u r em o d e l f i n a ll y ,w eu s eo n l i n eb o o k s t o r ea sa n i l l u s t r u c t i v es a m p l et oe l a b o r a t et h em a p p i n gp r o g r a mi nt h e d e v e l o p m e n to fp r a c t i c a la p p l l c a t i o n s k e yw o r d s :r e q u i r e m e n t a n a l y s i s ,s o f t w a r e a r c h i t e c t u r e , m a p p i n g ,u m l ,z ,f o r m a l i z a t i o n i l l 湖南师范大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论 文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的 研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人 完全意识到本声明的法律结果由本人承担。 学位论文作者签名:o 叼心艚。弘。7 年 月 1 日 湖南师范大学学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权湖南师范大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 本学位论文属于 1 、保密口,在年解密后适用本授权书。 2 、不保密嘭 ( 请在以上相应方框内打“ ”) 日期:z - 9 年b 月j 日 日期:, 5 7 年叮一月jj 日 基于u m l 和z 的需求分析到软件体系结构的映射研究 第一章绪论 1 1 研究背景和相关研究动态 2 0 世纪6 0 年代末出现的“软件危机”使得人们开始重视软件工 程的研究。起初,人们把软件设计的重点放在“算法+ 数据结构= 程序” 的设计模式,随着软件系统规模越来越大、越来越复杂,整个系统的 结构和规格说明越来越重要。在这种背景下,人们认识到软件体系结 构的重要性,并希望在更高的抽象层次上把握系统各个部分之间的内 在联系,并从全局的、整体的角度去分析和理解整个系统的行为和特 性,从而解决开发复杂、大型软件系统存在的困难,提升软件系统的 质量。此外,软件体系结构在软件开发中为不同人员提供了共同交流 的基础,探索并体现了系统早期的设计决策,可作为系统组装的蓝图, 有力支持框架和构件的共享与复用,能够提高产品族的开发效率。鉴 于软件体系结构的重要性,p e r r y 和w o l f 将软件体系结构视为软件 开发中头等重要的设计对象,并认为未来的年代将是研究软件体系结 构的年代。 系统设计的源头是需求,评估体系结构好坏的第一指标也就是体 系结构是否符合软件系统的“功能性需求”和“非功能性需求”。需 求分析作为软件开发周期的第一阶段,对软件的影响有重要的作用。 一个系统成败与否,往往是由于对用户需求了解得不够多,没有合理 可行地把用户需求转变成可供软件开发人员进行开发的需求规格说 明。需求分析对后续软件开发工作所起的指导性作用以及对软件工程 中最终交付使用所起的评价、审订、鉴定性作用,都使得它在整个软 件工程中的地位日益突出,并且受到越来越多的重视。需求分析保证 软件产品恰如用户所期望得到的,从而使软件开发人员的工作价值得 以完全体现,即高质量的需求分析是软件项目得以正确、高效完成的 前提。 硕士学位论文 系统的体系结构设计往往是决定一个软件系统的关键因素。然 而,目前,软件体系结构的设计几乎都是非形式化的。这不仅不便于 理解和交流,更重要的是,没有适合描述软件体系结构的符号系统来 表达在这一高层次上的抽象。所以,为了使软件体系结构的设计者有 更科学的理论基础,一个合适的形式化系统是必不可少的。形式化方 法建立在严格的数学基础上,其目标是希望能使系统具有较高的可信 度和正确性,并能使系统具有良好的结构,使其易维护,关键是能较 好地满足用户需求。目前,对于体系结构的描述可以分成两类。第一 种解决办法是把现有的形式化方法应用到体系结构设计中,应用通用 的形式化方法对体系结构的风格进行建模和分析,通过对体系结构的 抽象层次上提供一个精确的语义描述;第二种方法是使用体系结构描 述语言,用以代替非形式化方法的方框和线条图,体系结构描述语言 吸收了传统程序设计中语义严格、精确的特点,并针对对件体系结构 的有关抽象元素,从而能精确、无歧义地描述软件体系结构,更好地 支持对软件体系结构的求精、验证、演化和分析。 本文主要研究了从需求分析到软件体系结构的映射。需求工程和 软件体系结构的设计是软件生命周期的两个关键活动:需求工程踟关 注如何刻画问题空间;而软件体系结构则主要关注如何刻画解空间。 所以,需求工程和软件体系结构领域中的绝大多数研究工作都相对独 立,并且需求和体系结构之间并没有一一对应的关系,甚至没有明显 的对应关系。随着人们对需求工程和软件体系结构研究的深入,近年 来也出现了专门讨论从需求到软件体系结构映射问题的国际会议 s t r a w ( i n t e r n a t i o n a lw o r k s h o pf r o ms o f t w a r er e q u i r e m e n t st o a r c h i t e c t u r e s ) 。在i c s e o l ( i n t e r n a t i o n a lc o n f e r e n c eo n s o f t w a r ee n g i n e e r i n g2 0 0 1 ) 嘲和i c s e 0 3 ( i n t e r n a t i o n a l c o n f e r e n c eo ns o f t w a r ee n g i n e e r i n g2 0 0 3 ) 两届国际软件工程会议 上都讨论过从需求到体系结构的映射问题,提出了诸如面向特征唧、面 向目标阳1 以及基于场景口1 等映射方案。在本质上,需求分析和软件体 系结构设计面临的是不同的对象:一个是问题空间;另一个是解空间。 基于u m l 和z 的需求分析到软件体系结构的映射研究 保持二者的可追踪性和转换,一直是软件工程领域追求的目标。在需 求阶段研究软件体系结构。有助于将软件体系结构的概念贯穿整个软 件生命周期,从而保证了软件开发过程的概念完整性,有利于各阶段 参与者的交流,也易于维护各阶段的可追踪性。目前,从需求分析到 软件体系结构的映射研究还处于起步阶段嘲。 1 2 论文的主要工作 基于软件体系结构的软件开发方法将软件开发过程划分为问题 定义、需求分析、软件体系结构设计、详细设计和软件实现五个阶段, 可以认为软件体系结构架起了需求分析与详细设计之间的桥梁,有效 地解决了需求向实现平坦过渡的问题嘲。 但是,如何将需求分析映射为相应的体系结构,以及如何验证一 个体系结构是否符合期望的系统需求,又成为基于软件体系结构的软 件开发方法所必须研究和解决的核心问题。本文从这个问题出发,主 要做了以下几个方面的工作。 1 ) 首先分析比较了传统的结构化方法和面向对象方法的需求模 型到设计模型的映射方案,并指出了这两种映射方案的不足; 2 ) 在面向对象的映射方案的基础上,提出了一种基于u m l 和z 的需求分析到软件体系结构的映射方案,u m l 提供了一整套描述软件 系统模型的概念图形表示法,可从不同的视角为系统建模,是一种可 视化的建模语言,但由于u m l 存在语义上的不完整或不匹配,所以很 难准确地表示体系结构,z 形式化语言精确、无二义性的特点恰好能 弥补u m l 的缺陷,针对u m l 和z 在描述软件体系结构方面的互补性, 因此,本文结合u m l 和z 来实现需求到体系结构的映射; 3 ) 给出了u m l 类图和用例图与z 的映射和转换机制; 4 ) 提出了需求到体系结构的映射机制; 5 ) 通过一个网上书店系统为例详细阐述了该映射方案在实际开 发中的应用。 硕士学位论文 1 3 论文的组织结构 本文按以下顺序组织: 第一章是绪论,指出了本文工作的研究背景,总结了相关领域的 研究现状,并介绍了本文的主要工作。 第二章是相关研究综述,主要介绍了软件体系结构、需求工程、 u m l 以及形式化方法和z 语言。 第三章是本文的重点,首先阐述了传统的需求分析到软件体系结 构的映射方法,指出结构化方法和面向对象方法在需求分析到体系结 构映射的局限性,然后介绍了基于u m l 和z 的映射方法,给出了u m l 类图和用例图与z 的转换与映射机制,并提出了需求到体系结构的映 射机制。 第四章以一个网上书店系统为例,详细阐述了基于u m l 和z 的需 求分析到软件体系结构的映射过程。 第五章是结束语,主要对本文研究工作的总结,并提出了进一步 的研究工作。 基于u m l 和z 的需求分析到软件体系结构的映射研究 第二章相关研究综述 本章对国# j 夕f - 相关研究工作做一综述。介绍了软件体系结构、需 求工程、统一建模语言u m l 以及形式化方法和z 语言。 2 1 软件体系结构 2 1 1 软件体系结构的起源与发展 自n a t o 于1 9 6 8 年提出软件工程概念以来,软件工程界已经提出 了一系列的理论、方法、语言和工具,解决了软件开发过程中的若干 问题。但是,软件固有的复杂性、易变性和不可见性,使得软件开发 周期长、代价高和质量低的问题依然存在。大量实践统计表明:大系 统软件开发中7 0 的错误是由需求和软件设计阶段引入的;而且错 误在系统中存在的时间愈长则愈难发现,解决这些错误的代价也愈 高。为了提高软件需求和软件设计的质量,软件工程界提出了需求分 析工程技术和各种软件建模技术。但是在需求与设计之间仍存在一条 很难逾越的鸿沟,即缺乏能够反映做决策的中间过程,从而很难有效 地将需求转换为相应的设计。为此,软件体系结构概念应运而生,并 试图在软件需求与软件设计之间架起一座桥梁,着重解决软件系统的 结构和需求向实现平坦地过渡的问题。 软件系统的规模在迅速增大的同时,软件开发方法也经历了一系 列的变革,在此过程中,软件体系结构也由最初模糊的概念发展到一 个渐趋成熟的技术。 纵观软件体系结构技术发展过程,从最初的“无结构”设计到现 行的基于体系结构软件开发,可以认为经历了4 个阶段“: ( 1 ) “无体系结构”设计阶段:以汇编语言进行小规模应用程序 开发为特征; 硕士学位论文 ( 2 ) 萌芽阶段:出现了程序结构设计主题,以控制流图和数据 流图构成软件结构为特征; ( 3 ) 初期阶段:出现了从不同侧面描述系统的结构模型,以u m l 为典型代表; ( 4 ) 高级阶段:以描述系统的高层抽象结构为中心,不关心具 体的建模细节,划分了体系结构模型与传统的软件结构的界限,该阶 段以k r u c h t e n 提出的“4 + 1 ”模型为标志“。 由于概念尚不统一、描述规范也不能达成一致认识、在软件开发 实践中软件体系结构尚不能发挥重要作用“,因此,我们认为软件体 系结构技术达到成熟还需一段时日。 2 1 2 软件体系结构的定义 软件体系结构尚处在发展期,目前还没有个统一、标准的定义。 随着软件体系结构的研究的发展,不同学者从不同的角度给软件体系 结构下了多种定义。以下介绍几个具有代表性的定义。 定义1 :g a r l a n s h a w 模型“: s a = c o m p o n e n t s , c o n n e c t o r s ,c o n s t r a i n s ) 。 定义2 :p e r r y w o l f 模型“: s a = e l e m e n t s ,f o r m ,r a t i o n a l 。 定义3 :v e s t a l 模型m 3 : s a = c o m p o n e n t ,i d i o m s s t y l e s , c o m m o np a t t e r n so f i n t e r a c ti o n 。 定义4 :i e e e6 1 0 1 2 1 9 9 0 软件工程标准词汇中的定义“: a r c h i t e c t u r e = f c o m p o n e n t , c o n n e c t o r ,e n v i r o n m e n t , p r i n c i p l e ) 。 定义5 :b o e h m 模型1 ”: s a = c o m p o n e n t s , c o n n e c t i o n s ,c o n s t r a i n t s , s t a k e h o l d e r s n e e d s ,r a t i o n a l e 。 基于u l 咀。和z 的需求分析到软件体系结构的映射研究 比较上述各种体系结构的定义,可以发现:尽管各种定义都从不 同的角度关注软件体系结构,研究对象各有侧重,但其核心内容都是 软件系统的结构,并且都蕴含构件、连接件、构件之间的关系、构件 和连接件之间的关系等实体。 在本文后续章节所提到的“软件体系结构”,都以定义l 的软件 体系结构的概念为基础,即体系结构( a r c h i t e c t u r e ) = 构件 ( c o m p o n e n t s ) + 连接件( c o n n e c t o r s ) + 约束( c o n s t r a i n t s ) 。 2 1 3 软件体系结构的研究现状 目前人们在软件体系结构领域主要致力于体系结构描述、体系结 构分析与验证、体系结构复用、特定领域的体系结构、基于体系结构 的开发方法的研究。 1 ) 体系结构的描述 主要研究体系结构描述语言及其支持环境、体系结构描述规范。 表达体系结构的符号系统与语言、表达方式都是体系结构研究的重要 内容。虽然软件体系结构描述起着重要的作用,但这些抽象的描述通 常是非形式化的和随意的。体系结构设计经常难以理解,难以进行形 式化分析和模拟,缺乏相应的支持工具帮助体系结构设计师完成设计 工作。为此,用于描述和推理的形式化语言得以发展。体系结构描述 语言( a d l ,a r c h i t e c t u r ed e s c r i p t i o nl a n g u a g e ) 的目的就是提供一 种规范化的体系结构描述,从而使得体系结构的自动化分析成为可 能。研究人员已经设计出了近2 0 种a d l ,比较有影响力的有c 2 “”、 u n i c o n 、m e t a - h 铡、a e s o p 乜”、s a d l 盼”、r a p i d e 乜“、w r i g h t 阻3 等。 此外,研究者还提出了许多形式化的机制,如过程代数( p r o c e s s a l g e b r a ) 、偏序集合( p a r t i a l l yo r d e r e ds e t ) 、化学抽象机( c h e m i c a l a b s t r a c tm a c h i n e ) 等。 在体系结构描述方面,k r u c h t e n 提出的“4 + 1 ”模型是当前软件 体系结构描述的一个经典范例,该模型由逻辑视图、开发视图、过程 硕士学位论文 视图和物理视图组成,并通过场景将这4 个视图有机地结合起来,比 较细致地描述了需求和体系结构之间的关系。而b o o c h 则从u m l 的 角度给出了一种由设计视图、过程视图、实现视图和部署视图,再加 上一个用例视图构成的体系结构描述模型。 2 ) 体系结构分析与验证 体系结构分析与验证研究如何将软件的非功能特性转化为体系 结构的需求,如何分析体系结构是否满足期望的需求属性,对体系结 构的语法、语义、类型匹配等进行检查与验证的研究,建立评价软件 体系结构的方法。 3 ) 体系结构复用 体系结构复用属于设计复用,比代码复用更抽象。由于软件体系 结构是系统的高层抽象,反映了系统的主要组成元素及其交互关系, 因而较算法更稳定,更适合于复用。复用技术作为软件工程领域倡导 的有效技术之一,在基于构件与体系结构的软件开发时代,软件体系 结构复用将是一个重要的主题。 4 ) 特定领域的体系结构 在一个领域中,不同系统及同一系统的不同版本之间在体系结构 上存在相似性,甚至有许多共同的构件,这非常有利于进行软件复用。 特定领域的软件体系结构( d s s a ,d o m a i ns p e c i f i c s o f t w a r e a r c h i t e c t u r e ) 就是针对这一方面的问题的研究。简单地说,d s s a 就是在一个特定应用领域中为一组应用提供组织结构参考的标准软 件体系结构。 5 ) 基于体系结构的开发方法 本质上,软件体系结构是对软件需求的一种抽象解决方案。在引 入了体系结构的软件开发之后,应用系统的构造过程变为“问题定义 一软件需求一软件体系结构一软件设计一软件实现”,可以认为软件 体系结构架起了软件需求与软件设计之间的一座桥梁。而在由软件体 系结构到实现的过程中,借助一定的中间件技术与软件总线技术,软 件体系结构将易于映射成相应的实现。b a s s 等人提出了种基于体系 基于u m l 和z 的需求分析到软件体系结构的映射研究 结构的软件开发过程乜5 1 。而文献。们则提出了基于体系结构的开发模型 中软件体系结构的生命周期模型,文献3 讨论了一种以6 个体系结构 视图为中心的软件开发方式。 对于软件体系结构发展趋势,在2 0 0 0 年i f i p 世界计算机大会主题 演讲中,p e r r y 认为软件体系结构最为重要的3 个研究方向时:体系结 构风格、体系结构连接件和动态软件体系结构。c e l e m e n t s 的预测是, 软件体系结构研究在未来的5 - 1 0 年内将围绕5 个方向展开:体系结构 创建与选择、体系结构表示、体系结构分析、基于体系结构开发和体 系结构演化。 2 2 需求工程 随着软件系统规模的扩大j 需求分析与定义在整个软件开发与维 护过程中越来越重要,直接关系到软件的成功与否。2 0 世纪8 0 年代 中期,形成了软件工程的子领域一一需求工程( r e q u i r e m e n t e n g i n e e r i n g ,r e ) 。需求工程是指应用已证实有效的技术、方法 进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系 统的所有外部特征的一门学科。需求工程是一个不断反复的需求定 义、文档记录、需求演进的过程,可以把需求工程的活动划分为以下 三个阶段:需求分析,需求表示,需求验证与管理。 2 2 1 需求分析 需求分析,就是通过与用户的交流,对现有系统的观察以及对任 务进行分析,从而开发、捕获和修订用户的需求。首先要调查清楚用 户的实际要求,与用户达成共识,然后进一步分析与表达这些需求, 常见的需求分析方法有:结构化方法和面向对象方法。 结构化方法s a s d ( s t r u c t u r e da n a l y s i s s t r u c t u r e dd e s i g n ) 用数据流图来描述需求。数据流图是一种用来表示信息流程和信息变 换过程的图解方法,它把系统看成是由数据流联系的各种功能的组 硕士学位论文 合,通过每种功能的输入数据输出结果,进而表示现有系统或待开 发系统的功能。结构化分析方法的实质就是采用一组分层数据流图及 相应的数据字典作为系统模型。 面向对象技术0 0 ( o b j e c to r i e n t e d ) 是软件技术的一次革命, 在软件开发史上具有里程碑的意义。其中,影响较大并在实践中得到 认可的面向对象的软件开发方法,先后有对象模型技术o m t ( o b j e c t m o d e l i n gt e c h n i q u e ) 方法、u m l 方法等。其中,u m l 方法近年来发 展迅速,本文所采用的映射方法也是基于u l l l 。 2 2 2 需求表示 无论需求从何而来,也不管是怎样得到的,最终需要把从用户那 儿获得的需求表达出来,以文本、图、表或者形式化的数学描述等形 式对需求进行说明,形成需求规格说明。面对不同的需求对象,产生 了多种需求规格说明方法,它们针对不同的对象发挥了较好的作用, 到目前为止,尚无一种能“包治百病”的方法,从方法的特点来分, 有形式化、非形式化的以及基于知识表示的需求分析和规格说明技 术,而u m l 是一种目前很流行的半形式化的需求分析和规格说明方 法,u m l 在很大程度上能做到精确无二义,但是并非是严格的形式化 方法。 2 2 3 需求验证与管理 需求验证( r e q u i r e m e n tv e r i f i c a t i o n ) 是指以需求规格说明为 输入,通过符号执行、模拟或快速原型等途径,分析需求规格的正确 性和可靠性。对需求进行验证是为了确保需求说明准确、完整地表达 必要的用户的各方面要求。需求验证的一般步骤为:审查需求文档, 以需求为依据编写测试用例,编写用户手册,确定合格的标准。 没有良好的需求验证,就不可能有成功的开发,只有不断反复地 把用户真实需求反映到系统中,才算有效地掌握了用户的需求,实现 基于u m l 和z 的需求分析到软件体系结构的映射研究 了用户的要求。只有经过需求验证,才能确认需求的真实性和准确性, 一旦发现需求存在不一致性或问题,那就必须对需求进行更正,有时 候往往是反复多次的过程,因此,我们还需要对需求进行管理。 需求管理( r e q u i r e m e n tm a n a g e m e n t ) 是指软件开发人员、用户 发现遗漏、错误或是不切合实际的需求时往往必须做相应的更改,以 及采用一定的管理措施来保证需求与目标软件系统的一致性和正确 性的行为。 2 3 统一建模语言u m l 2 3 1u m l 简介 1 ) u m l 的起源、发展 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 是一种定义良好、易于表达、功能强大且普遍适用的建模语言, 它溶入了软件工程领域的新思想、新方法和新技术,它的作用域不限 于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的 全过程。 2 ) u m l 的内容 首先,u m l 融合了b o o c h ,o m t 和o o s e 方法中的基本概念,而且 这些基本概念与其他面向对象技术中的基本概念大多相同:其次,u m l 不是上述方法的简单汇合,u m l 扩展了现有方法的应用范围;第三, u m l 是标准的建模语言,而不是标准的开发过程。 从应用的角度看,当采用面向对象技术设计系统时,首先是描述 需求;其次,根据需求建立系统的静态模型,以构造系统的结构;第 三步是描述系统的行为。其中在第一步与第二步中所建模型都是静态 的,包括用例图、类图( 包含包) 、对象图、构件图和配置图,是u m l 的静态建模机制。其中第三步中所建模型或者可以执行,或者表示执 硕士学位论文 行时的时序状态或交互关系,包括状态图、活动图、顺序图和协作图, 是u m l 的动态建模机制。 因此,u m l 的主要内容可以归纳为静态建模机制和动态建模机制 两大类。 2 3 2u m l 的静态建模机制 任何建模语言都以静态建模机制为基础,1 2 , 1 l 也不例外。u m l 的 静态建模机制包括用例图、类图、对象图、包图、构件图和配置图。 用例图的基本组成部分是角色、用例和系统。类图描述类和类之 间的静态关系。对象图可看作类图的一个实例。包图主要显示类的包 以及这些包之间的依赖关系。构件图则显示软件构件之间的依赖关 系。配置图描述了系统硬件的物理拓扑结构以及在此结构上执行的软 件。 2 3 3u m l 的动态建模机制 通过u m l 语言的静态建模机制的对系统进行建模,反应的是系统 的静态模型,在整个系统的运行周期内都不会改变的,也是系统的结 构信息的基础。但是仅仅对系统进行静态建模是不够的,还需要动态 建模来反映系统运行阶段的系统行为,以及系统的各个组件是如何进 行交互的。 状态图用来描述一个特定对象的所有可能状态及其引起状态转 移的事件。顺序图用来描述对象之间动态的交互关系,着重体现对象 间消息传递的时间顺序。合作图用于描述相互合作的对象间的交互关 系和链接关系。虽然顺序图和合作图都用来描述对象间的交互关系, 但侧重点不一样。顺序图着重体现交互的时间顺序,合作图则着重体 现交互对象间的静态链接关系。活动图是由状态图变化而来的,它依 据对象状态的变化来捕获动作与动作的结果,活动图中一个活动结束 后将立即进入下一个活动。 基于u m l 和z 的需求分析到软件体系结构的映射研究 2 4 形式化方法和z 语言 形式化方法能产生严密、精确的规格说明。为软件开发提供严格 的数学基础:z 语言是一种常用的形式化语言,在工业界和学术界得 到了广泛的应用,曾被称为“软件工程语言”。 2 4 1 形式化方法 所谓形式化方法( f o r m a lm e t h o d ) 溉“,是指建立在严格数学基 础上的软件开发方法。其中,逻辑、代数、自动机、图论等构成了形 式化方法的数学基础口“。对形式化方法的研究虽己开展几十年,至 今并无一个精确而统一的定义。可以说,凡是采用严格的数学工具、 具有精确数学语义的方法,都可称为形式化方法。其目的是希望能使 软件系统具有较高的可信度和正确性,并能使系统具有良好的结构、 易维护、能较好地满足用户要求。 形式化方法。最早可追溯到2 0 世纪5 0 年代后期对于程序设计 语言编译技术的研究,即j b a c k u s 提出b n f 描述a l g o l6 0 语言 的语法,出现了各种语法分析程序自动生成器以及语法制导的编译方 法,使得编译系统的开发从“手工艺制作方式”发展成具有牢固理论 基础的系统方法。形式化方法的研究高潮始于2 0 世纪6 0 年代后期, 针对当时所谓“软件危机”,人们提出种种解决方法,归纳起来有两 类:一是采用工程方法来组织、管理软件的开发过程;二是深入探讨 程序和程序开发过程的规律,建立严密的理论,以期能用来指导软件 开发实践。前者导致“软件工程”的出现和发展,后者则推动了形式 化方法的深入研究。 经过3 0 多年的研究和应用,如今人们在形式化方法这一领域取 得了大量重要的成果,从早期最简单的形式化方法一一阶谓词演算 方法到现在的应用于不同领域、不同阶段的基于逻辑、状态机、网络、 进程代数、代数等众多形式化方法。形式化方法的发展趋势是逐渐融 硕士学位论文 入软件开发过程的各个阶段,从需求分析、功能描述( 规约) 、一( 体系 结构算法) 设计、编程、测试直至维护呻1 。 形式化方法可以分为形式规范方法和形式验证方法两大类,形式 规范是对程序“做什么”( w h a tt od o ) 的数学描述,用具有精确语 义的形式语言书写的程序功能描述,是设计和编制程序的出发点,是 验证程序是否正确的依据。形式验证指的是使用严格的数学方法来推 理验证产品或设计是否符合其全部或部分规范的过程,形式验证要求 产品的规范和实现均要有严格的形式化描述。 2 4 2z 语言 z 语言蚓是7 0 年代末至8 0 年代初由英国o x f o r d 大学程序研究 小组p r g ( p r o g r a m m i n gr e s e a r c hg r o u p ) 的j e a nr a y m o n da b r i a l 、 b e r n a r ds u f r i n 等人设计的。z 语言具有“状态一操作”风格,它以 一阶谓词逻辑和集合论为基础,利用集合、关系、函数、序列和包等 数学概念,使用状态模式和操作模式对目标系统的状态和行为进行说 明,具有简明和精确的特点,z 语言在工业界和学术界得到了广泛的 应用,曾被称为“软件工程语言”。 z 的一个重要的特征就是类型化,即z 是一个类型化的语言。类 型系统要求,在z 中,任何一个新的变量在被使用以前必须以一个类 型声明之,类型决定了变量可取值的范围。而且,不仅变量有类型, 每一个表达式,如集合等也一定有一个类型。z 的类型是一个给定集 合的名字,或是由简单的类型使用一个或多个类型构造符构造出来的 复合类型。基本类型是z 的类型系统的重要组成部分,对基本类型重 复使用类型构造符,可构造出其他的幂集、笛卡尔积、序列、包等复 合类型。 模式是用来书写形式规格说明的基本结构,这种结构具有较强的 描述软件系统的抽象状态和操作的功能。一个模式由一些变量的声明 和限制这些变量的值的谓词两部分组成,即:模式= 声明+ 谓词。声明 基于u m l 和z 的需求分析到软件体系结构的映射研究 部分引入变量,谓词部分表示了关于变量的值的要求。模式有水平和 垂直两种形式。 水平形式: s c h e m a _ n a m e 皇s c h e m a _ e x p 垂直形式: 这两种形式引入了一个模式名s c h e m an a m e 。“兰”是定义符号, 模式名或出现在定义符号的左边或垂直方式模式框的顶端线中。在垂 直方式的模式中,中间的横线上面是声明部分,横线下面的是谓词部 分。在水平方式中,定义符号右边是一个模式表达式。模式的垂直形 式的可理解性和可读性更强,在大多数情况下,人们喜欢使用这种形 式。 在后续工作中,将要用到z 语言中的一些符号,现对z 中常用的 符号及约定说明如下: 表2 - 1 集合 语法表达式语义描述 s 被申明为x 的集合 s :px s 被申明为x 的有限集 s :fx sct s 是t 的子集 suts 和t 的并 s n ts 和t 的交 s rs 和t 的差 x s x 是s 中的成员 x 芒sx 不是s 中的成员 n 自然数集:0 ,1 ,2 z整数集:一2 ,一1 ,0 。1 ,2 , o空集:不包含任何成员 硕士学位论文 表2 - 2 函数 语法表达示 语义描述 ,:x _ y ,被申明为x 到y 的映射 ,:x 恃y,被申明为x 到y 的部分映射 ,:x 卜 y,被申明为x 到y 的入射 ,:x 恃y,被申明为x 到y 的部分入射 ,:x 善y,被申明为x 到y 的满射 _ ,:x * y ,被申明为x 到y 的部分满射 ,:x h y ,被申明为x 到y 的双射 ,:x h “,被申明为x 到y 的部分双射 d o m | 厂的定义域 一 r a n ,的值域 表2 - 3 逻辑 语法表达式 语义描述 定义符,表示“是”或者“等于” 定义符,表示“是”或者“等于” 定义符,表示“等价于” 用在某个s c h e m a 前,表示s c h e m a 中的成分在操作 o 中没有改变 用在某个s c h e m a 前,表示执行s c h e m a 后功能不发 a 生变化 用在某个s c h e m a 前,表示执行s c h e m a 后功能发生 变化 表2 - 4 其它 语法表达式语义描述 9 用在变量名之前,表示此变量是输入变量 用在变量名之前,表示此变量是输出变量 表示输出 表示笛卡尔乘积 了 存在量词 v 全称量词 # 表示集合的基数,即集合中元素的个数 日 用在某个函数前,对函数定义域进行限制 争 用在某个函数前,对函数值域进行限制 1 6 基于u m l 和z 的需求分析到软件体系结构的映射研究 第三章基于u m l 和z 的需求分析到软件体系结构的映射 需求工程和体系结构的设计是软件开发中两个关键活动。需求工 程主要关心软件系统的责任,应用已证实有效的技术、方法来得到一 个正确、一致并且无二义的需求规约。软件体系结构是软件系统的高 层抽象,描述整个系统的结构和行为模型,标识了主要的系统构件 ( c o m p o n e n t ) 、构件之间的交互连接件( c o n n e c t o r ) ,以及构件 和连接件如何结合在一起的约束与配置关系。作为两个独立的领域, 需求工程和软件体系结构都已经较为成熟,但是它们之间还存在巨大 的鸿沟,譬如,如何从需求分析来得到系统的高层体系结构,以及如 何确定一个给定的体系结构是否满足功能性和非功能型的需求,这就 需要我们解决从需求分析到软件体系结构的映射问题。 3 1 传统的映射方法 回顾软件开发方法学的发展,不难发现保持需求和设计之间概念 的可追踪性和一致性一直是软件工程人员追求的目标。两个主要的软 件开发方法,结构化方法和面向对象方法,都提供了从需求模型到设 计模型的映射方案。 在结构化方法中,软件需求用数据流图( d a t af l o wd i a g r a m ,d f d ) 来描述,而设计则用模块结构图( m o d u l es t r u c t u r ec h a r t ,m s c ) 来 描述。d f d 和m s c 的基本概念和原则存在着明显的差异,结构化分析 的结果数据流图d f d

温馨提示

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

评论

0/150

提交评论