杨少波-如何获得更好的课程设计教学效果_第1页
杨少波-如何获得更好的课程设计教学效果_第2页
杨少波-如何获得更好的课程设计教学效果_第3页
杨少波-如何获得更好的课程设计教学效果_第4页
杨少波-如何获得更好的课程设计教学效果_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中科院计算所职业培训中心

杨少波njtyyang@如何获得更好的课程设计教学效果如何获得更好的课程设计教学效果应用设计模式提高项目质量高质量和高效地开发实现指导教师竭智尽责地指导答辩和评测学生的作品一、应用设计模式提高项目质量1、软件体系架构设计模式

(1)软件体系架构产生背景

在早期的软件开发实现中,人们把软件设计的重点放在数据结构和算法的选择上,如Knuth提出了数据结构+算法=程序。

对于大规模的复杂软件系统来说,软件体系架构设计比起对程序的算法和数据结构的选择和设计已经变得明显更重要得多。因此,人们逐渐认识到软件体系架构设计的重要性,如Rational公司提出了“以架构为中心”的统一软件开发过程(RUP)等。(2)软件体系架构模式的产生基于这个目的,许多学者们开始研究和实践软件体系架构的模式问题。在<Pattern-OrientedSoftwareArchitecture(面向模式的软件体系架构)>一书中首次提出了8种典型的体系结构模式(也就是后面的系统架构设计模式的雏形)。2、设计模式(DesignPatten

)概述(1)设计模式是什么

设计模式是一套被反复使用、多数人知晓的、经过分类编目的、系统架构和代码设计经验的总结。什么是“好的”软件?(2)为什么在软件开发中要应用设计模式

使用模式的主要目的是为了获得可重用代码或者体系结构、让代码和系统架构更容易被他人理解、并保证代码可靠性和代码的质量。什么是“好的”软件?(1)软件开发中的各种模式通用职责分配软件模式(GRASP,GeneralResponsibilityAssignmentSoftwarePatterns)代码设计模式(如GOF)系统架构模式(如J2EECorePattern、VS.Net架构)3、设计模式的分类(2)GRASP模式(通用职责分配软件模式

)它能够帮助设计人员更好地设计类和接口(个数、成员方法)、类之间的关系、对象创建等方面的问题GRASP同时也是学习使用GOF代码设计模式的基础,因为它指导开发人员对类的职责和关系分配如何更加合理信息专家(Informationexpert)创建者(Creator)高内聚(HighCohesion)低耦合(LowCoupling)控制器(Controller)多态性(Polymorphism)纯虚构(PureFabrication)(3)GOF是指“功能代码实现”方面的设计模式它着眼于通用原理的最佳功能实现代码,注重的是如何组织代码,并构建一种合理的可复用的功能实现代码;并对程序代码中反复出现的问题进行标准化的功能实现。GOF的23种设计模式的主要分类----创建型:5种;结构型:7种;行为型:11种。比如如何更好地创建对象、如何组合对象以获得松藕合的结构、如何为对象分配行为等问题(4)系统体系架构设计方面的模式这些模式更多的是着眼于不同业务中共性的解决方案的设计,是有关大尺度和粗粒度的设计——如“J2EECorePattern”中的大部分模式系统体系架构模式是描述软件系统中的基本的结构和组织关系、各自的责任的法则和指南。4、架构设计中的架构模式(1)利用分层架构模式来组织系统时能够构造出一个层次化的系统结构

(2)利用门面(外观)架构模式实现各层之间的关联和协作(3)利用控制器模式实现“表示层”和“模型层”之间的关联和协作(4)利用中介架构模式实现用一个中介对象把一系列的对象交互封装(多对多关系)

(5)应用MVC架构模式“适应”变化

基于MVC架构的一个复杂应用系统被分解为模型、视图和控制器三部分,分别对应于应用系统中的业务逻辑处理和数据模型、用户界面、用户请求处理和数据同步等三个不同的部分。

5、如何在软件系统架构设计中重用和简化设计结果

(1)合理地应用各种开源框架以重用成熟的系统架构设计

(2)采用通用的体系架构设计能够简化设计过程

6、应用面向切面架构设计思想分离“核心业务处理”和“附加系统服务”(1)基于面向切面思想的系统架构设计实现交易日志示例对于应用系统中的“交易日志”记录功能模块,不仅需要在各个业务功能模块中出现,而且也需要在应用系统的持久层中的功能模块中出现对于这些跨越多个系统功能模块的“共同功能行为”如何实现“封装”和“隔离”?(2)基于面向切面思想的系统架构设计实现事务控制示例

(3)基于面向切面思想的系统架构设计实现性能监控示例

