软件百科
联系我们
联系电话

135 2295 6919

135 2295 6919

公司主站Website:

www.qykh2009.com

公司主站
电子邮箱

电子邮箱:

qykh2009@163.com

公司地址

公司地址:

北京市朝阳区亚运村天创世缘B2座30整层

Software     软件百科

北京软件开发公司:软件工程发展趋势

分享到:

类别:软件开发访问量:2389编辑:admin 日期:2024-11-01 20:58:00

    


来源:  北京软件开发公司

软件工程的发展不可能孤立存在,首先需要分析计算模型和软件开发本身的变化和趋势,由此才能推断出软件工程的发展趋势。  计算能力变化趋势:

(一)大量中间件技术被采用:由于计算能力向服务器端的快速集中,提供高并行计算能力和可用性的中间件技术被广泛采用,甚至已经成为构建大型软件系统的必选项;

主要针对这个特点我们归纳出培养软件工程人才的第一个重点要求:

1人才定位:定位于中小企业利用开源框架进行二次开发,流程改造的人才。条件合适的情况下,发展成为工具软件和系统软件的开发人才。

      从软件工程发展趋势看出,开源,共享,双赢甚至多赢是软件工程发展的大趋势。垄断的软件企业,不可能集成众多的软件精英的智慧,由于NDA协议的限制,使得这些企业的独门绝学闭门造车,固步自封,最终导致企业发展停滞不前。所以,培养更多的利用开源框架,软件包进行二次开发,软件外包服务的人才符合社会需要,也符合我校人才培养现实。

2.人才培养针对性措施,在我校此类人才的培养上:应

继续强化JAVA和开源的MYSQL的课程强化力度,逐步弱化微软平台.net方向的课程。

强化软件工程的思想,避免局限于编程语言的熟练而淡化了软件工程全局观和系统观念。

尝试设立关于编程规范和软件系统设计类课程,特别是rational rose的使用和UML统一对象模型语言的设立。强化设计的理念,避免过度强调编码,忽视设计。

将一些主流的开源框架比如STRUTS;SPRING;HIBERNATE等框架重点单独开设课程。用于实际项目开发。

     尝试以教师带领小组学生,以我校实际需求的软件系统作为毕设课题,集体完成实用性的课题,比如,图书馆图书电子化系统,自动排课系统等等课题。张总:思路还不够开阔----社区产品上网工程,免费为企业开发管理软件,业务管理软件,行政管理软件。不给他们开发大型的,层次众多的软件。但是如果开发比如销售量统计软件,学生餐卡充值软件。家具企业,食品企业。信息化管理程度还不够,我们可以尝试建立一个为中小企业开发相应的免费软件的机制。既是为社区服务又是为教学服务。开阔一下思路。

(二)开源软件成为发展趋势:互联网的普及,将原来分散开发人员聚合在一起,只要有一个合适的基础和好的框架,他们就可以开发出产品级的工具软件(以Eclipse,JBoss,MySQL,Subversion,GLASSFISH为例),从而开源成为了一种趋势。开源软件大量出现,软件外包将更加普及,主要特点如下:

1计算能力的增强,集成开发环境更加智能,获取现成的类库更加方便,应用软件开发变得更加容易。

2加上软件本身一次性投资的特点,很多的场合甚至用软件替代硬件,是的软件开发需求增加。

3.消费类电子与人们的生活更加息息相关,小的免费软件,小型桌面游戏的出现。等各方面需要的软件开发人员数量急剧增长(组织形态是大量的小规模开发团队);在这一因素以及降低成本的压力下,开发外包变得非常普及;

4.项目构建工具,资源依赖更加自动化,系统开发也不需要从0开始,而是利用业内的免费框架进行二次开发。

(三)为了使分布在互联网上系统能够互相协作,异构的分布的软件系统将需要用统一的,标准的协议互相通信,形成逻辑上更大的系统。那么基于XML数据交换语言的SOA成为一个热点;

主要针对第二,第三个趋势,我们归纳出培养软件工程人才的第二个要求。

1人才定位:定位于中小企业信息化建设和管理人才,用软件技术解决企业某些关键需求。中小企业发展初期在信息化建设方面由于成本考虑或者是对信息化价值认识上的限制,一般不会选择找专门的系统集成公司进行大规模的信息化建设。那么,利用现有的条件,结合企业自身的特点和需求,建设一个自动化程度能充分满足企业业务需求,大大提高企业劳动生产率的信息化系统。

2.培养措施:在培养这方面人才上,应

A。要更加重视系统集成的网络类课程,弱化综合布线等专业化程度较高的课程。

B.更加重视网络技能类课程,集成用的软件安装,配置,linux系统下环境的设置等。

