自顶而下系统构架分析

真心面对 真心面对     2022-07-30     761

关键词:

1.   前言

    自己在工作当中经常会遇到需要快速并且完整地了解一个软件系统的事情。本来想写一写如何快速了解一个系统,但想着想着就想到了软件的架构。本文以一个软件业务分析师的视角阐述本人理解的软件架构。目的是提供一个适用的,易用的方法,帮助业务分析师或软件架构师系统地,快速的分析和了解软件系统。如有技术性错误,还请各位大牛指正。

2.   软件架构理解

    首先来了解一下什么是架构,架构就是为了组织部件和资源,让部件及资源发挥单体所无法发挥的作用,从而实现架构所要达到的战略目标。(有点类似于一个组织存在的目的,说明世界上许多知识都是通用的,只是应用的场景不同)不同的架构本质和目的都一样,甚至架构方法的思想来源都一样,只是所被组织的部件和资源不一样,从而牵引出不同的架构形式。例如企业架构就是为了将企业的人,财,物,流程进行整合,并用IT来实现整合目标,一个软件的架构也类似,就是将数据,功能,网络,流程整合,实现软件的价值。而整合的方法多种多样,不同的方法达到的效果也有差异。架构的目的就是研究如何去整合,协调这些资源,为品质高的系统奠定基础。

3.   自顶而下与自底而上

    这里想说说我为什么推荐自顶而下的分析方法而不推荐自底而上的分析方法。首先解释一下什么叫自顶而下,简单说就是从大到小,从粗到细,例如企业预算的制定:从公司到部门再科室再到成本中心。软件的自顶而下就是从业务到功能到数据,再到基础架构。自底而上就是反过来。那么我为什么推荐自顶而下呢,原因如下:

  1. 从业务的角度(原谅我是个业务分析师吧),一款软件存在的价值就是业务需要,必须先了解软件或系统的目标是什么,才能做进一步分析。
  2. 软件的开发与实施是为了业务服务,虽然我们在分析软件的时候要考虑到技术的局限性,但应当最大限度地满足业务需求。如果采用自底而上分析,就是在暗中埋下许多技术限制,违背软件存在的初衷。

4.   自顶而下分析步骤

Step1:战略及业务

    要想了解一个系统或分析一个系统,首先最重要的就是要了解这个系统存在的价值,是为了提高客户满意度,为了增加企业利润,还是市场发展需要,或是老板睡了一觉,拍拍脑袋想出一个点子。这决定了这个系统或软件在企业当中的地位以及高层对这个系统的支持程度。了解系统存在的价值及系统实现的目标,可以帮助架构师把握核心问题,不在以后的分析过程当中走弯路。虽然这些看似很虚无飘渺,对系统的开发没有实质性的帮助,但却是一个合格的分析师不得不首要考虑的事情。

Step2:系统级分析

    这一步我们将整个系统作为个体看待。主要是分析这个系统与现有系统之间的依赖关系,会不会对其它系统产生影响。这样也可以初步分析出系统可能会涉及到的外部接口。另外在这一步也要定义出主要的系统功能,不必要太细,但不能遗漏主要功能。

Step3:功能分析

    这一步需要分析的内容是最多的,主要包括功能性需求,非功能性需求。功能性需求里分主要业务功能和数据分析及运营要求。功能性需求可以是一个模块实现,也可以是单一的功能点实现。识别出功能块后,要分析功能的完备性和功能之间的联系。如基础的用户管理,权限管理,物流及销售的订单管理,仓储的物料管理,财务的记账等。

数据分析及运营要求包括基础数据维护,运营数据的报表及分析。

非功能性需求指的是保证功能的正确性,支持功能更好地发挥作用的需求。包括常见的安全性,易用性,灾备,也包括一些系统独有的如跨域,单点登录等具体问题。

Step4:数据架构

    分析完功能性需求后,就需要着手设计数据库表结构。作为业务分析师,我认为只要能识别及设计出对业务有主要作用的表结构,包括每个字段的含义及作用。分析各表之间的关系即可。当然,数据库表设计是一门专业的知识,要想做得好还得深入研究。这一步的工作与Step3可同时并行。

Step5:基础架构

    基础架构即系统运行的环境,包括网络,服务器和数据库系统。一般公司里基本都有一个固定的架构,常用的系统在此基础上就可以完成开发。基础架构是软件运行的基础,却也常常会成为系统技术的瓶颈。分析及了解这些的主要作用就是对系统环境有个大概的了解,避免给客户承诺一些根本实现不了的功能。

5.   总结

    以上内容只给出简单描述,不涉及具体的技术分析,详细技术请参考其它资料,虽然内容比较多,但如果能够理清楚,有条理,有针对性地去分析,便能够快速了解一个系统。也能够有目的地去分析还未实现的系统。希望本文可以帮助到系统分析师们。

 

 

来自:http://www.cnblogs.com/frank498/p/4487367.html

自顶向下和自底向上编程

】自顶向下和自底向上编程【英文标题】:TopdownandBottomupprogramming【发布时间】:2009-05-1905:14:08【问题描述】:为什么我们说像C这样的语言是自上而下的,而像Java或C++这样的OOP语言是自下而上的?这种分类在软件开发中是否重... 查看详情

