大规模软件

2024-10-25

大规模软件(精选9篇)

大规模软件 篇1

随着信息技术的飞速发展,计算机技术更新日新月异,传统的维性能时代已渐渐远去,大规模高效能计算已经成为未来信息技术发展的必然趋势。高效能计算体系是由美国国防部在2002年首先提出的以大规模高效能计算作为未来计算机发展的主导力量。高效能子最早是在经济学中出现的,它的含义是以较少的投入量在较短的时间内极大地创造出更多的价值,实现各方效益的最大化。在计算机领域,大规模高效能计算则主要是指在尽短的时间内以最小的设备投入、资金投入和人力投入完成复杂的、超量的有效计算。我国863计划也将高效能计算作为高端计算体系的重要研究对象。大规模高效能计算在体系软件方面主要的体现可分为以下几点:1)高效能。计算机的计算性能是由硬件的性能、大规模高效能体系的软件以及应用程序共同决定的;2)低成本。尽可能地降低建设、运行和维护的费用是实现大规模高效能计算的重要条件之一;3)可靠性。计算机运行的可靠性一直是困扰高效能计算技术领域发展的重要因素之一,所以研制和开发出性能可靠的具有大规模高效能运算能力的计算机实现云计算的重要前提。通过设计和开发具有管理计算机运行功能的系统软件是未来高效能计算发展的必然趋势;4)易用性。大规模高效能计算机需要以系统软件作为运行平台,能够为用户提供能高效、方便的程序设计和运行环境实现计算机的易用性是系统软件的重要所在;5)数据的安全性。大规模高效能计算是集诸多数据库为基础,以系统的云计算为核心的应用平台,数据的安全性是整个体系正常运行的重要保证。本文对大规模高效能计算的系统软件进行技术探讨。

1 高效能计算技术

大规模高效能计算技术渗透于现代生活的各个方面,涉及现代科学技术的诸多领域,包括航空航天、现代通信、天气预测、交通管理、工程机械、现代建筑、土木工程、资源勘探、海洋研究、深空探测等。自从1946 年2 月15 日世界第一台电子计算机问世到计算能力达以亿次衡量的超级计算机的应用,计算机的发展得到了长足的进步,计算机的应用也有传统意义上的单纯的计算到在工业和农业领域大规模的广泛运用,整个发展过程经历了一次又一次的技术变革。现代计算机的广泛运用与系统软件的日益更新密不可分。

2 系统软件的技术探讨

2.1系统软件的功耗管理

功耗在物理上定义为功率的损耗,指的是仪器、设备、元器件等的输入功率和输出功率之间的差值。功耗问题不仅在我们的日常家用用电设备中经常出现,而且在现今的各类型的高效能计算机中也普遍存在。对于百万亿次和千万亿次以上的高性能计算机,它们通常都含有大量的结点,功耗问题与系统性能的极速提升和功耗密度的增长是成正比例增长的,这不仅为现在日益紧缺的用电资源背道而驰,也严重地制约了高性能计算机的发展。

计算机系统软件的功耗管理包含峰值功耗和能效两个方面。大规模高效能计算的基本要求是尽可能地控制峰值功耗。通过系统软件的开发与应用有效地调配大规模系统中的存在的大规模的空闲活跃节点,对节点进行管理和分类,建立以节点分类为基础的功耗管理模式,尽量降低采样和控制的规模。以系统软件为背景动态调整空闲节点睡眠模式、基于设备内部时钟保持正常运行状态的设备掉电模式和基于基于设备内部时钟停止运行状态的设备掉电模式。

2.2用户环境的虚拟化

虚拟化是指通过虚拟化技术将一台计算机虚拟成多台逻辑计算机的一种手段。在一台计算机上能够同时运行多个逻辑计算机,而且每个逻辑计算机也可同时运行不同的操作系统,并且它们的应用程序都可以在相互独立的空间内正常的运行而彼此之间不受影响,从而显著提高计算机的计算能力和工作效率。虚拟化使用软件的方法能够重新的定义划分IT资源,能够实现IT资源更有效地完成动态的分配,灵活的调度,跨域共享,显著地提高IT资源利用率,使IT资源能够真正地成为服务现实大众的社会基础设施,能够更好地服务于各行各业中灵活多变的应用需求。

作为网格系统中的一个重要的计算资源,未来的高效能计算机

更需要一个能够适应网格环境的编程模型和计算模式以及开发运行和系统管理等的优良环境。

2.3 虚拟化环境中的功耗管理

传统的功耗管理可通过对系统的硬件设施和软件程序进行升级和改造就能达到显著地降低功耗的目的。与现实生活中传统的功耗管理不同的是虚拟化环境中的功耗管理不能直接地去控制硬件设施,这是由于用户操作系统对整个系统的执行状态和行为完全未知。整个系统的执行行为不被客户操作系统了解,硬件不可直接被控制;如果硬件状态被虚拟机直接进行改变,就会影响其他虚拟机在同一硬件平台上的运行,隔离特征是虚拟机破坏最基本的特征。在虚拟化实现层研究系统功耗的管理是面向虚拟机环境的功耗管理技术主要集中的领域,而提供给虚拟机内用户的设施极其缺乏,实现系统功耗的优化只能依靠已有的功耗管理技术来实现。

2.4虚拟化技术在高效能计算领域中的应用前景

虚拟化在大规模高效能计算领域的应用还处于初级阶段,但一些典型的应用系统已经如雨后春笋般地开始出现,如粒子探测器仿真系统已用于高能物理的仿真实验,综合实验环境仿真系统被用来进行Botnet研究,起落架协同仿真系统被用于复杂产品仿真等。

现代工业生产中,真实产品的制造是依靠虚拟制造的动态模拟的。虚拟制造是一种软件技术,这种软件技术是在计算机上通过模拟大规模复杂产品制造而发展起来的。具有建模和仿真环境是虚拟制造的典型特征,它在产品生产、工艺设计、调度计划、后勤安排、财会管理、市场采购等过程为产品提供了一个集成的制造环境,能够预测产品的功能和制造系统的工作状态是虚拟制造在真实产品的制造活动广泛地被推广和应用的重要基础。信息技术、仿真技术和虚拟现实技术是虚拟制造作为一种新的制造技术的重要支持。集中管理和共享资源是虚拟化技术常常采用的一种用来提高资源的利用率和实现资源的自动满足需求的方法。

