软件结构是指一种层次化的表况,由软件的组成成分构造软件的过程、方法和表示。它主要包括程序结构和文档结构。程序结构有两层含义:一是指程序的数据结构和控制结构;另一是指由比程序低一级的程序单位(模块)组成程序的过程、方法和表示。在后者含义下,具有代表性的是块结构和嵌套结构两种。块结构比较自然,各个部分之间通过一些公用变量取得联系;嵌套结构是在嵌套分程序的基础上引进局部性和动态性,以减少程序的初始信息量,但嵌套结构不如块结构直观,调试不方便。
常见的软件结构分为BS(Browser Server)和CS(Client Server)两种。BS结构不用安装,通过浏览器直接访问;CS结构需要安装客户端。
软件架构是软件的基本结构,是软件成功的最重要因素之一。合适的架构是软件成功的关键。常见的软件架构模式包括分层架构、事件驱动架构、微核架构(又称插件架构)、微服务架构和云架构。
分层架构是最常见的软件架构,也是事实上的标准架构。它将软件分成若干个水平层,每一层都有清晰的角色和分工,层与层之间通过接口通信。四层结构是最常见的,包括表现层(用户界面)、业务层(实现业务逻辑)、持久层(提供数据)和数据库(保存数据)。
软件的构造本质上就是组件与组合。组件是实现了特定功能的逻辑单元(程序),组合则是将“小组件集成为大组件,将大组件集成为整个应用系统”的联结方式。
软件架构是在架构思想和原则的基础上,对系统进行模块化设计和组合,形成系统整体结构和属性。架构不是一次性工作,是一个持续的工作和决策,关心很多非功能性需求,如性能指标、可靠性、可测试性、可扩展性、成本、版权问题等。
综上所述,软件结构是软件系统的组织和表示方式,包括程序结构和文档结构,涉及模块化设计、组件组合、层次化分层等概念。合适的软件结构能够提高软件的可维护性、可扩展性和可重用性,是软件工程中的重要组成部分。