- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
系统设计和架构设计
系统设计中的架构设计 1、软件架构及架构设计的重要性---Java软件开发中几种认识误区 3、软件架构一般概念 (1)什么是架构-----在IT,架构普遍指通过某种特定的平台,而达到完成整体软件的功能的设计过程。 4、架构是一组有关如下要素的重要决策 (1)软件系统的组织 构成系统的结构化元素的选择 接口和它们相互协作的行为的选择 结构化元素和行为元素组合成粒度更大的子系统的方式的选择 (2)指导这一组织(元素及其接口、协作和组合方式)的架构风格的选择 6、软件架构在软件系统开发中的位置 (1)一般的位置 架构设计往往发生在细节需求尚未完成的时候进行的。因此,随着项目的进行,需求还可能细化,可能变更。原先的架构肯定会有不足或错误的地方。 为了实现不断的改进,我们将在开发流程中引入迭代的概念。 8、软件架构的重要性体现在以下三方面 (1)软件架构是软件各相关方联系的载体 9、软件系统架构的主要工作内容 (1)架构调研----广义上,是对系统的重大设计决策有特别影响的需求进行分析 是指识别对系统存在或可能存在重大影响的功能性或非功能性需求(特别是非功能性需求)。 例如市场趋势、性能、成本、维护和系统演进等。 (2)架构设计----主要包括体系结构设计和各个层模块设计 是指对软件、硬件、网络、运营、政策等软件设计中的需求和要素进行决策。 10、系统架构设计时所应考虑的问题 (1)何时开展架构----需求分析和建模完成后 当然,这需要项目经理以具体的经验判断来评估此时是否足以能够开始构建软件架构的工作。 (4)没有一个统一的“万能(通用)”的系统架构 因为,软件的系统架构设计是和千差万别的具体软件系统的要求、所应用的技术和开发平台等因素是密切相关的,因此在此无法给出一个通用的“系统架构设计”解决方案。 尽管存在上面的原因,但我们认为在“系统架构设计”中还是会有一些共性的东西,以及能够说明哪些因素是需要考虑的。 本讲的简要回顾 * 在本讲您能了解如下内容 软件架构?重要性和必要性? 为什么要进行系统架构 架构的主要内容? 没有一个 “万能”的系统架构 (1)Java及J2EE平台是目前比较主流的技术平台 如何更加地发挥Java及J2EE的技术优势? (2)软件是有生命的并且它事关分层架构 一个有生命的软件首先必须有一个灵活可扩展的基础架构,其次才是完整的功能 过分依赖持久层技术---如应用存储过程和复杂SQL语句 持久层渗透并挤占业务层,腐蚀业务层 软件的生命周期取决于系统的设计优良 (3)对Hibernate等ORM技术没有正确地应用 没有利用延迟加载的特性 对象模型设计的不正确、特别是关系复杂 (4)Spring分层矛盾问题 Spring作为业务层框架,不支持业务层Session 功能。因此,对于会话跟踪只好通过HttpSession来实现。 从而使得业务层和Web表示层或者Servlet容器紧密藕合。 2、一个良好的系统架构能够避免很多问题,但我们经常会出现下面的问题 (1)新颖的技术成为设计之本 (2)把软件当成自我表达的方式 (3)把软件设计成万能的 (4)过分强调功能,而不是使用的方便性 请见文档中的说明 因此,如果系统设计的比较好,那么在后续开发中就能少走弯路,并且在后续的系统维护中也能够简单、轻松;但如果系统设计中就出现了问题,那么这个系统的开发必然是痛苦的,编程人员的不停抱怨、维护人员痛苦挣扎。 希望大家对系统设计加以重视! (2)Architecture 其英文的本意是来源于建筑行业的建筑艺术、建筑(风格)和结构。 就像高楼大厦的钢骨结构, 将无数个“Part” 组合成为和谐的“Whole” 5、在软件开发中,架构既可以是名词,也可以是动词----软件架构实际上是两个层面的事情。 (1)架构作为名词来理解 是指提供一个统一的共享的框架或者是Framework,这种架构事实上是系统的一个层,这里的架构是名词。 (2)架构作为动词来理解 是指设计构造系统或者是Archiecture,这里的架构更多的是动词(此时的架构一部分是调研工作,一部分是设计等工作) (2)必要性------架构是软件设计中非常重要的一个环节 在软件开发的过程中,只要需求和架构确定之后,我们认为这个软件也就基本上可以定型了-----这就好比骨骼确定了,这个人的体形就不会有很大的变化一样! 7、强调软件架构的最主要的目的是希望能够达到 (1)重用:人们希望系统能够重用以前的代码和设计,从而提高开发效率 这也将是我们在进行架构实践是所应该把握的原则 (2)扩展 人们希望在系统能够保持结构的稳定的前提下很容易地扩充功能和性能,希望
文档评论(0)