架构设计-架构需求分析

一、架构设计的需求分析从哪来

需求分析的前期工作是愿景描述及愿景分析, 即愿景分析就是需求的前期调研.

从软件过程来看,需求分析是一个承上启下的阶段–“上承”愿景,“下接”设计。需求分析的工作内容包含如下三方面:

需求捕获: 理解沟通
需求分析:做什么,有哪些问题

系统分析:原因是什么, 怎么做

三者不是独立无关的阶段,而是相互伴随、交叉进行的。

需求捕获: 从各个方面收集需求, 并理解需求.典型的需求捕获是使用“需求采集卡”:需求描述、需求提出者、需求记录者、需求类型等。需求分析:需求捕获得到的是“原始需求”,而需求分析则对各方面收集到的需求进行分析、整理、归纳、论证形成明确的需求。比如, 产品经理说,现在系统不稳定, 需要重构架构保证系统稳定.  这只是一个愿景, 我们需要把这个需求形成一个明确的需求: 可行性99.99%, 要完成这个指标,需要做哪些工作.

二、需求分类:需求结构化

收集需求是多而杂, 我们需要理解并整理, 通过二维需求观,将“需求=列表”的传统观念,一下子拓宽了维度。有了视野和思维上的提升。

二维需求观:

首先,需求是分层次的:
1、有组织级的需求
2、用户级的需求
3、开发级的需求。
 
其次,需求还必须从不同方面考虑。 需求可分类为三类:
1)功能需求:更多体现各级直接目标要求,系统具体要做什么. 有哪些功能点.
2)质量需求:运行期质量 + 设计质量+用户质量+系统质量.
3)约束需求:业务环境因素 + 使用环境因素 + 构建环境因素 + 技术环境因素.

ADMEMS矩阵,可作为需求梳理和需求评审的工具:

三、从需求向设计转化的关键



不同需求(及功能、质量、约束)影响架构的不同原理,是从需求向设计转化的密码。

功能需求、质量属性、以及约束共同决定了架构,对这三类需求的把握是否到位、设计决策是否合理,可以说是架构设计成败的关键所在。
功能:体现的是职责协作链.系统有哪些功能点, 这些功能点之间如何协作.
质量:是完善架构的驱动力
约束:说明了设计并不自由
质量属性和约束,同属非功能需求,都是重要的“架构决定因素”。质量属性是软件系统的整体质量品质——所谓整体品质,就是它往往和大多数功能都有关,而不是仅仅表现在某个功能“内部”。
至于约束性需求,它们要么是架构设计中必须遵循的限制,要么经过约束分析、转化为质量属性需求或者功能需求。但是,约束分析没有受到架构师的普遍重视,于是约束背后的“衍生需求”变成了“遗漏需求”,造成了架构设计的偏离甚至失败。

四、需求优先排序

架构设计的本质目的是为了解决业务,架构设计也并不是面面俱到,而是识别问题有针对性的解决, 所以要先了解系统最需要解决的是什么。

例如系统的复杂度来源于业务逻辑复杂,功能耦合度严重,架构师设计TPS达到50000/s的高性能架构没有意义。

出现问题主要为了满足“高可用”“高性能”“可扩展”三个方面,就算老板拍脑袋要求同时满足三高,也要分优先级。

比如线上运行的系统可能存在的问题:
运行效率低下,升级复杂,容易出错。
开发效率低下。
小问题不断,不好定位。
二真缺解决做法:
列出主要的复杂度问题
根据业务、技术、团队等情况进行排序
优先解决最主要的复杂度问题.

我这儿整理了比较全面的JAVA相关的面试资料,

需要领取面试资料的同学,请加群:473984645

原文地址:https://www.cnblogs.com/1013wang/p/12180393.html

时间: 2025-01-07 11:01:44

架构设计-架构需求分析的相关文章

[架构设计] 架构设计文章分享链接集合 —— 文章来源圣殿骑士博客

昨天在CNB的置顶推荐上看到了@圣殿骑士 的<架构设计分享之权限系统(看图说话)>这篇文章,大概的阅读完之后被@圣殿骑士强大功力惊呆了,记录一下他部分关于架构的文章链接 文章来源:圣殿骑士 架构设计分享之权限系统(看图说话) 架构设计(ASP.NET MVC+Knockout+Web API+SignalR) 31天重构学习笔记重新整理下载

架构设计三部曲之如何写架构设计说明书

架构设计是需求分析到软件实现的桥梁,也是决定软件质量的关键.编制架构设计说明书是开发人员向架构师转变必定会经历的过程.在架构师整个的成长过程中,必定会经历编制架构设计说明书.评审架构设计说明书以及根据业务需求分析设计系统架构的三个过程.作为一个架构师,我想尝试一下根据这三个过程对不同能力需要,写一次系列文章,包括<架构设计三部曲之如何写架构设计说明书>.<架构设计三部曲之如何评审架构设计说明书>以及<架构设计三部曲之如何做架构设计>,一来可以帮助自己整理思路,重新审视架

