软件开发架构影响开发团队结构

    作者:课课家教育更新于: 2019-03-14 18:58:26

      一个架构定义了解决一组特定关注点所关联的要素集。例如,一个订单处理系统的架构将定义这些要素集:订单条目、账号管理、消费者管理、实行、与外部系统集成、持久和安全等。

      而SoftwareArchitecture,软件架构(也成为软件体系结构)可以说是一种高级别的设计。它是对子系统、软件系统组件以及它们之间的相互关系的一种规范的描述。子系统和组件一般定义在不同的视图内,以显示软件系统的相关功能属性和非功能属性。软件构架是一件人工制品,这是软件高级别设计活动的结果。

      而架构作为高级别的设计,具体关注如下两个方面:

      (1)模型的结构。也即软件系统的结构,结构定义了系统中所要包含的元素。

      (2)模型的行为。也即软件系统的元素之间的相互作用。

      同时,在定义了系统模型的结构和行为后,架构也需要具有如下特征:

      1.应该关注重要元素。它不会在意所有的结构和行为的定义。它只在意那些被认为是重要的元素。重要的元素是那些有持久影响的,例如结构部分的主要部分,与核心行为相关的元素,和对诸如可靠性和可测量性等重要品质相关的元素。

      2.应该平衡涉众需求。架构是为了实现涉众的需要而创造的。但是,一般来说不可能满足所有的需求。不同的涉众之间可能有相互冲突的需求,所以应满足适当的平衡性。所以折中是构建进程的主要方面,且妥协是架构的重要属性。

      3.应该基于基本原理体现决策。架构的重要部分不仅仅是最终结果,架构本身,而是他为什么是如此的原因。

      4.应该符合一定的架构样式。大部分的架构来源于有相似关注的共享系统。这些相似性可被描述成某种特殊模式的架构风格,虽然经常是复杂和组合模式(由许多模式共同作用)。一种架构风格展示一个经验法典,并且有利于架构师重复使用类似经验。

      5.会被所处环境所影响。系统储存于环境中,且环境影响架构。这就是有时所提到的“环境中的架构”。基本上,环境决定了系统运行的范围,这些又决定了架构。影响架构的环境的因素包含架构所支持的商务环境、系统涉众群、内部技术限制(例如需要符合组织标准)和外部技术限制(例如对外部系统的接口或遵守外部规则的标准)。

      6.会影响团队结构。架构定义了一组连贯的相关元素。每一组都会要求不同的技术,而不同的技术会影响技术团队的结构。

      7.会出现在每个系统中。每个系统都有一个架构,即使这个架构没有被文档化,或者如果系统非常简单且包含单一元素。对架构文档化很有价值。

      为了找到一种方式来描述一系列经过验证、行之有效的架构设计,并让这种经验能够传递出去,来指导软件高级别设计。因而一种高级别的设计模式就应运而生。这种高级别的设计模式可以称为架构模式,也即架构样式,其表示软件系统的基本结构,它提供了一套预定义的子系统,规定了这些子系统的职责。由此我们就可以使用架构模式来描述如果根据一些整体构建原理来建立可行的软件系统。

      结合设计模式来看,我们可以发现:设计模式是中等规模的模式。它们在规模上比架构模式小,但又独立于特定编程语言和编程惯例(惯用法)。设计模式不会对整个软件系统的架构产生多大影响,但可能对其中的子系统有较大影响。

课课家教育

未登录