当前位置: 首页 > news >正文

软考高级:需求工程- 4+1 视图 AI 解读

这几个术语常见于软件架构的描述中,它们分别代表软件系统的不同角度或视角。为了更好理解它们,我们可以把软件系统想象成一个公司,每个视图就像从不同角度观察这个公司的运作方式。
在这里插入图片描述
========== 生活化例子 ==========

想象你在经营一家餐馆:

  • 逻辑视图:相当于餐馆的菜单,展示了餐馆提供的所有菜品,以及菜品之间的关联。比如,意大利面和披萨都属于意大利菜,这就类似于软件中不同功能模块之间的逻辑关系。

  • 实现视图:就像餐馆厨房的布局,说明后厨如何操作才能做出这些菜。每个厨师负责不同的工序,比如炒菜师负责炒菜,烤箱师负责烤披萨。这就类似软件代码如何组织、如何分配任务给不同的模块。

  • 进程视图:像餐馆的日常运作,描述不同工作人员如何协同工作、分配任务。比如,服务员把顾客点的菜传给厨房,厨师准备菜品。这类似于软件在运行时,程序内部各个模块如何通信、协同工作。

  • 部署视图:就像餐馆的店面和设备布局,说明餐馆需要哪些设备(烤箱、炉子、冰箱)以及它们怎么放置,才能保证顺利运作。软件中的服务器、数据库、网络连接的分布就是部署视图。

  • 用例视图:相当于顾客在餐馆的体验。顾客进来点菜、等待、吃饭、结账,每个流程都涉及到不同的人和环节。这类似于软件中的用户操作流程,展示系统从用户角度的功能和交互。

========== 概念讲解 ==========

  • 逻辑视图:展示软件系统中不同模块或组件之间的逻辑关系,通常用来表达功能的结构和模块之间的依赖关系。它关注“系统做了什么”。

  • 实现视图:描述系统内部如何实现逻辑视图的功能,关注代码如何组织、开发人员如何分配工作。它更多关注“代码是怎么写的”。

  • 进程视图:展示系统在运行时,不同进程之间如何协作、通信和并发执行,关注系统的动态行为。它回答了“系统是如何运行的”。

  • 部署视图:描述系统在物理环境中的布置方式,展示软件如何部署在硬件设备上,比如服务器、数据库等资源的分布。它关注“系统运行在什么设备上”。

  • 用例视图:从用户角度展示软件的功能,描述用户与系统的交互过程,帮助设计系统的用户体验。它关注“用户怎么用这个系统”。

========== 简单记法 ==========

  • 逻辑视图:系统“是什么”,功能和模块结构。
  • 实现视图:代码“怎么写”,模块组织和分配。
  • 进程视图:运行时“怎么做”,动态行为和协同。
  • 部署视图:系统“在哪跑”,设备和资源分布。
  • 用例视图:用户“怎么用”,功能体验。

通过这五个视角,可以全面理解和描述一个复杂的软件系统。


http://www.mrgr.cn/news/35623.html

相关文章:

  • 【C++】STL详解之string类
  • 【Python】探索 PyTorch 在机器学习中的应用
  • 智慧照明,安全度夏:揭秘如何前置防御暴雨中的路灯杆漏电隐患
  • 【云原生安全篇】Trivy助力离线Harbor漏洞扫描实践
  • Python批量合并365个工作表的2种方法
  • Qt-DateEditTimeEdit输入类控件(33)
  • 【AIGC】ChatGPT提示词解析:如何生成爆款标题、节日热点文案与完美文字排版
  • Chunk-based Chinese Spelling Check with Global Optimization(EMNLP2020)
  • Doris之使用优化
  • 一天认识一个硬件之测线器
  • Redis实战--Redis的数据持久化与搭建Redis主从复制模式和搭建Redis的哨兵模式
  • 前端框架对比与选择指南:React.js、Angular、Vue.js及其他
  • 【JS】Reflect
  • Java后端开发中的RESTful API版本控制策略
  • uniapp js向json中增加另一个json的全部数据,并获取json长度
  • Elasticsearch7.7修改network.host IP地址 start启动失败及Elasticsearch7的配置项详解
  • 栈的深度解析:顺序栈与链栈的实现
  • Oracle逻辑备份脚本【生产环境适用】
  • 苏轼为何要写石钟山记?时间节点是关键
  • 问:Java线程为不直接run(),而是要先Start()?