《面向模式的软件架构》阅读笔记三
软件系统将随时间演化,它们必须应对不断变化的技术、需求和系统环境。因此,仅以合适的方式对应用程序面临的怎个任务进行分解还不够,系统还必须为应对变化、扩展和修改做好准备。否则,软件系统维护起来既困难又需付出高昂的代价,在其生命周期较长时尤其如此。其次,软件系统的功能常常需要满足某些通用需求,如总体可操作性、可靠性或效率。为此,必须妥善地设计其软件架构。
软件设计指的是软件开发人员根据给定的功能和非功能特征,确定软件系统的组件以及组件之间关系的活动,其成果为系统的软件架构。
传统上,将系统高级结构分解称为“软件架构”、“软件架构设计”或者“粗粒度设计”,而将更详细的规划称为“设计”或者“详细设计”。
作者论述了开发方法与模式的相似之处:它们都被寄予厚望,有点开发人员把它们当做方之四海皆准的银弹,这个想法是错误的。
作者希望人们降低对开发方法和模式的期望,认为这样能够更好地利用它们。