现代软件工程学_第1页
现代软件工程学_第2页
现代软件工程学_第3页
现代软件工程学_第4页
现代软件工程学_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、现代软件工程学学号:现代软件工程学论文课程名称现代软件工程学学院计算机科学与技术学院指导教师武汉理工大学现代软件工程学论文2015 2016学年 第1学期4武汉理工大学现代软件工程学论文课程论文选题内容:在对传统软件工程深入理解和融会贯通的基础之上,详细阐述现代软件工程的前沿方法与技术。 在此基础上,分析传统软件 工程与现代软件工程的不同之处以及现代软件工程方法的优势。 并结合某实际系统,阐述并描述其中用到的一种现代软件工程方 法。5武汉理工大学现代软件工程学论文目录1. 传统软件工程分析 72. 现代软件工程方法 122.1面向对象的软件开发方法 122.2软件构架方法 .172.3软件复用

2、与构件方法 192.3.1软件复用192.3.2软件构件技术192.3.3软件复用和软件构件的关系.202.4统一建模语言方法222.4.1UML 的特点242.5形式化方法273. 传统软件工程与现代软件工程比较 284. 软件构架技术在网管系统的应用 314.1管系统分析及设计324.2具体实现337武汉理工大学现代软件工程学论文现代软件工程在网管系统中应用分析 摘要:本文首先对传统软件工程进行深入理解,详 细阐述现代软件工程的前沿方法与技术。 然后分 析传统软件工程与现代软件工程的不同之处以 及现代软件工程方法的优势。最后结合软件构架 技术分析现代软件工程方法在网管系统实例中 的作用。关

3、键字:传统软件工程,现代软件工程,网管系统1.传统软件工程分析“软件工程”一词是由北大西洋公约组织的 计算机科学家在联邦德国召开的国际会议上首 次提出来的。软件工程的发展经过了 “程序设计 时代”、“程序系统时代”、“软件工程时代”三个 时代。随着计算机应用领域的不断拓广,各种各样 的问题也不断涌现,当问题严重到开发人员无法 控制的时候便产生了软件危机。软件危机的出 现,促使了软件工程学的形成和发展。随之整合 整套技术的软件工程方法学广泛应用,主流之一 就是传统方法学。传统方法学在软件开发过程中 占据相当大的比重,因为其悠久的历史而为很多 软件工程师青睐。如果说自然语言和编程语言之 间有一道难

4、以跨越的鸿沟,传统方法学就是跨越 这道鸿沟的桥梁。传统方法学又称生命周期方法学或结构化 范型。一个软件从开始计划起,到废弃不用止, 称为软件的生命周期。在传统的软件工程方法 中,软件的生存周期分为一般分为软件计划、软 件开发和软件运行三个时期。软件计划时期一般 分问题定义和可行性研究两个阶段;开发时期分 需求分析、软件设计(包括概要设计、详细设计)、 编码和测试四个阶段;运行时期主要是维护阶 段。在传统软件工程方法的分析阶段。所有用的 主要工具有数据字典(DD),尸体一关系图(ERD), 数据流图(DFD)和状态一变换图(STD);在传统软 件工程方法的设计阶段,所使用的主要工具有针 对总体设

5、计的模块结构图(MSD)和针对详细设 计的流程图,在目前实际的软件开发中,通常不 使用流程图,而直接通过编程完成详细设计,所 以较新的部分文献中,设计阶段包括了总体设 计,详细设计和编程阶段,三者之间的界限比较 模糊。传统方法学使用的是结构化分析技术来完 成需求分析阶段的工作。软件工程学中的需求分 析具有两方面的意义。在认识事物方面,它具有 一整套分析、认识问题域的方法、原则和策略。 这些方法、原则和策略使开发人员对问题域的理 解比不遵循软件工程方法更为全面、深刻和有 效。在描述事物方面,它具有一套表示体系和文 档规范。但是,传统的软件工程方法学中的需求 分析在上述两方面都存在不足.它在全局范

