架构-系统架构设计模块-1

这篇具有很好参考价值的文章主要介绍了架构-系统架构设计模块-1。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这一部分是考试的重点,占有分值较多,选择、案例、论文都有。

软件架构基本概念

基本概念

软件架构

  • 软件架构设计主要关注软件构件的结构、属性交互作用,并通过多种视图全面描述特定系统的架构。

  • 软件架构设计是指通过一系列的设计活动,获得满足系统功能性需求,符合一定非功能性需求与质量属性有相似含义的软件系统框架模型。

  • 在软件体系结构设计过程中,主要考虑系统的非功能性需求。软件体系结构设计经验的总结与重用是软件工程的重要目标之一。

  • 软件结构设计的重要性主要有:

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

架构设计与生命周期

  • 需求分析
  • 设计阶段
  • 实现阶段
  • 构件组装阶段
  • 部署阶段
  • 后开发阶段

需求分析阶段

  • 需求分析阶段软件架构研究还处于起步阶段。在本质上,需求和软件架构设计面临的是不同的对象:一个是问题空间;另一个是解空间。保持二者的可追踪性和转换,一直是软件工程领域追求的目标。从软件需求模型向软件架构模型的转换主要关注两个问题:

    • 如何根据需求模型构建软件架构模型
    • 如何保证模型的可追踪性
  • 顶层需求模型 – 用例图

  • 结构模型 – 类图

设计阶段

  • 设计阶段是软件架构研究关注的最早和最多的阶段,这一阶段的研究主要包括:

    • 软件架构模型的描述
    • 软件结构模型的设计与分析方法
    • 软件架构设计经验的总结与复用
  • 实现阶段的体系结构研究在以下几个方面

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

    • 如何支持可复用构件的互联,即对SA模型中规约的连接子的实现提供支持。
    • 组装过程中,如何检测并消除体系结构失配的问题。这些问题主要包括
      • 由构件引起的失配,包括由于系统对构件基础设施、构件控制模型和构件数据模型的假设存在冲突引起的失配。
      • 由连接子引起的失配,包括由于系统对构件交互协议、连接子数据模型的假设存在冲突引起的失配。
      • 由于系统成分对全局体系结构的假设存在冲突引起的失配等。要解决失配问题,首先要检测出失配的原因,并在此基础上通过适当的手段消除检测出的失配问题。
  • 部署阶段的软件架构对软件部署作用如下:

    • 提供高层的体系结构视图描述部署阶段的软硬件模型。
    • 基于软件架构模型可以分析部署方案的质量属性,从而选择合理的部署方案。
  • 后开发阶段是指软件部署安装之后的阶段。这一阶段的软件结构研究主要围绕维护、演化、复用等方面来进行。典型的研究方向包括动态软件体系结构、体系结构恢复与重建等。

基于架构的软件开发方法

概述

  • 基于体系结构(架构)的软件设计(Architecture-Based Software Design,ABSD)方法:
    • 采用视角与视图来描述软件架构
    • 采用用例来描述功能需求
    • 采用质量场景来描述质量需求
  • ABSD方法是自顶向下递归细化的的方法。
  • ABSD方法有三个基础
    • 第一个基础是功能的分解。在功能分解中,ABSD方法使用已有的基于模块的内聚和耦合技术
    • 第二个基础是通过选择体系结构风格来实现质量和商业需求
    • 第三个基础是软件模板的使用。软件模板利用了一些软件系统的结构

基于体系结构的开发模型ABSDM

传统软软件开发过程可以划分为从概念到实现的若干阶段,包括问题定义、需求分析、软件设计、软件实现及软件测试等。开发效率不高,不能很好的支持软件重用。

ABSDM 模型把整个基于体系结构的软件过程划分为体系结构需求、设计、文档化、复审、实现和演化等6个子过程,得到细化,直到能产生软件构件和类。

  • 体系结构开发模型
  • 体系结构需求过程,中间三部为标识构件

需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。体系结构受技术环境和体系结构设计师的经验影响,需求过程主要是获取用户需求,标识系统中所要用到的构件。如果以前有类似的系统结构需求我们可以从需求库中取出,加以利用和修改,以节省获取需求的时间,减少重复劳动,提高开发效率。

  • 标识构件:为系统生成初始逻辑结构,包含大致的构件。可分为三部实现。

    • 生成类图
    • 对类进行分组。在类图基础上,使用一些标准对类进行分组可以大大简化类图结构,使之更加清晰。
    • 把类打包成构件
  • 架构需求评审

  • 组织一个由不同代表(如分析人员、客户、设计人员、测试人员)组成的小组,对体系结构需求及相关构件进行仔细的审查。审查的主要内容包括所获取的需求是否真实反映了用户的要求,类的分组是否合理,构件合并是否合理等,必要时,可以在”需求获取-标识构件-需求评审“之间进行迭代。

  • 体系结构设计过程

  • 体系结构文档化过程的主要输出结果是体系结构规格说明和测试体系结构需求的质量设计说明书这两个文档。

  • 体系结构复审是一个迭代过程。目的是标识出潜在的风险,尽早发现体系结构设计中的缺陷错误。从这个方面来说,在一个主版本的体系结构分析之后,要安排一次由外部人员(用户代表领域专家)参加的复审。

  • 体系结构实现过程文章来源地址https://www.toymoban.com/news/detail-459349.html

  • 体系结构演化过程

