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. JS - 获取页面滚动的高度

    document.documentElement.scrollTop||document.body.scrollTop

  2. Arduino nano的bootloader文件烧录

    1.买了了nano还没用就用 avrisp烧录器给烧了其他程序,仅仅是的avr单片机了:2.将他恢复成Arduino nano吧. 在Arduino软件安装目录中的hardware\arduino中. ...

  3. 在远程服务器上执行本地的shell脚本

    在远程服务器上执行本地的shell脚本 [root@localhost zzx]# sh echoip.sh 192.168.67.131[root@localhost zzx]# ssh root@ ...

  4. 深度解析Critical Thinking的四个阶段

    关于批判性思维我们一直都在讨论学习,但是小编相信没有几个留学生敢说自己有Critical Thinking,但它又是essay写作中必须存在的.那么批判性思维需要怎么培养呢?今天小编就给同学们分析一下 ...

  5. 使用docker快速体验kali linux

    环境 运行在 64位 机器 企业版的 win10 系统 下载镜像 首先搜索docker download 去官网下载docker:https://www.docker.com/products/doc ...

  6. 箭头函数this

    箭头函数的this值是由包含它的函数(非箭头函数)来决定的,与包含的函数的this指向一致,如果包裹它的不是函数(直到找到最外层)则this指向全局对象 并且箭头函数的this是固定的,由定义它时所在 ...

  7. Java中的日期表示类

    一.概述 Java中的日期类设计的比较失败,刚开始使用Date来计算时间,后来大部分Date类的方法都过时了:想用Calendar类代替Date类,然而Calendar类也是不尽如人意.下面简单介绍下 ...

  8. CF1209A Paint the Numbers

    You are given a sequence of integers a1,a2,…,an. You need to paint elements in colors, so that: If w ...

  9. 使用TestNG-xslt美化测试报告

    用TestNG测试后,自动会生成html的测试报告,不过相信大家都有感觉,自动生成的测试报告太难看了,所以我们又用了ReportNG来美化它.在 这里给大家再介绍一下比reportNG还要稍稍美观一点 ...

  10. 【程序员面试金典】面试题 01.03. URL化

    题目 URL化.编写一种方法,将字符串中的空格全部替换为%20.假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的"真实"长度.(注:用Java实现的话,请使用字符数组实现 ...