6、围内 以功能、数据或数据流为中心来进行分析。这些 方法的分析结果不能直接地映射问题域,而是经 过了不同程度的转化和重新组合。因此,传统的 分析方法容易隐蔽一些对问题域的理解偏差,与 后续开发阶段的衔接也比较困难。在总体设计阶段,以需求分析的结果作为出 发点构造出一个具体的系统设计方案,主要是决 定系统的模块结构,以及模块的划分,模块间的 数据传送及调用关系。详细设计是在总体设计的 基础上考虑每个模块的内部结构及算法, 最终将 产生每个模块的程序流程图。但是传统的软件工 程方法中设计文档很难与分析文档对应,原因是 二者的表示体系不一致,所谓从分析到设计的转 换,实际上并不存在可靠的转换规则,而是

7、带有 人为的随意性,从而很容易因理解上的错误而留 下隐患。编程阶段是利用一种编程语言产生一个能 够被机器理解和执行的系统,测试是发现和排除 程序中的错误,最终产生一个正确的系统。但是 由于分析方法的缺陷很容易产生对问题的错误 理解,而分析与设计的差距很容易造成设计人员 对分析结果的错误转换,以致在编程时程序员往 往需要对分析员和设计人员已经认识过的事物 重新进行认识,并产生不同的理解。因此为了使 两个阶段之间能够更好的衔接,测试就变得尤为 重要。软件维护阶段的工作,一是对使用中发生的 错误进行修改,二是因需求发生了变化而进行修 改。前一种情况需要从程序逆向追溯到发生错误 的开发阶段。由于程序不

8、能映射问题以及各个阶 段的文档不能对应,每一步追溯都存在许多理解 障碍。第二种情况是一个从需求到程序的顺向过 程,它也存在初次开发时的那些困难,并且又增 加了理解每个阶段原有文档的困难。传统软件工程方法面向的是过程,它按照数 据变换的过程寻找问题的结点,对问题进行分 解。由于不同人对过程的理解不同,故面向过程 的功能分割出的模块会因人而异。对于问题世界 的抽象结论,结构化方法可以用数据流图,系统 结构图,数据字典,状态转移图,实体关系图来 进行系统逻辑模型的描述,生产一个最终能满足 需求且达到工程目标的软件产品所需要的步骤。传统软件工程方法学强调以模块为中心, 采 用模块化,自顶向下,逐步求精

9、设计过程,系统 是实现模块功能的函数和过程的集合,结构清 晰,可读性好,是提高软件开发质量的一种有效 手段。结构化设计从系统的功能入手,按照工程 标准,严格规范地将系统分解为若干功能模块, 因为系统是实现模块功能的函数和过程的集合。 然而,由于用户的需要和软硬件技术的不断发展 变化,作为系统基本组成部分的功能模块很容易 受到影响,局部修改甚至会引起系统的根本性变 化。开发过程前期入手快而后期频繁改动的现象 比较常见。当然,传统的软件工程方法学也存在很多的 缺点,主要表现在生产效率非常低,从而导致不 能满足用户的需要,复用程度低,软件很难维护 等。虽然如此,传统方法学仍然是人们在软件开 发过程中

10、使用的十分广泛的软件工程方法学,在 开发某些类型的软件时也比较有效。因此传统软 件工程方法学的价值并不会因现代软件工程的 出现而减少。2现代软件工程方法正是因为传统软件工程方法的弊端逐渐显 现出来,为现代软件工程方法的出现创造了条 件,其方法可以简单的分为:分析、设计、编码、 测试和维护五个阶段,其同传统软件工程方法有 着极大的相同点。2.1面向对象的软件开发方法面向对象方法(Object-Oriented Method)是 一种把面向对象的思想应用于软件开发过程中, 指导开发活动的系统方法,简称 OO (Object-Oriented)方法,是建立在“对象"概念 基础上的方法学。对

