




已阅读5页,还剩65页未读, 继续免费阅读
(计算机软件与理论专业论文)面向对象建模与软件架构技术探讨及应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子科技大学硕士研究生学位论文 摘要 f 自从面向对象概念于八十年代末提出以来,面向对象技术一直是研究的热 点,用面向对象的方法开发软件已成为主潮流。面向对象方法b o o t h , c o a d y o u r d o n ,o m t 和j a c o b s o n 的方法在面向对象软件开发界得到了广泛的认 可。特别值得一提的是统一的建模语言i n l ,该方法结合了b o o c h ,o m t ,和 j a c o b s o n 方法的优点,统一了符号体系,并在许多大规模复杂系统的实际建模 中被证明是一种非常好的软件工程方法。r a t i o n a l 统一过程( r u p ) 是一种先进 的具有用例驱动、以架构为中心、迭代式等特点的面向对象软件开发过程,它具 有很高的灵活性和扩展性,而且能被裁剪以适应不同的需要。由于现在整个系统 是由各种部件组成,所以整个系统的组织,即系统架构,是一个相当重要的软件 构造技术,它是系统具有良好扩展性和灵活性的基础 本文首先对面向对象技术的发展历史,主要是分析设计的方法进行了简要地 介绍后,从理论层次和软件工程要素方面对开发软件系统的若干面向对象技术: u m l 建模、软件体系架构( 4 + l 视图模型) 和面向对象软件开发过程等内容进行 探讨,阐述了三者之间的紧密关系。 随后扼要地介绍了“四川省电信综合营销支撑系统”( 新9 7 ) 的系统建设目 标、系统对象定位、系统背景、接口实现技术等几个方面内容,为下一章阐述新 9 7 系统开发中技术探讨与应用奠定基础。 最后恨据本人参加的“四川省电信综合营销支撑系统”( 新9 7 ) 项目开发过 程中进行分析设计工作的一些实践感悟歹重点探讨了上述主要面向对象技术的实 践应用,包括集成c a s e 工具的软件开发环境、以用例为核心组织需求、迭代式 开发与用例的优先级划分、双向工程的应用和基于j 2 e e 韵系统软件架构等项目 实践内容。 关键词: u m l ;r u p ;面向对象软件开发过程;系统架构;双向工程;迭代;软件生命周期 里王型垫盔堂堡主塑塑竺堂垡笙壅 t h e o b j e c t - o r i e n t e ds o f t w a r ed e v e l o p i n gt e c h n i q u e ,a f t e rt h ec o n c e p to f o b j e c t - o r i e n t e dw a sp u tf o r w a r di n19 8 0 s h a sb e e nt h ef o c u so fs o f t w a r eo r g a n i z a t i o n s o b j e c t - o r i e n t e dt e c h n i q u es u c ha sb o o c h 。c o a d y o u r d o n o m ta n dj a c o b s o nw a s a l r e a d yw i d e l ya c c e p t e di no b j e c t - o d e n t e ds o f t w a r ed e v e l o p i n gf i e l d t h eu n i f i e d m o d e l i n gl a n g u a g e ( u m l ) i s a l a n g u a g e f o r s p e c i f y i n g 。v i s u a l i z i n g 。c o n s t r u c t i n g a n d d o c u m e n t i n gt h ea r t 怕d so fs o f t w a r es y s t e m s a sw e l ia sf o rb u s i n e s sm o d e l i n ga n do t h e r n o n s o f t w a r es y s t e m s t h eu m l r e p r e s e n t sac o l l e c t i o no fb e s te n g i n e a r i n gp r a c t i c e st h a t h a v ep r o v e ns u c c e s s f u li nt h em o d e l i n go fl a r g ea n d c o r n p l e xs y s t e m s r a t i o n a lu n i f i e d p r o c e s si sa r c h i t e c t u r e - c e n t f i c ,u s ec a s ed d v e n i t e r a 6 v ea n di n c r e m e n t a ip r o c e s sa st h e i a t e s te n d e a v o ro fr a t i o n a lc o r p o r a t i o n t h eu n i f i e dp r o c e s si sd e s i g n e df o r f l e x i b i l i t ya n d e x t e n s i b i l i t ya n di tc a nb et a i l o r e dt om e e ty o u re x a c tn e e d s a st h es i z eo fs o f t w a r e s y s t e m si n c r e a s e s ,t h ea l g o r i t h m sa n dd a t as t r u c t u r e so ft h ec o m p u t a t i o nn ol o n g e r c o n s t i t u t et h em a j o r d e s i g np r o b l e m s w h e ns y s t e m sa r ec o n s t r u c t e df mm a n y c o m p o n e n t s t h eo r g a n i z a t i o no ft h eo v e r a l ls y s t e m t h es o f t w a r ea r c h l t e c t u r e p r e s e n t san e w s e to f d e s i g np r o b l e m s aw e l l - d e s i g n e da r c h i t e c t u r ei st h ef o u n d a t i o nf o r a ne x t e n s i b l ea n d c h a n g e a b l es y s t e m i nt h i sp a p e r t h eh i s t o r yo ft h eo b j e c t - o r i e n t e dt e c h n i q u ei si n t r o d u c e df i r s ta n dt h e n f o i l o w e da b o u tt h ed i s c u s s i o na b o u tu m l m o d e l i n g 。o b j e c t - o d e n t e ds o f t w a r ed e v e i o p i n g p r o c e s sa n d t h e 。4 + 1 ”v i e w m o d e l o f s o f t w a r ea m h i t e c t u r e i n t h e t h e o r e t i c a l p e r s p e c t i v e o f s o f t w a r ee n g i n e e n n ge l e m e n t a f t e rt h a t 。s i c h u a nt e l e c o mo p e r a t i o na n ds u p p o r t i n gs y s t e m 。n e w 9 7i nb d e f i s p r e s e n t e d f r o mm a n y a s p e c t ss u c ha ss y s t e mc o n s t r u c tb a c k g r e u n d s y s t e ma i m s 。s y s t e m o b j e c tl o c a t i o na n di n t e r f a c ei m p l e m e n t a t i o nt e c h n i q u e f o rt h en e x td i s c u s s i o na b o u t a p p l i c a t i o no f t h eo b i e c t - o d e n t e d t e c h n i q u em e n t i o n e da b o v e 1 nt h ee n d b a s e do nt h ee x p e r i e n c eo fm ys o f t w a r ed e s i g np r a c t i c ei ns i c h u a n t e l e c o m o p e r a t i o n a n d s u p p on i n gs y s t e m s o f f 怕s o f t w a r ea p p l i c a t i o n ( s o f t w a r e a r c h i t e c t u r eb a s e do nj 2 e e ,i t e r a v ed e v e i o p m e n ta n du s e c a s e - p d o d t i z i n g ,o r g a n i z i n g r e q u i r e m e n tb a s e do nu s e c a s e a n dr o u n d t r i pe n g i n e e d n g i sr e c o m m e 州e di n d e t a i l w i t hl a r g en u m b e r so f e x a m p l ep i c t u r e s k e y w o r d s : u m l r u p , o b j e c t - o r i e n t e d s o f t w a r ed e v e l o p i n gp r o c e s s ,s y s t e ma r c h i t e c t u r e r o u n d t r i pe n g i n e e r i n g ,i t e r a t i o n ,s o f e w a r el i f e - c y c l e i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:堕:垒:) 簦日期:2 曲;年弓月z 曰 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定 签名:煎:垒:l 壁导师签名: 日期:2 o o nv 厶一阳 ,鬻 皇王型垫奎兰堡圭婴窒生堂垡丝苎 刖置 面向对象技术是软件技术的一次革命,在软件开发史上具有里程碑的意义。 面向对象技术提供了一种新的认知和表示世界的思想和方法,它对计算机工业的 影响是深远的。计算机从业人士利用它提出了面向对象的计算机程序设计语言、 面向对象的软件设计方法、面向对象的数据库等等。同时面向对象技术为软件工 业实现工程化提供了强有力的支持,正是面向对象技术造就了u m l 、面向对象软 件开发过程、构件( 组件) 、软件架构( s o f t w a r ea r c h i t e c t u r e ) 、迭代等概念。 本论文注重理论和实际的结合,尤其是图例内容丰富,作者以“四川省电信 综合营销支撑系统”( 简称“新9 7 ”) 开发过程中作者的实践体会,讨论了上述 若干旨在成功开发软件系统的面向对象软件开发技术并详细阐述了新9 7 系统开 发中一些关键技术的应用。 第一章面向对象技术的发展 八十年代末以来,随着面向对象技术的成熟,研究热点从编程语言逐渐转移 到设计与分析上来,出现了几十种支持软件开发的面向对象方法。其中,b o o e h 、 c o a d y o u r d o n 、o m t 和j a c o b s o n 方法在面向对象软件开发界得到了广泛的认可。 面向对象方法都支持三种基本的活动:识别对象和类,描述对象和类之间的 关系,以及通过描述每个类的功能定义对象的行为。 为了发现对象和类,开发人员要在系统霈求和系统分析的文档中查找名词和 名词短语,如事物、角色、事件、互相作用、人员、场所、组织、设备和地点等。 浏览目标系统的脚本,发现重要的对象及其作用,是面向对象分析和设计初期至 关重要的工作。 当重要的对象被发现后,就要着手建立一组互相关联的模型,详细表示类之 间的关系和对象的行为。这些模型从四个不同的侧面表示了软件的体系结构:静 态逻辑摸型、动态逻辑模型、静态物理模型和动态物理模型。 静态逻辑模型描述类与对象的属性与服务,以及对象之间的关联、聚集( 整 体部分关系) 、继承( 一般化) 等关系,因而也称为对象模型。定义对象模型的符 号体系通常是从用于数据建模的实体关系图导出的。 动态逻辑模型描述与时间和变化有关的对象之间的互相作用。动态建模的重 点在于控制,即通过描述系统的操作次序来定义系统运行的行为,这些操作都是 电子科技大学硕士研究生学位论文 对外部触发的晦应。动态模型的基本要素是事件( 表示外部触发) 和状态( 表示对 象属性) ,通常用基于有限状态机的状态转移图表示。 静态物理模型为软件划分模块,描述代码的布局。 动态物理模型描述软件的进程和线程等体系结构设计。 1 1b o o c h 方法 g r a d yb o o c h 所提出的方法,其分析与设计过程包括以下步骤: 1 在给定的抽象层次上识别类和对象; 2 识别这些对象和类的语义; 3 识别这些类和对象之间的关系: 4 实现类和对象。 这四种活动不仅仅是一个简单的步骤序列,而是对系统逻辑和物理视图不断 细化的迭代和渐增的过程。 类和对象韵识别包括找出问题空间中关键的抽象和产生动态行为的重要机 制,开发人员可以通过研究问题域的术语来发现关键的抽象。 语义的识别主要是明确前一阶段所识别出的类和对象的含义,开发人员确定 类的行为( 即方法) 和类及对象之间的互相作用( 即行为的规范描述) 。该阶段利用 状态转移图描述对象状态的模型,利用时态图( 系统中的时态约束) 和对象图( 对 象之间的互相作用) 描述行为模型。 在关系识别阶段描述静态和动态关系模型。这些关系包括封装、实例化、继 承、关联和聚集等。类和对象之间的可见性也在此时确定。 在类和对象的实现阶段要考虑如何用选定的编程语言实现,如何将类和对象 组织成模块。 8 0 0 c h 方法提供了丰富的符号体系,包括;类图( 类结构,静态视图) 、对象 图( 对象结构、静态视图) ,状态转移图( 类结构、动态视图) ,时态图( 对象结构、 动态视图) ,模块图( 模块体系结构) ,进程图( 进程体系结构) 等。用于类和对象 建模的符号体系使用注释和不同的图符( 如不同的箭头) 表达详细的信息。b o o c h 本人曾建议在设计的初期可以用符号体系的一个子集,随后不断添加细节。对每 一个符号体系还有一个文本的形式,由每一个主要结构的描述模扳组成。符号体 系由大量的图符组成,但其语法和语义并没有严格地定义,有较大灵活性。 b o o c h 方法强调基于类和对象的系统逻辑视图与基于模块和进程的系统物理 视图之间的区别,同时也区别了系统的静态和动态模型。但是,这种方法偏向于 系统的静态描述,对动态描述支持相对较少。 1 。2c o a d y o ur d o n 方法 p e t e rc o a d 和e d w a r dy o u r d o n 的方法严格区分了面向对象分析( o o a ) 和面 向对象设计( o o d ) 。 在分析阶段,该方法用五个层次及相关活动定义并记录系统行为,以及系统 的输入和输出。这五个层次及活动如表卜1 所示: 电子科技大学硕士研究生学位论文 表卜1c o a d y o u r d o n 方法中的o o a 层次模型 层砍活动说明 对象类型层发现类及对象从应用领域开始识别类及对象,形成整个应用的基础, 然后据此分析系统的功能 结构层识别结构该阶段分为两个步骤第一是识别一般,特殊结构( 继 习吣,第二是识另q 整体,泓 结构( 聚集) 主题层定义主题主题由一组类殛对象组成,用于将类及对象模型划分 为更大的单位,便于理解 属性定义属性定义对象需要存储的数据,包括对象之间的实例连掺 服务定义暇务定y ;c - 2 t 象所作的工作。包括对象之阃的稍息蜡蚤斋。 经过五个层次的活动后,分析结果是一个分成五个层次的问题域模型,包括 主题、类及对象、结构、属性和服务五个层次,由类及对象图表示。五个层次活 动的顺序并不重要。 在设计阶段,0 0 i 模型是0 0 a 模型的扩展。0 0 d 模型同样包括0 0 a 模型的五 个层次,但同时又引进了四个部分: 问题域部分( p d c ) :面向对象分析的结果直接放入该部分。 人机交互部分( h i c ) :包括对用户分类、描述人机交互的脚本、设计命 令层次结构、设计详细的交互、生成用户晃面的原型、定义h i c 类等。 任务管理部分( t m c ) :识别任务( 进程) 、任务所提供的服务、任务的优 先级、进程的驱动模式,以及任务与其它进程和外界如何通信等。 数据管理部分( d m c ) ;确定数据存储模式,如使用文件系统、关系数据 库管理系统还是面向对象数据库管理系统等。 c o a d y o u r d o n 方法强调技术独立性,从而实现了包括o o a o o d 本身在内的 可复用性。例如,当一个给定的应用系统从图形用户界面( g u i ) 升级到声音响应 接口时,只需替换其中的人机交互部分,其他部分均无需改动,因为用户界面技 术的改变对系统的其他部分是透明的。 1 3o m t 方法 j a m e sr u m b a u g h 的对象建模技术( 0 婀) 从三个视角撼述系统,相应地提供了 三种模型,即对象模型、动态模型和功能模型。 对象模型描述对象的静态结构和它们之间的关系。主要概念包括:类、属性、 操作、继承、关联、聚集等。 动态模型描述系统那些随时间变化的方面。主要概念包括:状态、子状态和 超状态、事件、行为、活动等。 功能模型描述系统内部数据值的转换。主要概念包括:加工、数据存储、数 据流、控制流、角色等。 o m t 方法将开发过程分为四个阶段: 1 分析:基于问题和用户需求的描述,建立现实世界的模型a 本阶段的主 要产物是: 问题描述 对象模型( 对象图+ 数据词典) 动态模型( 状态图十全局事件流图) 电子科技大学硕士研究生学位论文 功能模型( 数据流图+ 约束) 2 系统设计:结合问题域的知识和目标系统的体系结构( 求解域) ,将目标 系统分解为子系统。该阶段将形成系统设计文档,描述基本的系统体系结构和高 层次的决策。 3 对象设计:在分析模型的基础上结合问题域添加实现细节,完成系统设 计。主要设计内容是:将对象模型、动态模型和功能模型分别加以细化,奠定实 现的基础。 4 实现:将设计转换为特定的编程语言或硬件,同时保持可追踪性、灵活 性和可扩展性。 o m t 是一种自底向上和自顶向下相结合的方法。0 m t 的第一步是从问题的陈 述入手,构造系统模型,这是一种自底向上的归纳过程:系统模型建立后的工作 就是分解,这是一种基于服务( s e r v i c e ) 的分解。这种从具体到抽象、再从抽象 到具体的分析、设计过程符合人类的思维规律,使得需求分析更为彻底,系统可 维护性也得以改善。 1 4j a c o b s o n 方法( 0 0 s e ) j a c o b s o n 方法一o o s e ( o b j e c to r i e n t e ds o f t w a r ee n g i n e e r i n g ) 涉及整 个软件生命周期,包括需求分析、设计、实现和测试等四个阶段。 在j a c o b s o n 方法中需求分析和设计密切相关。需求分析阶段的活动包括定 义潜在的角色( 指使用系统的人和与系统互相作用的软、硬件环境) ,识别问题域 中的对象和关系,基于需求规范说明和角色的需要发现u s ec a s e ,详细描述u s e c a s e 。设计阶段包括两个主要活动:从需求分析模型中发现设计对象,以及针对 实现环境调整设计模型。第一个活动包括从u s ec a s e 豹描述发现设计对象,描 述对象的属性、行为和关联,并把u s ec a s e 的行为分派给对象。 在需求分析阶段的识别领域、对象和关系的活动中,开发人员识别类、属性 和关系。关系包括继承、关联、聚集和通讯。随后,定义u s ec a s e 的活动和识 别设计对象的活动,两个活动麸同完成行为的描述。j a c o b s o n 方法还将对象区 分为语义对象( 领域对象) 、界面对象( 如用户界面对象) 和控制对象( 处理界面对 象和领域对象之间的控制) 。 j a c o b s o n 方法提出并特别强调了u s ec a s e 的概念。u s ec a s e 是指行为相关 的事务( t r a n s a c t i o n ) 序列,该序列将在用户与系统交互时执行。因此,每一个 u s ec a s e 就是一个使用系统的方式,当用户给定一个输入,就执行一个u s ec a s e 的实例并引发执行属于该u s ec a s e 的一个事务。基于这种系统视图,j a c o b s o n 将u s ec a s e 模型与以下五种系统模型相结合: 领域对象模型:根据领域来表示u s ec a s e 模型。 分析模型:通过分析来构造u s ec a s e 模型。 设计模型:通过设计来具体化u s ec a s e 模型。 实现模型:依据具体化的设计来实现u s ec a s e 模型。 测试模型:用来测试具体化的u s ec a s e 模型。 u s ec a s e 描述的是现实世界中的一项具体任务如何由一个软件系统来支持, 利用u s ec a s e ,需求人员( 用户) 能够将其要求映射到对象模型中,从而有效地 架起了需求人员( 用户) 、系统分析人员和应用程序开发人员之间交流沟通的桥 梁。 4 电子科技大学硕士研究生学位论文 1 5u m l 方法 统建模语言( u n i f l e dm o d e l i n gl a n g u a g e ) 是一种用于描述、构造软件系 统以及商业建模的语言,综合了在大型、复杂系统的建模领域得到认可的优秀的 软件工程方法。u m l 是大多数公司采用的标准,是a n s i 和o m g 等部门采用的标 准。 1 9 9 3 年r a t i o n a 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 方法, 1 9 9 5 年后期,正式推出0 8 版的u n i f i e dm e t h o d 。1 9 9 6 年,改进的u n i f i e dm e t h o d 正式更名为u m l ( u n i f l e dm o d e l i n gl a n g u a g e ) 。1 9 9 7 年u m l l 0 被提交给对象 技术组织g ( o h l j e c tt e c h n o l o g yo r g a n i z a t i o n ) ,最后,1 9 9 7 年1 1 月1 4 日, o m g 将u m l l 作为行业标准。u m l 结合了b o o c h 、o m t 和j a c o b s o n 方法,统 一了符号体系,并从其它的方法和软件工程实践中吸收了许多经过实际检验的概 念和技术,u 札是g r a d yb o o t h 、d r j a m e sr u m b a u g h 、i v a rj a c o b s o n 、r e b e c c a w i r f s 一8 r o c k 、p e t e ry o u r d o n 和许多其他人员集体智慧的结晶。 u m l 的产生有三方面的原因:首先,不同的面向对象方法有着许多相似之处, 通过这项工作,消除可能会给使用者造成混淆的不必要的差异是非常有意义的; 其次,语义和表示法的统一,可以稳定面向对象技术的市场,使工程开发可以采 用门成熟的建模语言,c a s e 工具的设计者也可以集中精力设计出更优秀的系 统 第三,这种统一能使现有的方法继续向前发展,积累已有钓经验,解决以前 没有解决好的闯题。 u m l 为软件系统建模提供了以下四个方面的支持: 用例模型( u s ec a s e ) :定义系统的用例事件( u s ec a s e ) 、角色( a c t o r ) 及角色与事件之间的交互行为( a s s o c i a t i o n ) 。 类和对象模型:定义类、对象及相互之间的关系。 组件模型:组件是组成应用程序的可执行单元,类被分配到组件中, 以提供可重复使用的应用程序结构部件。组件为即插即用的应用程序结 构奠定了基础。u m l 对可重用性的支持,在设计的前期体现在支持可重 复使用的类和结构,后期则体现在组件装配。 分布处理模型:将软件系统映射到分布处理结构中。u m l 能够描述网 络拓扑结构的节点,这些节点相互的连接方式以及软件系统在网络中的 分布情况。 利用u m l 框图可以开发几种不同的可视框图,表示系统的不同方面。这些框 图主要有: u s ec a s e 框图:显示使用案例c a s e ( 系统功能) 和角色( 表示提供或 接收系统信息的用户和系统) 之间的交互。 s e q u e n c e 框图。显示使用案例的功能流程。 c o l l a b o r a t i o n 框图:显示对象间为完成某个系统功能而进行的交互。 c 1 a s s 框图:显示系统中类与类之间的交互。 s t a t et r a n s i t i o n 框图:c i a s s 框图显示系统中类的静态图形,而s t a t e t r a n s i t i o n 框图显示动态图形,即系统状态分析。 c o m p o n e n t 框图:模型的物理视图,显示系统中的软件组件以及它们之 间的相互关系。 d e p l o y m e n t 框图:显示网络的物理布局和各种组件的位置。 皇王型堡查兰堡主翌塞生兰垡笙壅 第二章u m l 建模及系统架构 2 1 u m l 及其建模 统一建模语言( u n i f i e dm o d e l i n gl a n g u a g e ) 是由r a t i o n a l 公司( 现在 已经被蓝色巨人i b m 重金收购) 发起成立的u m l 组织共同推出的,并提交到对象 管理组织o m g ( w w w o m g o r g ) 申请作为一种标准建模语言( 图2 一i ) 。u m l 的目前 版本是1 4 ,它提供了方便开发团队在分析设计、需求管理等活动中进行交流的 整套工具,以及一个软件开发生命周期模型 r a t i o n a l 统一过程( r u p ) 给出了一 种以u m l 作为建模语言进行软件开发的过程指导 。 盛焱葭 u m l l 4 , 1 3 其蚀方法 b c h 。9 1o m i 1o o s e 图2 - 1 统一建模语言的发展历史 2 1 1 语言概述 u m l 是一种对于软件密集型系统进行可视化、详述、构造和文档化的建模语 言,主要适用于分析与设计阶段的系统建模。标准建模语言u m l 定义良好、易于 表达、功能强大,不仅支持面向对象的分析与设计,而且支持从需求分析开始的软 件开发的全过程。 它捕捉了被构建系统的有关决策和理解,用来理解、设计、浏览、配置、维 护以及控制系统的信息。u m l 可以与所有的开发方法、生命阶段、应用领域和媒 介一同使用。它意图统一过去建模技术的经验,将当前软件最佳实践合并至标准 的方法。u m l 包括语义概念、标记符号和指南,具有静态、动态、环境上的和组 织性的部分。它可以被具有代码产生和报表生成的交互式可视建模工具所支持。 6 电子科技大学硕士研究生学位论文 u m l 规范没有定义标准过程,但可用于迭代的开发过程,并支持现有的大多数面 向对象的开发过程。 u m l 捕捉系统静态结构和动态行为的信息。系统建模成独立对象的集合,它 们互相交互以实现功能,从而最终使外部使用者获益。静态结构定义了对系统具 有重要意义的各种对象和实现,以及它们之间的关系。动态行为定义了对象时间 上的历史和为达成目标对象间的通讯。从不同但是相关的视角来对系统建模,允 许了多种角度对系统的理解。 u m l 还包括用包来分解模型的组织性结构,它允许软件团队将系统分解为可 工作的单元,对包之间的依赖进行理解和在复杂的开发环境中管理模型单元的版 本。它包含了表达实现上的决策和用构件来组织运行时元素的结构。 u m l 不是编程语言。工具可以提供u m l 至各种编程语言的代码生成,以及可 以从现有的程序逆向构筑模型。u m l 不是用于定理证明的高度正式的语言。实际 上有很多正式的语言,但它们不易理解或不适用于多种用途。u m l 是通用性的建 模语言对于特定的领域,如g u i 设计、v l s i 电路设计或基于规则的人工智能, 更特定的语言和工具可能更加合适。u m l 是离散的建模语言,它不打算对如工程 和物理的连续系统建模。u m l 是对诸如软件硬件或数字逻辑的离散系统建模的通 用语言。 u m l 由视图( v i e w s ) 、图( d i a g r a m s ) 、模型元素( m o d e le l e m e n t s ) 和通 用机制( g e n e r a lm e c h a n i s m ) 等几个部分构成。 u m l 中包含用例图、类图、对象图、状态图、序列图、协作图、活动图、组 件图、展开图共九种。使用这九种图就可以描述世界上任何复杂的事物,这就充 分地显示了u m l 的多样性和灵活性。 2 1 2 在软件开发的不同阶段中的应用 u m l 的应用贯穿在系统开发的五个阶段它们是 需求分析:u m l 的用例视图可以表示客户的需求通过用例建模可以对外部的 角色以及它们所需要的系统功能建模角色和用例是用它们之间的关系通信建模 的每个用例都指定了客户的需求他或她需求系统千什么不仅要对软件系统对商 业过程也要进行需求分析。 分析:分析阶段主要考虑所要解决的问题可用u m l 的逻辑视图和动态视图来 描述:类图描述系统的静态结构,协作图、序列图、活动图和状态图描 述系统的动态特征。在分析阶段,只为问题领域的类建模不定义软件系统的 解决方案的细节( 如用户接口韵类数据库等) 。 设计:在设计阶段,把分析阶段的结果扩展成技术解决方案。加入新的类来 提供技术基础结构用户接口,数据库操作等。分析阶段的领域问题类被嵌入 在这个技术基础结构中。设计阶段的结果是构造阶段的详细的规格说明。 构造:在构造( 或程序设计阶段) ,把设计阶段的类转换成某种面向对象程 序设计语言的代码。在对u m l 表示的分析和设计模型进行转换时,最好不要直 接把模型转化成代码,因为在早期阶段,模型是理解系统并对系统进行结构化的 手段。 测试:对系统的测试通常分为单元测试、集成测试、系统测试和接受测试几 个不同级别。单元测试是对几个类或一组类的测试,通常由程序员进行:集成测 试集成组件和类,确认它们之间是否恰当地协作;系统测试把系统当作一个“黑 箱”,验证系统是否具有用户所要求的所有功能;接受测试由客户完成,与系统 测试类似,验证系统是否满足所有的需求。不同的测试小组使用不同的u m l 图 作为他们工作的基础:单元测试使用类图和类的规格说明,集成测试典型地使用 组件图和协作图,而系统测试实现用例图来确认系统的行为符合这些图中的定 义。 2 1 3 提高软件质量 软件设计方法学家有许多有关软件质量的理论,他们关注于讨论软件危机、 软件质量低下,以及良好的设计的重要性。那么u m l 主要是从以下两个方面对 软件质量的提高提供了帮助。 1 ) 标准的表示方法 u m l 是一种建模语言,是种标准的表示,而不是一种方法( 或方法学) 。 方法是一种把人的思考和行动结构化的明确方式,方法需要定义软件开发的步 骤、告诉人们做什么,如何做,什么时候做,以及为什么要这么做。而u m l 只 定义了一些图以及它们的意义,它的思想是与方法无关。因此,我们会看到人们 将用各种方法来使用u m l ,而无论方法如何变化,它们的基础是u m l 的图, 这就是u m l 的最终用途为不同领域韵人们提供统一的交流标准。 我们知道软件开发的难点在于一个项目的参与包括领域专家、软件设计开发 人员、客户以及用户,他们之间交流的难题成为软件开发的最大难题。u m l 的 重要性在于,表示方法的标准化有效地促进了不同背景人们的交流,有效地促进 软件设计、开发和测试人员的相互理解。无论分析、设计和开发人员采取何种不 同的方法或过程,他们提交的设计产品都是用u m l 来描述的,这有利地促进了 相互的理解。 2 ) 与软件开发的成功经验集成 u m l 尽可能地结合了世界范围内面向对象项目的成功经验,因而它的价值 在于它体现了世界上面向对象方法实践的最好经验,并以建模语言的形式把它们 打包,以适应开发大型复杂系统的要求。 在众多成功的软件设计与实现的经验中,最突出的两条,是注重系统架构 的开发,一是注重过程的迭代和递增性。尽管u m l 本身没有对过程有任何定义, 但u m l 对任何使用它的方法( 或过程) 提出的要求是:支持用例驱动( u s e c 硒e d r i v e n ) 、以架构为中心( a r c h t e c t u r e - c e n t r c ) 以及递增( n c r e m e n t a l ) 和迭代 ( i t e r a t i v e ) 地开发。 注重架构意味着不仅要编写出大量的类和算法,还要设计出这些类和算法之 间简单而有效地协作。所有高质量的软件中似乎大量是这类的协作,而近年出现 的软件设计模式也正在为这些协作起名和分类,使它们更易于重用。 迭代和递增的开发过程反映了项目开发的节奏。不成功的项目没有进度节 奏,因为它们总是机会主义的,在工作中是被动的。成功的项目有自己的进度节 奏,反映在它们有一个定期的版本发布过程,注重于对系统架构进行持续的改进。 皇王登塾查堂堡主翌塞生堂焦笙苎 2 1 4u m l 建模 用u m l 语言建造系统模型的时候,并不是只建个模型。在系统开发的每 个阶段都要建造不同的模型,建造这些模型的目的也是不同的。需求分析阶段建 造的模型用来捕获系统的需求、描绘与真实世界相应的基本类和协作关系。设计 阶段的模型是分析模型的扩充,为实现阶段作指导性的、技术上的解决方案。实 现阶段的模型是真正的源代码( s o u r c ec o d e ) ,编译后的源代码就变成了程序。 最后是展开模型,它在物理架构上解释系统是如何展开的。 虽然这些模型各不相同,但通常情况下,后期的模型都由前期的模型扩展而 来。因此,每个阶段建造的模型都要保存下来,以便出错时返回重做或重新扩展 最初的分析模型。如下图2 2 所示: 图2 - 2 用多个模型描述的系统 u m l 语言具有阶段独立性,也就是说,同样的通用语言和同样的图可以用 在不同的阶段为不同的事情建模。这使得建模者能把更多的精力放在考虑模型的 结构和适用范围上。注意,建模语言只能用于建造模型,不能用于保证系统的质 量。 若使用u m l 语言建模,建模工作一定要依照某个方法或过程进行。因为这 个方法或过程列出了应进行哪些不同的步骤,及这些步骤怎样实现的大纲。建模 的过程一般被分为以下几个连续的重复迭代阶段:需求分析阶段、设计阶段、实 现阶段和展开阶段。与实际的建模工作相比,这是一个简单的建模过程。通常情 况下,一组人聚在一起提出问题和讨论目标,就已经开始建模了。他们起讨论 并写如一个非正式的会议记要,记录可能要建造的模型的构想和应有怎样的交 化。 记录会议内容的工具也很不正规,通常在笔记本和白板上书写。这种会议一 直要持续到参与讨论的人感觉这些基本的模型具有一定的可行性了,才会进入下 一阶段。这时形成的模型称为早期的假说。把假说用某一c a s e 工具描述假说模 型就组织起来了,同时按照建模语言的语法规则构建一个真实的图也是可行的 了。再到下一阶段时,前期模型会被更详细地描述,这个阶段主要完成的工作是: 细化解决问题的方案和文档提取更多的解决问题需要的信息。这个工作可能需要 几经反复才能最后完成。通过这个阶段的工作,假说也逐渐变成一个可使用的模 型了。 再接下来的步骤是集成( i n t e g r a t i o n ) 和验证( v e r i f i c a t i o n ) 模型。集成就是 把同一系统中的各种图或模型结合起来,通过验证工作保证图与图之间数据的 致性。通过验证工作保证模型能够正确地解决问题。如图2 - 3 所示: 一皇型垫查堂堡主堑塞生堂堡垒壅 图2 - 3 实际建模工作的大致流程 最后,在实际解决问题的时候,模型被实现为各种原型( p r o t o t y p e ,原型定 义见5 3 迭代式开发与用例的优先级划分) 。生成原型时,要对生成的原型进行 评价,以便发现可能潜在的错误、遗漏的功能和开发代价过高等不足之处。如果 发现了上述不足之处,那么开发人员还要返回到前期的各个阶段步骤,排除这些 问题。如果问题很严重,开发者或许最终要返到刚开始的集体讨论,描绘草图的 阶段,重新建模。当然,如果问题很小,开发者只需改变模型的一部分组织和规 格说明。注意,把图原型化的工作,一定要在把多个图结合成原型结构之后。 原型只是一个很粗浅的东西,构建原型仅仅是为了对其进行评价,发现其中 的不足之处,而对原型进一步地开发过程才算得上真正的系统开发过程。 2 1 5 正确看待u m l 在r u p 中,企业的业务过程用业务用例( b u s i n e s su s e 馓) 表示,软件系 统的功能需求用一般的u m l 用例表示。在此基础上r u p 很好地解决了从业务 建模到系统建模的过渡和衔接问题,充分体现了u m l 统一性的突出优点。 然而,u m l 图形的表达能力也不是无限的。u m l 是一种离散的建模语言, 并不适合对诸如工程和物理学领域中的连续系统建模。在u m l 业务建模过程中 也少不了用文字或其他符号来说明需求( 见图2 - 4 ) ) 例如,u m l 用例图能描述 绝大部分的功能需求,但对于一些非功能性需求( 比如性能、时间、规则等) , 1 0 则需要用u m l 约束、标记值、附加的文字注释( 或独立文档) 以及其他的传统 表示方法来补充说明。设计u m l 的真实目的并非企图完全取代文字说明,而是 希望用半形式化、更加抽象的砸向对象可视化手段来促进人们对问题取得更为深 入和一致的理解,从而提高软件设计的质量和开发过程的自动化水平。 图2 - 4u m l 、文字、其他符号需求描述能力的关系 世界上原本就不存在完美无缺的技术,u m l 自然不能例外,其规范文本也 一直在不断完善、修订以消除差错,u m l 出现的问题只能说是发展中的问题。 2 2 软件系统架构 2 2 1 架构简介 架构是复杂摩天大楼的核心设计问题,同样,软件架构是软件系统的核心设 计问题,不过软件架构还有其他方面的复杂性。软件系统的关键性能属性和特征 的描述的基本有效的方法依赖于使用它的环境。所以在明确描述软件架构时,它 必须依赖于某种形式的试验。这是要转移到迭代式过程的一个主要的原因。在迭 代式过程中,前期的活动强调通过原型和演示促进架构的改进。 在“软件构架简介”中,d a v i dg a r l a n 和m a r ys h a w 认为软件构架是有关如 下问题的设计层次:“在计算的算法和数据结构之外,设计并确定系统整体结构 成为了新的问题。结构问题包括总体组织结构和全局控制结构;通信、同步和数 据访问的协议;设计元素的功能分配;物理分布;设计元素的组成;定标与性能; 备选设计的选择”。 但构架不仅是结构:i e e ew o r k i n gg r o u p0 1 1a r c h i t e c t u r e 把其定义为“系统 在其环境中的最高层概念”。构架还包括“符合”系统完攘性、经济约束条件、审 美需求和样式。它并不仅注重对内部的考虑,而且还在系统的用户环境和开发环 境中对系统进行整体考虑,即同时注重对外部的考虑。 在r a t o n a lu r d f i e dp r o c e s s 中,软件系统的构架( 在某一给定点) 是指系统 重要构件的组
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年皮肤科医生的皮肤病诊断与治疗技能考核答案及解析
- 2025年消化内科慢性胃炎诊治知识考核答案及解析
- 飞出地球去课件
- 外协单位安全培训方案课件
- 2025年传染病防控与管理实务考核答案及解析
- 2025年康复医学病例诊断模拟试卷答案及解析
- 2025年肾脏功能障碍处理方法应用考核答案及解析
- 2025年影像学科医学影像诊断案例分析卷答案及解析
- 2025年心理医学心理测试与评估知识模拟试卷答案及解析
- 抽水蓄能电站项目商业计划书
- 2025年秋国家开放大学《形势与政策》形考大作业答案
- 化工安全网络培训课件
- 2025-2026学年人美版(2024)小学美术二年级上册(全册)教学设计(附目录P188)
- 2025版煤矿安全规程学习培训课件
- 2025-2026学年地质版(2024)小学体育与健康二年级全一册《别让眼睛受伤害》教学设计
- 2025年高考(新课标Ⅱ卷)英语试题及答案
- 培训机构紧急封控应急预案
- 2025年职业技能鉴定考试(婴幼儿发展引导员·高级/三级)历年参考题库含答案详解(5套)
- 无人机培训招生宣讲
- 2025至2030中国干冷器行业发展趋势分析与未来投资战略咨询研究报告
- 初中人教英语七年级至九年级全册单词表(按单元)
评论
0/150
提交评论