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

大话软工笔记—架构的概要设计

架构的概要设计是在需求工程分析成果的基础之上对整个系统进行的顶层规划,重点是确定设计规范(理念、主线等),从大的范围和高度对业务进行规划和设计,架构概要设计的成果“业务架构图”,是后续各阶段设计的依据、载体。同时,在业务架构的设计过程中明确了业务逻辑,业务逻辑是串联所有要素的主线,是设计的灵魂。

1. 定义

架构的概要设计,是以信息化价值为目标,确定设计规范,对客户需求进行梳理、优化,并用架构模型表达出清晰的业务逻辑,最终确定全部业务的范围、系统/模块的划分、业务的构成、业务的流程。

2. 作用

架构的概要设计主要作用是:确定设计规范、完成业务架构的规划设计。

2.1 设计规范

设计规范,包含设计的目标、理念、原则、主线、标准等内容,是确定基于客户的目标需求与业务设计师对目标需求的理解,特别是设计理念的不同,使得形成的设计主线就不同,最终围绕着这条主线做出的业务架构也会不同,设计理念和设计主线是系统的灵魂。

2.2 业务架构

业务架构是承载理念和主线的主要载体,也是需求工程进入设计工程的转换点,作用是将需求阶段的内容用设计的标准进行梳理、分类、规划,展示有规律性的业务形象。

3. 设计基础设计规范

设计规范中的理念承载了“目的”,主线串联了“功能”,功能实现了“价值”。

​​​​​​​3.1 设计理念

设计理念是业务设计师根据客户的希望和目标,融入业务设计师自己的想法然后给出设计指导思路,如果有设计理念作指导,则可为客户设计出附加价值的系统。

​​​​​​​3.2 设计主线

确定设计理念后,以实现这个理念为目标,将用于实现目标的功能串联成线,在功能上标注出功能可以带来的价值,这就是所谓的“主线”,主线包含“功能和对应的价值”。

4. 设计基础基础手法

4.1 架构模型-粗粒度的设计

对业务进行粗粒度的架构设计采用架构模型来表达,通过不同粒度的模型对业务对象进行拆分、组合。其中拓扑图和分层图在架构设计中更多的是起着“划分、归集”的作用,而框架图、分解图和流程则不仅有划分和归集,而且还有“构建”的作用。

架构模型的不同粒度图

(1)整体规划

  • 拓扑图

对项目的全部内容进行整体规划,先将不同业务领域的内容分化为不同的板块,将没有直接关联的业务分开后,这样易于理解业务的内涵、边界、板块之间的数据交互关系等,是最上层的规划。

(2)局部规划

  • 分层图

对拓扑图中的某个业务板块进行规划、设计,将每个业务板块的业务层、数据层、技术层以及其设计内容、设计方法进行区分。

  • 框架图

对分层图中的某个层进行区域划分的规划,也可以进一步对同一层的内容进行划分,分为主营功能、辅营功能以及支持功能等,这个划分的结果决定了信息系统构成的子系统、模块等的基础。是系统、模块的划分依据,是系统菜单的设计依据。

(3)构成划分(静态)

  • 分解图

对框架图中某个区域的构成进行划分、设计,可以对某个区域内的业务构成进行详细的规划,可以给出该区域内业务要素之间的层级关系,可以为后续的功能和数据层面的详细设计奠定基础。是基础数据(字典库)的设计依据。

(4)运行规划(动态)

  1. 流程图

表达对分解图中要素在运行时前后关系的规划、设计。

​​​​​​​4.2 架构模型—细粒度的设计

架构模型都是用不同的要素(图标)、逻辑(线、框等)组合出的图形,用以表达不同的含义,常用的架构设计的手法是分层、分区、分线和分点。

(1)分层

分层,就是将设计对象按照不同的粒度或是不同的分类进行拆分,获得的要素分别置于不同的层上。分层的表达手法在所有的架构模型中都有使用。

(2)分区

分区,就是在一个平面上将不同分类的要素归集到不同的区域,同一区域内的要素具有高内聚的关系,不同区域的要素具有低耦合的关系。同一平面内的要素,不论是否同在一区,都必须粒度相同。分区的表达手法可以使用分层图、框架图、分解图等。

(3)分线

以某一个目标为终点,将实现这个目标所需要的要素按照发生的前后顺序串联起来,就形成了一条线,这条线上的要素粒度要一致,还要注意要素的分类、属性。流程图就是此类架构手法的代表。

(4)分点

以某个点为核心(点可以是一个:功能、模块、系统),关联与其有关的其他要素,注意相关联要素粒度要一致,这个点就是业务功能设计、复杂算式设计等的主要手法。

如果点是一个“系统”,那么还可以按照分层、分区等方法重复上述过程,如果点是一个“功能”,就不能再划分了(进入功能内部属于详细设计,不再是业务架构范畴)。

http://www.xdnf.cn/news/1001413.html

相关文章:

  • 【AS32系列MCU调试教程】基础配置:Eclipse项目与工具链的优化
  • SD-WAN优化云应用与多云架构访问的关键策略
  • 408考研逐题详解:2009年第39题
  • 深入探索IIC-OLED显示技术:嵌入式仿真平台如何重塑高校教学范式——深圳航天科技创新研究院技术赋能新一代工程教育
  • 观点 | 科技企业到了品牌建设的历史性窗口期
  • 界面开发框架DevExpress XAF实践:集成.NET Aspire后如何实现服务安排?
  • Kratos 与Golang Cms的关系
  • 深度学习环境搭建(pycharm+yolov5)
  • 【AWS入门】IAM多重身份验证(MFA)简介
  • 深度解析Git错误:`fatal: detected dubious ownership in repository` 的根源与解决方案
  • OpenAI API:LLM编程的事实标准(上)
  • R语言缓释制剂QBD解决方案之五
  • GitLab 拉取变慢的原因及排查方法
  • UE5 学习系列(九)光照系统介绍
  • linux中的locate命令
  • Vue3+TypeScript实现状态模式
  • cuda编程笔记(3)--常量内存与事件
  • 嘉立创EDA初识
  • 外资车全面反弹,被看衰的日系车尤其凶猛,国产电车再承压
  • 智慧园区可视化怎么做?
  • 快速排序优化技巧详解:提升性能的关键策略
  • Python爬虫实战:研究AutobahnPython相关技术
  • 股指期货为什么会出现贴水现象?
  • Redis : set集合
  • 使用 Visual Studio 2019 修改 WebRTC 源码
  • SpringCloud微服务:服务保护和分布式事务
  • Vosk API:开源离线语音识别的强大工具
  • 机器人坐标变换TF(ROS Transform)示例解释
  • VScode中如何创建项目分支
  • 代码随想录训练营第三十天 | 452. 用最少数量的箭引爆气球 435. 无重叠区间 763.划分字母区间