C.WEB方面的应用,特别是SOA方面的课程,能够把企业原有的各种孤立应用,整合起来。

(四)B/S结构的软件系统主要在服务器端,系统非常容易升级,这使得软件交付和升级的速度大大加快了(从以年月为单位,到以周天为单位);BS取代CS。

(五)需求工程,渐成热点(我们进行学科建设时总强调的客户需求,此处特指软件开发中用户需求):

1.专业化的角色,日益复杂的业务创新,全球分布的团队以及互联网级的交付速度,这些都对需求获取的正确性和有效性提出了更高的要求;对需求工程的研究和实施会成为新的热点,软件上市周期的缩短意味着必须对客户需求快速准确把握。所以,Use Case技术会被广泛应用。Use case 本身是黑盒子,它用自然语言抽象了用户和目标系统的交互,避免了混入分析、设计和实现细节,以保证用例可以被不懂具体技术的业务及测试人员所真正理解。同时,需求分析员又可以方便地通过用例分析(use case analysis)(即用分析类来试图在理想方式下实现用例),将需求体系精华成分析模型。从而软件开发人员更进一步地完善基于用例的需求体系,而不必担心分析模型会污染需求,从而实现需求与分析的分离及有效互动。(关注需求建立工具:如IBM Rational Requirements Composer,,Ravenflow等。)

这使得我们归纳出软件工程人才的第三个重点:把自己的精力更多地放在研究企业的信息化需求。

定位于专业的软件用户需求工程人才。

软件的用户需求之所以引发了需求工程的发展,是因为用户需求其实是需要软件系统供应商做出的,软件系统消费者只能按照想象或者是用户对其他系统的使用经历来进行零散的描述表达,真正用user case严谨表达一般而言软件系统消费者不可能做出。这就对软件系统供应商提出了很高的要求,一方面供应商做出的用户需求要充分精确地满足软件系统消费方的现实需求。另一方面还有一个引导消费的问题,供应商需要根据对本行业,本领域的充分了解,以及对行业软件的现状充分把握。同时,还需要考虑到设计和实施的难度。

2.在这类人才培养上应采取的措施

A针对性地设置关于获取用户需求技能的课程。

B设置用例图绘制的专门课程。

C设置UI制作课程,用UI表达用例。

(六)迭代/敏捷,渐成标准:随着软件交付周期的日益加快,迭代化开发已经成为大多数软件开发团队的必选项。但是迭代对整个团队的需求、架构、协同及测试能力都提出了更高的要求,现在许多开发团队都在试图导入迭代化开发的过程中,敏捷可是被看成迭代化开发的一种导入方式,这不过敏捷的范围其实比迭代化开发更大一些。迭代本身就是敏捷开发的一种方式,迭代开发其实是充分利用了可以利用的前期的模块,每一次产品升级不是对前一代产品的全盘否定,而是将部分不合适的模块取代,将效率能够满足要求的模块留下来。

简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

(七)持续集成,蓄势待发:集成软件的过程不是新问题,如果项目开发的规模比较小,比如一个人的项目,如果它对外部系统的依赖很小,那么软件集成不是问题,但是随着软件项目复杂度的增加(即使增加一个人),就会对集成和确保软件组件能够在一起工作提出了更多的要求-要早集成,常集成。早集成,频繁的集成帮助项目在早期发现项目风险和质量问题,如果到后期才发现这些问题,解决问题代价很大,很有可能导致项目延期或者项目失败。 先开发后集成有问题,而常集成,早集成才可以。

大师Martin Fowler对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。持续集成是保证迭代化开发质量的主要方式,通过持续集成可以利用自动化的方式来尽量自动地、尽早保证代码质量。随着迭代和敏捷的流行,持续集成相关的工具成为现在市场上的新热点(如持续集成框架IBM Rational BuildForge, 开源软件CruiseControl,代码静态分析工具Klocwork Insight,IBM Rational Software Analyzer等)。

    持续集成是一个复杂的系统工程,组织需要首先将现有的配置管理/变更管理工具与Build环境紧密集成并完成自动化Build过程,在根据企业/项目/产品的现状,定义如何自动化地检测软件质量(代码静态分析、单元测试或冒烟测试),并定义需要自动化生成的管理报表。  

结论:根据以上的软件工程发展趋势,结合我校教育教学改革的大思路,提出对软件工程人才培养的三个基本要求:

满足企业信息化建设中的企业关键需求。

具备开源软件,开源框架的发现和使用能力,在比较大的层次上进行二次开发的能力。

熟悉企业的行业需求和企业自身的业务需求,并能清楚描述。

 

北京网站建设,北京软件开发公司,  ERP系统有哪些    QQ号:2725110947  联系电话:010-51246210 ; 15699913471