【软考系统架构设计师】软件架构知识总结
软件架构知识总结
软件架构的概念
需求做好以后,需要将需求转换成详细设计,这两个阶段会有脱节的情况,有鸿沟的情况,这个时候就需要一个老师傅,他知道如何应对需求并做成方案,来衔接需求和设计这两部分。
将识别到的软件需求分配到各个部分就是架构做的事情。
架构设计的一个核心问题就是能够达到架构级别的复用。 架构风格定义了用于描述系统的术语表和一组指导构建系统的规则。
UML的4+1视图 | 结构类型 | 对应关系 | 4+1视图特征说明 |
---|---|---|---|
UML逻辑视图 | 静态结构 | 对应最终用户 | 功能需求 |
UML实现视图 | 静态结构 | 对应开发人员 | 也叫模块视图,侧重软件模块的组织和管理 |
UML进程视图 | 动态结构 | 对应进程视图 | 性能,吞吐量,侧重于系统的运行特征 |
UML部署视图 | 动态结构 | 对应物理视图 | 系统拓扑,安装通信,主要考虑如何把软件映射到硬件上 |
UML用例视图 | – | 对应场景 | 重要系统活动的抽象 |
软件架构风格
架构风格反映了领域中众多系统所共有的结构和语义特征,并指导如何将各个构件有效的组织成一个完整的系统。
软件架构领域很多思想借鉴了建筑领域的内容。 通过对架构风格的定义,在项目中可以更好的实现技术的沟通。
目前主流的一共有五种架构风格,现在的软件开发过程中,往往会使用这其中的一种或多种风格的组合情况。
数据流风格
典型代表就是批处理和管道过滤器风格。它的思想就是整个架构是以数据为导向的。
批处理风格有一个特点就是在整个流程当中是没有和用户交互的。 批处理风格中数据必须是完整的。而管道过滤器是支持流式的数据处理。如果部分处理完的话,那么先处理完的那部分就进入第二阶段进行处理,它不必等着一批处理完再走下一批,这就是管道过滤器和批处理最大的不一样的地方。
在DOS系统中,如果需要执行多个命令,一个命令的输出就是另一个命令的输入。这就是管道过滤器风格的显著特征。 编译器先做词法分析再做语法分析,它也用到了管道过滤器风格。