zoukankan      html  css  js  c++  java
  • 2018第32周总结

    本周主要看了《一线架构师实践》与ADMEMS相关的内容,里面有很多理论对日常工作中的架构实践是有帮助的,应该努力去把学到的认同的理论在实践中检验,否则没卵用。

    ADMEMS是Architecture Design Method has been Extended to Method System的简称,是由CSAI顾问团架构设计专家组于2009年11月在第六届中国软件大会上公开发布的一个软件架构设计方法。《一线架构师实践》一书详细的介绍了ADMEMS体系。它将软件架构的过程分为三个阶段和一个贯穿环节,进而覆盖“需求进,架构出”的架构设计的完整工作内容。基中Pre-Architecture阶段,意在全面理解需求,从而把握需求特点,进而确定架构设计驱动力。而Conceptual Architecture阶段所关注的是如何通过关键功能、关键质量及业务需求和约束来塑造概念架构。Refined Architecture阶段,则主要通过5视图方法进行细化架构的设计。而非功能需求不可能“速战速决”,因此,对于非功能需求的关注会贯穿架构设计的整个过程。

    架构阶段

    目标

    方式方法

    现实工作场景

    预架构阶段

    全面理解需求;需求结构化,摒弃“需求列表”,建立二维需求观(ADMEMS矩阵)。

    使用ADMEMS矩阵方法,捋清需求间关系和发现衍生需求。

    1、与人:与项目经理、需求分析师等内部需求人员了解需求;与客户了解需求(不建议架构师做需求分析师角色)。
    2、与物:了解《需求规格说明书》等需求文档。"
    3、对需求有什么问题,反馈给售前或销售,可能会参与拜访客户或电话会议。
    4、销售或售前有时会要求提供一个大致的工作量,以便他们初步评估项目可行性。

    概念架构

    高层组件及其关系

    1、初步设计,基于关键功能,借助鲁棒图进行以发现职责为目的的初步设计(不是必须)。
    2、高层分割,将复杂系统切分为多个二级系统或多个子系统。
    3、考虑非功能需求,采用ADMEMS推荐的目标-场景-决策表。

    1、参与内部讨论:项目可行性分析、讨论,从需求、技术、人力、风险等角度提供建议。
    2、项目投标准备:参与投标团队的技术方案编写,编写系统架构章节,解决招标书上技术问题的问答。
    3、参与项目讲标:作为讲标团队成员参与项目讲标,负责技术问答环节的应对。

    细化架构

    5视图法

    在项目概要设计阶段,进行架构设计,制定规范和约定,为详细设计提供指导。

    实现

    详细设计
    编码实现

    架构设计形成详细设计文档

    在项目实现阶段,对开发人员提供规范指引和技术支持。

    准备架构阶段的目标是理解需求,建立需求大局观,确认架构设计方向。具体分为四个步骤:

    1. 需求结构化;
    2. 分析约束影响;
    3. 确定关键质量;
    4. 确定关键功能。

    在需求结构化时可采用ADMEMS矩阵,又称“需求层次——需求方面”矩阵,将需求按业务、用户、开发分层,然后在按需求、质量、约束方面分类,从而建立“二维需求观”。

    概念架构阶段目标是针对重大、特色、高风险需求,给出高层的解决方案,形成稳定的高层架构设计成果。具体分为三个步骤:

    1. 初步设计:基于关键功能,借助鲁棒图进行以发现职责为目的的初步设计;
    2. 高层分割:对系统进行高层切分为多个二级子系统或具体子系统,实践中常用方式为分层,如逻辑层、物理层等;
    3. 考虑分功能需求:通常采用的方法是目标——场景——决策表。

    细化结构阶段目标是输出系统最终的细化的架构设计成果物,用于指导开发实践。主要通过5视图法对细化架构进行实践,不同视图源于不同的思维角度及不同的技术关注点,通过错落有致地将众多技术关注点划分“群落”,“群落”内高聚合,“群落”间松耦合。具体使用的5视图法如下:

    1. 逻辑架构:关注如何划分子系统、如何定义接口、如何运用质疑驱动的思维套路等;
    2. 物理架构:关注硬件选择与物理拓扑、软件到硬件的映射关系、方案优化;
    3. 运行架构:关注确定引入哪些控制流、确定每条控制流的任务、处理相关问题、进一步考虑控制流之间的同步关系等;
    4. 开发架构:关注将“逻辑职责”映射为“程序单元”、开发技术选型、“程序单元”间的关系等;
    5. 数据架构:关键是确定数据分布方案。数据分布的6种策略:独立、集中、分区、复制、子集、重组;

    非功能目标的设计环节。非功能目标的设计是以场景技术为核心手段、以目标-场景-决策表为思维工具致力于支撑非功能目标的理性设计过程。经过非功能目标的设计,将使得架构设计更有针对性、可操作性更强、避免过度设计,同时便于系统升级时参考。

  • 相关阅读:
    testd3p
    my open音频的
    1
    one play
    ndk ffmpeg实践2
    ndk ffmpeg实践
    Mac ndk21 交叉ffmpeg目前
    ffmpeg交叉
    and cmake 链接库及播放例子 及读文件
    更正之前《登录小案例》密码错3次15分钟内不准登录
  • 原文地址:https://www.cnblogs.com/doit8791/p/9462339.html
Copyright © 2011-2022 走看看