ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:181.48KB ,
资源ID:4152709      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4152709.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(4+1模型案例.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

4+1模型案例.docx

1、4+1模型案例4+1模型案例案例教学1:4+1视图方法进行软件体系结构设计 要开发出用户满意的软件并不是件容易的事,软件体系结构师必须全面把握各种各样的需求、权衡需求之间有可能的矛盾之处,分门别类地将不同需求一一满足。本文从理解需求种类的复杂性谈起,通过具体案例的分析,展示了如何通过RUP的4+1视图方法,针对不同需求进行体系结构设计,从而确保重要的需求一一被满足。1、呼唤体系结构设计的多重视图方法灵感一闪,就想出了把大象放进冰箱的办法,这自然好。但希望每个体系结构设计策略都依靠灵感是不现实的-我们需要系统方法的指导。需要体系结构设计的多重视图方法,从根本上来说是因为需求种类的复杂性所致。以工

2、程领域的例子开道吧。比如设计一座跨江大桥:我们会考虑连接南北的公路交通这个功能需求,从而初步设计出理想化的桥墩支撑的公路桥方案;然后还要考虑造桥要面临的约束条件,这个约束条件可能是不能影响万吨轮从桥下通过,于是细化设计方案,规定桥墩的高度和桥墩之间的间距;另外还要顾及大桥的使用期质量属性,比如为了能在湍急的江流中保持稳固,可以把大桥桥墩深深地建在岩石层之上,和大地浑然一体;其实,建造期间的质量属性也很值得考虑,比如在大桥的设计过程中考虑施工方便性的一些措施。从上面的例子中我们还惊讶地发现,非功能需求-人们最经常忽视的一大类需求-包括的内容非常宽、并且极其重要。非功能需求又可以分为如下三类:*

3、约束。要开发出用户满意的软件并不是件容易的事,而全面理解要设计的软件系统所面临的约束可以使你向成功迈进一步。约束性需求既包括企业级的商业考虑(例如项目预算有限),也包括最终用户级的实际情况(例如用户的平均电脑操作水平偏低);既可能包括具体技术的明确要求(例如要求能在Linux上运行),又可能需要考虑开发团队的真实状况(例如开发人员分散在不同地点)。这些约束性需求当然对体系结构设计影响很大,比如受到项目预算有限的限制,体系结构师就不应选择昂贵的技术或中间件等,而考虑到开发人员分散在不同地点,就更应注重软件模块职责划分的合理性、松耦合性等等。* 运行期质量属性。这类需求主要指软件系统在运行期间表现

4、出的质量水平。运行期质量属性非常关键,因为它们直接影响着客户对软件系统的满意度,大多数客户也不会接受运行期质量属性拙劣的软件系统。常见的运行期质量属性包括软件系统的易用性、性能、可伸缩性、持续可用性、鲁棒性、安全性等。在我们的超市系统的案例中,用户对高性能提出了具体要求(真正的性能需求应该量化,我们的表1没体现),他们不能容忍金额合计超过 2秒的延时。* 开发期质量属性。这类非功能需求中的某些项人们倒是念念不忘,可惜很多人并没有意识到开发期质量属性和 运行期质量属性对体系结构设计的影响到底有何不同。开发期质量属性是开发人员最为关心的,要达到怎样的目标应根据项目的具体情况而定,而过度设计(ove

5、rengineering)会花费额外的代价。 3、什么是软件体系结构视图 那么,什么是软件体系结构视图呢?Philippe Kruchten在其著作Rational统一过程引论中写道:一个体系结构视图是对于从某一视角或某一点上看到的系统所做的简化描述,描述中涵盖了系统的某一特定方面,而省略了于此方面无关的实体。也就是说,体系结构要涵盖的内容和决策太多了,超过了人脑一蹴而就的能力范围,因此采用分而治之的办法从不同视角分别设计;同时,也为软件体系结构的理解、交流和归档提供了方便。值得特别说明的,大多数书籍中都强调多视图方法是软件体系结构归档的方法,其实不然。多视图方法不仅仅是体系结构归档技术,更是

6、指导我们进行体系结构设计的思维方法。4、Philippe Kruchten提出的4+1视图方法1995年,Philippe Kruchten在IEEE Software上发表了题为The 4+1 View Model of Architecture的论文,引起了业界的极大关注,并最终被RUP采纳。如图2所示。图2 Philippe Kruchten提出的4+1视图方法该方法的不同体系结构视图承载不同的体系结构设计决策,支持不同的目标和用途:* 逻辑视图:当采用面向对象的设计方法时,逻辑视图即对象模型。* 开发视图:描述软件在开发环境下的静态组织。* 处理视图/进程视图,processing/:

7、描述系统的并发和同步方面的设计。* 物理视图:描述软件如何映射到硬件,反映系统在分布方面的设计。 运用4+1视图方法:针对不同需求进行体系结构设计 如前文所述,要开发出用户满意的软件并不是件容易的事,软件体系结构师必须全面把握各种各样的需求、权衡需求之间有可能的矛盾之处,分门别类地将不同需求一一满足。Philippe Kruchten提出的4+1视图方法为软件体系结构师一一征服需求提供了良好基础,如图3所示。图3 运用4+1视图方法针对不同需求进行体系结构设计逻辑视图。逻辑视图关注功能,不仅包括用户可见的功能,还包括为实现用户功能而必须提供的辅助功能模块;它们可能是逻辑层、功能模块等。开发视图

8、。开发视图关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK和现成框架、类库,以及开发的系统将运行于其上的系统软件或中间件。开发视图和逻辑视图之间可能存在一定的映射关系:比如逻辑层一般会映射到多个程序包等。处理视图。处理视图关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。处理视图和开发视图的关系:开发视图一般偏重程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,处理视图比较关注的正是这些运行时单元的交互问题。物理视图。物理视图关注目标程序及其依赖的运行库和系统软件最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系

9、统的可靠性、可伸缩性等要求。物理视图和处理视图的关系:处理视图特别关注目标程序的动态执行情况,而物理视图重视目标程序的静态位置问题;物理视图是综合考虑软件系统和整个IT系统相互影响的体系结构视图。5、设备调试系统案例概述本文的以下部分,将研究一个案例:某型号设备调试系统。设备调试员通过使用该系统,可以察看设备状态(设备的状态信息由专用的数据采集器实时采集)、发送调试命令。该系统的用例图如图4所示。图4 设备调试系统的用例图经过研制方和委托方的紧密配合,最终确定的需求可以总括地用表2来表示。表2 设备调试系统的需求下面运用RUP推荐的4+1视图方法,从不同视图进行体系结构设计,来分门别类地将不同

10、需求一一满足。A.逻辑视图:设计满足功能需求的体系结构首先根据功能需求进行初步设计,进行大粒度的职责划分。如图5所示。* 应用层负责设备状态的显示,并提供模拟控制台供用户发送调试命令。* 应用层使用通讯层和嵌入层进行交互,但应用层不知道通讯的细节。* 通讯层负责在RS232协议之上实现一套专用的应用协议。* 当应用层发送来包含调试指令的协议包,由通讯层负责按RS232协议将之传递给嵌入层。* 当嵌入层发送来原始数据,由通讯层将之解释成应用协议包发送给应用层。* 嵌入层负责对调试设备的具体控制,以及高频度地从数据采集器读取设备状态数据。* 设备控制指令的物理规格被封装在嵌入层内部,读取数采器的具

11、体细节也被封装在嵌入层内部。 图5 设备调试系统体系结构的逻辑视图B. 开发视图:设计满足开发期质量属性的体系结构软件体系结构的开发视图应当为开发人员提供切实的指导。任何影响全局的设计决策都应由体系结构设计来完成,这些决策如果漏到了后边,最终到了大规模并行开发阶段才发现,可能造成程序员碰头儿临时决定的情况大量出现,软件质量必然将下降甚至导致项目失败。其中,采用哪些现成框架、哪些第三方SDK、乃至哪些中间件平台,都应该考虑是否由软件体系结构的开发视图确定下来。图6展示了设备调试系统的(一部分)软件体系结构开发视图:应用层将基于MFC设计实现,而通讯层采用了某串口通讯的第三方SDK。图6 设备调试

12、系统体系结构的开发视图约束性需求:约束应该是每个体系结构视图都应该关注和遵守的一些设计限制。例如,考虑到一部分开发人员没有嵌入式开发经验这条约束情况,体系结构师有必要明确说明系统的目标程序是如何编译而来的:图7展示了整个系统的桌面部分的目标程序pc-moduel.exe、以及嵌入式模块rom- module.hex是如何编译而来的。这个全局性的描述无疑对没有经验的开发人员提供了实感,利于更全面地理解系统的软件体系结构。图7 设备调试系统体系结构的开发视图C. 处理视图:设计满足运行期质量属性的体系结构性能是软件系统运行期间所表现出的一种质量水平,一般用系统响应时间和系统吞吐量来衡量。为了达到高

13、性能的要求,软件体系结构师应当针对软件的运行时情况进行分析与设计,这就是我们所谓的软件体系结构的处理视图的目标。处理视图关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。图8展示了设备调试系统体系结构的处理视图。可以看出,体系结构师为了满足高性能需求,采用了多线程的设计:* 应用层中的线程代表主程序的运行,它直接利用了MFC的主窗口线程。无论是用户交互,还是串口的数据到达,均采取异步事件的方式处理,杜绝了任何忙等待无谓的耗时,也缩短了系统响应时间。* 通讯层有独立的线程控制着上上下下的数据,并设置了数据缓冲区,使数据的接收和数据的处理相对独立,从而数据接收不会因暂时的处理忙碌

14、而停滞,增加了系统吞吐量。* 嵌入层的设计中,分别通过时钟中断和RS232口中断来激发相应的处理逻辑,达到轮询和收发数据的目的。 图8 设备调试系统体系结构的处理视图D. 物理视图:和部署相关的体系结构决策软件最终要驻留、安装或部署到硬件才能运行,而软件体系结构的物理视图关注目标程序及其依赖的运行库和系统软件最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。图9所示的物理体系结构视图表达了设备调试系统软件和硬件的映射关系。可以看出,嵌入部分驻留在调试机中(调试机是专用单板机),而PC机上是常见的桌面可执行程序的形式。图9 设备调试系统体系结构的物理视图我们还可能根据具体情况的需要,通过物理体系结构视图更明确地表达具体目标模块及其通讯结构,如图10所示。图10 设备调试系统体系结构的物理视图小结与说明表 3 41视图模型一览表深入理解软件需求分类的复杂性,明确区分功能需求、约束、运行期质量属性、开发期质量属性等不同种类的需求就是本,因为各类需求对体系结构设计的影响截然不同。本文通过具体案例的分析,展示了如何通过RUP的4+1视图方法,针对不同需求进行体系结构设计,从而确保重要的需求一一被满足。本文重点在于方法的解说,因此省略了对体系结构设计中不少具体问题的说明,同时本文提供的说明体系结构设计方案的模型也经过了简化。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1