「业务架构」需求工程——捕获与分析(第二部分)

简介: 「业务架构」需求工程——捕获与分析(第二部分)


可行性研究结束后,我们进入下一个阶段;抽取和分析。

需求捕获和分析

它是一个与客户和最终用户交互的过程,以查明领域需求、系统应该提供什么服务以及其他约束。

领域需求反映了系统运行的环境,因此,当我们谈到应用领域时,我们指的是诸如列车运行、医疗记录、电子商务等环境。

它也可能涉及不同类型的股东;终端用户、管理人员、系统工程师、测试工程师、维护工程师等。

涉众是对需求有直接或间接影响的任何人。

需求抽取和分析有4个主要过程

我们通常从收集需求开始,这可以通过一般性的讨论或与涉众的访谈来完成,也可能涉及到一些图形符号。

然后,您将相关的需求组织成子组件并对它们进行优先级排序,最后,您通过删除任何可能从一些冲突中产生的不明确的需求来细化它们。

以下是需求捕获和分析的4个主要过程。


需求捕获和分析的过程

它表明这是一个迭代过程,每个活动都有反馈。过程周期从需求发现开始,到需求文档结束。当需求文档完成时,周期结束。

1. 发现需求

它是与涉众交互并从涉众那里收集需求的过程,这些涉众是关于所需要的系统和已存在的系统(如果存在的话)的。

这可以通过一些技巧来完成,比如面试、场景、原型等等,这些可以帮助股东了解这个系统将会是什么样的。

收集和理解需求是一个困难的过程

这是因为涉众可能不知道他们想要软件做什么,或者他们可能给出不现实的需求。

它们可能会给出不同的需求,这将导致需求之间的冲突,因此我们必须发现并解决这些冲突。

也可能有一些因素会影响利益相关者的决策,例如,公司的经理或大学的教授想要对管理系统有完全的控制权。

访谈

在访谈中,需求工程团队向涉众提出关于当前使用的系统和将要开发的系统的问题,因此他们可以从答案中收集需求。

问题分为两类:

  • 封闭式问题:预先定义的一组问题。
  • 开放式问题:没有预先定义的预期答案,更多的是一般性问题。它是用来探索不清楚的问题,以一种不那么结构化的方式。

在实践中,面试通常是两者的结合。通常,以开放式问题开始,然后使用封闭式问题来更具体地说明一些还不清楚的需求。

访谈有助于全面了解涉众需要什么,他们如何与新系统交互,以及他们在当前系统中面临的困难。

然而,面试对于理解领域需求并不是很有帮助。这有两个原因:

  • 领域需求可能使用特殊的领域术语来表达,软件工程师经常发现很难理解,并且很容易产生误解。
  • 有时候,涉众不会告诉你一些需求,因为他们认为这是非常基本的,不值得提及,或者他们发现很难解释,这在需求中是不被考虑的。

用例和场景

用例和场景是两种不同的技术,但是它们通常是一起使用的。

用例识别系统和它的用户甚至其他外部系统之间的交互(使用图形符号),而场景是一个或多个这些交互的文本描述。

用例包括一些符号来描述系统:


用例图符号和示例

  1. 参与者:与系统交互的人;人类或其他系统
  2. 交互(用例):它表示交互的名称(动词)。它被表示成一个指定的椭圆。
  3. 连接:连接参与者和交互之间的线。
  4. 包括关系:当一个交互被另一个交互调用时,它表示两个交互之间的连接。例如,将一个大型交互分解为几个交互。
  5. 排除关系:当您希望通过添加一个可选行为来扩展一个交互时,它表示两个交互之间的连接,但是您可以单独使用主交互而不需要扩展交互。

现在,我们将使用场景来描述每个用例中的交互。它们应该有一个格式,包括以下内容:

  1. 对初始情况的描述。
  2. 对事件流或与系统交互的描述
  3. 对异常的描述,或换句话说,可能出现什么问题,以及如何处理。
  4. 任何并行活动都应该提到
  5. 最终状态的描述。

下面是上面用例示例的场景示例。


场景

用例和场景是引出需求的有效技术。但是,由于它们关注于与系统的交互,因此对于引出高级业务、非功能或领域需求来说,它们是无效的。

接下来的两个阶段是关于分析需求的:确定所陈述的需求是否清晰、完整、一致和明确,将相关的需求分组并将其组织成相关的组件,以及解决任何明显的冲突。

2. 需求分类和组织

组织系统的整体结构非常重要。

将相关需求放在一起,并将系统分解为相关需求的子组件。然后,我们定义这些组件之间的关系。

我们在这里所做的将帮助我们确定最合适的架构设计模式。

3.需求优先级划分和协商

我们之前解释了为什么引出和理解需求不是一个简单的过程。

其中一个原因是不同利益相关者的参与可能导致冲突。为什么?因为要让各方都满意是很难的,如果不是不可能的话。

该活动关注的是确定需求的优先级,并通过协商发现和解决需求冲突,直到您达到一些涉众可以妥协的情况。

我们不应该达到这样一种情况,即涉众因为没有考虑到他的需求而不被满足。

确定需求的优先级将帮助您稍后关注系统的基本特性和核心特性,这样您就可以满足用户的期望。它可以通过赋予每个功能的优先级来实现。因此,具有更高优先级的功能需要更多的关注和关注。

4. 需求规范

然后将需求记录下来。我们将在“需求工程—需求规格说明”中更详细地讨论需求规格说明( “Requirements Engineering — Requirements Specification”)。

