基于架构的软件开发方法

news2024/11/26 16:26:25

基于架构的软件开发方法

基于架构的软件开发方法是由架构驱动的,即指由构成体系结构的商业、质量和功能需求的组合驱动的。使用ABSD 方法,设计活动可以从项目总体功能框架明确就开始,这意味着需求抽取和分析还没有完成(甚至远远没有完成),就开始了软件设计。设计活动的开始并不意味着需求抽取和分析活动就可以终止,而是应该与设计活动并行。特别是在不可能预先决定所有需求时(例如,产品线系统或长期运行的系统),快速开始设计是至关重要的。
在这里插入图片描述
基于架构的软件开发过程

基于架构的软件开发方法的三个基础

ABSD 方法有3 个基础。第1个基础是功能的分解。在功能分解中,ABSD 方法使用已有的基于模块的内聚和耦合技术。第 2个基础是通过选择体系结构风格来实现质量和商业需求,第3个基础是软件模板的使用,软件模板利用了一些软件系统的结构。
ABSD 方法是递归的,且迭代的每一个步骤都是清晰定义的。因此,不管设计是否完成,体系结构总是清晰的,这有助于降低体系结构设计的随意性。

功能分解

基于架构的软件开发方法(ABSD)的第一个基础是功能的分解,ABSD方法使用已有的基于模块的内聚和耦合技术 。在功能分解中,ABSD方法将复杂系统简化为更小、更易于管理和可理解的部分。功能分解使设计、分析和实现复杂系统变得容易。

选择体系结构风格

基于架构的软件开发方法(ABSD)在选择架构风格时,应该考虑商业、质量和功能需求的组合。ABSD方法强调由商业、质量和功能需求的组合驱动软件架构设计。ABSD是一个自顶向下,递归细化的软件开发方法,它以软件系统功能的分解为基础,通过选择架构风格实现质量和商业需求 。

在候选的分布式架构中,低级别的事件驱动或微服务架构与大多数架构特性相匹配。在这两者中,微服务更好地支持不同的操作架构特性,纯粹的事件驱动架构通常不会因为这些操作架构特性而获得优势。

选择架构模版

在ABSD方法中,软件模板是一个重要的概念。软件模板利用了一些软件系统的结构,但是它们并不是一个完整的解决方案。相反,它们提供了一些可重用的元素,这些元素可以在多个项目中使用。在使用软件模板时,应该根据项目的需求进行适当的修改和扩展。

基于架构的软件开发方法的六个步骤

架构需求

重点是标识构件的三步
在这里插入图片描述

架构设计

将需求阶段的标识构件映射为构件进行分析
在这里插入图片描述

架构文档化

架构文档化主要产生2种文档,架构规格说明书,测设架构需求的质量设计说明书,文档至关重要,关系到开发的成败。

架构评审

由外部人员 (独立于开发组织之外的人,如用户代表和领域专家等)参加的复审,复审架构是否满足需求,质量问题,构件划分合理性等。若复审不过,则返回架构设计阶段进行重新设计、文档化,再复审。

架构实现

用实体来显示出架构。实现构件,构件组装成系统
在这里插入图片描述

架构演化

对架构进行改变,按需求增删构件,使架构可复
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/877806.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ComponentOne Studio ASP.NET MVC Crack

