网站大量收购闲置独家精品文档,联系QQ:2885784924

浅谈移动应的用软件的架构.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
浅谈移动应的用软件的架构

浅谈移动应用软件的架构16软工吴文超软件架构的定义软件架构是指在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系。组件的外部可见属性是指其他组件对该组件所做的假设。软件架构设计就是从宏观上说明一套软件系统的组成与特性。软件架构设计是一系列有层次的决策 ,比如:功能与展现的决策;技术架构的决策;自主研发还是合作;商业软件还是开源软件 。为什么要进行软件架构?2.1软件架构的目的对于外包业务类型的项目,软件架构设计的目的与产品类型的项目有所不同,在这里主要讨论外包类型项目的软件架构设计目的。1、为大规模开发提供基础和规范,并提供可重用的资产,软件系统的大规模开发,必须要有一定的基础和遵循一定的规范,这既是软件工程本身的要求,也是客户的要求。架构设计的过程中可以将一些公共部分抽象提取出来,形成公共类和工具类,以达到重用的目的。2、一定程度上缩短项目的周期,利用软件架构提供的框架或重用组件,缩短项目开发的周期。3、降低开发和维护的成本,大量的重用和抽象,可以提取出一些开发人员不用关心的公共部分,这样便可以使开发人员仅仅关注于业务逻辑的实现,从而减少了很多工作量,提高了开发效率。4、提高产品的质量,好的软件架构设计是产品质量的保证,特别是对于客户常常提出的非功能性需求的满足。与其他复杂结构一样,软件必须建立在坚实的基础之上。不考虑关键情况,不考虑通用问题的设计,或者不考虑关键决策的长期后果,都将置应用于险地。现代工具和平台有助于简化搭建应用的任务,但是他们并不能代替针对特定情景和需求的细心应用设计。质量低下的架构带来的风险包括不稳定的软件,无法支持现有或者将来的业务需求,或者难以在生产环境中进行部署和管理。系统设计应当考虑用户,系统本身(IT基础设施),以及业务目标。在每个方面,都该描绘出关键性案例,并以此找出重要的质量属性(比如,可靠性和可扩展性)以及重点满足或忽视的方面。可能的话,最好找到衡量在不同方面成功的方法和指标。用户,业务,以及系统目标有关这三个方面的需求可能相互矛盾,因此需要达到一个平衡。妥协也是经常地事情。比如说,一个解决方案的用户体验大都关乎业务和IT基础设施上的一个功能,其中任何一个改变了也会极大影响用户体验。同样的,用户体验的改变也会极大影响业务和IT底层设施需求。性能可能是一个很重要的用户和业务目标,但是系统管理员可能无法为了百分百满足用户一次性投资那么多到硬件上,刚开始可能就是80%差不多。 架构关注于应用内的关键元素和组件彼此之间的调用和交互。单个组件的数据结构,算法或者实现细节是设计的事情。架构和设计的关注点通常相互覆盖。与其硬性区别架构和设计,不如索性放在一起考虑。一些场合下,架构用的多一些。另外一些场合下,就更在乎设计上与架构有关的事情。考虑以下有关软件架构的high-level关注点:用户如何使用本应用?如何部署和管理此应用?此应用的质量需求是什么?安全,性能,并发,国际化,还是配置?如何设计此应用以保持持久的灵活性和可维护性?现在可能影响此应用的构架趋势是什么? 2.2软件架构所遵循的原则1、满足功能性需求和非功能需求。这是一个软件系统最基本的要求,也是架构设计时应该遵循的最基本的原则。2、实用性原则,就像每一个软件系统交付给用户使用时必须实用,能解决用户的问题一样,架构设计也必须实用,否则就会“高来高去”或“过度设计”。3、满足复用的要求,最大程度的提高开发人员的工作效率。如何进行软件架构设计?1、分析需求和理解业务模型(或领域建模),并选定关键Use case软件的需求,可以分为从用户视角和开发人员视角来看,从用户的角度看,又可以分为功能性和非功能性需求,我们必须从不同的视角和级别去全面的认识需求并分析需求,理解业务模型。实践表明,常常被我们忽视的非功能性需求常常会导致整个项目失败。理解业务需求最好的方式莫过于进行领域建模,领域建模与需求分析往往是交替穿叉进行的,领域建模主要有以下三个方面的作用:①探索复杂问题,弄清领域知识。Martin Fowler曾经说过,他采用面向对象方法最大的好处就是它有助于解决更为复杂的问题。领域建模本身作为辅助思维的工具,帮助我们将注意力始终保持在最为重要的业务概念及其关系上,使我们能够不断深入地,系统的对需求进行分析和认识。领域建模往往是一个从模糊到清晰,从零散到系统的过程。②决定功能范围,影响可扩展性。任何模型都是对现实世界某种程序的抽象,这种抽象就会忽略某一些东西,例如忽略对象的属性和对象间的关系,而这些忽略往往都是带有一定的目的性的,这种忽略就决定了功能的范围。模型揭示了各种功能背后的结构,如果说定义功能相当于“拍照片”的话,那么领域建模就相当于“做

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档