zoukankan      html  css  js  c++  java
  • 软件架构的历程

    软件架构的历程

        计算机科学的发展历程可以追溯到第一代电子管计算机(1945年~1956年)。1946年2月15日世界上第一台重达30顿的计算机ENIAC(Electronic Numerical Integrator and Computer)正式在费城公布于世,它标志着现代计算机科学的诞生。
        相比来说,计算机软件架构的发展就更晚。从20世纪80年代晚期开始,整个计算机科学界为了应对大规模系统设计所带来的复杂度,才逐渐开始了软件架构的研究工作。因为先前的系统架构和设计是严重依赖相关人员各不相同的实践经验和观察,并不能客观地衡量和控制架构活动的质量。
        历经了十几年的不懈努力,软件架构的研究逐步走向了成熟。当今较为成熟的架构技术已经包含了很多方面的研究成果:标注语言的使用、大量的设计工具、问题分析技术、架构设计技术和手段、复杂系统设计和开发的指南等。同时当今的架构技术已经与其他相关领域的研究成果进行了很好的融合:软件产品家族(Software Product Family)的研究、领域驱动(Domain Driven)的设计技术、基于构件重用的技术等。这些成果的结晶,成为当今复杂系统设计强有力的武器,确保系统设计的质量受到严格的控制。
        在我们系统化地回顾整个这十几年人类在软件架构方面的伟大成就之前,我们要先介绍一种技术成熟度的评估模型。因为从讲求科学性的工程的角度上来看,一定要首先客观地回顾一个技术的发展历程,然后再科学化地衡量该技术的成熟度。这样才能真正保证我们能够全面掌握该技术的发展动态,为自己在该技术领域的研究努力进行定位。
        业界一般能够系统化地评估一个技术成熟度的模型很少。1985年,由Samuel Redwine和William Riddle在IEEE-CS举办的“第八界世界软件工程大会”上提出的Redwine/Riddle模型,堪称是当今最为广泛应用的经典评估模型。Redwine/Riddle模型的经典之处在于,它提出了“技术的目标”的重要概念。它是一个以目标为驱动的技术评估模型,能够很好地度量一个技术是否按照精确界定的轨迹向总体目标靠拢。只有这样,我们才能清晰地了解该技术的成熟度。
        通过利用该模型,我们可以对一些重要的系统及软件技术进行分析和评估,从而最终发现它们发展和演化的规律。Samuel Redwine和William Riddle利用该模型进行的评估研究结果表明:一个技术的成熟周期是15年至20年。也就是说,一个新的技术从最初概念的形成和确立,到应用及大规模实践,一般需要经历15年到20年的发展历程。Samuel Redwine和William Riddle通过自己的研究,界定出如下6个典型的发展阶段。
        基础研究阶段:调研基本思想和基础概念;分析和组织要研究的问题的结构;界定研究方向的主要框架。概念确立阶段:不拘形式地沟通,形成统一的基本思想和概念;组织和确立研究团队;密切配合解决具体的各个子问题;不断地提炼和完善所研究问题的结构。
        探索发展阶段:探索新技术的应用领域;逐步澄清初步技术应用所带来的底层问题和思想;归纳和总结技术应用所带来的初步经验并使新技术更加完善和通用。
        内部改进拓展阶段:将新技术的应用逐步拓展到相关领域;使新的技术面对解决实际问题的考验;从而使新技术逐渐完善和稳定;同时开发培训材料,通过培训展示新技术研究结果的价值。
        外部改进拓展阶段:与内部改进和拓展相似。不同的是将新技术的应用拓展到更为广泛的领域;让更多工业或应用领域的相关人员参与技术的实践应用。验证该技术的价值和适用性;同时参考反馈信息进一步充实该技术、修改细节问题使其成为完整的系统级解决方法。
      普及应用阶段:开发出具有产品级质量的产品;使技术具有严格的版本特征;将新技术商业化,并为其进行市场开拓,从而扩大使用该技术的用户范围;当然,使新技术逐渐标准化也是一个重要的步骤。
    Redwine/Riddle模型带来的研究统计数据表明,15年到20年的新技术周期是最常见的。其中有10年的时间主要集中在概念确立阶段和探索发展阶段(也许“基础研究阶段”持续更长时间,那是由于很难界定这个阶段真正开始的时间)。研究表明,用在这两个阶段如此长时间的原因,是因为只有通过日积月累的验证才能真正让新技术的研究人员完全调整合适研究的策略和步骤。
        如果应用Redwine/Riddle模型来分析软件架构的发展历程,我们就会发现:从时间这个维度上来讲,软件架构的发展和完善并不像Redwine/Riddle模型介绍的具有那么良好的线性:六个不同阶段演化的推进速度各不相同,从一个阶段的结束平滑地过渡到另外一个阶段的开始也不明显。但是,从图1-9中我们可以看出,Redwine/Riddle模型在描述软件架构技术的演化过程中依然非常适用。

  • 相关阅读:
    Mac php使用gd库出错 Call to undefined function imagettftext()
    centos 使用 locate
    Mac HomeBrew 安装 mysql
    zsh 命令提示符 PROMPT
    新的开始
    Java 面试题分析
    Java NIO Show All Files
    正确使用 Volatile 变量
    面试题整理 2017
    有10阶梯, 每次走1,2 or 3 阶,有多少种方式???
  • 原文地址:https://www.cnblogs.com/broadview/p/1445842.html
Copyright © 2011-2022 走看看