11、象是由数据和容许的操作组 成的封装体,与客观实体有直接对应关系,一个 对象类定义了具有相似性质的一组对象。而每继 承性是对具有层次关系的类的属性和操作进行 共享的一种方式。所谓面向对象就是基于对象概 念,以对象为中心,以类和继承为构造机制,来 认识、理解、刻画客观世界和设计、构建相应的 软件系统。相对于传统的软件工程思想而言,面向对象 的思想更符合人类的思维逻辑,它淡化了计算机 的观点,以现实世界中的模型作为构造软件系统 的依据。面向对象的基本概念包括对象、类、封 装、继承和多态,下面介绍。1.对象对象可以是客观世界中存在的事物, 也可以 是概念化的实体,它由一组属性和操作组成。属 性是用来描

12、述对象静态特征的数据项,是对客观 世界实体所具有性质的抽象。操作是用来描述对 象动态特征。比如,把人当成一个对象,那么他 的属性就有身高、体重、姓名和年龄等静态特征, 他的操作就包括工作、学习、吃饭和运动等;把 汽车当成一个对象,那么它的属性就有品牌、颜 色、价格和寿命等,它的操作就包括加速、减速 和刹车等。理解对象的概念时,需要注意以下几 点。对象的数据是封装起来的,对数据的处理需 要通过特定的操作。对象之间通过传递消息进 行通信,不同的对象独立地处理自身的数据。 对 象具有主动性。要处理对象的内部数据时,外界 需要通过接口向对象发送消息,请求它执行特定 的操作。2.类类是对对象的抽象,是对

13、具有相同属性和相 同操作的一组相似对象的定义。通常情况下,很 多对象都有相似的特征。比如,对于两个教师, 他们虽然可能身高、体重、性别、年龄和籍贯等 特征不同,但是职业却是相同的;对于两把椅子, 它们可能颜色、形状、价格和位置等特征不同, 但是作用却是相同的。在这种情况下,我们就可 以忽略事物的非本质特征,只注意那些与当前目 标相关的本质特征,从中找出事物的共性,把本 质特征相同的事物划分为一类,即将多个对象抽 象为类。对于同类对象,它们具有相同的属性和 操作,但是每个对象的属性值可能不同,执行操 作的结果也可能不同。比如,在教务管理系统中, 可以定义“学生”类,并定义编号、姓名和院系 等属性

14、,及登录该系统进行操作。每位学生都有 自己特定的编号、姓名和院系等属性值,并且执 行登录操作后,都会进入个性化的主页。谈到类的概念,就必须知道什么是类的实 例。实例是由某个特定的类描述的一个具体的对 象。比如,对于“教师"类,某位教师“王一" 就是类的一个实例;对于"学生”类,某位学生 “李二”就是该类的一个实例。3.封装封装是指把对象的属性和操作结合在一起, 组成一个独立的单元。圭寸装强调两个概念,即独 立和封闭。独立是指对象是一个不可分割的整体,它集 成了事物全部的属性和操作,并且它的存在不依 赖于外部事物。封闭是指与外部的事物通信时,对象要尽量 地隐藏其内部

15、的实现细节,它的内部信息对外界 来说是隐蔽的,外界不能直接访问对象的内部信 息,而只能通过有限的接口与对象发生联系。可以说,类是数据封装的工具,而对象是封 装的实现。类的成员又分为公有成员、私有成员 和保护成员,它们分别有不同的访问控制机制。封装是软件模块化思想的重要体现。4. 继承继承表示类之间的层次关系,它使得某类对 象可以自动拥有另外一个或多个对象的全部属 性和操作。比如,某系统已经定义了一个学生类, 现在还需要定义一个研究生类。由于研究生也属 于学生的一种,它具有学生所有的一切属性和操 作,这时就可以采用继承的方法,使研究生类直 接获得学生类的一切属性和操作。在这个系统 中,研究生类就