《软件构架实践》阅读笔记三

这一章主要是通过ISSS系统的构架来分析交通管制系统的实际解决方案。首先从物理视图的角度来分析,物理视图主要是一些硬件方面的视图,通过它我们可以清楚的看到各个硬件之间相互关联关系,使系统的物理分布显示的更... 查看详情

学fpga(先自顶而下设计,再自下而上集成)(代码片段)

...一个项目的时候,应该怎么处理呢?一般先按照自顶而下的方法进行需求切分,然后把每一个子模块做好了之后,再进自下而上的集成处理。        考虑到之前讨论的流水灯和按键,可以假设有这么一个... 查看详情

从汇编角度分析c语言的过程调用

...区,位于进程地址空间的末端。2.在将数据压栈时,栈是自顶向下增长的,该内存区用于函数的局部变量提供内存。它也支持在调用函数时传递参数。3.如果调用了嵌套的过程,栈会自上而下增长,并接受新的活动记录(activationr... 查看详情

自顶向下分析

一、理解确定的自顶向下分析思想确定的自顶向下分析方法,是从某文法的开始符号出发,考虑如何根据当前的输入符号(单词符号)唯一地确定选用哪个产生式替换相应非终结符往下推导,或如何构造一棵相应的语法树,其末端... 查看详情

编译原理-第四章语法分析-4.4自顶向下的语法分析

自顶向下的语法分析一、自顶向下语法分析1.定义2.不足不能处理左递归不能处理复杂的回溯技术3.例4.算法构造FIRSTFOLLOWLL(1)文法二、预测分析1.递归下降的预测分析递归下降预测分析器2.非递归下降的预测语法分析例 查看详情

第四章自上而下分析

第四章词法分析——自上而下分析4.1语法分析器功能      语法分析是编译过程的核心部分。它的任务是在词法分析识别出单词符号串的基础上,分析并判定程序的语法结构是否符合语法规则。 &nbs... 查看详情

性能瓶颈分析思路

...户请求最终是由计算机硬件设备来完成的,做事的是CPU。自顶向下:通过生成负载来观察被测试的系统性能,比如响应时间、吞吐量;然后从请求起点由外及里一层一层的分析,从而找到性能问题所在。不管是自底向上还是自顶... 查看详情

软件构架实践读后感04

...设计案例分析1、需求与质量①极高的可用性:必须保证系统不能正常工作的状态只延续极短的时间②高性能:系统必须在不丢失任何数据的情况下对大量数据进行处理。③开放性④能够提交该系统的子集⑤能够更改功能和处理... 查看详情

编译原理系列实验二自上而下语法分析(代码片段)

系列第二更!目录实验二自上而下语法分析实验目的题目设计思想源程序实验二自上而下语法分析实验目的给出PL/0文法规范,要求编写PL/0语言的语法分析程序。通过设计、编制、调试一个典型的自上而下语法分析程序,实现对... 查看详情

如何阅读源代码

第九章:系统构架++++++++++++++182.一个系统可以(在重大的系统中也确实如此)同时出多种不同的构架类型.以不同的方式检查同一系统|分析系统的不同部分|或使用不同级别的分解,都有可能发现不同的构架类型.183.协同式的应用程序,... 查看详情

软件构架实践阅读笔记5

...计就是从初步的需求分析开始逐步进行迭代,所以在了解系统需求之前,不能开始设计构架,但是刚开始设计构架时并不需要收集太多需求。“构架的驱动因素”包括功能、质量和商业需求,为了确定构架驱动因素,需要识别优... 查看详情

语法分析:自上而下分析(代码片段)

...一些典型的语法分析方法。语法分析器的功能,自上而下分析面临的问题,LL(1)分析法语法分析器的功能语法分析是编译过程的核心部分。它的任务是在词法分析识别出单词符号串的基础上,分析并判定程... 查看详情

自顶向下分析

一、理解确定的自顶向下分析思想确定的自顶向下分析方法,是从某文法的开始符号出发,考虑如何根据当前的输入符号(单词符号)唯一地确定选用哪个产生式替换相应非终结符往下推导,或如何构造一棵相应的语法树,其末端... 查看详情

《软件构架实践》阅读笔记二

...应该知道本节所讲的内容中,我们将分析以下3类属性:1.系统的质量属性:如可用性、可修改性、性能、安全性等等。2受构架影响的商业属性,如上市时间3与构架本身相关的一些质量属性,如概念完整性。首先我们来描述一下... 查看详情

编译器实现

1.自顶向下的分析自顶向下的分析算法通过在最左推导中描述出各个步骤来分析记号串输入。分析树隐含的编号是一个前序编号,顺序是由根到叶。自顶向下的分析程序有两类:回溯分析程序,预测分析程序。 1.1使用递归下... 查看详情

《软件构架实践》阅读笔记02

...藏式软件开发中可行的和明智的设计准则,第二,从实现系统质量指标的角度看,认真设计构架层次上的各种结构可以达到事半功倍的效果。   第四章《 查看详情

《软件构架实践》阅读笔记4

...性和软件架构之间的关系,以及具体的用什么来描述某个系统的质量需求。        我们首先应该知 查看详情