
大家好,我是轩辕,我们通过一系列内容学习软件架构设计师相关内容,这一篇重点熟悉软件架构相关概念等。
1.1. 软件架构概念
软件架构是指系统中多个结构的组合,包括软件的构件、构件的外部属性以及它们之间的相互关系。它不是实际运行的软件,而是一种用于指导系统设计和开发的表达方式。
1.软件架构的主要定义要点
构件与关系:架构中包括了系统的各种构件(例如模块、类、数据库、网络中间件等)以及它们之间的相互关系。
有效性分析:架构设计帮助软件工程师分析系统设计是否满足规定的需求。
设计变更:架构提供了一种方法,让设计变更在较早阶段更容易被考虑和实施。
风险降低:合理的架构设计能有效降低构建软件时可能面临的风险。
2.软件架构的设计层次
数据设计:关注数据构件(如数据库、类定义等)以及数据的封装。
体系结构设计:更关注构件之间的结构、属性和交互作用,构成软件的初始蓝图。
1.2. 软件架构设计与生命周期
1. 需求分析阶段
需求分析与架构设计的关系:需求分析与软件架构设计面向不同的对象——需求分析关注问题空间,而架构设计关注解空间。两者的有效转换和可追踪性是关键。
转换与可追踪性:需求模型向架构模型(如类图等)的转换通常依赖词法分析和经验规则,可通过表格或Use Case Map等工具保持可追踪性。
2. 设计阶段
SA模型:架构模型包含构件、连接子及其配置,强调构件间的互联机制。
体系结构描述语言(ADL):ADL支持构件和连接子的建模,典型的ADL有UniCon、Rapide、Darwin等,在设计阶段描述架构的元素和连接子。
3. 实现阶段
从设计到实现的过渡:研究如何从架构设计过渡到实际实现,包括程序设计语言的引入、构件组装和中间件支持等。
4. 构件组装阶段
可复用构件的组装:架构模型指导构件的组装过程。重点是支持连接子的实现,并解决体系结构失配问题。
体系结构失配问题:失配指构件间假设不一致,解决方法包括检测失配并消除冲突。失配可发生在构件、连接子及全局架构层面。
中间件的支持:中间件提供构件间跨平台交互和公共服务,支持构件间的通信,成为现代体系结构的关键组成部分。
5. 部署阶段
分布式部署:随着分布式系统的发展,部署成为独立阶段。架构模型为部署提供高层视图,帮助分析部署方案的质量属性(如性能、可靠性)。
6. 后开发阶段
动态软件体系结构:现代系统的架构可能在运行时发生变化,如自适应系统根据不同配置调整连接子。研究包括设计阶段支持和运行时基础设施支持。
体系结构恢复与重建:从已有系统中恢复或重建架构,尤其是在旧系统没有明确架构的情况下。方法包括手工重建、工具辅助重建、自动化重建等。
以上分享的内容希望对大家有所帮助,感谢大家长期以来的支持,有任何问题或想了解更多关于架构、系分、高项、软设的内容,直接私信我。我们快来一起进步吧!
软考学习,请关注公众号,进群加微信
私信:架构、系分、高项、软设

夜雨聆风