虚拟化在虚拟制造中具有广阔的应用前景。现代工业中的汽车制造、飞机设计制造、国防建设、航空航天、电力交通等重要领域都有广泛的应用。在今后的发展中,迈向虚拟化、网络化、数字化、集成化、协同化方向的发展趋势是虚拟制造在建模与仿真技术发展的方向,它为研究虚拟化高效能仿真系统提供了广阔的发展和应用前景,与此同时,虚拟化技术扩展和丰富了网络化建模与仿真技术的内涵和应用。

3 大规模高效能计算之体系软件未来发展

从高性能计算转变成高效能服务是未来高效能计算发展的必然趋势,而制约高效能计算技术发展的瓶颈是缺乏一种适合于高效能计算资源所需要的自然特性的计算环境,所以引入新的高效能计算资源管理方法势在必行。高效能计算系统中能够运用虚拟化技术,不仅使高效能计算资源管理的方式,访问的方式和使用方式的到有效改变,而且使整个计算系统中的资源利用率得到显著地提升,继而使从计算系统的效能从整体上得到提升。面对大规模高效能计算出现的问题,大规模计算系统的效能的而研究可以从系统软件的角度进行研究,兼顾功耗管理中常出现的多个目标,设计合理的解决功耗管理问题的方案,实现系统软件完成大规模高效能计算。通过虚拟化管理实现传统物理功耗管理机制与虚拟化功耗管理机制完全的有机兼容,为大规模高效能计算之体系软件未来的发展开辟新的方向。

摘要:首先分析了大规模高效能计算的发展和研究现状,探讨了大规模高效能计算之体系软件的主要体现的几个方面:系统软件的功耗管理、用户环境的虚拟化、虚拟化环境中的功耗管理以及虚拟化技术在高效能计算领域中的应用前景,并对未来大规模高效能计算之体系软件主要技术的发展进行分析和展望。

关键词:高效能计算,系统软件,虚拟化

参考文献

[1]刘勇鹏.大规模高效能计算的系统软件关键技术研究[D].长沙:国防科学技术大学,2012.

[2]陈小军,张璟.面向高效能计算的虚拟化技术研究综述[J].系统仿真学报,2012,24(4):741-747.

[3]曾宇,王洁,孙凝晖.曙光5000A高效能计算节点的设计与实现[J].计算机工程,2009,35(6):17-22.

[4]卢凯,迟万庆,刘勇鹏,等.HPVZ:面向高效能计算机系统的虚拟化用户环境技术[J].计算机工程与科学,2009(4).

大规模软件 篇2

2006年二季度国内CRM软件的区域市场中,华东,华北,华南是CRM软件的主要市场,共占据了CRM软件区域市场中77.7%的市场份额,依次为:华东占31.4%,华北占26.5%,华南占19.8%,

在行业应用市场中,国内CRM市场的行业用户主要集中在金融、制造、电信三个行业中,共占据了CRM软件行业市场63.1%的份额。

软件百强沧桑巨变 规模仍是软肋 篇3

当很多软件企业还在为跨

入10亿元俱乐部而努

力的时候,中国软件业务收入迈过100亿元门槛的企业总数达到了3家—华为、中兴通讯和神州数码。

这是5月底工业和信息化部公布的2010年(第九届)中国软件业务收入前百家企业名单显示的。前100家企业共实现软件业务收入2448.7亿元,比上届增加了409.2亿元。

工信部从2002年开始第一届软件百家企业的评选。近9届百家企业的平均更新率达到25%,显示出中国软件业的激烈竞争和沧桑变化,单个软件企业规模普遍偏小、抵御风险能力不足,是名单不断变化的重要原因。

入围门槛不断提高

本届百家企业入围门槛为3.96亿元,比上届增加了8545万元,提高27.3%,其中超过10亿元的企业有43家,远远多于2002年第一届的12家。其中,前10家企业的软件业务总收入为1515亿元,在百家企业总收入中的比重高达61.9%,显示出行业较高的集中度。

2002年~2010年,百家企业的入围门槛逐年提高。2002年的入围门槛只有9200多万元,相比之下,2010年的百家企业入围门槛比2002年翻了两番,年均增幅超过3500万元。

虽然华为连续9届都位列百家企业的首位,具有很高的稳定性,但百家企业的名单更新调整仍然很快,软件产业竞争的激烈可见一斑。工信部的统计显示,9届百家企业平均更新率达到25%,第八届名单中的13家企业因收入达不到本届门槛而退出,另有5家企业因亏损或转产、重组等原因退出,典型代表就是以MP3芯片风靡一时的炬力集成电路设计有限公司。

在众多企业中,排名靠前的企业稳定性较好,第一届百家企业的前30名企业中,仍有19家企业在最新一届的百家名单中。那些从名单上消失的企业包括托普集团、波导股份、UT斯达康、湖南湘计信息软件股份有限公司等。UT斯达康甚至曾在2006年百家企业名单中名列第四,软件销售收入高达到59.86亿元,如今明星陨落,令人唏嘘不已。

规模相对较小的企业调整较快,第一届百家企业的后20家企业中只有3家企业仍在最新一届的百家名单中。记者对比名单后发现,2002年排名83位的国电南瑞科技股份有限公司,在最新一届名单中被纳入到南京南瑞集团公司统一计算,后者以34.50亿元位居12位; 2002年名单中列97位的泰豪信息技术股份有限公司则被同方股份有限公司收入麾下,同方股份2010年收入40.71亿元,位列第10; 2002年位居81位的长春一汽启明信息技术有限公司,以启明信息技术股份有限公司的名字位列2010年名单的32位,收入从2002年的1.08亿元增加到13.16亿元。

做大做强

仍是重要课题

9年来,中国软件业取得了喜人的成绩。2009年,我国软件服务业完成软件业务收入9513亿元,占电子信息产业的比重由2001年的6.3%提高到2009年的15.6%。不过,中国软件业整体并未摆脱“中小企业集团军”的形象。即便最新一届百家软件企业的总收入达到了2448.7亿元,这个数字也无法与微软、IBM等跨国软件企业的单体规模相提并论—2009年IBM实现营收958亿美元。

