要做到嵌入式应用的代码逻辑清晰,且避免重复的造轮子,没有好的应用架构怎么行。 如果没有好的架构,移植将会是一件很痛苦的事情。如果没有好的架构,复用是最大的难题,没法更大限度的复用原有的代码。如果没有好的架构,一旦驱动改了,所有的地方都要改,费时费力且很容易出错。如果没有好的架构,应用层中穿插着硬件驱动层的代码,看着会是一片混乱,逻辑不清,代码维护起来会很困难。这里总结下我的嵌入式程序设计思路,分享出来与大家共同探讨,同时也欢迎提出不同意见。 现在的小朋友都爱玩搭积木的游戏,一个模 嵌入式应用软件架构设计是构建高效、可维护和可扩展的嵌入式系统的基石。在设计过程中,首要目标是确保代码逻辑清晰,避免重复编写相同功能,这可以通过良好的架构来实现。没有好的架构,软件的移植性会大大降低,复用性也会成为难题,因为每个部分可能都需要因驱动改动而修改,导致大量的工作量和潜在错误。此外,当硬件驱动层的代码混杂在应用层中,将使得代码变得混乱,维护起来极其困难。 在设计嵌入式应用架构时,可以借鉴模块化和分层的思想。将API分为驱动层API和应用层API,以减少驱动层直接在应用层中的暴露,提高代码的可移植性和复用性。应用层负责总体运行框架,组织调用业务逻辑,例如定时任务、卡处理、通信等。业务逻辑层包含具体的处理逻辑,如CPU卡处理、通信记录上传等。应用接口层则提供公共API供上层调用,汇总下层模块的接口。功能模块层包括算法库、文件库、通信库等,它们向上提供应用接口,向下调用驱动接口。硬件驱动层作为最底层,提供统一接口供上层调用,各驱动模块之间相互独立,遵循接口不变、不跨级调用等原则。 这种分层设计的好处在于,驱动层的变化不会影响到应用层,功能模块的更新也不会波及整个系统。例如,文件库模块在更换平台时,只需移植几个硬件层接口即可。同时,通过模块化的封装,可以创建如APP_Open_UseFile和APP_Read_UseFile这样的高级接口,简化应用层的代码,提高代码的可读性和可维护性。 参照谷歌Android的架构,可以看到即使是复杂的系统,也可以通过模块化和分层实现清晰的结构。对于嵌入式系统,如开发智能POS应用,可以将读写卡、消费记录管理、黑名单、界面显示等功能模块化,然后在不同的平台上进行移植或调试。例如,一个模拟POS工具可以在电脑上实现,仅关注功能的实现,之后再通过界面库(如QT)提升用户体验。 嵌入式应用软件架构设计的关键在于模块化和分层,这有助于代码的清晰组织、移植性和复用性。通过合理的设计,可以降低开发成本,提高系统的稳定性和可靠性,为未来的维护和扩展打下坚实基础。
2024-08-20 10:45:06 617KB
1
 《一线架构师实践指南》致力于为一线架构师,以及软件企业提供务实有效的架构设计方法指导。   《一线架构师实践指南》从架构师经常遇到的困惑出发,总结软件架构设计中经常遇到的问题,提出“方法体系必然是软件业界未来发展的重大趋势”,以及“架构设计方法已经扩展到方法体系”的观点。针对软件架构设计的三个阶段(Pre-Architecture阶段、 Conceptual Architecture阶段和Refined Architecture阶段)中的各个具体环节,给出了最佳的实践原则和方法,内容涵盖了从需求分析到生成架构的整个过程。 精彩书评   很值得有志成为“一线架构师”的人士学习和借鉴。   ——左春中科软总裁 中科院软件所研究员   两年来,我和我的团队应用了温老师的一些方法来开发电信行业无线网优平台这个大型平台软件,目前已经取得初步成功。   ——杜海亮夭元网络公司刑总工程师   本书是从实践中来的,自然可以很好地运用到实践中去,具有很高的实践指南价值。   ——宋兴烈起步科技总工程师   书中的三阶段理论、结构化需求与约束分析等不少概念一经指出,让人有茅塞顿开之感。书中有很实用的操作技巧,值得每一个架构师反复学习和操练,领会之后定会让您的架构设计更上一层楼。   ——董振江中兴通讯业务研究院副院长 目录 第1章 绪论 1.1 一线架构师:6个经典困惑 1.2 本书的4个核心主张 1.2.1 方法体系是大趋势 1.2.2 质疑驱动的架构设计 1.2.3 多阶段还是多视图? 1.2.4 内置最佳实践 1.3 ADMEMS方法体系:3个阶段,1个贯穿环节 1.3.1 Pre—architecture阶段:ADMEMS矩阵方法 1.3.2 Conceptual Architecture阶段:重大需求塑造做概念架构 1.3.3 Refined Architecture阶段:落地的5视图方法 1.3.4 持续关注非功能需求:“目标.场景.决策”表方法 1.4 如何运用本书解决“6大困惑” 第Ⅰ部分 Pre-Architecture阶段 第2章 Pre—architecture的故事 2.1 “不就是个MIS吗” 2.1.1 故事:外籍人员管理系统 2.1.2 探究:哪些因素构成了架构设计的约束性需求 2.2.1 故事:嵌入式0S的剪裁 2.2.2 探究:又是约束 2.3 “都是C++的错,换C重写” 2.3.1 故事:放弃C++,用C重写计费系统 2.3.2 探究:相互矛盾的质量属性 2.4 展望“Pre—architecture阶段篇” 第3章 Pre.architecture总论 3.1 什么是Pre.architecture 3.2 实际意义 3.2.1 需求理解的大局观 3.2.2 降低架构失败风险 3.2.3 尽早开始架构设计 3.2.4 明确架构设计的“驱动力” 3.3 业界现状 3.3.1 “唯经验论” 3.3.2 “目标不变论” 3.3.3 需求分类法的现状 3.3.4 需求决定架构的原理亟待归纳 3.4 实践要领 3.4.1 不同需求影响架构的不同原理,才是架构设计思维的基础 3.4.2 二维需求观与ADMEMS矩阵方法 3.4.3 关键需求决定架构,其余需求验证架构 3.4.4 Pre.architecture阶段的4个步骤 第4章 需求结构化与分析约束影响 4.1 为什么必须进行需求结构化 4.2 用ADMEMS矩阵方法进行需求结构化 4.2.1 范围:超越《软件需求规格说明书》 4.2.2 工具:ADMEMS矩阵 4.3 为什么必须分析约束影响 4.4 ADMEMS方法的“约束分类理论” 4.5 Big Picture:架构师应该这样理解约束 4.6 用ADMEMS矩阵方法辅助约束分析 4.7 大型82C网站案例:需求结构化与分析约束影响 4.7.1 需求结构化 4.7.2 分析约束影响(推导法则应用) 4.7.3 分析约束影响(查漏法则应用) 4.8 贯穿案例 4.8.1 PASS系统背景介绍 4.8.2 需求结构化 4.8.3 分析约束影响 第5章 确定关键质量与关键功能 5.1 为什么要确定架构的关键质量目标 5.2 确定关键质量的5大原则 5.2.1 整体思路 5.2.2 分类合适+必要扩充 5.2.3 考虑多方涉众 5.2.4 检查性思维 5.2.5 识别矛盾+划定优先级 5.2.6 严格程度符合领域与规模特点 5.3 为什么不是“全部功能作为驱动因素” 5.4 确定关键功能的4条规则 5.5 大型82C网站案例:确定关键质量与关键功能 5.6 贯穿案例 第Ⅱ部分 Conceptual Architecture阶段 第6章 概念架构的故事 6.1 一筹莫展 6.1.1 小张,以及他负责的产品 6.1.2 老王,后天见客户 6.2 制定方针 6.2.1 小张:我必须先进行概念架构的设计 6.2.2 老王:清晰的概念架构,明确的价值体现 6.3 柳暗花明 6.3.1 小张:重大需求塑造概念架构 6.3.2 老王:概念架构体现重大需求 6.4 结局与经验 6.4.1 小张:概念架构是设计大系统的关键 6.4.2 老王:概念架构是售前必修课 第7章 Conceptual Architecture总论 7.1 什么是概念架构 7.2 实际意义 第8章 初步设计 第9章 高层分割 第10章 考虑非功能需求 第Ⅲ部分 Refined Architecture阶段 第11章 细化架构的故事 第12章 Refined Architecture总论 第13章 逻辑架构 第14章 物理架构、运行架构、开发架构 第15章 数据架构的难点:数据分布 第Ⅳ部分 专题:非功能目标的方法论 第16章 故事:困扰己久的非功能问题 第17章 总论:非功能目标的设计环节 第18章 方法:“目标-场景-决策”表 索引 编辑手记 设计手记 查看全部↓ 精彩书摘   第1章 绪论   1.2 本书的4个核心主张   画龙须点睛。   在介绍具体方法之前,先来阐释本书的4个核心主张:   方法体系是大趋势。   质疑驱动的架构设计。   多阶段方法。   内置最佳实践的方法。   这4个核心主张可帮助读者领会ADMEMS方法之精髓。   1.2.1 方法体系是大趋势   单一方法已捉襟见肘。一线架构师真正需要的,是覆盖“需求进,架构出”全过程的实践指导--只有综合了不同方法优点的“方法体系”才堪此重任。本书认为,方法体系必然是软件业界未来发展的重大趋势之一。   本书将要系统介绍的方法体系的名字——ADMEMS,正是“Architectural Design Method has been Extended to Method System”的缩写。是的,ADMEMS方法不是“单一方法”,而是由多个各具特点的方法组成的“方法体系”。ADMEMS方法通过它的名字亮明了其核心主张。   ADMEMS方法命名由来   ADMEMS是“Architectural Design Method has been Extended to Method System(架构设计方法已经扩展到方法体系)”的缩写。   ……
