1.3.2 管理软件组件的依赖
1. 整体和谐
复杂嵌入式软件成功与否的关键事项是:软、硬件组件能否圆满和谐地整合起来。这首要重视系统的整体架构,以确保内部组件间的可调换性。传统上,程序员偏向系统流程的分析,而忽略系统架构(Architecture)的设计,如此的思维习惯,容易失去详细单元的描述,而忽略系统本身整体脉络的掌握,进而导致系统的迷失与僵化。Jack Harich说到(Harich98):
“Sadly enough, most software is schedule or requirements driven. Better is architecture driven (or centric), where the architecture is designed first and the product second…Software should be architectural driven, while projects should be risk driven. When looking at an unfamiliar piece of software, the first question to ask is "Is it architecture driven?" I adopted this philosophy from Grady Booch.”
(令人惋惜的是,多数的软件系统开发是采取时间驱动或需求驱动模式。较佳的应该是架构驱动,此种模式是架构的设计在先,然后才在该设计的规范下进行系统营造。……软件应该是架构驱动,而项目应该是风险驱动。当看到一个新的软件系统时,首先就该问:它是架构驱动吗? 我的这种思维来自Grady Booch。)
这种需求驱动的系统开发,将失去整体的和谐感,如图1-1所示。
![]() |
| 图1-1 欠缺架构设计,没有和谐的整体 |
传统思维习惯上,注重的是局部系统各别的分析与设计,其焦点摆在局部(Part),难免有画地自限之虞,而没有人着眼于整体(Whole)格局应有的思考及衡量。世界知名的软件专家Cheesman 与 Daniels,在其2001年所出版的UML Component一书中说到(Chee2001):
“This places the emphasis on the architecture of the system, on being able to manage the total system, as its various components evolve and its requirements change, …We are focus on the whole, rather than the parts.”
(所以,强调对于系统架构应有的重视,是由于我们期望在组件持续演进及需求不断变化的环境之下,仍然能够对整个系统作出妥善的管理,……换言之,我们着眼于整体,而非只是局部。)
![]() |
| 图1-2 有好的架构分析与设计 |
完善架构所展现的巧妙规划,可为组件的快速组装与更新提供良好的根基。由于在当今通信网络发达的时代里,嵌入式软件必须在软、硬件组件(Component)的快速淘汰与重组的过程中保持整体的和谐,并能时时创新,有效地适应环境的瞬息万变。如果没有稳定可靠的架构,就难以达到整体和谐与创新的优势了。所以Cheesman 与 Daniels也解释到:
“…the main driver today is that things keep changing, and often…there is no longer any hope that centralized control can not be exerted. In such an environment one of the primary objectives of a component is that it must be easily replaceable.”
(然而,今天问题的根源在于,一切事情都快速地变迁,……中央集权的管理机制已无用武之地。在如此的环境里,组件化设计的首要目标是:能够轻易地更新与置换,以长保系统的优势。)
架构驱动(Architecture-Driven)又称为“以架构为中心”(Architecture-Centric)。它是以系统架构的稳定,以及弹性扩展的能力为焦点,以确保系统组件之间的和谐沟通与容易合作,并且随着企业的成长,能够不断地更新或新增组件。使组件展现美好的新陈代谢能力,而整体系统就能够生生不息,日益茁壮了。
组件依赖的管理是嵌入式软件成功与否的关键因素。Cheesman 与 Daniels在其UML Components一书里也说到:
“What major challenge is the component approach to system development addressing?”
(组件式软件开发方法欲解决软件开发上的哪些挑战或难题呢?)
又说到:
“For us that challenge is managing change. This means building for change in the first place by placing primary emphasis during architecture and design on dependencies between the components, and the management of those dependencies.”
(欲解决的挑战就是:管理变化。这意味着,应变能力是系统建构的首要考量,因而在进行系统架构和设计时,必须特别关注于组件之间的依赖,以及依赖的管理。)
精致而巧妙地管理组件依赖,就能达到如同SONY的随身听产品一般,更换单一组件时,几乎不对其他部件或整个系统产生影响,如此即能促进系统的新陈代谢,维持系统的持久和谐。
| 回书目 上一节 下一节 |
|
· C语言之基础自测获奖名.. · Linux服务器架设自测获.. · 边界网关安全防护自测.. · Cisco CCNA最新真题自.. · 我在美联储监管银行 书.. · 我在美联储监管银行 目.. |
· 我在美联储监管银行 前.. · 入侵的艺术 目录 · 入侵的艺术 前言 · 网管员全真面试题自测.. · 子弹的本质—— 形势没.. · 学习大量的词汇—— 对.. |
|
|||
| · 华为、贝恩资本22亿美.. · 入侵防护系统(IPS)初探 · 假期读书充电 · 如何优化IT 控制能耗 · Sun以10亿美元并购开源.. · 操作系统密码恢复专题 · Windows Server 2008 · 2008年IT产业29个预言 |
· SQL Server 2005全解 · Windows系统加固专题 · Windows Home Server .. · 病毒查杀专题 · 802.11n:下一代的无线.. · 反垃圾邮件技术应用 · 运营商封堵非法ADSL共享 · VoIP的安全性探讨 |
||
|
|||
| · VPN技术 · SQL Server 2005全解 · SOA 面向服务架构 · 子网掩码教程 · SQL Server 2005全解 · 三层交换技术专题 · Windows远程桌面应用 · 深入了解PGP加密技术 |
· MySQL数据库备份 · 病毒查杀专题 · VPN技术 · Solaris 10 配置管理 · Linux 基础 · SSL VPN详细知识 · Linux防火墙 · 路由器设置与口令恢复 |
||
|
|||
| · VPN技术 · SQL Server 2005全解 · SQL Server 2005全解 · SOA 面向服务架构 · 子网掩码教程 · 三层交换技术专题 · Windows远程桌面应用 · MySQL数据库备份 |
· 身份认证技术 · 病毒查杀专题 · 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · 常用交换机典型配置 · Linux 集群技术专题 · VPN技术 |
||