软件架构和基于架构的软件开发方法知识总结

news/2024/4/27 13:37:57

一、软件架构定义

        软件架构为软件系统提供了一个结构、行为和属性的高级抽象

        软件架构是一种表达,使软件工程师能够:

        (1)分析设计在满足所规定的需求方面的有效性

        (2)在设计变更相对容易的阶段,考虑体系结构可能的选择方案

        (3)降低与软件构造相关的风险

        软件体系结构的设计通常涉及数据设计体系结构设计

二、软件架构设计与生命周期

        软件架构设计的一个核心目标是重复的体系结构模式,即达到体系结构级的软件重用

        1. 需求分析阶段:软件架构设计的起步阶段,主要解决如何根据需求模型构建SA模型,如何保证模型转换的可追踪行。

        2. 设计阶段

                架构描述语言(ADL):是一种形式化的语言,基本元素:构建、连接件、架构配置

                架构的“4+1”视图:

        3. 实现阶段

        4. 构建组装阶段

                主要研究方面:

                        (1)如何支持可复用构件的互联

                        (2)在组装的过程中,如何检测并消除体系结构失配问题

                引起构建失配的原因:

                        (1)由构件引起的失配

                        (2)由链接子引起的失配

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

        5. 部署阶段

        6. 后开发阶段:主要围绕维护、演化、复用等方便进行

三、软件架构的重要性

        软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素。软件架构是项目干系人进行交流的手段;软件架构是可传递和可复用的模型;软件架构使推理和控制的更改更加简单,有助于循序渐进的原型设计。

        1. 架构设计能够满足系统的品质

        2. 架构设计使受益人达成一致的目标

        3. 架构设计能够支持计划编制过程

        4. 架构设计对系统1开发具有指导性

        5. 架构设计能够有效地管理复杂性

        6. 架构设计为复用奠定了基础

        7. 架构设计能够降低维护费用

        8. 架构设计能够支持冲突分析

四、基于架构的软件开发方法(ABSD)

        定义:ABSD方法是由架构驱动的,即指由构成系统的商业、质量、功能需求的组合驱动的。

        ABSD的三个基础1. 功能的分解;2. 通过选择体系结构风格来实现质量和商业需求;3. 软件模版的使用。

        ABSD能够很好的支持软件复用,ABSD方法是一个自顶向下,递归细化的方法,软件系统的体系结构通过该方法得到细化,直到能产生构件和类

        视角与视图:不同的视角来观察对架构的描述

        用例和质量场景:用例用来捕获功能需求质量场景用来捕获质量需求

        ABSD的软件过程规划:

        1. 需求获取:

                需求是指用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。

                架构需求的来源系统的质量目标、系统的商业目标、系统开发人员的商业目标

        2. 架构设计:

        3.  架构文档话:

                主要输出结果:体系结构规格说明书测试体系结构需求的质量设计说明书

                文档的要求:

                        1. 文档要从使用者的角度进行编写;

                        2. 必须分发给所有与系统有关的开发人员

                        3. 必须保证开发者手上的文档是最新的 

        4. 架构复审:

                复审的目的是标识潜在的风险,及早发现体系结构这种的缺陷

        5. 架构实现:

        

        6. 架构演化:

        


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

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

相关文章

Go 1.22 - 更加强大的 Go 执行跟踪

原文:Michael Knyszek - 2024.03.14 runtime/trace 包含了一款强大的工具,用于理解和排查 Go 程序。这个功能可以生成一段时间内每个 goroutine 的执行追踪。然后,你可以使用 go tool trace 命令(或者优秀的开源工具 gotraceui&a…

使用Redis做缓存的小案例

如果不了解Redis,可以查看本人博客:Redis入门 Redis基于内存,因此查询速度快,常常可以用来作为缓存使用,缓存就是我们在内存中开辟一段区域来存储我们查询比较频繁的数据,这样,我们在下一次查询…

基于python+vue智慧社区家政服务系统的设计与实现flask-django-nodejs

论文主要是对智慧社区家政服务系统进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较…

公司内部局域网怎么适用飞书?

随着数字化办公的普及,企业对于内部沟通和文件传输的需求日益增长。飞书作为一款集成了即时通讯、云文档、日程管理、视频会议等多种功能的智能协作平台,已经成为许多企业提高工作效率的首选工具。本文将详细介绍如何在公司内部局域网中应用飞书&#xf…

在 Linux/Ubuntu/Debian 上安装 SQL Server 2019

Microsoft 为 Linux 发行版(包括 Ubuntu)提供 SQL Server。 以下是有关如何执行此操作的基本指南: 注册 Microsoft Ubuntu 存储库并添加公共存储库 GPG 密钥: sudo wget -qO- https://packages.microsoft.com/keys/microsoft.as…

【GO全栈掌握入门】

GO语言全栈学习咯 ~ 1. GO 语言简介2.语言特性3.哪些公司使用GO语言?3. 安装GO开发环境4. 学习说明:5. GO结构篇5.1 工作空间5.2 导入包5.3 组织结构5.4 依赖管理 6. GO骨肉篇7.GO工具篇 1. GO 语言简介 起源于2007年,GO语言之年轻如你所见&…