由此可见,增强企业的自主创新能力、做大做强仍是中国软件企业的重要课题。

如何做大做强?新一届百家企业名单体现出中国软件企业的两大发展趋势:一是企业的国际化步伐加快,服务外包能力不断增强。据了解,本届百家企业出口超过110亿美元,占全行业出口的半数以上,其中外包出口超过10亿美元。查看2010年百家企业名单,知名的软件外包企业就有浙大网新、东软集团、软通动力、大连华信、文思创新等企业,而华为、中兴、浪潮、方正等前10强企业也都有软件外包等出口业务,海外市场在华为总收入中的比重甚至高达60%~70%。

另一个趋势是通过兼并重组做大企业规模。据不完全统计,2009年国内披露出来的大型软件企业并购案超过40起,涉及总金额超过16亿美元,比上年增长100%以上。其中,联创和亚信的合并是近年来国内软件产业最大的并购案,涉及金额达到7.3亿美元; 用友、金蝶、中软国际等企业也在国内针对行业软件展开了数起并购,以增强自身的核心竞争力; 东软集团则将并购的触角伸向了海外,继2009年以1200万欧元收购芬兰SESCA旗下三家嵌入式开发的子公司后,今年又以600万欧元收购全球汽车导航软件提供商ISG的相关业务。

两化融合的新机遇

面对困扰中国软件业多年的规模不足问题,中国软件业正在不断探索,寻找市场机遇。

9年来,百家企业的收入构成中产品类收入逐步降低,比重由第一届的70%降为第九届的57%; 服务类收入不断提升,比重由第一届的4%上升为第九届的10%,软件服务化的趋势非常明显。在应用行业上,则由最初的以通信行业为主向金融、交通、能源、工业控制等多个领域并重转化,系统集成由通用型计算机网络集成向行业解决方案转化,软件附加值日益提高。

在最新一届百家企业名单发布时,工信部总经济师周子学向中国软件企业提出了几点建议,比如抢抓产业发展的新机遇、提高自主创新能力、积极开拓国际市场等,而他最后强调的,就是中国软件企业要坚定不移地走两化融合道路。

国内巨大的信息化市场为软件产业创造了重要的发展机遇,两化融合战略既给软件服务业的发展提出了新的要求,也为其创造了更加广阔的内需发展空间。两化融合蕴藏的嵌入式软件机遇和行业解决方案机遇,或许将成为中国软件业的突破口。

大规模软件 篇4

软件管理工程的发展, 经历了从20世纪70年代开始以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征的结构化生产时代, 到20世纪90年代中期, 以CMM模型的成熟和日益为市场接受为标志, 已经进入以过程成熟度模型CMM、个体软件过程PSP和团队软件过程TSP为标志的以过程为中心的时代, 而软件发展第三个时代, 即软件工业化生产时代, 以20世纪90年代中期软件过程技术的成熟和面向对象技术、构件技术的发展为基础, 已经渐露端倪。

1 小规模企业软件过程管理现状

1.1 小规模软件企业特点。

小规模的软件企业或软件开发机构的数量在我国软件产业中占据很大的比重, 其突出的特点主要表现在具有灵活机动、响应速度快, 组织结构简洁、管理清晰快捷、执行力高, 把握优势业务领域、熟悉行业需求等方面。但具备这些优势的同时, 兼具有人力资源不足、人员流动性高, 规范程度不高、制度约束度低, 对于人的依赖性较高, 经验到制度的转化程度较低, 软件销售收入占总收入的比重较低、维护成本较高等缺点, 这也是小规模软件企业在管理过程中不容忽视的重要问题。

1.2 小规模软件企业应对策略。

如何最大限度地避免这些问题的产生呢, 除了一些不能改变的客观因素外, 软件过程管理与改进策略研究在其中占得分量也越来越重, 也越来被人重视和研究。提升软件过程的管理水平日益成为工业界和学术界共同的关注点, 软件过程管理是提高生产效率和保证软件质量的一个重要方法。在产品开发的整个生命周期中包括一系列复杂的活动, 和其他管理过程类似, 现代软件过程管理工作也逐渐趋向复杂。根据企业的实际情况和发展需求, 优化流程, 努力提升人们在过程中的工作能力, 从而提升产品质量、提高生产率并降低成本, 这是软件过程改进的目的。

具体到软件过程来讲, 软件开发组织经常会遇到诸如项目经常会延期, 任务完成进度难以控制、开发人员不会编写和利用软件文档、需求难以控制, 疲于应付需求的变更、软件质量难以保证、软件版本混乱、没有有效的项目管理方法和实践指导等问题, 从而影响软件质量与交付, 引发客户抱怨, 满意度降低。针对普遍存在的这些管理与技术问题, 大多数软件开发组织已意识到应当在软件过程规范、管理、改进方面采取一系列改进措施和辅助手段, 如当前业界比较流行的建立质量管理体系、进行CMM/CMMI认证等。

1.3 我国小规模软件企业的现状。

目前国内专门从事软件开发的企业有数千家, 而这些软件企业主要以中小规模为主。根据有关统计数据结果分析, 主要组成结构为:50人以下的企业占55%;50~200人的企业占42%;1000人以上的企业为数不到3%。这些中小软件企业一般具有一些共同的特点, 这些特点将直接影响中小软件企业采取什么样的方式来实施软件过程改进活动。软件过程是指软件开发人员开发和维护软件以及相关产品 (如项目计划、设计文档、代码、测试用例和顾客手册) 的一套行为、方法、实践以及变化过程软件过程管理的重要前提是:软件产品质量的好坏主要取决于开发和维护该产品所使用的软件过程质量。有效的软件过程可将人员、工具和方法进行有机结合。作用对象:软件及其相关产品包括:活动、方法实践和革新。

2 软件过程管理及其改进策略

2.1 选择重点, 优先突破。

软件过程改进应选择重点领域, 循序渐进。因为软件过程改进是要在一定程度上颠覆软件企业现有的软件开发和管理过程, 因此对于已经习惯了固有的工作模式的项目经理、开发人员甚至是企业管理者来说, 大规模的改动相反会起到适得其反的效果。因此应该从企业的软肋出发, 逐渐突破, 在一些重点领域, 让企业尝到过程改进的“甜头”, 从而更好的推进组织级的软件过程改进。