UML笔记1---结合架构设计用对象建模

UML笔记1---结合架构设计用对象建模 一.UML的视图和图 视图,只是表达系统某一方面特征的UML建模组件的子集:视图被划分成三个视图域:结构分类.动态行为和模型管理. ---结构分类,描述了系统中的结构成员及其相互关系.类元包括类.用例.构件和节点.类元为研究系统动态行为奠定了基础.类元视图包括静态视图.用例视图和实现视图. ---动态行为描述了系统随时间变化的行为.行为用从静态视图中抽取的瞬间值的变化来描述.动态行为视图包括状态机视图.活动视图和交互视图. ---模型管理说明了模型的分层

架构设计之如何写架构设计说明书

架构设计是需求分析到软件实现的桥梁,也是决定软件质量的关键.编制架构设计说明书是开发人员向架构师转变必定会经历的过程.在架构师整个的成长过 程中,必定会经历编制架构设计说明书.评审架构设计说明书以及根据业务需求分析设计系统架构的三个过程.作为一个架构师,我想尝试一下根据这三个过程对不 同能力需要,写一次系列文章,包括<架构设计三部曲之如何写架构设计说明书>.<架构设计三部曲之如何评审架构设计说明书>以及<架构设计三部曲之如何做 架构设计>,一来可以帮助自己整理思路,重新

架构设计的方法学

约公元前25年,古罗马建筑师维特鲁威说:"理想的建筑师应该既是文学家又是数字家,他还应通晓历史,热衷于哲学研究,精通音乐,懂得医药知识,具有法学造诣,深谙天文学及天文计算."(好难哪,软件构架设计师的要求呢?大家好好想想吧.)   本文目录   一.与构架有关的几个基本概念:   二.构架设计应考虑的因素概揽:   三.程序的运行时结构方面的考虑:   四.源代码的组织结构方面的考虑:   五.写系统构架设计文档应考虑的问题   六.结语   一.与构架有关的几个基本概念:   1.模

微信开发之架构设计

微信作为一款app,提供了友好的用户体验,在开发微信应用时,我们应该尽可能得让自己的网页像webapp一样.用户使用我们的网页,就好像在使用微信内置的app,这样用户才会喜欢我们的网站. 本文将讲解微信开发的前期准备,包括微信开发上的一些坑.架构上的设计.接口上需要注意的地方,全部来自自己的开发经验,如有不对,请指正. 微信开发的坑 1.微信授权 微信中涉及到了OAuth2.0网页授权,正因为这样,我理所当然的用这个接口来读取用户的基本信息,包括头像.用户名等,因为之前了解过淘宝的公众平台,大家

架构设计实践二:需求分析

1.1 三个问题 掌握好需求分析,需要掌握三个问题的解决方式. 需求如何获得?需求开发=愿景分析+需求分析 如何判断需求全不全?功能.质量.约束三类需求 如何从需求转换为设计?功能.质量.约束对架构产生不同的影响. 1.2 软件研发与交付过程总图 其中概念化阶段一般都要完成愿景分析.风险评估.可行性分析及项目进度和成本的粗略估算,输出<愿景与范围文档>:需求分析阶段则完成需求捕获.需求分析,得到<软件需求规格说明书>,一个关键的思路是需求捕获与需求分析是迭代着进行的,完成需求捕获之

Robustness Diagram - 从需求分析到架构设计

转载自: http://www.dotblogs.com.tw/jed/archive/2010/11/21/robustness_diagram.aspx   什么是Robustness Diagram Robustness Diagram是一种很特殊的图形,介于Class Diagram与Activity Diagram之间,最早由 Ivar Jacobson 于1992年所提出,台湾这边翻成强韧图.稳健图,对岸则采译音翻成鲁棒图.在需求分析领域,UML的Use Case Diagram已经

web架构设计经验分享(转)

本人作为一位web工程师,着眼最多之处莫过于 性能与架构,本次幸得参与sd2.0大会,得以与同行广泛交流,于此二方面,有些心得,不敢独享,与众博友分享,本文是这次参会与众同撩交流的心得,有兴趣者可以查看视频 架构设计的几个心得: 一,不要过设计:never over design 这是一个常常被提及的话题,但是只要想想你的架构里有多少功能是根本没有用到,或者最后废弃的,就能明白其重要性了,初涉架构设计,往往倾向于设计大而化一的架构,希望设计出具有无比扩展性,能适应一切需求的增加架构,web开发领