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

软考高级架构-7.1-软件架构概念-超详细讲解+精简笔记

7.1 软件架构概念

7.1.1 软件架构的定义

        软件架构就是为软件搭建的“骨架”或“蓝图”。它告诉我们本软件由哪些基本部件构成,部件如何协同工作、部件需要哪些“外在表现”(即对外的功能和特性)。

1、架构的作用

  1. 分析设计是否符合业务需求:软件架构就像建房子的设计图,在架构图上,我们能看到软件中的重要“模块”或“零件”是什么,以及它们如何彼此“对话”或互动,通过它可以确保设计符合业务需求。

  2. 帮助做选择:在此阶段修改成本低,我们可以尝试各种可能性,再确定整体的设计方案。

  3. 降低风险:有了架构蓝图,可以预判一些可能的风险和问题,把它们在早期解决掉。

2、架构设计的两层

  • 数据设计:这是基础结构,就像房子的地基。我们在这一层描述软件中数据的格式、结构和基本管理方式
  • 架构设计:是更高层的设计,重点在于软件的“大框架”——模块如何组合,模块的外在特性(比如接口、交互方式),以及彼此的关系。

目标

        架构设计就是为了提供一个有条理的、合理的方式,让工程师有个清晰的“施工图纸”,可以按部就班地去建造软件。

7.1.2 软件架构设计与生命周期

1、需求分析阶段

        在软件开发过程中,需求分析阶段的主要任务是明确软件要解决的问题,用户需求是什么。而软件架构设计(SA)阶段则是提供解决问题的具体方案,即如何满足这些需求。

1-1 两个关键问题

从需求模型到软件架构模型的转化有两个关键问题:

问题1:如何根据需求构建SA模型

问题描述:将用户需求转化为软件的具体结构,比如将用户的操作转化为类图等。

解决方案:举例:从Use Case图向SA模型(包括类图等)的转换一般经过词法分析和一些经验规则来完成

问题2:如何保持转化过程的可追踪性

问题描述:可追踪性指的是需求的来源和架构设计要对应的上。

解决:通过表格或“用例图映射”(Use Case


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

相关文章:

  • 国内动态短效sk5,http
  • 【Unity 安装教程】
  • 使用Prometheus对微服务性能自定义指标监控
  • 前端学习---(4)js基础-2
  • HTTP和HTTPS基本概念,主要区别,应用场景
  • Java后端面试题:设计模式篇
  • 机器人转人工时,开启实时质检(mod_cti基于FreeSWITCH)
  • Kaggle 数据集dogs-vs-cats的错误
  • 真的有免费的MC/Terraria/...服务器?简幻欢让你实现开服梦!
  • Mysql使用pt工具在大表添加索引
  • JAVA入门知识点小结-day4
  • 【jvm】所有的线程都共享堆吗
  • 使用pytest单元测试框架执行单元测试
  • 计算机网络:网络层 —— IPv4 地址与 MAC 地址 | ARP 协议
  • PSI-BLAST生成的PSSM文件转换为pssm_dict字典
  • leetcode hot100【LeetCode 128. 最长连续序列】java实现
  • 首发CSP-J2题解
  • 【已解决】编译Linux内核报错multiple definition of yylloc
  • 大模型训练、微调数据集
  • linux网络编程6——基于UDP的可靠传输协议KCP/QUIC
  • Minio文件服务器:安装
  • [LeetCode] 77. 组合
  • shodan1,shodan简介和kali下的使用
  • 【Linux】线程池详解及其基本架构与单例模式实现
  • [LeetCode] 494. 目标和
  • 【动态规划】【简单多状态dp问题】买卖股票相关问题(冷冻期、手续费、限制次数)