从软件开发过程的角度来讲, 不同的软件企业都有不同的开发过程, 而且不同的软件项目也会采用不同的开发过程, 而开发过程中的需求、设计、编码等阶段, 较大程度上依赖于企业自身的技术实力和开发人员的知识、经验及综合能力。而软件过程改进的核心和重点在于管理, 因此本文建议将以下几个方面作为软件过程改进的重点领域。

2.1.1 注重项目计划与软件测试工作。

项目计划是项目成功的关键, 许多项目的失败都是由于计划制定得不合理或者计划执行不到位而引起的。项目计划应对项目进行合理的规模、成本、工作量等方面的估算, 正确的估算是制定项目计划的前提;根据项目自身特点与项目组人力资源状况进行一定粒度的分解。确保每项分解后的任务均可对应到相对比较适合完成这项任务的项目成员;项目任务要充分并行, 提高人力资源的利用率;计划安排应留有一定余地, 避免出现前松后紧的情况;面对项目计划变更应进行合理评估, 考虑到所有可能会受到影响的因素。

软件质量是软件企业核心竞争力的首要体现, 而软件测试则是软件质量的重要控制措施。规范软件测试过程, 将对软件质量的提高起到重要作用。软件测试应由独立的软件测试团队执行, 只有这样才能保证软件测试的公正与客观;软件测试计划应尽早制定, 软件测试应尽早进行, 软件需求确定之后, 就应该开始制定软件测试计划;软件缺陷应规范管理, 确保所有缺陷都分配到人;结合使用各种软件测试方法;不应忽视软件性能方面的测试与调优。

2.1.2 注重配置管理与质量保证。

一个软件项目的所有相关资料, 如文档、代码、工具、安装程序等均可作为该项目的配置项。良好的配置管理可以确保软件的一致性。而对于规模较大的并行开发项目来讲, 配置管理尤为重要。应做好配置管理计划, 选择合适的配置管理软件;对于软件版本进行统一管理, 确保多个开发人员协同开发不发生冲突;对于基线配置项的变更应制定变更控制流程, 使整个开发与管理过程可追溯可跟踪。

软件测试侧重于对软件产品的质量检查和控制, 质量保证则侧重于对软件过程进行质量检查和控制。产品和过程是一个软件项目成功的必不可少的两个重要因素, 其中产品质量是短期、项目级的影响因素, 而过程质量是长期、组织级的影响因素。质量保证也应由专门的人员进行;主要对项目计划、项目里程碑、阶段成果等进行质量检查, 记录和跟踪质量问题;质量保证人员可以由软件测试人员兼任, 以平衡人力资源的使用;质量保证人员应客观、公正的进行工作。对于以上四个过程领域的改进方法, 本文建议首先从建立规范人手, 然后在规范的实施过程中, 逐步进行修订和完善。一个规范通常由角色职责、工作流程、文档模板、工具支持等四部分组成:具有不同职责、权限的执行人员, 按照既定的工作流程进行相关的工作活动, 并将T作过程记录以文档的形式保存下来, 辅以一定的管理工具, 方可保证其工作产品的质量并使其具有延续性和可维护性, 这也正是建立规范的主要目标。同时, 在规范的范畴内, 所有人员遵循同样的行为准则, 能够更好的进行沟通。

2.2 结合优秀的软件过程元素。

CMM/CMMI是目前业界进行软件过程改进的首选模型, 其实CMM/CMMI已成为事实上的标准。世界各国的软件企业纷纷遵循CMM/CM-MI建立起软件过程规范, 积极进行CMM/CMMI的认证。然而如前文所述, 我国的中小软件企业未必适合完全按照CMM/CMMI来进行软件过程改进, 反而可以结合众多软件过程模型, 从自身的实践中总结出一套适合自己的软件过程改进模式。RUP (Rational Unified Process, 统一过程) 的迭代思想和XP (eXtreme Programming, 极限编程) 的测试驱动开发方法即可以尝试引用到企业当前的软件过程中来。

2.3 重视个体软件过程改进。

开发人员是一个软件企业组中最小的开发主体, 开发人员编码质量的高低、工作计划是否恰当、时间利用率的高低、缺陷率的高低等均会对软件质量以及组织的软件过程产生重要影响。因此, 个体软件过程 (PSP, Personal Software Process) 的概念被提了出来, 相应的也出现了个体软件过程改进这一概念。

PSP是一种用于控制、管理和改进软件开发人员的个人工作方式的过程, 它包含一套完整的方法、表格和规程, 用来指导开发人员如何计划、度量和管理自己的工作。个体软件过程改进可以首先从计划管理、缺陷管理、时间管理等几个方面入手, 同时可以配合任务检查单等工具。通过锻炼个人工作估算和计划能力, 提高对工作任务的驾驭程度;通过管理缺陷, 提高个人以及整个项目对于软件缺陷的控制程度;通过记录和分析时间利用情况, 来掌握工作效率以及时间利用率等方面的一些基础指标;任务检查单, 则可以与计划管理和缺陷管理搭配使用, 有利于个人工作任务的管理。

2.4 重视自评估。

软件企业经常会盲目地进行软件过程改进, 在没有明确自身软件过程处于何种阶段、何种水平的情况下, 贪大求全地建立了一整套软件过程规范, 而实施效果却差强人意。因此, 在进行软件过程改进之前, 以及在进行持续改进的过程中, 对自身软件过程进行自评估是非常必要的。软件过程自评估主要采用调查问卷的方式, 另外可以结合某磐软件度量的方法, 通过定性和定量相结合的方式, 形成当前软件过程状态的评价。调查问卷方式, 需要设计关于软件过程现状的调查问卷, 这些问卷可以是针对某个过程领域的, 也可以是针对整个软件过程的。然后在组织内部选择不同岗位的人员参与一次评估, 根据问卷调查结果, 得出相应的结论。

2.5 适当利用辅助工具。

软件过程管理与改进的本质是一个管理的过程, 管理就需要遵守规则。利用软件工具进行软件过程管理是软件企业普遍采用的方式。目前在软件企业应用较多的软件类别有项目管理工具、配置管理工具、软件测试工具、缺陷管理工具等, 这些工具一般都是针对某一个过程领域, 具有强大、完善的功能, 企业可以根据自身需要选择相应的工具进行辅助管理。但美中不足的在于, 适合于中小软件企业进行整个软件过程管理的轻量管理工具还不多见, 有些厂商的工具配置复杂、价格高昂, 令中小企业望而却步。

