在我的职业生涯中,我花了一些时间来理解并深信进行分析的重要性。 我仍然记得我的第一次工作经验,我只是想快速编写一些代码并将其重构n次,以获得更好的结果。 不是吗?
今天的情况有所不同,我正在写这篇文章,与大家分享我个人的分析方法。 这不是什么新鲜事物,它只是我根据经验和众所周知的方法量身定制的方法。
通常,您会获得一个问题域 (包含所有实体和规则的观察系统)作为输入,并且必须产生一个解决方案域 (解决原始分析问题的设计系统)作为输出。 因此,一个好的开始是:
- 清楚了解要解决的问题,
- 将问题域减少到最小的知识空间
如果我要快速定义分析,我会说这是关于查找细节,对知识进行分类并解决问题的方法 。 HVT方法由三个步骤组成:
- ^ h orizontal分析(图层)
- V ertical分析(集成)
- 牛逼 ransverse分析(影响)
为了简要描述该方法,我将使用示例; 这些将基于一个相当普遍的案例研究,即盖房子 。 在本案例研究中,我们的目标是确定建筑师设计建筑物所需的所有必要要求 。
阶段1:水平分析
我们横向搜索共同的方面,将它们分组在命名的层中 ,它们之间的耦合最小(理想情况下没有循环依赖性)。 范围是检测所有功能需求并对其功能上下文和边界有良好的了解。 在我们的示例中,我们可以定义以下几层:
- 地理 : 地面必须坚实; 它必须远离洪水; 必须靠近绿色区域; 必须靠近学校; …
- 基础设施 : 必须与水电供应商连接; 必须连接到城市下水道; 必须具有非常快速的互联网连接; …
- 技术 : 大多数设备必须可远程控制; 门必须通过人类识别技术打开; 必须产生太阳能; …
- 安全性和人机工程学 : 必须安装现代警报系统。 室内设计必须对婴儿安全。 老年人必须可以使用它; …
阶段2:垂直分析
纵向上我们研究整合 。 集成意味着将事物放在一起工作。 如果事物本质上是可互操作的,那么集成工作将被最小化。 这就是我们的范围。
在此步骤中,我们选择配置文件,然后通过制定集成问题进行分析。 在我们的示例中:
- 成人 : 成年人可以轻松使用所有必要的设备吗? 家具适合他吗? 厨房舒适吗?…
- 宝贝 : 楼梯受到保护好吗? 他有足够的空间玩吗? 所选地板容易清洁吗?…
- 公寓 : 公寓 是否易于使用基础设施服务? 它具有同质设计吗? 它有足够的光吗? …
否定的答案可能意味着在上一阶段进行环回以进行一些调整以提高互操作性。
阶段3:横向分析
最后一步是更复杂的,并非总是需要的。 其目的是研究跨越不同轮廓之间的不同层的间接影响 。
对于第二阶段,我们通过分析正在进行的模型并提出问题来做到这一点。 在我们的示例中,一些问题可能是:
- 成人要求的WI-FI对婴儿有危险吗? 也许在他的卧室里少一点信号功率会更好。
- 成年人在孩子弹电吉他时能够入睡吗? 也许孩子房间应该是隔音的。
这个过程有时很难解决,因为它肯定会带您找到某些个人档案之间的冲突,而这些个人档案有时不希望(或根本无法)放弃其需求。
结论
即使研究案例非常简单,我也希望您了解将其移至更复杂领域的含义。 例如,在软件体系结构中,客户是利益相关者,需求是功能和非功能需求,配置文件是应用程序或组件,间接影响可以是所使用技术的兼容性矩阵。 用几行来解释这种方法并不容易,我错过了成千上万的单词,因此,如果您有任何疑问或建议,请不要犹豫,留下您的评论并分享。
翻译自: https://www.javacodegeeks.com/2014/09/the-hvt-analysis-approach.html