相关文章
|
4月前
|
人工智能 API 数据安全/隐私保护
Apifox 与 Apipost 的 API 文档引擎对比:底层架构、性能与可扩展性分析
深入探索市场上两大主流API工具——Apifox和Apipost的文档能力时,发现了令人惊讶的差距。这不仅仅是功能多寡的问题,更关乎开发效率与团队协作的质变。
|
22天前
|
Java API 开发工具
灵码产品演示:软件工程架构分析
本演示展示灵码对复杂软件项目的架构分析与文档生成能力。通过Qwen3模型,结合PlantUML,自动生成系统架构图、微服务时序图,并提取API接口文档,实现高效、智能的代码理解与文档输出。
109 5
|
20天前
|
存储 JSON 数据处理
ClkLog埋点与用户行为分析系统:架构升级与性能全面提升
随着越来越多企业在实际业务中使用 ClkLog,数据规模和分析需求也不断提升,部分用户日活已经超过10万,为了顺应这一趋势,ClkLog 秉持 “开放透明、持续演进”的理念,推出了迄今为止最重要的一次性能优化升级。新版本在大规模数据处理与复杂查询场景中,性能表现实现了跨越式提升。经过多轮研发与严格测试,新版本现已正式上线:在原有付费版 1.0 的基础上架构全面升级,并同步发布全新的 2.0 版本。为用户带来更强的性能与更广的适用场景。
|
6月前
|
人工智能 自然语言处理 数据可视化
两大 智能体框架 Dify vs Langchain 的全面分析,该怎么选?资深架构师 做一个彻底的解密
两大 智能体框架 Dify vs Langchain 的全面分析,该怎么选?资深架构师 做一个彻底的解密
两大 智能体框架 Dify vs Langchain 的全面分析,该怎么选?资深架构师 做一个彻底的解密
|
2月前
|
存储 前端开发 JavaScript
如何开发设备管理系统中的经验分析报表板块 ?(附架构图+流程图+代码参考)
设备管理系统(EMS)助力企业高效管理设备生命周期,涵盖采购、维护到报废全流程。本文详解经验分析报表模块设计与开发,涵盖动态看板、点检、巡检、维修、保养及库存统计功能,提供代码示例与架构设计建议,提升设备管理效率与决策水平。
|
5月前
|
机器学习/深度学习 人工智能 算法
大型多模态推理模型技术演进综述:从模块化架构到原生推理能力的综合分析
该研究系统梳理了大型多模态推理模型(LMRMs)的技术发展,从早期模块化架构到统一的语言中心框架,提出原生LMRMs(N-LMRMs)的前沿概念。论文划分三个技术演进阶段及一个前瞻性范式,深入探讨关键挑战与评估基准,为构建复杂动态环境中的稳健AI系统提供理论框架。未来方向聚焦全模态泛化、深度推理与智能体行为,推动跨模态融合与自主交互能力的发展。
301 13
大型多模态推理模型技术演进综述:从模块化架构到原生推理能力的综合分析
|
9月前
|
机器学习/深度学习 安全 算法
十大主流联邦学习框架:技术特性、架构分析与对比研究
联邦学习(FL)是保障数据隐私的分布式模型训练关键技术。业界开发了多种开源和商业框架,如TensorFlow Federated、PySyft、NVFlare、FATE、Flower等,支持模型训练、数据安全、通信协议等功能。这些框架在灵活性、易用性、安全性和扩展性方面各有特色,适用于不同应用场景。选择合适的框架需综合考虑开源与商业、数据分区支持、安全性、易用性和技术生态集成等因素。联邦学习已在医疗、金融等领域广泛应用,选择适配具体需求的框架对实现最优模型性能至关重要。
1632 79
十大主流联邦学习框架:技术特性、架构分析与对比研究
|
4月前
|
运维 监控 数据可视化
一文详解:工业软件“低代码开发平台”技术架构研究与分析
本文围绕工业软件低代码开发平台的机遇与挑战,提出基于自动化引擎的技术架构,由工具链、引擎库、模型库、组件库、工业数据网关和应用门户组成。文章分析了其在快速开发、传统系统升级中的应用模式及价值,如缩短创新周期、降低试错成本、解决资源缺乏和提升创新可复制性,为我国工业软件产业发展提供参考和支持。
|
4月前
|
负载均衡 Java API
基于 Spring Cloud 的微服务架构分析
Spring Cloud 是一个基于 Spring Boot 的微服务框架,提供全套分布式系统解决方案。它整合了 Netflix、Zookeeper 等成熟技术,通过简化配置和开发流程,支持服务发现(Eureka)、负载均衡(Ribbon)、断路器(Hystrix)、API网关(Zuul)、配置管理(Config)等功能。此外,Spring Cloud 还兼容 Nacos、Consul、Etcd 等注册中心,满足不同场景需求。其核心组件如 Feign 和 Stream,进一步增强了服务调用与消息处理能力,为开发者提供了一站式微服务开发工具包。
498 0
|
6月前
|
监控 NoSQL 算法
百万级URL重定向工程:大规模网站架构设计与性能优化实战
本文深入探讨了大规模重定向系统的核心挑战与解决方案,涵盖技术瓶颈分析、分布式架构设计、十亿级URL处理策略、全球化部署方案及全链路监控体系。通过数学建模与性能优化,提出三层架构模型,并结合一致性哈希分片算法实现高效路由。同时,对比不同架构的吞吐量与容灾能力,分享某电商平台实践案例,展示性能显著提升。最后展望重定向即服务(RaaS)未来趋势,包括AI动态路由、量子安全跳转和边缘智能等关键技术,为企业提供扩展性强、稳定性高的系统设计参考。
181 25

热门文章

最新文章