




已阅读5页,还剩144页未读, 继续免费阅读
(通信与信息系统专业论文)高质量电信软件开发技术的研究——双瀑布软件过程框架及其在软交换控制软件研发中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京邮电大学博士学位抡文 摘要 电信软件系统作为一种应用于特殊场景的通信软件系统有诸多特性,如:实时性、 高可用性可靠性、并发性等。这些特性要求在电信软件的发过程中不应仅考虑电信软件 系统的功能集,而应对电信软件系统的各种质量属性加以统筹考虑。 目前针对各种软件质量属性的研究较多,但是这些研究往往仅是针对某个具体的软 件质量属性,又或是提出的应对机制难于被软件开发人员所用,从而使软件开发项目难 于切实获益于现有的研究成果。在这种背景下,本文从对现有软件工程技术的总结,整 理和分析入手,对高质量电信软件研发的方式和过程进行了深入系统地研究,取得了一 系列有价值的研究成果,概括起来主要包括以下几个方面: 1 ) 在对通用软件质量模型的研究和分析的基础之上,根据对电信系统用户、电信系统运 营者以及电信系统开发管理者对电信软件系统质量属性的需求,提出了电信软件系统 的质量模型。此模型不但将电信软件系统的各种软件质量属性加以归纳和整理,而且 可以说明各种软件质量属性的定量或定性特性以及各种软件质量属性之间的关系。 2 ) 通过对电信软件质量模型涉及的各种软件质量属性的常用实现机制的整理,提出了电 信软件质量属性实现框架。此框架不但提供了对各种实现机制的组织方式,而且可以 被用于完成由特定软件质量属性到其可选的实现手段的检索,同时此框架可以被灵活 的扩展、更新。 3 ) 针对传统软件过程模型中没有明确提出在软件过程中对各种软件质量属性进行控制 的问题以及现有各种软件质量属性的实现方法难于融入具体的软件过程中的问题,提 出了双瀑布软件过程模型,其中不但明确的提出了针对各种软件质量属性的分析、评 估和反馈机制,而且此软件过程模型可以被用于指导具体的软件开发过程。 4 ) 通过对建模分析技术以及样式机制的分析,提出了可以切实地将建模分析技术与样式 机制有机的结合在一起的一“建模样式”,给出了“建模样式”的u m l 描述、常用 建模样式的示例及建模样式的应用方式。 5 ) 针对建模数据不足以及难于检索的问题,提出了“建模样式系统”,并且对“建模样 式系统”的结构和更新机制作了详细的分析和介绍。这些机制可以被无缝的融入双瀑 布软件过程模型中,从而一起构成高质量电信软件系统开发框架,同时保证了此框架 的实用性和可操作性。 关键词:软件工程;电信软件;样式; 程模型;瀑布模型:软交换; 建模;软件质量模型:软件质量属性;软件过 性能;可用性;可靠性 北京邮电大学博士学位论文 = = := = = = = = = = = = := = = = = = = = = = = = a b s t r a c t a sas p e c i a lt y p eo fs o f t w a r es y s t e m ,t e l e c o m m u n i c a t i o ns o f t w a r es y s t e m sp o s s e s sm a n y c h a r a c t e r i s t i c s ,s u c ha sr e a l t i m e ,h i 曲a v a i l a b i l i t y r e l i a b i l i t y ,c o n c u r r e n c y ,w h i c hl e a dt oo t h e r r e q u i r e m e n t s o ns o f t w a r ed e v e l o p m e n tf o ro v e r a l lq u a l i t ya t t r i b u t e st h a nt h a tf o rp u r e f u n c t i o n a l i t i e s c u r r e n t l y ,t h e r ea r em a n yr e s e a r c h e so nq u a l i t ya t t r i b u t e so fs o f t w m , es y s t e m s ,h o w e v e r , t h o s er e s e a r c h e sm a i r d yf o c u so nc e r t a i nq u a l i t ya t t r i b u t e s u c ha sp e r f o r m a n c e , a v a i l a b i l i t y , o r t h es o l u t i o n sb r o u g h tf o r w a r dc o u l dh a r d l yb ep u ti n t op r a c t i c e t h e r e f o r e ,a c t u a ls o f t w a r e d e v e l o p m e n tp r o j e c t sb e n e f i tl i t t l ef r o mt h o s er e s e a r c h e s u n d e rs u c hc o n d i t i o n s b ya n a l y z i n g e x i s t i n g s o f c w a r ee n g i n e e r i n g t e c h n i q u e s ,s o l u t i o n s o nh i 曲- q u a l i t yt e l e c o m m u n i c a t i o n s o f t w a r ed e v e l o p m e n ta r es t u d i e da n ds o m ev a l u a b l es o l u t i o n sa r ea c q u i r e d ,w h i c hc a l lb e s u m m a r i z e da sf o l l o w i n g 1 ) b ya n a l y z i n gg e n e r i cs o f t w a r eq u a l i t ym o d e l s ,t h et e l e c o m m u n i c a t i o ns o f t w a r eq u a l i t y m o d e li sc o n s t r u c t e d ,w h i l ec o n s i d e r i n gr e q u i r e m e n t so nq u a l i t ya t t r i b u t e sf r o m t e l e c o m m u n i c a t i o ns y s t e me n du s e r s ,o p e r a t o r sa n dd e v e l o p e r s t h i sm o d e lc o u l dn o to n l y o r g a n i z e da l lt h es o f t w a r eq u a l i t ya t t r i b u t e st o g e t h e r ,b u ta l s op r e s e n tr e l a t i o n sa m o n g t h e m 2 1o t h e rt h a np u t t i n ga l li m p l e m e n t a t i o ns o l u t i o n so fv a r i o u ss o f t w a r eq u a l i t ya t t r i b u t e so f t e l e c o m m u n i c a t i o ns o f t w a r et o g e t h e r , at e l e c o m m u n i c a t i o ns o f t - w a r eq u a l i t ya t t r i b u t e s i m p l e m e n t a t i o nf r a m e w o r k w l i c hc o u l di n t e g r a t ea l lt h e s es o l u t i o n sa sa nn n i f l e ds y s t e m i sp r e s e n t e d w i t ht h i sf r a m e w o r k , n o to n l yt h o s es o f t w a r eq u a l i t ya t t :r i b u t e sa r ew e l l o r g a n i z e d ,b u ta l s om e c h a n i s m sf o rl o c a t i n gi m p l e m e n t a t i o ns o l u t i o n sb yac e r t a i n s o f t w a r eq u a l i t ya t t r i b u t ea r ei n c l u d e d m o r e o v e r , t h i s 丘a m e w o r kc o u l db ee a s i l y e x t e n d e d 3 ) t os o l v et h ep r o b l e m ,w h i c ht h e r ea r en oe x p l i c i ts o l u t i o n sf o rp u t t i n gt h es o f t w a r eq u a l i t y a t t r i b u t e su n d e rc o n t r o ld u r i n gas o f t w a r e sl i f ec y c l ea n de x i s t i n gs o f t w a r eq u a l i t y a t t r i b u t e si m p l e m e n t a t i o ns o l u t i o n sc o u l db eh a r d l yi n t e g r a t e di n t oa na c t u a ls o f t w a r e p r o c e s s d u a l w a t e r f a l ls o f t w a r ep r o c e s sm o d e la r eb r o u g h tf o r w a r d i nt h i sm o d e l m e c h a n i s m sf o rs o f t w a r eq u a l i t ya t t r i b u t e sa n a l y s i s ,e v a l u a t i o na n df e e d b a c ka r ee x p l i c i t l y i n t r o d u c e d a n dt h i sm o d e lc o u l db eu t i l i z e dt og u i d et h eo p e r a t i o no fas o f t w a r ep r o j e c t 舢b a s e do nt h ea n a l y s i so nb o t hm o d e l i n gt h e o r i e sa n dp a t t e mt e c h n i q u e s m o d e l i n gp a t t e m i sp r e s e n t e d m o d e l i n gp a t t e r ni sd e s c r i b e di nu v l l ,a n dc o u l db ee a s i l yi n t e g r a t e di n t ot h e s o f t w a r ed e v e l o p m e n tp r o c e s s 5 1i n s n 伍c i e n td a t af o rc o n s t r u c t i n gas y s t e mr o o d e la n dt h el a c ko fm e c h a n i s m st o1 0 c a t ea m o d e l i n gp a t t e r na r et w oo ft l l em o s tt r o u b l e s o m ep r o b l e m sf o rt h em o d e l i n gp a t t e r n m e c h a n i s m t ob r e a kd o w nt h ep r o b l e m m o d e l i n gp a t t e r ns y s t e m ”i si n t r o d u c e d t o g e t h e rw i mi t ss t r u c t u r ea n du p d a t em e c h a n i s m s m o r e o v e r t h e s em e c h a n i s m sc o u l db e s e a m l e s s l yi n t e g r a t e di n t od u a l w a t e r f a l ls o f t w a r ep r o c e s sm o d e l t h u sc o n s t r u c t i n gh j g h q u a l i t yt e l e c o m m u n i c a t i o ns o f t w a r es y s t e r nd e v e l o p m e n tf r a m e w o r kw i t hap r a c t i c a l m a n n e r 北京邮电大学博士学位论文 k e yw o r d s :s o f t w a r ee n g i n e e r i n g ;t e l e c o m m u n i c a t i o ns o f t w a r e ;p a t t e r n ;s o f t w a r eq u a l i t ym o d e l ; s o f t w a r eq u a l i t ya t t r i b u t e ;s o f t w a r ep r o c e s sm o d e l ;w a t e r f a l lm o d e l ;s o f f s w i t c h ; p e r f o r m a n c e ;a v a i l a b i l i t y ;r e l i a b i l i t y 北京邮电大学博士学位论文 绪论 1 研究工作的背景和意义 电信软件系统作为一种应用于特殊场景的通信软件系统对实时性、高可用性可靠性、 并发性等提出了较高的要求。因此在电信软件系统研发过程中不应仅考虑电信软件系统 功能集的实现,而应对电信软件系统的各种质量属性的实现加以统筹考虑。目前业界针 对各种软件质量属性的实现机制已经有了一些研究成果,但是这些研究往往仅是针对某 个具体的软件质量属性,又或是提出的解决方案难于被软件开发人员所使用,从而使软 件开发项目难于切实的获益于现有的研究成果。电信软件研发压力( 研发时间缩短,软 件系统质量需求提高) 的不断增加也导致电信软件开发组织需要一种统一的有利于软件 重用,实现软件质量属性可控的软件过程框架,以提高软件研发的成熟度。 就北京邮电大学国家重点实验室的具体情况而言,由于国家重点实验室多次承担省部 级乃至国家级的电信软件系统的研发项目( 从智能网,到四五类软交换控制设备,再到 支持多媒体和移动业务的软交换控制设备) ,因此希望使后继的软件项目可以充分利用 以往项目中的技术积累,实现科研成果的市场化,因此构建一套指导高质量电信软件开 发的软件过程框架。不但能充分利用已有科研成果及经验的,而且可以提高整个国家重 点实验室豹软停研发的成熟度。这些背景和实际需求是本文研究的出发点。 2 。主要研究工作 本文作者在博士研究生期间,主要从事“软交换控制设备”的相关研发工作。作为主 要研发人员和项目管理人员参加了多个电信软件系统的研发工作,主要包括: 1 )“四类软交换控制设备”研发项目; 2 )“五类软交换控制设备”研发项目; 3 )“支持多媒体和移动业务的软交换总体技术和方案”( 国家8 6 3 计划项目,项目编号: 2 0 0 1 a a l 2 1 0 2 1 ) 4 )“支持多媒体和移动业务的软交换系统”( 国家8 6 3 重大项目,项目编号: 2 0 0 2 a a l 2 1 0 1 2 ) ; 5 )“基于异构网络的中间件的体系结构、协议和实现机制研究”( 国家自然科学基金重 大研究计划项目,项目编号:9 0 2 0 4 0 0 7 ) 概括起来,作者在攻读博士学位期间的研究工作主要包括以下几个方面: 1 ) 负责四类软交换控制设备i s u p s i g t r a n 模块的设计与实现。四类软交换控制设备需要 支持i s u p s i g t r a n 和m g c p 协议,其中i s u p 协议是此软交换控制设备需要支持的核 心信令协议。为了实现i s u p s i g t r a l l 模块的高可用性,同时使之满足一定的性能指标, 在此模块的设计中首次设计并使用了“单消息分发多协议处理”软件架构( 此架构 仅支持多级监控机制) 。 2 ) 负责五类软交换控制设备协议接入子系统的设计与实现。五类软交换系统中不但要支 持i s u p 以及与i s u p 配合使用的m g c p 的能力,而且要支持独立的m g c p 终端或是 集成接入设备,更为重要的此软件系统的开发中要尽可能的继承四类软交换控制软件 系统的研发成果。在此软件系统中将原有的“单消息分发多协议处理”软件架构扩 4 北京邮电大学博士学位论文 展为“高可用单消息分发,多协议处理”软件架构( 不但支持多级监控机制,而且支 持主备用监控机制) 。 3 ) 负责支持多媒体和移动业务的软交换控制软件系统设计。在此软交换系统中需要支持 包括i s u p s i g t r a n 、m g c p 、s i p 、h 3 2 3 在内的多种协议,同时也希望在更高的层次 上重用四类和五类软交换控制软件系统的研发成果。在此系统的设计中明确地将软件 架构的设计与软件功能结构的设计相分离,在设计方案层面及代码层面统一了系统中 各个子系统使用的软件架构。 4 1 对软交换系统的高可用性实现机制、组网机制、系统配置机制等进行深入的研究,提 出了相应的系统解决方案和软交换控制设备设计方案。 5 1 对基于软交换系统的业务解决方案作了深入的研究,提出了在移动网络环境、固定网 络环境,仍至企业应用环境中基于软交换系统的业务解决方案,以及对应各种方案的 软交换控制设备的设计方案。 限于论文篇幅和内容的一致性,在上述研究工作中,本文只给出了作者在电信软件研 发中的一些成果,并在本文最后部分以四类软交换控制设备的研发为例说明本文研究成 果的实际应用。对于作者在下一代网络和软交换技术等领域的研究工作则没有深入介绍。 3 论文的结构和主要内容 本文研究的主要内容包括电信软件质量模型、电信软件质量属性实现框架、双瀑布软 件过程模型、建模样式技术和建模知识库以及前述内容在四类软交换控制软件系统研发 中的应用等。本论文共包括五章,除结束语外,其它章节的主要内容如下: 1 1 软件工程综述( 第一章) 本章中对当前软件工程学的主要研究内容进行了总结和整理。从软件生命期的概念入 手,分析了软件过程的定义,对软件过程三要素:软件过程模型( s o f t w a r ep r o c e s s m o d e l s ) 、软件开发技术( t e c h n i q u e s ) 和软件过程管理( s o f t w a r ep r o c e s sm a n a g e m e n t ) 涉及的各项内容分别加以阐述。本章的后一部分则主要是针对软件过程中的各种软件 质量管理机制加以分析。本章对软件过程涉及的丰富内容作了整体的、系统的概括, 指明了本文的研究内容在软件工程理论中的位置和作用。 2 1 软件质量模型( 第二章) 电信软件系统作为一种应用于特殊场景的通信软件系统,其软件质量模型与通用软件 系统的质量模型不同。本章中通过对电信系统用户、运营者以及开发管理者对电信软 件系统质量属性需求的整理,提出了电信软件的质量模型。 3 ) 电信软件质量属性实现框架( 第三章) 电信软件质量模型涉及了一系列质量属性。本章通过对实现这些质量属性的常用机制 的整理,提出了电信软件质量属性实现框架。此框架不但提供了对各种实现机制的组 织方式,更为熏要的是此框架可以被用于完成由特定软件质量属性到其实现机制的检 索。 4 ) 双瀑布软件过程模型与建模样式( 第四章) 北京邮屯大学博士学位论文 软件过程模型的重要意义在于此模型将整个软件过程涉及的各个活动组织在一起,为 软件开发人员合理组织软件系统开发工作提供了依据。双瀑布模型与其它软件过程模 型相比最重要的优势在于: a 1 双瀑布模型不但可以被用于指导针对软件系统功能的开发过程,而且可以被用于 指导针对软件系统的各种软件质量属性( 不单是性能) 的开发过程; b ) 双瀑布模型并不是单一的抽象的软件过程模型,而且包括实现此软件过程的必要 的支持工具,如建模样式等。 建模分析技术与样式技术都不是本章的创新,本章的创新在于提出了切实可行的机制 将建模分析技术和样式技术有机的结合在一起,并将此机制无缝的集成于基于i 刀皿 的软件开发过程中,提出了“建模样式”。样式技术的可贵之处在于通过此技术可以 重用本人和他人的经验:但是此技术最大的问题在于没有通用的方法辅助软件开发人 员高效的使用此技术。本章针对此问题引入了建模样式系统和建模知识库,辅助软件 开发人员完成建模样式的使用和维护。 5 ) 双瀑布模型在软交换控制设备软件系统开发中的应用( 第五章) 本章中结合软交换控制软件系统研发的过程详细分析了双瀑布模型及相关机制( 电信 软件质量属性实现模型、建模样式、建模知识库等) 与具体软件过程的结合方式,并 以具体的示例说明了本论文提出的软件过程框架的适用性和应用价值。 4 。论文研究的创新点 本论文的主要创新点可以简要归纳如下: 6 、在对通用软件质量模型的研究和分析的基础之上,根据对电信系统用户、电信系统运 营者以及电信系统开发管理者对电信软件系统质量属性的需求,提出了电信软件系统 的质量模型。此模型不但将电信软件系统的各种软件质量属性加以归纳和整理,而 且可以说明各种软件质量属性的定量或定性特性以及各种软件质量属性之间的关 系。 7 1 通过对电信软件质量模型涉及的各种软件质量属性的常用实现机制的整理,提出了电 信软件质量属性实现框架。此框架不但提供了对各种实现机制的组织方式,而且可 以被用于完成由特定软件质量属性到其可选的实现手段的检索,同时此框架可以被 灵活的扩展、更新。 8 1 针对传统软件过程模型中没有明确提出在软件过程中对各种软件质量属性进行控制 的问题以及现有各种软件质量属性的实现方法难于融入具体的软件过程中的问题,提 出了双瀑布软件过程模型,其中不但明确的提出了针对各种软件质量属性的分析、 评估和反馈机制,而且此软件过程模型可以被用于指导具体的软件开发过程。 9 ) 通过对建模分析技术以及样式机制的分析,提出了可以切实地将建模分析技术与样式 机制有机的结合在一起的一“建模样式”,给出了“建模样式”的i m 1 , 描述、常用 建模样式的示例及建模样式的应用方式。 1 0 ) 针对建模数据不足以及难于检索的问题,提出了“建模样式系统”,并且对“建模样 式系统”的结构和更新机制作了详细的分析和介绍。这些机制可以被无缝的融入双 瀑布软件过程模型中,从而一起构成高质量电信软件系统开发框架,同时保证了此 框架的实用性和可操作性。 6 北京邮电大学博士学位论文第一章软件工程技术综述 第一章软件工程技术综述 软件工程( s o f t w a r ee n g i n e e r i n g ) 作为一个术语,是在1 9 6 8 年北大西洋公约组织的 一次计算机学术会议上正式提出来的。软件工程学是主要应用工程的方法和技术,研究 软件开发与维护的方法、工具和管理的一门计算机科学与工程学交叉的学科。软件工程 的基本出发点是以软件生命周期为基础,吸取工程的方法和技术,将软件开发和维护过 程规范化、科学化【1 】。本章的前一部分将从软件开发过程模型、软件开发方法、软件过 程管理等方面对软件工程领域的各项技术及相互关系加以阐述【1 。本章的后一部分将对 当前高质量软件开发的研究成果加以分析,提出实现高质量电信软件系统研发的思路。 1 1 引言 1 。1 1 软件生命期 软件生命周期( s o f t w a r e l i f ec y c l e ) 是软件工程中最基础的概念。软件工程的方法、 工具和管理都是以软件生命期为基础的活动。软件生命期的基本思想是:任何一个软件 都是提出开始、通过开发、交付使用、到最终被淘汰为止,有一个存在期。软件规模、 种类、开发方式、开发环境与工具、开发使用的模型和方法都影响软件生命周期阶段的 划分。软件生命周期阶段的划分应遵循一条基本原则,即:要使每个阶段的任务尽可能 相对独立,同阶段各项任务的性质应尽可能相同。这样降低每个阶段任务的复杂程度, 简化不同阶段之间的联系,有利于软件开发的管理。 软件生命周期的阶段划分有多种方法。一个典型的阶段划分为:需求分析、设计、实 现、交付与维护等四个阶段。 1 ) 需求分析阶段的主要任务是确定软件的具体功能和非功能需求。这一阶段的任务不是 具体解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”。 2 ) 设计阶段的主要任务是设计软件的结构、算法和实现方案,为软件编码提供设计依据 和算法。设计阶段要解决“如何完成这些功能”问题。 3 ) 实现阶段中要使用某种( 些) 编程语言或工具将软件设计方案实现成软件产品,交付 用户使用。这个时期的基本任务包括程序实现和测试两个方面。 4 ) 交付与维护阶段包含软件验收通过后,交付使用,直到最后淘汰之间的所有时间。这 个事情的主要任务是软件维护。 1 1 2 软件过程 针对“过程( s o f t w a r ep r o c e s s ) ”的定义多种多样,其中比较重要包括以下几种: 1 )“过程( p r o c e s s ) ”是对于一个特定的目标所完成的一系列的操作的步骤,例如: 软件开发过程【3 ; 2 )“过程”是通过一种或多种输入产生对用户有价值的输出的一系列活动集合【4 : 3 )“过程”是一系列的活动、任务和程序,通过对它们的执行可以实现特定的目标f 5 】 4 )“过程”是由于生产以及软件进化的一系列的活动、方法及实践n 北京邮电大学博士学位论文第一章软件工程技术综述 在能力成熟度模型( c m m c a p a b i l i t y m a t u r i t y m o d e l ) 中还进一步定义了“软件过程”, 即开发和维护软件及其相关产品的一组活动、方法、实践和改革。软件及其相关产品指 项目计划设计文档、代码、测试用例、用户手册等。通过“软件过程”的定义可以看出 软件过程将贯穿软件生命期始终,涉及从软件项目的需求分析到软件交付与维护所有各 个阶段的各种操作。对特定软件过程的描述实际上就是对特定软件生命期的具体化和实 例化。从整体而言,软件过程涉及三个主要方面:软件过程模型( s o f t w a r e p r o c e s s m o d e l s ) 、 软件开发技术( t e c h n i q u e s ) 和软件过程管理( s o f t w a r ep r o c e s sm a n a g e m e n t ) ,称为软 件过程的三要素,如图1 1 所示。 图1 - 1 软件过程结构 软件过程模型确定的是软件开发的宏观过程框架,是开发软件项目的总体过程思路。 软件开发方法是具体软件开发活动中应用的技术。确定了软件开发方法和过程模型,软 件实施的最重要问题就是软件生命周期中全过程的管理。软件过程管理包括软件计划、 项目组织、资源分配、软件过程控制、维护活动等软件生命周期的全部活动的管理。 事实上在当前软件工程研究中针对三要素中的任何一种都有了相关的研究,并已经提 出了针对各种应用的解决方案,如:针对软件过程模型已经提出了诸如瀑布模型、原型 模型、螺旋模型等多种模型:针对软件开发方法已经提出了结构化方法、面向对象方法 等;针对软件过程管理更有i s o ,s e i 等多个大型的标准化组织提出的诸如:i s 0 9 0 0 0 系 列、c m m 系列标准。但是一个完整的有效的软件过程应合理的将软件过程模型、软件开 发方法和软件过程管理加以集成,解决集成过程中可能遇到的配合问题。本论文将以这 部分内容作为研究的一个重点。但是在本章接下来的部分将针对当前三要素相关领域的 研究进展加以综述。 北京邮电大学博士学位论文 第一章软件工程技术综述 1 2 软件过程模型 软件开发过程模型确定的是软件开发的宏观过程框架,反映了开发软件项目的总体过 程思路。最传统的最早的软件开发模型是瀑布模型,随着软件工程技术的不断发展,在 软件开发实践中,出现了许多新的或改进的软件开发过程模型,较常见的有:瀑布模型、 原型模型、喷泉模型、螺旋模型等。 1 2 1 瀑布模型 图1 - 2 所示是典型的瀑布模型( w a t e r f a l lm o d e l ) 示意图。瀑布模型的主要包括开发和 确认两个过程。 图1 - 2 瀑布模型 1 ) 开发过程是严格的下导式过程,各阶段间具有顺序性和依赖性,前一阶段的输出是后 一阶段的输入,每个阶段工作的完成需要审查确认。 2 1 确认过程是严格的追溯式过程,后一阶段出现了问题要通过前一阶段的重新确认来解 决。所以问题发现得越晚解决问题的难度就越大。 瀑布模型的主要不足之处是:从认识论角度,人的认识是一个多次反复的过程:实践, 认识,再实践,再认识,多次认识,多次飞跃,最后才能获得对客观世界较为正确的认 识。软件开发是一项智力认识活动,很难一次彻底完成,往往也需要多次反复实践认识 过程。但是,瀑布模型没有反映这种认识过程的反复性。所以,瀑布模型适合软件需求 非常明确、设计方案确定、编码环境熟悉等所有阶段都有较大把握的软件开发活动。 1 2 2 原型模型 瀑布模型是一个严格的自顶向下模型,要求开发人员对每个阶段都预先有较大的把 握。原型模型( p r o t o t y p i n gm o d e l ) 则是借助一些软件开发工具或环境尽可能快地构造一个 实际系统的简化模型。图1 3 是一个原型模型。 北京邮电大学博士学位硷文第一章软件工程技术综述 图1 3 原型模型 原型模型的最大特点是;利用原型法技术能够快速实现系统的初步模型,供开发 人员和用户进行交流,以便较准确获得用户的需求:采用逐步求精方法使原型逐步完善, 是一种在新的高层次上不断反复推进的过程,它可以大大避免在瀑布模型冗长的开发过 程中,看不见产品雏形的现象。 相对瀑布模型来说,原型模型更符合人类认识真理的过程和思维活动,是目前较流行 的一种实用的软件开发方法。但是,采用原型模型也需要满足如下一些条件: 1 ) 首先要有快速建立系统原型模型的软件工具与环境。随着计算机软件飞速发展,这样 的软件工具越来越多,特别是一些第四代语言己具备较强的生成原型系统的能力。 2 ) 原型模型适合于那些不能预先确切定义需求的软件开发。 3 ) 原型模型适合于那些项目组成员( 包括分析员、设计员、程序员和用户等) 不能很好协 同配合,相互交流或通信上存在困难的情况。 1 。2 3 综合模型 事实上,在实际软件开发时,一般都难以严格拘泥于某种开发模型,而需要根据具 体情况综合采用多种策略确定具体可行的开发模型。大多数模型都是基于瀑布模型和原 型模型的一种折中和改进。 喷泉模型( f o u n t a i nm o d e l ) 认为软件生命周期的各阶段是相互重叠和多次反复的,就 像水喷上去又可以落下来,既可以落在中间,也可以落在最底部,类似一个喷泉。喷泉 模型是在面向对象方法中发展而得到的。 1 0 北京邮电大学博士学位论文第一章软件工程技术综述 螺旋模型( s p i r a lm o d e l ) 是在原型模型基础上,引入多次原型反复并增加风险评估的螺 旋式开发模型。在原型模型中,由于需要对原型进行多次评价、改进,可能会引入其他 风险,诸如计划的调整,需求的增加等,螺旋模型正是为克服这一不足而提出来。 1 。3 软件开发方法 软件开发方法是具体软件开发活动中应用的技术。最传统的最早的软件开发方法是结 构化方法,随着软件工程技术的不断发展,在软件开发实践中,出现了许多新的方法, 如:面向对象的方法,面向重用的方法等。 1 3 1 结构化的软件开发 结构化方法( s t r u c t u r em e t h o d ) 是最早的、最传统的软件开发方法。2 0 世纪6 0 年代初, 就提出了用于编写程序的结构化程序设计方法,而后发展到用于设计的结构化设计( s d ) 方法、用于分析结构化分析( s a ) 方法;以及结构化分析与设计技术( s a d ) ;面向数据结构 的j a c k s o n 方法,w a r n l e r 方法等。 常见结构化方法如下: 1 1y o u r d o n 方法,即通常使用的结构化分析与结构化设计( 合称结构化分析与设计方法) , 它适用于一般数据处理系统,是一种较流行的软件开发方法。在实际软件开发中使用 的许多方法都是基于结构化分析与设计的改进方法。 2 ) j a c k s o n 方法也是一种适用于一般数据处理系统的结构化方法。 3 ) w a r n i e r 方法,又称逻辑构造程序的方法,简称l c p ,也是一种面向数据结构的方 法。 4 、s a d t ( s t r u c t u r ea n a l y s i sa n dd e s i g nt e c h n i q u e ) 是d t r o s s 于19 7 3 年提出来的,后 来经过美国s e f f e c h 公司改进。s a d t 以模块图式表示系统构成、系统设计方案,适 合于分析和设计大型复杂系统。其基础是自顶向下、模块化、层次化等结构化思想。 结构化方法的基本思想可以概括为:自顶向下、逐步求精;采用模块化技术、分而治 之的方法,将系统按功能分解成若干模块;模块内部由顺序、分支、循环基本控制结构 组成;应用子程序实现模块化。 结构化方法强调功能抽象和模块性,将问题求解看做是一个处理过程。结构化方法由 于采用了模块分解和功能抽象,自顶向下、分而治之的手段,从而可以有效将一个较复 杂的系统分成若干易于控制和处理的子系统、子系统又可以分解成更小的子任务,最后 的子任务都可以独立编写成子程序模块。这些模块功能相对独立、接口简明、界面清晰, 使用和维护起来非常方便。所以,结构化方法是一种非常有用的软件方法,也是其他软 件方法学的基础。 但是,由于结构化方法将过程和数据分离为相互独立的实体,程序员在编程时必须时 刻要考虑所要处理的数据的格式。对于不同的数据格式做同样的处理或对于相同的数据 格式做不同的处理都需要编写不同的程序,所以结构化程序的可重用性不好。另一方面, 当数据与过程相互独立时,总存在错误的数据调用正确的程序模块或用正确的数据调用 错误的程序模块的可能性。因此,要使数据与程序始终保持相容,已成为程序员一个沉 重的负担。以上这些问题,用面向对象方法就可以得到很好地解决。 北京邮电大学博士学位论文第一章软件工程技术综述 1 3 2 面向对象的软件开发 面向对象方法( o b j e c t e do r i e n t e d ) 是当前软件方法学的主要方向,也是目前最有效、 最实用和流行的软件开发方法之一。 面向对象( 0 0 ) 的概念和思想却由来己久。有人认为,可以将d a n 与n y g a r d 在1 9 6 7 年推出的程序设计语言s i m u l a - 6 7 作为面向对象的诞生标志。s i m u l a - 6 7 首先在程序中引 入了对象概念。但是,面向对象真正的第个里程碑应该是198 0 年s m a l l t a l k - 8o 的出 现。s m a l l t a l k 一8 0 发展了s i m u l a 一6 7 的对象和类的概念,并引入方法、消息、元类及协议 等概念,所以有人将s m a l l t a l k 8 0 称为第一个面向对象语言。但是最后使面向对象广泛流 行的则是面向对象的程序设计语言c + + 。 面向对象的方法认为:客观世界是由许多各种各样的对象组成,每个对象都有各自的 内部状态和运动规律,不同对象之间的相互作用和联系就构成了各种各样不同的系统, 构成了我们所面对的客观世界。 面向对象吸取了结构化的基本思想和主要优点。面向对象方法将数据与操作放在一 起,作为一个相互依存、不可分割的整体来处理。面向对象综合了功能抽象和数据抽象, 采用数据抽象和信息隐蔽技术,将问题求解看做是一个分类演绎过程。与结构化方法相 比,面向对象更接近人们的认识事物和解决问题的过程和思维方法。 早在19 8 2 年,r e n t s c h 就曾预言“2 0 世纪8 0 年代的面向对象程序设计就像2 0 世纪 7 0 年代的结构化程序设计一样,每个人都喜欢用它,每个软件商都开发他们的软件支持 它,每个管理员都要付出代价应用它,每个程序员都要以不同的方式实践它,但是没有 人能讲清楚它”。事实已经证明,2 0 世纪8 0 年代面向对象的研究热潮比2 0 世纪7 0 年代 结构化研究热潮有过之而无不及,所以有人称面向对象是“2 0 世纪8 0 年代的结构化”。 到2 0 世纪9 0 年代的今天,面向对象的方法和技术已经真正达到了r e n t s c h 所预言的那样 一种应用情景,而且,人们正在力图较清楚地描述“面向对象到底是什么”。 面向对象与结构化在概念上主要区别如下: 1 ) 模块与对象 结构化方法中模块是对功能的抽象,每个模块是个处理单位,它有输入和输出。而 面向对象方法的对象也具有模块性,但它是包括数据和操作的整体,是对数据和功能的 抽象和统一。所以,可以说对象包含了模块的概念。 2 ) 过程调用与消息传递 在结构化程序设计中,过程是一个独立实体,明显地为其使用者所见。而在面向对象 程序设计中,方法是隶属于对象的,是对象的功能的体现,不能独立存在的实体。消息 传递机制很自然地与分布式并行程序、多机系统和网络通讯模型取得一致。在结构化设 计中,同一个实参的调用,其结果是相同的,例如,设m a x ( x ,y ) 是求x 和y 最大值的过 程,那么,无论什么时候调用m a x ( 6 0 ,1 0 0 ) ,其结果都是1 0 0 。但在面向对象中的消息传 递则不同,同一消息的多次传递可能产生不同的结果。例如,设消息g o :a p o i n t 千个从发 送点到点a p o i n t 的一条直线,那么,消息g o : 5 0 ,l o o 发给发送点 5 0 ,5 0 的结果是画一条 从坐标点 5 0 ,5 0 n 坐标点 5 0 ,1 0 0 ) 的竖线,而发给发送点 l o ,1 0 0 的结果则是画一条从坐 标点f 1 0 ,1 0 0 到坐标点 5 0 ,1 0 0 的横线。 3 ) 类型与类 1 2 北京邮电大学博士学位论文第一章软件工程技术综述 类型与类都是对数据和操作的抽象,即定义了一组具有共同特征的数据和可以作用于 其上的一组操作。但是,类型仍然是偏重于操作抽象,类则集成了数据抽象和操作抽象, 二者缺一不可。此外,类引入了继承机制,实现了可扩充性。 4 ) 静态链接与动态链接。 在面向对象系统中,通过消息的激活机制,把对象之间的动态链接联系在一起,使整 个机体运转起来,实现系统的动态链接。 相对传统的结构化方法来说,面向对象方法具有更多的优势。当然,面向对象并不是 十全十美和惟一的软件方法,结构化思想和方法是基础,面向对象是在吸取结构化思想 和优点的基础上发展起来的,是对结构化方法的进一步发展和扩充。所以,在实际软件 开发中,常常需要综合应用结构化思想和面向对象方法。 1 3 3 面向重用的软件开发 软件重用多年的实践表明:软件复用有助于大大减少开发时间、改进质量、降低成本。 但是,只有当采用系统化的方法时,软件复用才能发挥效能,从而实现业务目标。正是 在这种情况下多种面向重用的软件开发方法应运而生,其中最为常用的有面向组件的方 法和面向模式的方法。 1 3 3 _ 1 面向组件的软件开发 m c l l r o y 认为系统化的软件复用的基本概念是:开发尺寸合适的组件( c o m p o n e n t ) 系统,并复用这些组件,然后扩展“组件系统”的思想,使其超出单纯的代码范畴,扩 展到需求、分析模型、设计和测试 2 1 1 。 软件开发过程的所有阶段都是“重用”的主角。开发人员可以沿开发链推进,以节省 排除问题的精力,可以尽可能地减少重复工作,增强其工作产品的可靠性,因为每个复 用的组件系统在其最初的开发过程中,都已经过评审和审查。代码组件都已经在其它地 方通过了单元和系统测试,且一般都经过了现场测试。通过这些方法,开发人员可以将 开发时间极大的缩短。同时在 2 0 】中i v a r 等人指出“只有系统化的方法才能取得复用工 作的实效”。所谓的“系统化的复用”指的是软件单元有目的的创建、管理、支持和复 用,可以采用图1 4 说明此问题。 北京邮电大学博士学位论文第一章软件工程技术综述 图1 4 系统化复用 1 1 创建:这个过程标识并提供适合复用人员需求的可复用软件单元。这些软件单元可以 是新的,也可以是重新生成的或采购的各种资源,例如代码、接口、体系结构、测试、 工具等。这个过程可能包括诸如清理和分析现有应用系统和软件单元、领域分析、体 系结构定义、复用需求评估、技术改进、可复用软件单元的测试和打包等活动。 2 1 复用:这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家庭医生巡诊工作总结
- 河南省许昌市禹州市2024-2025学年八年级英语学期6月份期末测试题(含答案无听力音频及原文)
- 北师大版四年级上册数学第五单元 方向与位置 检测题(无答案)
- 2025年甘肃省陇南市西和县中考物理一模试卷(含答案)
- 化妆品偏好调查
- 餐饮行业消费者需求变化与品牌定位研究
- 汉字书法课件模板附草书
- 2025届毕业生就业协议书签订注意事项
- 汉字书法课件楷书字
- 汇报课件模板
- DB51-T 3251-2025 煤矿井下应急广播系统使用管理规范
- 静压植桩机钢管桩施工技术
- 高值耗材点评制度
- 防台防汛培训课件教学
- 2024年施工员题库含完整答案(必刷)
- 道路施工流程讲解
- 有限合伙企业合伙协议
- 保险资管合规风险管理-深度研究
- 2022教师民族团结培训
- 《慢阻肺健康大课堂》课件
- 2024人教版英语七年级下册《Unit 3 Keep Fit How do we keep fit》大单元整体教学设计2022课标
评论
0/150
提交评论