软件架构这东西,众说纷纭,各有观点。什么是软件架构,我们能在网上找到无数种定义。 比如,我们可以这样定义:软件架构是软件系统的基本结构,体现在其组件、组件之间的关系、组件设计与演进的规则,以及体现这些规则的基础设施。怎么定义一般来说,基本上不重要,我们不是在写学术书籍,工程人员嘛,只关心软件架构能解决什么问题。 软件架构不是制定出来的,而是产品和业务需求所决定的,架构师所做的,只是忠于需求,并合理的表达了需求。软件架构也从来都不是一成不变的。在产品或者产品线的整个生命周期中,随着业务和需求的变化,软件架构不断发展和变化,以适应新的需要。 软件架构,也不是一个简单的项目问题,而是产品或产品线的技术战略问题。一个良好设计并推广的软件架构,能带来如下好处。 • 最大限度地减少不必要的返工 • 使嵌入式软件在宏观层面建立规划 • 增强复用性,降低开发成本 • 便于团队内部的技术培训 • 使技术积累更加容易
我经常看到的一个常见问题是,新手工程师,由于经历与知识不足,往往看不到项目全貌,很难深刻理解软件架构,他们往往要经过多年的专业训练,才能逐渐建立架构意识。 但软件架构真的只是资深工程师和架构师的专利吗?这个也不见得。古人作文,讲究立意为先。 今天工程师做项目和产品,也应该先立意。这个意,就是指要有高度。工程师入门能从软件架构的高度出发,看待软件问题,相信对软件的理解,会更加深刻一些。因此,我总结了软件架构的六个步骤,供嵌入式工程师参考。 1. 隔离硬件相关代码,建立抽象层 2. 建立统一的软件基础设施 3. 妥善识别和处理产品数据 4. 功能分层与分解 5. 组件及其接口设计 6. 测试、调试与跨平台开发的支持
需要注意的是,看完这六篇文章,并不足以保证嵌入式工程师学会软件架构。嵌入式软件架构师,是不可培养的。但至少,嵌入式工程师们,可以了解到什么是正确的努力方向,很多时候,选择比努力更加重要。 因此,在未来的几篇文章中,我们会一起探讨一下设计嵌入式软件架构,可以采取的六个步骤。
|