16、叫做子类或派生类,学生类就叫 做父类或基类。子类可以把父类定义的内容自动 作为自己的部分内容,同时再加入新的内容。继承可以分为单重继承和多重继承。单重继承是指一个子类只有一个父类。多重继承是指一个子类可以同时继承多个父类。单重继承构成的类之间的关系是树状结构, 多重继承构成的类之间的关系是网状结构。继承 简化了定义一个新类的过程,有利于人们对事物 的认识和描述,达到了软件复用的目的。5. 多态多态是一种使父类中定义的属性或操作被 子类继承后,可以有不同的实现的机制。换句话 说,多态允许属于不同类的对象对同一消息做出 不同的响应。当一个对象接收到进行某项操作的 消息时,多态机制将根据对象所属的类

17、,动态地 选用该类中定义的操作。比如,先定义一个父类“几何图形”,它具有“计算面积”的操作,然 后再定义一些子类,如“三角形”、“长方形”和“圆形”,它们可继承父类“几何图形”的各种 属性和操作,并且在各自的定义中要重新描述“计算面积”的操作。这样,当有计算几何图形 面积的消息发出时,对象会根据类的类型做出不 同的响应,采用不同的面积计算公式。多态这种机制极大地减少了软件设计中的 冗余信息,提高了软件的可复用性和可扩展性。2.2软件构架方法软件构架(又称软件体系结构)描述的是系统 整体设计格局,它为“基于构件的软件开发”(CBD,Component Based Software Develop

18、ment) 提供了构件组装的基础和上下文。基于软件构架 技术的软件开发是把软件的开发看作一个组装 过程,以软件构架为组装蓝图,在软件构架的指 导下寻找可复用构件(及开发一些新构件)并进行 系统组装。重用不仅要重用旧的代码,而且要重 用相似的分析设计结果和体系结构,来减少构造 新软件系统的代价并提高软件的可靠性。单独类 的重用,尽管有用,但由于重用力度小,而不能 产生质的飞跃,只有把特定领域的体系结构作为 一个整体进行重用才能取得引人注目的成就。将 构架作为系统构造和演化的基础,可以实现大规 模、系统化的软件复用。特定领域软件构架是一个领域中的所有应 用系统所共有的体系结构,是针对领域模型中的

19、领域需求给出的解决方案,也是识别、开发和组 织特定领域可复用构件的基础(或称中间件)。在 一个专用领域内构造构架时,把握构架的共同点 是关键因素。构架一旦被建立,其适应性和可扩 展性就被提到了首要地位。构架的直接目的是被 复用,以减少建立一个新应用系统的工作量。 构 造系统构架是一个逐渐积累的过程,就是说不断 有新发现的共同点和新的构件被加入,同时那些 老的、不必要的构件被删除,以此来保证整个应 用系统的性能,这样新旧构件之间的接口直接影 响构架的适应性和可扩展性。任何构架都不能被 直接复用,除非要建立的应用系统非常简单或者与构架极为相似,除此之外,都要对构架进行或 多或少的修改和扩展才能被复

20、用。2.3软件复用与构件方法231软件复用软件复用是指"为了重复使用而设计的软 件”的过程,是将已有的软件及其有用成分用于 构造新的软件或系统。它不仅是对软件程序的复 用,还包括对软件生产过程中其它劳动成果的复 用,如项目计划书、可行性报告、需求分析、概 要设计、详细设计、源程序、测试用例、文档与 使用说明等等。软件复用可以有效地提高软件的质量和生 产率,它包括开发可复用软件构件和基于可复用 构件的开发两个生命周期。在这两个生命周期 中,采用一个适当的标准以识别和开发可复用软 件将大大促进软件复用的实践。2.3.2软件构件技术软件构件是指应用系统中可以明确辨识的 构成成分,包括源代码

21、、需求、系统和软件的需 求规约、系统和软件的构架、文档、测试计划、测试案例和数据以及其他开发活动有用的信息 基于构件的开发来自于利用构件生产应用软件 的概念。开发者可在设计和详细描述阶段。使用 内部开发的构件和公开市场的构件来为他们的 应用软件提供尽可能多的功能。然后,开发者编 写其它的构件来粘连代码,把构件连接。他 们可以把新写的构件放进公司的知识库, 以至于 其它人就可以使用这些构件的功能。 这种做法有 效提高了软件重用的效率并降低了开发成本。2.3.3软件复用和软件构件的关系软件复用就是利用已有的软件成分来构造 新的软件,它可以减少软件开发所需的费用和时 间,且有利用提高软件的可维护性和