2024-05-06 18:07:44 3.63MB 架构师 ADMEMS 需求机构化 逻辑架构
1
软件架构设计的艺术是一本描述软件架构的书籍,是学习软件开发的宝贵资料
2023-04-24 20:07:04 29.89MB 软件架构设计
1
本书介绍了当前软件架构设计领域先进的ADMEMS方法体系,并以作者十余年在软件开发中积累的经验,在架构设计不同阶段给出相应实践策略及有用的设计案例。
2023-03-11 13:28:23 3.63MB 架构 设计 实践
1
Peter Eeles和Peter Cripps所著的《构架实战——软件架构设计的过程》 257页完整版PDF电子书
2023-02-25 14:25:12 21.47MB 架构实战 蔡黄辉 马文涛
1
讨论 软件架构视图 1、为用户设计:满足功能需求及质量需求(易用性、性能、可伸缩性、持续可用性)。 2、为客户设计:充分考虑客户的业务目标、上线要求的时间、预算限制以及集成需要等,还有特别关注客户所在领域的业务规则和业务限制。 3、为开发员设计:关注“软件运行时质量属性”(可扩展性、可用重用性、可移植性、易理解性、易测试性)。 4、为管理员设计:为分工管理、协调控制和评估监控等工作提供清晰的基础。
2022-12-26 14:53:23 410KB 第4章 软件架构视图
1
嵌入式是软件设计领域的一个分支,它自身的诸多特点决定了系统架构师的选择,同时它的一些问题又具有相当的通用性,可以推广到其他的领域。提起嵌入式软件设计,传统的印象是单片机,汇编,高度依赖硬件。传统的嵌入式软件开发者往往只关注实现功能本身,而忽视诸如代码复用,数据和界面分离,可测试性等因素。从而导致嵌入式软件的质量高度依赖开发者的水平,成败系之一身。随着嵌入式软硬件的飞速发展,今天的嵌入式系统在功能,规模和复杂度各方面都有了极大的提升。比如,Marvell公司的PXA3xx系列的最高主频已经达到800Mhz,内建USB,WIFI,2D图形加速,32位DDR内存。在硬件上,今天的嵌入式系统已经达到甚
2022-12-22 12:39:17 258KB 嵌入式系统软件架构设计
1
软件架构最值实践 图文并茂 具体阐述了软件架构设计的步骤与心得 是你进行架构的好帮手
2022-11-26 16:26:00 558KB 软件架构
1
软件架构设计培训.ppt
2022-11-26 16:25:06 6.61MB 软件架构 设计培训 ppt
1
温昱有十年系统规划、架构设计和研发管理经验,在金融、航空、多媒体、电信、中间件平台等领域负责和参与多个大型系统的规划、设计、开发与管理。
2022-11-26 16:24:02 27.78MB 架构设计
1