结语

软件过程改进不是一蹴而就的过程, 软件企业需要在不断的积累中持续改进。通过实践总结, 本文提出了几点通用的软件过程管理与改进策略, 旨在为我国中小软件企业的软件过程改进工作提供参考。当然, 对于每种策略的具体实施, 本文并未提出深入的方法, 如基于RUP、XP、CMMI等软件过程模型相结合的软件项目实践、PSP中的软件度量方法、软件过程管理与评估系统的试用与持续完善等, 均是我们下一阶段的重点研究和实践方向。

参考文献

[1]郭莹, 杨美红, 杨萍, 等.中小软件企业软件过程管理与改进策略[J].计算机与数字工程, 2009 (2) .

[2]刚家林, 崔巍.中小软件过程管理模型的研究[J].中国科技博览, 2010 (31) .

[3]闫振兴, 郑骏.软件缺陷度量与软件过程管理方法研究[J].计算机与数字工程, 2010 (8) .

[4]王海阳.软件过程管理及其成本的平衡[J].计算机系统应用, 2005 (3) .

[5]钱懿, 庄长远.软件企业过程管理支持系统的研究[J].电脑知识与技术, 2010 (1) .

大规模软件 篇5

企业信息化是将信息技术应用于企业生产、经营和管理, 旨在提高企业的生产、经营和管理效率, 降低成本, 提高顾客的满意度, 最终增强企业竞争力。

企业在信息化过程中构建和使用的应用系统可大致分为两类。一类是涉及到大量业务处理和数据处理的企业级应用系统, 例如ERP系统、CRM系统、财务管理系统等。另一类是提供简单功能的供单个员工使用的桌面应用系统, 例如用来进行文字处理、报表制作的办公应用系统等。

二、企业信息化中的问题

传统的企业由于缺少不同系统相互集成的技术, 导致很多关键的信息被封闭在相互独立的系统中, 部门间重复着冗余的工作, 这直接导致了企业工作效率的降低和运营成本的上升。

在一个单位的各个部门之间由于种种原因造成部门与部门之间完全孤立, 各种信息 (如财务信息、各种计划信息等) 无法或者无法顺畅地在部门与部门之间流动, 这样就会形成信息孤岛。“信息孤岛”从在技术上带来的不良影响大致可以分为以下几个方面:数据的一致性无法保证, 信息及时共享、反馈难, 企业数据中存在很大的冗余、大量的垃圾信息, 信息需要重复多次的输入。

目前我国企业信息化工作中还存在很多的问题和困难, “重实施、轻规划, 重技术、轻管理”的认识误区使得企业信息化缺乏清晰的主线, 造成“有一个需求建一个系统”的直接需求式驱动的信息化建设模式, 直接导致了企业“信息孤岛”的加剧、多种异构系统的同时运行。无论是从企业的现实需求, 还是企业信息化的长远发展来看, 如何实现异构系统的协同工作, 实现企业资源整合, 消除“信息孤岛”是企业信息化过程中必须要解决的关键问题。

三、EAI

EAI是将基于各种不同平台、用不同方案建立的异构应用集成的一种方法和技术。EAI通过建立底层结构, 来联系横贯整个企业的异构系统、应用、数据源等, 完成在企业内部的ERP、CRM、SCM、数据库、数据仓库, 以及其他重要的内部系统之间无缝地共享和交换数据的需要。有了EAI, 企业就可以将企业核心应用和新的Internet解决方案结合在一起。

随着企业各种应用的迅速增加以及更多地把自己的业务转向电子商务, EAI方案对企业的重要性也日益显现。越来越多的企业开始采用EAI解决方案将企业内部的应用软件与外部客户和供应商的应用软件进行链接, 实现数据流和业务运作的自动化, 从而令业务更实时与快速。

传统的EAI并不能够满足企业最根本的需要——快速构建IT系统以支撑企业业务的发展。当今的企业级分布式IT系统都在向共享服务方向发展, 企业对传统EAI的需求仅限于将已经构建但并不支持服务共享的IT系统变成能够共享服务的IT系统, 但是这一过程不应以放弃与未来的新应用共享服务为代价。

四、面向服务体系结构 (SOA)

SOA是指为了解决在Internet环境下业务集成的需要, 通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。SOA是一个组件模型, 它将应用程序的不同功能单元 (称为服务) 通过这些服务之间定义良好的接口和契约联系起来。

SOA凭借其松耦合的特性, 使得企业可以按照模块化的方式来添加新服务或更新现有服务, 以解决新的业务需要, 提供选择从而可以通过不同的渠道提供服务, 并可以把企业现有的或已有的应用作为服务, 从而保护了现有的IT基础建设投资。

传统的Web技术有效的解决了人与信息系统的交互和沟通问题。WEB服务技术则是要有效的解决信息系统之间的交互和沟通问题, 促进B2B/EAI/CB2C的发展。SOA则是采用面向服务的商业建模技术和WEB服务技术, 实现系统之间的松耦合, 实现系统之间的整合与协同。WEB服务和SOA的本质思路在于使得信息系统个体在能够沟通的基础上形成协同工作。

对于面向同步和异步应用的, 基于请求/响应模式的分布式计算来说, SOA是一场革命。一个应用程序的业务逻辑或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。例如, 服务的接口和实现相独立。

五、信息融合技术

信息融合技术研究如何加工、联合来自众多信息源的信息, 并使不同形式的信息相互补充, 为各种模型方法和各领域的专家服务, 使其信息量得到最大限度地发挥。按信息抽象程度不同, 融合可分为三个层次:原始数据融合、目标级融合和决策级融合。

1. 原始数据融合是在采集到的原始信息层次上进行融合, 在

各种信息源的原始数据未经预处理之前, 就进行信息的综合和分析。它的优点是保持了尽可能多的信息, 缺点是处理的信息量大, 所需的处理时间长, 实时性差。

2. 目标级融合属于中间层次, 利用从信息源的原始信息中提取的特征信息进行综合分析和处理。

