软件架构是有关软件整体结构与组件的抽象描述，用于指导大型软件系统各个方面的设计。软件架构会包括软体组件、组件之间的关系，组件特性以及组件间关系的特性。软件架构可以和建筑物的架构相比拟。软件架构是构建计算机软件，开发系统以及计划进行的基础，可以列出开发团队需要完成的任务。软件架构是在软体的基础架构上进行决策，一但决定后，再修改的代价很大。软件架构中的决策包括在软体设计时的一些特殊结构性选项，例如要控制太空船登陆艇的系统需要快速而且可靠,因此需要选择适合实时计算的语言，而且为了满足可靠度的需求，程式需要有数