ComponentOne Studio ASP.NET MVC Crack FlexReport增强功能 添加了对在Microsoft Windows上部署Microsoft Azure的支持。 添加了对显示嵌入字体的支持。 .NET标准版的经典C1PDF(Beta版) GrapeCity的经典C1Pdf库现在提供了基于Microsoft.NET标准的版本。在任何.NET应用程序(包括…

Linux常用有关目录的基本命令

一、目录管理 1、绝对路径和相对路径: 绝对路径: 路径的写法,由跟目录 / 写起,例如:/usr/share/doc这个目录。 相对路径: 路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /u…

如何求解粘聚力和内摩擦角?

1.直接由莫尔应力圆及包络线得到 由于三轴条件下,试样以宏观破裂面破坏,所以试件是以剪切的方式破坏的,根据库伦强度准则,其抗剪强度 τ m \tau_m τm​ 可以通过粘聚力 c c c 和内摩擦角 φ \varphi φ 确定,表示为…

一百五十四、Kettle——Linux上安装Kettle9.3(踩坑,亲测有效,附截图)

一、目的 由于kettle8.2在Linux上安装后,共享资源库创建遇到一系列问题,所以就换成kettle9.3 二、kettle版本以及安装包网盘链接 kettle9.3.0安装包网盘链接 链接:https://pan.baidu.com/s/1MS8QBhv9ukpqlVQKEMMHQA?pwddqm0 提取码&…

【Sklearn】基于决策树算法的数据分类预测(Excel可直接替换数据)

【Sklearn】基于决策树算法的数据分类预测(Excel可直接替换数据) 1.模型原理1.1 模型原理1.2 数学模型 2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 决策树是一种基于树状结构的分类和回归模型,它通过一系列…

Kotlin开发笔记:类层次结构和继承

Kotlin开发笔记:类层次结构和继承 简介 面向对象编程的语言中,关于对象层次的抽象是很重要的,这会涉及到类层次的结构,接口和继承等内容,本篇文章将会介绍与之相关的内容,包括: 接口的相关内容…

配置网络设置和修改主机名

bash 题目: 在 node1 上配置网络,要求如下: 主机名:node1.domain8.rhce.cc IP地址: 172.25.250.10/24 ##注意掩码 网关: 172.25.250.250 DNS: 172.25.250.250 ##名称服务器 做法: nmtui 回车…

Modbus RTU校验码CRC16全字节查表的VB6实现方法

全字节表比半字节表数据精简,比纯计算速度快,实现起来方便,但是在VB6下或是在普通单片机上要变通处理,因为双字节变量处理会溢出而数据失真。 先看一下CSDN上网友XCS101的C程序 CRC-16/MODBUS 算法的三种实现方法_crc16modbus校验…

风险区分度—IV、KS和分布

IV和KS是风控中常用的评估指标,用于衡量变量的预测能力和区分度。一般来说,IV和KS值越大,表示该变量的预测能力越强。本文从IV和KS以及两者之间的关系方面作一些思考。 一、IV值 一般来说,IV计算用于筛选变量,常用来评…

记一次现场找不到配置的神奇报错,(其实配置是完整的)

记一次现场找不到配置的神奇报错,(其实配置是完整的) 问题的原因为因为配置文件中符号的问题。 报错找不到url1 **Notepad**打开的文件 如图是两份看起来一模一样的配置,其中一个就会报错找不到某某配置。 实际有细小的差别 …

纷享销客稳居2022 H2 SFA SaaS 本土CRM厂商市场份额 TOP 1

近期,国际知名研究机构IDC公布了2022年下半年《中国客户关系管理(CRM)SaaS市场跟踪研究报告》,报告全面解析了中国CRM SaaS以及细分市场SFA SaaS的市场现状,并对全球各大厂商在中国SFA市场的份额占比进行了排名。连接型CRM开创者纷享销客在SF…

AAAI 最佳论文列表(1984→2023最新)附论文下载

明天AAAI全文截稿了,不知道大家的论文投的咋样啦?我不得不提一句,今年的AAAI投稿量又破新高了,快14,000!卷哭... 不过这个投稿量也在意料之中,AAAI属于中国计算机学会CCF的A类国际学术会议,在人…

Unity zSpace 开发

文章目录 1.下载 zSpace 开发环境1.1 zCore Unity Package1.2 zView Unity Package 2. 导入工程3. 发布设置4.功能实现4.1 用触控笔来实现对模型的拖拽: 5. 后续更新 1.下载 zSpace 开发环境 官网地址 1.1 zCore Unity Package zSpace 开发核心必须 1.2 zView …

Nacos使用SpringCloudAlibaba+Dubbo实现

Nacos简介 Nacos是阿里的一个开源产品,它是针对微服务架构中的服务发现、服务治理、配置管理的综合型解决方案。 官方介绍是这样的: Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、…

【QT】 Word模板编辑、转PDF格式

很高兴在雪易的CSDN遇见你 ,给你糖糖 欢迎大家加入雪易社区-CSDN社区云 前言 本文分享基于QT进行Word模板编辑以及Word转PDF的技术,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 目录 …

微信开发之一键退出群聊的技术实现

简要描述: 退出群聊 请求URL: http://域名地址/quitChatRoom 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明wI…

微信小程序实现左滑删除

一、效果 二、代码 实现思路使用的是官方提供的 <movable-area> <movable-view> Page({/*** 页面的初始数据*/data: {pushedData:[{messageTitle:饼干,messageContent:饼干爱吃}],//已推送数据},/*** 生命周期函数--监听页面加载*/onLoad() {},/*** 生命周期函数-…

设计列表和超链接

在网页中&#xff0c;大部分信息都是列表结构&#xff0c;如菜单栏、图文列表、分类导航、新闻列表、栏目列表等。HTML5定义了一套列表标签&#xff0c;通过列表结构实现对网页信息的合理排版。另外&#xff0c;网页中还包含大量超链接&#xff0c;通过它实现网页、位置的跳转&…

【计算机视觉|生成对抗】带条件的对抗网络进行图像到图像的转换

本系列博文为深度学习/计算机视觉论文笔记&#xff0c;转载请注明出处 标题&#xff1a;Image-to-Image Translation with Conditional Adversarial Networks 链接&#xff1a;Image-to-Image Translation with Conditional Adversarial Networks | IEEE Conference Publicati…

四、Dubbo扩展点加载机制

四、Dubbo扩展点加载机制 4.1 加载机制概述 Dubbo良好的扩展性与框架中针对不同场景使用合适设计模式、加载机制密不可分 Dubbo几乎所有功能组件都是基于扩展机制&#xff08;SPI&#xff09;实现的 Dubbo SPI 没有直接使用 Java SPI&#xff0c;在它思想上进行改进&#xff…