- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
word格式-可编辑-感谢下载支持
案例教学1:4+1视图方法进行软件体系结构设计
要开发出用户满意的软件并不是件容易的事,软件体系结构师必须全面把握各种各样
的需求、权衡需求之间有可能的矛盾之处,分门别类地将不同需求一一满足。本文从理解需
求种类的复杂性谈起,通过具体案例的分析,展示了如何通过RUP的4+1视图方法,针对不
同需求进行体系结构设计,从而确保重要的需求一一被满足。
1、呼唤体系结构设计的多重视图方法
灵感一闪,就想出了把大象放进冰箱的办法,这自然好。但希望每个体系结构设计策
略都依靠灵感是不现实的--我们需要系统方法的指导。
需要体系结构设计的多重视图方法,从根本上来说是因为需求种类的复杂性所致。以
工程领域的例子开道吧。比如设计一座跨江大桥:我们会考虑我们会考虑连接南北连接南北的的公路交公路交通通这个这个
功功能需求能需求,从而初步设计出理想化的桥墩支撑的公路桥方案;然后还要考虑造桥要面临
的的约束条约束条件件,这个,这个约束条约束条件可能是件可能是不能不能影响万吨轮影响万吨轮从从桥桥下通过下通过,于是细化设计方案,
规定桥墩规定桥墩的的高度和桥墩高度和桥墩之间的间之间的间距;另外还距;另外还要要顾及顾及大大桥桥的的使使用用期质量属期质量属性性,,比比如如为为了了
能能在湍急在湍急的的江流中江流中保持保持稳固稳固,可以把大桥桥墩深深地建在岩石层之上,和大地浑然一体;
其实其实,,建造期建造期间的间的质量属质量属性性也很值得考虑,比比如如在在大大桥桥的设计过的设计过程中考虑程中考虑施工施工方方便便性性
的一些措施。
word格式-可编辑-感谢下载支持
和工程领域的功能需求、约束条件、使用期质量属性、建造期间的质量属性等类似,软件
系统的需求种类也相当复杂,具体分类如图1所示。
图1软件需求分类的复杂性
2、超市系统案例:理解需求种类的复杂性
例子是最好的老师。为了更好地理解软件需求种类的复杂性,我们来分析一个实际的例子。
在表1中,我们列举了一个典型的超市系统的需求子集,从这个例子中可以清晰地看到需
求可以分为两大类:功能需求和非功能需求。
word格式-可编辑-感谢下载支持
表1超市系统案例:理解需求种类的复杂性
简单而言,功能需求就是简单而言,功能需求就是软件有什么用,软件需要做什么软件需要做什么。同时,注意把握功能需求的
层次性是软件需求的最佳实践。以该超市系统为例:
*超市老板希望通过软件来超市老板希望通过软件来提高收银效率提高收银效率。
*那么,你可能需要为收银员提供一系列功能来促成这个目的,比如供收银员使用的那么,你可能需要为收银员提供一系列功能来促成这个目的,比如供收银员使用的任
意商品项可单独取消意商品项可单独取消功能有利于提供收银效率。
*而具体到这个超市系统,系统分析员可能会决定要提供的具体功能为:通过收银终端的
按键组合,可以使收银过程从按键组合,可以使收银过程从逐项录入状态逐项录入状态进入进入选择取消状态选择取消状态,从而取消某项商品。
word格式-可编辑-感谢下载支持
从上面的例子中我们还惊讶地发现,非功能需求--人们最经常忽视的一大类需求--包括的
内容非常宽、并且极其重要。非功能需求又可以分为如下三类:
*约束。要开发出用户满意的软件并不是件容易的事,而全面理解要设计的软件系统所面
临的约束可以使你向成功迈进一步。约束性需求既包括企业级的商业考虑(例如临的约束可以使你向成功迈进一步。约束性需求既包括企业级的商业考虑(例如项目预
算有限算有限),也包括最终用户级的实际情况(例如),也包括最终用户级的实际情况(例如用户的平均电脑操作水平偏低用户的平均电脑操作水平偏低);既
可能包括具体技术的明确要求(例如(例如要求能在Linux上上运行运行),又可能需要考虑开发团
队的真实状况(例如(例如开发人开发人员员分分散在散在不不同同地地点点)。这些约束性需求当然对体系结构设计
影响很大,比比如如受到受到项目预算有限项目预算有限的限制,体系结构师就不应选择昂贵的技术或中间件
等等,而考虑,而考虑到到
文档评论(0)