敏捷开发下的软件架构设计与持续优化

过往的软件开发, 往往都是由架构师将他对产品的理解,利用 UML 来体现软件的架构设计。

这种方式的问题是:因缺乏使用者与团队成员间的互动参与,使得对外并未能完整的将使用者需求,映射到软件架构中; 而对内所提供的软件架构设计文档, 对实际开发的工作, 指导意义并不大(因为,厚重的架构设计文档,便如老太婆的裹脚布般;又臭又长)。更严重的问题是,由于架构设计耗费太长的时间,如此再加上开发、测试的时间,团队往往会太晚才会发现软件架构上的重大缺陷。而由于太晚才发现软件架构上的缺陷,所以,软件架构上若需做优化,则往往需耗费惊人的人力与时间成本。

敏捷开发, 经由可视化、轻量级的 "场景树", 使得使用者与团队成员间可共同的协作, 共同的识别:

  • User Story 中的活动
  • 活动后所产生的实体对象
  • 验证实体对象的纬度
  • 识别描述实体对象的价值对象
  • 整合所有 User Stories 的 User Story 地图

所以, 开发人员可根据 “场景树”与 User Story 地图,轻易且高效的找到单元测试点并设计出有效的测试用例与测试数据。而使开发人员能在最短的时间内,将软件架构直接转换为测试代码与产品代码。使开发人员能在最短的时间内,经由单元测试的 “黑盒测试”,发现到软件架构上的缺陷。

另外,SonarQube也提供了一可持续优化产品代码(架构)的平台。

“所以,在敏捷开发中,我们真的找到了一个有效的方法,去构造一高效、健康的产品开发的生态系统;经由此生态系统,使用者与团队成员将可高效的协作,共同的设计软件架构,并在最短的时间内,发现软件架构上的缺陷并持续的优化软件架构。”

欢迎你也来试试。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏钱塘大数据

【干货】34张技术知识图谱,IT架构师必备

下面是笔者多年来积累和收集的知识技能图谱,有的是笔者原创总结的最佳实践,有的是小伙伴们的分享,其中每个秘籍图谱里面的内容都是互联网高并发架构师应该了解和掌握的知...

4787
来自专栏SAP最佳业务实践

从SAP最佳业务实践看企业管理(166)-CO成本相关概念

成本对象(costobjective): 或称成本客体,是指可用个别成本加以衡量的任何活动或项目。成本对象是管理会计的主要特色,它可能是资源消耗或取得的活动或作...

2857
来自专栏源哥的专栏

让程序开发也来个三权分立

我想说的是,这里是三权分立,不是指政治体制里面的立法、行政、司法,而是指程序开发中的系统设计、系统开发、系统测试。在这里,系统设计有点类似于立法,系统开发有点类...

463
来自专栏Java架构师学习

一文读懂:完整的支付系统整体架构!

在不同的公司由于接入渠道和应用的差异,对支付产品分类略有不同。综合支付场景和流程,支付产品可以分为如下几类:

953
来自专栏互联网高可用架构

史上最全的架构师图谱

1514
来自专栏斑斓

【敏捷实践】故事点估算,这真的是问题吗?

用户故事的估算总是不准确的,这是估算的第一要义。正因为此,我们才不能在故事估算上耗费太多时间。估算不应该由个人来进行,团队的Planning Game不可缺少。...

3205
来自专栏Android 研究

PMI-ACP 敏捷项目管理5——评估价值与规划价值

业务价值可以通过商业论证进行评估,通常会通过常用的财务术语进行评估。商业论证开发是敏捷项目管理中重要的起步点。商业论证是对项目的构想、目标、达到目的的策略、重大...

742
来自专栏DevOps时代的专栏

我们如何转型微服务?

微服务在这个时代是一个常常被提及的话题。 我在 SoundCloud时, 曾经负责把一个巨石架构的 Ruby on Rails 应用迁移到微服务。这个故事的技术...

1948
来自专栏数据猿

一张图清晰追溯数据库的发展历程(1962-2016年)

<数据猿导读> “数据库”起源于20世经90年代,当时美国为了战争的需要,把各种情报收集在一起,存储隐藏在计算机内,叫做Data Base(DB)。而当人们追溯...

3227
来自专栏靠谱PM

为什么你的原型总是改?

每个需求产生到以产品的形态呈现大致要走上图的几个步骤,需求的获取、需求的分析前面的文章已经写过怎么做了,这篇主要分享业务流程怎么做,有经验的小伙伴应该都组织或参...

643

扫码关注云+社区