22、可靠性。 构 件软件是目前发展最快的软件复用方式之一。推 动构件技术发展的最大动力就是软件复用。构件 软件解决两个重要问题:一是重用,即构件具有 通用的特性,所提供的功能能为多种系统使用; 二是互操作,即不同来源的构件能相互协调、通 信,共同完成更复杂的功能。构件软件技术是一种社会化的软件开发方 法,它使得开发者可将由不同语言、 不同供应商 开发的构件经过软件重用组合在一起来构造软 件。现阶段构件沿袭了对象的封装特性,但同时 并不局限在一个对象,其内部可以圭寸装一个或多 个类、类群、原型对象甚至过程、程序包,结构 是灵活的。构件突出了自包容和被包容的特性, 这就是作为软件生产线上零件的必要特征

23、。当今 流行的构件平台如J2EE平台,CORBA平台, NET平台都是由"构件模型十构件运行虚拟机" 组成。如J2EE平台的构件模型是EJB模型,构 件运行虚拟机是JVM ; CORBA平台的构件模 型是CCM,构件运行虚拟机是 ORB ; . NET平 台的构件模型是 DCOM,构件运行虚拟机是 CLR。构件技术是随着计算机技术的发展而发展 的前沿的软件设计思想,它对整个软件行业的发 展有着重要的推动作用。构件技术按功能可分为 三层:底层构件为基本数据类构件和系统支撑构 件,包括数据库构件、代码表构件;中间层为各 种通用的构件包括消息中间件、数据交换中间件 等;顶层为针对

24、各种领域的专用构件或子系统构 件,例如统计构件,查询构件等。从粒度上看通 常底层的粒度为较小,而顶层的粒度为较大构件技术的中间件作为应用软件系统集成的关键技 术,保证了构件化思想的实施,并为构件提供了 真正的运行空间。现在中间件领域工业化标准的 制定、统一、实现,使基于构件的应用开发成为 可能。反之,构件对新一代中间件产品中也起到 促进作用。2.4统一建模语言方法统一建模语言 UML ( Unified Modeling Language)是由Rational公司的知名专家 Gray Booch, Ivar Jacobos on 禾口 Jim Rum baugh 联 合开发的第三代面向对象(O

25、bject-oriented,简 称00)的建模语言,它采纳和扩展了 Booch标 记法、OMT ( Object-oriented Modeling and Design)标记法和OOSE标记法,还吸取了面向 对象技术中其它流派的长处,其中也包括非OO方法的影响。在UML中汇入了 OO领域中很多 人的思想,这些思想并不是UML的开发者发明 的,而是依据其他最优秀的OO方法和丰富的计 算机科学实践经验综合提炼而成的,同时UML在演变过程中也提出了一些新的诸如模板、职 责、扩展机制、线程、过程、分布式、并发、模 式、合作、活动图等新概念,并清晰地区分类型、 类、实例、细化、接口和部件等概念,具有

26、很宽 的应用领域。UML适用于以00技术来描述任 何类型的系统,而且适用于系统开发的不同阶 段,从需求规格描述直至系统完成后的测试和维 护。UML描述了一个系统的静态结构和动态行 为。UML将系统描述为一些离散的相互作用的 对象并最终为外部用户提供一定的功能的模型 结构。静态结构定义了系统中的重要对象的属性 和操作以及这些对象之间的相互关系。动态行为 定义了对象的时间特性和对象为完成目标而相 互进行通信的机制。从不同但相互联系的角度对 系统建立的模型可用于不同的目的。 UML还包 括可将模型分解成包的结构组件,以便于软件小 组将大的系统分解成易于处理的块结构,并理解 和控制各个包之间的依赖关系

