2.1软件架构的基本概念
在定义架构之前,要先弄清楚为什么要引入架构这个概念。首先,架构是早期设计时的决策产物。通过架构可以预先看到软件的总体结构框架,为设计与实现铺路。架构是软件系统的高级抽象模型,可通过它理解和认识系统构造,也可以了解下一步设计或开发的方案,这符合人们对系统的认知过程。因此,我们可以说,采用架构技术的目标是:希望以此来提高有关软件工作人员和用户对系统设计和系统分析的能力,理解系统的决策方案,明确系统由哪几部分组成,以及它们之间是如何交互的,进一步影响到资源的配置、团队的组织和产品的质量。
功能需求并不是唯一的决策因素,设计时还有其他一些因素,如性能、可靠性、安全性、经费等各种目标。影响设计架构的非功能需求的因素有以下几方面。(1)开发公司负责人:成本低,能把开发计划安排好。
(2)营销部:有特点,并且成本低,能在市场上竞争。
(3)最终用户:性能好、安全可靠、好用。
(4)维护者:可修改、可扩充。
(5)客户:质量好又便宜,及时交付,少改动。
以上要求就需要借助架构来说明,由此出现了不同视角的多个视图组。当从不同的视角,不同的目的来设计时,就会有不同的表现形式或侧重面。因此,针对不同人员,针对不同开发阶段,架构就应提供不同视角的一组结构。
总之,架构既要说明系统是怎样组成的,又要为下一步的设计和开发提供决策。它是一种用于交流、分析、推理的工具,又是可重用的设计部件。为此,架构的定义争议很大,到目前为止,还没有统一的定论。但有一点是公认的,架构定义了软件组成的成分,同时也提供了软件设计决策,这两者相辅相成才能使软件架构的含义完整并发挥作用。
……
展开