课程总结
本学期学习了高级软件工程课程,收获良多。
课程基本分为一些实际工具的学习和软件架构的一些基本概念、架构方法。对软件架构的迭代优化和属性做了一些讨论,其中让我比较感兴趣的是的一些架构的描述方法。
在课程之外,我也学习到进行软件架构设计的五视图法。五视图法从宏观上说明一套软件系统的组成与特性。包括软件可以提供什么样的功能,软件代码的层次结构,软件的部署与网络结构,软件的数据结构,软件的性能特征。
下面简单介绍一下
什么是架构设计
架构的本质就是对系统进行有序化地重构以致符合当前业务的发展,并可以快速扩展。
那什么样的系统要考虑做架构设计?
-
需求相对复杂.
-
非功能性需求在整个系统占据重要位置.
-
系统生命周期长,有扩展性需求.
-
系统基于组件或者集成的需要.
-
业务流程再造的需要.
软件架构就是实用而且优雅的设计,它不在于分多少层,或者应用了多少种设计模式/架构模式等。它应该是以满足实现用户需求为前提,以开发人员普遍可接受为根本的,而且要符合系统特性和业务发展需要的,从软件设计的角度,能够达到层次清晰、可维护、可重用、可扩展…就非常优秀了,无需刻意去纠结分了多少层,是否使用了什么模式,有多么抽象等。
以面向对象设计为例,基本目标是“高内聚、低耦合”,为此我们可能会遵循一些常见的设计原则(例如经典的SOLID设计原则)。最后纠正一点,通常我们所说的模式,其实又分为很多种,并不是仅仅指的是“设计模式”(设计模式也有千千万&#