`
loveseaside
  • 浏览: 152029 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

运用RUP 4+1视图方法进行软件架构设计[转](二)

阅读更多
开发视图:设计满足开发期质量属性的架构

软件架构的开发视图应当为开发人员提供切实的指导。任何影响全局的设计决策都应由架构设计来完成,这些决策如果"漏"到了后边,最终到了大规模并行开发阶段才发现,可能造成"程序员碰头儿临时决定"的情况大量出现,软件质量必然将下降甚至导致项目失败。

其中,采用哪些现成框架、哪些第三方SDK、乃至哪些中间件平台,都应该考虑是否由软件架构的开发视图确定下来。图6展示了设备调试系统的(一部分)软件架构开发视图:应用层将基于MFC设计实现,而通讯层采用了某串口通讯的第三方SDK。



图6 设备调试系统架构的开发视图
  

在说说约束性需求。约束应该是每个架构视图都应该关注和遵守的一些设计限制。例如,考虑到"一部分开发人员没有嵌入式开发经验"这条约束情况,架构师有必要明确说明系统的目标程序是如何编译而来的:图7展示了整个系统的桌面部分的目标程序pc-moduel.exe、以及嵌入式模块rom-module.hex是如何编译而来的。这个全局性的描述无疑对没有经验的开发人员提供了实感,利于更全面地理解系统的软件架构。



图7 设备调试系统架构的开发视图
  


处理视图:设计满足运行期质量属性的架构

性能是软件系统运行期间所表现出的一种质量水平,一般用系统响应时间和系统吞吐量来衡量。为了达到高性能的要求,软件架构师应当针对软件的运行时情况进行分析与设计,这就是我们所谓的软件架构的处理视图的目标。处理视图关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。图8展示了设备调试系统架构的处理视图。

可以看出,架构师为了满足高性能需求,采用了多线程的设计:

应用层中的线程代表主程序的运行,它直接利用了MFC的主窗口线程。无论是用户交互,还是串口的数据到达,均采取异步事件的方式处理,杜绝了任何"忙等待"无谓的耗时,也缩短了系统响应时间。 
通讯层有独立的线程控制着"上上下下"的数据,并设置了数据缓冲区,使数据的接收和数据的处理相对独立,从而数据接收不会因暂时的处理忙碌而停滞,增加了系统吞吐量。 
嵌入层的设计中,分别通过时钟中断和RS232口中断来激发相应的处理逻辑,达到轮询和收发数据的目的。 


 

图8 设备调试系统架构的处理视图
  


 

物理视图:和部署相关的架构决策

软件最终要驻留、安装或部署到硬件才能运行,而软件架构的物理视图关注"目标程序及其依赖的运行库和系统软件"最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。图9所示的物理架构视图表达了设备调试系统软件和硬件的映射关系。可以看出,嵌入部分驻留在调试机中(调试机是专用单板机),而PC机上是常见的桌面可执行程序的形式。



图9 设备调试系统架构的物理视图
  

我们还可能根据具体情况的需要,通过物理架构视图更明确地表达具体目标模块及其通讯结构,如图10所示。



图10 设备调试系统架构的物理视图
  

 

小结与说明

所谓本立道生。深入理解软件需求分类的复杂性,明确区分功能需求、约束、运行期质量属性、开发期质量属性等不同种类的需求就是"本",因为各类需求对架构设计的影响截然不同。本文通过具体案例的分析,展示了如何通过RUP的4+1视图方法,针对不同需求进行架构设计,从而确保重要的需求一一被满足。

本文重点在于方法的解说,因此省略了对架构设计中不少具体问题的说明,同时本文提供的说明架构设计方案的模型也经过了简化。请读者注意。


参考资料 

Philippe Kruchten著,周伯生等译. Rational统一过程引论(原书第2版). 机械工业出版社,2002 
Karl E. Wiegers著,刘伟琴等译. 软件需求(第2版). 清华大学出版社,2004 


关于作者

 

温昱。架构设计师,技术咨询顾问,松耦合空间网站创办人。擅长面向对象、架构和框架设计,对设计模式、UML、RUP和软件工程有深入研究。曾在金融、航空、多媒体、网络管理、中间件平台等领域负责和参与多个大型系统的设计和开发。发表《拥抱变化:敏捷设计从理论到实践》、《随需而变的RUP》等文章数十篇,目前译著有《应用框架的设计与实现--.NET平台》一书。可以通过wenyu@china.com与温昱联系。

分享到:
评论

相关推荐

    运用RUP 4+1视图方法进行软件架构设计

    ### 运用RUP 4+1视图方法进行软件架构设计 #### 一、引言 在软件开发过程中,架构设计是确保软件系统能够高效、稳定运行的关键环节。随着软件系统的复杂度不断提高,传统的单一视角已经无法满足设计需求。RUP 4+1...

    温昱:从需求分类到多视图架构设计方法(会议全文)

    ### 温昱:从需求分类到多视图架构设计方法 #### 重要性与挑战 在软件开发领域,创建满足用户需求的高质量软件系统是一项复杂且...在软件工程领域,掌握并灵活运用多视图架构设计方法,无疑是迈向成功的坚实一步。

    从需求分类到多视图架构设计方法

    RUP(Rational统一过程)的4+1视图方法提供了一种全面而系统的多视图架构设计手段。该方法的命名来源是它将软件架构设计分为四个基本视图以及一个使用场景视图,这五个视图各有其关注焦点,相互补充,形成了一个完整...

    北京中科信软系统架构培训软件架构培训

    - RUP的4+1视图体系结构:这是一种架构描述方法,包括逻辑视图、开发视图、进程视图、物理视图和用例视图,帮助理解软件系统。 4. 软件架构国际标准 - 架构流程:涉及软件架构的设计和实现的过程。 - 架构约束:...

    OO方法、RUP与UML建模

    "4+1"视图模型是软件架构的一种表示方式,它包括: - **用例视图**:关注终端用户的功能需求,展示系统提供的服务。 - **逻辑视图**:面向分析师和设计师,描述系统的静态结构。 - **进程视图**:关注系统性能、可...

    谈谈对软件架构的认识

    在设计时,通常会使用“4+1视图”模型来全面考虑架构: - **逻辑视图**:描述了系统如何满足功能需求,展示了模块和组件的结构。 - **进程视图**:关注系统的并发和同步,描述了运行时的实体及其交互。 - **物理...

    SaaS+架构设计说明 (2).pdf

    RUP(Rational Unified Process)的“4+1”视图模式是架构设计中的经典方法论。场景视图描绘了用户的业务场景,是设计的起点和终点;逻辑视图关注功能和模块间的关系;开发视图描述开发环境;过程视图涉及运行时的...

    软件架构设计模式与实践.ppt

    通过借鉴RUP(统一过程)的设计流程,可以遵循一套系统化的方法进行架构设计,包括领域模型和业务逻辑层的实现,这两者是系统核心功能的载体。 设计模式的本质在于提供解决常见设计问题的可复用解决方案,它们是...

    UML系统分析与架构设计实战

    UML系统分析与架构设计实战是一门实践性很强的课程,它主要通过统一建模语言(UML)作为工具,系统地阐述了软件开发过程中系统分析与架构设计的各种方法和技巧。在软件开发领域,UML是一种标准的建模语言,被广泛...

    rup(软件统一过程)大讲堂

    ### RUP(软件统一过程)概述与发展历程 #### RUP发展历程 RUP(Rational Unified Process),即理性统一过程,是一种面向...通过合理地运用RUP,软件开发团队可以在保证项目质量和进度的同时,提高整体的开发效率。

    RUP和UML相关知识整理1

    RUP(Rational Unified Process)是一种软件开发生命周期方法论,它结合了迭代和面向体系结构的方法。UML(Unified Modeling ...通过理解和熟练运用RUP和UML,开发者能够更有效地规划、设计和实现复杂的软件系统。

    RUP学习总结

    通过实践UML对RUP过程建模并运用设计模式,可以加深对软件开发流程的理解,提高设计和实现的效率。这样的学习总结有助于巩固理论知识,同时为实际项目开发提供了实用的技能。 综上所述,掌握RUP、UML和设计模式是...

    SaaS+架构设计说明 (2).docx

    在设计SaaS架构时,RUP(Rational Unified Process)的“4+1”视图模式是一个常用的方法论。这五个视图分别是从不同角度理解系统:场景视图描述用户业务场景和需求,逻辑视图关注功能和模块划分,开发视图描述开发...

    关于举办“高级系统架构师培训”的通知doc-中部软件产业园.docx

    此外,培训还可能涵盖软件架构设计的方法论,比如如何使用设计模式解决特定问题,以及如何在实践中运用这些模式来创建高效、灵活的系统。课程还将涉及软件架构设计的关键技术,如模块化、组件化、服务化等,以及如何...

Global site tag (gtag.js) - Google Analytics