如何达到软件系统架构设计的目标

  • 格式:pdf
  • 大小:1.33 MB
  • 文档页数:33

下载文档原格式

  / 33
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设计模式虽然很好,但在具体应用时还是有限制的,
避免系统设计“教条主义”,不要为了模式而模式。
6、系统设计和编程实现方面的各种模式
(1)三个不同层次的设计模式
系统架构方面的模式,如J2EE Core Pattern、VS.Net 架构等
类职责定义和关系构建方面的模式,如通用职责分配软 件模式(GRASP,General Responsibility Assignment Software Patterns )
4、能否重用或者套用“规则”?
一、应用设计模式提高软件系统的设计质量 1、体系架构设计模式产生背景 什么是“好的”软件设计? (1)早期软件设计的关注点
在早期的软件开发实现中,人们把软件设计的重点放在数据 结构和算法的选择上。 如Knuth提出了数据结构+算法=程序。
(2)现代软件系统越老越复杂 对于大规模的复杂软件系统来说,软件体系架构设计比起 对程序的算法和数据结构的选择和设计已经变得明显更重要得 多。 (3) Rational公司提出了RUP 因此,人们逐渐认识到软件体系架构设计的重要性,如 Rational公司提出了“以架构为中心” Leabharlann Baidu统一软件开发过程(RUP)等——RUP (Rational Unified Process,统一 软件开发过程)是一个面向对象且基于 网络的程序开发方法论——6个最佳实 践。 它指导开发团队中人员职责如何 分配?工作顺序如何安排?每一个 具体的任务具体怎么个做法?不同 人员如何协作?系统设计方法学?
类程序代码编程实现方面的模式,如GOF(Gang of Four)代码模式 (2)下面重点介绍系统架构方面的模式
7、系统体系架构设计方面的模式
(1)主要的作用
它们着眼于不同业务中共性的解决方案的设计,是有关 大尺度和粗粒度的系统设计方案 它们描述软件系统中的基本的结构和组织关系、各自的 责任的法则和指南。 (2)“J2EE Core Pattern”中的大部分模式
(2)依赖倒置原则 依赖倒置原则的本质就是要求将架构设计中的各个层 之间的关系要建立在依赖抽象接口的基础上,同时要 求上层模块不应该直接依赖于下层的模块,它们两者 都共同依赖于一个抽象; 抽象元素不能依赖于具体元素,而具体元素则必须 依赖于抽象元素
(1)按问题深度分而治之
先不把问题想的那么深入,例如定义各个模块之间的接 口就属于这种,先不考虑如何实现接口,只是定义模块之间进 行通信时的契约。
(2)按问题广度分而治之
先不研究整个问题,而是研究问题的一部分,并分
割问题和各个击破。例如采取MVC架构进行设计时,每一 层都属于一个问题。 5、软件系统设计中的设计模式 (1)模式是什么?有哪些模式?为什么要应用它?如何
(3)软件系统架构的主要内容
构成系统的结构化元素的选择 接口和它们相互协作的交互机制的选择
持久化数据存储方案 、数据传递、数据复制、数据同 步等策略的选择
3、软件系统架构设计的主要目标 (1)重用——尽可能重用标准的总体设计方案,从而提高系
统的设计效率
分析系统中的各个部分,是否存在有通用的子系统或者 模块
如何达到软件系统架构设计的目标
(1)如何提高系统设计质量
(2)系统架构设计的思想 (3)系统架构设计的模式
2017/2/27 总结和提炼多年的软件设计和开发的经验,分享 课程设计项目开发教学过程的系统设计心得体会。
1、什么是“好的”软件设计? 2、如何达到“好的”软件设计?
3、是否有一定的“规则”?
合理地应用它?
(2)设计模式是系统设计经验的“沉淀”和“结晶” 在软件开发中,开发人员最担心的是需求的不断变 化,而这些变化又不是开发人员所能控制的! 如何能够适应这些变化呢?手段之一是应用“设计
模式”。
(3)为什么在软件开发中要应
用设计模式
使用模式的主要目的是为了 获得可重用体系结构或者代 码,并让代码和系统架构更 容易被他人理解,保证设计 结果的可靠性和提高设计的 质量。
2、软件体系架构及架构模式 (1)许多学者们开始研究和实践软件体系架构的模式问题
在<Pattern-Oriented
Software Architecture (面 向模式的软件体系架构)>一书
中首次提出了8种典型的体系 架构模式——也就是后面将要 介绍的几种典型系统架构设计 模式的雏形。 (2)什么是软件系统架构 架构是宏观的,主要定义 构成一个系统的各个组成部分。
(3)“J2EE Core Pattern” 中的典型模式
(4)J2EE EJB典型五层构架设计中常用的设计模式展示图
二、如何达到系统架构设计目标 ——如何做?怎么能够更好地满足需求? 1、明确典型的系统体系架构设计的思想 (1)面向对象(OOP) (2)面向方面(AOP) (3)面向服务(SOA) 2、面向对象架构设计的基本原则 (1)纵向分层隔离原则 J2EE技术规范为开发复杂的、分布式企业级的应用系 统定义了一套体系结构和技术规范,它不仅提供了一套完 整的基于标准化模块的功能服务组件,而且也提供了对企 业应用系统的标准纵向分层设计方案。
系统中的数据展现、数据持久化存储、安全、权限、缓 存等
(2)扩展——系统能够在保持结构稳定的前提下,很容易地 扩充功能和性能 如何延长我们软件系统的生命期,以降低企业经营中的 信息化技术的成本?
灵活地应用各种架构模式和模块的设计模式
(3)简洁——系统架构设计的结果应该是容易理解和维护 合理地应用成熟框架的体系结构设计方案,帮助应用系统 的设计人员处理了系统中很多的技术细节问题。 4、“分而治之”(Divide-And-Conquer)的系统架构策略
什么是“好的” 软件?
设计模式是一套被反复使用、 多数人知晓的、经过分类编 目的、系统架构和代码设计 经验的总结。 什么是“好的”软件?
(4)设计模式也不是万能的 然而,使用设计模式却并不能保证最终“一定”能 得到一个好的设计。
因为过分地使用设计模式反而会增加系统设计和实现
的复杂性! 因为在引入可变性和灵活性的同时(可重复性是其最 大特点) ,也会使我们的系统功能实现可能会变得 更加复杂,或者牺牲了一些性能为代价 一个设计模式只有当它提供的作用或解决的问题是 我们系统中真正需要的时候,才有必要使用它。