(4)基于面向切面思想的系统架构设计实现安全功能示例

对于电子商务、电子政务和电子税务等基于Web方式的各种应用系统,都需要确保系统本身的安全性。一般可以从三个不同层面加以实现——其一是身份验证,其次是控制授权,最后为安全传输。

二、高质量和高效地开发实现——合理地进行类设计1、什么是高质量的软件系统

软件系统的设计人员不仅要保证软件系统的整体体系架构是“高内聚、低藕合”的,更应该要保证组成软件应用系统中的各个功能类之间的关系也应该是“高内聚、低藕合”!2、通用职责分配软件模式(GRASP)指导设计人员合理地进行类的职责分配设计

(1)它能够帮助设计人员合理地决定类的职责的分配和类之间的关系

(2)它也是学习和应用GOF代码设计模式的基础,因为只有明确了类的职责以后,才有可能对类的职责的具体功能实现代码进行优化。3、面向对象类设计方法中的五大原则指导设计人员合理地进行类之间关系的设计

(1)开放封闭原则(OCP)

指导如何提高代码的可扩展性和可维护性。

(2)单一职责原则(SRP)

指导如何提高类代码的可重用度和减少藕合度

(3)接口隔离原则(ISP)

指导如何正确地进行接口设计和减少藕合度。

(4)李氏替换原则(LSP)

指导如何正确地进行继承与派生(以合理地重用代码)。

(5)依赖倒置原则(DIP)

指导如何正确地消解模块间的依赖关系!同时它也是框架设计的核心原则。4、利用控制反转设计模式能够减弱代码调用者和被调用者之间的依赖关系

(1)依赖倒置原则

能够帮助设计人员减弱类之间的依赖关系利用“控制反转”(IoC,InversionofControl)设计模式可以消解J2EE框架对应用系统之间的依赖关系(2)控制反转设计模式

它是一种让服务的使用者(客户程序)不直接依赖于服务实现的提供者(服务程序)之间关系的设计模式它也同样还能够降低应用系统内部的类之间由于相互调用而产生的依赖关系1、应用系统中的业务活动是由各个对象之间的相互交互而构成的2、常规的new操作符对象创建方式所存在的问题二、高质量和高效地开发实现——合理地创建对象对象创建是面向对象编程技术中不可缺少的一件事情但频繁地创建对象实例不仅会降低应用系统的整体运行的性能也增加了不必要的类之间的藕合关系

3、利用工厂模式分离对象的创建逻辑和对象的使用逻辑

(1)对象的使用方只需要了解对象对外的功能方法的接口,而不需要自行负责对该对象的创建工作。

(2)封装对象的创建过程和逻辑、并将对象的创建职责由某个特定的功能类(如工厂类)承担——这是对面向对象设计中的“单一职责设计原则”的具体应用。

4、利用Java反射技术动态灵活地创建对象实例Java程序员充分地应用反射技术,能够在程序代码中实现在运行时判断任意一个对象所属的类类型、也能够在运行时构造任意一个类的对象实例。

当然还能够在运行时判断任意一个类所具有的成员变量和方法(通过反射甚至可以调用类中的private方法)和在运行时调用任意一个类对象实例中的方法。XML+反射=SpringIoC5、利用依赖注入技术高效地创建对象实例(1)依赖注入(DI,DependencyInjection)技术是对控制反转IoC的具体实现技术

组件之间的依赖关系由容器在运行期决定,也就是由容器(如Spring框架的运行系统程序)动态地创建出目标类的对象实例、并将某种依赖关系注入到目标组件类中。

(2)IoC和DI的技术本质都是希望能够改变应用系统中类之间的各种“依赖”关系

类之间的依赖关系由原来直接依赖“目标组件类”改变为依赖于“容器”。1、影响软件系统开发效率和编程速度的各种可能的因素

(1)开发人员的技术水平的高低和协作紧密程度是主要的因素

(2)适合本项目的项目开发流程是高效地开发的基本保证

(3)良好的团队协作和有效的人员管理也是不可忽视的一个因素二、高质量和高效地开发实现——如何提高开发效率人员分工明确、职责清晰、测试驱动开发方法2、在分层开发中充分利用容器外开发和测试技术3、制定项目组的编程规范和监督开发人员切实遵守了编码规范

(1)编码规范可以改善项目中代码的可读性(2)Sun公司制定了Java编码的基本规范

EclipseIDE开发工具是严格遵守Sun公司的编码规范创建类和接口的代码

4、提高开发人员的技术水平和开发能力

学习必须要讲究学习方法,而改进学习方法的本质目的也就是为了提高学习的效率和效果。(1)“君子性非异也,善假于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论