面向构件的软件开发方法学分析研究
- 格式:doc
- 大小:146.50 KB
- 文档页数:10
论基于构件的软件开发【摘要】本文以我参与的ATEL2.0在线学习平台(该平台是ATEL1.0版本的升级,以下简称ATEL 平台)开发项目为例,讨论了基于构件的软件开发技术。
ATEL在线学习平台是我们公司自主开发,自主运营的平台,该平台是基于“云计算”中SAAS(软件即服务)模式的网络学习平台。
通过互联网,为客户提供完整的远程教育及网络培训功能。
本文首先介绍了基于构件开发技术的基本思想和实施步骤,介绍了ATEL平台选用构件技术来开发的原因。
然后具体介绍了ATEL平台基于构件开发过程中对构件获取、构件的修改、构件的组装、获取和修改过程中对构件的评价,以及对构件的管理等。
我在项目中担任了系统架构设计师,自始至终参与了整个项目的建设。
自2011年1月份项目启动至2011年9月份新品发布历时9个月,取得了客户和业界的好评。
项目能够确保质量提前完成,节约了成本并保证质量,很大程度得益于基于构件的开发技术。
【正文】ATEL在线学习平台是我们公司自主开发,自主运营的平台,该平台是基于“云计算”中SAAS(软件即服务)模式的网络学习平台。
通过互联网,为客户提供完整的远程教育及网络培训功能。
ATEL平台可以广泛应用于大型企业、政府协会、教育机构、高等院校等各类机构的远程教育及网络培训业务。
ATEL2.0平台于2011年1月开始建设,我担任了系统架构设计师职务。
ATEL平台由多个业务子系统构成,主要包括:学习管理系统(LMS),帮助学员安排学习进程,测试和练习;学习内容管理系统(LCMS),为机构高效的设计、创建和发布在线学习课程到LMS供学员学习,并能测量该课程的学习效果;ATEL管理平台(SAAS-Portal),针对各种机构的业务特点,实现各种业务管理功能的集成;交易中心(CSHOP),实现了机构与机构之间的课件交易,学习者与机构的课程的交易;ATEL课件中心(CWC),实现对课件的添加、发布,分发到各个课件存储节点。
1 网构软件1.1 背景1.2 网构软件特征2 网构软件研究方向2.1 基于Agent的网构软件模型与方法2.2面向构件的网构软件开发方法学网构软件简介及其研究内容1、网构软件网构软件从软件形态的角度考察开放、动态、多变的Internet环境对软件理论、方法和技术,是传统软件结构的自然延伸, 网构软件具有自主性、演化性、协同性、多态性和反应性等特征。
从网构软件的角度来看传统的软件工程方法学体系其本质上是一种静态和封闭的框架体系, 难以支持由开放、动态、多变的Internet环境衍生的网构软件的开发。
1.1背景Internet作为不同于传统计算机的硬件平台,具有如下基本特征:无统一控制的“真”分布性节点的高度自治性节点链接的开放性和动态性人、设备和软件的多重异构性实体行为的不可预测性运行环境的潜在不安全性使用方式的个性化和灵活性网络连接环境的多样性由于软件系统所基于的计算机硬件平台正经历从集中封闭的计算平台向开放的Internet平台的转变,软件系统作为计算机系统的灵魂,随着其运行环境的演变也经历了一系列的变革。
目前,面向网络的计算环境正由Client/Server发展为Client/Cluster,并正朝着Client /Network和Client/Virtual Environment的方向发展。
从技术的角度看,以软件构件等技术支持的软件实体将以开放、自主的方式存在于Internet的各个节点之上,任何一个软件实体可在开放的环境下通过某种方式加以发布,并以各种协同方式与其它软件实体进行跨网络的互连、互通、协作和联盟,从而形成一种与当前的信息Web类似的Software Web。
Software Web不再仅仅是信息的提供者,而是各种服务(功能)的提供者。
由于网络环境的开放与动态性,以及用户使用方式的个性化要求,从而决定了这样一种 Software Web并不能够像传统软件那样一蹴而就,它应能感知外部网络环境的动态变化,并随着这种变化按照功能指标、性能指标和可信性指标等进行静态的调整和动态的演化,以使系统具有尽可能高的用户满意度。
基于构件的软件工程技术研究作者:贾岩来源:《科技资讯》 2011年第6期贾岩(1.同济大学软件学院上海 200120; 2.沈阳市中小企业服务中心沈阳 110031)摘要:本文基于笔者多年从事软件工程的相关学习和研究心得,以基于构件的软件工程技术为研究对象,探讨了面向对象软件工程与传统软件工程之间的差别,给出了基于构件的软件工程概念模型,全文是笔者长期工作实践基础上的理论升华,相信对从事相关工作的同行有着重要的参考价值和借鉴意义。
关键词:构件软件工程面向对象中图分类号:TP3 文献标识码:A 文章编号:1672-3791(2011)02(c)-0057-02软件是信息产业的灵魂,软件工程是软件产业的灵魂。
1968年由NATO(北大西洋公约组织)在德国格密斯(Garmish)举行的学术会议上正式提出“软件工程(software engineering)”这一概念以来,软件工程发展极快,取得了丰硕的成果。
软件工程分为传统软件工程、面向对象软件工程、软件过程工程和构件软件工程四种。
软件工程没有一个权威的定义,比较认可的定义为:软件工程是一门交叉学科,它是解决软件问题的工程,是对软件开发、运作、维护的系统化的、有规律的、可定量的研究方法。
软件工程有明确的目标。
那就是研制开发与生产出具有良好的软件质量和费用合算的产品。
软件质量可用六个特性来评价:功能性、可靠性、易使用性、高效率性、可维护性、易移植性。
软件工程不同于一般工程,具体表现在以下几点。
(1)软件是逻辑产品而不是实物产品,所以费用集中在研制开发上而不在生产上。
软件不会用坏、磨损、老化,但有一个过时的问题。
(2)由于软件是逻辑产品,使得它的功能只能依赖于硬件和软件的运行环境以及人们对它的操作,才能得以体现。
(3)软件产品的功能比一般产品的功能复杂得多。
(4)软件设计比一般产品复杂得多。
具体表现在:功能的多样性,实现的多样性。
推动软件工程发展的原动力是提高软件质量和软件开发的生产效率。
作者: 刘纯丽[1] 江保利[3] 徐成林[2]
作者机构: [1]池州学院信息传媒系,安徽池州247100 [2]池州学院政法管理系,安徽池州247100 [3]池州市烟草专卖局,安徽池州247000
出版物刊名: 池州学院学报
页码: 31-33页
主题词: 构件技术 CBSD 构件库 MIS
摘要:在开发复杂的大型企业应用软件过程中,构件技术是一种能够提高软件开发效率和质量的技术手段。
本文首先浅析了面向构件技术的开发方法,讨论了基于构件的软件开发过程,在此基础上利用构件技术开发了面向小区物业管理公司的管理信息系统。
软件工程中的构件重用技术研究在软件工程中,构件重用技术是一种非常重要的技术手段,它可以帮助软件开发人员更加高效地开发出高质量的软件系统。
构件重用技术是一种将可重用的组件设计、实现、测试并加以维护的技术,以便在开发新软件的过程中能够重复使用这些组件。
本文将详细探讨构件重用技术在软件工程中的应用和实践。
一、构件重用技术的意义构件重用技术的存在,主要是为了解决软件开发人员在开发软件的时候重复造轮子的问题。
因为每个软件系统都需要一些共同的基础构件来实现基础功能,例如界面设计、输入输出处理、网络连接等等,这些共同的构件往往会被重复设计、开发和测试。
这不仅会导致资源浪费,还会影响软件开发的效率和质量。
因此,构件重用技术的存在就是想要将这些基础构件抽离出来,以便于开发人员在开发新的软件系统时能够直接复用这些构件,从而提高开发效率和质量。
二、构件重用技术的核心构件重用技术的核心在于组件的设计与实现。
好的组件设计和实现可以为软件系统提供高性能、高可靠性和高可维护性。
为了达到这个目标,需要通过以下方式来完成:1.抽象化:将组件的某些特定功能和实现细节抽象为公共接口和实现,以便于其他开发人员重新利用它们。
2.封装化:将组件的处理逻辑隐藏在组件的内部,只对外提供公共接口,以便于其他开发人员,只需要使用这些公共接口,便可以完成功能的使用任务,而不需要了解组件的具体实现。
3.拆解化:将组件分解为更小、更简单、更易于管理的部件,以便于将不同的组件组成更复杂的系统。
三、构件重用技术的常见实践1.面向对象编程:面向对象编程是一种将真实世界中的实体和其相应的行为进行建模的编程方式。
它以类为基础,将对象(实体)和其行为(方法)作为封装化的组件来处理。
面向对象编程可以提供类的继承、多态、封装和抽象等特性,提供了组件设计和实现的重要基础。
2.开放式系统:开放式系统是指可以被其他系统和组件调用和扩展的系统。
开放式系统的存在,可以帮助软件开发人员更加灵活地使用和扩展现有的组件。
面向构件的软件开发方法学研究陈良山 200305018009从软件建模方法论的角度看, 信息系统的开发方法已历经两代技术跨越: 面向过程, 包括面向功能和面向数据流。
面向对象, 体现功能与数据抽象方法的统一.20 世纪90 年代中期以来, 由于分布对象技术与软件重构工程的有机结合, 促使面向构件的软件开发方法应运而生.面向构件方法(COM >与面向对象方法(OOM > 的本质差异在于: 对象化建模过程一般针对单一应用系统, 对象抽象一般针对问题域, 对象模型的生成过程是静态的, 软件重用粒度是原子级的。
而构件化建模过程一般针对领域应用系统, 构件抽象则针对解域, 构件化模型即构架的生成过程是动态的, 软件重用粒度是组合级的. 领域应用是多个单一应用通用化和重用化的应用集群, 解域是问题域的过程与层次深化, 构件则是对象的软件实现与集成。
因此,COM 法与OOM 法在研究范畴、研究对象及其研究方法上都是有区别的. 不言而喻, 面向构件方法是21 世纪软件方法学的主流研究方向. 下面用过程与方法的组合理念来展开研究内容.面向构件软件开发的一般过程构件化软件开发的过程模型所谓构件化, 是指软件体系结构可重组以及软件成份可重用的系统开发方法. 这种方法的基本内涵是: 应用需求领域化, 软件结构框架化, 软件元素构件化, 应用原型实例化. 这一思想可以概括为四个阶段、三个层次和两大过程, 如图 1 所示从工程化与过程管理的角度讲, 整个软件系统的开发过程可定义为四个阶段: 分析, 设计,实现, 评价. 但这并不是单纯的串行式瀑布模型, 而是过程并行与增量迭代等多种方法相结合的工作流模型. 多年来, 人们往往把系统阶段控制方法与软件建模抽象方法混为一谈。
最典型的是把生命周期法和原型法与面向过程和面向对象的方法混为一谈.信息系统是一种具有生命周期的开放系统, 这是毋庸置疑的. 因此, 从工程管理及大的阶段控制过程看, 构件化方法与结构化方法和对象化方法一样, 仍然应该遵循软件生命周期规律。
差别在于, 前者的阶段论观点是弱化的历递归和过程重构特征. 换句话说, 在构件化方法中, 可以引入并行工程思想和能力成熟度模型(CMM > 来进行局部过程改造, 以提高系统开发效率和持续优化效果。
可以引入领域工程思想和面向对象方法来改善建模机制, 以提高系统实施过程的可操作性. 这就是面向构件方法论的主要过程特征. 从模型化与内容抽象的角度讲, 构件化软件开发过程可按三个层次展开: 概念层, 逻辑层, 物理层. 这与UML 描述、数据库设计模式和元建模技术等多种方法是一致的, 差别只在术语不同. 例如, 在基于UML 形式描述的面向对象建模中, 上述三个层次称概念层、说明层和实现层。
而在元建模中, 则称元知识层、结构知识层和算法知识层.整个建模层次展开过程是: 首先从特定应用需求出发,通过领域分析进行共性需求识别、领域对象抽象和领域知识获取, 以建立概念级的领域模型. 进而通过领域设计为领域需求寻求软件解决方案, 包括构架级和构件级的设计模型。
这种模型体现了初步设计和详细设计成果, 体现了框架结构和部件结构的组成原理可行性, 因而是一种逻辑模型. 由问题域的领域模型转化为解域的构架模型和构件模型, 是一个知识提取(正向> 和分析精化(逆向> 的迭代式增量开发过程. 第三, 根据领域应用开发或直接重用需要, 进行领域实现。
包括领域构件的识别、设计、编码和测试等局部过程集成,系统构件的分类、检索、引用和构件库维护,领域构件与系统构件的演化、例化、组合和应用原型的动态生成等领域框架整体集成,从而建立符合领域应用的各种物理模型. 第四, 通过运行模拟(正向>和设计优化(逆向>等措施,对领域化软件原型进行可用性评价和可重构验证,并对符合确认测试条件的应用系统进行全局封装和使用规范生成。
最终获得一个真正构件化的目标系统,这是一个经过版本逐次寻优的实用软件系统.整个过程模型充分体现重构工程思想,并把面向构件的软件开发分离为正向工程和逆向工程两大过程.正向工程侧重体现自顶向下与过程并行特征, 解决软件构架和构件的可用性问题。
逆向工程侧重体现自底向上与增量迭代特征, 解决构架及构件的可重构性问题. 过程重构的基本内涵是, 概念重定义, 结构重说明, 算法重用, 系统重生成.面向构件的建模支持机制常用的构件化建模方法如, 面向对象方法及UML 描述,框架、实例及其规则描述, 巴科斯范式、谓词逻辑和体系结构描述语言(ADL >等形式化描述, Petri 网和导航图等可视化描述. 支持上述建模方法的典型机制如, 抽象类型, 元模式, 模板, 分布对象, 协作代理, 参数化框架, 导航图标, 软件总线, 以及设计词汇表. UML 描述提供了静态和动态两种建模机制. 在静态建模过程中, 可通过用例图来描述反映功能需求的领域模型,通过类图、对象图和包图来描述面向对象的结构模型,通过构件图和配置图来描述软件系统的实现模型. 在动态建模过程中, 可通过交互图、状态图和活动图来描述软件系统的行为模型。
包括对象间的交互与协作,对象的生命周期及状态转换, 事务处理及过程同步控制等.框架—规则—实例(称FR I>描述是智能建模方法的推广应用. 框架(Framework>是描述结构性问题的基本骨架, 是一组实体、关联和约束的集合.规则(Rule>可用于定义实体与实例之间的结构组装或集成方法,是结构中各类元素交互与连接映射的集合. 实例(Instance>是描述问题解决方案的例化模板, 是一组特定的结构类型和元素类型即表示值的集合. FR I描述特别适用于软件构架设计及动态生成. 其它建模机制的作用如, 巴科斯范式可用于概念模型的规范化描述,谓词逻辑可用于说明构架和构件的约束条件,ADL 语言可定义软件体系结构的风格, Petri 网可描述工作流和事务处理的动态特性, 导航图可用于构件库的组织与管理. 设计词汇表可用于定义构件和连接件的类型。
使得领域概念元素化, 功能分解原子化, 构件聚合结构化.领域工程及分析方法领域工程的基本思想在信息系统中, 领域(Domain>是具有相似应用范畴与共性需求抽象的问题域, 或者是与共性目标关联的应用域. 对于一个信息化企业来说, 领域概念通常涉及该企业所具有的行业特征和经营活动特征。
如机械、电子、化工或商贸领域, 管理、设计或制造领域. 可见, 领域给定了一个信息系统的工程实施背景和研究对象. 领域工程则是面向构件的理念工程, 其核心思想是: 应用模式领域化, 问题抽象通用化, 软件元素重用化, 开发过程工程化.应用模式领域化是一种从特殊到一般的总体归类方法,它根据特定应用系统的概念特征作出相似目标定位和领域划分, 寻求规范的需求描述和一致的概念设计, 从而使单一应用系统按照概念趋同模式向领域概念框架演化.问题抽象通用化是一种具体的需求识别方法, 是实现领域归类的关键技术. 需求通用化是需求领域化的技术延伸, 并从概念层扩展到说明层. 通用化抽象需要严格区分需求的共性、相似性和变异性, 以形成类化的需求分割。
把基本不变的问题抽象为共性模型, 把部分变化的问题抽象为相似模型,把频繁多变的问题抽象为变异模型.共性模型和相似模型可用分类结构、继承机制及演化规则来统一描述。
变异模型可用代理结构、重载机制及例化规则来描述, 并提供用户自定义的工具支持. 通用化需要有抽象思维与分析高度, 没有抽象高度就没有问题通用性。
这正是领域分析的特点和难点所在.软件元素重用化使通用化的问题域模型进一步向解域深化. 通用是重用的基础, 重用是通用的目的. 软件重用同样可体现在三个层次: 概念级重用, 如领域知识、开发经验、建模方法和文档资源的重用。
逻辑级重用, 关键是软件体系结构重组和规则重用。
物理级重用的实质是构件重用, 包括模板共享、类库共享、子程序和函数调用等. 重用方法的引用包括组合式和生成式, 前者针对已有构件库,后者针对形式描述工具和元生成器.开发过程工程化是一种行为方法论,它不仅考虑信息系统的技术行为, 而且考虑与技术实施相适应的组织行为. 工程化的典型模式是,把并行工程、重构工程、协同方法和系统集成技术与现代软件工程相结合, 形成“工程—工程—产品—产业”一体化发展的工程研究环境和开发环境.领域分析方法及形式描述领域分析的基本出发点是,寻求研究对象领域内共性需求、共性特征和共性结构的一致性描述,寻求具有可变特征或相似功能覆盖的事务处理和对象抽象, 以获得概念化的领域模型. 在领域建模过程中, 理顺领域知识的分类关系极为重要, 它是规范概念和实现概念级元素重用的基础. 分类是面向对象方法的结构抽象策略, 它使领域知识可按不同层次和不同关系来组织, 以利将概念结构转化为静态的逻辑结构. 下面以集成供应链管理(ISCM >软件的研究开发为例, 说明领域模型的建立问题. ISCM 系统是企业信息系统的一个子集, 它把电子商务与供应链管理功能集成在一起. 与这种应用模式相适应, 任何一个企业的领域需求首先可以抽象为 5 大类: 目标, 组织, 流程, 资源, 环境. 进一步的抽象处理是, 把目标及其任务分解到组织和流程中。
再把组织中的职责与角色归入流程, 人员归入资源, 并通过工作流模式进行事务与数据融合. 经过二次抽象, 单个信息系统的领域需求可以归结为三要素, 即流程、资源和环境。
它也是ISCM 软件的共性需求. 换句话说, 在IS2 CM 软件开发过程中, 可以用事务流模型及事务对象来描述流程结构, 用类树模型及数据来描述资源结构, 用角色模型及实体来描述环境关联. 按照领域知识获取与组织方法, 三要素模型均可用概念元和概念结构来表示, 两者共同组成领域模型. 概念元可用巴科斯范式(或设计词汇表>来定义, 概念结构可用UML 用例图(图 2>来定义.现给出 ISCM 领域模型的一些关键描述. ISCM 系统∷= 领域需求目标模型领域需求∷= (流程, 资源, 环境>流程∷= {活动集, 关系集}资源∷= {人员, 资金, 物料, 信息, 时间}环境∷= {顾客, 供应商, 竞争者, 变因}目标模型∷= (概念模型, 逻辑模型, 物理模型>概念模型∷= {元知识集, 结构知识集}逻辑模型∷= {软构架, 关联集, 规则集}物理模型∷= {构件集, 实例集, 说明文档}软件构架与构件设计方法构架设计及形式化描述在软件系统中, 构架(A rchitecture> 即软件体系结构。