其优点在于, 实现了可观的信息压缩, 有利于实时处理, 并且由于所提取的特征直接与决策分析相关, 因此融合结果最大限度地给出了决策分析所需的特征信息。

3. 决策级信息融合是在高层次进行的, 融合的结果为指挥控制决策提供了依据。

大规模软件 篇6

随着人们对软件系统功能需求的不断增加, 软件系统变得越来越庞大和复杂, 尤其是软件系统的缺陷和漏洞很难避免。软件系统在达到一定规模之后, 随着软件的长时间运行, 软件系统模块存在“老化”的特点, 总是面临各种故障或者失效问题, 或者由于内在的缺陷漏洞从而导致受到不同程度的攻击。总而言之, 现代社会的正常运作越来越依赖于基础设施的软件系统的安全可靠的运行。

软件系统的可信性问题已经成为国际上普遍关注的问题。现代大规模软件系统导致其产生可信问题的原因总结起来有:

(1) 软件规模越来越复杂, 人为配置以及使用不当, 或者软件存在内在缺陷。

(2) 软件的开发和运行环境已经由传统的静态封闭环境发展为开放多变的互联网环境, 而恶意代码的大量存在会破坏软件系统的正常运行。

为了解决系统面临的迫切的可信问题, 国内外众多组织机构已成立全球的计算平台和可信计算联盟组织, 正致力于解决面临的安全和可信问题。

基于上述背景, 本文将基于复杂网络研究的理论基础, 着重研究大规模软件系统中的故障预测与定位问题, 主要包括大规模软件系统的动态与静态分析方法, 基于复杂网络的故障预测与定位方法, 以及结果的可视化界面显示部分。

2 大规模软件系统故障预测模型的理论分析

2.1 基本原理

本文基于复杂网络理论, 将大规模软件系统的动态运行信息和静态信息提取出来, 再将软件的动态运行方法调用序列所映射的调用关系网络进行分析, 并利用可视化界面直观地展示出来, 进而达到故障与异常的检测与定位。

本文提出了一种基于调用动态网络的系统检测机制, 通过本文实现的大规模软件故障预测与定位系统完成了调用关系网络的生成, 并利用本模型对网络进行实时分析和监控。模型基本性质有:

(1) 复杂网络适应性:基于K核分解算法对网络静态结果分析, 能够形象地显示出大规模复杂网络的层次结构信息与核心节点, 更加难得的是此思想可以分析超大规模的网络, 这一点在利用K-core分解全美各航线大规模节点数据上已经得到了充分的体现, 因此说我们提出的模型系统可以用来分析超大规模网络系统, 具有可移植的良好特性;

(2) 不同的时间片段特性:由于我们的模型是利用实时监控的原理可以用来监控网络中每一个时间段内的状态改变, 记入下每一个状态对应调用关系网络, 利用该网络就可以分析所监控软件的未来发展趋势。

2.2 大规模软件系统故障预测方法与理论

2.2.1 动态网络分析方法简介

系统模型的故障预测与定位整体按照以下流程:

(1) 对软件运行过程进行持续的监控;

(2) 将监控得到的数据经过处理后生成相应的系统某一时间段内的方法调用关系图;

(3) 对被监控软件进行基本功能块的划分, 根据划分结果生成相应的特征网络与入口函数;

(4) 对软件的动态运行行为进行持续监控, 生成相应的时间片段∆ti内系统的调用关系网络Gi;

(5) 根据动态网络结构演化公式G’i+1=f (Gi, ∆ti+1) 来预测软件下一时间段内的状态G’i+1;

(6) 根据动态网络结构测量公式d=g (G’i+1, Gi+1) 来对软件∆ti+1内得到的监控状态Gi+1同预测状态G’i+1的差异进行测量;

如果测量公式得到的差异值超过了我们设定的阈值, 则认为被监控软件在∆ti+1在当前功能块发生了异常。

2.2.2 调用关系网络的矩阵表示形式

调用关系网络的数据结构可以有邻接矩阵和加权矩阵两种形式。

邻接矩阵:为了能够准确地检测到矩阵元素的变化, 本文在邻接矩阵的基础上做了一些限定, 定义矩阵中的每一个位置 (a, b) 代表确定的含义, 这样避免出现同构图的邻接矩阵相似的情况。

加权矩阵:增加了加权矩阵的分析, 主要了是为了图形效果的需要, 并加入了随机噪声的影响, 使得两幅图像的对比度更加明显。在加权图中的噪声波动的影响较去重图要强很多, 通过对比分析, 我们可以更加深入地研究调用关系生成网络的故障与异常发生机制。

2.2.3 模型建立

大规模复杂网络对应了软件系统的不断衍变周期, 用户不断对软件提出新的指令, 使得软件系统对此作出反应, 每一次反应都会产生一个新的状态, 软件状态随运行时间的增加也变得更加复杂, 为了对软件状态加以记录, 并加以分析, 我们首先为模型中对应的动态调用网络结构演变过程定义为一个映射函数:

G'i+1=f (Gi, Δti+1)

该函数的意义就是根据软件运行所产生的数据, 把这些数据划分成为一个个最小的时间切片, 测量这个时间切片内对应的特征网络的状态, 由此可见:

G'i+1=f (Gi, Δti+1) =Gk

式中:

Gk——为对应功能模块的特征网络时间切片。

由于我们所用的函数公式都是统一的, 所以不必担心时间切片的一致性, 因此可以推算出下一时刻的动态网络的时间切片, 由此可以使用特征网络Gk作为同一个功能块内的预测动态时间切片G’i+1, 并且由于时间切片Gk是在系统的动态运行监控过程中生成的, 保证了Gk的合理性。前一个值与后一个值只要网络调用不同就会发生变化, 研究这个变化其实就是分析复杂网络的动态特性, 进而达到对软件系统故障与异常的监控与定位。

3 预测模型实现与可视化界面的设计

3.1 大规模软件系统研究框架

大规模软件故障预测与定位系统的研究框架如图1所示:

大规模软件系统研究框架系统一共分为5个子模块:

监控模块:对软件行为进行持续监控, 得到软件运行时的方法执行信息, 以dat文件的格式存储;

数据处理模块:对监控数据进行处理, 通过重构trace来获得软件运行时的方法调用序列, 生成K核分解之后的调用关系网络;

