1、何时开始架构分析?

最好在第一次迭代前开始。因为,架构分析的失败会导致高风险。如:必须支持英语、在一秒响应时间内支持500个并发事务。
UP是迭代和进化的(不是瀑布式的),所以架构分析和开发工作齐头并进,一旦高风险问题没提前提出,优先级不高,会导致高风险。

2、变化点&进化点

变化点:原来没想到,新加或修改或删除的。如:必须支持多个税金计算接口
进化点:原来想到了,今后可能会发生。

这2点会导致架构设计中,事先决定好采用何种设计模式。例如:对于变化点,采用Decorator等适合的模式;对于进化点,事先设计设计模式,如多个税金接口可采用Facade、Strategy等模式。

总体原则就是,面向接口编程,做到未雨绸缪。对于变化点,不知道以后会发生什么变化,因此更要面向接口编程,利于以后的扩展实现。我认为:

只针对核心业务或复杂业务设计接口即可

3、什么是架构分析?

是在功能性需求(例如处理销售等)的语境中,识别解决系统非功能性需求(如安全需求)的活动。包括识别变化点和最具可能性的进化点。

常见问题:

1)、可靠性容错需求如何影响设计?如:那个一个远程服务(如:税金计算器)需要容错到本地?为什么?本地与远程的差异在哪儿?

2)、技术选型,采用开源构件还是收费的?

3)、可适应性和可配置性需求如何影响设计?如:客户可能经常改什么参数值?业务规则是否经常变化?从而决定配置参数是否写入配置文件中,是否采用规则引擎实现动态业务。

4、架构分析的步骤是什么?

第一步:识别和分析对架构有影响的非功能性需求(架构因素)。架构因素,参见《FURPS+与补充性规格说明

初始阶段:在补充性规格说明或用例中粗略的记录部分此类需求。
细化阶段早期:更仔细的对这些需求做调查

第二步:解决以上非功能性需求。(架构决策)

A、删除需求
B、定制解决方案
C、终止该项目
D、雇佣一个专家

UML-架构分析-基础的更多相关文章

  1. Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍

    系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...

  2. 推荐一本书:《UML面向对象建模基础》

    http://www.cnblogs.com/onlytiancai/archive/2006/10/13/528205.html 以前对UML呀,感觉用不上,不知道都干啥的,也就是知道有个用例图.类 ...

  3. 性能测试知多少---系统架构分析 转自https://yq.aliyun.com/articles/35147?spm=5176.100239.blogcont24251.8.lS96At

    摘要: 有些事儿一旦放一放就难再拾起来,突然发现<性能测试知多少>这个系列两月没更新,关键时我都不知道啥时候放下的,总容易被各种技术所吸引走,如饥似渴的想学更多的东西,这几天一直有朋友问我 ...

  4. Deep Learning论文笔记之(六)Multi-Stage多级架构分析

    Deep Learning论文笔记之(六)Multi-Stage多级架构分析 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些 ...

  5. 分布式MySQL数据库TDSQL架构分析

    摘要:腾讯计费平台部为了解决基于内存的NoSQL解决方式HOLD平台在应对多种业务接入时的不足.结合团队在MySQL领域多年应用和优化经验,终于在MySQL存储引擎基础上,打造一套分布式SQL系统TD ...

  6. 【.NET Core项目实战-统一认证平台】第一章 功能及架构分析

    [.NET Core项目实战-统一认证平台]开篇及目录索引 从本文开始,我们正式进入项目研发阶段,首先我们分析下统一认证平台应该具备哪些功能性需求和非功能性需求,在梳理完这些需求后,设计好系统采用的架 ...

  7. SLG手游Java服务器的设计与开发——架构分析

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  8. HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性、非功能性、关键约束)-下篇

    一.开篇 上一篇<HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性.非功能性.关键约束)-上篇>我们详细分析了在架构分析过程中我们需要注意的内容,架构过程的方法论及 ...

  9. tomcat架构分析(connector BIO 实现)

    出处:http://gearever.iteye.com 在tomcat架构分析(概览)中已经介绍过,connector组件是service容器中的一部分.它主要是接收,解析http请求,然后调用本s ...

  10. 基于React的PC网站前端架构分析

    代码地址如下:http://www.demodashi.com/demo/12252.html 本文适合对象 有过一定开发经验的初级前端工程师: 有过完整项目的开发经验,不论大小: 对node有所了解 ...

随机推荐

  1. Ubuntu 1804 进入紧急模式

    进入系统引导前,长按shift键:     选择第一条,按e进入编辑     添加完成后,只需按下 CTRL+x 或 F10 即可继续启动救援模式         接下来,输入以下命令将根 (/) 文 ...

  2. docker 构建php-fpm IMages(dockerfile)

    好久没写blog   做什么?   复习nginx  zabbix  docker-compos mariadb  学习 jenkins ansible ELK  k8s (kubeadm)  好了也 ...

  3. 使用 mtd-utils 烧写Arm Linux 系统各个部分

    有关博客:<Arm-Linux 移植 mtd-utils 1.x>.<mtd-utils 的 使用> 背景: 作为一项技术储备,可用于增强系统可维护性. 要求: 要求主板以mt ...

  4. ExcelPackage导入导出,命名空间一定要是EPPlus

    1.引入EPPlus.dll,旧版的是OfficeOpenXml.dll,最好使用EPPlus2.调用 string path = UploadExecl(batchUpload.BinaryExce ...

  5. Vulkan 之 Debugging

    1.可以用validation layers 进行验证: 2.Snapdragon Profiler 使用说明

  6. 一百一十一、SAP的OO-ALV之五,显示ALV表格

    一.在屏幕里面有2部分,(PROCESS BEFORE OUTPUT 用于显示, PROCESS AFTER INPUT用于数据处理).我们创建的display_alv函数, 二.display_al ...

  7. Java 归并排序

    package cookie; public class MergeSort { void mergeSort(int[] a, int[] temp, int left, int right) { ...

  8. (java) webdriver 启动firefox driver时,加载firebug的扩展

    去网上下载一个firebug.xpi(对应版本, 我的ff是17,可以使用firebug-1.11.4.xpi,最好使用非firefox浏览器下载,不然提示你直接安装到firefox) @Before ...

  9. javascript中的私有作用域

    我们知道js中所有的块级作用域都是无效的,块级作用域内的变量,在外部仍然可以被读取,其实是申明在外部的.如何实现变量的私有化,只在块级作用域起效,避免污染全局的变量呢.而且,挂载在全局的变量很难被回收 ...

  10. 汇编,寄存器,内存,mov指令

    一.代码 和 汇编 和 二进制之间的关系 二.复习一下计算机组成原理的知识 1.寄存器 计算机中有三个存储 32位cpu提供的寄存器有三种类型8位 16位 32位 64位的只是32位的扩展 并且程序大 ...