`
softstone
  • 浏览: 477731 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

变革与突破—如何认识基于构件的软件开发方法

阅读更多










变革与突破—如何认识基于构件的软件开发方法

王克宏

(本文转载自软件工程专家网www.21cmm.com)


  与传统的软件开发方式相比,基于构件的软件开发方法有什么突破呢?


一、体系结构


  软件体系结构代表了系统公共的高层次的抽象,它是系统设计成败的关键。其设计的核心是能否使用重复的体系模式。传统的应用系统体系结构从基于主机的集中式框架,到在网络的客户端上通过网络访问服务器的框架,都不能适应目前企业所处的商业环境,原因是:


  企业过分地依赖于某个供应商的软件和硬件产品。这种单一供应商使得企业难以利用计算供应商的免费市场,将计算基础设施的重要决定交给第三方处理,这显然不利于企业在合作伙伴之间共享信息。


  不能适应远程访问的分布式、多层次异构系统。


  封装的应用系统在出现某种组织需要时,难以用定制来维护系统,从而难以满足多变的需求。


  不能实现分析、设计核心功能重用,最多只能实现代码重用。


  如今,应用系统已经发展成为在Intranet和Internet上的各种客户端可远程访问的分布式、多层次异构系统。CBSD为开发这样的应用系统提供了新的系统体系结构。它是标准定义的、分布式、模块化结构,使应用系统可分成几个独立部分开发,可用增量方式开发。


  这样的体系结构实现了CBSD的以下几点目标:


  能够通过内部开发的、第三方提供的或市场上购买的现有构件,来集成和定制应用软件系统。


  鼓励在各种应用系统中重用核心功能,努力实现分析、设计的重用。


  系统都应具有灵活方便的升级和系统模块的更新维护能力。


  封装最好的实践案例,并使其在商业条件改变的情况下,还能够被采用,并能保留已有资源。
由此看出,CDSD从系统高层次的抽象上解决了复用性与异构互操作性,这正是分布式网络系统所希望解决的难题。


二、开发过程


  传统的软件开发过程在重用元素、开发方法上都与CBSD有很大的不同。虽然面向对象技术促进了软件重用,但是,只实现了类和类继承的重用。在整个系统和类之间还存在很大的缺口。为填补这个缺口,人们曾想了许多方法,如系统体系结构、框架、设计模式等。


  自从构件出现以来,软件的重用才得到了根本改变。CBSD实现了分析、设计、类等多层次上的重用。图1显示了它的重用元素分层实现。在分析抽象层上,重用元素有子系统、类;在设计层上重用元素有系统体系结构、子系统体系结构、设计模式、框架、容器、构件、类库、模板、抽象类等。




  在软件开发方法上,CBSD引导软件开发从应用系统开发转变为应用系统集成。建立一个应用系统需要重用很多已有的构件模块,这些构件模块可能是在不同的时间、由不同的人员开发的,并有各种不同的用途。在这种情况下,应用系统的开发过程就变成对构件接口、构件上下文以及框架环境一致性的逐渐探索过程。例如,在J2EE平台上,用EJB框架开发应用系统,主要工作是将应用逻辑,按session Bean、entity Bean设计开发,并利用JTS事务处理的服务实现应用系统。其主要难点是事务划分、构件的部署与开发环境配置。概括地说,传统的软件开发过程是串行瀑布式、流水线的过程;而CBSD是并发进化式,不断升级完善的过程。图2显示了它们的不同。




三、软件方法学


  软件方法学是从各种不同角度、不同思路去认识软件的本质。传统的软件方法学是从面向机器、面向数据、面向过程、面向功能、面向数据流、面向对象等不断创新的观点反映问题的本质。整个软件的发展历程使人们越来越认识到应按客观世界规律去解决软件方法学问题。直到面向对象方法的出现,才使软件方法学迈进了一大步。但是,高层次上的重用、分布式异构互操作的难点还没有解决。CBSD发展到今天,才在软件方法学上为解决这个难题提供了机会。它把应用业务和实现分离,即逻辑与数据的分离,提供标准接口和框架,使软件开发方法变成构件的组合。因此,软件方法学是以接口为中心,面向行为的设计。图3是其开发过程。




  归纳起来,CBSD的软件开发方法学应包括下面几方面:


  对构件有明确的定义。


  基于构件的概念需要有构件的描述技术和规范,如UML、JavaBean、EJB、Servlet规范等。


  开发应用系统必须按构件裁剪划分组织,包括分配不同的角色。


  有支持检验构件特性和生成文档的工具,确保构件规范的实现和质量测试。


  总之,传统的软件方法学从草稿自顶向下进行,对重用没有提供更多的辅助。CBSD的软件方法学要丰富得多,它是即插即用,基于体系结构,以接口为中心,将构件有机组合,它把自顶向下和自底向上方法结合起来进行开发。


四、开发组织机构


  传统软件的开发组织一般由分析员、设计员、程序员和测试员组成。对一个小的应用系统来说,一个熟练的开发人员,可能兼顾以上多个角色。但对CBSD来说,因为构件开发与应用系统集成往往是分开进行的,因此整个开发过程由六个角色来完成,他们是:


  构件开发者 也是构件供货商,这些大多数是中间件构件提供者。


  应用构件集成者 针对某应用领域将已有构件组合成更大的构件模块或容器, 作为系统部署的基本单元。


  应用系统部署者 将系统部署基本单元放入选定的平台环境或基本框架中,完成软件定制的要求。


  开发平台服务器供应商 提供服务器、操作系统和数据库等基本软件。


  应用系统开发工具供应商 提供构件公共设施服务。


  系统管理员 配置硬件、网络和操作系统,监督和维护应用系统者。


  这六个角色的工作专业性很强,要兼顾成为多面手很不容易。目前已形成构件开放市场,而且还很火红。这也是当今软件人才大战所遇的一个困惑。因此,在CBSD中,如何组织好开发队伍尤为重要,必须按本企业所具备人才来组织。特别重要的是:开发初期必须选好标准框架,以及统一的开发指导方针,保证在整个开发过程中,各角色能随时互相沟通。一般来说,CBSD的人员素质决定了构件的重用率。


五、构造方法


  传统应用软件的构造是用白盒子方法,应用系统的实现全在代码中,应用逻辑和数据粘结在一起。而CBSD 的构造是用白盒子和黑盒子相结合的方法。 基于构件的框架是用两个概念来支持演变:第一个概念是构件有很强的性能接口,使构件逻辑功能和构件模型的实现都隐藏起来。这样,只要接口相同,构件就可以被替换。


  第二个概念是隐式调用,即在基于构件的框架中,从来不直接给构件的接口分配地址,只在识别构件用户后才分配地址。因此,构件用户只要了解接口要求和为构件接口提供的引用后的返回信息 (该引用可能是一个构件,也可能是一个构件代理。对构件用户来说,构件代理就是构件,不用区分) 。 构件接口的信息并不存入构件内,而是存入构件仓库或注册处。这样才能保证构件替换灵活,并很容易利用隐式调用去重新部署构件。由于构件的实现对用户透明,因此也使构件能适应各种不同的个性化要求。为此,构件提供自检和规范化两个机制。自检保证在不了解构件的具体实现时,就能获得构件接口信息。例如,JavaBean提供的自检机制是Reflection和BeanInfo, 通过Reflection 可直接获得Bean构件的全部方法,通过BeanInfo可直接获得构件的许多复杂信息。


  规范化允许不访问构件就可以修改它,如JavaBean提供的规范化是property sheet和customizer(定制器)。 通过property sheet提供一组简单参数,修改Bean的属性。复杂的修改由用户通过定制器设置参数完成。

分享到:
评论

相关推荐

    论基于构件的软件开发.docx

    基于构件的软件开发技术 本文以某公司生产经营管理系统为例,探讨了基于构件的软件开发问题。该系统是一个集原料采购、生产管理、物流管控等七大功能于一体的综合信息系统。在系统的开发过程中,作者担任系统架构师...

    大规模基于构件的软件开发

    为了成功实施大规模基于构件的软件开发,团队应采用敏捷开发方法,强调迭代和增量交付。随着微服务架构的兴起,更小、更专注的组件成为趋势,这将进一步推动构件化开发。此外,AI和自动化工具在构件选择和优化中的...

    基于构件的软件开发.pptx

    "基于构件的软件开发" 基于构件的软件开发是指使用可复用构件来开发应用软件,以提高软件开发效率、质量和复用性。这种开发模式类似于汽车工业的生产模式,即在已有的部件基础上通过组装进行生产。基于构件的软件...

    《大规模基于构件的软件开发》

    《大规模基于构件的软件开发》是一本专注于在大型项目中运用构件技术进行软件构建的专业教程。构件技术是软件工程领域中的一个重要概念,它强调通过复用预先开发的、经过验证的软件组件来提高软件开发效率和质量。在...

    面向构件化软件开发

    面向构件的软件开发 确定业务范围和框架 确定应用环境和技术 选择开发平台 建立构件化开发体系 建立构件库

    基于嵌入式硬件构件模型的底层软件开发方法的研究.pdf

    ### 基于嵌入式硬件构件模型的底层软件开发方法的研究 #### 摘要与背景 在《基于嵌入式硬件构件模型的底层软件开发方法的研究》一文中,作者们蒋银珍、王宜怀和王加俊探讨了嵌入式系统中硬件和底层软件的可移植性...

    基于软件体系结构与软件构件技术的开发方法的研究与实现

    运用以体系结构为指导、基于构件的开发方法与J2EE 平台规范相结合,为建设机械制造公司设计开发了ERP 系统。该系统具有分布式基于Web 应用的特点,具有良好的开放性、集成性和适应性,各项性能均达到了设计要求。

    软件复用与基于构件的软件开发优秀文档.ppt

    基于构件的软件开发是指使用已经预先定义好的、自包含的、相对独立的软件构件来构建软件系统的开发方法。这种方法可以提高软件系统的开发质量与效率,降低开发成本。软件构件可以是源代码、设计、数据、用户界面等。...

    ABC_基于体系结构_面向构件的软件开发方法_梅宏

    ABC_基于体系结构_面向构件的软件开发方法_梅宏cnki最新学术研究论文

    软件资格水平考试(软考)-高级-论文样例:论基于构件的软件开发

    软件资格水平考试(软考)-高级-论文样例:论基于构件的软件开发

    体系结构、面向构件的软件开发方法.pdf

    本文提出了一种基于软件体系结构的面向构件的开发方法,该方法将软件体系结构引入到软件生命周期的每个阶段,将其作为系统开发的蓝图,通过工具支持缩小高级设计与实施之间的差距,并在运行时组件支撑平台上实现了...

    主流软件开发技术(原型法,BS/CS结构,基于构件的软件开发法,软件复用)

    **原型法概述**:原型法是一种先进的系统开发方法,强调在软件开发初期构建一个功能简化但直观的“软件样机”——即原型,通过与用户持续的互动与反馈循环,逐步完善和细化系统功能,直至达到最终需求标准。...

    基于构件的软件工程的开发

    详细论述了当今,软件开发的新技术!从软件工程包括的方法、工具和过程三个方面论述了基于构件的软件工程的特点……

    基于构件的软件复用技术研究与应用实践2.pdf

    基于构件的软件复用技术是软件开发领域的一项重要技术,它主要通过复用已经开发完成且经过验证的软件构件来快速构建新的系统,提高开发效率,降低开发成本,缩短开发周期,同时确保软件质量。构件复用技术的研究与...

    《大规模基于构件的软件开发》PDF版本

    csdn中有很多这本书的版本,但全部都是pdg超星下载的,这个是带目录标签的PDF完全版,真实有效,绝不虚假!

Global site tag (gtag.js) - Google Analytics