- 相关推荐
软件工程的若干热点技术发展现状与展望论文
在日常学习和工作生活中,大家都不可避免地要接触到论文吧,论文是对某些学术问题进行研究的手段。相信很多朋友都对写论文感到非常苦恼吧,下面是小编收集整理的软件工程的若干热点技术发展现状与展望论文,仅供参考,欢迎大家阅读。
软件工程的若干热点技术发展现状与展望论文 篇1
1、引言
软件工程自二十世纪六十年代末诞生以来, 经历30余年的坎坷, 它已经成为计算机科学领域一门综合性和工程性的独立学科。 现在以及未来若干年内, 软件工程的研究热点将主要集中在软件重用和软件构件技术、中间件、分布式计算和网格计算、标准化、智能化以及软件可靠性工程等方面。 了解和掌握这些热点技术问题的研究现状, 对我们进一步学习和研究软件工程无疑具有一定的参考意义。
2、若干热点技术发展状况
2. 1 软件重用和软件构件技术软件重用和软件构件技术是软件工程领域长期研究的一个主要热点问题。 其中, 构件是核心和基础, 重用是方法和手段。 构件的重用, 能使软件开发人员减少甚至摆脱 写代码0的低效工作, 致力于更高层次的 搭构件, 把更多精力放在问题定义过程, 促使问题空间与求解空间尽可能一致。 早在1968年, 软件构件与 软件组装生产线的思想就在国际NATO软件工程会议上被提出来。 从那以后,采用构件技术实现软件重用, 采用 搭积木0的方式生产软件, 成为软件业长期的梦想。
构件化应用开发必须要有开发工具的支撑, 包括集成开发环境、应用运行环境、应用管理及构件库管理等。 不同行业领域应用的公共业务逻辑, 体现在构件库中不同的业务构件或构件组。 领域构件体现了个性化需求, 包含有特定领域业务构件的应用基础平台就是该领域的应用平台。
基于构件的软件工程最需要解决的问题是如何建造构件模型和确立软件体系结构即构架。 构件模型决定了软件系统构架的思维逻辑。 在构件和构架模型中, 有必要把构件与构件间的交互作用相分离, 以提高构件的独立性和可重用性。 业界目前关注的问题主要集中在构件和构架的清晰准确地描述、构件库的管理、可重用构件和构架的获取等方面。 目前流行的NET 和J2EE 采用两种不同的构件模型和技术, NET 采用COMPCOM+ 模型, J2EE 采用EJB 模型。
据美国专家研究预测, 2005 年以后至少70%的新应用将主要建立在软件构件和应用框架的基础上。 也有专家进一步指出, 软件重用与净室模型、自动开发技术一起被认为是今后高效开发高质量软件产品过程的发展方向, 而基础是重用技术。 无论怎么说, 以软件重用为代表, 基于构件的技术将使软件工程及其软件开发方式发生巨大的改变。
2. 2 中间件技术软件重用及构件化应用开发和运行需要有不同层次的中间件平台的支撑。 中间件兴起以后, 构件技术才逐渐走向现实。 构件必须在中间件平台上才能发挥作用, 只有在适当的中间件平台上, 软件才有可能被抽象和隔离, 最终成为构件。 因此中间件技术近年来成为软件工程关注的焦点和软件业发展的关键。
中间件按功能大致可分为5类: 数据库访问、远程过程调用、通信、事务处理和分布对象中间件。
中间件技术将对软件重用和软件构件技术的发展带来深刻的影响。
首先, 中间件本质上是对分布式应用的抽象,它抛开了与应用相关的业务逻辑的细节, 保留了典型的分布交互模式的关键特征。 应用在中间件提供的环境中可以更好地集中于业务逻辑上, 并以构件化的形式存在, 最终自然而然地在异构环境中实现良好的协同工作。
第二, 基于构架的构件化软件开发应当是面向需求的, 即设计者集中精力于业务逻辑本身, 而不必为分布式应用中的通信、效率、互操作、可靠性、容错性、完整性等大量与业务无直接关系但又非常重要的问题去耗费大量的精力, 理想的构架在这些方面应当为构件软件提供良好的运行环境。 事实上, 这些正是中间件所要解决的问题。 在大型软件工程系统中有70%的错误来自于需求分析和系统设计, 中间件的发展为人们解决这一问题提供了有力的支撑。
第三, 中间件最大的特点就是屏蔽多样的系统资源。 它是位于底层基础平台( 硬件和操作系统) 和高层应用之间的通用服务。 这些服务具有标准的程序接口和协议。 针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现, 以提供开发和实现分布式系统及与环境隔离的构件开发模式。 应用构件开发者只需要按照中间件规定的模式进行设计开发, 不必考虑下层的系统平台, 这就为构件可重用甚至 即插即用提供了保障。
总之, 中间件作为应用软件系统集成的关键技术, 保证了构件化思想实施, 并为构件提供了真正的运行空间。 中间件领域工业化标准的制定、统一及实现, 使基于构件的应用开发成为可能。 反过来,构件对新一代中间件产品也起到促进作用。 中间件平台化和应用构件化的结果将导致软件工程方法的继续演变, 也将导致软件产业链的组成发生变革。 中间件的研究开发需要引入现代软件工程方法, 而软件工程的发展又需要借助中间件等一类新兴软件技术的牵引和推动。
2. 3 标准化技术标准化既是软件重用和软件构件技术发展的需要, 也是其必然结果, 同时还是软件产业健康发展的强力支撑。 软件工程标准包括软件标准和软件过程标准。 而软件过程标准的建立是软件工程成熟的重要标志。
最近几年, 国际软件工程标准化活动异常活跃, 产生了从企业到国际一级的各种各样的标准,对世界软件产业产生了巨大的规范化引导作用。 目前, 国际流行两大软件工程标准框架。 一个是国际标准化组织( ISOPIEC) 的 软件工程和系统工程标准分技术委员会提出的软件工程标准框架。 这个框架从支持软件工程各个基本要素的角度出发, 表述了软件工程对标准的需求。 另一个是美国国防部提出的软件工程标准指南。 这个框架性指南围绕软件工程环境、软件生存周期过程、软件工程安全性、程序设计语言和语言联编等提出了强制要求和建议采用的支持软件系统工程化的标准。
虽然这两个框架在覆盖范围和详细程度上有所不同, 但其共同之处都是以ISOPIEC12207 为主线标准, 并且针对支持软件工程中的 离散0活动和 连续活动, 考虑了其他一些必要的标准。 国际标准ISOPIEC 122075软件生存周期过程归纳了整个软件生存周期中的普遍被认为行之有效的各个过程( 即关于活动的描述) , 以及它们之间和它们与供、需方之间的关系。 围绕这个标准的是一批支持各个过程实施的过程规范标准。 在现行的50 多个ISOPIEC 有关软件工程的标准中, 与上述 离散活动对应的标准约占1P3, 与 连续0活动对应的标准约占2P3。
我国软件工程标准制定工作相对于软件产业而言, 起步较早。 上个世纪80 年代初, 我国就开始了软件工程标准的制定工作。 在软件质量标准方面, 首先是针对中文信息处理产品制定了大量标准, 其次, 密切跟踪国外软件质量标准化的进程, 着手分析研究工作。 就专业领域而言, 我国的国家标准和行业标准基本上覆盖软件工程的过程一类, 在其他类别上覆盖率还比较低。
下一阶段, 软件工程标准化工作的重点仍然是软件过程的标准化, 其发展方向主要是基于软件生存周期的整个软件开发流程的标准化和具体系统的标准化, 包括针对各种用途的软件开发流程标准和开发环境及专用工具系统标准。 而且, 软件过程标准化和软件标准化将进一步紧密结合并协调发展, 在此基础上逐步产生软构件标准、中间件标准和自动化生产标准。
2. 4 分布式计算技术计算模式的发展经历了中央主机模式、客户机P服务器模式以及分布式计算模式。 每一种计算模式都对计算科学的进步作出了贡献。
分布式计算是近年提出的一种新的计算方式。
所谓分布式计算就是由两个或多个软件互相共享信息, 这些软件既可以在同一台计算机上运行, 也可以在通过网络连接起来的多台计算机上运行。 分布式计算比起其它算法具有的优点主要有: ? 稀有资源可以共享; ? 通过分布式计算可以在多台计算机上平衡计算负载;可以把程序放在最适合运行它的计算机上; ?构件可以在网络内的不同平台上运行, 用户可以不知道构件的物理位置。 其中, 共享稀有资源和平衡负载是计算机分布式计算的核心思想。
从理论上讲, 分布式组合具有高性能、可扩展、支持软件重用和资源共享的特点, 但由于服务的'物理分布并发控制局部失效、构件软件市场和技术尚不成熟, 异质互操作及规格多样性大大地增加了应用软件的功能性规模和复杂性, 因此, 网络互操作性分布对象技术、对象之间的通讯以及分布式系统的开放性( 如系统的动态裁剪迁移和进化) 等问题已经成为软件工程的研究热点。
近年来业界推出了一些分布式计算技术的应用和工具。 如Sun 公司在其Java 技术的基础上推出了应用于BPS 架构的J2EE 的开发和应用平台;M-icrosoft 也在其DCOM 技术的基础上推出了主要面向BPS 应用的。 NET 开发和应用平台。 它们都是基于对象构件模型的开放式系统, 但设计目标和实现方式差别很大。 随着异构分布应用的发展, 对互操作性的要求将不断增加, 人们在继续探讨如何为开放的不断演化的系统提出一类交互模型作为分布式计算的基础。
2004年4月,IBM 提出了SOA( 面向服务的体系结构) 解决方案, 它能将异构平台上应用程序不同的功能部件( 称为服务) , 通过定义好的接口和规范, 以松耦合的方式整合在一起, 由于其方案简单、实现方便, 一出现就受到广泛关注。 目前所有国际著名的计算机公司, 都在应用SOA 技术开发相应的平台和工具。 SOA 已成为软件工程领域的研究热点。
分布式计算技术今天已经成为计算技术的主导, 显然, 它的深入研究和应用将对软件工程技术和软件产业的发展带来深刻影响。
2. 5 智能化技术人工智能( AI) 在软件工程中的应用研究是近年来兴起的热门话题之一。 欧洲信息技术研究计划( ES- PRIT) 就提出把AI 技术与软件工程技术结合起来构成一个支持软件系统分析和设计的工具。 有迹象表明, 人工智能与软件工程的相互作用终将导致新一代软件开发方法与管理的规范形成, 它能使软件易于开发、修改和维护。 软件工程的智能化是一个必然趋势。
目前, 已经展现的软件工程智能化的成果主要有: 运用专家系统和人工神经网络系统设计软件工程项目; 把智能化模块组装到大型软件系统, 使得软件适应快速改变需求; 应用推理技术提高用户界面的友好性; 在图形用户接口、面向对象的程序设计、基于约束或基于规则的程序设计中应用智能技术; 在大型分布式复杂软件中引入Agent 技术实现软件的高抽象层次的构件和连接件, 在不同层次上清晰描述和实现构件化的软件体系结构等等。
软件工程智能化在未来几年间需要化解的难题还有很多, 诸如: 基于AI 的支持环境和软件开发中的AI 机制的建立; AI 技术实用化, 如用启发式搜索范例作为模型来刻划设计和实现活动、用AI的知识表示技术描述软件工程的全过程; 基于分布式计算的软件项目如何应用分布式人工智能技术( DAI) 等等。
DAI 的研究重点是协调那些在物理上或逻辑上分散的智能体的智能行为, 使它们能够协同工作。 DAI 的研究方向将从目前的分布式问题求解(DPS) 、多Agent 系统(MAS) 、并行人工智能( PAI) 等发展出更多的方向, 以适应分布式计算和软件工程技术飞速发展的需要。 有专家预测, 对面向Agent语言及其程序设计的标准和风范的研究可能成为软件工程智能化取得突破性进展的重要因素。
2. 6 软件可靠性工程软件可靠性是软件质量的最主要的特性之一。
软件可靠性表明软件的正确、完整和一致的程度。
用数学的方法严格证明软件绝对正确、完整和一致是困难的, 甚至是几乎不可能的。 而通过测试和其他分析方法, 建立在统计理论上的计算, 估算软件的可靠性具有可行性。
软件可靠性工程目前已发展成软件工程的一个重要分支。 其主要目标是保证和提高软件可靠性。 软件可靠性工程对软件产品的可靠性进行预测、建模、估计、度量和管理, 它贯穿软件产品的设计、开发、销售、使用、维护的全过程。 70 年代末至80 年代早期, 最初的软件可靠性研究局限在软件可靠性模型的比较和选择。 90 年代以来, 软件可靠性研究工作进展较快, 研究重点包括软件可靠性设计、可靠性测试与管理、可靠性数据的收集和可靠性预测等方面。 90 年代中期, 软件可靠性工程的理论和实践基本形成。 研究的方法逐步改进, 范围逐渐扩展。 一些可靠性分析、设计技术广泛应用于软件可靠性工程之中。 人们在诸如基于软件可靠性模型的软件可靠性预计与评价; 软件系统结构、开发过程、使用环境、运行剖面等要素之间的相互关系及其对软件可靠性影响; 利用规范化的软件产品保证技术和方法指导系统软件的分析、设计、编码、测试、使用和维护等方面也取得了明显进展。
可靠性建模一直是软件可靠性工程的热点。 学者们提出了各种类型的可靠性模型, 公开报道的软件可靠性统计分析模型越来越多, 有的模型还被制造成标准的工具软件出售, 如Musa- Qkumoto 模型、Jelinski- Moranda 模型、NHPP 模型、S - shaped模型、Duane 模型、Little- Verral 模型等, 还将有大量新的模型涌现。 由于软件的特殊性, 这类模型都难免存在不同的缺陷和局限性。
国内软件可靠性研究始于80 年代初, 一批专家学者在软件可靠性建模、软件可靠性分配及软件可靠性管理等方面进行了有益的探索。 在软件避错容错技术、可靠性评估工具、可靠性测试和可靠性度量体系等方面取得了重要进展。
软件可靠性工程的研究虽然已取得了很大的成就, 但存在的问题仍很多, 例如, 过来一段的研究基本上是以概率论和数理统计为基础, 这并不完全恰当。 还需要从系统科学的其他分支中吸取营养,特别是从高层次的系统科学中寻求指导思想。 已经建立的数百种软件可靠性模型, 均存在不同程度的局限性, 对于模型的分类还没有一个公认的体系,也没有一种通用分析模型供人们使用。 还有支撑软件测试的软件失效数据库建设及其失效数据的自动收集是工程实践迫切需要解决的一个问题。 各种软件测试工具中测试用例的自动生成工具还有待于进一步开发和完善等等。
近几年来, 软件可靠性工程研究仍在深入发展。 为了使软件可靠性分析、预计更加精确, 除应用标准软件可靠性模型外, 人们还试图采用校正、纠偏、加权组合、引入软件复杂性和测试类型、开发方法类型影响因子等多种方法, 对传统模型进行改进, 以增强其可靠性评价的准确性。 同时, 应用人工智能技术和仿真技术等方法分析软件可靠性也是一种值得关注的发展趋势。
3、结束语
综上所述, 诸如构件化、中间件、标准化、分布式计算、智能化、可靠性工程等技术的进步给软件产业及软件工程的发展带来了深刻的影响。 除此之外, 软件工程在过程控制、项目管理、软件经济、风险管理、领域工程等方面也在不断发展。
软件工程在未来若干年的努力方向主要是: 继续利用各种先进的知识和工具, 加强软件工程自身的科学理论基础的研究; 剖析软件工程过程中需求和设计之间的断层现象, 建立应用需求和系统设计两者之间的有效连接机制; 提出稳定可靠的提高软件生产率的自动化和标准化措施, 解决系统设计到系统开发的平滑过渡问题; 研究降低软件开发成本、缩短开发周期、大量实现软件重用、提高系统可靠性的途径和方法。
尤需指出的是Internet、网格技术和分布式人工智能技术的发展, 将对软件工程和软件产业的发展带来深远影响。 软件工程必然要从封闭式开发走向开放式协同开发, 软件工程基于实体驱动和确定目标、有序控制的开发模式必然让位于网络环境下的基于协同驱动和动态目标、实体聚合的开发模式。 地理上广泛分布、系统平台各异的多种计算资源用高速网络连接起来, 将形成虚拟的超级计算平台, 获得前所未有的处理能力。 基于这种环境开发的软件系统具有更复杂的特征, 如动态扩展性、系统平台的各异性、结构的不可预测性、多级管理域等。 网格技术可以 粘合0不同网络空间、不同系统平台的中间件, 对整个系统实行统一的用户管理、资源管理、作业管理和安全管理, 保障软件系统的可靠运行。 有学者把在这样一个开放、动态和多变环境下开发的软件系统称为 网构软件0, 并预言网构软件的理论、方法和技术将成为21 世纪的先进的软件工程方法学体系。
总之, 软件工程的总体发展目标是从根本上克服软件危机, 逐步实现软件开发的构件化、标准化、智能化和产业化。
【拓展】计算机软件工程论文
摘要:虽然当今社会已经进入信息化时代,但是我国计算机软件项目管理仍然存在很多问题,需要得到创新。文章首先阐述了计算机软件工程管理的主要内容,然后对目前存在的问题进行了分析,总结了创新的主要对策,最后提出计算机软件工程管理在实际生活中的应用,以供广大读者参考。
关键词:计算机;软件工程管理;创新
1计算机软件工程管理的主要内容
详细来说,计算机软件工程的主要内容包括:
第一,员工管理,对于软件工程来说,主要任务就是通过编制各个项目的后续处理工作,并找到需要的信息,而员工是其中非常重要的一项。对于计算机软件工程来说,主要内容就是根据各个岗位的需求而设定不同的工作员工,并分配不同的工作内容。在员工管理方面,应该综合考虑工程的规模大小和性质,对员工职责进行合理安排,确保将不同优势和技能的工作人员用到位,员工管理与实际情况相一致。对于计算机软件工程管理来说,员工不仅仅是一个团队,而是各个行业的工作人员共同工作。
第二,用户管理,因为计算机软件工作的目的就在于为广大用户提供软件服务,因为在开发软件过程中应该做好调查的相关工作,根据用户的需求而设计软件。另外一方面,为了确保软件更加人性化,应该在软件设计环节尽量减少外界的干扰,并获得用户的诚挚反馈意见,切实考虑用户的需求,设计更为科学合理的软件。软件设计应该遵循实用性和潜力性等原则,要满足用户的可操作性,并且具备改进的潜力,能够为用户提供更为便利的服务。
第三,组织管理,这一管理就是为了确保软件信息能够更为准确传达到对方,从而进行明确的分工,在组织管理过程中应该注重组织结构的完整性,采用更为合理的组织分配原则,降低人员简单的集合发生率。组织管理应该根据项目的具体要求而设计不同的系统模式,避免统一系统模式。
2计算机软件工程管理存在的问题
随着计算机技术的发展,我国计算机软件工程管理也取得了很大进步,但是与发达国家相比还存在一些问题,详细来说主要包括:
一方面,计算机软件需求与实际生活存在一定脱节。需求分析和业务处理是计算机软件工程管理的重要内容,但是我国在这方面的管理并没有考虑二者的衔接性,导致整个计算机软件工程管理都没有达到理想的目标。在需求分析阶段,一些软件开发人员没有全面调查业务数据,也没有全面调查开发和测试等活动,所以其作用就比较有限,只能局限于软件框架开发层面,也没有业务经营和规划等方面,这样就会导致很多计算机软件开发人员不按照一定的业务规则工作,也不能深入分析需求,结果必然会造成计算机软件工程的终端产品不符合实际需求的情况。
另外一方面,目前计算机软件工程管理不能正确评估其工作量,而计算机软件工程管理本身就属于业务比较复杂、工作量比较大的管理业务,并且各种人为因素会对其产生很大的影响,比如员工的个人素质、综合技能、理论知识等,但是现在很多计算机软件工程管理中都没有对人的因素给予足够重视,造成不能准确估算软件开发工作量大小。因此本文认为应该在管理过程中持续改进和研究评估工作量问题,不断探索更为准确的数据处理软件和方法,从而能够准确实现管理目标。
因此可以看出,我国计算机软件工程管理还没有得到社会的广泛关注,并存在一定的问题,而造成这些问题出现的原因主要包括:
一方面是由于计算机软件工程管理在我国还处于比较新的开发项目,很多关于计算机软件工程的问题都处于刚刚发现的阶段,并没有有效的防治措施。另外一方面,计算机软件工程管理在运行时会受到很多因素的限制,并且这一管理工程本身就是特殊的技能,涉及到各个学科的理论知识,所以有效管理计算机软件工程属于比较困难的事情。
3计算机软件工程管理的创新分析
通过以上分析可以看出,目前我国计算机软件工程管理还存在一些问题,而本文认为计算机软件工程管理的创新对策主要包括:
第一,建立健全计算机软件工程管理体系。首先应该重视各种人为因素,坚持以人为本的原则,加强人力资源开发力度,注重计算机人才在软件工程管理中的重要作用,从而建立健全计算机软件工程管理的人才体系,发挥人的主观能动性,实现软件工程管理目标。其次应该鼓励软件工程管理人员学习计算机软件相关理论知识,加强管理技能培训,重视理论与实践相结合,将掌握的计算机软件理论知识应用于管理实践中。最后是应该建立健全相应的激励机制,发挥员工的积极性和主动性,严格执行激励机制,对表现优秀的人员给予一定奖励,而对于表现不合格的人员应该进行惩罚,并加强这些操作和管理人员的培训力度,保障整个工程顺利完成。
第二,重视软件工程的风险管理。通过上文分析我们能够知道,计算机软件工程管理比较复杂,涉及到各个环节和工作,其中不可避免着各种风险。从整个阶段来看,风险主要包括需求、成本、技术和进度。详细来说,需求就是客户没有按照软件工程的相关要求表达自己的需求,或者操作和管理人员没有按照客户提供的需求进行设计,导致软件与预期相比存在一定的差距,而客户要求重新设计,造成很大的成本浪费,影响整个管理工作的进度。对于有效防治软件工程管理中的各种风险,本文认为风险管理的主要对策可以包括:首先是建立健全相应的风险管理体系,形成一定的风险意识,并不断充实自己的理论知识,加强培训工作,及时进行风险信息反馈,解决软件管理中遇到的各种风险问题,并提交风险报告。其次是加强风险识别工作,准确辨别管理过程中遇到的各种风险,采用转移、减缓等具体措施开展风险管理工作,降低经济损失。最后是准确把握软件开发工作的进度,在控制成本的前提下提高工作效率,完善管理制度,实时监控软件工程进度,解决各个阶段的风险问题,确保整个工作的进展。
第三,创新软件工程管理工作理念,转变传统管理理念,掌握更为先进的管理办法,提升管理效率。在软件工程管理过程中应该加强对需求的分析,明确其基本功能和约束条件,并编制用户使用指南,方便用户使用。为了准确获得用户的需求,可以组建需求调研小组,考虑各个群体的差异性,并选择最为经典的案例作为需求决策的基本依据,加强后期用户交流,从而获得用户的认可。另外一方面,还需要统筹规划软件开发平台,也就是形成统一系统操作平台,保证在既定时间内完成相应的任务,目前我国还没有形成此类的平台,因此需要加大该方面的研究力度,尝试形成统一平台,应用于计算机软件工程管理中。
4计算机软件工程管理在工作中的应用
计算机网络技术在我国正处于飞速发展的阶段,各个领域都可以看到计算机网络的身影,而计算机软件工作管理有效运用是网络运用的基础,所以目前各个行业都在应用计算机软件工程。另外一方面,计算机软件对校园也产生了很大影响,教师可以利用计算机软件授课、传递知识,而学生可以利用计算机软件统计信息等。总而言之,21世纪就是信息化的社会,计算机软件为办公自动化和信息化提供了技术支持,也推动着我国经济的发展。计算机软件工程管理工作任重而道远,需要我们根据实际工程中遇到的各种问题进行不断改进,解决实际工作中遇到的各种问题,理论与实际相结合,用理论来指导实践。
参考文献:
[1]石晓山.计算机软件工程管理的创新与完善[J].电子技术与软件工程,2015(4):102
[2]于文龙.关于如何创新和完善计算机软件工程管理的探讨[J].网友世界,2014,16:1
[3]于文龙.关于如何创新和完善计算机软件工程管理的探讨[A].网友世界,2014:1
[4]修鹏鹏.如何创新和完善计算机软件工程管理[J].计算机光盘软件与应用,2013,23:110-111
【软件工程的若干热点技术发展现状与展望论文】相关文章:
建筑节能技术发展现状05-24
关于信息技术发展的论文(精选8篇)08-11
软件工程论文题目06-05
水文地质勘查的若干问题论文04-29
完善城市水价机制的若干问题论文05-05
浅析校园低头族现状论文04-19
高校法制教育现状论文06-04