zoukankan      html  css  js  c++  java
  • 《一线架构师实践指南》阅读笔记——Pre-architecture(预处理阶段)

    Pre-architecture(预处理阶段)

      引用文章开头的引用“凡事预则立,不预则废。——孔子”,就是说凡事提前准备了,就能成功,否则就会失败,在软件架构设计方面也是同样的道理。

      什么是Pre-architecture

      Pre-architecture是架构设计的最前期阶段,包括:理解需求、建立需求大局观、确定架构设计方向等。它虽然是铺垫性质的阶段,但是对架构实践而言意义重大。所谓“磨刀不如砍柴工”。

      Pre-architecture帮助架构师建立需求理解的大局观,把所有需求定位于ADMEMS二维开发矩阵之中(即业务级、用户级和系统级三级需求和功能、质量属性、约束3类需求之中)。

      遗漏需求往往是架构设计失败的重要原因,用户经常得不到真正满足他们需求的系统,已经成为整个软件行业界一个严峻问题。从需求转入设计时,因为制定方案过程的复杂性,会激增出大量的衍生需求,设计需求是原始需求的50倍之多。ADMEMS矩阵方法让一线架构师告别拙劣的“需求列表”方式,可以体现更复杂、更本质的需求结构,帮助架构师更全面地看待需求、避免遗漏非功能需求,降低架构失败的风险。

      “唯经验论”是错误的,架构师不仅应具有一定的经验,还必须掌握超越具体项目的、更普遍意义的方法和技能。

      “目标不变论”是错误的,架构设计的目标必然是随领域不同、规模不同、条件不同而变化的

    不同的需求在以不同的原理影响着架构设计:

      功能 是发现职责的依据,每个功能都是由一条“职责协作链”完成的,架构师通过为功能规划自责协作链将职责分配到子系统、为子系统界定接口、确定基于接口的交互机制,来推动架构设计的进行。

     

      质量 是完善架构设计的动力,基于当前架构设计的中间结果,进一步考虑质量要求,对架构设计的中间结果进行细化调整,一步步使架构完善起来。

      约束 对架构设计的影响分为几类:直接约束设计决策的约束,转化为功能需求的约束,转化为质量属性需求的约束。

     

    关键需求决定架构,其余需求验证架构:

      功能需求做减法,所有功能中挑选出一个“关键功能子集”作为架构设计驱动力的第1部分;

      质量属性需求做减法,确定架构设计重点支持哪些质量属性,这作为架构设计驱动力的第2部分;

      约束性需求做加法,要充考虑需求方及业务环境因素、用户群及使用环境因素、开发方及构建环境因素、业界当前技术环境因素4类约束”,作为架构设计驱动力的第3部分。

    Pre-architecture阶段的4个步骤:

    1、需求结构化,首先借助二维矩阵,梳理架构影响因素;

    2、分析约束影响,识别隐含的需求(例如上面提到的转化为其他需求的约束

    3、确定关机质量,明确关键质量之间的优先级;

    4、确定关键功能,有针对性的分配架构时间。

  • 相关阅读:
    [转]Session and application state in ASP.NET Core
    [转]Asp.net Core中使用Session
    [转]Cookie/Session机制详解
    [转] asp.net core Introducing View Components
    [转]ASP.NET Core 十种方式扩展你的 Views
    [转]asp.net core视图组件(ViewComponent)简单使用
    [转]ASP.NET Core集成微信登录
    [转].Net Core上用于代替System.Drawing的类库
    [转]【无私分享:ASP.NET CORE 项目实战(第十四章)】图形验证码的实现
    [转]在离线环境中发布.NET Core至Windows Server 2008
  • 原文地址:https://www.cnblogs.com/jmdd/p/12671618.html
Copyright © 2011-2022 走看看