




已阅读5页,还剩130页未读, 继续免费阅读
(电力电子与电力传动专业论文)基于构件的软件形式化开发方法研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
h b st f a c t t i t l e :r e s e a r c ha n da p p l i c a t l o no ff o r m a lm e t h o df o r s o f t w a r ed e v e l o p m e n tb a s e do nc o m p o n e n t s m a j o r :p o w e re l e c t r o n i c sa n de l e c t r i cd r i v e n a m e - q u a n z h uy a o s u p e r v i s o r - p r o f d u w uc u i a b s t r a c t s i g n a t u r e :纽物础( l, s i g n a t u r e :瞄盘竺二 i th a sb e e na ni m p o r t a n ti s s u ef a c i n gt h ed e v e l o p m e n to fm i sa sh o wt oq u i c k l ya n d s u c c e s s f u l l yd e v e l o p s o f t w a r es a t i s f y i n gt h er e q u i r e m e n to fe n t e r p r i s e s ,w h i c h h a ss u c h f l e x i b i l i t ya sc a na d a p tt ot h ec h a n g e s o ft h eo r g a n i z a t i o na n db u s i n e s sp r o c e s s t oo v e r c o m et h ed i s a d v a n t a g e so ft h ec u r r e n td e v e l o p m e n tm e t h o d s ,t h i sd i s s e r t a t i o nd e e p l y s t u d i e dc o m p o n e n tr e u s ea n dx m l ;w i t hac o m b i n a t i o no fc o m p o n e n tt e c h n o l o g y a n dx m la n d b a s e do nf o r m a ld e v e l o p m e n tm e t h o d ,t h i sw o r kp r e s e n t saf o r m a ld e v e l o p m e n tm e t h o dm o d e l f o rm i sb a s e do nc o m p o n e n t s i nr e g a r dt ot h ei n c o m p l e t e n e s so fr e q u i r e m e n ta n a l y s i si ns o f t w a r ed e v e l o p m e n t ,w h i c h b r i n g sa m b i g u i t ya n do t h e rp r o b l e m s ,w ep r o p o s et h ep r o c e d u r e sf o r f o r m a lr e q u i r e m e n t a n a l y s i st oe f f e c t i v e l ye l i m i n a t et h ea m b i g u i t yi nr e q u i r e m e n ta n a l y s i sa n di n c o n s i s t e n c y f o rt h e d i s a d v a n t a g eo fp o o ra d a p t a b i l i t yo ft h ec u r r e n ti n f o r m a t i o ns y s t e m s ,w ep r o p o s e ac o m p o n e n t l i b r a r ym a n a g e m e n tf r a m e w o r kb a s e do nc o m p o n e n t sa n dx m l ,a n da ni n f o r m a t i o ns y s t e m i n t e g r a t i o np l a t f o r m t h ef r a m e w o r ke n a b l e ss l o ta s s e m b l yf o rc o m p o n e n tb a s e di n f o r m a t i o n s y s t e m ;s y s t e m sb u i l tu n d e rt h ef r a m e w o r kh a v es t r o n gf l e x i b i l i t ya n ds c a l a b i l i t y , a n dc a n a d a p t t ot h ea d j u s t m e n to fe n t e r p r i s eo r g a n i z a t i o na n da r er e a d yf o rr e o r g a n i z a t i o n i no r d e rt oi m p r o v e t h ee f f i c i e n c yf o rc o m p o n e n tr e t r i e v a l ,w ep r o p o s eam e t h o db a s e do nc a s er e a s o n i n g ;a n di n r e g a r dt ot h er e t r i e v a lb yt r e em a t c h i n g ,w ep r o p o s ep a t hi n d e x i n ga l g o r i t h m t h es e a m l e s s i n t e g r a t i o no ft h em e t h o dw i t hi n v e r s e l yi n d e x i n gd o c u m e n t se n a b l e sad o u b l ei n d e x i n go f c o n t e n t sa n ds t r u c t u r ef o rx m ld o c u m e n t s ,w h i c hg r e a t l yi m p r o v e sr e t r i e v a le f f i c i e n c y a sf o r t h ep a t t e r nm a t c h i n gf o rc o m p o n e n tr e t r i e v a la n dr e t r i e v a lo fc o m p r e s s e dd o c u m e n t s ,w e p r o p o s et ou s es t r i n gb t r e et os o l v ep a r a m e t e r i z e dp a t t e mm a t c h i n ga n d a ne f f i c i e n ts e a r c h i n g a l g o r i t h mb a s e do nb wc o n v e r s i o n ,w h i c hs o l v et h ep a r a m e t e r i z e dp a t t e r nm a t c h i n ga n d r e t r i e v a li nc o m p r e s s e dc o m p o n e n tl i b r a r y i na d d i t i o n ,w ep r o p o s ed y n a m i cm e n ui n t e g r a t i o n f o ri n f o r m a t i o ns y s t e m sa n dr o l eb a s e da u t h o r i z a t i o n t a k i n gt h ee l e c t r i cp o w e ri n f o r m a t i o ns y s t e mo fac e r t a i ne n t e r p r i s e a se x a m p l e ,a n d l 西安理工大学博士学位论文 a p p l y i n gt h ep r o p o s e dd e v e l o p m e n tm o d e l ,w eb u i l dd y n a m i ci n t e g r a t i o nf r a m e w o r kp l a t f o r m f o rt h ee l e c t r i cp o w e r m a r k e t i n gi n f o r m a t i o ns y s t e m ,w h i c hd e m o n s t r a t e st h ee f f e c t i v e n e s sa n d e f f e c t i v eo ft h ep r o p o s e dm e t h o d k e yw o r d s :f o r m a lm e t h o d ,c o m p o n e n tr e t r i e v a l ,x m l ,f u z z ym a p p i n g ,i n f o r m a t i o nf a m i l y t h i sr e s e a r c hi s s u p p o r t e db yt h es h a a n x in a t u r a ls c i e n c ef u n d s ( 2 0 01x 2 0 ) a n ds h a a n x i e d u c a t i o nb u r e a us p e c i a lf u n d s ( 01j k 2 2 7 ) i i 独创+ i 性声明 秉承祖国优良道德传统和学校的严谨学风郑重申明毫席人所呈交的学位论文是我 个人在导师指导卞进行的研究i 作及取得的成桑想我所知:5 除特别加以标注和致谢 的地方外,论文中不包含其他人的研究成果;:与我同工作的同志对本文所研究的毒 作和成果的任何贡献均已在论文中作了明确的说明并已致谢0 ,: , : 4 ,o 。,、,。 ,一。一7 。一 本论文及其相关资料若有不实之处,i 由本人承担0 切相关责任 论交作毒签名;j 椭砂解绷矽再 学位论文使用授权声明 本奎驱舷雅在导师的指导下创作完成毕业论文- 本人已通过论文的答辩, 并已经在西安理工大学申请博士:硕士学位,本人作为学位论文著作权拥有者;同意 授权西安理工大学拥有学位论文的部分使用权,即 。重邑获学位的研究生按学校规定 提交印刷版和电子版学位论文,f 学校可以采用影印,、缩印或其他复制手段保存研究生 生交的学位论文一可以将学位论文的全部或部分内容编入有关数据库进行检索;7 2 ) 为 教学和科研目的,学校可以将公开的学位论文或解密后的学位论文作为资料在图书馆、 资料宽等场所或在校园网上供校内师生阅读、浏览。 本人学位论文全部或部分内容的公布( 包括刊登) 授权西安理工大学研究生部办 理: ( 保密的学位论文在解密后_ i 适用本授权 诊文作者签名卜二奂阳唪;导师签名 乃年多月i 旧 i 概述 1 概述 1 1 引言 随着计算机技术的发展,计算机技术在电力电子行业的应用日益广泛。近年来电子电 路设计自动化( e l e c t r o n i cd e s i g na u t o m a t i o n ,e d a ) 已经渗入到电子电路设计的各个领 域,例如原理图设计,逻辑或模拟电路仿真,优化设计,最坏条件分析,印刷电路板设计 等,以及专用于电子电路设计的工程数据库系统,电力电子企业的信息系统等。在电力电 子系统的计算机软件无论是用于模拟还是用于实时通信与控制,都要求系统适应性强,安 全可靠。然而,随着软件系统的结构越来越复杂,规模越来越庞大,复杂程度越来越高,软 件出现错误的可能性及其造成的危害也日益突出,由于软件错误而导致灾难性后果的报道 屡见不鲜。软件是否可信赖已成为国家经济与国防等系统能否正常运转的关键因素之一, 尤其在一些安全悠关生死存亡的重大领域更是如此。遗憾的是,软件的设计与生产至今还 缺乏坚实的科学基础和成熟的方法学,还没有令人信服的办法能够论证或确认一个复杂 软件系统是高度可靠、安全的,软件的质量问题也始终没有得到圆满的解决,用户需求往 往得不到满足。可以说,计算机软件技术已成为计算机应用的瓶颈,软件危机正在继续。 软件领域存在的这种深层次的问题已经引起西方发达国家尤其是美国政府和计算机 专家的高度重视:美国总统信息技术顾问委员会( p i t a c ) 于1 9 9 9 年向白宫递交一份报告, 认为美国“依赖于脆弱的软件”,“缺乏构造可靠安全软件的技术”。其主要建议是“把 软件基础研究列为绝对优先”;美国国防高等研究规划局资助的“f o r m a lm e t h o d s ”计划, 重点支持对高可信软件系统的原理和相应支撑工具的探索;美国国家宇航局于1 9 9 5 年7 月和1 9 9 7 年5 月先后发布了形式化方法规范和验证指南;美国国家自然科学基金会 在2 0 0 0 年财政年度启动了至今为止规模最大的研究计划“i n f o r m a t i o nt e c h n o l o g y r e s e a r c h ”,强调利用验证和形式化方法来保证系统行为的正确可靠;美国国家科学技术 委员会2 0 0 1 年发表了“i n f o r m a t i o nt e c h n o l o g y :t h e2 1 s tc e n t u r yr e v o l u t i o n ”蓝 皮书。 我国也对软件开发方法的研究极为重视,在2 0 0 6 年将形式化需求分析方法列为国家 自然科学基金优先支持的方向,将可信软件基础研究列为2 0 0 7 年度的重大研究计划。在 i t 技术应用方面,国家发改委多次要求企业用信息化技术对传统产业进行改造。另一方 面,近年来基于构件的软件复用技术作为一种提高软件生产率和软件质量的有效途径成为 软件工程学科研究的重点之一,被认为是继面向对象技术之后的一个新的技术热潮“1 , 软件体系结构( s a ) 、基于构件的软件开发技术( c b s d ) 等开始在软件开发中发挥出重要 作用。人们也力求用形式化的方法来规范和促进可信的基于构件的软件开发。 那么常用的软件开发方法有哪些,各有什么优缺点? 基于构件的软件开发方法研究现 状如何,还有哪些问题需要解决? 将在下边的章节中分别予以叙述。 西安理工大学博士学位论丈 1 2 软件开发的主要模型 为了克服软件危机,人们不断总结、提出了很多实际的软件开发模型和开发方法,比 如:瀑布模型、原型开发模型、螺旋模型、面向对象生存期模型等等。这些依次提出的模 型都是针对当时现有模型的缺点提出的,然而“在软件开发过程中没办法绝对地判断一 个方法比另一个方法好”,f o w l e r 表示,“因此我们不妨在两种方法中寻找最好的过程中 让竞争与合作同时存在多元化体系往往能起到最好结果。”3 1 软件教父m a r t i nf o w l e r 的说法反映了软件开发模式不确定性的同时,也暗示了未来的发展方向,即在人与过程中 寻找最佳平衡。本节将就目前比较流行的软件开发模型和方法予以讨论,说明各自的优 缺点。 1 2 1 软件过程模型 在软件开发过程中,一个软件工程师或一组工程师必须综合出一个开发策略。这个策 略包括如何构造软件的技术( 方法) ;支持软件分析、设计和实现的语言;为方法和语言 提供自动化或半自动化支持的工具;以及把方法、语言和工具黏结在一起的工具。这个策 略常常被称为过程模型或软件工程范例“1 。软件工程过程模型的选择是基于项目和应用 的特点、采用的方法和工具以及需要的控制和交付的产品。 人们提出了多个不同的软件工程过程模型,其中每一个都代表了一种将本质上无序的 活动而有序化的企图。这里的每个模型都能够有效帮助软件开发中的控制及协调工作。 1 2 2 瀑布模型( 生命周期方法) 软件工程的传统途径是生命周期方法学( 线性顺序模型) 。它是从时间角度对软件开 发和维护的复杂问题进行分解,把软件生命的漫长周期依次划分为若干个阶段( 问题定义、 可行性研究、需求分析、概要设计、详细设计、编码与单元测试、综合测试、使用与维护、 淘汰等9 个阶段) ,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。以控制 开发工作的复杂性,通过有限的确定步骤,把用户需求从抽象的逻辑概念逐步转化为具体 的物理实现。 这种传统的软件生命周期方法( 也称为软件开发的瀑布模型) 中每个阶段完成一定的 工作,且有一个里程碑。例如在问题定义阶段的工作就是确定“要解决的问题是什么? ”, 其成果为关于规模和目标的报告书;在可行性研究阶段的工作是分析“此问题有可行的解 吗? ”,其成果为系统的高层逻辑模型( 数据流图) 和成本效益分析报告 其缺点在于:对于初次进行软件开发的人来说,最容易犯的错误就是急于求成,不愿 意仔细的去做前期工作,过早的动手编写程序。结果经常出现所开发的程序在功能上或者 性能上满足不了用户的要求;或者所开发的系统对运行环境要求很高,无法投入实际运行; 或者所开发的系统文档不规范,程序的可读性差,模块的独立性差等。一旦用户需求或支 2 1 概述 撑平台或维护人员发生变化,系统便无法修改、导致大量返工或过早地结束生命周期。 1 2 3 原型模型 产生原型化方法的原因很多,主要是随着系统开发经验的增多,软件开发人员也发现 并非所有的需求都能够预先定义,而反复修改是不可避免的。当然能够采用原型化方法还 是因为开发工具的快速发展,比如用c 群,v b ,p o w e r b u i l d e r , d e l p h i 等工具,就可以迅速 的开发出一个可以让用户看得见、摸得着的系统框架。这样,对于计算机不是很熟悉的用 户就可以根据这个样板提出自己的需求。历史上曾经形成了实现原型法的两种途径: 抛弃原型法其目的是要评价目标系统的某些特性、以便更准确的定义需求,使用之 后就把这种原型抛弃掉; 演化原型法演化原型法是一个多次迭代的过程,每次迭代都由以下几个阶段组成: ( 1 ) 确定用户需求 ( 2 ) 开发原始模型( 快速设计、建立原型) ( 3 ) 征求用户对初始原型的改进意见 ( 4 ) 修改原型。 原型化开发比较适合于用户需求不很清楚、业务不确定、需求经常变化的情况。当系 统规模不是很大也不太复杂时采用该方法是比较好的。原型法在使用过程中要解决的问题 如下: ( 1 ) 用户看到的是一个可运行的软件版本,但不知道这个原型是临时搭建起来的,也 不知道为了使其尽快运行,还没有考虑软件的整体质量及今后的可维护性问题。用户往往 会认为此系统只要经过小的调整即可投入使用,软件开发管理者可能也就不坚持质量原则 了。 ( 2 ) 为使原型系统尽快投入运行,开发人员经常采用一些折衷的解决方法。如使用一 些不当的操作系统或编程语言,仅仅因为他们对此比较熟悉和可以得到;采用一些效率不 高的算法,仅仅用来证明算法是否可行。但经过一段时问,开发人员可能熟悉了自己的这 些选择,却忘掉了他们为什么不适当的原因。这些不明智的选择很可能就成了系统集成的 一部分。 1 2 4r a d 模型 快速应用开发( r a d ) 是一个线性顺序的软件开发模型,强调极短的开发周期。r a d 模型是线性顺序模型的一个“高速 变种,通过使用基于构件的建造方法获得了快速开发。 如果需求理解得很好,且约束了项目范围,r , m 9 过程使得个开发组能够在很短时间内 ( 如6 0 至9 0 天) 创建出“功能完善的系统 1 。黜如方法主要用于信息系统应用软件 的开发,它包含如下几个开发阶段: 业务建模:业务活动中的信息流被模型化,以回答如下问题:什么信息驱动业务流程? 西安理工大学博士学位论文 生成什么信息? 谁生成该信息? 该信息流往何处? 谁处理它? 数据建模:业务建模阶段定义的一部分信息流被精化,形成一组支持该业务所需的数 据对象。标识出每个对象的特征( 称为属性) ,并定义这些对象间的关系。 处理建模:数据建模阶段定义的数据对象变换成为要完成一个业务功能所需的信息 流。创建处理描述以便增加、修改、删除或获取某个数据对象。 应用生成:r a d 假设使用第四代技术。r a d 过程不是采用传统的第三代程序设计语 言来创建软件,而是复用已有的程序构件( 如果可能的话) 或是创建可复用的构件( 如果 需要的话) 。在所有情况下,均使用自动化工具辅助软件建造。 测试及反复:因为r a d 过程强调复用,许多程序构件已经是测试过的,这减少了测 试时间。但新构件必须测试,所有接口也必须测到。 像所有其他过程模型一样,r a d 方法也有其缺陷: ( 1 ) 对于大型的、但可伸缩的项目,r a d 需要足够的人力资源以创建足够的r a d 组。 ( 2 ) r a d 要求承担必要的快速活动的开发者和用户在一个很短的时间框架下完成一 个系统。如果两方中的任何一方没有完成约定,都会导致r a d 项目失败。 并非所有软件都适合使用r a d 。如果一个系统难以被适当地模块化、那么建造r a d 所需的构件就会有问题;如果高性能是一个指标,且该指标必须通过调整接口使其适应系 统构件才能赢得,r a d 方法就有可能失败了;r a d 不适合技术风险很高的情况,当一个 新应用要采用很多新技术,或当新软件要求与已有计算机程序有高度可互操作性时,这种 情况就会发生。 1 2 5 演化软件过程模型 演化模型是利用一种迭代的思想方法,它的特征是使软件工程师渐进地开发,逐步完 善软件版本。演化模型可细分为以下几个类型: a 增量模型 增量模型融合了线性顺序模型的基本成分( 重复的应用) 和原形的迭代特征,它采用 随着日程时间的进展而交错的线性序列。每一个线性序列产生软件的一个可发布的“增量 【6 】 当使用增量模型时,第一个增量往往是核心的产品,即实现了基本的需求,但很多补 充的特性( 其中一些是已知的,另外一些是未知的) 还没有发布。核心产品交用户使用( 或 进行更详细的复审) ,使用和或评估的结果是下一个增量的开发计划。该计划包括对核 心产品的修改,使其能更好地满足用户的需要,并发布一些新增的特点和功能。这个过程 在每一个增量发布后不断重复,直到产生最终的完善产品。 增量过程模型,像原型和其它演化方法一样,具有迭代的特征。但与原型不一样之处 是增量模型强调每一个增量均发布一个可操作产品。早期的增量是最终产品的“可拆卸 版本,但它们确实提供了给用户服务的功能,并且提供了给用户评估的平台。 4 1 概述 增量开发是很有用的,尤其是当配备的人员不能在为该项目设定的市场期限之前实现 一个完全的版本时。早期的增量可以由较少的人员实现。如果核心产品很受欢迎,可以增 加新的人手( 如果需要的话) 实现下一个增量。此外,增量能够有计划地管理技术风险, 例如,系统的一个重要部分需要使用正在开发的且发布时间尚未确定的新硬件,有可能计 划在早期的增量中避免使用该硬件,这样,就可以先发布部分功能给用户,以免过分地延 迟系统的问世时间。 缺点是:由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破 坏已构造好的系统部分,这需要软件具备开放式的体系结构;在开发过程中,需求的变化 是不可避免的。增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速 原型模型,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。 b 螺旋模型 螺旋模型,最早是由b o e h m 7 1 提出来的,是一个演化软件过程模型,它将原型的迭 代特征与线性顺序模型中控制的和系统化的方面结合起来,使得软件的增量版本的快速开 发成为可能。在螺旋模型中,软件开发是一系列的增量发布。在早期的迭代中,发布的增 量可能是一个纸上的模型或原型;在以后的迭代中,被开发系统的更加完善的版本逐步产 生。 螺旋模型被划分为若干框架活动,也称任务区域。例如,包含六个任务区域的螺旋模 型的六个任务区域分别为: 用户通信建立开发者和用户之间有效通信所需要的任务。 计划定义资源、进度及其它相关项目信息所需要的任务。 风险分析评估技术的及管理的风险所需要的任务。 工程建立应用的一个或多个表示所需要的任务。 建造及发布建造、测试、安装和提供用户支持( 如文档及培训) 所需要的任务。 用户评估基于在工程阶段产生的或在安装阶段实现的软件表示的评估,获得用 户反馈所需要的任务。 每一个区域均含有一系列适应待开发项目的特点的工作任务。对于较小的项目,工作 任务的数目及其形式化程度均较低。对于较大的、关键的项目,每一个任务区域包含较多 的工作任务,以得到较高级别的形式。 随着演化过程的开始,软件工程项目组按顺时针方向沿螺旋移动,从核心开始。螺旋 的第一圈可能产生产品的规格说明;再下面的螺旋可能用于开发一个原型;随后可能是软 件的更完善的版本。经过计划区域的每一圈是为了对项目计划进行调整,基于从用户评估 得到的反馈,调整费用和进度。此外,项目管理者可以调整完成软件所需计划的迭代次数。 对于大型系统及软件的开发来说,螺旋模型是一个很现实的方法。因为软件随着过程 的进展演化,开发者和用户能够更好地理解和对待每一个演化级别上的风险。螺旋模型使 用原型作为降低风险的机制,但更重要的是,它使开发者在产品演化的任一阶段均可应用 西安理工大学博士学位论文 原型方法。它保持了传统生命周期模型中系统的、阶段性的方法,但将其并进了迭代框架, 更加真实地反映了现实世界。螺旋模型要求在项目的所有阶段直接考虑技术j x l 险,如果应 用得当,能够在风险变成问题之前降低它的危害。 但螺旋模型可能难以使用户相信演化方法是可控的;它需要相当的风险评估专门技 术,且其成功依赖于这种专门技术。如果一个人的风险未被发现和管理,毫无疑问会出现 问题;最后,该模型本身相对比较新,不像线性顺序范型或原型范型那样被广泛应用。这 个新模型的功效有待实践的检验。 c 构件组装模型 用户在开发一个应用软件时:首先进行领域分析,以解决本领域的共性问题,并形成 领域模型;结合非技术因素和软件结构模型进行本系统体系结构( 系统框架) 设计;然后 在基于构件的软件工程理论的指导下从构件库中查找合适的构件并进行构件组装。若构件 库中无合适构件时可以首先考虑购买合适的构件,其次再考虑自行开发;对组装好的构件 进行测试,进而形成应用软件;通过构件更新即可实现系统升级。另一方面,在领域软件 体系结构设计好后,即可进行可重用软件开发,并放入可重用软件制品中心库,供以后使 用。基于构件的软件开发模型见图1 1 构件组装模型导致软件复用,而可复用性给软件工程师提供了大量的可见益处。基于 可复用性的研究,q s m 联合公司的报告称;构建组装降低了7 0 的开发周期时间;8 4 的项目成本;相对于产业平均指数1 6 。9 ,其生产率指数为2 6 。2 。虽然这些结果依赖于构件 库的健壮性,但毫无疑问构件组装模型给软件工程师提供了很多的好处。有关基于构件的 软件开发方法将在后续章节中仔细讨论。 6 图1 - 1 一个支持基于构件的软件过程的模型2 6 f i g 1 一l am o d e ls u p p o r t i n gc o m p o n e n t b a s e ds o f t w a r ep r o c e s s 1 概述 d 并发开发模型 并发开发模型,有时也称并发工程,d a v i d 和s i t a r a m 阳1 是这样描述它的:试图根据 传统生命周期的主要阶段来追踪项目状态的项目管理者是根本不可能了解其项目状态的。 这就是使用过于简单的模型追踪非常复杂的活动的示例。虽然一个项目正处在编码阶段, 但同时可能有一些项目组人员在参与涉及开发的多个阶段的活动,例如,x x x 项目组人 员在写需求、在设计、在编码、在测试和集成测试,所有这些活动,可能在同时进行。 h u m p h r e y 和k e l l n e r 们提出的软件工程过程模型表达了这种任一阶段的活动之问存在的 并发性,即所有活动并发存在,但处于不同的状态。 并发过程模型定义了一系列事件,对于每一个软件工程活动,它们触发从一个状态到 另一个状态的转移。例如,在设计的早期阶段,发现了分析模型中的一个不一致,这产生 了事件“分析模型修改”,该事件触发了分析活动从“开始”状态转移到“等待修改”状 态。 并发过程模型常常被用于作为客户机月艮务器应用的开发范型。一个客户机n 务器系 统由一组功能构件组成。当应用于客户机朋艮务器系统时,并发过程模型在两维上定义活 动n :一个系统维和一个构件维。系统维包含三个活动:设计、组装和使用。构件维包 含两个活动:设计和实现。并发提供两种方式得到:( 1 ) 系统维和构件维活动同时发生, 并能使用上述的面向状态方法建模;( 2 ) 一个典型的客户机n 务器应用系统是通过多个 构件实现的,其中每个构件均可以并发地设计和实现。 e 喷泉模型 喷泉模型是由b h s o l l e r s 和j m e d w a r d s 于1 9 9 0 年提出的一种开发模型,主 要用于采用对象技术的软件开发项目,喷泉一词本身就体现了迭代和无间隙的特性。软件 的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间 隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的界限。由于对象概念 的引入,表达分析、设计、实现等活动只用对象类和关系,从而可以较为容易地实现活动 的迭代和无间隙,使其开发自然地包括复用。 喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后 才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。其优 点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。由于 喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于 项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随 时加入各种信息、需求与资料的情况。 1 2 6 智能模型 智能模型也称为基于知识的软件开发模型,它是知识工程与软件工程在开发模型上结 7 西安理工大学博士学位论文 合的产物。它有别于上述的四种开发模型,并可协助软件开发人员完成开发工作。 图1 2 充分表示了智能模型与其他模型的不同,它的维护并不仅仅在程序一级上进 行,这样把问题的复杂性大为降低,从而可以把精力更加集中于具体描述的表达上,即维 护也在功能规约一级进行。具体描述可以使用形式功能规约,也可以使用知识处理语言描 述等等,因而必须将规则和推理机制应用到开发模型中,所以必须建立知识库,将模型本 身、软件工程知识和特定领域的知识分别存入知识库,由此构成某一领域的软件开发系统。 其缺点是需要4 g l 作为支撑工具,目前只适用于中、小型事务信息系统的开发。 1 2 7 第四代技术 图1 - 2 智能模型 f i g1 - 2i n t e l l i g e n c em o d e l 术语“第四代技术”( 4 g t ) 包含了一系列的软件工具,它们都有一个共同点:能使 软件工程师在较高级别上说明软件的某些特征,之后工具根据开发者的说明自动的生成源 代码。毫无疑问软件在越高的级别上被说明,就能越快的建造出程序。软件工程的4 g t 模型的应用关键在于说明软件的能力它用一种特定的语言来完成或者以一种用户可 以理解的问题描述方法来描述待解决问题的图形来表示。 像其它所有软件工程模型一样,4 g t 模型也有优点和缺点。支持者认为它极大地降 低了软件的开发时间,并显著提高了建造软件的生产率。反对者则认为目前的4 g t 工具 并不比程序设计语言更容易使用,这类工具生成的结果源代码是“低效的 ,况且使用 4 g t 开发的大型软件系统的可维护性是令人怀疑的。 1 2 8 形式化方法模型 形式化方法模型包含了一组活动,它们带来了计算机软件用数学说明描述的方法。这 种方法的一个变种,称为净室软件工程“扪。由于形式化方法能够有效的避免软件需求分 析中的二义性,需求分析的文档能够被直接转化为相应的程序代码,被认为是解决软件危 8 1 概述 机的一条有效途径,目前已被一些软件丌发组织采用。 所谓形式化方法是建立在严格数学基础上的软件开发方法。软件丌发的全过程中,从 需求分析、规格说明、设计、编程、系统集成、测试、文档生成直至维护各阶段,凡是采 用严格的数学语言、具有精确的数学语义的方法称为形式化方法n ,1 3 1 。 上述的形式化方法定义是广义的,本文的工作正是基于广义的形式化定义之上。狭义 的形式化方法可以分为形式规范和形式验证两大类,形式规范方法包括各种基于数学的表 示法,规范语言以及对应的工具。形式验证方法包括各种模型检查器,定理证明器以及证 明和验证的方法等。形式化方法有4 个主要的技术源头:公理方法、模型方法、演算 方法和代数方法。近年来在形式规范语言和表示方面的研究可分为3 类:描述顺序系统行 为的形式规范方法( 维也纳开发方法( v d m ) ,z 方法,b 方法,基于代数的方法( o b j ) ) ; 描述并发系统行为的形式规范方法( 基于进程代数的方法c s p 和c c s ,基于时序逻辑的方 法( t l a ) ) ;集成的形式规范方法( 说明和描述语言s d l ,以及s d l 与u m l 不断融和,成 为软件工程开发的一个主流n ) ,这些研究工作都取得了很大发展。 我国在形式化软件开发方面也作了大量工作,任洪敏等人提出了复合构件和复合接口 的组装推导算法n 钉,为系统行为的形式化分析,验证和仿真奠定了基础。李长云等人基 于高阶多型i i :演算理论1 叫,提出了动态体系结构描述语言,将动态行为从计算行为中分离 出来,显式地、集中地表示,便于体系结构动态逻辑的理解、编写和修改,能够预先推导动 态行为的结果,进行动态体系结构模型的形式化验证、求精和演化。文献【1 7 】中利用范 畴论定义构件之间的关系,使得构件之间的关系以及关系组合具有严格的语义。态射合成 被用来跟踪不同抽象层次的构件之间的关系,利用体系结构设计模式精确地定义构件的组 合关系和应满足的条件。范畴论支持图形化建模,可以使模型中的构件关系以及结构特征 可视化,有利于模型的理解、跟踪和重用。文献【1 8 】对安全协议的形式化分析方法从技 术特点上做了分类和分析,对于安全协议分析技术的发展历史、目前的状况以及将来的 趋势作了总体的介绍和总结。文献【1 9 】给出了电子商务等安全协议形式化分析方法。 形式化方法在工程中也得到了许多应用,例如,文献【2 0 】介绍了在龙芯2 号处理 器的设计开发过程中采用的功能验证流程和主要验证方法。并指出模拟仿真是主要的验证 手段,新的形式化验证方法也应用到了验证流程当中。在文献【1 3 】应用多色集合理论的 个人颜色、统一颜色和递阶结构树建立了产品的概念设计递阶结构信息模型,分析了概念 设计产品信息模型中的三类约束关系,并用统一颜色和元素个人颜色之间的的模块布尔矩 阵对这些约束关系进行了形式化描述,提出了产品概念设计推理过程的形式化方法,实现 了从产品功能需求到方案元表示的可行方案的推理过程,并把推理结果提供给下层设计进 行优选和评估。在文献【2 1 ,2 2 ,2 3 ,2 4 1 中都用形式化方法来指导软件开发。 上述工作表明形式化方法由于具有严格的语义,可避免需求分析中的二义性和潜在错 误,具有广泛的应用前景。但形式化方法既不是灵丹妙药,也不是高质量产品的保证,仅 当形式化方法能合理地应用到相应的领域,形式化方法潜在的益处才能被实现。形式化技 9 西安理工大学博士学位论文 术的成功应用归功于:便于理解和描述的严格、可视规格语言的建立:可用于系统分析、 验证的自动或半自动验证工具的开发。形式化技术的工业应用不仅可以增强所丌发系统的 可靠度,而且可提高系统开发的效率、同时节省系统开发成本。尽管目前已经形成了诸 如组合验证器一p v s 等形式验证方法和工具,但由于软件问题的复杂性,纯粹的形式化方 法可能会因为错误的形式化说明、有缺陷的证明等反而降低程序开发的效率。形式化方法 的另一个缺点是与用户之间的距离较大,开发人员需要掌握较多的形式化工具才能开展工 作。但随着u m l 等可视化建模工具的普及,从u m l 图形向软件体系结构的转化工作也有了 很大进展m ,2 3 2 钆2 钉。本文拟采用形式化的思想来指导软件的开发。 1 3 软件开发方法 在第1 2 节中介绍了常用的软件开发模型,软件开发方法是模型的一个关键元素。方 法提供如何构造软件的技术。包括一组广泛的任务,其中有与项目有关的计算和估算、系 统和软件需求分析、数据结构设计、程序体系结构设计、算法过程、编码、测试和维护等。 实际上软件开发方法是软件开发过程所遵循的办法和步骤,其目的在于有效地得到一些工 作产物,也就是一个运行的系统及其支持文档,并且满足有关的质量要求。 软件开发方法有些是针对某一活动的,属于局部性的软件开发方法;但实践表明,针 对分析和设计活动的软件开发方法更为重要。除此之外,还有覆盖开发全过程的全局性方 法,这也应该给予足够地重视。 那么如何评价一种具体的软件开发方法呢? 一般的说,要看四个方面的特性哪! : ( 1 ) 技术特征:即支持各种技术概念的方法特色,如层次性、抽象性、并行性、安全 性、正确性等,抽象性包括数据抽象和过程抽象。 ( 2 ) 使用特征:即用于具体开发时的有关特色。如易理解性、易转移性、易复用性、 工具的支持、任务范围、使用的广度、活动过渡的可行性、产品的易修改性、对正确性的 支持等。 ( 3 ) 管理特征:即增强对软件开发活动管理的能力方面的特色。如易管理性、支持或 阻碍集体工作的程度、中间阶段的确定、工作产物、配置管理、阶段结束准则、费用估计 等。 ( 4 ) 经济特征:即给软件机构产生的在质量和生产力方面的可见效益。如分析活动的 局部效益、全生存周期效益、获得该开发方法的代价、使用它的代价、管理的代价等。 不管如何评价,在一切方面都好的开发方法并不存在;反之,也没有一种开发方法能 适应于所有软件开发之需。当需要选用一种开发方法时,应考虑如下的几个因素: ( 1 ) 对该开发方法是否已具有经验,或者已有受过训练的人员; ( 2 ) 开发项目进度安排,人员组成情况; ( 3 ) 为开发项目提供的资源如何? 包括软件硬件环境、可能使用的工具; ( 4 ) 计划、组织、管理的可行性; 1 0 1 概述 ( 5 ) 丌发项目的领域知识准备情况。 下面将简略地综述六种开发方法。 1 3 1 模块化方法( m o d u ia rm e t h o d ) 把一个待开发的软件分解成若干较为简单的部分,称为模块( m o d u l e s ) ,每个模块 分别独立地开发、测试,最后再组装出整个软件。这种开发方法是对待复杂事物的“分而 治之”的一般原则在软件工程领域的具体体现,即将软件开发的复杂性在分解过程中降低。 因此系统如何分解成模块和模块设计的规则成为模块化方法的关键。把系统分解成模块, 应遵循以下规则弛 : ( 1 ) 得到最高的模块内聚性,即在一个模块内部有最大程度的关联,只实现单一功能 的模块具有最高的内聚性; ( 2 ) 最低的耦合度,即不同的模块之间的关系尽可能弱; ( 3 ) 模块间用链的深度不可过多,即模块的层次不能过高,一般地说尽量控制在七层 左右: ( 4 ) 接口清晰、信息隐蔽性好; ( 5 ) 模块大小适度,一般不超过6 0 行; ( 6 ) 尽量采用已有的模块,提高模块复用率。 模块化方法的优点是明显的,难点在于如何处理大型复杂的问题,往往会出现难于下 手之处。在分解过程中,从某一角度看,要求隐蔽的信息是这些,换一角度看,却要求隐 蔽的信息是另外一些,因此,最好的办法是几种开发方法结合使用。 1 3 2 结构化方法 结构是指系统内各组成要素之间的相互联系、相互作用的框架。结构化方法就是强调 结构的合理性以及所开发的软件的结构合理性,由此提出了一组提高软件结构合理性的准 则,如分解和抽象、模块的独立性、信息隐蔽等。针对不同的开发活动,它有结构化分析、 结构化设计、结构化编程和结构化测试等4 个阶段。 结构化分析最初是针对普通的数据处理应用而发展起来的。可以追溯到早期m m 公 司提出的“输入一加工一输出 ( 简称d o ) 方法,是作为人工纸上作业的方法( 后来又 演化为层次d o ,即h i p o ) 。这在8 0 年代是较为流行的开发方法。 结构化分析方法给出一组帮助系统分析人员产生功能规约的原理和技术。一般利用图 形表示用户需求,以数据流图和控制流图为基础,伴以数据词典,并配上结构化语言、判 定表和判定树等手段,从而达到为问题的解决建立模型。 西安理工大学博士学位论文 1 3 3 面向数据结构方法 可以说面向数据结构方法是结构化方法的变形,它着重数据结构而不是数据流。应用 领域的信息域一般包括信息流、信息内容和信息结构等部分,在软件需求分析过程中,根 据对信息域分析的侧重点不同,形成不同的开发方法。结构化方法以分析信息流为主,用 数据流图来表示信息流;面向数据结构方法则是从数据结构方面分析,即分析信息结构, 并用数据结构图( 特指该类方法所用的图形描述工具,如j a c k s o n 结构图、w a m i e r 图) 来表示,再在此基础上进行需求分析,导出软件的结构。 面向数据结构的开发方法包括分析和设计活动。由于应用领域的信息一般都有层次分 明
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-河北-河北计算机文字录入处理员五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-河北-河北水工闸门运行工一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-江苏-江苏水生产处理工一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西电工三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西堤灌维护工四级(中级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-广西-广西农机驾驶维修工一级(高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东堤灌维护工三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东工程测量员四级(中级工)历年参考题库含答案解析
- 2020-2025年房地产估价师之估价原理与方法通关考试题库带答案解析
- 2025年驾驶证考试-货车理论考试-货车驾驶证(科目一)历年参考题库典型考点含答案解析
- 老年饮食健康课件
- 2025年湖北省中考道德与法治真题(解析版)
- 小米实体店管理制度
- 2025-2030年中国胃食管反流病行业市场现状供需分析及投资评估规划分析研究报告
- 2025年政府采购与招标投标考试试题及答案
- 2025-2030中国苯丙酮尿症(PKU)行业市场发展趋势与前景展望战略研究报告
- 2025天津经济技术开发区管理委员会招聘雇员(30人)笔试参考题库附带答案详解析集合
- 疲劳恢复物理手段-洞察及研究
- 2025至2030年中国PA10T行业市场竞争态势及未来前景分析报告
- CJ/T 328-2010球墨铸铁复合树脂水箅
- 人教版(2024)七年级下册英语期末复习:主题阅读理解 刷题练习题20篇(含答案解析)
评论
0/150
提交评论