1.1软件架构作为软件工程的一个方面
软件项目的问题早在20世纪60年代就被发现了,当时被称为“软件危机”。
1968年10月7日至11日,北约科学委员会邀请了62名国际知名的研究人员和专家参加在德国加米施举行的会议,探讨软件开发的未来。这个会议现在被认为是现代软件工程的诞生[Dij72]。

图1-1 1973年以来关于软件架构主题的出版物[Reu12]
与可以依靠几千年经验的传统工程学科(如建筑)相比,软件工程仍然是一个极其年轻的学科。因此,软件架构的子学科更加年轻也就不足为奇了。图1-1显示了自20世纪90年代以来关于软件架构主题的出版物数量的增加[Reu12]。这些数据取自Web of knowledge——一个最大、最著名的出版物数据库。
从建筑建筑的悠久历史来看,马库斯·维特鲁威·波利奥(Marcus Vitruvius Pollio,公元前一世纪的罗马建筑师)是一位建筑先驱。在《De Architecture》一书中,他认为好的建筑可以通过以下要素的巧妙组合来实现:
• Utilitas(用途): 该建筑发挥了它的功能。
• Firmitas(可靠性): 建筑物稳定耐用。
• Venustas(高雅): 建筑美观。

图1-2古罗马时期的建筑
这个假设可以直接应用到软件架构的学科中。软件架构的目标(因此软件架构师的主要任务)是构建一个平衡以下三个属性的系统:
• Utilitas(用途): 软件满足客户及其用户的功能性和非功能性需求。
• Firmitas(可靠性): 软件在指定的质量要求方面是稳定的(例如,同时支持的用户数量)。它还必须允许未来的增强,而不必完全重建系统。
• Venustas(高雅): 该软件的结构使其使用起来直观,同时也易于维护和开发。
Last updated