故障注入模块:给被监控系统注入威布尔分布的概率故障;

故障分析模块:按照预测模型动态分析方法进行故障的分析工作;

显示模块:进行调用关系网络与故障分析结果的可视化。

3.2 数据库设计与数据处理模块

3.2.1 数据库表设计

根据之前的数据, 所获得的实验数据格式如图2所示:

其中每个字段的意义如表1所示:

所获得数据按照格式存入指定的目录中, 对数据的进一步处理在下一节中介绍。

3.2.2 数据处理模块介绍

数据处理模块的主要功能为:首先建立并初始化数据库;其次将监控数据按照格式进行解析后并存入数据库中;最后以trace为单位, 通过trace重构获得方法调用序列。

在之前提到的网络动态系统分析中, 首先要获得网络的数据也就是trace信息, 在数据库部分我们已经对trace有了一个大致的认识, 在这里对trace做一个比较细致的介绍, 比如数据格式里的trace Id、eoi、ess等字段, 为了能够得到本文需要的方法调用关系, 首先要进行基于trace信息的数据分析, 重构运行时的trace路径。

下面给出一些本文中用到的术语定义:

方法 (operation) :为了实现特定服务而定义在组件中的一些函数。

执行 (execution) :运行时方法的一次执行过程。

路径 (trace) :每一次请求系统提供服务, 都会执行一系列嵌套的方法, 本文把这一系列的执行过程称之为“路径”。

在监控的过程中, 对于执行服务请求的线程附加一个特有的trace Id, 同时将其加入到同一个trace的所有的数据记录之中。

3.3 故障预测模块

通过把读入的调用关系网络对应矩阵转化为其对应的节点矩阵, 输出其对应的二范数, 然后把每次试验中的所有数据都做此处理, 呈现出总体变化图像, 首先是第一条正常情况下的曲线;再输出第二条异常情况下的曲线, 二者加以对比。

3.4 系统显示模块

分别从动态和静态分析理论来显示和分析对应的调用关系网络, 并显示其数据库对应的trace文本信息。通过观察生成的软件调用关系网络来分析并预测其间发生的异常与故障, 进而实现模型的监控功能。此处将添加两个动态图, 分别为加权图、和去重图。而注入加权的目的主要是为了突出去重图的优良特性。

4 结束语

本文提出了一种基于动态网络分析理论的大规模软件故障预测模型并建立了相应的可视化界面, 此模型可以实现大规模软件故障的预测, 设计故障注入实验对模型进行了验证, 取得了良好的效果, 证明了此模型的有效性。

由于java的矩阵处理能力较MATLAB相比较弱, 所以在本界面模块中采用了混合编程, 但java本身和matlab的接口并不及C或C++和matlab的多, 因此效率有待提高。以后可以根据实际需要, 在C或C++平台上开发程序。

利用2范数做动态分析时, 尽管取得了比较满意的精度, 但在一些特殊trace内部调用关系网络的结构性改变存在着误报的风险, 尽管对异常情况进行实际返回值与返回类型检查可以避免误报, 但是整个检测系统的开销时间将增加, 会导致灵敏性下降。在后续的开发中可以利用其它的矩阵分析理论解决这个问题。

摘要:本文将大规模软件动态运行信息映射为随时间变化的调用关系网络, 通过采用K核分解算法提取此静态网络的层次结构与核心节点信息进行可视化显示;同时基于矩阵二范数方法对动态网络的结构进行频谱分析实现故障定位;对大规模软件的运行状况进行了可更新的监控, 实现了异常的预测, 把实验的结果与理论很好地结合在一起, 验证了预测模型的有效性, 并为本模型的进一步扩展提供了可能。最后实现了该系统的可视化界面。

关键词:大规模软件,复杂网络,故障预测,故障定位,可视化界面

参考文献

[1]刘克, 单志广, 王戟, 等.“可信软件基础研究”重大研究计划综述[J].中国科学基金, 2008, 22 (3) :145-151.

[2]赵广元.MATLAB与控制系统仿真实践[M].北京:北京航空航天大学出版社, 2009.

[3]范立锋, 乔世权, 程文彬, 等.JSP程序设计[M].北京:人民邮电出版社, 2009.

[4]李建刚, 秦兴桥, 郑雨贝, 等.JSP网络编程技术与实践[M].北京:清华大学出版社, 2008.

[5]张新曼.精通JSP[M].北京:人民邮电出版社, 2007.

[6]詹静, 张焕国.可信平台模块自动化测试研究[J].计算机研究与发展, 2009, 46 (11) :1839-1846.

[7]Haohua Zhang, Hai Zhao, Wei Cai, et al.Using the K-core decomposition to analyze the static structure of large-scale software systems[J].Supercomput, 2009, 10 (3) :127-140.

我国规模最大的软件园投入使用 篇7

1997年10月3日, 我国规模最大的软件园——东大软件园, 在沈阳高新技术产业开发区举行了开园庆典。至此东大软件园宣告全面启用。东大软件园的开园, 标志着我国软件产业开始步入大规模的产业化发展阶段。

占地50多万平方米、总投资5亿元人民币的东大软件园, 是由东软集团投资兴建的集软件研究、开发和产业于一体的多功能园区, 也是东软集团为实现“架设科学研究与高科技产业的桥梁, 建立中国自主版权的软件基地”的目标而实施的一项战略性工程。

东大软件园以计算机软件国家工程研究中心——东北大学软件中心为技术和人才依托, 以东软集团为核心全业, 几年来, 先后创办了东大阿尔派、东东公司等数家软件高科技公司。东大软件园的开园和投入使用为东软集团发展民族软件产业, 架设软件研究与软件产业的桥梁创造了良好的环境。

软件业规模明年将超3万亿 篇8

“2010年, 我国软件产业规模1.35亿元, 预计2015年将超过3万亿元, 然而, 在十二五第三年, 我们已经提前完成了规划目标。”在今天召开的全国软件和信息技术服务业工作座谈会上, 工业和信息化部副部长杨学山说, “十二五”末我国软件产业规模将稳超4万亿元。

