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

一、软件架构定义

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

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

        (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. 架构演化:

        


  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 软件开发流程是一种规范化的方法,用于组织和管理软件开发过程中的各个阶段和活动。它有助于团队成员理解和遵循一致的开发标准,提高开发效率和质量。 软件开发流程通常包括以下几个主要阶段:需求分析、设计、编码和测试。 - 需求分析阶段:这一阶段主要是与客户进行沟通,了解客户的需求和期望,确定软件开发的目标和范围。在这个阶段,我们需要进行需求调研、需求规格化、需求分析和需求确认等工作。 - 设计阶段:在需求分析的基础上,我们需要进行软件的整体设计和详细设计。整体设计主要是确定软件的体系结构和模块划分,详细设计则是对每个模块进行具体的设计。在这个阶段,我们需要进行概要设计、接口设计和数据库设计等工作。 - 编码阶段:在设计完成后,就可以进行编码了。在这个阶段,开发人员根据详细设计书编写源代码。编码工作需要符合规范,并进行代码注释和版本控制。 - 测试阶段:编码完成后,我们需要对软件进行测试,包括单元测试、集成测试和系统测试等。通过测试,我们可以发现并修复其中存在的错误和缺陷。 除了这些主要阶段,软件开发流程还包括一些支持性工作,如项目管理、文档编写和维护等。 软件开发流程的最终目标是提供高质量的软件产品,同时确保开发过程的可控性和可维护性。它能够帮助开发团队更加高效地进行合作,减少错误和冗余工作,提高软件开发的效率和成功率。在实践中,各个团队可以根据具体情况和实际需求进行适当的调整和变化,以获得更好的开发效果。 ### 回答2: 软件开发流程是指在软件开发过程中所面临的一系列步骤和活动。CSND(CSDN)作为一个IT技术社区,也提供了关于软件开发流程的相关知识和资源。 软件开发流程通常是以瀑布模型(Waterfall Model)为基础的。瀑布模型将软件开发划分为需求分析、设计、编码、测试和运维等阶段,并且每个阶段都是按顺序进行的。首先是需求分析阶段,开发人员与客户进行沟通,确定软件的需求和功能。然后是设计阶段,根据需求分析的结果设计软件的结构和架构,并制定详细的设计文档。接下来是编码阶段,开发人员根据设计文档编写程序代码。随后是测试阶段,开发人员对编写的代码进行测试,发现并修复其中的错误和缺陷。最后是运维阶段,软件被交付给客户使用,并进行维护和升级。 除了瀑布模型,还有一些敏捷开发方法也被广泛应用软件开发流程中,例如Scrum和迭代开发等。敏捷开发方法更加注重快速响应和适应变化,通过将开发过程划分为多个迭代,每个迭代都经历需求分析、设计、编码、测试和交付等环节。这种方法能够更好地满足客户需求的变化,并提供更加灵活和高效的开发流程。 总结来说,软件开发流程是一系列的步骤和活动,用于指导软件项目的开发和交付。CSND(CSDN)提供的相关资源和知识可以帮助开发人员更好地学习和了解软件开发流程,从而提高开发效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Andrew-ZhangJinyi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值