软考高级架构-7.1-软件架构概念-超详细讲解+精简笔记
7.1 软件架构概念
7.1.1 软件架构的定义
软件架构就是为软件搭建的“骨架”或“蓝图”。它告诉我们本软件由哪些基本部件构成,部件如何协同工作、部件需要哪些“外在表现”(即对外的功能和特性)。
1、架构的作用
-
分析设计是否符合业务需求:软件架构就像建房子的设计图,在架构图上,我们能看到软件中的重要“模块”或“零件”是什么,以及它们如何彼此“对话”或互动,通过它可以确保设计符合业务需求。
-
帮助做选择:在此阶段修改成本低,我们可以尝试各种可能性,再确定整体的设计方案。
-
降低风险:有了架构蓝图,可以预判一些可能的风险和问题,把它们在早期解决掉。
2、架构设计的两层
- 数据设计:这是基础结构,就像房子的地基。我们在这一层描述软件中数据的格式、结构和基本管理方式。
- 架构设计:是更高层的设计,重点在于软件的“大框架”——模块如何组合,模块的外在特性(比如接口、交互方式),以及彼此的关系。
目标
架构设计就是为了提供一个有条理的、合理的方式,让工程师有个清晰的“施工图纸”,可以按部就班地去建造软件。
7.1.2 软件架构设计与生命周期
1、需求分析阶段
在软件开发过程中,需求分析阶段的主要任务是明确软件要解决的问题,用户需求是什么。而软件架构设计(SA)阶段则是提供解决问题的具体方案,即如何满足这些需求。
1-1 两个关键问题
从需求模型到软件架构模型的转化有两个关键问题:
问题1:如何根据需求构建SA模型
问题描述:将用户需求转化为软件的具体结构,比如将用户的操作转化为类图等。
解决方案:举例:从Use Case图向SA模型(包括类图等)的转换一般经过词法分析和一些经验规则来完成
问题2:如何保持转化过程的可追踪性
问题描述:可追踪性指的是需求的来源和架构设计要对应的上。
解决:通过表格或“用例图映射”(Use Case