工信部软件司司长陈伟介绍, 我国软件产业2013年实现业务收入超过3.1万亿元, 同比增长24.6%, 超过同期电子信息制造业增速13.6个百分点。同时, 我国软件产业创新能力和应用水平也得到稳步提升。2013年, 软件产品登记数39821件, 同比增长11.5%。软件著作权登记数164349件, 同比增长18.04%。全行业投入研发经费增长6.3%。

大规模软件 篇9

随着信息化浪潮的到来,软件逐渐渗透到社会的各个行业,同时,软件的规模也是越来越大,越来越复杂。

在实施CMM的软件开发过程的改进中,软件估算是很重要的一步。可以通过开展软件估算工作来提高项目管理水平和改进开发管理过程,并提升企业的产品服务素质[1]。目前,通过对大量数据的调查发现,造成许多项目延期和超出预算的一个重要的原因就是估算不准。只有在正确的软件规模估算基础上才能得出正确的成本估算,进而使项目在我们的可控范围之内[2]。

2 软件规模估算的方法

2.1 几种软件规模估算方法

软件规模估算是贯穿项目整个生命周期的一种活动[3]。软件规模估算根据其实施的周期阶段性可以分为:初期规模估算、中期规模估算、后期规模估算三个阶段。

2.1.1 LOC估算方法

LOC(Line Of Code)代码行数是指所有的可执行的源代码行数,是软件开发者最早进行规模估算的方法之一。LOC方法是一种技术度量,因为它从开发者的技术观点出发而不是从用户的观点出发来度量软件。基于规模估算的LOC方法通常采用系统分解结构法、类比法和Delphi的Wideband法。

2.1.2 FPA估算方法

IBM的Albrecht于1979年提出了功能点FP (Function Points)方法。功能点分析(FPA)方法是从用户的角度出发,以软件功能性为尺度来度量和估算应用软件规模的一种流行方法。功能点方法的度量是所需功能性的数量,这些功能是根据用户需求和高层逻辑设计提供给用户的。

2.1.3 其他功能点拓展方法

软件估算的其他方法还有:Mark II FPA方法[4,5],COSMIC-FFP方法[6],NESMA估算方法,对象点方法,近似功能点,快速FPA计数,特征点方法,3D功能法等。

2.2 FPA与其他方法的比较

FPA、Mark II、COSMIC-FFP、3D功能点、Feature Points、对象点方法、近似功能点、快速FPA计数、NESMA估算方法都是以功能点作为规模估算的基本单位,而且都是在FPA的基础上进行改进和创新而得到的。因此,它们都是属于功能点阵营。目前的软件估算领域的两大阵营:一是LOC代码行估算方法的阵营,另一个是功能点估算方法的阵营。

2.3 FPA的计算方法

FPA(Function Points Analysis)是一种能够估算出软件项目规模的方法。用FPA估算的最终结果是若干个功能点(FP) 。FPA估算一个系统的规模的一般步骤如下:

3 软件规模估算模型改进

3.1 估算模型的改进

改进后的计算规则如表1所示:

3.2 对估算流程的改进

改进的估算流程图如图2所示:

4 估算服务模型的设计与实现

4.1 估算模型在Web 服务上的工作流程

Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。在面向服务的体系结构(Service-Oriented Architecture,SOA)中,一组以这种方式交互的 Web 服务定义了特定的 Web 服务应用程序。

本文将一个UML类图转化成符合自定义的抽象语法树规范的XML文件,因此,将面向对象功能点的计算作为一种服务是完全可行的。估算服务申请方与提供方之间的信息交换如图3所示:

4.2 服务模型架构图

图4为面向对象的功能点服务系统,主要提供基于Use Case和Class Diagram的软件规模估算的服务。而本文作为其中一个子系统,旨在将一个以UML类图为研究对象的软件规模估算模型置于Web Service上,使其整合成一个估算服务。

图5是基于类图的软件规模估算服务CDFPA(Class Diagram Function Analysis Point)的架构图,也是本文研究内容的实现形式。实现后的系统有三个特点:面向对象、自动估算、面向服务。

4.3 实验用类图

为达到验证的目的,本文设计一个类图6,该图包含UML的依赖、泛化、关联、聚合、实现等各种关系,是一个良好的实验用图。

其中,BaseClass的base3属性是private的;baseMethod2()是抽象类型。

为了验证该服务的准确性和有效性,在使用系统之前,我们先人工计算该类图所具有的功能点数,而后再跟实际运行的结果进行对比。数据处理功能部分结果如表2所示:

事务处理功能部分结果如表3所示:

其中,BaseClass 的baseMethod2()方法由于是抽象类型,本身没有具体的实现内容,而是由继承它的类去实现,因此该方法无功能点。

最后我们可以手工计算出该类图的UFP为:60.3功能点。

5 结束语

本文从传统的软件规模估算方法——功能点(FPA)方法出发,结合当前OOA、OOD环境,选取一种面向对象的功能点方法,以UML类图为输入对象,设计了基于UML类图的功能点自动估算模型,实现了无需人为手工输入各项参数的自动估算功能。实现了方法、自动估算、服务三者的整合。

虽然本文提出并实现了基于类图的软件规模估算服务模型,但仍有许多亟需改进之处:缺乏工业数据的校正;需要对历史经验数据的提取、反馈处理工作做进一步的细致研究,以增强模型的适用性。

摘要:本文从流行的规模估算方法中,将最为优秀的FPA方法作原型,结合当前面向对象的设计开发环境的特点,选取分析了一种将UML类图与FPA结合起来使用的估算方法,并针对其不足做出了改进。本文还提出了从UML类图到功能点的自动估算模型,并在此基础上进行了设计与实现。最后,本文提出估算服务模型,将估算作为一种Web服务。

关键词:功能点,软件规模估算,类图,Web服务

参考文献

[1]Roger S.Pressman著.梅宏译.软件工程:实践者的研究方法.北京:机械工业出版社,2005.

[2]唐德权.深度精耕———日本软件企业精义解读.北京:清华大学出版社,2004.

[3]Swapna Kishore,Rajesh Naik著.江路,丁一夫,柳剑锋译.软件需求与估算.北京:机械工业出版社,2004.

[4]http://ourworld.compuserve.com/homepages/softcomp/fpfaq.html.

[5]http://www.softwaremetrics.com/articles/Tichenor.htm.

上一篇:雨水生态利用下一篇:海洋知识文化