到了这里,关于架构-系统架构设计模块-1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 常规技术面试题(.NET)下一部分

     (我只是个努力的搬运工,别人整理的,暂时发布,供我自己复习的。) 目录 1.你对泛型了解吗?简单说明一下泛型的有什么好处? 6.2  .NET WinForm部分 6.3  .NET Web开发部分 6.4  数据访问部分 6.5  集群与分布式 6.6  其他部分 泛型:“泛型”的字面意思就是广泛的类型。通

    2024年02月08日
    浏览(46)
  • C++11常用的一部分新特性

    C++11扩大了用大括号括起的列表(初始化列表)的使用范围,使其可用于所有的内置类型和用户自 定义的类型,使用初始化列表时,可添加等号(=),也可不添加。 也就是说这里用花括号进行初始化调用的是类的构造。 也就是说,C++11几乎可以一切都可以用花括号初始化,包括变

    2024年02月06日
    浏览(43)
  • git 如何提交一个文件的一部分内容

    场景: 我正在开发代码开发了一半,现在突然要提交代码,但是需要提交的代码和我正在开发的代码 在一个文件中,我该如何提交 命令: git add -p (p是patch缩写) 第一步 :输入命令之后会呈现代码修改的部分 绿色的注释就是新增加内容 第二步: 按回车键查看命令解释 这

    2024年02月11日
    浏览(45)
  • 报错 “代理XP“组件已作为此服务器安全配置的一部分被关闭。系统管理员可以使用sp_configure来 启用“代理XP”。

    想为 SQL Server 数据库设置自动备份,点击 维护计划向导 的时候报错 “代理XP\\\"组件已作为此服务器安全配置的一部分被关闭。系统管理员可以使用sp_configure来启用\\\"代理XP”。有关启用\\\"代理XP\\\"的详细信息,请参阅SQL Server联机丛书中的\\\"外围应用配 置器”。(MicrosoftSqlServer.Manage

    2024年02月12日
    浏览(55)
  • jenkins汉化一部分问题(一半中文一半英文)解决

    安装中文插件“Locale plugin”和“Localization: Chinese (Simplified)后,先设置为zh_US重新启动,再设置回来 其他插件重启Jenkins后,又出现了部分中文简体不翻译的情况。 方法如下,可以临时完美修复。 1. 将语言设定为zh_US,Jenkins切换为英文。 2. 调用restart重启Jenkins:http://jenkisn网址

    2024年02月11日
    浏览(66)
  • Echarts使用中遇到图表只显示一部分的情况

            在引用完Echarts后,发现图只显示了一小部分,检查布局也没有任何问题,然后通过控制台 检查,无论怎么去调它所在容器的宽高都没有任何的变化,调canves的宽高也只有拉伸的效果。          出现这种现象的原因是:Echarts的依赖是惰性的,需要手动设置r

    2024年02月11日
    浏览(42)
  • 第三十一部分:大模型在搜索引擎领域

    在过去的几年里,搜索引擎技术发展迅速,从简单的查询到智能的语义搜索和知识图谱。随着大模型在自然语言处理(NLP)和计算机视觉等领域的成功应用,搜索引擎也开始逐渐引入大模型技术,以提高搜索质量和用户体验。本文将从大模型在搜索引擎领域的背景、核心

    2024年02月20日
    浏览(51)
  • Git合并固定分支的某一部分至当前分支

    在 Git 中,通常使用 git merge 命令来将一个分支的更改合并到另一个分支。如果你只想合并某个分支的一部分代码,可以使用以下两种方法: 首先,从要合并的源分支(即要提取代码的分支)中创建并切换到一个新的临时分支。这样可以在该分支上进行修改,以便选择性地合

    2024年02月21日
    浏览(64)
  • [云原生] 二进制安装K8S一部分

    目前Kubernetes最新版本是v1.25,但大部分公司一般不会使用最新版本。 目前公司使用比较多的:老版本是v1.15,因为v1.16改变了很多API接口版本,国内目前使用比较多的是v1.18、v1.20。  组件部署: mater节点 mater01 192.168.136.100 kube-apiserver kube-controller-manager kube-scheduler etcd        

    2024年02月22日
    浏览(39)
  • AD18批量修改一部分或者全部器件位号的方法!

           现在任何一个公司嵌入式硬件开发的主板全都是有很多sheet的,而硬件工程师做的往往也都是在老的图纸上进行修改或者再设计,也正因为如此,我们在画原理图的时候尽量不要去改动已有部分的位号,以免PCB工程师骂人! 就算自己画PCB的时候也会晕头转向!      

    2024年01月17日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包