27、,在复杂的开发环 境中管理模型单元。它还包括用于显示系统实现 和组织运行的组件。UML不是一门程序设计语 言。但可以使用代码生成器工具将 UML模型转 换为多种程序设计语言代码,或使用反向生成器 工具将程序源代码转换为UML。2.4.1UML的特点2.4.1.1形式化UML定义米用了形式化技术,但并不是完 全形式化的规约,对于语法结构给出了精确的规 约,对其动态语义使用自然语言描述。UML定义在元模型层上,使用抽象语法(采用UML的类 图描述元素之间的关系)、形式化规约(采用自然 语言和对象约束语言)、语义(米用自然语言)描述 元模型这样,UML元模型通过自然语言文本和 用UML完成的类图进行

28、组合描述。形式化方法 提供了规约环境的基础,它使得生成的模型比传 统的模型更完整,一致和无二义。虽然基于形式 的、数学的规约技术还没有在产业界广泛应用, 但它确实比欠形式化方法有实质的优点。2.4.1.2简单性UML是比较复杂的,在元模型层大约有90 个元类、50个版式,分为3个大包:基础、行为、 管理。每个包有许多子包。整个UML规范有674 页。UML的基础原则也许几个小时就可搞植, 然而要理解全部的概念、概念之间的关系、基础 元模型则需要大量的时间和精力,比学一门程序 设计语言难得多。如果建模语言简单、较小、易 于记忆,用户将全部掌握它。用户主要是使用建 模语言而不是学习它。复杂的建模语

29、言,花费用 户大量的时间,同时相应的CASE工具也比较难 以实现。我们认为UML应该适当简化。241.3唯一性UML在很多地方有大量的重复,有多种方 法表示同一概念。如序列图和协作图在语义上是 完全一样的,可用注释,也可用OCL表示约束。 这样的重叠,理论上说是应该取消的,或者应该 给出明确的指导原则说明什么时候采用什么形 式。对于重复的概念,我们可以选择一个表示方 法作为标准,其它方法可用 CASE工具自动生 成。241.4无缝性使用UML进行无缝开发,必须去掉开发过 程中概念的转变,即在设计、分析、实现中使用 同一概念。无缝性,独立于程序语言 比如,如 果模型中有多重继承,然而我们使用不支

30、持多重 继承的Java语言,那么我们就无法做到无缝开 发。将UML与程序语言结合,如 UML-Java, UML-C+,可做到一定的无缝性。无缝性有助 于从模型中生成代码,也有助于软件的维护。无 缝性使得问题域中的抽象映射到解空间的实现 时,表示符号不变。这样避免了软件开发过程中 各种模型的不匹配。在面向对象的无缝开发过程 中,在各个阶段开发者都在同一抽象层上。在这 点上,UML还需要改进。241.5可逆性UML通过软件工具可实现模型与代码的同 步,这种实现在现阶段还是比较弱的。Ratio nalRose能实现模型与VC+,VB ,Java代码的同步, 但现阶段只能做到框架同步。可逆性对于产生

31、可 维护的软件非常有用,可保持模型与代码同步, 可帮助创建和维护系统文档。模型中的改变可映 射到代码中,代码的改变也能映射到模型中。241.6支持性通常人们使用某种辅助软件来建立模型。这 种软件应该易于建立正确的模型,易于使模型与代码同步。工具支持建模语言是非常重要的建模语言的支持性指的是要有软件工具支持建模 语言,在表示符号上要易于在计算机屏幕上绘 出,在语义上要易于模型与代码的同步这点UML做的非常好。2.5形式化方法形式化方法是描述系统性质的基于数学的 技术。这样的形式化方法提供了一个框架, 人们 可以在框架中以系统的而不是特别的方式刻划、 开发和验证系统。如果一个方法有良好的数学基 础

