软件体系结构论文 软件架构论文:非功能需求对计算机软件体系结构的影响.docVIP

软件体系结构论文 软件架构论文:非功能需求对计算机软件体系结构的影响.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件体系结构论文 软件架构论文: 非功能需求对计算机软件体系结构的影响 摘 要: 非功能需求在架构的制定过程中具有可观的影响力,它是软件设计中不可忽视的重点和难点。 关键词: 架构设计;客户;软件工程 1 引言 软件的发展离不开幕后众多的编程人员、测试人员、文档撰写员,需求分析师、系统工程师、软件架构师等。在IT界,软件架构师是丰富软件项目经验及具有广博而精钻技术知识的象征。 软件架构师在软件工程的生命周期中,起着承上启下的关键作用。一名好的软件架构师的知识结构中,需要具备系统开发全过程的经验,对于IT建设生命周期各个环节有深入了解,其中包括:系统/模块逻辑设计、物理设计、代码开发、项目管理、测试、发布、运行维护等;需要深入掌握一到两种主流技术平台上开发系统的方法;了解多种应用系统的结构;了解架构设计领域的主要理论、流派、框架。另外,在业务知识领域中,架构师也要十分清楚并深入了解系统建设的业务需求;了解系统的非功能需求和运行维护需求;了解企业IT公共设施、网络环境、外部系统。图1中列举了架构师的基本知识结构,其中,涉及到了非功能需求。顾名思义,此需求乃软件功能需求以外的需求,用“非功能需求”来概括之,便是它难以全面概括的事实。 2 概念 在系统工程和需求工程中,非功能需求(Non-functionalRequirement,NFR)确定了衡量的尺度,用于对系统运行的判断,而不是具体的系统行为。可以这样理解,非功能需求是指软件产品为满足用户业务需求(即功能需求)而必须具有且除功能需求以外的特性。 比如设计一款手机,那么,这个手机必须要满足的功能需求就包括打电话、发短信、手机上网等。但是,在设计的过程中,也同样不能忽略的是:它是否易用(是否要仔细阅读说明书才可以使用);它的性能(储存空间大小、电池寿命长短、待机时间长短);它的外观(美观、时尚、大方,能否抓住消费者的心理)。这些不能忽略的内容便构成了非功能需求。手机的特性类似软件的非功能需求,虽然与其功能不直接相关,但是都会左右消费者的选购。 软件工程与建筑工程非常类似,软件系统的需求种类也不少,如图2所示。既然有非功能需求,便有功能需求。功能需求是大家比较熟悉的一类需求。功能需求描述要开发的软件系统应该做什么,它可以包括为用户提供哪些服务,也可以包括本系统为其他系统提供哪些服务。 非功能需求中分为质量属性和约束。约束需求规定了开发软件系统时必须遵守的限制条件。例如,要采用什么操作系统,要采用哪种开发技术,是否需要与遗留的老系统进行互操作等。当然,还要考虑软件用户所在的行业中必须遵守的法律法规、政策方针和行业标准、企业标准。质量属性作为非功能需求的一个分支,同样包含众多内容。例如性能、安全性、易用性、可靠性等众多属性如何分类的问题。如图3所示,将软件质量的属性分类为“产品修改”、“产品改型”和“产品操作”,其中包含了相对应的质量属性。 事实上,这样的分类模型存在着一个缺点,即关注了产品的本身,而忽略了软件产品在开发过程中所存在的非功能需求。例如,软件开发中的代码可重用性、代码的易理解性等等。 鉴于此,非功能需求中的质量属性也可以从如此的角度进行分类:“运行期质量属性”和“开发期质量属性”。运行期质量属性是软件系统在运行期间,最终用户可以直接感受到的一类属性;开发期质量属性包含和软件开发、维护和移植这3类活动相关的所有质量属性。 3 来源 有人把需求喻为软件开发的起跑线,需求工程是否顺利和成功,能够为软件的最终成功奠定扎实的基础。调研完成的需求可能与相关领域紧密结合,则需要了解这些领域背景;需求可能来自于多方,则需要征求和总结各种想法和意见等等。可以根据图2的分类方法,将软件的需求细分到功能需求和非功能需求,其中非功能需求包含了质量属性和约束。再考虑需求提出的不同级别,可以得到软件需求空间分割。 4 功能需求与架构设计 功能需求是重要的,它们包含了几乎所有用户所要求实现的业务逻辑。当然,非功能需求也同样是决定架构成功与否的关键因素。软件客户不能严格区分什么是功能需求,什么是非功能需求。事实上,非功能需求中的质量属性与约束是一个复杂的问题。 (1)功能需求影响架构,架构必须要适应功能需求。但是功能需求不会决定架构,是否基于接口编程还是硬编码实现功能,是否要分层等等问题都不是功能需求所能单独确定的。 (2)质量属性会从根本上影响架构。例如,非常强调性能的系统软件会在算法实现上下足功夫,而左右在架构设计中是否避免了性能的损失。 (3)至于约束,它或作为架构设计的限制条件,或转变为功能需求,或转换为质量属性。 5 主要内容客 户要功能也要质量。比较功能需求与非功能需求,相对而言,客户比较擅长提出功能需求。这是所熟悉了解的业务领域内的知识范畴,而且都是经过大量的实践操作。然而对

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档