2018第32周总结

doit8791 doit8791     2022-12-26     256

关键词:

本周主要看了《一线架构师实践》与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种策略:独立、集中、分区、复制、子集、重组;

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

 

2018-2019-120165226《信息安全系统设计基础》第8周学习总结

2018-2019-120165226《信息安全系统设计基础》第8周学习总结目录一、教材学习内容总结二、l练习三、代码托管与统计四、学习进度条五、参考资料一、教材学习内容总结套接字接口基于套接字接口的网络应用概述(https://images2017.cnbl... 查看详情

201723122017-2018-2《程序设计与数据结构》第8周学习总结

201723122017-2018-2《程序设计与数据结构》第8周学习总结教材学习内容总结第十章主要讲了多态,排序和搜索三个大部分,因为有四则运算的原因,第十章的学习时间相对较少,只能利用课上时间,以及少量的课下时间草草完成。... 查看详情

暑假第二周进度总结(2018.7.16-2018.7.22)

本周总结看了高数第二章,《大道至简》阅读完成《面对对象程序设计》三四章阅读完成《Java从入门到精通(第3版)》读了前三章完成面向对象的实验任务1.2总结:  学习时间:17h      打代码时间:4h... 查看详情

201723072017-2018-2《程序设计与数据结构》第10周学习总结

201723072017-2018-2《程序设计与数据结构》第10周学习总结教材学习内容总结第十三章教材学习中的问题和解决过程问题1:对流的概念不太清楚。问题1解决方案:通过查阅网上的资料对流有了大概的了解。流像是一个管道连接着输... 查看详情

学号2017-2018-20172309《程序设计与数据结构》第4周学习总结

学号2017-2018-20172309《程序设计与数据结构》第4周学习总结教材学习内容总结尽量简单的总结一下本周学习内容尽量不要抄书,浪费时间看懂就过,看不懂,学习有心得的记一下教材学习中的问题和解决过程问题1:XXXXXX问题1解决... 查看详情

2018-2019-120165201《信息安全系统设计基础》第6周学习总结

2018-2019-120165201《信息安全系统设计基础》第6周学习总结内容待完善~~~教材学习内容总结尽量简单的总结一下本周学习内容尽量不要抄书,浪费时间看懂就过,看不懂,学习有心得的记一下教材学习中的问题和解决过程(一个模... 查看详情

2018-2019-120165201《信息安全系统设计基础》第1周学习总结

2018-2019-120165201《信息安全系统设计基础》第1周学习总结内容待完善~~~教材学习内容总结尽量简单的总结一下本周学习内容尽量不要抄书,浪费时间看懂就过,看不懂,学习有心得的记一下教材学习中的问题和解决过程(一个模... 查看详情

2018-2019-120165222《信息安全系统设计基础》第1周学习总结

2018-2019-120165201《信息安全系统设计基础》第1周学习总结教材内容总结 GCC编译1.单文件预处理: gcc-Ehello.c-ohello.i 编译: gcc-Shello.i-ohello.s 汇编: gcc-chello.s-ohello.o 链接: gcchello.o-ohello  查看详情

2018-2019-120165212《信息安全系统设计基础》第1周学习总结

 2018-2019-120165212《信息安全系统设计基础》第1周学习总结教材内容总结 GCC编译1.单文件预处理: gcc-Ehello.c-ohello.i 编译: gcc-Shello.i-ohello.s 汇编: gcc-chello.s-ohello.o 链接: gcchello.o-ohell 查看详情

2018-2019-120189221《文献管理与信息分析》第3周学习总结

2018-2019-120189221《文献管理与信息分析》第3周学习总结第三周RSS——同步追踪世界最新资讯我们需要怎样的信息获取方法把我们的精力花在机器人无法替代的地方学习我们知道自己不知道的内容学习我们不知道自己不知道的内容... 查看详情

2018暑假第五周总结

这周学会了Debug的调试,通过Debug调试可以清楚的看到各种代码错误和BUG。F5:单步跳入,进入本行代码中执行。F6:单步跳过,执行本行代码,跳到下一行。F7:单步返回,跳出方法。F8:继续,执行下一个断点。Ctrl+R:执行到光... 查看详情

2018-2019-120165316《信息安全系统设计基础》第1周学习总结

2018-2019-120165316《信息安全系统设计基础》第1周学习总结教材学习内容总结Chapter1信息就是位+上下文。预处理阶段(.c->cpp->.i),编译阶段(.i->cll->.s),汇编阶段(.s->as->.o),连接阶段(.o->ld->可执行)。了解... 查看详情

230072017-2018-2《程序设计与数据结构》第2周学习总结

学号2017-2018-2《程序设计与数据结构》第2周学习总结教材学习内容总结在本章中对Java的一些数据类型有了一些了解。通过教材中例题的练习也能自主完成后面的习题教材学习中的问题和解决过程问题1:在教材43页中intcount,minimum=... 查看详情

2018-2019-120165329《信息安全系统设计基础》第4周学习总结

2018-2019-120165329《信息安全系统设计基础》第4周学习总结教材学习内容总结Y86-64指令:Y86-64指令是x86-84指令集的一个子集。它只包括8字节整数操作。有4个整数操作指令:addq、subq、andq和xorq。有7个跳转指令:jmp、jle、jl、je、jne... 查看详情

2018-2019-120165236《信息安全系统设计基础》第5周学习总结

2018-2019-120165236《信息安全系统设计基础》第5周学习总结 一、教材学习内容总结1、存储技术随机访问存储器:静态RAM(SRAM):SRAM将每个位存储在一个双稳态的(bitable)存储器单元里。用来作为高速缓存存储器,既可以在CPU芯片... 查看详情

2018第31周总结

网络免费API接口,在个人开发相关demo应用时练手试用,如果做的好将demo发布出去流量很大超过免费接口使用数限制,再考虑购买收费的服务。高可用高并发用到的九种技术:其实分层架构、冗余、异步处理,安全、缓存5项技术... 查看详情

#2018-2019-120165206《信息安全系统设计基础》第1周学习总结

2018-2019-120165206《信息安全系统设计基础》第1周学习总结教材学习内容总结-gcc编译:预处理:gcc-Ehello.c-ohello.i编译:gcc-Shello.i-ohello.s汇编:gcc-chello.s-ohello.o链接:gcchello.o-ohello-gdb调试:编译生成可执行文件:gcc-ghello.c-ohello进入gd... 查看详情

2018-2019-120165226《信息安全系统设计基础》第9周学习总结

2018-2019-120165226《信息安全系统设计基础》第9周学习总结目录一、教材学习内容总结二、练习三、代码托管与统计四、学习进度条五、参考资料一、教材学习内容总结虚拟内存虚拟内存重要性(为什么需要程序员理解它?):虚... 查看详情