基于构件的软件开发前景分析(基于构件的软件工程)
本篇文章给大家谈谈基于构件的软件开发前景分析,以及基于构件的软件工程对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
软件开发前景?
虽然互联网领域的持续快速发展,尤其是近些年来移动互联网领域的发展,在很大程度上促进了IT行业领域对于开发人才的需求,但是目前要想找到一份适合自己的软件开发岗位也并不容易,而要想获得较高的薪资待遇往往也有很多具体的要求。
当前软件开发岗位对于从业者的门槛要求在进一步提升,随着云计算、大数据和人工智能相关技术的发展,软件开发领域对于相关开发岗位的要求有三个较为明显的变化,其一是开发人员需要具备多场景开发能力(全栈开发);其二是开发人员需要具备一定的创新能力(研发);其三是开发人员需要具备一定的行业知识。
在云计算技术的推动下,未来更多的行业定制化开发会转向基于PaaS的开发方式,这将在很大程度上提升程序员的开发效率,所以未来行业定制化开发必然会出现岗位升级,这也将促使一部分技术结构陈旧的程序员面临一定的从业压力。
在大数据技术和5G通信的推动下,程序员需要面对的开发场景也将得到进一步的拓展,程序员不仅需要掌握常规的软件开发技术,还需要掌握一定的大数据技术,所以要想就业到软件开发岗位也并不容易。目前一部分开发企业对于全栈程序员更感兴趣,而要想成为一名全栈程序员,无疑需要更多的积累。
软件体系结构的应用现状
形成研究热点,仍处于非形式化水平
自20世纪90年代后期以来,软件体系结构的研究成为一个热点。广大软件工作者已经认识到软件体系结构研究的重大意义和它对软件系统设计开发的重要性,开展了很多研究和实践工作。
从软件体系结构研究的现状来看,当前的研究和对软件体系结构的描述,在很大程度上来说还停留在非形式化的基础上。软件构架师仍然缺乏必要的工具,这种工具应该是显式描述的、有独立性的形式化工具。
在目前通用的软件开发方法中,其描述通常是用非形式化的图和文本,不能描述系统期望的存在于构件之间的接口,不能描述不同的组成系统的组合关系的意义。难以被开发人员理解,更不能用来分析其一致性和完整性等特性。
当一个软件系统中的构件之间几乎以一种非形式化的方法描述时,系统的重用性也会受到影响,在设计一个系统结构过程中的努力很难移植到另一个系统中去。对系统构件和连接关系的结构化假设没有得到显式的、形式化的描述时,把这样的系统构件移植到另一个系统中去将是有风险的,甚至是不可能的。
软件体系结构的形式化方法研究
软件体系结构研究如果仅仅停留在非形式化的框图阶段,已经难以适应进一步发展的需要。为支持基于体系结构的开发,需要有形式化建模符号、体系结构说明的分析与开发工具。从软件体系结构研究的现状来看,在这一领域近来已经有不少进展,其中比较有代表性的是美国卡耐基梅隆大学(Carnegie Mellon University)的Robert J.A11en于l997年提出的Wright系统。Wright是-种结构描述语言,该语言基于一种形式化的、抽象的系统模型,为描述和分析软件体系结构和结构化方法提供了一种实用的工具。Wright主要侧重于描述系统的软件构件和连接的结构、配置和方法。它使用显式的、独立的连接模型来作为交互的方式,这使得该系统可以用逻辑谓词符号系统,而不依赖特定的系统实例来描述系统的抽象行为。该系统还可以通过一组静态检查来判断系统结构规格说明的一致性和完整性。从这些特性的分析来说,Wright系统的确适用于对大型系统的描述和分析。
软件体系结构的建模研究
研究软件体系结构的首要问题是如何表示软件体系结构,即如何对软件体系结构建模。根据建模的侧重点的不同,可以将软件体系结构的模型分为5种:结构模型、框架模型、动态模型、过程模型和功能模型。在这5个模型中,最常用的是结构模型和动态模型。
(1)结构模型
这是一个最直观、最普遍的建模方法。这种方法以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质。研究结构模型的核心是体系结构描述语言。(2)框架模型
框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。
(3)动态模型
动态模型是对结构或框架模型的补充,研究系统的大颗粒的行为性质。例如,描述系统的重新配置或演化。动态可能指系统总体结构的配置、建立或拆除通信通道或计算的过程。这类系统常是激励型的。
(4)过程模型
过程模型研究构造系统的步骤和过程。因而结构是遵循某些过程脚本的结果。
(5)功能模型
该模型认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。它可以看作是一种特殊的框架模型。
这5种模型各有所长,也许将5种模型有机地统一在一起,形成一个完整的模型来刻画软件体系结构更合适。例如,Kruchten在1995年提出了一个4+1的视角模型。4+1模型从5个不同的视角包括逻辑视角、过程视角、物理视角、开发视角和场景视角来描述软件体系结构。每一个视角只关心系统的一个侧面,5个视角结合在一起才能够反映系统的软件体系结构的全部内容。4+1模型如图1所示。
图1 4+1模型
发展基于体系结构的软件开发模型
软件开发模型是跨越整个软件生存周期的系统开发、运行、维护所实施的全部工作和任务的结构框架,给出了软件开发活动各阶段之间的关系。目前,常见的软件开发模型大致可分为三种类型:
(1)以软件需求完全确定为前提的瀑布模型。
(2)在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型,如螺旋模型等。
(3)以形式化开发方法为基础的变换模型。
所有开发方法都是要解决需求与实现之间的差距。但是,这三种类型的软件开发模型都存在这样或那样的缺陷,不能很好地支持基于软件体系结构的开发过程。因此,研究人员在发展基于体系结构的软件开发模型方面做了一定的工作。例如,为了形象地表示体系结构的生命周期,北京邮电大学的周莹新博士建立了一个软件体系结构的生命周期模型,该模型如图2所示。图2 软件体系结构的生命周期模型
软件产品线体系结构的研究
软件体系结构的开发是大型软件系统开发的关键环节。体系结构在软件生产线的开发中具有至关重要的作用,在这种开发生产中,基于同一个软件体系结构,可以创建具有不同功能的多个系统。在软件产品族之间共享体系结构和一组可重用的构件,可以增加软件工程和降低开发和维护成本。
一个产品线代表着一组具有公共的系统需求集的软件系统,它们都是根据基本的用户需求对标准的产品线构架进行定制,将可重用构件与系统独有的部分集成而得到的。采用软件生产线式模式进行软件生产,将产生巨型编程企业。但目前生产的软件产品族大部分是处于同一领域的。
基于构件的软件开发包括哪些要素
与传统的软件开发方式相比,基于构件的软件开发方法有什么突破呢?
一、体系结构
软件体系结构代表了系统公共的高层次的抽象,它是系统设计成败的关键。其设计的核心是能否使用重复的体系模式。传统的应用系统体系结构从基于主机的集中式框架,到在网络的客户端上通过网络访问服务器的框架,都不能适应目前企业所处的商业环境,原因是:
企业过分地依赖于某个供应商的软件和硬件产品。这种单一供应商使得企业难以利用计算供应商的免费市场,将计算基础设施的重要决定交给第三方处理,这显然不利于企业在合作伙伴之间共享信息。
不能适应远程访问的分布式、多层次异构系统。
封装的应用系统在出现某种组织需要时,难以用定制来维护系统,从而难以满足多变的需求。
不能实现分析、设计核心功能重用,最多只能实现代码重用。
如今,应用系统已经发展成为在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的属性。复杂的修改由用户通过定制器设置参数完成。
基于构件的软件开发方法对什么菌有影响
软件构件技术是在软件开发中避免重复劳动的解决方案。
通过软件构件技术可以提高软件开发的效率和质量。近十几年来面向对象技术出现并逐步成为主流技术,为软件构件技术提供了基本的技术支持。
软件构件技术研究成为热点,被视为解决软件危机、提高软件生产效率和质量的现实可行的途径。
关于基于构件的软件开发前景分析和基于构件的软件工程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。