zoukankan      html  css  js  c++  java
  • 一线架构师指导指南阅读笔记1

    通过阅读一线架构师实践南这本书,我对架构的整个脉络也有了一个比较详尽的了解,我希望通过这篇文章跟大家交流一下我的心得体会

    首先插一句话,阐述一下什么是软件过程:六个基本活动:问题提出,软件规格需求说明,软件设计,软件实现,软件确认,软件演化。软件设计又分为系统设计(建立系统的体系结构等)和详细设计(细化原有的分析对象)。这笼统的过程就是架构师工作的流程。

    架构设计的方法体系:

    3个阶段,1个贯穿环节:

    “Pre-architecture”阶段(简称PA阶段)

    “Conceptual Architecture”阶段(简称CA阶段)

    “Refined Architecture”阶段(简称RA阶段)

    对非功能目标的考虑贯穿整个过程

    Pre-architecture阶段:

    主要是构建一个二维矩阵

    1步:需求结构化

    2步:分析约束影响

    3步:确定关键质量

    4步:确定关键功能

    四大类约束:

    1.业务环境的约束(客户或出资方)

    上线时间?预算限制?集成需求?

    业务领域?业务规则或业务限制?

    法律法规或专利的限制?

    2.使用环境的约束(用户)

    何阶层用户?年龄段和偏好?多个国家?

    是否存在电磁干扰或车船移动

    3.构建环境的约束(开发者和维护人员)

    技术水平,城市分布,磨合程度?

    开发管理程度?

    源代码保密?

    4.技术环境的约束

    技术平台、中间件、编程语言的流行度,认同度,优缺点?

    技术发展趋势?

     

    确定关键质量属性的原则:严格程度符合领域与规模特点

    关键质量属性个数根据项目、产品、平台不同而不一样

    确定关键功能的4条规则:

    核心功能

    必做功能

    高风险功能

    独特功能(覆盖上述未覆盖的职责)

    Conceptual Architecture:

    Conceptual-Architecture阶段任务:重大需求塑造做概念架构。

    概念架构的定义:满足“架构=组件+交互”的基本定义;对高层组件的“职责”进行笼统界定,并给出高层组件的相互关系;不应涉及接口细节。

     

    概要架构针对重大需求、特色需求、高风险需求,给出高层次的解决方案

    基于关键功能

    (而不是对所有功能)、借助鲁棒图

    (而不是序列图)进行初步设计。

    Refined Architecture阶段:落地的5视图方法

    5视图方法提出,每个视图,一个思维角度

    逻辑视图

    物理视图

    开发视图

    数据视图

    运行视图

    这个过程需要细化架构,而细化的过程中我们往往需要参照以下的经验:

    划分子系统:分层的细化

    划分子系统:分区的引入

    划分子系统:机制的提取

    接口的定义:协作决定接口

    选用序列图:杜绝协作图

    -接口图:从结构到行为的桥

    灰盒包图:描述关键子系统

    循序渐进的螺旋思维

    设计模式: 包内结构

    设计模式:包间协作

    至此,当Conceptual Architecture:阶段完成时,我们的架构过程初步工作就算是大功告成了。

  • 相关阅读:
    javascript命名规范
    angularjs指令参数transclude
    angular中的compile和link函数
    angularjs中的directive scope配置
    sublime text3同时编辑多行
    jquery中on/delegate的原理
    defered,promise回顾
    导航栏滚动到顶部后固定
    angularjs揭秘
    $stateParams
  • 原文地址:https://www.cnblogs.com/jyt123/p/13162383.html
Copyright © 2011-2022 走看看