




已阅读5页,还剩59页未读, 继续免费阅读
(计算机应用技术专业论文)软件可靠性设计研究及应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北电力大学硕士学位论文摘要 摘要 针对目前铁路信号监测系统存在的系统开发周期长、成本高,系统性能、 可靠性和稳定性降低,测试和维护工作难度增加等问题进行分析,结合目前 系统的实际需要,在传统可靠性设计方法的基础上,提出基于构件技术的可 靠性设计方法。本文将监测系统的构件模型定义为系统构件层、通用构件层、 专用构件层等层次,并将系统分为服务器端程序、站机程序和终端程序三个 部分。针对各个部分的功能和特点结合构件技术对系统构架进行分析和设 计,在设计过程中体现了基于构件技术的可靠性设计方法具有传统可靠性设 计方法所具有的优点,大大提高了系统可靠性。 关键词:可靠性设计,构件技术,监测系统,系统可靠性 a b s t r a c t a tp r e s e n t ,t h er a i i w a ys i g n a lm o n i t o r i n gs y s t e mn o wh a se n c o u n t e r e ds o m ep r o b l e m sa s f o l l o w s :l o n gd e v e l o p m e n tc y c l e ,h i g hc o s t ,t h el o w e ro fs y s t e mp e r f o r m a n c e ,r e l i a b i l i t ya n d s t a b i l i t y , t h ed i f f i c u l to ft e s t i n ga n dm a j n t e i 怕n c ea n ds oo n , w ea n a l y s i st h e s ep r o b l e m so ft h e s y s t e mi nt h i sp a p e r c o m b i n i n gw i t ht h ea c t u a ln e e d so ft h es y s t e m ,t h ep a p e rp u tf o r w a r d t h e r e l i a b i l i t yd e s i g nm e t h o d so fc o m p o n e n tt e c h n o l o g yb a s eo n t h et r a d i t i o n a lr e l i a b i l i t yd e s i g n m e t h o d t h ec o m p o n e n tm o d e lo ft h em o n i t o r i n gs y s t e mi sd e f i n e da st h es y s t e mc o m p o n e n tl e v e l , t h ec o m p o n e n t - g e n e r a la n dt h es p e c i a lc o m p o n e n t s ,a n dt h es y s t e mi sd i v i d e di n t ot h es e r v e r - s i d e p r o g r a m ,t h el o c a ls t a t i o n sa n dt h et e r m i n a l sp r o c e s sp r o c e d u r e si nt h r e ep a r t s a c c o r d i n gt h e f u n c t i o n sa n dc h a r a c t e r i s t i c so ft h ev a r i o u sp a r t s ,a n a l y s i sa n dd e s i g nt h es y s t e ma r c h i t e c t u r e c o m b i n a t i n gt h ec o m p o n e n tt e c h n o l o g y , i nt h ed e s i g np r o c e s sr e f l e c t st h ea d v a n t a g e so ft h e r e l i a b i l i t yd e s i g nm e t h o d sw h i c hc o m p o n e n t - b a s e dt e c h n o l o g yp r e f e rt ot h et r a d i t i o n a lt e c h n o l o g y , w h i c hg r e a t l ye n h a n c e st h er e l i a b i l i t yo f t h es y s t e m c h e nj i a n j u n ( c o m p u t e ra p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db yp r o f s o n gy u k e yw o r d s :r e l i a b i l i t yd e s i g n ,c o m p o n e n tt e c h n o l o g y , m o n i t o r i n gs y s t e m ,s y s t e m r e l i a b i l i t y 华北电力大学硕士学位论文摘要 摘要 针对目前铁路信号监测系统存在的系统开发周期长、成本高,系统性能、 可靠性和稳定性降低,测试和维护工作难度增加等问题进行分析,结合目前 系统的实际需要,在传统可靠性设计方法的基础上,提出基于构件技术的可 靠性设计方法。本文将监测系统的构件模型定义为系统构件层、通用构件层、 专用构件层等层次,并将系统分为服务器端程序、站机程序和终端程序三个 部分。针对各个部分的功能和特点结合构件技术对系统构架进行分析和设 计,在设计过程中体现了基于构件技术的可靠性设计方法具有传统可靠性设 计方法所具有的优点,大大提高了系统可靠性。 关键词:可靠性设计,构件技术,监测系统,系统可靠性 a b s t r a c t a tp r e s e n t ,t h er a i i w a ys i g n a lm o n i t o r i n gs y s t e mn o wh a se n c o u n t e r e ds o m ep r o b l e m sa s f o l l o w s :l o n gd e v e l o p m e n tc y c l e ,h i g hc o s t ,t h el o w e r o fs y s t e mp e r f o r m a n c e ,r e l i a b i l i t y a n d s t a b i l i t y , t h ed i f f i c u l to ft e s t i n ga n dm a i n t e n a n c ea n ds oo n , w ea n a l y s i st h e s ep r o b l e m so ft h e s y s t e mi nt h i sp a p e r c o m b i n i n gw i t ht h ea c t u a ln e e d so ft h es y s t e m ,t h ep a p e rp u tf o r w a r d t h e r e l i a b i l i t yd e s i g nm e t h o d so fc o m p o n e n tt e c h n o l o g yb a s eo n t h et r a d i t i o n a lr e l i a b i l i t yd e s i g n m e t h o d t h ec o m p o n e n tm o d e lo ft h em o n i t o r i n gs y s t e mi sd e f i n e da st h es y s t e mc o m p o n e n tl e v e l , t h ec o m p o n e n t - g e n e r a la n dt h es p e c i a lc o m p o n e n t s ,a n dt h es y s t e mi sd i v i d e di n t ot h es e r v e r - s i d e p r o g r a m ,t h el o c a ls t a t i o n sa n dt h et e r m i n a l sp r o c e s sp r o c e d u r e si nt h r e ep a r t s a c c o r d i n gt h e f u n c t i o n sa n dc h a r a c t e r i s t i c so ft h ev a r i o u sp a r t s ,a n a l y s i sa n dd e s i g nt h es y s t e ma r c h i t e c t u r e c o m b i n a t i n gt h ec o m p o n e n tt e c h n o l o g y , i nt h ed e s i g np r o c e s sr e f l e c t st h ea d v a n t a g e so ft h e r e l i a b i l i t yd e s i g nm e t h o d sw h i c hc o m p o n e n t - b a s e dt e c h n o l o g yp r e f e rt ot h et r a d i t i o n a lt e c h n o l o g y , w h i c hg r e a t l ye n h a n c e st h er e l i a b i l i t yo f t h es y s t e m c h e nj i a n j u n ( c o m p u t e ra p p l i c a t i o nt e c h n o l o g y ) d i r e c t e db yp r o f s o n gy u k e yw o r d s :r e l i a b i l i t yd e s i g n ,c o m p o n e n tt e c h n o l o g y , m o n i t o r i n gs y s t e m ,s y s t e m r e l i a b i l i t y 声明尸明 本人郑重声明:此处所提交的硕士学位论文软件可靠性设计研究及应 用,是本人在华北电力大学攻读硕士学位期间,在导师指导下进行的研究工作 和取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中 不包含其他人已经发表或撰写过的研究成果,也不包含为获得华北电力大学或其 他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的 任何贡献均已在论文中作了明确的说明并表示了谢意。 学位论文作者签名:e t 期:尘 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有 权保管、并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩 印或其它复制手段复制并保存学位论文;学校可允许学位论文被查阅或借阅; 学校可以学术交流为目的,复制赠送和交换学位论文;同意学校可以用不同 方式在不同媒体上发表、传播学位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定) 作者签名: 日期: 导师 日期:p 聋堡付 华北电力大学硕七学位论文 1 1 课题研究的背景和意义 第一章绪论 计算机系统硬件可靠性,由于可靠性技术已有六十余年的发展历史,冗余技术、 差错控制、故障自动检测、容错技术和避错技术等可靠性设计技术已经成熟,以及 大规模超大规模集成电路的被采用,可使整机的可靠性大体上每经六年就提高十倍 【1 3 】。相比之下,软件可靠性的研究只有三十几年的发展历史,加上软件生产基本上 仍处于作坊式的手工制作,其提高软件可靠性的技术与管理措施还处于十分不完善 的状况。 如果把软件同硬件的丌发、设计、制造、运行、维修以及各个项目的管理活动 来对比的话,现有软件生产的状况实在令人不寒而栗【4 j 。也就是说,当前危及软件 可靠性的问题成堆,堆积如山。诸如:固执己见,一味强调软件的特殊性;逃避卓 有成效的集体活动,不愿在同行之闯进行互助合作,追求轻而易举的个人游戏,为 所欲为:对世界的重大变革和先进技术听而不闻,视而不见:拒绝接受用户的合理 要求,对正确的意见和批评置之不理1 5 , 6 】;自以为是,不肯从失败和挫折的教训中吸 取经验等等。存在这么多的严重问题,势必使软件故障层出不穷,可靠性低劣。 在软件质量的范畴内,或许最重要的固有特性之一就是系统的可靠性,它关心 的问题主要是存在于软件产品中的缺陷,而正如j o n e s 在1 9 8 6 年指出的那样,软 件系统中的缺陷代表了程序设计过程中最大的成本因素【7 j 。软件可靠性关心的是软 件本身的功能如何才能最大限度的满足软件用户的要求。 现在有不少人都在热切的追求软件可靠性的目标,不过大多都只停留在理论的 抽象上,却很少有人将它表示成为一个程序本身所具有的属性。理论上的抽象是可 以做得十分完美的,但是在软件产品开发过程中,实际上为获取更高的软件可靠性 目标,其做法通常是以软件产品本身的某些特性( 如程序大小、程序的运行时间或 程序的响应时间、软件产品本身的可维护性等) 作为代价来换取的;或者是在软件 产品的开发过程中,采取诸如:增加开发成本、增加对资源的要求、推迟生产的进 度等措施来换取的0 1 。b o e h m 等人已将人们希望予以考虑的某些一般的软件生产的 特性进行了分类。人们在软件产品的生产过程中,旦想要对这些因素权衡取舍, 以取得一个折衷的方案时,软件可靠性就是一个首先必须加以考虑的因素。在某些 情形下,软件可靠性甚至是更一般的特性之一。比如说,考虑实时系统的工作情况, 是使用户的要求得到满足或提高用户的工作效率,软件可靠性就是一个很重要的因 素。 华北电力大学硕士学位论文 1 2 国内外研究现状和发展动态 1 2 1 国外研究现状和发展动态 ( 1 ) 理论研究 众所周知,在硬件方面,经典的系统可靠性理论有丰富的内容( 譬如单调关联 结构获得深入研究) ,并以两个基本假设为基础:二态假设和概率假设,从而形成 独立的理论体系,也为概率论的发展作出贡献。与之形成鲜明对比的是,尽管软件 可靠性研究已有三十几年的历史,但至今未能形成自己的理论体系【l 卜乃j 。现有的理 论工作主要集中于软件可靠性建模和软件容错两个方面,提出了数十种可靠性模型 以及实现软件容错的n 文本方法和恢复块方法,使人们对软件可靠性行为的认识 从无到有,大大前进了。人们有理由相信,尽管软件可靠性行为的刻画比硬件可靠 性行为的刻画要困难得多,但基本上有章可循【l4 1 。遗憾的是,至今没有一个软件可 靠性模型被证明既简单实用又广泛适用,更糟的是,我们不知道何时采用何种模型 为好。软件容错则基本沿袭硬件容错的思路,没有形成自己的系统方法。事实上, 当我们谈论软件可靠性理论时,我们并不清楚它意味着什么。 ( 2 ) 工程实践 软件可靠性的工程实践在国外的许多软件计划中得到实现,尤其是在软件可靠 性度量、软件可靠性增长建模和软件可靠性管理等方面取得了长足的进步,这可在 许多文献报道中得以证实,可以说软件可靠性工程实践深入人心1 15 1 。事实上这是必 然的,因为在国外软件工程有着雄厚的实践基础,软件工程的进一步发展必然将可 靠性作为软件开发考虑的主要因素之一。国外软件可靠性方面的代表人物有美国的 m a r t i nl s h o o m a n ,j o h nd m u s a ,a m r i tl g o o d 和英国的b e yl i t t l e w o o d 等。 美国的r o m ea ird e v e l o p m e n tc e n t e r ( r a d c ) 和英国的c e n t e rf o rs o f t w a r e r e l i a b i l i t yo fl o n d o nc it yu n i v e r s i t y ( 由b e yl i t t l e w o o d 领导) 组织开展 了很多软件可靠性研究和实践活动。 但是软件可靠性工程实践的现状是不能令人满意的。譬如软件需求规范中软件 可靠性需求没能独立成章,软件可靠性设计的内涵与外延均不明确,没能在工程实 践中得到应有的体现。甚至软件可靠性度量也不太明确【1 6 , 1 7 】。j d m u s a 主张以失效 强度作为检查软件可靠性的主要度量,但这一主张并未被广泛接受。总的说来,软 件可靠性工程实践还没有在软件工程实践中取得应用的相对独立的地位,还没有系 统的方法,在不同的软件计划中存在很大差异。 1 2 2 国内研究现状和发展动态 2 华北电力大学硕士学位论文 国内软件可靠性研究起步较晚,始于8 0 年代初,是在7 0 年代国际软件可靠性 研究高潮之后。黄锡滋等在软件可靠性建模、软件可靠性分配及软件可靠性管理等 方面作了有益的探索:陈望梅等开展软件避错技术研究;姚一平等在软件可靠性建 模、软件可靠性评估工具和混合硬件一软件系统可靠性等方面作了努力:刘纯生在 软件容错方面作了重要工作;蔡开元在软件可靠性建模( 提出模糊软件可靠性模 型) 、软件可靠性模型应用选择、软件可靠性测试、软件可靠性度量体系作了有益 的探讨【l 引。徐仁佐、李德银、张宇虹等在软件可靠性理论方面作了研究。 ( 1 ) 理论研究 纵观国内软件可靠性理论研究工作,可以说已取得一定的成绩。首先,学术上 软件可靠性研究已在可靠性领域占有一席之地【1 9 】。其次,某些工作已达到相当水平, 譬如黄锡滋、蔡丌元均有学术论文在国际可靠性权威杂志上发表,刘纯生的工作也 在国外发表。但在国外软件可靠性理论研究工作相比,国内的工作总的来说水平较 低,差距明显。 ( 2 ) 工程实践 姚一平等曾利用自己的软件可靠性评估工具对a c t 验证机软件可靠性给予评 估。蔡开元也曾将自己的模糊软件可靠性模型应用于a c t 验证机,徐仁佐等人利 用c l i p s 开发了软件可靠性专家系统。国内这方面是否还有更多工作,目前尚未见 报道【2 0 1 。总的说来,国内软件可靠性工程实践方面的工作太少太少,工作的水平也 无法与国外同类工作相比拟,亟待开展、深入。事实上,国内的软件工程实践也相 当有限。 1 3 论文要解决的问题和工作要点 本文以铁路高危路段监控系统项目为背景,将基于构件技术对铁路信号监测系 统的可靠性进行研究,本文的研究内容如下: ( 1 ) 总结了基于构件技术的软件可靠性设计的基本思想,从理论上讨论了基 于构件技术的软件可靠性设计技术相对于传统的软件可靠性设计技术所具有的优 势。 ( 2 ) 对铁路信号监测系统的结构进行分析和设计,将系统分为服务器端、站 机端和终端三个部分。针对各个部分的功能和特点,结合构件技术对主要构件进行 分析和设计。从系统结构设计方面体现基于构件的软件可靠性设计技术的优点。 ( 3 ) 介绍了c o m 技术,并使用c o m 技术对基于构件技术的软件可靠性设计的 系统进行部分实现。 华北电力大学硕士学位论文 1 4 论文的组织与结构 本论文主要对软件的可靠性设计进行了研究。全文共分为六章,各章节安排 如下: 第一章:绪论。首先介绍了本课题研究的背景及意义,然后分析了软件可靠性 的国内外研究现状及发展动态,最后提出了本论文要解决的问题及工作要点。 第二章:软件可靠性理论和相关技术。本章简要介绍了软件可靠性技术的基础, 包括软件可靠性的数学关系、三要素和软件可靠性技术的内涵,重点介绍了软件可 靠性设计技术的分类及具体设计过程。 第三章:基于构件的可靠性设计。本章介绍了构件的概念、特点及构件的可靠 性开发过程,并结合实例相对于传统的可靠性设计凸显基于构件的软件可靠性设计 的优点。 第四章:基于构件的系统设计。介绍了铁路信号监测系统,并对系统的结构进 行设计,将系统分为三个部分:服务器端、站机端和终端。并将铁路信号监测系统 分为若干构件,并对主要构件进行详细分析和设计。 第五章:系统的部分实现。介绍了c o m 技术及c o m 接口技术,并使用c o m 技术 来实现系统的构件开发,并逐步建立铁路信号监测系统构件库,以便今后的重复使 用。 第六章:结论与展望。总结了本论文所解决的问题及所做的基本工作,并对今 后的工作提出了新的研究方向。 4 华北电力大学硕士学位论文 第二章软件可靠性理论和相关技术 2 1 软件可靠性技术基础 2 1 1 软件可靠性的基本数学关系 从软件可靠性的基本定义出发,可以导出它的数学表达式。用随机变数表示 从程序运行开始到系统失效所经历的时间,用e ( f ) 表示的分布函数,用t 表示 任意的给定时刻,用尺占( f ) 表示程序在t 时刻的可靠度【2 1 1 。则 图, 大, r ( f ) = p r 占 f ) = 1 一疋( f ) ( 2 1 ) 上式就是软件可靠度的数学表达式,图2 1 是疋o ) 和r s ( f ) 变化规律的示意 图中两条曲线表明,肖软件开始运行后,随着时间的延续,其失效概率逐渐增 图2 1f 。( ,) 和r 。( ,) 曲线图 描述软件失效规律的另一个特征量是失效率,失效率又称风险函数,它的数学 定义是软件在t 时刻没有发生失效的条件下,在( t ,t + at ) 区间内,当at 很小时, 单位时间内发生失效的概率2 2 1 ,用入( t ) 表示失效率 尔t ) 2 夏抑塑等幽 浯2 , 此式展开,可得: 华北电力大学硕士学位论文 2 呦坐瓮怒掣 一1 f ( ,+ ,) 一f ( ,) 一是聊瓦矿 :盟 ( 2 3 ) r ( f ) f ( t ) 是随机变数的密度函数,上式可改写为2 ( t ) = 一r ( f ) r ( f ) 是一个一阶常微 分方程,在初始条件r ( 0 ) = 1 时求解可得: 黝= 印 - 【a ( s ) a s ( 2 4 ) w 如果入( s ) 为常数,则可得尺( f ) = p 一,随机变数e 的数学期望为r ( 6 ) = f t f ( t ) d t , 可以用来表示软件的平均寿命( m t b f ) ,在失效率为常数的情况下,可得t t b f = i 入。 2 1 2 软件可靠性三要素 软件可靠性是与在规定的时间和条件f ,软件维持其性能水平的能力有关的一 组属性2 引。软件可靠性的三要素为:失效、时间和环境。 1 失效 软件失效是指最后执行结果与有关规格不相符或用户在软件系统边界觉察到 不期望的软件出错行为,失效是错误引起的结果。有些错误在某些使用环境下可能 引起失效,有些错误则在某些使用环境下不会引起失效;有些失效是由于软件错误 设计等引起的,有些则可能是用户使用不当引起的。 2 时间 软件可靠性分析有三种度量方式。 ( 1 ) 执行时间,指运行软件时计算机实际耗费的c p u 时间: ( 2 ) 日期时间,指通常以年、月、日等为单位计算的时间; ( 3 ) 时钟时间,指运行软件时计算机自始至终所花去的累积时间,但计算机停 机时间不计算在内。 如果计算机被程序连续占用,且该程序占用执行软件的c p u 的一个时间段,则 执行时间与时钟时间成比例。对软件可靠性分析而言,执行时间比日期时间更充分; 但对用户而言,可靠性量化采用日期时间更现实2 4 , 2 5 】。因此,需要在日期时间与执 行时间之间进行转换。如果不容易得到执行时间,则可以采用其他近似时间值,如 时钟时间、加权时钟时问等。 与时间有关的三个重要的软件可靠性分析技术指标是平均失效等待时间 矗 华北电力大学硕士学位论文 ( m t t f ) 、平均失效问隔时问( m t b f ) 和平均修复时间( m t t r ) 。 所谓平均失效等待时1 1 | j 表示观察到下次失效的期望时间;所谓平均失效间隔时 间是指两次失效之间的期望间隔时间;所谓平均修复时间是指观察到失效后修复系 统所需要的期望时间。三者之间的关系可以用下式描述: m t b f = m t t f + m t t r 可用图2 2 所示的图形描述。 失效间隔时间 修复时间 失效等待时间 第i 次失效 时刻 失效修复 投入运行时间 第i + 1 次失效 时刻 图2 2 软件可靠性时同指标 当系统的m t t f 和m t t r 确定后,也可用来计算软件的可用性。可用性是指在给 定的时间及规定的使用环境下,软件按分析和设计规定要求成功地运行的概率。 可用性= m t t f ( m t t f + m t t r ) 一般来说,对于任何故障可以修复的系统,都应该同时使用可靠性和可用性来 衡量系统的优劣程度。 一旦确定时间基准,失效可以用三种方式表示:累积失效函数( c f f ) 、失效率 函数( f r f ) 和平均失效等待时间函数( m t t f f ) 。失效率函数是积累失效函数对时间求 导的结果。累积失效函数表示与时间点相关的平均累积失效。如果失效率函数可视 为常数,则平均失效等待时间m t t f 是失效率的倒数。 3 环境 软件的使用环境涉及软件运行时所需要的支持系统及其他相关的因素。一个规 定的使用环境是对这些因素的精确而详细的限制描述。严格地说,描述软件可靠性 “规定的使用环境”包括硬件配置状态和操作人员操作等的描述,并假定其他因素 对软件来说都是理想可靠的,不会影响软件的运行。也就是说软件可靠性不包含硬 件和操作的可靠性。软件可靠性、硬件可靠性和操作可靠性三者综合起来反映整个 计算机系统的可靠性。规定软件的使用环境可用来判定系统失效是否由于软件失效 引起。 7 华北电力大学硕士学位论文 2 1 3 软件可靠性技术的内涵 软件可靠性技术包括可靠性设计技术和可靠性分析技术两方面。 可靠性设计的目的是为了获得高可靠性的软件,主要包括避错设计、查错设计、 改错设计和容错设计。可靠性分析的目的是为了预测、评估软件系统的可靠性,为 软件可靠性设计和软件维护提供必要的依据。为了进行可靠性分析,需要建立一定 的软件可靠性模型。目前常见的软件可靠性模型有失效间隔时间模型、缺陷技术模 型、播种模型和数据模型等几类【2 6 1 。 2 2 可靠性设计过程分析 软件可靠性设计的实质是在常规的软件设计中,应用各种必需的方法和技术, 使程序设计在兼顾用户的各种需求时,全面满足软件的可靠性要求。软件的可靠设 计应该和软件的常规设计紧密的结合,贯穿在常规设计过程的始终。大型软件项目 设计,可分解为图2 3 所示的九个步骤。这九个步骤可以认为是对软件开发期阶段 划分的细化和补充。对设计过程所做的这种进一步的分解,有利于设计的过程管理, 也有利于设计方法的选取和设计质量的评价【27 。 甲 图2 3 软件司靠性设计过程分解 图2 3 中,设计过程的第一步是将用户对产品的要求转化为需求说明。第二步 是按需求说明建立产品的开发指标。这两个过程分别与软件开发期的需求分析和系 统说明阶段相对应。第三步是初始外部设计,其目的在于概要地定义用户接口,但 暂不涉及诸如输入、输出形式之类的细节。在初始外部设计之后,继之以两个并行 的步骤,即详细的外部设计和系统层次设计。详细的外部设计目的在于详细地定义 用户接口。系统层次设计的任务是将系统分解为程序、分程序,定义各个程序、分 r 华北电力大学硕士学位论文 程序的接口。第六步是程序结构设计,程序结构设计的任务是将程序划分为模块, 确定模块的相互联结,设计模块接口。第七步是数据库设计,它的任务是定义程序 外部的数据结构。第八个步骤是模块的外部设计,其目的是精确地定义模块的接口。 最后一个步骤是模块的逻辑设计,其目的是设计模块内部的逻辑结构。这些步骤分 别对应于概要设计和详细设计。 图2 3 仅仅用于说明设计中各个步骤的基本顺序和相互关系,而不是严格规定 设计工作的顺序,因为相邻阶段通常存在局部的重叠。实际的设计过程往往比图2 3 所示的过程更为复杂,各个步骤之间存在着图中无法表示的若干反馈。例如,在初 始外部设计或详细的外部设计中,可能会发现产品的开发指标存在缺陷,需要修正 产品的开发指标体系。在程序结构设计时,发现概要设计说明中描述的某一项功能 很难实现,需要再作权衡。 2 3 可靠性设计的四种类型 在2 0 世纪5 0 年代和6 0 年代,软件设计完全取决于程序员的个人思维、个人 技巧和风格,没有共同认可的准则。软件工程学建立后,经过多年探索,出现了许 多有效的设计方法和设计工具,这些方法和工具的应用,使软件的设计技巧日趋完 善,有助于提高软件的质量。 软件可靠性设计的全部内容可归结为四个类型【2 8 1 ,即避错设计、查错设计、改 错设计和容错设计。 避错设计是使软件产品在设计过程中,不发生错误或少发生错误的一种设计方 法。由于软件的设计错误通常发生在各个变换的过程中,因此,避错设计最关心的 就是控制这些变换过程。 避错设计主要由以下几种方法构成: ( 1 ) 控制和减少程序复杂性的方法; ( 2 ) 提高变换精确性的方法: ( 3 ) 改善信息联络的方法; ( 4 ) 迅速查找和改j e 变换错误的方法。 避错设计使用于一切类型的软件,避错设计体现了以预防为主的思想,是软件 可靠性设计的首要方法,应当贯彻于设计的全部过程中。 查错设计是指在设计中赋予程序某些特殊的功能,使程序在运行中自动查找存 在错误的一种设计方法。 改错设计是指在设计中,赋予程序自我改正错误、减少错误危害程度的能力的 9 华北电力大学硕士学位论文 一种设计方法。 容错设计是指在设计中赋予程序某种特殊的功能,使程序在错误已被触发的情 况下,系统仍然具有正常运行能力的一种设计方法【2 9 1 。 2 3 1 避错设计 2 3 1 1 需求分析 软件设计开始于需求分析,因此需求分析是错误渗入软件系统的第一个窗口, 容不得丝毫的疏忽。可以说,在软件开发过程中由于需求说明不正确、不完备所造 成的损失,比其他任何因素造成的损失更惨重。 需求分析的主要任务是解决软件产品应该做什么工作的问题,分析结果用软件 需求说明书的形式记载下来,作为指导设计的依据。需求分析是保证软件质量及可 靠性的有决定意义的第一步,要深入的分析用户要求,编写好需求说明,需要有分 析方法和分析工具的支撑。 需求建模方法主要有【3o j :面向数据流的分析方法、面向对象的分析方法和面向 数据的分析方法。 一个基于计算机的信息处理系统由数据流和一系列的转换构成,这些转换将输 入数据流变换为输出数据流。数据流图就是用来刻画数据流和转换的信息系统建模 技术。它用简单的图形记号分别表示数据流、转换、数据源以及外部实体,如图2 4 所示。它提供层次结构让分析人员能够方便地表示任意抽象级别上的信息系统或其 子部分,并支持问题分解、逐步求精的分析方法。 r 。1 l 外部实体 l 位于软件系统边界之外的信息生产者或消费者 转换数据流的处理过程 - - - + 数据流在转换之间有向流动的数据项或数据项集合 数据源 为一个或多个转换提供数据源或数据存储服务的缓冲区、文件或数据库 图2 4 数据流图的图形记号 数据流图机制并不足以完整地描述软件需求,因为它没有描述数据流的内容。 数据流图必须与描述并组织数据条目的数据字典配套使用。 通常,数据字典中地每一数据条目包含以下内容: l o 华北电力大学硕士学位论文 ( 1 ) 在数据流图中表示数据流、数据源或外部实体的名称与别名; ( 2 ) 数据类型; ( 3 ) 所有以它作为输入流或输出流的转换的列表; ( 4 ) 如何使用该数据条目的简要说明; ( 5 ) 数据条目的解释性说明; ( 6 ) 其他补充说明,例如取值范围与缺省值,有关的设计约束等。 2 3 1 2 制定指标 需求分析还必须按用户的要求制定出产品的功能、性能指标和费用、进度要求, 用以指导设计。对于有可靠性要求的产品,还应制定出可靠性和安全性指标。在某 些情况下,可靠性要求与其他方面的要求存在矛盾,必须恰当的处理这些相互对立 的要求,从总体优化的高度寻求解决问题的办法,制定出满足用户要求的一整套开 发指标。 可靠性要求与通用性、效率、费用和交付期限之间可能发生的冲突,是设计中 必须解决的主要矛盾。 通用性是指软件可履行的功能的跨度。通用性可以用软件的功能数目、能力范 围来表达。通用性愈强的产品,具有较好的市场销售前景,但是其软件的规模愈大, 结构必然复杂,产品也更加容易发生错误。因此。可靠性要求和通用性要求是矛盾 的,是制定指标时最难权衡的两个因素。 效率可以用程序执行时间和占用的存储量来衡量,它和可靠性关系颇为复杂。 一般提高可靠性的措施都会影响程序的效率。在处理可靠性与效率这一对矛盾关系 中,应该把可靠性置于首位。 可靠性要求与费用、可靠性要求与开发日程也是必须妥善处理的两对关系。开 发过程中,常常遇到可靠性要求与费用、交付期限之间的矛盾,这往往来源于主管 人员狭隘的视野或开发经费匾乏。从全局着眼,加强产品可靠性设计的各项基础工 作和加快开发进度的要求是可以协调的。 2 3 1 3 概要设计和详细设计 概要设计是在软件系统高层进行的设计,其首要任务是进行系统的结构设计, 即确定系统的整体结构。 详细设计是在系统结构设计完成之后,设计进入更深层次。这个阶段的任务是 对每一个模块按照在系统结构设计时赋予的功能,编写设计规范,决定模块内部的 华北电力大学硕十学位论文 逻辑结构,按照其逻辑结构最终完成每个模块的编码。 这里引入软件体系结构和模式的观点来进行概要和详细设计。软件体系结构的 概念早在2 0 世纪8 0 年代就已经提出,但真正引起关注和重视是在9 0 年代。从不 同角度出发,研究者对软件体系结构的定义不同,没有形成标准、一致的认识。目 前对软件体系结构在如下几个方面得到较统一的认识【3 0 】: ( 1 ) 体系结构是关于软件的系统级层次上的组成和行为的,是设计过程中不 可缺少的一个阶段,对复杂软件的后期设计活动起着重要的决定作用。 ( 2 ) 体系结构是由软部件和部件之间的联系组成,软部件又有自身的体系结 构。 ( 3 ) 部件的描述有三个方面:计算功能、结构特性、其他特性。计算功能是 指部件实现的整体功能。结构特性描述与其他部件的组织和联系方法,这是体系结 构中最重要的内容。其他特性描述了部件的执行效率、处理能力、环境要求和整体 特性等方面的要求。 ( 4 ) 目前没有哪个关于软件体系结构描述可以说是完整的。 设计模式最早是作为总结软件设计、特别是面向对象设计的实践和经验而提出 的。与体系结构认识的提出一样,设计模式的提出标志着整个软件设计技术和水平 的逐渐成熟。 模式是构造高质量软件体系结构的一个重要工具。模式通常分为三种类型: ( 1 ) 体系结构模式 ( 2 ) 设计模式 ( 3 ) 惯用法 体系结构模式可作为具体软件体系结构的模板。它们规定一个应用的系统范围 的结构特性,以及对其子系统的体系结构施加的影响。所以体系结构模式的选择是 开发一个软件系统时的基本设计决策。模型一视图一控制器模式是体系结构模式最 著名的例子之一。 设计模式用来描述软件体系结构的子系统,以及它们之间的关系,通常由几个 更小的体系结构单元构成。设计模式是中等规模的模式。它们在规模上比体系结构 模式小,但又独立于特定编程语言或编程范例。设计模式的应用对于软件系统的基 础结构没有影响,但可能对子系统的体系结构有较大影响。 惯用法是具体针对一种编程语言的低层模式。惯用法描述如何使用给定语言的 特征来实现组件的特殊方面或它们之间的关系。惯用法代表最低层模式。它们关注 1 2 华北电力大学硕士学位论文 设计和实现方面。大多数惯用法是针对具体语言的它们捕获现有的编程经验。 2 3 2 查错和改错设计 在软件设计过程中,j f 确地采用各种避错设计方法,可以大幅度降低设计中引 入的错误。然而,就现在的技术水平和设计工具而言,面对日益庞大、复杂的各类 软件系统,不论构思和设计是何等精心,软件产品中仍然难免存在错误。这种情况 促使软件工程界去探索,寻找使软件产品具有自动查错、改错功能的设计方法。 查错设计技术分为被动式检测和主动式检测两种类型。二者的区别在于被动式 错误检测是在程序的若干部位设置检测点,等待错误征兆的出现,主动式错误检测 对程序状态主动进行检查1 3 1 1 。 2 3 2 1 被动式错误检测 被动式错误检测适用于软件的各种结构层次,用来检测从一个单元、模块向另 一个单元、模块传递的错误征兆和检测存在于单元、模块内部的错误。 为了使错误检测有效进行,应该遵循下列两条原则: ( 1 ) 相互怀疑原则。在设计任何一个单元、模块时,假定其他单元、模块存在 着错误。每当一个单元、模块接受一个数据时,无论这个数据是来系统外的输入或 是来自其他单元、模块处理的结果,首先假定它是一个错误数据,并且竭力去证实 这个假设。 ( 2 ) 立即检测的原则。错误征兆出现后,要尽快查明,这样做不仅能限制错误 的损害范围,而且可以降低排错的难度。 无论是什么性质的软件系统,实施错误检测的必要前提是,在程序处理过程中 的若干关键性环节建立起检测的接收判据。如果实际执行的结果满足接收判据的要 求,则判定程序状态正常。反之,则判定程序中存在错误。实施自动错误检测的必 要前提是,“接收判据 能够从软件系统本身提取。这种具有自动错误检测功能的 程序,必定伴随着一定程度的冗余。在设计时,应该尽量将自动检测的功能集中 到一起,构成错误检测模块,使它和实际处理过程相分离。 自动错误检测技术的出现为监控过程执行提供了新的手段,有助于提高软件的 可靠性。但是,自动错误检测技术对系统的可靠性也有负效应,这些负效应来源 于两个渠道: ( 1 ) 自动错误检测所设置的“接收判据 不可能与预期的正确结果完全吻合。 图2 5 表示实际结果、预期结果与接收判据三者之间的关系。在理想状态下, 华北电力人学硕士学位论文 三者应该完全重合,实际上却难以做到。 图2 5 错误检测效果 图2 5 【3 2 l 中a 区表示实际结果与预期结果不符,按照接收判据检验后拒绝接收 的区域,这个区域代表了自动错误检测技术对改善系统可靠性的积极作用;b 区表 示实际结果与预期结果相符,但是被自动错误检测错判并拒绝接收的区域:c 区表 示实际结果中与预期结果不符合,然而自动错误检测未能察觉并予以接收的区域, 其结果将导致系统失效。b 区和c 区反映了自动错误检测技术不完善导致的消极作 用,在设计时应尽量避免图2 5 中b 区和c 区的出现。 ( 2 ) 错误检测程序本身的可靠性。从系统可靠性的观点来分析,自动错误检测 模块与过程处理程序构成一个串联系统,其结果将导致系统可靠性降低。 因此,必须充分注意自动错误检测模块本身的可靠性问题。 2 3 2 2 主动式错误检测 采用被动式错误检测,只有当错误征兆被传送到具有检查功能的部位时,才能 察觉。主动式错误检测则是设计时赋予程序的一种特殊功能,具有这种功能的程序 能够主动地对系统进行搜索,并指示搜索到的错误。 主动式错误检测通常由一个检测监视器来承担。检测监视是一个并行过程,其 功能是对系统的有关的数据主动进行扫描,借以发现错误。一些大型的资源管理软 件系统在长期运行中,常常会因为软件的错误造成系统资源的损失。例如,操作系 统中的存储管理模块,具有向用户程序和操作系统的其他模块出借存储区域的功 能,然而用户程序或其他模块的错误有时会造成借出的存储区域不能返回存储管理 模块,导致系统的性能逐渐蜕变。主动式错误检测能够及时地发现这类问题。 主动错误检测可以作为周期性的任务来安排,也可以当做一个低优先权的任务 来执行,在系统处于等待状态时,主动进行检查。错误检查的内容取决于系统的特 征。在特殊情况下,检测器还可以进行系统的诊断试验,由检测器调用系统的某些 功能,将结果与预期的输出相比较,检查其执行时间是否超限。检测器还可以周期 1 4 华北电力大学硕十学位论文 性的发送哑事务给系统,以保证系统处于可运行状态。 2 3 2 3 改错设计 程序运行过程中,经过自动错误检测发现错误征兆之后,人们自然期望软件具 有能够自动改正错误的功能。改正错误的前提必须是已经准确的找出软件错误的起 因和部位,程序又有能力修改、剔除有错误的语句。然而在现阶段要做到这一点, 没有人的参与几乎是不可能的,所以不能对软件的改错功能提出超越实际的要求。 实际上我们现在能够做到的只限于减少软件错误造成的有害影响,或者将其有害的 影响限制在一个较小的范围。 2 3 3 容错设计 软件容错设计是一种有效的可靠性设计技术。软件的容错设计可采用两种方 法,即n 文本法和恢复块法。软件容错的基本思想来源于硬件可靠性中的冗余技术, n 文本法与硬件可靠性中的静态冗余相对应;恢复块法则与有转换开关的动态冗余 相对应。容错软件含有众多的冗余单元,增大了程序规模,增加了资源消耗,因此 容错技术不易普遍采用,只能有选择地用于失效后果非常严重的场合。 2 3 3 1n 文本法 n 文本法是指对于个给定的功能,由n ( n 2 ) 个不同的设计组独立编制出n 个不同的程序,然后同时在n 个机器上运行并比较运行的结果。如果n 个文本运行 的结果是一致的,则认为结果是正确的;如果n 个文本输出不尽相同时,则按多数 表决的方式或其他预先制定的策略,判定结果的正确性。 n 文本容错方法成功的关键在于n 个文本的独立性,只要有可能,应该尽量采 用不同的语言,甚至不同的数据结构。其次, 果的处理也是影响n 文本法效果的重要因素。 判定结果的表决算法及表决前后对结 图2 6 是n 文本容错软件的示意图。 申申申 i表决器 i 图2 6n 文本容错示意图 华北电力大学硕士学位论文 美国加州大学1 9 7 5 年丌始对n 文本法进行了规模较大的研究。1 9 8 5 年,n a s a 委托加州大学等四所大学,以飞机冗余传感器的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省唐山市玉田县2023-2024学年五年级下学期期末数学试题
- 西南财经大学-公司治理与战略管理
- 学校后勤工作经验交流分享会上校长讲话:全网疯传!最废的校长却带出了最强的后勤
- 幽默课件教学课件
- 巡视病房的观察要点
- 崖壁攀登概述课件
- 岩石书课件教学课件
- 尾矿工安全生产教育培训课件
- 河南省生态园区民宿租赁合同含环保设施租赁说明
- 环保技术研发工人计件合同
- 甘肃省工程勘察设计收费指导标准2022版(全过程工程咨询)
- 供电所开展保命教育培训(3篇模板)
- 人教版音乐九年级上册第1单元选唱《中国军魂》教案
- 中医糖尿病治疗:特效中成药集
- 肺癌诊疗路径解读2024课件
- 心脏起搏器植入指南解读
- 学生会文体部部门招新
- 胃肠镜院感培训课件
- 应急管理学院成立可行性方案
- 矿山后勤与基础设施
- 超声波操作规程
评论
0/150
提交评论