软件复用与基于面向对象框架的软件开发方法

收稿日期:!""#$"%$"!;修订日期:!""#$"&$!’

作者简介:王丽娟(()&&$),女,河南省周口市人,河南农业大学副教授,主要从事计算机理论教学及应用研究*

文章编号:(&+($&,##(!""#)"#$""!%$"’

软件复用与基于面向对象框架的软件开发方法

王丽娟(,孙西超!,底松茂#,王哲光(,冯志慧(,刘

倩(

((-河南农业大学现代教育部,河南郑州%’"""!;!*河南农业大学财务处,河南郑州%’"""!;#*郑州大

学财务处,河南郑州%’"""!)摘

要:介绍了软件复用的基本概念和意义,分析了框架的特征以及它与类库、组件、设计模式等常用

的面向对象复用技术(./0)的联系,给出了基于框架的软件开发方法的开发过程-首先进行领域分析即在给定的领域中,通过分析找出对所有应用程序来说明共同的类和对象,建立领域模型;其次,结合领域分析,给出系统需求说明书;第三步是框架设计,通过对应用程序进行分析和设计,得到应用程序在该领域的特殊要求,从而扩展框架来实现该应用程序;最后是软件的测试-目前./0的研究更多的集中于特定的领域如制造业、银行业、卫生系统等-在开发方法上,将较多的采用黑盒框架,在框架集成方面,更注重将框架与类库,组件和设计模式等联合在一起使用,更注重对框架继承性的研究-关键词:软件复用;面向对象;框架;组件;设计模式中图分类号:12#"(

文献标识码:3

"引言

目前计算机技术的飞速发展使得软件开发的环境日益复杂,应用软件需要具有开放的系统结构和跨越多个异构平台的能力,这样就导致在应用系统中的软件越来越庞大,传统的开发技术已远远不能满足需要,在这种情况下,有关软件复用的研究也就应运而生了-软件复用是软件工程中具有很高前瞻性的研究领域,面向对象的软件复用技术是软件复用的一种重要方式,基于面向对象框架的软件开发技术./0(.4567$894:6;<9=06>6?<@:6AB )是一种面向特定领域的复用技术,随着面向对象技术的成熟,面向对象框架的软件开发被认为是一种最有前途的提高软件重用度和软件生网络产力的面向对象技术-该方法对特定领域复杂系统的高可靠专用软件具有很高的实用价值,为特定领域的软件开

发提供了一种强有力的技术支持[(]-

(软件复用的概念和意义

软件复用是指重复使用“为了复用目的而设

计的软件”的过程,而可复用软件则是指为了复用目的而设计的软件,是指在开发新的应用系统时重复使用以前的资源,如设计、代码、文档等-软件

复用更强调的是复用的目的,它是一种系统化的方法,为了复用而进行设计,为了复用而开发,并且要有效地组织和管理这些复用产品,方便人们查找和使用,从而提高系统开发效率及软件质量-软件复用一定要有软件开发的积累,有了一定的积累后才能进行软件复用-总的来说,软件复用有三个基本问题:一是必须有可复用的对象,二是可复用的对象必须是有用的,三是使用者知道如何去使用被复用的对象-软件复用还包括两个相关的过程,即可复用软件的开发和可复用软件的应用系统的构造-解决好这几方面的问题,才能实现

真正意义上的软件复用[!]

-软件复用通常可分为两类:产品复用和过程

复用-产品复用指对软件开发过程中生成的各种产品(需求规约、设计、程序、测试计划和数据等)构件的复用,涉及可复用构件的建造及可复用构件的使用两个方面,通过专业性的构件开发和基于构件复用的系统集成实现软件的工业化生产-过程复用指通过采用自动化技术,通过生成或变换,自动生成最终所需的系统,完全通用的过程复用意味着软件生产的自动化,当前过程复用的实践大多和领域相关,如特定领域的应用生成器等-过程复用是非常理想的软件复用方式,成为主要

的研究课题[!]-

!""#年)月第!%卷第#期郑州大学学报(工学版)

C695JBK (LAGJA669JAG MNJ6AN6)M6@*!""#

O

万方数据

面向对象软件开发教程

软件是在代码之外发生的一切事情。 如何继续学习过程 你将从本章学到什么? 两千年后(P2K)的软件环境是什么样的? P2K软件环境中的技术和技能是什么?有关P2K技能和技术有哪些概述性的资源?软件专家在面向对象项目中充当什么角色/职位? 如何继续面向对象的学习过程? 为什么需要阅读本章? 你的技能,以及如何使用它们,是能否成为成功的软件专家的重要决定性因素。通过阅读本书,你会获得学习对象技术和技巧所需的基本知识,本章也给你提供了继续进一步学习过程的建议。 至此,你已经了解了面向对象的全部内容,现在你已经是一名准备开发大型、关键性任务软件的对象专家。好吧,现在你还不全是。实际上,你已经掌握了一些有用的概念和技能,也明白了它们如何一起使用,在浏览复习题以及案例学习的过程中,你已经使用了它们。目前你正处在有利地位,可以继续你的学习过程,这个过程将很可能贯穿你的整个职业生涯。本章给出了对软件业目前的状况以及将来的发展方向的见解,在接下来的几年中将会需要什么样的技能,要如何才能获得这些技能。 11.1 P2K 环境 在你的整个职业生涯中一直要学习新的技能。 软件业在20世纪90年代后半期被Y2K危机严重影响了,新的开发被耽搁下来或者干脆取消,以转移资源解决Y2K危机,结果,许多企业都推迟了对采用新的技术和技能的投资。现在 Y2K危机已经过去了,我们正面对着两千年后(P2K)的软件环境,一个使用本书中描述的技术支配的环境。 在P2K环境中,你将会应用新的方法,例如面向对象的和基于组件的方法,采用迭代和增 量方法的新的开发过程,像Java和CORBA这样新的技术,以及像用况建模这样新的技术。本 书概述了对象开发技术,本节也总结了用于P2K环境的关键技术和技能。要理解P2K环境, 必需考虑下面几项内容:

软件度量复习要点、考点_daisy

软件度量考试复习 测量定义:用数字或符号来表示真实世界中实体属性从而根据定义的规则来表示实体的过程。度量定义:由用户和设计者一同设想的用来在可信和有意义的方式中显露出的的选择的特性。软件度量的定义:用来量化软件产品,软件开发资源和/或软件开发过程的度量。包括可直接测量的对象如代码行,也包括通过测量计算得到的对象如软件质量。 1.测量有哪些尺度类型?各有何区别? 答:测量有标定尺度、类型尺度、序列尺度、间隔尺度、比例尺度、绝对尺度。标定和类型尺度属于语言尺度(Linguistic)。标定尺度给出了唯一且不含糊的概念名称并且定义技术也属于标定尺度;类型尺度识别实体中已经定义且命名的类型或种类(categories),也叫绝对标定尺度。序列尺度估计已测量的实体的值并将他们按顺序重组排列,值和顺序均表达为字符或符号。间隔尺度、比例尺度和绝对尺度属于定量尺度。间隔尺度用于发现增长间隔而不是比例,没有不合理的0间隔(后半句话翻译不好);比例尺度允许比例的计算并且允许合理的0参考点;绝对尺度用于计数(count),只有一种可能的绝对属性测量。 测量作为一个过程,有哪些阶段? 答:测量作为过程,有3个阶段:感知(Cognitive)、语义(Semantic)、数字化(Quantitative)。2.软件度量的实体有哪些?如何采用GQM定义度量框架?GQM中如何描述目标? 答:软件度量的实体类型: ①过程(process):软件开发中活动的集合。不同的软件开发模式中,所采用的流程和活动也不一样; ②产品(product):软件过程活动的结果,可以是一个程序、一个软件文档或其他任何 交付物; ③资源(resource):实施这些活动所需要的对象,可能是人力、设备、时间等。 GQM定义度量框架: 1。确定目标;2。细化感兴趣的问题列表;3。定义需要回答这些问题的度量标准;4。 开发数据收集和分析的工具和机制;5。收集并验证数据;6。通过事后剖析的方式分析数据以评估是否与目标一致,并为其后的改善提供意见;7。为利益相关者提供反馈信息。 GQM中如何描述目标: GQM中目标有4个部分:一个感兴趣的对象(一个实体)、一个意图、一个观点、一个对环境和约束的描述。 3.在度量数据的频域分析中,如何描述测量数据的散步度? 答:散步度描述了被测量(观察)数据在数据集中是怎样分布的。主要通过以下3个参数来反映:极差是资料组(数据集)中最高和最低值之差;方差测量观察值的波动范围;标准差是方差的平方根。 4.什么是功能点分析?特征点、对象点、和功能点有何不同? 答:功能点分析是对产品中为调整的函数数量(UFC)及值调整因子(VAF)的分析计算。 FP=UFC*VAF。生产率=FP/人月。文档=文档页数/FP。 特征点分析扩展了功能点计数到实时和TLC环境(MIS&RT&SC)。当应用的算法数量及逻辑数据文件数相同时,功能点和特征点产生相同的结果;应用于MIS项目时,结果通常完全相同;当应用于更复杂的系统软件形态时,特征点的计数要高的显著的多。

软件复用指南-模板1

XXX有限公司软件复用指南

*变化状态:A——增加,M——修改,D——删除

1.目的 指导项目组选择设计指南。 2.适用范围 适用于公司软件开发的设计过程。 3.裁减指南 本过程文件中的过程裁减应依据《组织标准过程裁减指南》的规定。 4.参考文件 本过程文件的编写依据是美国软件工程研究院(SEI)的集成成熟度模型软件分支1.1版本(CMMI-SW V1.1)。 5.术语和缩写 复用:就是将已有的软件成分用于构造新的软件系统。可以被复用的软件成分一般称作可复用构件,无论对可复用构件原封不动地使用还是作适当的修改后再使用,只要是用来构造新软件,则都可称作复用。软件复用不仅仅是对程序的复用,它还包括对软件生产过程中任何活动所产生的制成品的复用,如项目计划、可行性报告、需求定义、分析模型、设计模型、详细说明、源程序、测试用例等等。如果是在一个系统中多次使用一个相同的软件成分,则不称作复用,而称作共享;对一个软件进行修改,使它运行于新的软硬件平台也不称作复用,而称作软件移值。 6.职责

7.软件复用的特点和现状 软件复用就是将已有的软件成分用于构造新的软件系统。可以被复用的软件成分一般称作可复用构件,无论对可复用构件原封不动地使用还是作适当的修改后再使用,只要是用来构造新软件,则都可称作复用。软件复用不仅仅是对程序的复用,它还包括对软件生产过程中任何活动所产生的制成品的复用,如项目计划、可行性报告、需求定义、分析模型、设计模型、详细说明、源程序、测试用例等等。如果是在一个系统中多次使用一个相同的软件成分,则不称作复用,而称作共享;对一个软件进行修改,使它运行于新的软硬件平台也不称作复用,而称作软件移值。 目前及近期的未来最有可能产生显著效益的复用是对软件生命周期中一些主要开发阶段的软件制品的复用,按抽象程度的高低,可以划分为如下的复用级别: (1)代码的复用 包括目标代码和源代码的复用。其中目标代码的复用级别最低,历史也最久,当前大部分编程语言的运行支持系统都提供了连接(Link)、绑定(BI n DI ng) 等功能来支持这种复用。源代码的复用级别略高于目标代码的复用,程序员在编程时把一些想复用的代码段复制到自己的程序中,但这样往往会产生一些新旧代码不匹配的错误。想大规模的实现源程序的复用只有依靠含有大量可复用构件的构件库。如”对象链接及嵌入”(OLE)技术,既支持在源程序级定义构件并用以构造新的系统,又使这些构件在目标代码的级别上仍然是一些独立的可复用构件,能够在运行时被灵活的得新组合为各种不同的应用。 (2)设计的复用 设计结果比源程序的抽象级别更高,因此它的复用受实现环境的影响较少,从而使可复用构件被复用的机会更多,并且所需的修改更少。这种复用有三种途径,第一种途径是从现有系统的设计结果中提取一些可复用的设计构件,并把这些构件应用于新系统的设计;第二种途径是把一个现有系统的全部设计文档在新的软硬件平台上重新实现,也就是把一个设计运用于多个具体的实现;第三种途径是独立于任何具体的应用,有计划地开发一些可复用的设计构件。

软件复用与构件技术简介

软件复用与构件技术简介
李 戈
北京大学 信息科学技术学院 软件研究所 2008年10月16日

北京第三届优秀软件构件评选
支持单位: 北京市科学技术委员会 主办: 北京软件行业协会 北京软件与信息服务业促进中心 北京软件产业基地公共技术支撑体系 承办: 北京软件产品质量检测检验中心 北京大学

北京第三届优秀软件构件评选
z
提升北京市软件企业的核心竞争力 –帮助企业提高软件开发技术与研发能力,提 高软件开发效率,降低软件开发成本 推动以企业为主体、产学研相结合的技术创新体 系的建设 促进北京软件产业的变革,使软件产业走上工程 化、工业化的发展轨道
z
z

软件企业的现状与问题
z
现状:
– 软件系统的规模和复杂度不断提高 – 对生产效率和产品质量的要求不断提高
z
问题 问题:
– 如何提高软件生产的效率? – 如何掌控软件产品的质量? – 生产效率 与 产品质量 怎可得兼?

为什么需要软件复用
z
应用软件系统的一般开发模式
设计 实现 测试 运行
需求分析
z
基本特征:应用系统的开发总是从头开始
– 每个应用系统的开发均涉及大量的重复劳动
? ? ? ? ?
用户需求获取的重复 需求分析、设计的重复 编码实现的重复 测试工作的重复 文档工作的重复

为什么需要软件复用
z
应用系统的构成成分分类
– 探讨应用系统的本质,其构成成分可分为:
? ? ?
特定于计算机系统的构成成分 应用系统所属领域的共性构成成分 每个应用系统的特有构成成分
系统专用的构成成分 软件系统的 构成成分 领域共用的构成成分 通用的系统构成成分

面向对象的软件开发方法简介

1面向对象的软件开发方法简介 面向对象的开发方法把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。面向对象的开发方法具有以下优点。 ●把软件系统看成是各种对象的集合,这更接近人类的思维方式。 ●软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变 换。这使得按照对象设计出来的系统结构比较稳定。 ●对象包括属性(数据)和行为(方法),对象把数据和方法的具体实现方式一起封 装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性, 从而提高了软件的可维护性。 ●支持封装,抽象,继承和多态,提高了软件的可重用性,可维护性和可扩展性。 1.1 对象模型 在面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型。建立对象模型既包括自底向上的抽象过程,也包括自顶向下的分解过程。 1.自底向上的抽象 建立对象模型的第一步是从问题领域的陈述入手。分析需求的过程与对象模型的形成过程一致,开发人员与用户交谈是从用户熟悉的问题领域中的事物(具体实例)开始的,这就使用户和开发人员之间有了共同语言,使得开发人员能够彻底搞清用户需求,然后再建立正确的对象模型。开发人员需要进行以下自底向上的抽象思维。 ●把问题领域中的事物抽象为具有特定属性和行为的对象。 ●把具有相同属性和行为的对象抽象为类。 ●若多个类之间存在一些共性(具有相同属性和行为),把这些共性抽象到父类中。 再自底向上的抽象过程中,为了使子类能更好的继承父类的属性和行为,可能需要自顶向下的修改,从而使整个类体系更加合理。由于这类体系的构造是从具体到抽象,再从抽象到具体,符合人们的思维规律,因此能够更快,更方便的完成任务。 2.自顶向下的分解 再建立对象模型的过程中,也包括自顶向下的分解。例如对于计算机系统,首先识别出主机对象,显示器对象,键盘对象和打印机对象等。接着对这些对象再进一步分解,例如主机对象有处理器对象,内存对象,硬盘对象和主板对象组成。系统的进一步分解因有具体的对象为依据,所以分解过程比较明确,而且也相对容易。因此面向对象建模也具有自顶向下开发方法的优点,既能有效的控制系统的复杂性,又能同时避免结构化开发方法中功能分解的困难和不确定性。 1.1.2UML:可视化建模语言 面向对象的分析与设计方法,在20世纪80年代末至90年代中发展到一个高潮。但是,诸多流派在思想和术语上有很多不同的提法,对术语和概念的运用也各不相同,统一是继续发展的必然趋势。需要有一种统一的符号来描述在软件分析和设计阶段勾画出来的对象模型,UML(Unified Modeling Language,统一建模语言)应运而生。UML是一种定义良好,易于表达,功能强大且普遍适用的可视化建模语言。而采用UML语言的可视化建模工具是Rational 公司开发的Rational Rose。 1.2 面向对象开发中的核心思想和概念 在面向对象的软件开发过程中,开发者的主要任务就是先建立模拟问题领域的对象模型,然后通过程序代码来实现对象模型,如何用程序代码来实现对象模型,并且保证软件系统的可重用性,可扩展性和可维护性呢?本节节主要阐述面向对象开发的核心思想和概念,这些核心思想为从事面向对象的软件开发实践提供理论武器。

软件的复用技术及开发方法

软件的复用技术及开发方法 软件的复用技术及开发方法 2.1软件的复用技术 软件复用是指在开发新的软件系统时,对已有的软件或软件模块重新使用,该软件可以是己经存在的软件,也可以是专门的可复用组件〔8〕。软件可复用性的高低影响到生产效率的高低、软件质量的好坏和系统可维护性的好坏。在软件工程中面临的问题不是缺乏复用,而是缺乏广泛的、系统的复用。软件复用包括构造可复用软件和用可复用软件进行构造。构造可复用软件,一方面可以从现存的软件系统中抽取,另一方面通过改写或重新设计来实施。 Jones将软件复用的对象分为4种数据复用、体系结构复用、设计复用和程序复用。这样,软件复用可在实现层、设计层和体系结构层三个层次上实现。实现层软件复用是指对己有的程序代码进行复用,它包括源代码组件形式。设计层软件复用是指对已有的软件系统的设计信息进行复用。而体系结构层软件复用是最有效的软件复用,它主要是软件体系结构形式化的复用,即将软件的框架组织,全局结构设计作为复用对象。可复用的软件体系结构则通常是显式地复用软件体系结构,并通过集成其他软件体系结构,建立新的更高层次的体系结构。 面向对象的软件复用机制主要有两种:继承和对象组合。 (1)继承 继承是指子类可以从父类中直接获得某些特征和行为的能力,继承可作为代码复用和概念复用的手段。作为代码复用的手段是指:子类通过继承父类的行为,一些代码就不必重写;作为概念复用的手段是指:子类共享父类的方法定义。作为代码复用和概念复用手段的继承机制,在面向对象技术中,通过面向对象技术的一些主要机制来实现对“支持可维护性的可复用性”的支持。这些面向对象的主要机制是:数据的抽象化、封装和多态性。通过运用这些机制,继承可以在高层次上提供(相对于传统的低层次复用)可复用性:数据的抽象化和继承关系使得概念或定义可以复用;多态性使得实现和应用可以复用;而抽象化和封装可以保持和促进系统的可维护性。这样一来,复用的焦点不再集中在函数和算法等具体实现细节上,而是集中在最重要的含有宏观商业逻辑的抽象层次上。换言之,复用的焦点发生了“倒转”。发生复用焦点的倒转并不是因为实现细节的复用并不重要,而是因为这些细节上的复用己经做的很好了,并且这种复用在提高复用性的同时提高了软件的可维护性。由于继承关系直接继承的是接口,同时也继承实现,因而实际上父类的内部实现对子类而言是可见的,属于白盒复用方式。 (2)对象的组合 对象组合是指新的复杂功能可以通过组装或组合对象来获得。这种复杂的功能由对象组合来获得的设计思想与过程化程序设计思想是相似的,在过程化程序设计中,一个复杂的功能模块可以分解为更细小的和更简单的功能模块,整体功能是各个局部功能的聚集。在面向对象系统中,系统是由对象构成,因此复杂的功能或者说能完成更复杂功能的对象,可以通过功能较简单的对象的组装或组合来实现。对象组合方式是从整体与局部的角度来考虑软件复用思想的。 对象组合要求对象具有良好的接口定义,使用对象的接口来使用对象的功能,并往往运用赋值多态来获得具体对象,对象的内部功能是不可见的,对象只以“黑盒”的形式出现,属于黑盒复用方式。

软件复用技术

软件复用技术 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

论使用复用设计 1、引言 复用是活动,而不是对象。在创建软件相关的系统的语境中,复用仅仅是非常简单的任何过程,该过程通过复用来自以前开发工作的某些东西来生产(或帮助生产)一个系统。那么,唯一的问题是:复用什么、什么是导致成功复用的过程。 在软件工程的范围内,复用既是旧概念,也是新概念。程序员从最早的计算时代已开始复用概念、对象、论据、抽象和过程,但是我们复用的途径是特定的。 本文对软件复用的讨论,将从以下四个方面进行: 1)软件工程师可以获得一系列可复用的软件制品,这些包括软件的技术表示(例如,规约、体系结构模型、设计和代码)、文档、测试数据,甚至包括过程相关的任务(如,检查技术)。 2)复用过程包括两个并发的子过程:领域工程和软件工程。领域工程的目的是在特定应用领域中标识、构造、分类和传播一组软件制品。然后,软件工程可在新系统开发中选取这些软件制品作为复用。 3)构件复用为软件质量、开发者生产率、以及整个系统成本带来了固有的收益,然而,在复用过程模型被广泛地用于软件产业前,必须克服很多障碍。 4)对可复用构件的分析、设计技术采用和在良好的软件工程实践中使用的相同原则和概念。可复用构件应该在一个环境中设计,该环境为每个应用领域建立标准数据结构、接口协议和程序体系结构。 2、可复用的软件制品 软件复用不仅仅涉及源代码,但是,还涉及多少东西呢?CaperJones定义了可作为复用候选的十种软件制品: 项目计划。软件项目计划的基本结构和许多内容(例如,SQA 计划)均是可以跨项目复用的。这样减少了用于制定计划的时间,也减低了和建立进度表、风险分析和其他特征相关的不确定性。 成本估计。因为经常不同项目中含有类似的功能,所以有可能在极少修改或不修改的情况下,复用对该功能的成本估计。 体系结构。即使当考虑不同的应用领域时,也很少有截然不同的程序和数据体系结构。因此,有可能创建一组类属的体系结构模板(例如,事务处理体系结构),并将那些模板作为可复用的设计框架。 需求模型和规约。类和对象的模型和规约是明显的复用的候选者,此外,用传统软件工程方法开发的分析模型(例如,数据流图)也是可复用的。 设计。用传统方法开发的体系结构、数据、接口和过程化设计是复用的候选者,更常见的是,系统和对象设计是可复用的。 源代码。验证过的程序构件(用兼容的程序设计语言书写的)是复用的候选者。 用户和技术文档。即使特定的应用是不同的,也经常有可能复用用户和技术文档的大部分。 用户界面。可能是最广泛被复用的软件制品,GUI 软件经常被复用。因为它可占到一个应用的60%的代码量,因此,复用的效果非常显著。

面向对象的软件开发过程

面向对象的软件开发过程 【摘要】本文介绍了面向对象技术的基本思想,阐述了面向对象软件开发的分析与设计实现过程,说明了面向对象技术在软件开发中的应用,总结出面向对象技术在程序开发中的优势。 【关键词】面向对象;软件开发 1面向对象技术的基本思想 随着计算机应用领域的不断扩大,软件的规模和复杂性也在不断增加,我们需要按照更科学、有效的方法组织软件的生产与管理。面向对象技术首先在编程领域兴起,并逐渐发展成熟,并随着面向对象的测试、集成等技术的出现而发展为一套贯穿整个软件生命周期的方法体系。 面向对象技术首先在编程领域兴起,并逐渐发展成熟,并随着面向对象的测试、集成等技术的出现而发展为一套贯穿整个软件生命周期的方法体系。面向对象方法的基本思想是:从客观存在的事物(即对象) 出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。 具体地讲,面向对象技术是从问题域中客观存在的事物出发构造软件系统,用对象作为这些事物的抽象表示,并以此作为系统的基本构成单位。每个对象都有其属性和方法,属性表示事物的静态特征, 方法表示事物的动态特征。对象的属性和方法结合为一体,对外屏蔽其内部细节,称作封装。把具有相同属性和相同方法的对象归为一类,类是对象的抽象描述,每个对象是它所属类的一个实例。通过在不同程度上运用抽象的原则,可以得到基类和子类,子类继承基类的属性和方法。 面向对象的三个基本特征: 封装——是把客观事物封装成抽象的类,可以隐藏实现细节,使得代码模块化; 继承——使用现有类的所有功能,并在无需重写原来类的情况下对这些功能进行扩展; 多态——指同一消息作用于不同的对象时,具有不同的处理方案和处理结果,即所谓的“同一接口, 多种方法”,增强了程序的灵活性。 2面向对象的分析与设计实现 面向对象的程序设计以解决的问题中所涉及的各种对象为主要矛盾,力图从实际问题中抽象出封装了数据和操作的对象,通过定义属性和操作来表述他们的特征和功能,定义接口来描述他们的地位及与其他对象的关系,最终形成一个可理解、可扩充、可维护的动态对象模型。面向对象的软件开发过程可以大体划分为面向对象的分析,面向对象的设计,面向对象的实现三个阶段。 2.1面向对象的分析 面向对象的分析主要作用是明确用户的需求,并用标准化的面向对象的模型规范来表述这一需求,最后形成面向对象的分析模型。图1展示的是面向对象系统分析示意图。 图1面向对象系统分析示意图 面向对象的分析分为如下几步: 2.1.1确定需求 明确用户的需求,包括对用户需求的全面理解和分析;明确所要开发的软件系统的职责界限;进行可行性研究和制订方案,交给用户确认。

浅谈软件复用技术的四个关键问题

浅谈软件复用技术的四个关键问题 [摘要]软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。60年代出现的软件危机导致了有关软件复用的研究。软件复用是指重复使用“为了复用目的而设计的软件”的过程。通过软件复用,在应用系统开发中可以充分利用已有的开发成果,消除了包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效率。同时,通过复用高质量的已有开发成果,避免了重新开发可能引入的错误,从而提高了软件的质量。 [关键词]软件复用技术软件危机软件复用 一、引言 软件复用的概念是由McI1roy在1968年的NATO软件工程会议上提出的。McI1roy提出了发展以可复用源代码软件构件为基础的软件工业和利用COTS (Component Off The Shelf)构件工业化生产软件的观点。软件复用被认为是解决所谓“软件危机”的技术上可行的、现实的解决方案。软件复用的对象包括软件开发过程中所使用和产生的各种资源:源代码、各种文档、测试数据、设计方法、体系结构等等,总称可复用构件。软件复用是为了改善软件生产的资金投入大、开发周期长、软件产品失败率高等不能满足市场需求的现状,充分利用已有的高质量软件产品和部件,经过组装集成快速搭建应用软件系统的软件开发理论。经历了结构化程序设计、面向对象技术、软件构件技术的发展,软件复用已经成为加速软件工业化早日实现的重要力量。 二、面向对象技术 面向对象技术提供了新的认知和表示世界的思想和方法。面向对象方法就是用对象来作为描写客观信息的基本单元,它包括封装在一起的对象标识、对象属性和对象操作。面向对象技术是以对象为基础来构件系统的,可以通过一个指向对象的指针或对它的引用,就可以访问这个对象的所有数据和方法,用面向对象技术建造起来的系统不仅易于管理和使用,而且源代码的可读性高。如果没有对象,在程序中必须保存大量的变量和一个个孤立的函数,然后在这些没有多大关连的变量和函数之间进行变量传递,这不仅给编程增加了很大的复杂性,而且使得程序的可读性极差。通过把这些有关连的变量和函数封装在一个对象中,大大的简化了编程的复杂性,提高了程序可读性,并且提供了一种抽象,该抽象是可扩展性的关键。正是因为面向对象技术的特点,封装和继承使得面向对象技术成为了软构件技术的基础。 面向对象技术具有以下一些特性能够使它和软件复用相结合: (一)对象是可重用构件的雏形,面向对象技术中,对象(类)已经充当了构成系统的基本单元,由于它的一系列特有的性质,使它具有了可重用构件的雏形;

面向对象的分析过程

面向对象的分析过程 摘要 分析了面向对象技术应用于仿真领域的种种优点,亦即我们选择采用面向对 象的方法进行改造的原因。一些面向对象方法存在的不足。 关键词:仿真,面向对象,岸边集装箱起重机,训练器 面向对象的开发方法是以对象作为最基本的元素,它是分析问题、解决问题的核心。 面向对象=对象(Object) +分类(classification) +继承(inheritance) +通过消息的通信(communication with messages) 从下图中我们可以看出,面向对象的开发方法明显不同。 面向对象的仿真为仿真人员提供了开发模块化可重用的仿真模型的工具,它把系统看成由相互作用的对象所组成,而对象则往往表示现实系统中的真实实体。从而提高了仿真模型的可理解性、可扩充性和模块性,并且便于实现仿真与计算机图形和人工智能的结合。采用面向对象的方法,原因如下: 1.可理解性 面向对象仿真对设计者、实现者,以及最终用户来说都改进了仿真的可理解性。因为仿真系统中的对象往往直接表示现实系统中的真实实体,这些实体在面向对象的仿真系统中可以用外观上类似于人们熟悉的实际系统的对象的图形或图像来表示,用户可以通过图形界面与仿真模型进行交互,利用图形或图像来直接建立仿真模型,这对于熟悉实际系统的用户来说是很容易理解的。 2.可重用性和可扩充性 在面向对象的仿真中,可以建立起一个模型库用以保存以前建立的模型,模型库中的模型可以作为建立新模型的可重用构件,通过面向对象技术内在的继承机制可以容易地和系统地修改现有的对象(类)以创建新的对象。并且可以加入现有的类库中。类库提供了仿真建模所需要的一般设施。通过修改现有的类,可以建立各种应用中所需要的特殊对象。 3.模块性 面向对象的仿真是模块化,特殊的过程来寻找相应的信息,不会影响其它的对象。 4.图形用户界面

NATO软件复用标准

NATO软件复用标准简介 摘要 实践证明,软件复用可以有效地提高软件的质量和生产率,它包括开发可复用软件构件和基于可复用构件的开发两个生命周期。在这两个生命周期中,采用一个适当的标准以识别和开发可复用软件将大大促进软件复用的实践。为此,NATO(北大西洋公约组织)制定了一整套软件复用的指导性标准,以帮助NATO及其参与国和承包商的项目管理部门进行有效的软件复用。这套标准包括《可复用软件构件开发指南》、《可复用软件构件库管理指南》和《软件复用过程指南》三个文档,分别从软件生命周期的各个阶段对软件复用进行了指导和帮助。 关键词:NATO,软件复用,可复用构件开发,构件库管理,复用过程 一、前言 1.背景与目的 自从McIlroy在1968年的NATO软件工程会议上正式提出软件复用的概念以来,软件复用已有了近三十年的发展历程,复用的对象也从早期的代码复用扩展到对软件开发过程中一切有价值的信息的复用,包括需求、需求规约、设计、源代码、测试计划和测试案例等。近三十年的实践证明,软件复用可以有效地提高软件的质量和生产率,是解决当前“软件危机”的一条比较现实可行的途径。 软件复用包括开发可复用软件构件和基于可复用构件的开发两个生命周期。在这两个生命周期中,采用一个适当的标准以识别和开发可复用软件将大大促进软件复用的实践。为此,NATO(北大西洋公约组织)制定了一整套软件复用的指导性标准,以帮助NATO及其参与国和承包商的项目管理部门进行有效的软件复用。这套标准包括《可复用软件构件开发指南》、《可复用软件构件库管理指南》和《软件复用过程指南》三个文档,分别从软件生命周期的各个阶段对软件复用进行指导,以便最大限度地减少复用代价和增加复用收益。 青鸟工程是国家“九五”重点科技攻关项目,其中研究的主要内容之一便是软件复用和软件构件技术。为了吸收和利用国外软件复用的最新研究成果,我们对国际上相关研究和实践工作进行了深入分析,以期能拓宽思路,取长补短,使我们的工作能和国际主流接轨。本文便是对NATO软件复用标准的总结和介绍,希望能为国内相关工作的进展和相关的软件从业人员起到一个借鉴和参考的作用。 2.本文的组织 本文的第二章介绍了NATO标准中出现的一些复用的基本概念,以便使读者能对NATO的软件复用框架有一个大致的了解。第三章是NATO的可复用构件开发标准,它的目的是为创建具有最大

面向对象方法题库1-0-5

面向对象方法题库1- 0-5

问题: [单选]当()时,用例是捕获系统需求最好的选择。 A.系统具有很少的用户 B.系统具有很少的接口 C.系统算法复杂,功能单一 D.系统有很多参与者 用例描述的是系统的执行者(参与者)与系统的交互,同时也是开发人员与用户进行交流的工具,可用来很好地定义系统的边界。所以,当执行者较多的时候,用例是捕获系统需求最好的选择。

问题: [单选]对OO系统的技术度量的识别特征,Berard定义了导致特殊度量的特征。其中()抑制程序构件的操作细节,只有对访问构件必需的信息被提供给其他希望访问的构件。 A.局部化 B.封装 C.信息隐藏 D.继承 面向对象的软件和用传统方法开发的软件有本质的不同,为此,对OO系统的技术度量必须调整以适应那些区别OO和传统软件的特征。Berard定义了5个导致特殊度量的特征,分别是局部化、封装、信息隐蔽、继承和对象抽象技术。 (1)局部化。局部化是软件的一个特征,它指明信息在程序中被集中的方式,例如,针对功能分解的传统方法围绕功能局部化信息,它们典型地以过程模块来实现。数据驱动方法围绕特定的数据结构局部化信息。在OO语境中,信息是通过封装数据和处理在类或对象的边界内而集中的。因为传统软件强调函数为局部化机制,软件度量着重于函数的内部结构或复杂性(例如,模块长度、内聚性或环路复杂性等)或函数间相互连接的方式(例如,模块耦合)。因为类是OO系统的基本单位,所以,局部化是基于对象的,因此,度量应该应用于作为一个完全实体的类(对象)。此外,在操作(函数、方法)和类间的关系不必要是一对一的。因此,反应类协作方式的度量必须能够适应一对多和多对一的关系。

软件复用

第十章软件复用 10.1软件复用概述 10.1.1 软件复用目的 软件复用使得应用系统的开发不再采用一切从“零”开始的模式,可以充分利用过去应用系统开发中积累的知识和经验,从而可以高效、高质地开发和维护软件系统,主要表现在以下几个方面: 1、缩短软件开发和维护的时间; 2、降低软件开发和维护的成本; 3、保证软件的可靠性; 4、保证软件的一致性; 5、保护投资者的利益。 10.1.2 软件复用的类型 软件复用可以分为横向复用和纵向复用两种类型。横向复用是指复用不同应用领域中的软件成份,如数据结构、算法、人机界面构件等。纵向复用活动的关键在于领域分析:根据应用领域的特征和相似性,预测软件成份的可复用性。一旦确认了软件成份的可复用价值,便进行开发,然后将开发得到的软件制品存入可复用构件库,供未来开发项目使用。 10.1.3 软件复用的内容 软件复用的内容,除了源程序代码外,还有许多其它软件制品,甚至特定的分析建模方法、检查技术、质量保证过程等,均可以被复用。C.Jones定义了10种可能复用的软件制品: (1)项目计划:软件项目计划的基本结构和许多内容,如SQA计划,均可以跨项目复用。 (2)成本估计:由于不同项目中常包含类似的功能,所以有可能在极少修改或不修改的情况下,复用对该功能的成本估计。 (3)体系结构:即使应用论域千差万别,但程序和数据的体系结构很少有截然不同的情形。因此,有可能创建一组类属的体系结构模板,如事务处理结构,将这些模板作为可复用涉及的框架。 (4)需求模型和规格说明:数据流图、类模型等均可以复用。 (5)设计:系统和对象设计等是常见的复用成份。 (6)源代码 (7)用户文档和技术文档:即使特定的应用不同,也有可能复用用户文档和技术文档中的大部分内容。 (8)用户界面:用户界面可能是最广泛地被复用的软件制品。由于它可能占一个应用软件的60%的代码量,所以复用的效果最明显。 (9)数据:在大多数经常被复用的软件制品中,数据包括:内部表、列表和记录结构,以及文件和完整的数据库。 (10)测试用例:一旦设计或代码被复用,相关的测试用例应该“附属于”它们。

【项目管理知识】面向对象软件开发和过程

面向对象软件开发和过程 代码是核心 面向对象发展到今天,已经出现了许许多多的实践、方法和技术。很多的技术都能够有效的提高软件质量,而要用好这些技术,我们需要从过程和管理的角度来看待它们,而不是为了使用技术而使用技术。此系列文章包括:代码是核心、案例实战(上)、案例实战(下)、重用、优化代码的组织、针对契约设计、业务建模。 在一个有效的组织中,必定拥有杰出的一线人才。软件设计也是一样的,一线人才的素质决定了软件的质量。从敏捷的观点来看,代码是检验软件过程是否有效的终标准。目前为止,以及在短时间的未来,我们都不太可能完全脱 离代码进行软件设计。所以,软件过程中的任何一个活动都是为了能够产出的代码。所以,代码才是核心。 1.代码是软件开发的基础 编码是软件开发过程中基本、底层的技艺,然而也是重要的技艺。任何一个领域的专家都需要花费大量的时间来进行基本技艺的锻炼,木匠需要花费大量的时间来锻炼他们对各种工具的掌握,厨师则需要练习刀工和火候。程序员也是一样的,对我们来说,语言的各种特性必须要了然于胸。而对软件的管理也需要从代码做起。 从____ 年到现在,国内兴起了一股软件工程热,需求管理、配置管理、甚 至CMM。面对纷至沓来的各种方法学、UML、00A大家似乎已经热衷于这些概念本身了,却往往忽略了软件开发中基本的元素-代码。在和很多软件组织的接触过程中,我们认为大多数组织急切需要的并不是这些工程理论,不是说这些理论不重要,而是这些组织的症结不在于此。很多的组织连代码的质量都管理不好,又何谈其它呢?代码管理是基础的基础,从管理的角度上来看,任何一个组织的管理都需要一个从上至下的管理过程,有基层的管理人员,也有 高层的管理人员。对代码的管理就是软件开发中的基层管理,它起到的作用就是能够把需求、设计的思路贯彻到终的代码中。 "管理无大事"。对软件的管理也是一样,大部分的问题都是由于很小的原因 引起的。例如,一个产品如果后期在debug上花费了大量的时间,那么,这种现象是由于什么原因引起的?一种可能的原因是前期的代码设计中对代码质量的把握不严。每一次代码功能的演化并不会产生太多的问题,但是当代码累积

软件复用课后题

1软件复用与传统软件开发的重用的差异? 软件复用是指重复使用“为了复用目的而设计的软件”的过程。相应地,可复用软件是指为了复用目的而设计的软件.与软件复用的概念相关,重复使用软件的行为还可能是重复使用“并非为了复用目的而设计的软件”的过程,或在一个应用系统的不同版本间重复使用代码的过程,这两类行为都不属于严格意义上的软件复用 1 分析传统产业的发展,其基本模式均是符合标准的零部件(构件)生产以及基于标准构件的产品生产(组装) ,其中,构件是核心和基础,“复用”是必需的手段. 2软件产业要发展并形成规模经济,标准构件的生产和构件的复用是关键因素.这正是软件复用受到高度重视的根本原因 2影响软件可复用性的因素 软件构件技术(Software component technology) 领域工程(Domain Engineering) 软件构架(Software Architecture) 软件再工程(Software Reengineering) 开放系统(Open system) 软件过程(Software Process) CASE技术等以及各种非技术因素。 3、什么是领域工程?领域工程对软件复用的影响表现在那些方面? 领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的过程,它覆盖了建立可复用软件构件的所有活动.领域是指一组具有相似或相近软件需求的应用系统所覆盖的功能区域领域工程包括三个主要的阶段. (1)领域分析 (2)领域设计 (3)领域实现 领域工程作为软件复用的核心技术之一 其主要目的是实现对特定领域中可复用成分的分析、生产和管理。领域工程的萌芽最早可以追溯到帕尔纳斯 Parnas 在1976年提出的“程序家族 Program Family ”的概念[12]。其基本思想是把一组具有显著共性的程序作为一个整体/家族并对其共性进行分析 其动机则是为了简化一组相似程序的开发和维护。后来提出出了“领域分析”的概念[11] 用来指代“识别特定问题域中一组相似系统所包含的对象和操作的活动”。他还对领域分析和 软件 系统分析这两种活动进行了对比 提出了“领域分析员”的概念 并分析了在软件复用活动中领域分析的必要性和可行性。 或者通过领域工程获得软件构件/构架面向领域的构件数目大面向领域的构架更具体面向领域的复用复用程度高因此:领域工程是获取构件/构架的主要途径。 4、你认为软件复用成功的因素都包括那些方面? 1软件越来越多地渗透到生活的各个方面,对于许多工业和商业企业来说,他们的目标有多种:是顾客满意、提供及时的产品和服务、降低成本等。提高业务能力通常意味者他们必须提高他们的软件开发能力。在这种情况下,成功意味着他们的软件必须:Faster BetterCheaper “Reuse”。The “Holy Grail”of today’s IT environment 2如何达到这个目标?两条途径:1提高软件产品的生产效率2软件复用许多公司都在试图提高他们的软件开发能力,对象和构件的复用成为他们软件工程的策略 3构件系统的思想也从简单的代码扩展到需求、分析模型、设计和测试。所有这些软件开发过程的步骤都围绕着 4复用的成功例子1984-Hewlett-Packard achieved 25% to 50% reuse levels in firmware(固件,

面向对象软件开发教程

软件是在代码之外发生的一切事情。 第11章 如何继续学习过程 你将从本章学到什么? ●两千年后(P2K)的软件环境是什么样的? ●P2K软件环境中的技术和技能是什么? ●有关P2K技能和技术有哪些概述性的资源? ●软件专家在面向对象项目中充当什么角色/职位? ●如何继续面向对象的学习过程? 为什么需要阅读本章? 你的技能,以及如何使用它们,是能否成为成功的软件专家的重要决定性因素。通过阅读本书,你会获得学习对象技术和技巧所需的基本知识,本章也给你提供了继续进一步学习过程的建议。 至此,你已经了解了面向对象的全部内容,现在你已经是一名准备开发大型、关键性任务软件的对象专家。好吧,现在你还不全是。实际上,你已经掌握了一些有用的概念和技能,也明白了它们如何一起使用,在浏览复习题以及案例学习的过程中,你已经使用了它们。目前你正处在有利地位,可以继续你的学习过程,这个过程将很可能贯穿你的整个职业生涯。本章给出了对软件业目前的状况以及将来的发展方向的见解,在接下来的几年中将会需要什么样的技能,要如何才能获得这些技能。 11.1 P2K环境 在你的整个职业生涯中一直要学习新的技能。 软件业在20世纪90年代后半期被Y2K危机严重影响了,新的开发被耽搁下来或者干脆取消,以转移资源解决Y2K危机,结果,许多企业都推迟了对采用新的技术和技能的投资。现在Y2K危机已经过去了,我们正面对着两千年后(P2K)的软件环境,一个使用本书中描述的技术支配的环境。 在P2K环境中,你将会应用新的方法,例如面向对象的和基于组件的方法,采用迭代和增

量方法的新的开发过程,像Java和CORBA这样新的技术,以及像用况建模这样新的技术。本书概述了对象开发技术,本节也总结了用于P2K环境的关键技术和技能。要理解P2K环境,必需考虑下面几项内容: ●新的软件策略。 ●使能技术。 ●领先的开发技术。 ●现代软件过程。 ●对象编程语言。 ●如何获得P2K技能。 定义 两千年后(P2K)环境(post-2000 environment):机构在IT部门内部部署的一系列技术和技能(大部分是基于面向对象和组件技术的)。 2000年(Y2K)危机(year 2000 crisis):软件组织在20世纪90年代未期要更新或替代那些使用两位数而不是四位数来存储年份的软件。 11.1.1 新的软件策略 21世纪初期将会由两项关键的软件策略来统治:企业应用集成(EAI)和电子商务。EAI 把全异的软件应用集成为一个整体以支持新的和复杂的业务过程。中间件和组件技术,例如下面这节里描述的CORBA和兼容COM+的工具也用于支持EAI。了解EAI的一个好去处是,也可以参考《Enterprise Application Integration》(Linthicum,2000)一书。包装技术是《Building Object Applications That Work》(Ambler,1998a)一书详细讲述的主题,对于EAI的开发者来说它也是一项重要的技能。 电子商务也称为基于Internet的商务,它关注于使用电子技术支持产品销售和服务。电子商务成功的机构有,戴尔公司()—一个计算机软硬件零售商;亚马逊()—一个销售书、录像带、音乐CD的零售商;Ebay网()—一个在线拍卖网站。电子商务最好的资源是杂志《The Industry Standard》(),它以报纸和在线两种形式出版发行。 11.1.2 使能技术 除了11.1.5节描述的对象编程语言外,还有好几个使能技术也是P2K环境中占主导地位的技术。这些技术有: ● CORBA ● COM+ ● EJB(企业Java组件模型) ● XML ●持久层/框架

基于面向对象框架的软件开发方法

基于面向对象框架的软件开发方法 随着电子信息、计算机网络技术的快速发展,一些计算机软件需要软件工程师去开发,软件开发的方法至关重要。面向对象框架软件随着市场的需求量的增大,类型越来越多,给其开发技术方法提出了更高的要求,所以掌握面向对象框架的软件开发方法至关重要。本文根据个人的经验首先对框架的特征进行了教育分析,然后重点研究了基于面向对象框架的软件开发过程。 标签:面向对象框架软件开发方法 前言 在近些年,基于面向对象框架的软件开发方法随着市场需求量在不断增大,软件复用成为软件开发的重点项目之一。现在市场上的面向对象框架已经有不少了,但都是小型的模块组件,本文根据个人的经验来研究能复用的大型组件就是基于面向对象框架软件的开发方法。 一、框架的特征分析 1.模块化 为了让组件更具有模块性(化),要对框架多变封装,然后在利用固定接口来完成。框架模块化后,方便已有的软件维护和理解,也可以对应用程序的质量进行局部的改变。 2.可复用性 类属组件指的是框架的固定接口,新的应用程序的开发要依赖于类属组件,类属组件可以让框架软件的复用性在很大程度上加强。框架软件可复用性可以聘请专业知识强、经验丰富的开发工程师来避免软件的后续开发做重复工作,这样不仅可以把软件开发的效果提高,而且还能提升框架软件的功能性、可靠性及质量。 3.扩展性 框架软件应用程序固定接口的扩展性需要利用显示的钩子方法来实现,这样一来就可以大大提高框架本身的扩展性。框架根据需要要想制定新的应用程序服务必须要依靠框架的这种扩展特性。 4.反向控制 框架在运动体系中被称为“反向控制”,框架派发机制激活的事件处理对象可利用反向控制来一步步制定标准化的应用程序。框架(非应用程序)的外部事件

相关文档
最新文档