时间:2022-04-01 00:21:19
导语:在软件工程的撰写旅程中,学习并吸收他人佳作的精髓是一条宝贵的路径,好期刊汇集了九篇优秀范文,愿这些内容能够启发您的创作灵感,引领您探索更多的创作可能。
去年感恩节,在IBM硅谷Rational分部做企业软件工程的金尊和跟朋友游览优胜美地国家公园后,仿《石钟山记》写了篇游记,文章最后一句话是:“今与同游饱览人间秀色指点他邦江山,其乐何似”。这位喜欢赋诗填词的IT人当时正在挑灯夜战地写一本书。今年五月,他的书出现在许多计算机书店的书架上,看过的人说,金尊和把软件工程写成了畅销书。
“从前软件工程方面的书,多是因为故弄玄虚而变得面目可憎,我是想让所有对软件感兴趣的人都能在翻开我的书之后还能继续读下去”。金尊和这本名为《软件工程实践导论》的书对稍有点计算机基础甚至只会上网的人来说都没有多大的阅读障碍,除了里面偶尔冒出来的几行编程语言。
他说软件工程是在作战,敌人是“未知”,不断变化的新因素是工程的障碍,而软件工程的一个目标就是要降低风险。“三十六计”古往今来被广为引用,除了“瞒天过海”、“借刀杀人”、“调虎离山”等成语人人运用自如而外,“三十六计”七十二变之后被运用于社会生活的各个方面:“管理三十六计”、“营销三十六计”、“IT三十六计”各行其道,以至“爱情三十六计”。金尊和也创造了一套“软件工程三十六计”,“经济为本、用户为先、管理需求、及早集成……”,全是大白话一样的四字短语。其用意在于用形象得有点家常的词语让看书的人很快理解作者要表达的意思。IBM中国软件开发中心的高级经理干毅民就说,能把软件工程这么枯燥的东西写得这么生动的还真不多见。
软件工程是分解成许多环节的创造和生产软件的过程,用金尊和的话说,关键是解决怎么在最短的时间内花最少的钱做出软件还让用户满意这个问题。而现在软件工程的教材多半是人云亦云,看书的人则被不断翻新的新术语和新模式弄得晕头转向,软件工程中的一些基本常识都渐渐被人们忽视了,在提解决方案的时候就处处是陷阱。金尊和开玩笑说,在国内外IT行业干了十年,因此有一肚子想法,而且自己平时还喜欢舞文弄墨,写书的念头就越来越强烈。
关键词:大数据;软件工程;群体软件;关键技术
一、大数据时代软件服务工程与群体软件工程
所谓软件服务工程,就是将服务作为主要目标,在应用时需要根据变化不断通过虚拟的手段与分布式手段进行应用,而这种应用方法不仅能够使得软件更加虚拟化,同时也能强化其操作性,与此同时,更能有效解决动态变化与分布变化情况[1]。软件工程在发展过程中能够在大数据领域、云计算中得到更加广泛应用。在网络化、服务化等大环境影响下,软件工程可以得到更好的开放空间。工程师利用数据信息交互、学术交流等多种方式开展合作,对软件进行开发,建设更加具有性价比的软件系统。在软件开发中,目前十分成功的就是开源软件,开源软件的合作模式与结构都是当前学术界最看重的,然而当前常规研究方式却未能实现较大突破。很多学者开始尝试利用网络分析方法对数据进行有效分析,在一些规模较大的开发项目的开发人员中,外围开发者占据绝对优势,并且模块化特征更加明显。和群体软件工程相比,开源软件有较弱的发展态势,而群体软件工程主要是倡导利用众包形式进行开发。
二、大数据时代众包软件服务工程
(一)创新发展态势
众包软件服务工程作为国际各国都密切重视的一种流式数据处理与集密数据处理方式,特别是在服务中对产生的各项数据尤为重视,如何才能将这些密集型数据的存储设施、平台、价值分析等作为服务对象,是当前大数据软件工程在研究过程中的难点与重点部分。从最开始的服务消费,到后来的众包服务开方,随后再到软件平台管理,运营方都由在线流式数据和离线密集型数据组成。当前开发者版本级别达到GB级别,众多用户数据能够达到PB级别,在线沟通数据更是能达到TB级别,利用直接推送功能可以左右软件服务时间,对软件产生关键性作用与影响[2]。
(二)软件生产开发、运营与管理
密集型数据,因为他们本身固有的动态分布形式、动态交互、复杂演化、动态分配、价值隐藏等,都能够体现大数据的最原始行驶情况。从本质角度来看,这些数据仅仅是用于描述内容模量,但是没有具体含义,并且缺乏语义化作用。想要对其进行创新,必须打破原有的研究方法与思维,将密集数据作为主要材质课题,并且将其看作是研究的主体,在主体领域,大数据所在流域与主体专家需要制造,传播大量的数据。他们不仅是大数据的群体用户,还是最主要的消费者,同时也担任着运营和管理的作用,能够将群体智慧汇到一起,逐渐形成系统化的领域和主体知识。将这些知识作为核心与基础,对研究密集型数据相对应的信息学过程与生命周期进行研究,并且及时推送相应的服务期限,研究数据内容的相关语义和标志,最终赋予其相应的矢量。组织主体部分构建价值服务机制与知识体系,在研究和互通过程中,利用操作式管理方式将关键技术应用在密集型数据上,这些都能展示出众包软件工程发展内容。
三、大数据背景下关于信息处理技术发展情况
与传统数据形式相对比可知,在大数据时代下能够实现各项数据相互联系,并且这些相互关联的结构,能够利用当前所有的框架,对数据进行及时且有效的处理。将硬件作为基础,通过该基础搭建的网络存在相应局限性,并且制约了网络的性能和发展,因此需不断探索与创新网络架构技术,以此实现大数据技术的提高。在日后发展过程中,计算机网络必须为其提供开放式的结构与传输功能,将计算机网络信息处理与软件基础、硬件基础分开使用,随后对网络架构进行定义。相关网络软件使得我国网络技术朝着更高水平发展,随着大数据时代的不断深入,计算机能够实现网络、硬件、软件融为一体,并且产生出新的网络结构,能够为大数据时展提供重要理论与实践意义。这种形式不仅能够突破传统计算机在处理信息时因为网络所带来的限制,同时也能使计算机处理技术开发与应用形式打破单一情况,逐渐朝着多元化方向不断发展。
四、结语
综上所述,随着我国大数据时代的到来,社会各领域都将受到大数据思想和创新技术的影响。大数据对人们的生活方式产生深刻影响,因此将大数据作为当前一种最新兴的网络技术。
参考文献:
随着经济、科技的发展与进步,软件技术的应用已经涉及到各行各业,因此软件工程的相关研究对社会各方面的影响日趋显著。本文对软件工程的发展起源、发展历史、发展现状以及发展趋势做出了总结性研究,以期对软件工程今后更好更快的发展提供理论支持与帮助。
2.软件工程的发展起源
二十世纪中叶,随着计算机设备逐渐由军用领域开始向民用领域开放运用,计算机的应用越来越广泛。当时的软件开发工具非常落后,生产个体化,只能依靠单一的软件开发平台。特别是在软件维护方面,尽管浪费了非常大的人力、物力,仍无法很好的完成维护的工作。到了60年代,计算机应用范围的更加广泛,软件发展的规模也越来越大,自身的复杂程序以及软件系统方面的需求不断扩大,之前传统软件开发方法同用户在效率和质量上的实际需求之间的差距不断拉大,于是就产生了“软件危机”。为了摆脱“软件危机”,计算机软件专家最终决定把软件开发与工程技术结合起来,于是“软件工程”就被抬上了历史的舞台。软件工程概念是在1968年德国召开的NATO(北约软件可靠性会议)上首次被提出来的,当时把软件工程定义为在软件的生产过程中所采取的工程化手段方法以及用一系列现代化科学技术来进行软件开发,之后软件工程发展成为了一门独立的学科。
3.软件工程的发展历史
软件工程的发展经历了一个漫长的过程,总结起来,软件工程三十多年来的发展之路大致可以分为三个阶段。软件工程形成的初始阶段一般是指20世纪60年代末期到70年代中期,这一阶段主要完成的工作有:在总结当时软件开发出现的问题的基础上提出了软件工程这一概念,并且能够利用独立的设计思想和工具来提高工作效率、完成工程任务。软件工程学的形成阶段一般指的是20世纪70年代中后期到80年代中期,在这一时期内,软件工程开始完善学科内部的建设,把工程学的思想和方法引入到软件设计中,促进了软件工程学的快速发展,使软件工程从此之后进入了一个崭新的、大规模的发展阶段。第三个阶段大致指20世纪80年代后期以后这段时间,在这个时期面向对象的语言和方法开始出现并逐步流行,并且最终成为人们主流的软件开发技术,人们的注意力开始转向如何改善软件的开发过程,侧重于有关软件构建技术的研究和实践。
4.软件工程的发展现状
进入20世纪90年代以后,软件工程的热点研究内容是软件过程的分析,其研究对象主要集中在过程成熟程度的评估、过程模型以及建模技术等几个方面,在过程成熟度评估的研究方面最具代表性的就是美国软件工程研究中心提出的CMM模型(能力成熟度模型)。近年来,软件原型技术相继取得了一些新的研究进展,目前使用最为广泛的原型技术就是渐进式和废弃式原型两种技术,这里所说的废弃式原型技术主要是指代码最终都要抛弃的原型技术,这里所谓的渐进式原型技术主要师指的是通过一系列迭代,原型最后都会进化成产品。一些原型语言的出现是这个领域内最重大的进展和成果,这些语言可以用来定义可执行系统模型,并且不用给出具体系统组成部分的算法细节,同时要使用大量的可重用代码技术和可重用代码技术来设计原型语言。到现在为止,软件重用技术在软件工程研究体系中仍然占有十分重要的地位,因为软件重用技术在理论基础方面还相当匮乏,并且相关的经济问题和法律问题没能得到有效的处理解决,因此软件重用技术尽管获得了一些有实用价值的成果,但软件重用技术还没有在真正意义上获得突破。
5.软件工程的发展趋势
软件工程未来的发展趋势主要有以下几个:第一,软件工程的开放性计算。由于计算机的可用性的中间件技术以及高并行计算能力已经得到越来越广泛的运用,大多数企业和个人用户都对可以互通互联的软件比较青睐。开源软件的开放性计算是软件工程的一个大的发展趋势。第二,建立软件开发过程的相关标准。软件更新换代的速度日益加快,这也就对软件团队提出更加严格的要求,这包括软件开发的全过程,如需求分析、软件构架以及软件测试能力等。因此建立相关的标准,合理规划软件工程的发展也是未来的一大发展趋势。第三,软件工程的模块化。软件的模块化设计思想是针对SOA技术在应对企业业务灵活性不足时,可以通过科学的方法将不同的软件应用及软件构件打包在一起,提高企业的现资产重用水平和自身能力。
6.结语
从某些方面看来,软件工程开发的本质就是从高层概念发展到底层概念,在一定程度上进行高级处理的软件编写。而大型软件的系统开发,过程比较复杂,通常受到进度、成本、有关人员与实用技术等方面的制约,因此,一般把软件工程定义为软件工程通常应用的工程主要原理、方法与技术,然后按照开发进度与预算,更好的满足使用者关于软件产品维护、定义、与开发方面相关的要求。此外,软件技术设计程序设计模式、语言、系统的平台与开发软件的工具等,在初始时期瀑布开发模式一直到后期螺旋方式迭代的开发,以及发展到现在软件敏捷开发的方法,基本都展示不同时代软件在开发过程中不同的认识。不少学者相继总结出开发软件的许多方法与步骤,例如数据库总体规划模型、瀑布型与原型模型。但是软件工程学并不代表彻底解除软件危机。在现代社会高度发展与软件工业不断进步的背景下,大多数大型、复杂软件开发工程,因为软件开发项目理论性过强,实施方式还存在局限性,造成诸多软件危机。新时代涌现不少新方法与新思想,例如:人工智能、CASE新型软件开发模型与软件再用等,使新时代的软件工程不断发展与进步,给软件的工程学奠定坚实的基础,软件工程从根本上发生质的改变,也就是软件生产标准化、软件的生产社会化与软件生产自动化。
2软件工程的发展历程
关于软件工程的发展历程一般有四个过程:二十世纪六十年代末,逐渐关注程序的结构,随后产生结构化程序设计的想法,并正式提出软件工程和软件工程的想法这一名词;二十世纪七十年代人们慢慢关注软件工程开发,逐渐探索设计方式和结构化研究,设计软件程序的方式分析已经成为单独分析的范围,其中数据也作为核心的数据抽象概念被提出,慢慢产生软件工具;二十世纪八十年代,程序设计的方法学渐渐被软件开发的方法学所取代,软件工程的环境与辅助的软件工程成为研究热点,逐渐流行面向对象的技术与方法;二十世纪九十年代面向对象的技术与方法成为主要开发软件的技术,探究软件过程变成热门首要的任务,改善企业软件成为重点,构建软件技术和软件复用也被看成唯一可以将软件危机彻底清除的有效方法。
3关于软件工程应用的实施
3.1制定开发计划
进行软件开发前,需要根据具体情况做出项目开发的有关目标,同时制定科学合理的研发计划,这样才可以有效规避软件开发中的被动与盲目局面。一般情况下,在软件开发计划制定过程中,还要充分考虑相关法律条规与社会规范等,软件开发过程必须严谨与周密。才能够让软件工程开发技术获取一定成效。
3.2分析定义与需求
需要认真分析同时定义软件项目开发过程中相关的一些需求,使用者与软件项目开发研究人员共同探讨一些需要满足的需求,还要对相关软件进行准确描述,并编写相关系统功能与软件具体需求的说明书,再提交给上级管理机构实施评审。
3.3设计软件
对于软件工程来说,其核心就是软件的设计,也就是及时把使用者需要转换成实际开发软件策略。而设计软件主要由详细设计与总体设计两个部分共同组成,其中总体设计一般按照用户需求实际数据进行设计,然后使用设计结构相关技术,将软件设计模块准确导出。另外,详细设计一般是通过自然语言、表格与图形等方面工具来设计,根据设计模块具体准则详细描述每一个软件的模块,例如:较高的内聚性、合并与分解及较低的耦合性,同时模块接口、作用与控制的范围都必须根据步骤来设计。
3.4编写程序
将用户要求变成计算机可以接受的样式,编写每一个版块的程序,并写成以特定设计程序语言来表示源程序的清单,一般能够自然编写的软件程序结构会比较好,这类程序清晰易读,方便用户使用。
3.5测试软件
软件质量真正得以保证一种重要方式就是软件的测试,也就是在软件测试设计实例应用基础上准确检验软件的每个部分,通常是使用白盒法、黑盒法,黑盒法通常是按照程序物理性质测试各个功能实际达标情况,而白盒法则是按照程序逻辑设计结构测试相关目标。但是两种方法都需要实行人工、目标与系统等的测试,再根据规定每一项要求,准确实施有效测试,更好的决定软件开发达标程度与真正落实使用情况。
3.6运行和维护软件
已经真正投入使用后的交付软件基本进入运行的阶段,此阶段一般持续时间较长,因此需要不断修改、诊断软件运行时的一些问题,其中包含预防性、完善性方面的维护,而且维护重要性普遍提高,加之本阶段是工程软件设计的最后阶段,更是最重要的一个阶段,因此需要高度重视。
4软件研究
通常关于软件研究内容一般包含以下几个部分:首先,需要研究模型和本质,也就是软件结构模型与组成元素,其给软件中良好结构的性能及有效运行过程提供了有效前提;其次,对于部分软件性质比较特殊的模型,可以研究一些先进开发的技术,在一定程度上提升软件系统的开发质量和效果;最后,需要研究特定领域中的软件,或是部分特别的应用软件。关于研究软件技术具体内容通常包含软件工程与软件语言两部分。其中软件语言也就是软件中书写的语言,其主要由功能级与需求级、实现级语言三部分共同组成,且不同语言的处理方式也存在差异性,其中软件工程就是分析利用数学理论与计算机的科学来实施软件开发。具体是把开发软件方式当做研究内容软件的具体方法,把软件生命的周期用来研究软件内容的工程,并把研发自动化的软件作为CASE内容中的环境与工具,这样可以更好地为各种使用的系统开发奠定基础。
5软件工程的发展趋势
近几年来计算机网络应用随处可见,网络也给人们提供众多的资源,因此当下软件研究重点就是整合网络资源,让资源可以有效的服务于使用者。同时网络的特点包含异构性、分布性与开放性,而这些特点传统软件显然比较缺乏,这就使软件工程发展出现新问题,也就需要软件工程使用新方式解决这个问题,而具备代表性的技术就是研究中间技术。由于网络普遍化,使软件环境渐渐转向动态与开放,为使软件系统适应这种发展的方向,就出现了柔性与多目标形态。这就给软件研究创造了新机遇,使研究人员可以研究出和网络动态、开放环境相适应的新技术,这样今后网络技术就可以全方面满足新时期人们的需求。
6结语
关键词:软件工程;哲学;人才培养模式
中图分类号:TP311.52 文献标识码:A
1 引言(Introduction)
软件工程,英文名Software Engineering,是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科[1]。软件产业的发展水平,决定了一个国家的信息产业发展水平及其在国际市场上的综合竞争力。目前,我国软件高级人才的短缺已经成为制约我国软件产业快速发展的一个瓶颈。在中国,国内市场对软件人才的需求每年高达80万人,而高校计算机毕业生中的软件工程人才还很缺乏,尤其是高素质的软件工程人才的极度短缺。尽快培养起适合信息产业所需要的高素质软件工程人才,已经成为信息化工作中的重中之重。
哲学,社会意识形态之一,是关于世界观的学说[2]。是理论化、系统化的世界观,是自然知识、社会知识、思维知识的概括和总结,是世界观和方法论的统一。是社会意识的具体存在和表现形式,是以追求世界的本源、本质、共性或绝对、终极的形而上者为形式,以确立哲学世界观和方法论为内容的社会科学。爱因斯坦这样谈论哲学:如果把哲学理解为在最普遍和最广泛的形式中对知识的追求,那么,哲学显然就可以被认为是全部科学之母。马克思也说过:真正的哲学是时代精神的精华。
哲学与具体科学是一般与个别的关系,二者之间存在着既相互区别又相互联系的辩证统一关系。它们之间的区别表现在:具体科学以世界某一特殊领域的具体规律为自己的研究对象,因而其理论具有个别性和特殊性;哲学以包括自然、社会和人类思维在内的整个世界的最一般规律作为自己的研究对象,因而其理论具有一般性和普遍性。它们之间的联系表现在:一方面,哲学以具体科学为基础,没有具体科学的发展,哲学既不可能产生,也不可能发展;另一方面,具体科学以哲学为指导,哲学为具体科学的研究提供正确的世界观和方法论。
2 分层DFD体现了抽象和分解的关系(Hierarchical
DFD embodies the relation between abstraction
and decomposition)
抽象和分解是两种相互区别又相互联系的思维方式。所谓分解,就是面向高层对其按某种方式从思维、逻辑或功能上进行分解,使其一分为几个相对独立的模块。所谓抽象,是面向底层,隐藏低层的各种差异和复杂实现,向高层提供一个统一的平台或接口。在生活中,这种分解与抽象的概念也革新了我们的思维习惯。面对一个问题,我们现在的习惯是,把它化成一个个小的整体,再分而治之,再归纳总结,找出其中的共性。或者先从一个基本内核做起,再层层抽象扩展,最终达到自己的目标。
抽象是指忽略一个问题中与当前目标无关的那些方面,以便更充分地关注与当前目标有关的方面。在求解一个复杂问题时,可以有许多抽象级别。例如,欲用计算机解决一个复杂的应用问题,开发人员首先将该应用问题抽象成一个计算机软件系统。在这个抽象层次上,可以忽略应用问题内部的复杂性,只关注整个软件系统与外界的联系,即软件系统的输入和输出。然后,将这个大而复杂的问题分解成若干个较小的问题(如子系统或功能),每个较小的问题又可分解成若干个更小的问题(如功能或子系统)。如此自顶向下一层一层地分解下去,直到每个最底层的问题都足够简单为止。这样,一个复杂的问题也就迎刃而解了。自顶向下逐层分解充分体现了分解和抽象的原则。随着分解层数的增加,抽象级别也越来越低,即越接近问题的解。自顶向下的过程是分解的过程,自底向上的过程是抽象的过程。
功能建模的思想就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止[3]。功能模型用数据流图来描述。对于稍微复杂一些的实际问题,在数据流图上常常出现十几个甚至几十个加工,这样的数据流图看起来不直观,不易理解,分层的数据流图能很好地解决这一问题。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。图1为数据流图的分层示意图。对顶层数据流图中所表示的系统进行功能分解得到一层数据流图,对一层数据流图中的功能进一步分解得到二层数据流图,以此类推。
3 分级表示的CMMI与量变质变规律(The
hierarchical representation of CMMI and the
quantitative and qualitative rhythms)
世界上任何事物都是质与量的矛盾统一体,而一切事物又总是处于不断的运动、变化和发展的状态中。因此,事物的发展、变化必然呈现出量变和质变两种状态[4]。量变转化为质变,质变又引起新的量变,如此循环往复以至无穷,把事物推向前进,这就是事物发展的一般过程。
所谓量变就是事物量的规定性的变化。包括事物在数量上的增减以及各个组成成分在空间排列次序上的变化、程度的加强或削弱、结构的复杂或简单、个别属性的变化等等。凡是没有引起事物根本性质改变的一切变化都是量变。量变和质变是对立的范畴,量变就是非质变。所谓质变就是事物质的规定性的变化,是事物根本性质的变化,是渐进过程的中断,是由一种质态向另一种质态的转化。
量变和质变的辩证关系:①任何事物的变化总是在一定质的基础上先从量变开始的。②量变积累到一定程度必然引起质变。量变是质变的必要准备,质变是量变的必然结果。③质变又会引起新的量变。一方面,质变体现着量变的结果;另一方面,质变又为新的量变开辟道路。④量变可以转化为质变,质变又可以转化为量变。如此循环往复,以至无穷,体现着事物的永恒的变化和发展。
分级表示的成熟度等级(Maturity Level,ML)给出了软件组织按规定的过程改进如何从成熟度低的等级逐步向更高的等级发展[5],共有五个组织成熟度等级,这些等级如图2所示。五个等级均规定了所包含的过程域(Process Area,PA)。
分级表示为实施过程改进的组织规定了既定的软件能力成熟度提升的路径,即从初始级开始逐级提升。而每个等级均规定了相关的一组过程域,如图3所示。图中除第一级以外,每个等级上给出了每一组过程域名称的英文字缩写。
软件组织按CMMI分级表示规定的成熟度等级,逐级攀登就能从低级到高级一步步地成熟起来。每一个等级都要经历量变到质变的过程,每个等级包含多个过程域,每完成一个过程域都是量变的积累,完成一个等级的所有过程域就达到了质变的临界点。软件组织的软件开发能力就跃升了一个级别,又在一个新的高度开始了量变的积累。
事物的发展是从低级到高级、简单到复杂的新陈代谢的过程;是由低层次的平衡逐步上升为高层次的平衡的过程。事物的运动平衡有低层次的平衡和高层次的平衡之分,实现由低层次的平衡组合向高层次的平衡组合转化过程就是事物的发展过程。在这个转化过程中,事物先由低层次的平衡不平衡(某一方面进步了、或某一部分突破了)高一层次的平衡(其余方面的递进的相互跟上)再到不平衡……更高层次的平衡。
4 黑盒测试中的因果图方法与原因和结果的辩证
关系(Causality diagram in black box testing and
the dialectical relationship between the cause and
the effect)
原因和结果是揭示事物的前后相继、彼此制约的关系范畴。客观世界到处都存在着引起与被引起的普遍关系,唯物辩证法把这种引起与被引起的关系,称为因果关系或因果联系。其中,引起某一种现象的现象叫做原因,而被某种现象所引起的现象叫做结果。
原因和结果之间的关系是既对立又统一的关系[6]。首先,原因和结果是对立的。在具体的因果联系中,原因就是原因,结果就是结果,二者不能混淆和颠倒。这是原因和结果区别的确定性。其次,原因和结果又是统一的,表现在:第一,原因和结果是相互依存的。第二,原因和结果在一定条件下相互转化。第三,原因和结果是相互作用的。
任何事物都处于因果联系之中,原因和结果既严格区别,又密切联系;因果联系具有普遍性、客观性。这就要求我们在认识事物时,既要看到它的产生是有客观原因的,又要看到它还会引起一定的结果。承认因果联系的普遍性和客观性,是人们正确认识事物,进行科学研究的前提;正确把握事物的因果联系,才能提高人们实践活动的自觉性和预见性。只有找出某一事物或现象产生的原因,才能认识其本质和规律,提出解决问题的有效方法。
因果图方法是一种帮助人们系统地选择一组高效测试用例的方法,它既考虑了输入条件的组合关系,又考虑了输出条件对输入条件的依赖关系,即因果关系,其测试用例发现错误的效率比较高[7]。
用因果图设计测试用例的步骤:
(1)分割功能说明书。
将输入条件分成若干组,然后分别对每个组使用因果图,这样可减少输入条件组合的数目。
(2)识别“原因”和“结果”,并加以编号。
“原因”是指输入条件或输入条件的等价类;“结果”是指输出条件或系统变换。每个原因和结果都对应于因果图中的一个结点,当原因或结果成立(或出现)时,相应的结点的值为1,否则为0。
(3)根据功能说明中规定的原因与结果之间的关系画出因果图。
图中左边的结点表示原因,右边的结点表示结果。画因果图时原因在左,结果在右,由上向下排列,并根据功能说明中规定的原因和结果之间的关系,用上述符号连接起来。必要时还可以引入一些中间结点。
(4)根据功能说明在因果图中加上约束条件。
由于原因②与③,④与⑤不能同时发生,分别加上约束条件E。
(5)根据因果图画出判定表。
列出满足约束条件的所有原因组合,写出每种原因组合下的结果(如有的话)。
(6)为判定表的每一列设计一个测试用例。
图4为饮料自动售货机因果图,表1为节点含义,表2:由因果图画出的判定表。图中阴影部分表示不可能出现的原因条件组合,此外当原因②、③、④、⑤均为0时,表示既没有投硬币也没有押按钮,此时表示售货机处于无人使用状态,因此也不必为它们设计测试用例。
5 项目管理的本质与联系的普遍性原理(The
essence of project management and the general
principle of contact)
所谓联系,就是事物之间以及事物内部诸要素之间的相互影响、相互制约和相互作用。联系是普遍的。世界上一切事物都与周围其他事物有着这样或那样的联系[8]。世界是一个普遍联系的有机整体,是一幅由种种联系交织起来的丰富多彩的画面,其中没有一个事物是孤立存在的。联系的普遍性原理要求我们要用联系的观点看问题,既要看到事物之间的联系,又要看到事物内部诸要素之间的联系。
项目管理的目标,就是以最小的代价(成本和资源)最大限度地满足软件用户或客户的需求和期望,也就是协调好质量、任务、成本和进度等要素相互之间的冲突,获取平衡。概况地说,项目管理的本质,就是在保证质量的前提下,寻求任务、时间和成本三者之间的最佳平衡[9],如图5所示。
项目三要素:任务、时间和成本之间是相互影响、相互制约和相互作用的关系。在一个项目中,一般说任务、时间和成本中的某项是确定的,其他两项是可变的。这样,我们就可控制不变项,对可变项采取措施,保证项目达到预期效果。例如,产品质量是不变的,要有足够的时间和成本投入去保证产品的质量。但同时市场决定产品,时间受到严格限制,这时,如果要保证产品的功能得到完整的实现,就必须有足够的成本投入(人力资源、硬件资源等)。如果成本也受到限制,就不得不减少功能,实现产品的主要功能。
6 结论(Conclusion)
软件工程知识中蕴涵了丰富的哲学思想,让学生掌握这些哲学思想,对学生深刻理解并灵活运用软件工程知识,激发学生的想象力和创造力,意义重大[10]。本文采撷了软件工程理论中一些简单的现象进行哲学分析,旨在帮助大家进一步理解软件工程理论的思想精髓。其实软件工程中许多现象都和哲学思想相关,如:软件设计方法的改变中体现了唯物辩证法中发展的观点。大型软件开发过程中资金、开发时间、开发人员之间的辩证联系。需求设计和具体编码是原因和结果的辩证关系。软件维护过程中体现矛盾的斗争性。软件功能和底层代码之间是现象和本质的关系等等。这些都将是下一步研究的重点目标。从哲学的角度讲,人们更希望用软件工程理论来改造世界而不仅仅是认识世界。
参考文献(References)
[1] 齐治昌,谭庆平,宁洪.软件工程[M].北京:高等教育出版社,
2004.
[2] 陈先达,杨耕.哲学原理[M].北京:中国人民大学出
版社,2010.
[3] 毋国庆.软件需求工程[M].北京:机械工业出版社,2008.
[4] 郭贵春.自然辩证法概论[M].北京:高等教育出版社,2013.
[5] 张海藩.软件工程[M].北京:清华大学出版社,2010.
[6] 王三可.哲学教程[M].西安:陕西人民出版社,2013.
[7] 钱乐秋,赵文耘,牛军钰.软件工程[M].北京:清华大学出版社,
2007.
[8] 乔斯坦・贾德.苏菲的世界[M].北京:作家出版社,2007.
[9] 肖来元.软件项目管理与案例分析[M].北京:清华大学出版社,
2012.
[10] 高禹,冯相忠.软件工程中的哲学思想[J].高等理科教育,2008
(4):17-20.
作者简介:
王中华(1976-),男,硕士,讲师.研究领域:Petri网理论及
关键词:软件工程 软件测试 产品 质量 测试工具 需求
在软件测试日新月异发展的今天,自动化测试正在成为软件测试领域里的一个非常瞩目的趋势和潮流,软件测试在软件工程中是极其重要的过程,在软件测试组织中,对测试过程中的知识进行有效的管理,是提升组织整体测试水平的关键。一个重要的研究问题是怎样将知识管理过程与软件测试过程有效集成,从而促进知识资产在软件测试组织中的传播与重用。首先我们来了解一下软件测试的概念,目前软件测试的定义比较多,如果想要找一个比较清晰的定义:软件测试主要是为了发现错误而执行程序的过程,也就是说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。所以,我们知道,软件测试其实是为了发现程序中的错误,是一个找错的过程。
同时,我们知道,软件测试是一个知识密集型的活动,软件测试人员的工作不仅仅是依据测试计划对软件进行测试,与测试相关的知识、技巧、经验和灵感在测试过程中有着重要的作用,但是随着软件技术的快速发展,不断出现的新的待测软件产品,常使软件测试人员感到压力重重,力不从心,他们有探寻新的测试知识和技术的紧迫需求。而软件测试的自动化的出现为我们提供了一种新思路和解决问题的新方法,下面对软件测试几个方面进行探讨。
1 软件测试的目标
1.1 软件测试员的基本目标是发现软件缺陷。这个是软件测试的终极目标,之所以再次强调。是因为有时软件开发团队进行软件测试只是为了证实软件不存在错误的过程,证明该软件满足了用户的要求,而不是找缺陷。在这样的情况下,测试人员也就缺乏不懈努力发现缺陷的探索精神和热情,不会希望在软件测试中暴露软件中隐藏的错误和缺陷。所以做好测试的首要条件是明确软件测试员的基本目标是发现软件缺陷。
1.2 软件测试员追求的是尽可能早地找出软件缺陷。根据调查和实践,软件的修复费用,随着时间的推移,将数十倍的增长,所以软件测试员应尽可能早地找出软件缺陷。这样,在测试中,就不要选择那些导致程序失效概率小的测试用例,因为这样的测试对于完善和提高软件质量是没有任何价值的。同时,应当把软件测试贯穿到整个软件开发的过程中,因为很多预料不到的错误,往往只在特定的环境下才会暴露出来,不然一些隐藏的错误和问题查不出来,就可能会出现在运行阶段中去。
1.3 软件测试人员必需确保找出的软件缺陷得以关闭。在软件工程测试的过程中,主要目的是发现至今未发现的错误,从用户的角度出发,替用户着想,将更深层次可能的问题都测试出来。但是,因为各种原因并不是每个软件缺陷都是必须要修复的。如:没有足够时间、风险太大等。但是,测试人员必需确保找出的软件缺陷得以关闭, 因为软件测试的目标就是揭示不同类型的错误,并且修正它,使得用户能够顺利使用软件。
2 软件测试的基本原则
2.1 软件开发人员应当避免测试自己的程序
软件测试时一项复杂、富有创造性和高度挑战性的工作,在软件测试中,如果让开发人员来测试自己的代码,那是一件非常不妥当的事情。因为开发和测试生来就是不同的活动。所以,不管是程序员还是开发团队都应当避免测试自己的程序或者本团队开发的功能模块。如果有条件的话,应当由独立于开发组和客户的第三方测试组或测试机构来进行软件测试。因为人类的活动具有高度的目的性,建立适当的目标具有重要的心理作用。如果我们的目的是要证明程序中没有错误,那我们就会不自觉地朝这个方向去做;也就是说,我们会倾向于挑选那些使程序出错的可能性较小的测试数据。或者由于程序员对问题的叙说和说明有误解而产生的错误,这种情况让程序员测试自己的程序是不可能发现问题的。
2.2 在软件测试中,确定预期输出或结果是测试必要的,不可缺少的一部分,如果事先无法肯定预期的测试结果,往往会把看起来似是而非的结果当成正确的。同时还要注意各种输入条件,无论合理与否。因为在实际使用中各种情况都有。
2.3 一定严格执行软件测试计划,禁止软件测试的随意性,这样就可以避免软件交付后出现问题,这样也可以改善测试的效率和有效性。
2.4 软件测试并不等于程序测试,软件测试贯穿于软件定义和开发的整个过程,因此,需求分析、概要设计和程序编码等各阶段所得到的文档都是软件测试的对象。
2.5 必须检查每一个测试结果,事实上在最终发现的错误中,有相当一部分在前边的测试中已经显露了出来,但是由于人们没有认真检查先前的测试结果而遗漏了。
2.6 为了提高对程序重新测试的效率,尤其是在对程序作了修改后,为了减少测试工作量和成本,除了对真正没有用的程序外,一定不要扔掉测试用例,测试用例代表了一定的价值投资。
3 软件测试自动化工具的选择
随着软件规模不断扩大,软件的复杂度不断加大,采用手工测试软件已经不能适应要求。采用电子自动化测试技术对于人工而言,能更好地保证测试的准确度,而且大大提高了测试的效率,加快软件的开发速度。因此,软件自动化测试应用越来越广泛,目前,自动测试是软件测试的一个重要组成部分,它能完成许多手工测试无法实现或难以实现的测试,从而提高软件质量,节省经费,缩短软件周期。在自动化测试中,首先我们要根据要求来合理选择测试工具,测试工具的价格在开发资金中占有较高的比例,从成本角度必须考虑,而且它参加了测试的大部分活动,影响测试的准确性和效率。根据测试方法不同,测试工具有黑盒和白盒两种;而从测试目的和对象的角度区分亦可分为:单元测试、性能测试、功能测试、负载测试等。
在测试中,对于测试工具的选择,并非测试功能越强大越好,有一个前提,那就是必须适用,而且必须满足兼容性,能够支持不同的运行平台,能对不同的脚本进行测试,同时对待测试的脚本具有追踪报道、错误定位的功能;再次,拥有测试结果总结功能,能够将测试结果以图表的形式展示出来,相对于一般的结果表述形式,图标表示更直观。更容易让人理解、信服,可以及时对测试结果进行分析。一般还要从功能、价格、测试工具的集成能力、测试工具的易用性、侧重点、技术支持等多方面考虑。
4 结束语
软件测试有其自身的特点。软件测试的目的不是为了仅仅找出错误,而是通过它发现错误、分析错误,找到错误的分布特征和规律,从而帮助项目管理人员发现当前所采用的软件开发过程的缺陷,以便改进;同时也能够通过设计有针对性的检测方法,改善软件测试的有效性。即使测试没有发现任何错误,也是十分有价值的,因为完整的测试不仅可以给软件质量进行一个正确的评价,而且是提高软件质量的重要方法之一。并以此来最终提高软件产品的质量和企业的经济效益,加强软件企业的核心竞争力。
参考文献:
[1]史济民.软件工程原理方法与应用[M].北京:高等教育出版社,2001.
[2]张海藩.软件工程导论[M].北京:清华大学出版社,1997.
[3]佘健明,等编著.工程咨询概论.中国计划出版社,2007,11转
[4]Sam Guckenheimer.The Revolution in Software Testing. Rational Software.2002.
[5]James Newkirk Robot C.Martin. Extreme Programming in practice中文版.人民邮电出版,2002年6月出版.
[6] Ron Patton 著.软件测试.周予槟,姚静等译.机械工业出版社,2002.
[7]崔启亮著.国际化软件测试.电子工业出版社.2006.4.
民族:汉 政治面目:团员
学历(学位):学士 专业:工业电器自动化
联系电话:XXXX 手机:XXXXX
联系地址:北京市东城区XX大街10号 邮编:100007
Email Address:
教育背景
毕业院校:北京工业大学 1993.9--1997.7 工业电器自动化专业
主修课程:自控原理,电力拖动,电子技术,自动测试系统,计算机组织与结构,计算机硬件及接口电路设计,汇编语言程序设计,C.C++程序设计,软件工程计算机网络原理等课程
另:其他培训情况
*微软认证系统工程师培训,培训科目:Windows NT Technology,Windows NT Enterprise,Networking with TCP/IP on Windows NT,ⅡS4.0 WindowsNT
*英语通过国家四级考试,阅读和翻译能力较强,曾多次为机械工业出版社翻译计算机书籍,并获出版。
工作经历
*1998年5月---至今 XX公司
网络系统工程师
Cisco、IBM网络产品的技术支持
网络系统方案(局域网和广域网)的设计和规划,解答用户的疑问,根 据用户需求提出最佳解决方案;Cisco、IBM网络产品的现场调试和系统维护
客户技术培训,及公司内部的技术交流与培训
网络基本原理及技术:LAN,WAN,TCP/IP,ATM等,以及Cisco、IBM 网络设备调试过程;讲解IBM AIX基本系统管理及高级系统管理、Netview、
NFS、HACMP等
曾经参与的项目
设计,安装,调试吉林97工程--吉林省电信综合管理系统ATM网络及主机系统,长沙卷烟厂,锦州合作银行,人民教育出版社信息系统;设计云南省邮电办公信息集成系统,济南广电ATM宽带综合业务网、陕西有线电视宽带网。
*1996年9月---1998年3月 XX公司
系统管理员/工程师
CHINAGBN Internet网络信息中心的系统管理
熟练掌握UNIX(SUN Solaris)操作系统、网络管理并参与组建了CHINAGBN Internet网络中心(包括网络设计,安装系统,联调,维护,网络编程)
CHINAGBN 金桥网六城市网络站点的建设
参与各站点Internet网络中心的总体规划和建设及其与卫星主干网的连接,对主干卫星网、X.25分组交换、Frame Relay、ISDN和DDN及其相关设备有所了解
CHINAGBN Internet网络中心Web系统管理员
个人简介
具备丰富的工作经验,认真踏实负责,且具备优秀的表达能力,曾多次主持对用户和内部的技术讲解和培训,获得用户和公司的一致好评。曾在电子工业部三金工程展风采展示会上向来宾讲解CHINAGBN专线集团用户解决方案。
【 关键词 】 软件工程;升级;策略
The Discussion of the Software Engineering Upgrades Policy
Chuai Zheng
(Tianjin Youth Vocational College Tianjin 300000)
【 Abstract 】 Firstly, from the analysis of the drawbacks of traditional computer software, the paper makes the interpretation of the value to start upgrading computer software engineering, and proposes the upgrade of software engineering goals. Then, the paper will propose the software engineering upgrade strategy to explore several considerations.
【 Keywords 】 software engineering; upgrades; policy
1 引言
计算机是硬件和软件的有机组合,二者缺一不可。其中硬件是软件的物理基础,偏向于现实的可触及的物理设备互连互通。软件是硬件的智能指挥中心,是自动与智能的体现者,更注重系统内部结构的组织应用。通过对传统软件使用情况的调查分析,存在多数用户反映传统计算机软件性能存在不能满足需要的缺点,主要体现在几个方面。
不能满足负载需求:在计算机越来越多的应用于各种生活环境下,某些领域需要计算机完成的任务越来越重,数据量呈现指数级增长。虽然硬件的发展使得在理论上问题具有可解决性,但传统的软件工程不能很好的利用硬件资源,适应新工作负荷的需要。严重影响工作的效率和质量。
不能满足效率需求:早期的软件无论功能还是组织结构都存在严重缺陷和不足,特别是用户操作的标准未与软件产品的质量相符合,这就为后来软件应付更大处理挑战埋下危机,使得日后效率提升空间大幅减小。另外,由于软件存在漏洞,使得用户所存储的重要信息易被窃取,导致更大经济损失,为无论是个人还是企业都带来了不必要的麻烦。
不能满足成本的需求:传统的软件组装和设计并没有先进的科学指导为基础,使得在这方面资本消耗过大,同时软件后期的改造或者升级成本也很高。对软件投入的过多就相应的减少了企业其它投资的减少,降低了其它工作方向的质量。
2 软件升级必须达到的目标
近几年,计算机软件工程的应用领域日益广泛,具体包括各种程序设计语言、数据库技术、软件设计模式、操作和数据指令的标准、应用系统平台和软件开发工具。鉴于传统软件工程存在的诸多缺限,还有功能对象的转变和应用范围的扩大。无论是作为软件研发的开发商还是作为软件直接应用的用户都要进行软件的升级。软件升级需要达到几点要求,包括要有非常高的工作效率,靠的住的安全性,增加软件的应用寿命和能够进行方便的修改重生成特性。
2.1 软件要具有高的工作效率
软件升级几乎涵盖了所有软件相关组成结构,要充分审核任何一个重要结构,做必要的改造。升级后软件要明显优于未升级前,对任务的处理时间要有较大的提升。具体来说就是,要对空间、时间等资源进行充分高效的利用,例如对计算机数据库技术一定要充分挖掘数据的可利用价值。同时,始终保持用户至上的理念,不断提高用户操作的便捷性是软件升级最重要的目标。应该在原有的基础上增加修改程序、组装软件和调整指令等必要的新功能。
2.2 软件要安全可靠
互联网的广泛应用方便了人们的工作生活,对计算机的广泛应用起到了不可忽视的推动作用。但由于它的开放性也给黑客提供了作案方便。黑客善于利用应用软件对计算机系统实施攻击,通过对软件代码的反编译,植入和修改破坏软件安全性以达到个人的目的,使得用户蒙受巨大的精神或经济损失。所以软件升级改造必须要考虑软件的安全防御功能。
2.3 尽量延长软件的使用寿命
软件开发设计前期调查,需求分析,开发,维护等多个阶段,其过程复杂,需要投入大量的人力、物力和财力。所以从成本消耗的调度看,新软件要尽量延长使用寿命,缩短产品更新换代的周期。就拿杀毒软件而言,每年市场上销售的杀毒软件数量巨大,对就的软件增加和完善功能必须要确保其在规定的时间内无需更换。同时,为了创造良好的经济效益,使用周期也应该得到延长。
2.4 方便修改重新生成
为了减少软件开发的投入,还可从软件后期维护着手。对于软件后期维护也是软件周期中花费最大的,只要设法减少这一阶段的投入,就会大大减少软件的成本。因此,开发软件时考虑留有修改余地,使得软件便于修改重新生成就显得尤为有意义,另外也会有效的减少设计工程师的操作难度。
3 计算机软件工程升级策略考虑
3.1 软件工程设计要有科学性
软件开发的第一阶段就是设计,软件工程的升级设计一定要以科学为指导。例如,对于研发程序代码要考虑软件模块化。对外要考虑软件的抽象和信息隐蔽特性,以及软件的局部化、一致性原则和适应性等特征。选择恰当的科学的设计方法,能够为这些特征的实现提供方便,达到科学性设计这一目标,突出升级软件后的优势特征。
3.2 要全面兼顾市场需求
软件开发的直接目的就是服务于市场需求,一个脱离市场需求的软件产品是对经济资源的浪费。同样,软件的升级也要有市场需求为支持,在满足市场基本需求的前提下,进行相关的研究和开发,才会使工作有价值,避免由于开发设计不当造成资源浪费。另外,作为计算机组成的两大部分,软件和硬件一直都存在计算机产品开发不可兼得的问题,无时无刻不逼迫使得软件开发单位考虑两者互相的影响与制约的关系,做出权衡。如此一来,面对具有多变性的市场,在采取有效控制之前,必须对市场有全面的掌握和理解,才能开发出更加满足社会需要的软件产品。
3.3 把握智多种发展趋势
3.3.1智能化
智能化不仅出现在计算机科学领域,它是现代通信与信息技术、行业技术、计算机网络技术和智能化控制技术综合到一起针对某一方面的应用。在人工智能化应用与计算机领域的今天,这个趋势必然会与现代通信技术、计算机网络技术与现场总线的控制技术飞速发展,一起给人们的生产生活带来巨大的变革。
3.3.2服务化
随着计算机软件技术的发展和应用软件的广泛普及,计算机软件技术及产品的服务化将成为一种大趋势。未来,软件开发商会以一种服务的形式提供软件,利用网络提供方式,将各种软件放在服务器的主机上,客户可根据选择下载安装某种应用软件。当然客户也可以与软件开发商联系,提出自己的要求,订购软件服务。通过网络享受软件和硬件资源,软件维护升级等,使软件真正的服务于人民。
3.3.3融合
我国对工业发展策略调整以及传统工业的升级,必然会加快电气化、机械化和自动化这些硬设备向信息化、数字化和网络化等软设备转变。计算机软件技术的融合化是我国信息化和工业化融合的一支重要力量。随着工业化不断推进和传统产业升级加快,工业软件的需求会进一步加大,我国计算机软件软件产业会不断发展壮大,推动计算机软件技术融合,以适应发展需要。
3.3.4开放化
随着软件工程的蓬勃发展,早期封闭性强的收费性软件发展模式以慢慢不再适应大的形式。为了给提高计算机软件质量的提高创建机遇,逐步打破软件技术和知识产权的垄断,开发化已变成不可阻挡的趋势。计算机软件源代码的开放,将意味着软件产品逐步标准化,这将有利于我国计算机软件产业的更新换代和全面升级。在这种趋势下,也势必会使我国计算机软件开发效率得到较大提高。
3.4 提供工程化支持,强化升级管理
新软件必须大幅增强软件的使用价值,具有很强的软件工程使用多用性,这些就需要软件工程的支持。主要包括软件工具和环境要对软件工程有足够的支持,以及充分保障软件工程项目的质量、技术和开销。这些都由对软件工程所提供的支撑质量和效用所决定。软件工程的管理作为另外一项比较重要的方面直接影响了对可用资源的有效利用,大幅提高软件组织的生产单位产出率,生产出合格的软件产品等问题。在参照市场需求下,提前做好准备,制定软件工程的管理制度,加强新旧产品升级空隙的质量监督和管理是电子产品研发企业必须做好的工作。
4 结束语
总体来说,计算机软件升级是一项繁杂并且有着众多考虑因素的任务。为了实现改进的目的,要在原有的基础上不断的修改,尝试提高软件质量,对软件进行重组。对计算机软件升级策略的研究也是一门多融合的课题,具有推动计算机科学不断优化进步的重要意义。我们应该全面增强对次课题的深入研究,结合现实的发展策略,确保高效的软件升级工作,以创造出更大的价值。
参考文献
[1] 戴云松.浅析计算机软件工程升级的策略性[J].电子技术与软件工程,2014(03).
[2] 王钟庄.谈计算机软件工程升级的策略性[J].煤炭技术,2013(06).
[3] 余明毅.探究计算机软件工程升级的策略性[J].无线互连科技, 2014(07).
1.1构件软件工程技术内涵
构件是系统当中二进制软件单元,其运行的端口比较规范化,并能够直接和第三方实施组装,而基于构件的软件工程主要是通过操作便捷的构件在软件结构当中组成单独应用程序,从而来实现软件重用以及重组的目标。对于构件软件工程技术的运行方式方面,即插即用是其最为显著的特征,软件工程和一般的工程有着不同,软件是逻辑产品,所以在其功能上也只能依赖软硬件运行环境和人们对其实施的操作,并且软件不是实物产品,其费用主要就是体现在研制开发过程中,并非是在生产上,其自身的复杂程度也相对比较高。通过逐渐成熟的基本构件技术可将软件工具拆分成多个层次来发挥其自身的功能。
1.2基于构件软件工程技术的优势分析
基于构件的软件工程技术自身有着显著的优势,首先从其组建的结构上来看,传统软件工程结构体系对市场和客户的需求满足程度还远远不够,对实际的竞争环境的适应程度也不高,而在基于构件的软件工程技术下对新的结构体系进行了开发,从而最大化的实现其需求。而在软件的开发过程方面的优势体现主要就是能够实现分析设计以及运行的整体协调,对多个系统的配件循环使用。对于软件的开发方法而言,其从原先的单一系统已经向着多应用系统进行转变。还有就是在软件的方法论层面,构建软件的开发能够提供规范化端口,也是软件开发过程编程简单的构建组合,这一软件的方法论是将软件端口作为关键点并面向社会的。
2基于构件软件工程技术的不足及其开发过程探究
2.1基于构件软件工程技术的不足分析
从现阶段的构件软件工程的发展来看还有诸多的不足之处,主要是体现在CORBA的效率不高以及安全性得不到有效保证,并且还没有集成开发环境,从而就使其在竞争能力方面相对比较弱,没能够进入到主流开发技术行列。总体而言,其在总体的架构上是分成客户端以及服务器端这两个重要的部分,对于客户端的程序所发起的任何对象请求都需要进行两次压缩和解包的操作,而在两次通过ORB核心下就会使得其自身的效率比较低,从而造成安全性得不到有效保证。除此之外就是COM+自身的问题,主要就是其并非是独立层,而是集成在操作系统下,这一操作系统是其重要组成部分,由于不是独立中间层这样就很难形成软件界统一标准,所以对硬件以及操作系统的差异屏蔽就不能有效实现。另外就是COM与COM+没有解决PLLhell的相关问题,在对新应用程序进行安装过程中就会对原有的应用程序造成损坏从而让计算机用户产生恐慌心理。再有就是EJB/J2EE方面的问题,其最为显著的特征就是多层架构,而每层都致力于给应用程序提供特定功能,但由于其层次多所以在实际的部署上就存在着很大的难度,并且也不能达到预期的效率,对这些方面的不足之处进行优化处理就有着其必要性。
2.2基于构件软件工程开发过程探究
基于构件软件工程的开发过程在生存周期方面和传统的有着一些区别,其显得更为简单化,对任何的系统加强对其实施分析都是必要的,而对构件软件工程系统的分析就要能够遵从相关的原则,主要有封装原则以及抽象原则和继承原则等。构件属性以及服务要和接口得到紧密结合,从而使得构件能得以集中并完整描述具体事物,而封装信息隐蔽作用则有效对事物相对独立性得到了反映。另外从抽象原则方面来看主要体现在两个层面,首先是对个体事物细节差异进行舍弃并抽取共同特征来获取事物抽象概念,还有是只要对系统目标相关事物本质进行了解其他应进行舍弃。对构件软件工程的开发过程是复杂的,首先对蓝图的设计方面要将构件定义好,把整个系统分解一级子模块,如果太多复杂就继续进行分解二级子模块。然后就是构件准备和生产,在对蓝图设计之后要对模块构件进行准备和生产。为能够对软件开发时间和成本得到最大化的节约就要在网上搜寻实际需要的构件,这些构件往往是反复测试的,在价格和质量上都相对比较优异。还有几十对特殊的构件进行自定义,做好独立开发构件的思想准备。另外就是构件的集成以及测试方面,对单个的构件购买以及生产完成后,就要按照蓝图的设计实施二级子模块组装以及测试,在组装完成后实施兼容性以及功能测试。在对二级子模块的测试通过后对其实施组装然后实施一级子模块兼容性以及功能的测试,接着就能够实施软件系统系统集成测试,倘若在这一过程中发现出现了问题就及时的通过电子邮件来告知开发商,在对漏洞修复之后进行下载对原有问题构件加以替换。再有就是使用中用户以及相关维护人员要能及时对软件错误发现,并要能定期的撰写软件问题和修改的报告,这样对软件的持续良好的应用有着其重要性。
3结语