32、,那么它是形式化的,典型地以形式化规约语 言给出的。这个基础提供一系列精确定义的概 念,如一致性和完整性,以及更进步,定义规约、 实现和正确性。形式化方法的一个重要研究内容是形式规 约,它是对程序“做什么”的数学描述,是用具 有精确语义的形式语言书写的程序功能描述,它 是设计和编制程序的出发点,也是验证程序是否 正确的依据。对形式规约通常要讨论其一致性和 完备性等性质。形式规约的方法主要可分为两 类:一类是面向模型的方法也称为系统建模,该 方法通过构造系统的计算模型来刻画系统的不 同行为特征;另一类是面向性质的方法也称为性 质描述,该方法通过定义系统必须满足的一些性 质来描述一个系统。不同的形

33、式规约方法要求不 同的形式规约语言,即用于书写形式规约的语 言,如代数语言 One/Two等;进程代数语言; 时序逻辑语言等;这些规约语言由于基于不同的 数学理论及规约方法,因而也千差万别,但它们 有一个共同的特点,即每种规约语言均由基本成 分和构造成分两部分构成。前者用来描述基本规 约,后者把基本部分组合成大规约。 构造成分是 形式规约研究和设计的重点,也是衡量规约语言 优劣的主要依据。形式化方法的分类:(1)根据说明目标软件 系统的方式,形式化方法可以分为面向模型的形 式化方法和面向属性的形式化方法。(2)根据表 达能力,形式化方法可以划分为基于模型的方 法、基于逻辑的方法、代数方法、过程

34、代数方法、 基于网络的方法。3.传统软件工程与现代软件工程比较传统软件工程,就是运用传统工程学的基本 原理和方法来组织多种软件管理的生产、研究、 开发、维护和跟进的软件科学学科;现代软件工 程,就是充分运用系统工程学和管理工程学双管 齐下,利用国内外各种新型的信息和理论作为武 装的新型软件管理学的系统开发设施。 两者比较 之下,传统软件工程作为软件科学的带头人, 具 备涵括性大、运用知识渊博、内外素材兼备的特 点;后者居上的现代软件工程,则是在传统软件 工程进行升级改良,弥补了前者版本老旧、引用 程序繁复、专业知识过窄的不足,为坚持科学发 展观,不断设计新版本、改进新理念和谱下新篇 章。传统软

35、件工程,利用生命周期理论,原始数 据化、结构化方法以及面向对象点面法去分析和 解读软件载体的市场性和内容性;而现代软件工 程,就是在以上原有的方法上再推陈出新, 顶着 国内外最新经验的学科技术成果,深入分析软件 中的新型密码和程序,帮助工作的顺利发展,并 及时反馈相关发布和宣传。两者同为软件学科的 分支,既有其统一性又有差异性;既有其和谐性 又有优越性。传统软件工程,在开发中实现以原始数据化 为基础,面向对象点到点、面对面地去进行单独 分析研究;但现代软件工程是以各种不同信息和 功能融汇在一起的科学体系,不同种类、不同领 域、不同语言、不同逻辑等因素巧妙地融合在一 起,既传承了传统软件工程精确

36、无误的优点外, 还将自身的普及型和深度性发挥得淋漓尽致。传统软件工程,其基本概念是通过时间考验 后证明正确管理技术的和当时最先进的互联网 技术进行挂钩联系,所有数据分析和结论定义均 有专门人员负责和研发;现代软件工程,采用分 离式的科学管理方式对概念技术、原理中心、技 术要点和保护措施去维护原件。不同之处在于, 前者广被派上广大企业和商家的经济用途;而后 者因为正处在研发阶段,还没被广大群众知道使 用,使用率和支持率就相对少一些。因此必须加 大研发力度,尽快将误差和不足降低到最少。传统软件工程,对于软件规模较小,定义较 清晰、处理手段更透明的系统开发来说是明智的 选择;但遇到一些需求量多、软件

