精华内容
下载资源
问答
  • 软件工程未来发展趋势
  • 吴穹博士谈软件工程未来发展趋势

    千次阅读 2008-09-29 09:34:00
    本文的意图是讨论软件工程未来发展趋势,但是软件工程的发展不可能是孤立的,所以我们首先需要思考一下计算模型和软件开发本身的变化和趋势,再由此推测软件工程的发展趋势。从计算模型而言,应该来讲,传统的冯·...

        本文的意图是讨论软件工程的未来发展趋势,但是软件工程的发展不可能是孤立的,所以我们首先需要思考一下计算模型和软件开发本身的变化和趋势,再由此推测软件工程的发展趋势。

    从计算模型而言,应该来讲,传统的冯·诺依曼仍然被沿用;但从计算能力上来讲,我们注意到了三个变化:
    CPU的运算能力按摩尔定律快速提升;但提升单颗CPU的计算能力已经越来越困难


    并行运算技术以及多核多线程技术使服务器的处理能力飞速提升;服务器的处理能力不再是瓶颈,从而造成计算能力大量向服务器端迁移,C/S结构被无情抛弃,薄客户端(B/S结构)成为大势所趋。


    互联网的快速普及使得云计算成为可能,通过互联网相连的服务器集群在服务器端提供了更强大的计算能力

     

    基于上述计算能力的变化,从软件开发模式而言,我们注意到以下六个相关的趋势:


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


    因为采用了中间件技术,软件开发团队可以更集中关注于业务逻辑,而可以将许多细节交给中间件来管理,从而大大减少了需要编写的代码行数,也直接导致了软件开发团队的规模变得越来越小,但角色变得越来越专业化(如了解行业的需求分析员,了解中间件技术和领域构架的架构师等)。


    计算能力的增强,使软件越来越易用,从而使软件变得无处不在,需要的软件开发人员数量急剧增长(组织形态是大量的小规模开发团队);在这一因素以及降低成本的压力下,开发外包变得非常普及。


    为了使分布在互联网上系统能够互相协作,SOA成为一个热点。


    互联网的普及,将原来分散的开发人员聚合在一起,只要有一个合适的基础和好的框架,他们就可以开发出产品级的工具软件(以Eclipse,JBoss,MySQL,Subversion为例),从而开源成为了一种趋势。


    B/S结构的系统非常容易升级,这使得软件交付和升级的速度大大加快了(从以年月为单位,到以周天为单位);

     

    回到正题,那么在这些大的趋势的作用下,软件工程会如何发展?

     

    我觉得在未来几年我们会看到如下的趋势:


    需求工程,渐成热点:专业化的角色,日益复杂的业务创新,全球分布的团队以及互联网级的交付速度,这些都对需求获取的正确性和有效性提出了更高的要求;我预计需求工程的研究和实施会成为近期的热点,其中Use Case技术会被更广泛而正确的应用,而相关工具的研发也会成为热点(如IBM Rational Requirements Composer、Ravenflow等)。
    用例的优势在于它天生是黑盒的,它用自然语言抽象了用户和目标系统的交互,避免了混入分析、设计和实现细节,以保证用例可以被不懂具体技术的业务及测试人员所真正理解。同时,需求分析员又可以方便地通过用例分析(即用分析类来试图在理想方式下实现用例),将需求体系精华成分析模型。在这一过程中,需求分析员可以更进一步地完善基于用例的需求体系,而不必担心分析模型会污染需求,从而实现需求与分析的分离及有效互动。
    DSSA和MDD,老树新花(基于领域的构架[DSSA]与模型驱动的开发[MDD]):随着软件应用的日益普及,软件已经超出了将手动流程自动化的范畴,而开始成为业务创新的主要推动力。因此,引入捕获特定领域内最先进需求及其实现架构的DSSA成为行业客户的热点之一。而且,DSSA的引入将MDD门槛大大降低了,也使基于DSSA的MDD支撑工具成为可能,从而可以极大地提高开发效率并保证软件质量(例如,Telelogic的Rhapsody就是一个成功的基于实时嵌入式系统构架的MDD工具)。
    迭代/敏捷,渐成标准:随着软件交付周期的日益加快,迭代化开发已经成为大多数软件开发团队的必选项。但是迭代对整个团队的需求、架构、协同及测试能力都提出了更高的要求,现在许多开发团队都在试图导入迭代化开发的过程中,敏捷可以是被看成迭代化开发的一种导入方式,只不过敏捷的范围其实比迭代化开发更大一些。
    敏捷的三个要素是迭代开发、坦诚合作和自适应性。坦诚合作其实才是敏捷的精髓,如Ivar所说,敏捷其实是有关Social Engineering的。敏捷的主要贡献在于他更多地思考了如何去激发开发人员的工作热情,这是在软件工程几十年的发展过程中相对被忽略的领域。
    持续集成,蓄势待发:持续集成是保证迭代化开发质量的主要方式,通过持续集成可以利用自动化的方式来尽量自动地、尽早保证代码质量。随着迭代和敏捷的流行,持续集成相关的工具成为现在市场上的新热点(如持续集成框架IBM Rational BuildForge, 开源软件CruiseControl,代码静态分析工具Klocwork Insight,IBM Rational Software Analyzer等)。
    持续集成是一个复杂的系统工程,组织需要首先将现有的配置管理/变更管理工具与Build环境紧密集成并完成自动化Build过程,在根据企业/项目/产品的现状,定义如何自动化地检测软件质量(代码静态分析、单元测试或冒烟测试),并定义需要自动化生成的管理报表。
    基于实践的过程框架,方兴未艾:开发角色的专业化的和分布的全球化都要求软件开发过程更加规范,而敏捷又要求过程必须紧密贴合项目的实际需要,因此传统的大一统的过程无法符合这一需求。新一代的过程将是以实践为核心的,项目可以通过组装所需的不同实践来获得贴近项目要求的过程。IJI(Ivar Jacobson International)的EssWork框架和IBM Rational的RMC都是新一代的基于实践的过程框架。
    依据过程专家长时间的经验,他们很小心、很仔细地将一个完整的开发过程组件化,从开发过程抽象出一个个可以被单独导入又可以被组装到一起的实践,从而使逐步求精式的过程改进成为可能。对于一个软件组织而言,如果已经建立一个比较成熟的软件开发流程,但觉得这一流程并不适合所有项目的实际需要,那么目前可以考虑的是用实践的方式去重新梳理现有流程,以使项目组能够以实践为单位来组装出切合项目实际的流程;另外,该组织也可以将适用于本组织的业界流行的实践导入到现有流程当中,IJI公司的专家从业界最佳经验中抽取了八个实践,有关信息可访问http://www.esslab.net:4040/ngp/
    配置管理,昨日黄花:随着开发团队规模的日益减小,配置管理的复杂性大大降低了,我们注意到越来越多的用户转向使用开源的配置管理工具(如Subeverison,JIRA,hosted-projects等等);未来的配置管理工具更多的以一种全生命周期管理平台(Application Lifecycle Management)的方式出现,弱化了单项的配置管理能力而强调了全流程的整合(如Microsoft VisualStudio Team System和IBM Rational Team Concert等)。

    即便配置管理的复杂性降低了,但它仍然是开发项目管理的最重要的支撑平台之一。目前的重点应该是加强对项目经理进行有关配置管理知识的培训,让他们理解到配置管理能力(如并行开发、基线回退等等)能够如何帮助项目开发过程的,从而使配置管理工具/环境的价值能够得到充分的发挥。

    软件工程队软件开发的重要性我无须赘言了。虽然,我上面列出了一些软件工程的热点,但读者一定要仔细分析组织自身特点,以确定接下来要采取哪些改进步骤,而不应该盲目追求热点!

    展开全文
  • 本文的意图是讨论软件工程未来发展趋势,但是软件工程的发展不可能是孤立的,所以我们首先需要思考一下计算模型和软件开发本身的变化和趋势,再由此推测软件工程的发展趋势。 从计算模型而言,应该来讲,传统的冯...
    本文的意图是讨论软件工程的未来发展趋势,但是软件工程的发展不可能是孤立的,所以我们首先需要思考一下计算模型和软件开发本身的变化和趋势,再由此推测软件工程的发展趋势。

           从计算模型而言,应该来讲,传统的冯.诺依曼仍然被沿用;但从计算能力上来将,我们注意到了三个变化:

          ●CPU的运算能力按摩尔定律快速提升;但提升单颗CPU的计算能力已经越来越困难;

          ●并行运算技术以及多核多线程技术使服务器的处理能力飞速提升;服务器的处理能力不再是瓶颈,从而造成计算能力大量向服务器端迁移,C/S结构被无情抛弃,薄客户端(B/S结构)成为大势所趋;

           ●互联网的快速普及使得云计算成为可能,通过互联网相连的服务器集群在服务器端提供了更强大的计算能力;

          基于上述计算能力的变化,从软件开发模式而言,我们注意到以下六个相关的趋势:

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

          ● 因为采用了中间件技术,软件开发团队可以更集中关注于业务逻辑,而可以将许多细节交给中间件来管理,从而大大减少了需要编写的代码行数,也直接导致了软件开发团队的规模变得越来越小,但角色变得越来越专业化(如了解行业的需求分析员,了解中间件技术和领域构架的架构师等);

           ●计算能力的增强,使软件越来越易用,从而使软件变得无处不在,需要的软件开发人员数量急剧增长(组织形态是大量的小规模开发团队);在这一因素以及降低成本的压力下,开发外包变得非常普及

           ●为了使分布在互联网上系统能够互相协作,SOA成为一个热点

           ●互联网的普及,将原来分散开发人员聚合在一起,只要有一个合适的基础和好的框架,他们就可以开发出产品级的工具软件(以Eclipse,JBoss,MySQL,Subversion为例),从而开源成为了一种趋势

           ●B/S结构的系统非常容易升级,这使得软件交付和升级的速度大大加快了(从以年月为单位,到以周天为单位);

          回到正题,那么在这些大的趋势的作用下,软件工程会如何发展呢?我觉得在未来几年我们会看到如下的趋势:

          ●需求工程,渐成热点:专业化的角色,日益复杂的业务创新,全球分布的团队以及互联网级的交 付速度,这些都对需求获取的正确性和有效性提出了更高的要求;我预计需求工程的研究和实施会成为近期的热点,其中Use Case技术会被更广泛而正确的应用,而相关工具的研发也会成为热点(如IBM Rational Requirements Composer,,Ravenflow等。

          用例的优势在于它天生是黑盒的,它用自然语言抽象了用户和目标系统的交互,避免了混入分析、设计和实现细节,以保证用例可以被不懂具体技术的业务及测试人 员所真正理解。同时,需求分析员又可以方便地通过用例分析(use case analysis)(即用分析类来试图在理想方式下实现用例),将需求体系精华成分析模型。在这一过程中,需求分析员可以更进一步地完善基于用例的需求体 系,而不必担心分析模型会污染需求,从而实现需求与分析的分离及有效互动。

           ●DSSA和MDD,老树新花(基于领域的构架(DSSA)与模型驱动的开发 (MDD)):随着软件应用的日益普及,软件已经超出了将手动流程自动化的范畴,而开始成为业务创新的主要推动力。因此,引入捕获特定领域内最先进需求及 其实现架构的DSSA成为行业客户的热点之一。而且,DSSA的引入将MDD门槛大大降低了,也使基于DSSA的MDD支撑工具成为可能,从而可以极大地 提高开发效率并保证软件质量(例如,Telelogic的Rhapsody就是一个成功的基于实时嵌入式系统构架的MDD工具)。

           ●迭代/敏捷,渐成标准:随着软件交付周期的日益加快,迭代化开发已经成为大多数软件开发 团队的必选项。但是迭代对整个团队的需求、架构、协同及测试能力都提出了更高的要求,现在许多开发团队都在试图导入迭代化开发的过程中,敏捷可是被看成迭 代化开发的一种导入方式,这不过敏捷的范围其实比迭代化开发更大一些。

          敏捷的三个要素是迭代开发、坦诚合作和自适应性。坦诚合作其实才是敏捷的精髓,如Ivar所说,敏捷其实是有关Social Engineering的。敏捷的主要贡献在于他更多地思考了如何去激发开发人员的工作热情,这是在软件工程几十年的发展过程中相对被忽略的领域。

          持续集成,蓄势待发:持续集成是保证迭代化开发质量的 主要方式,通过持续集成可以利用自动化的方式来尽量自动地、尽早保证代码质量。随着迭代和敏捷的流行,持续集成相关的工具成为现在市场上的新热点(如持续 集成框架IBM Rational BuildForge, 开源软件CruiseControl,代码静态分析工具Klocwork Insight,IBM Rational Software Analyzer等)。

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

          ●基于实践的过程框架,方兴未艾:开发角色的专业化的和分布的全球化都要求软件开发过程更加 规范,而敏捷又要求过程必须紧密贴合项目的实际需要,因此传统的大一统的过程无法符合这一需求。新一代的过程将是以实践为核心的,项目可以通过组装所需的 不同实践来获得贴近项目要求的过程。IJI(Ivar Jacobson International)的EssWork和IBM Rational的RMC都是新一代的基于实践的过程框架。

           依据过程专家长时间的经验,他(她)们很小心、很仔细地将一个完整的开发过程组件化,从开发过程抽象出一个个可以被单独导入又可以被组装到一起的实践,从 而使逐步求精式的过程改进成为可能。对于一个软件组织而言,如果已经建立一个比较成熟的软件开发流程,但觉得这一流程并不适合所有项目的实际需要,那么目 前可以考虑的是用实践的方式去重新梳理现有流程,以使项目组能够以实践为单位来组装出切合项目实际的流程;另外,该组织也可以将适用于本组织的业界流行的 实践导入到现有流程当中,IJI公司的专家从业界最佳经验中抽取了八个实践,有关信息可访问(http://www.esslab.net:4040/ngp/)。
     
          配置管理,昨日黄花:随 着开发团队规模的日益减小,配置管理的复杂性大大降低了,我们注意到越来越多的用户转向使用开源的配置管理工具(如 Subeverison,JIRA,hosted-projects等等);未来的配置管理工具更多的以一种全生命周期管理平台(Application Lifecycle Management)的方式出现,弱化了单项的配置管理能力而强调了全流程的整合(如Microsoft VisualStudio Team System和IBM Rational Team Concert等)。

           即便配置管理的复杂性降低了,但它仍然是开发项目管理的最重要的支撑平台之一。目前的重点应该是加强对项目经理进行有关配置管理知识的培训,让他(她)们 理解到配置管理能力(如并行开发、基线回退等等)能够如何帮助项目开发过程的,从而使配置管理工具/环境的价值能够得到充分的发挥。
     
          作为结语,软件工程对软件开发的重要性我无须赘言了。虽然,我上面列出了一些软件工程的热点,但读者一定要仔细分析组织自身特点以确定软件工程的改进步骤,扎扎实实的逐步改进,而不应该盲目地追求热点!
     
    (本文来自《程序员》杂志0809期)
    展开全文
  • 描述软件工程未来发展趋势,了解专业发展方向
  • 软件工程未来发展趋势

    千次阅读 2013-06-27 20:42:21
    这篇文章的主体是讨论软件工程未来发展趋势,但是软件工程的发展不可能是孤立的,所以我们首先需要思考一下计算模型和软件开发本身的变化和趋势,再由此推测软件工程的发展趋势。  从计算模型而言,应该来讲,...

    此文全文已发表在《程序员》杂志九月号上。


    这篇文章的主体是讨论软件工程的未来发展趋势,但是软件工程的发展不可能是孤立的,所以我们首先需要思考一下计算模型和软件开发本身的变化和趋势,再由此推测软件工程的发展趋势。 

    从计算模型而言,应该来讲,传统的冯.诺依曼仍然被沿用;但从计算能力上来将,我们注意到了三个变化:

     1、 CPU的运算能力按摩尔定律快速提升;但提升单颗CPU的计算能力已经越来越困难;

     2、 并行运算技术以及多核多线程技术使服务器的处理能力飞速提升;服务器的处理能力不再是瓶颈,从而造成计算能力大量向服务器端迁移,C/S结构被无情抛弃,薄客户端(B/S结构)成为大势所趋;

     3、互联网的快速普及使得云计算成为可能,通过互联网相连的服务器集群在服务器端提供了更强大的计算能力;

    基于上述计算能力的变化,从软件开发模式而言,我们注意到以下六个相关的趋势:

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

    1、因为采用了中间件技术,软件开发团队可以更集中关注于业务逻辑,而可以将许多细节交给中间件来管理,从而大大减少了需要编写的代码行数,也直接导致了软件开发团队的规模变得越来越小,但角色变得越来越专业化(如了解行业的需求分析员,了解中间件技术和领域构架的架构师等);

     2、计算能力的增强,使软件越来越易用,从而使软件变得无处不在,需要的软件开发人员数量急剧增长(组织形态是大量的小规模开发团队);在这一因素以及降低成本的压力下,开发外包变得非常普及;

     3、为了使分布在互联网上系统能够互相协作,SOA成为一个热点;

     4、互联网的普及,将原来分散开发人员聚合在一起,只要有一个合适的基础和好的框架,他们就可以开发出产品级的工具软件(以Eclipse,JBoss,MySQL,Subversion为例),从而开源成为了一种趋势;

    5、B/S结构的系统非常容易升级,这使得软件交付和升级的速度大大加快了(从以年月为单位,到以周天为单位);

    回到正题,那么在这些大的趋势的作用下,软件工程会如何发展呢?我觉得在未来几年我们会看到如下的趋势:

    1、需求工程,渐成热点:专业化的角色,日益复杂的业务创新,全球分布的团队以及互联网级的交付速度,这些都对需求获取的正确性和有效性提出了更高的要求;我预计需求工程的研究和实施会成为近期的热点,其中Use Case技术会被更广泛而正确的应用,而相关工具的研发也会成为热点(如IBM Rational Requirements Composer,,Ravenflow等。)

     用例的优势在于它天生是黑盒的,它用自然语言抽象了用户和目标系统的交互,避免了混入分析、设计和实现细节,以保证用例可以被不懂具体技术的业务及测试人员所真正理解。同时,需求分析员又可以方便地通过用例分析(use case analysis)(即用分析类来试图在理想方式下实现用例),将需求体系精华成分析模型。在这一过程中,需求分析员可以更进一步地完善基于用例的需求体系,而不必担心分析模型会污染需求,从而实现需求与分析的分离及有效互动。

     2、DSSA和MDD,老树新花(基于领域的构架(DSSA)与模型驱动的开发(MDD)):随着软件应用的日益普及,软件已经超出了将手动流程自动化的范畴,而开始成为业务创新的主要推动力。因此,引入捕获特定领域内最先进需求及其实现架构的DSSA成为行业客户的热点之一。而且,DSSA的引入将MDD门槛大大降低了,也使基于DSSA的MDD支撑工具成为可能,从而可以极大地提高开发效率并保证软件质量(例如,Telelogic的Rhapsody就是一个成功的基于实时嵌入式系统构架的MDD工具)。

     3、迭代/敏捷,渐成标准:随着软件交付周期的日益加快,迭代化开发已经成为大多数软件开发团队的必选项。但是迭代对整个团队的需求、架构、协同及测试能力都提出了更高的要求,现在许多开发团队都在试图导入迭代化开发的过程中,敏捷可是被看成迭代化开发的一种导入方式,这不过敏捷的范围其实比迭代化开发更大一些。

     敏捷的三个要素是迭代开发、坦诚合作和自适应性。坦诚合作其实才是敏捷的精髓,如Ivar所说,敏捷其实是有关Social Engineering的。敏捷的主要贡献在于他更多地思考了如何去激发开发人员的工作热情,这是在软件工程几十年的发展过程中相对被忽略的领域。

    4、持续集成,蓄势待发:持续集成是保证迭代化开发质量的主要方式,通过持续集成可以利用自动化的方式来尽量自动地、尽早保证代码质量。随着迭代和敏捷的流行,持续集成相关的工具成为现在市场上的新热点(如持续集成框架IBM Rational BuildForge, 开源软件CruiseControl,代码静态分析工具Klocwork Insight,IBM Rational Software Analyzer等)。

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

    5、基于实践的过程框架,方兴未艾:开发角色的专业化的和分布的全球化都要求软件开发过程更加规范,而敏捷又要求过程必须紧密贴合项目的实际需要,因此传统的大一统的过程无法符合这一需求。新一代的过程将是以实践为核心的,项目可以通过组装所需的不同实践来获得贴近项目要求的过程。IJI(Ivar Jacobson International)的EssWork和IBM Rational的RMC都是新一代的基于实践的过程框架。

     依据过程专家长时间的经验,他(她)们很小心、很仔细地将一个完整的开发过程组件化,从开发过程抽象出一个个可以被单独导入又可以被组装到一起的实践,从而使逐步求精式的过程改进成为可能。对于一个软件组织而言,如果已经建立一个比较成熟的软件开发流程,但觉得这一流程并不适合所有项目的实际需要,那么目前可以考虑的是用实践的方式去重新梳理现有流程,以使项目组能够以实践为单位来组装出切合项目实际的流程;另外,该组织也可以将适用于本组织的业界流行的实践导入到现有流程当中,IJI公司的专家从业界最佳经验中抽取了八个实践,有关信息可访问(http://www.esslab.net:4040/ngp/)。

     6、配置管理,昨日黄花:随着开发团队规模的日益减小,配置管理的复杂性大大降低了,我们注意到越来越多的用户转向使用开源的配置管理工具(如Subeverison,JIRA,hosted-projects等等);未来的配置管理工具更多的以一种全生命周期管理平台(Application Lifecycle Management)的方式出现,弱化了单项的配置管理能力而强调了全流程的整合(如Microsoft VisualStudio Team System和IBM Rational Team Concert等)。

     即便配置管理的复杂性降低了,但它仍然是开发项目管理的最重要的支撑平台之一。目前的重点应该是加强对项目经理进行有关配置管理知识的培训,让他(她)们理解到配置管理能力(如并行开发、基线回退等等)能够如何帮助项目开发过程的,从而使配置管理工具/环境的价值能够得到充分的发挥。

     作为结语,软件工程对软件开发的重要性我无须赘言了。虽然,我上面列出了一些软件工程的热点,但读者一定要仔细分析组织自身特点以确定软件工程的改进步骤,扎扎实实的逐步改进,而不应该盲目地追求热点!

    展开全文
  • 软件测试工程师未来发展前景

    千次阅读 2012-11-06 15:09:39
    经常听到同行的年轻人说测试容易被看成是一种很简单、很没有技术含量的工作。... 微软公司的陈宏刚博士以微软公司为例告诉记者,软件测试工程师的发展途径一般有以下三种:一种选择是走软件测试的技术

     

            经常听到同行的年轻人说测试容易被看成是一种很简单、很没有技术含量的工作。其实不然,要不你可以来试一下。相反,测试是一个具备较强综合能力的人才能进行的工作,否则就只是‘玩玩’而已。上面那图是大体的职业发展方向,不排除发展成为具备了以上好几种专业特点的职业。下面我们来听听别人怎么说的:

      微软公司的陈宏刚博士以微软公司为例告诉记者,软件测试工程师的发展途径一般有以下三种:一种选择是走软件测试的技术路线,成长为高级软件测试工程师,这时他能够独立测试很多软件,再向上可以成为软件测试架构设计师。第二种选择是向管理方向发展,从测试工程师到组长(Lead),再到测试经理(Manager),以至更高的职位。第三种选择是可以换职业,做项目管理或做开发人员都可以,很多测试工具软件开发工程师在写测试软件的过程中,因为开发方面积累了经验,同时对软件产品本身产生了自己的看法,很容易转去做产品编程。

      有关专家指出,软件测试是正在快速发展、充满挑战的领域。尽管现在单机版桌面软件的测试已经成熟了很多,但对于网络时代的来临,包括知名跨国公司在内的大公司对基于网络的测试也没有一套完整的体系,也是处于探索中,所以说这一行业所面临的机遇与挑战是共存的。

      曾在微软亚洲工程院测试组工作过、有三年软件测试经验的软件测试开发工程师刘俐以其自身经验告诉记者,以微软亚洲工程院为例,那里的测试工程师需要和开发工程师、规程经理一起合作,从产品定义到产品开发再到产品维护,在整个产品生命周期中不断贡献各种建议、测试文档以及测试数据。在这样一个开发团队中,测试工程师的地位和开发工程师、规程经理是一样的———是软件开发团队中不可或缺的部分。所以她个人认为,测试工程师是一个对专业技术和自身素质都有一定要求的职业。一个优秀的软件测试工程师无论在何处都是千金难求的。

      她同时指出,正因为测试工程师与开发工程师的同等重要性,使得软件测试工程师和开发工程师的录用标准基本类似,但是由于国内的软件测试职业兴起的时间不长,社会对测试人才的供给严重不足,这就出现了所谓的软件测试工程师 “千金难求”的现象。她认为一个软件测试工程师一般会与开发工程师配合工作,负责开发相应产品模块的自动化测试工具、测试用例、编写测试计划、执行测试等工作。而一般企业软件测试工程师岗位也可以根据能力和经验分为不同的等级,像在微软这样的成熟大公司中,从最初级测试工程师到高级的软件测试工程师之间可以有十几个晋升的职业等级。

    展开全文
  • 软件工程未来发展趋势(一)

    千次阅读 2008-10-25 21:30:00
    软件工程未来发展趋势(一) 这篇文章的主体是讨论软件工程未来发展趋势,但是软件工程的发展不可能是孤立的,所以我们首先需要思考一下计算模型和软件开发本身的变化和趋势,再由此推测软件工程的发展趋势。...
  • 对于软件工程的历史及现状及未来发展前景的详细的描述
  • 软件工程发展前景

    2019-10-19 10:26:02
    软件工程专业培养适应计算机应用学科的发展,特别是软件产业的发展,具备计算机软件的基础理论、基本知识和基本技能,具有用软件工程的思想、方法和技术来分析、设计和实现计算机软件系统的能力,毕业后能在IT行业、...
  • 论文一篇-软件工程未来发展

    千次阅读 2014-03-21 19:14:39
    摘要:软件是现代科学技术发展的产物,随着其规模和复杂性的提高、适用范围的扩大,需要从技术和管理两方面对软件开发过程进行控制,本质是希望阮籍看系统...1.软件工程概述 1.1软件危机 最初,计算机应用与军用淋雨
  • 软件工程未来发展趋势(二)

    千次阅读 2008-09-17 09:25:00
    回到正题,那么在这些大的趋势的作用下,软件工程会如何发展呢?我觉得在未来几年我们会看到如下的趋势:l 需求工程,渐成热点:专业化的角色,日益复杂的业务创新,全球分布的团队以及互联网级的交付速度,这些都...
  • 软件工程发展趋势

    2020-12-05 23:51:06
    本文的意图是讨论软件工程未来发展趋势,但是软件工程的发展不可能是孤立的,所以我们首先需要思考一下计算模型和软件开发本身的变化和趋势,再由此推测软件工程的发展趋势。 从计算模型而言,应该来讲,传统的冯....
  • 软件工程的研究现状及存在问题 软件工程发展状况和趋势 我对软件工程的认识
  • 可以说C++软件工程师发展前景还是不错的,下面就给大家具体介绍一下。 与Java和.NET比C++是一种应用范围更广、运作效率更高的编程语言,软件开发行业一直流传着一句话:没有学过C++就不是真正的程序员,没有掌握C++...
  • 中国近几年软件业迎来了一个超高速发展期,其中软件测试发展也成为业内关注的话题,越来越多的高校毕业生投入到软件测试行列中,这表明软件测试有可能会成为下一个IT行业的发展风口。除了软件测试人员数量需求和技能...
  • C++软件工程师发展前景 目前国内的嵌入式开发非常火,而C++主要用于底层的嵌入式开发、驱动开发等,也用于WINCE等嵌入式系统的应用软件开发。可以说C++软件工程师发展前景还是不错的,下面就给大家具体...
  • 关键字实践软件工程 软件工程 互联网 案例分享 有效性 适用性前言笔者认为“实践软件工程”(Practical Software Engineering)将成为未来40年软件工程发展的大趋势。实践(Practical)一词的含义具有双重含义。一...
  • 注:此文由Yoyo翻译自QASymphony网站上的一篇文章。 ... ...我们访问了12位在业界备受尊敬的、经验丰富的测试领域专家,通过和他们的谈话,我们总结出了软件测试近些年的变化及未来发展趋势。...
  • 从人类的发展史看软件及软件工程未来 摘 要: 透过人类数千万年的发展史,可以看到一条清晰的、刻在时间轴上的演变脉络。该脉络不仅诉说着人类过去...本文正是从这个广阔的视角去看待软件与软件工程未来前景,并
  • 人只有不断的学习才能顺应时代的发展,才能在激烈的竞争中站稳脚步,掌握“软件开发未来发展趋势”和开发人员的饭碗息息相关,未来到底会怎样呢?作为一名从业十多年的软件工程师,分享下自己的观点,希望能对即将踏...
  • 本资源里面列举了五篇知名人士撰写的软件工程未来发展趋势及大学应该如何培养使用社会发展的合格软件工程师。
  • 我对软件行业的认识。众所周知,计算机已经是现代人生活的必需品。无论是工作、学习、生活、娱乐,我们的生活每时每刻都能见到它的踪影。大到航天飞机的研制,原子弹、氢弹的引爆,小到一个小小的电子表,都需要会...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,958
精华内容 19,583
关键字:

软件工程未来发展趋势