Architecture 如何使软件与业务流程保持一致?

Architecture 如何使软件与业务流程保持一致?,architecture,business-process,Architecture,Business Process,根据我的经验,当业务流程发生变化时,与业务流程保持良好一致的软件更容易发生变化。什么类型的体系结构最适合这种方法?油嘴滑舌的回答:企业体系结构 你到底在寻找什么样的答案?根据我的经验,每家企业都有其独特的需求,特别是当涉及到它们想要发展的方向时。可修改性只是其中一个令人向往的品质,它与成本控制、上市时间、效率、安全性、可用性等竞争资源。Glib答案:企业架构 你到底在寻找什么样的答案?根据我的经验,每家企业都有其独特的需求,特别是当涉及到它们想要发展的方向时。可修改性只是其中一个可取的品质,它与

根据我的经验,当业务流程发生变化时,与业务流程保持良好一致的软件更容易发生变化。什么类型的体系结构最适合这种方法?

油嘴滑舌的回答:企业体系结构


你到底在寻找什么样的答案?根据我的经验,每家企业都有其独特的需求,特别是当涉及到它们想要发展的方向时。可修改性只是其中一个令人向往的品质,它与成本控制、上市时间、效率、安全性、可用性等竞争资源。

Glib答案:企业架构


你到底在寻找什么样的答案?根据我的经验,每家企业都有其独特的需求,特别是当涉及到它们想要发展的方向时。可修改性只是其中一个可取的品质,它与成本控制、上市时间、效率、安全性、可用性以及其他方面竞争资源。

好问题。。。但是首先。。。SOA?这是一个很好的流行词,但经常被误解,主要是因为缺乏任何一个“真正”的定义。真见鬼!甚至Martin Fowler现在也将其称为“面向服务的双重性”,并鼓励人们避免提起它

真的没有“一个”“最好”的答案。企业对IT的需求可以是:;而且通常是;变化很大。这些需求通常受到外部驱动因素的影响,如客户、合作伙伴、市场趋势、立法、监管机构等。在许多情况下,这些驱动因素决定了体系结构,或者至少影响或限制了您完全实现您认为“更好”的体系结构的能力。这听起来可能也很油嘴滑舌,但这不是我的本意。有“最佳”架构的概念导致许多人在追求它的过程中继续浪费大量的精力(和金钱)。虽然这可能不是有意的,但这些观点往往得到了成为单一供应商/社区代理的人的支持,或者是作为产品向您销售流程的人的支持

尽管如此。。。从软件工程的角度来看,旧的原则仍然是确保您能够满足业务需求的最可靠的手段。比如说,

  • 分开你的顾虑
  • 分层您的架构
  • 灵活设计
  • 单独测试层,然后一起测试
  • 采用持续集成实践使回归更快可见
  • 将需求和规范作为主要驱动因素
  • 投资工具,投资开发人员
  • 等等
注意,这里没有提到任何一种架构模式、技术或语言。。。这是因为这些因素并不是真正的驱动因素,尽管它们可能是促成因素,并且会随着各种因素的变化而变化。让我再谈一点。“业务流程”和软件工程流程有非常不同的关注点、视角等。。。强迫其中一组与另一组功能相同只会导致彻底失败。这并不是说他们不应该分享诸如日期、功能交付物等承诺。这些团队需要不同才能有效地完成他们的工作,但肯定需要找到方法来沟通那些需要共同愿景的事情。这是任何数量的设计和生命周期管理过程都可以提供帮助的地方。(例如DDD、MSF、SCRUM、CMMI等)


我的意思是这是建设性的。。。希望有帮助。

好问题。。。但是首先。。。SOA?这是一个很好的流行词,但经常被误解,主要是因为缺乏任何一个“真正”的定义。真见鬼!甚至Martin Fowler现在也将其称为“面向服务的双重性”,并鼓励人们避免提起它

真的没有“一个”“最好”的答案。企业对IT的需求可以是:;而且通常是;变化很大。这些需求通常受到外部驱动因素的影响,如客户、合作伙伴、市场趋势、立法、监管机构等。在许多情况下,这些驱动因素决定了体系结构,或者至少影响或限制了您完全实现您认为“更好”的体系结构的能力。这听起来可能也很油嘴滑舌,但这不是我的本意。有“最佳”架构的概念导致许多人在追求它的过程中继续浪费大量的精力(和金钱)。虽然这可能不是有意的,但这些观点往往得到了成为单一供应商/社区代理的人的支持,或者是作为产品向您销售流程的人的支持

尽管如此。。。从软件工程的角度来看,旧的原则仍然是确保您能够满足业务需求的最可靠的手段。比如说,

  • 分开你的顾虑
  • 分层您的架构
  • 灵活设计
  • 单独测试层,然后一起测试
  • 采用持续集成实践使回归更快可见
  • 将需求和规范作为主要驱动因素
  • 投资工具,投资开发人员
  • 等等
注意,这里没有提到任何一种架构模式、技术或语言。。。这是因为这些因素并不是真正的驱动因素,尽管它们可能是促成因素,并且会随着各种因素的变化而变化。让我再谈一点。“业务流程”和软件工程流程有非常不同的关注点、视角等。。。强迫其中一组与另一组功能相同只会导致彻底失败。这并不是说他们不应该分享诸如日期、功能交付物等承诺。这些团队需要不同才能有效地完成他们的工作,但肯定需要找到方法来沟通那些需要共同愿景的事情。这是任何数量的设计和生命周期管理过程都可以提供帮助的地方。(例如。