首页 理论教育 一文探讨:8.1.8软件体系结构在软件开发中的重要性

一文探讨:8.1.8软件体系结构在软件开发中的重要性

时间:2023-06-28 理论教育 版权反馈
【摘要】:图8-8所示为体系结构与各阶段之间的联系2.软件体系结构在软件开发中的作用随着软件体系结构技术的逐步完善,它在软件生命周期中各个阶段所起的作用越来越显著。据统计,软件开发费用的80%是用于系统初步运行后的维护阶段。5)软件体系结构的研究提高了复用的抽象层次和粒度。

一文探讨:8.1.8软件体系结构在软件开发中的重要性

1.软件体系结构在软件开发中的地位

根据软件生命周期模型,Perry和Wolf确定了软件体系结构的设计在软件开发过程中的地位,重新将软件开发作如下划分。

1)需求分析阶段:主要根据用户的需求,决定系统的功能、性能、安全可靠等方面的特性。

2)体系结构设计阶段:主要任务是选择构件、确定构件之间的联系及对它们的约束,并以此为框架,满足用户的需求,为设计奠定基础。

3)模块设计阶段:主要完成系统的模块化,描述构件间的详细接口、主要算法数据结构的设计。

4)实际阶段:主要工作是满足需求分析的要求,根据体系结构和模块设计的方案,完成算法和数据结构的程序语言转换。

图8-8所示为体系结构与各阶段之间的联系

2.软件体系结构在软件开发中的作用

随着软件体系结构技术的逐步完善,它在软件生命周期中各个阶段所起的作用越来越显著。正如Barry Boelm所说,“一个软件系统的开发若没有体系结构,这个工程就不是完整的开发。”越来越多的实践也表明,要提高软件工程的有效性关键在于进行体系化的软件设计。下面总结一下软件体系结构的主要作用:

978-7-111-33186-5-Part01-333.jpg

图8-8 体系结构与各阶段之间的联系(www.xing528.com)

1)软件体系结构是系统开发过程中不同参与者之间进行交流和信息传播的媒介。用户、项目负责人、编程员、测试员等都以系统的软件体系结构为媒介,通过各自的视角获取不同的信息,并据此进行软件开发。

2)软件体系结构体现了系统的最早期设计,它给系统开发人员提供了系统实现时的接口与约束,系统开发人员只需根据这些接口及约束实现相应的构件,没有必要详细了解整个系统的各个细节。

3)软件体系结构设计的好坏在很大程度上决定了系统的质量,而且通过它还可以预测将来系统的质量。系统的质量衡量标准可分为两类,一类是运行时的质量,如运行时的效率、安全性、可靠性、功能完备性等;另一类是不能依靠系统运行时所能衡量的,例如,系统的适应性、可扩充性、可复用性等,这些性能只能通过系统开发和维护阶段的实际结果来衡量。例如,系统的可修改性主要依赖系统的模块化程度;系统的复用性主要依赖系统的大小及构件之间的相互作用复杂程度,尤其是当构件分布于不同的主机上时。目前,应用脚本来评价系统的非运行质量是一种广为接受的方法,如CMU/SEI所推行的软件体系结构方法(SAAM),就是一种以脚本为工具,对给定的软件体系结构进行最终系统质量预测的方法。

4)软件体系结构的引入进一步方便了系统的维护。据统计,软件开发费用的80%是用于系统初步运行后的维护阶段。系统正式投入运行后,由于用户需求的变更、系统运行环境的变化或新技术的发展等因素都会导致软件人员进一步修改系统。如何确定维护方案,即选择哪一种修改才能使错误发生率最小、对修改后的系统如何重新评估、修改的顺序或优先级的确定等,都需要深入了解系统构件间的相互依赖关系及构件的性能等特性。通常,对系统的维护可分为三个级别:

①局部级:针对单一构件的修改,不影响构件间的相互作用关系。

②非局部级:针对多个构件的修改,需改变构件的接口描述或构件间的相互作用关系,但并不影响系统的软件体系结构。

③体系结构级:改变系统中某些构件间的相互作用关系,影响到了系统的全局结构。

显然,一般最希望的是只进行局部级的维护,通过软件体系结构,可以指导软件的修改,使之接近局部级别。

5)软件体系结构的研究提高了复用的抽象层次和粒度

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