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

系统架构设计师 软件架构的定义与生命周期

软件架构的定义

通过一系列的设计活动,以满足系统的功能性需求和符合一定的非功能性需求质量属性有相似含义的软件系统框架模式。在软件体系结构设计过程中,主要考虑的是系统的非功能性需求

软件体系结构设计经验的总结与重用是软件工程的重要目标之一,所采用的手段主要包括体系结构风格DSSA(特定领域的架构)

软件架构设计的重要性

了解

  1. 架构设计能够满足系统的品质
  2. 架构设计使受益人达成一致的目标
  3. 架构设计能够支持计划编制过程
  4. 架构设计对系统开发的指导性
  5. 架构设计能够有效管理复杂性
  6. 架构设计能够为复用奠定基础
  7. 架构设计能够降低维护费用
  8. 架构设计能够支持冲突分析

架构设计的生命周期

选择题,但是你要知道有哪些阶段,对于每一个阶段干什么事情要知道

  1. 需求分析
  2. 设计阶段
  3. 实现阶段
  4. 构件组装阶段
  5. 部署阶段
  6. 后开发阶段

需求分析

起步阶段

需求和软件架构设计面临的是不同的对象:

  1. 问题空间
  2. 解空间
    保持二者的可追踪行和转换,一直是软件工程领域追求的目标

从软件需求模型向软件架构模型的转换主要关注两个问题

  1. 如何根据需求模型构件软件架构模型
  2. 如何保证模型转换的可追踪性

设计阶段

主要研究如下内容

  1. 软件架构模型的描述
  2. 软件架构模型的设计与分析方法
  3. 对软件架构设计经验的总结与复用

有关软件架构模型描述的研究分为三个层次

  1. SA的基本概念

SA模型由哪些元素组成,这些组成元素之间按照何种原则组织
传统的设计概念只包括构件以及一些基本的模块互联机制。随着研究的深入,构件间的互联机制逐渐独立出来,成为与构件同等级别的实体,被称之为连接子

  1. 体系结构描述语言 , ( A r c h i e t c t u r e D e s c r i p t i o n L a n g u a g e , A D L ) 体系结构描述语言,(Archietcture\ Description\ Language,ADL) 体系结构描述语言,(Archietcture Description Language,ADL)

支持构件、连接子及其配置的描述语言是如今所说的体系结构描述语言。
你可以认为VDL就是你画架构图的时候用的哪些图形文字之类的东西

  1. 软件架构模型的多视图表示

即从不同的视角描述特定系统的体系结构,从而得到多个视图,并将这些视图组织起来以描述整体的软件架构模型。
典型的包括4+1视图

实现阶段

干的活有如下几个方面

  1. 研究基于软件架构的开发过程支持,如项目组织结构、配置管理等等
  2. 寻求从软件架构向实现过渡的途径,如将程序设计语言元素引入软件架构阶段、模型映射、构建组装,复用中间件平台等
  3. 研究基于软件架构的测试技术。

构件组装阶段

研究的内容如阿西哎

  1. 如何支持可复用构件的互联,即对SA设计模型中规约的连接子的实现提供支持
  2. 组装过程中,如恶化检测并消除体系结构失配问题。这些问题主要包括
  • 由构件引起的失配

包括由于系统对构件基础设施、构件控制模型和构建数据模型的假设存在冲突引起的失配

  • 由连接子引起的失配

包括由于系统对构件交互协议、连接子数据模型的假设存在冲突引起的失配

  • 由于系统成分对全局体系结构的假设存在冲突引起的失配

要解决失配问题,首席按需要检测出失配问题,并在此基础上通过适当的手段消除检测出的适配问题

即你去宜家,家具都是组装而成的,但不幸的是,我们找到的板材和螺丝钉连接不起来,对不上,你就可以认为这是构件之间引起的失配,连接子引起的失配,往大的说,就是对全局体系结构的失配

部署

  1. 提供更高层的体系结构视图描述部署阶段的软硬件模型
  2. 基于软件架构模型可以分析部署方案的质量属性,从而选择合理的部署方案

后开发阶段

软件部署安装之后的阶段

主要研究围绕维护演化复用等方面进行。典型的研究方向包括动态软件体系结构体系结构恢复与重建等等

http://www.lryc.cn/news/468686.html

相关文章:

  • 从零开始使用Surya-OCR最新版本0.6.1——最强文本检测模型:新添表单表格检测识别
  • linux中级wed服务器(https搭建加密服务器)
  • 聊一聊为什么企业数字化转型总是三天热度
  • 2025年NPDP产品经理认证考试时间和报考条件
  • 微信小程序文字转语音播报案例
  • QT SSDP 局域网检测支持扫描通信
  • python_学习2(仅为本人学习记录)
  • 手动将python的flask程序打包成exe在windows上执行
  • 老生常谈,MySQL事务隔离级别
  • 百度翻译以及另外三款翻译工具推荐!!!
  • Redis JSON介绍和命令大全
  • yolo自动化项目实例解析(八)自建UI-键鼠录制回放
  • C++ 面向对象知识汇总(超详细)
  • stm32使用SIM900A模块实现MQTT对接远程服务器
  • MATLAB Simulink (一)直接序列扩频通信系统
  • 标准数字隔离器主要特性和应用---腾恩科技
  • Spring事务的七种传播行为
  • win10怎么卸载软件干净?电脑彻底删除软件的方法介绍,一键清理卸载残留!
  • excel中,将时间戳(ms或s)转换成yyyy-MM-dd hh:mm.ss或毫秒格式
  • 机房巡检机器人有哪些功能和作用
  • Redis Search系列 - 第一讲 创建索引
  • bat 重置 Navicat 试用
  • 【真题笔记】09-12年系统架构设计师要点总结
  • Node + HTML搭建自己的ChatGPT [基础版]
  • 关于小程序审核需要提交订单列表页面path的修改办法
  • 使用 Nginx 在同一端口部署两个前端项目并配置子路径
  • 怎么选择独立站SEO效果好的wordpress模板
  • 深度学习速通系列:超长法律文件隐私过滤(基于预训练模型Bert)
  • 【数据结构与算法】之队列详解
  • python最新h5st4.9.1调用源码(2025-10-25)