37、规模较大、运 营手段更加复杂的大型系统开发来说就是一道 难题了。现代软件工程,由于其系统在开发启动 时存在较多的不足,导致在探索和发展的道路上 走了不少弯路。在研发和推广的过程中,我们主 要是集中精神攻克内部环境的数据操作处理。 它 具有良好的软件实用性和目标确立式, 与传统软 件工程相比,更具时代的气息和工作的需要。4软件构架技术在网管系统的应用在开始举例说明建立软件构架方法和步骤 之前,首先先对比一下利用软件构架技术搭建的 系统构架和类库的不同:从广义上讲:类库是以 库文件的形式存在的,库文件中包含了事先定义 好的类;而构架的存在形式可以看作是一个类 库,它是建立在对多态性和动态绑定的系统

38、化的 广泛使用基础之上的,构架是对协作完成一系列 相关责任的类集合的抽象设计。从具体表现形式 上讲: 在类库中,类库构件被单独使用;而在构 架中要有抽象类的一些具体子类,应用软件开发 者通过修改现存的类或定义新的子类以扩展现 存的类来使用构架。 在类库中是用户在需要的时候调用函数, 不预定义控制流;而构架使用了与用户之间的反 向控制流,使用构架时,通常只是实现一些回调 函数或者使一些类适用于上下文,在适当的时候 和地点调用必要的函数或方法。 使用类库只需要了解类的外部接口;在使 用构架时需要了解构架的抽象设计和类的内部 结构,这样才能对构架进行修改和扩展。 在类库中没有定义缺省行为,而在构架中

39、 提供缺省行为。4.1管系统分析及设计在研究辽宁移动网管系统时,系统的出发点 不只是开发一个应用系统,系统的目标是针对移 动网管系统提出我们的行业解决方案,而行业解 决方案的根本点是要有非常稳定可靠的平台或 中间件作为整个应用系统的基础,因此在开发辽 宁移动网管系统时,就是以软件构架技术作为整 个开发过程的核心。怎样构造移动网管系统的平 台(中间件)成为系统总体设计的首要任务。对性 能管理系统而言有原始数据采集、原始数据解析 处理、原始数据归一化、数据装载、数据呈现等 系统模块,下面通过搭建性能管理子系统性能数 据处理平台来深入讨论应用软件构架技术的必 要性和具体实施的方法。在性能管理子系统中

40、,首要的问题是从数据 源将所需的数据采集到网管系统数据库, 各设备 性能数据通过不同接口由数据采集程序采集到 网管系统,然后由数据处理程序按照每个移动设 备厂家的解析规则解析处理为数据库装载所需 的数据文件,最后装载到数据库中。整个数据采 集处理流程如图I所示。图I数据采集系统流程图4.2具体实现在搭建性能数据处理平台时,首先来分析一 下各个厂家设备数据处理的共同特点:根据文件 类型,得到原始文件目录下与该文件类型相关的 文件列表;得到该类文件所对应的原始表;得到 该类文件的解析规则;由文件类型生成特定的解 析对象;还有线程启动、线程控制;文件转移等 等。由以上的共同特点可以看出对性能数据进行

41、 数据处理时,当这些共同特点的内容由统一的调 度程序实现后,数据处理的主要任务就是针对具 体文件类型的文件格式解析以及形成对应的数 据装载格式文件。因此基于构架方式来实现数据 处理时,由构架统一实现数据处理流程控制, 剩 余的针对具体设备的数据处理由具体厂家的具 体类型的数据处理程序或构件来实现。这样通过对移动设备性能数据处理特点和 对整个性能数据处理流程深入分析后, 得到了数 据处理平台的核心部分,也就是定义了数据处理 平台软件构架的主干,同时定义了构件加入构架 时的位置和构件间的上下文关系。因此在搭建软 件构架前必须对所处理的业务流程有非常清晰 的认识,这样才能搭建出比较稳定的软件构架。 下面是数据处理平台的对象关系图,如图 2。图2数据处理平台的对象关系图我们首先建立了以下接口,这些接口定义了 整个数据处理平台的基础。IntfCollectBase接口:整个框架的最基本接 口,它定义了应用中所有模块都要用到的一些基 本方法,包括数据处理完成后文件的转移和删 除、写操作日志方法。IntfFileCoUect接口:当设备提供的数据接

温馨提示

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

评论

0/150

提交评论