[工学]杨少波-如何开展软件工程专业课程设计教学_第1页
[工学]杨少波-如何开展软件工程专业课程设计教学_第2页
[工学]杨少波-如何开展软件工程专业课程设计教学_第3页
[工学]杨少波-如何开展软件工程专业课程设计教学_第4页
[工学]杨少波-如何开展软件工程专业课程设计教学_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

,中科院计算所职业培训中心,杨少波,,如何开展软件工程专业课程设计教学,如何开展软件工程专业课程设计教学,合理地选择课程设计题目组建一个成功的开发团队理性地进行项目需求分析完善的系统体系架构设计,为什么要开展课程设计教学活动,1、“课程设计”、“项目实训”和“毕业设计”教学活动 是高校学生在校期间接触企业实际软件项目开发的主要教学环节,同时也是衡量高校软件工程专业教学水平的重要依据。2、企业需要有“技能和经验”、“协作和沟通”的毕业生,但做什么、怎么做、有什么要求、怎么取得好的效果、有什么成功的经验可以借鉴等?让我们共同探讨,各位老师多了解企业的用人基本要求,也就确定了本校的培养目标,首先转变观念不应该仅仅在“做”,更要有“意义”,目前许多高校教师也都能够明确课程设计的重要性,其次明确学生的知识和能力的欠缺在哪,我们为学生“补什么方面的营养”?,明确了学生目前的“欠缺”在哪,做“什么”也就有了目标!,再其次改变方法教师从“教”转变为“导”,师者:“传道、授业和解惑”。,最后明确教学目标目标准确,才能“有的放矢”,这样的“小游戏”也能够作为实训项目吗?,一、合理地选择课程设计题目(做什么?为什么要做它),1、必须合理地选择课程设计的题目,2、什么是“合适”的课程设计项目,项目开发不在于数量上的多少,而在于开发人员能否对问题解决的“道”的感悟深入地发现共性的问题、并找出解决这些问题的方法和规则。,请注意“裁缝 ”和“服装设计师”的差别。,3、课程设计项目示例 2009年北交大软件学院07级本科生,项目内和项目之间都有密切的关系,更适应团队协作,4、课程设计项目示例 2009年北交大软件学院09级研究生(对不同层次的学生也还需要应用不同项目),同一个项目,但要求采用不同的设计方案和技术实现(C/S、B/S、混,合),5、指导教师布置项目开发各个阶段的任务,为了保证课程设计在有限的时间内能够让学生按时、按量和按质地完成,指导教师需要仔细思考、深入了解学生的个性和技术水平 并按照软件开发的基本过程布置项目开发各个阶段的任务和明确提出对“提交物”的具体要求。,必须要有过程性的检查,及时发现问题和帮助、指导学生,指导老师的主要职责,二、组建一个成功的开发团队(由谁做 ?有什么要求?),1、开发团队组建的基本原则,2、决定项目组中的人员角色,每组人员数5 7人比较合理,但角色扮演也不是绝对的,也可以“一人多岗位”(比如对成绩好的学生)。,3、制定出对项目组中各个角色的基本要求及考查点,(1)明确职责,才能评判优劣,主要的责任在“方丈”,(2)不同角色应该有不同的考核点 同一班级中不同的学生在学习的能力、技术的熟练程度和项目开发方面的接触深度都是有差别的。,4、制定待开发项目中各种形式文档的规范,(1)国内软件企业为什么有那么多的“软件作坊”? 原因可能“数不胜数”,但高校作为“人才源头”有不可推卸的“责任”!(2)国家示范性软件学院,拿出“可示范”教学理念、方法和成果不应该继续培养“IT民工”更不应该培养出的学生成为“失业大军”中的一员;高收费,必须要高就业率!教育是有偿服务!,(3)首先要明确“规范”的重要性,(4)从“形式”到“内容”两个方面控制和要求开发规范,只有“形式”而没有“内容”的开发规范,不是我们所需!,(5)从“形式”到“内容”两个方面控制和要求开发规范,内容是本质的东西,形式是外在的表现 .,(6)应用和遵守模板保证从“形式”到“内容”都规范,如何能够保证从“形式”到“内容”都规范呢?模板,三、理性地进行项目需求分析(做我所求、所想的系统),1、正确地描述项目的需求早期采用语言文字描述软件系统的需求所存在的主要缺陷,要让学生明确,2、为什么要采用UML中的用例模型方法描述功能性需求,3、正确地理解UML用例模型的主要作用(1)用例图是一种图形化的工具,它用简单的图形元素表示出软件系统的参与者、用例以及它们之间的各种关系。,通过用例图能够较好地避免软件系统在功能表达方面的歧义性和不一致性,(2)用例图也不是万能的,需要在学生面前强调这个观点,(3)用例图只能描述“功能性需求”,而对于“非功能性需求”?运行环境和设计约束?怎么描述它们呢?,4、理解UML动态建模的重要性如何描述业务流?,因为在活动图中不仅可以描述出软件系统中的参与者的各个活动,也能够描述出各个活动之间的条件和分支等逻辑关系方面的内容。,(1)UML活动图是“动态”的用例图,(2)利用UML顺序图描述用例的事件流(用例规约) UML顺序图能够描述软件系统中对象之间的交互状况,它强调消息按照时间顺序的交互状况,因为对象通过相互间的通信(也就是消息传递)进行合作,并在其生命周期中根据通信的结果而不断地改变自身的状态。,5、正确地应用UML中的各种图形描述项目的需求、设计和测试等结果,(1)描述系统功能:用例图(2)描述系统静态结构:包图、组件图、类图(3)描述系统行为:状态图和活动图(4)描述系统交互:顺序图和协作图(5)描述系统实现:部署图,通过课程设计的开发实践,学生才有可能理解UML的主要作用,6、体验统一建模语言在项目开发中的应用 (1)UML的作用域并不只限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程(2)它是编制软件蓝图的标准化语言是标准的建模语言(3)在课程设计中应该要正确地应用UML中有关知识和让学生体验UML在课程设计项目开发中的具体应用。,在课程设计中指导教师要为学生补充与UML有关的知识,四、完善的系统体系架构设计(如何做?怎么更好地满足需求?),1、明确典型的系统体系架构设计的思想(1)面向对象(OOP) (2)面向方面(AOP)(3)面向服务(SOA),2、面向对象架构设计的基本原则 (1)纵向分层隔离原则 J2EE技术规范为开发复杂的、分布式企业级的应用系统定义了一套体系结构和技术规范,它不仅提供了一套完整的基于标准化模块的功能服务组件,而且也提供了对企业应用系统的标准纵向分层设计方案。,首先要分层隔离!,(2)依赖倒置原则 依赖倒置原则的本质就是要求将架构设计中的各个层之间的关系要建立在依赖抽象接口的基础上,同时要求上层模块不应该直接依赖于下层的模块,它们两者都共同依赖于一个抽象; 抽象元素不能依赖于具体元素,而具体元素则必须依赖于抽象元素。,其次要合理地决定各个层之间的关系!,当然,为了能够满足依赖倒置原则的基本要求,软件系统的设计人员也需要以接口作为软件系统中的各个层之间的“粘联剂”。,(3)接口的定义和接口的具体实现分离原则 软件系统经过合理地分层隔离后,如何设计并决定出层中的各个组件之间的关系、分配各个组件各自的职责? 将软件系统中的各个功能模块的接口定义和对这些接口的具体实现相互分离,是解决这些问题的设计和实现的指导原则。,上层软件模块调用这个抽象接口中定义的方法,而下层软件模块具体地实现该接口中定义的各个方法。 因为接口能够体现出对问题的抽象,同时由于抽象一般是相对稳定的或者是相对变化不频繁的,而具体则是易变的。,最后分配关系,3、面向切面的系统架构设计(1)面向对象提供了优雅的分层设计方案,切面问题怎么办?,(2)面向切面编程AOP技术可以解决传统的OOP中不能够很好地解决的横切(CrossCut)方面的问题 比如在应用系统中所经常需要解决的如事务、安全、日志、缓存和并发访问中的锁定等问题都属于应用系统中的“横切”关注方面的问题。,首先要理解什么是横切方面的问题,(3)面向切面架构设计方法擅长解决有“横跨”关系的问题 在软件系统的体系架构设计中,各个功能模块之间不仅存在有纵向继承、横向依赖和关联、内外组合等形式的关系。 也还可能会出现某个功能模块“横跨”或者“散落”在应用,其次再理解如何解决这些横切方面的问题?,系统中多个其他功能模块的状况也就是在软件系统中的多个不同的功能模块中都“渗透”有某个相同的功能模块的代码。,4、面向切面架构设计是对面向对象架构设计的进一步扩展和完善(1)在系统架构设计中不能只应用OO(OO不是万能的) 正是由于软件系统中的各个功能模块在纵、横两个维度上都可能存在一定的关系,因此设计人员在软件系统的架构设计中不能仅仅将关注点停留在应用系统的纵向和内外的“封装”和“隔离”方面。,(2)也还要辅以AOP 也必须还要关注横向跨越形式的功能模块的“封装”和“隔离”问题的解决方案的设计。 如下面的“身份验证”、“控制和授权”、“页面缓存”、“事务控制”等,5、面向服务的软件系统架构设计解决异构系统的整合(1)首先要明确企业信息化平台及信息化应用系统的环境是异构状态,企业在经营和发展过程中是需要能够提供“知识管理、协同办公”的信息化平台,某个综合型大学的信息化系统示图,(2)其次如何解决“信息共享”和“服务集成”两大技术问题,“百花齐放、百家争鸣”的IT技术实现的结果!是喜还是优?,(3)再其次如何适应多变的企业经营中的业务需求(4)最后是如何解决异构环境下的各个应用系统之间的互联和整合,为什么会存在“信息孤岛”的问题?如何解决这些问题?,6、基于SOA的软件系统架构(1)为什么要应用面向服务的软件系统体系架构构建企业应用系统,异构环境下的企业应用系统需要相互整合和集成的客观原因企业的信息化建设也是分阶段和逐步实现的、并且希望各个阶段的应用系统能够兼容各个子系统之间希望能够独立、但又能够相互通讯和协作,(2)如何正确地应用SOA的基本思想构建出松散藕合的企业应用系统,系统中的各个主要的功能组件应该设计为Web服务(WebService)组件(遵守WS标准的WebService ),明确定义各个服务组件所应该遵守的对外接口Web服务组件的对外接口必须是平台无关的,Webservice成为SOA的一种很好的实现形式,(3)Web Service技术与微软的COM组件和Sun的J2EE EJB组件技术不同点,微软的COM协议和J2EE的RMI协议一方面都是某个特定的技术平台下特有的专用协议另一方面它们都采用二进制格式的数据作为网络协议,这样将无法穿越企业网络系统的防火墙组件的客户端无法在企业网络的外部对企业内部的服务器组件进行访问。,(4)为什么Web Service技术可以解决“信息共享”和“服务集成”两大技术问题,Web Service核心技术基础是XML包括服务调用协议SOAP、服务描述语言WSDL以及服务注册检索访问标准UDDI等都是基于XML标准的Web Service组件能够适应“异构的企业应用环境”和“不断变化的企业需求”。另外,也为企业推广“移动办公”和跨地区、跨行业的,“远程访问”和“业务协同”提供了技术实现的可能性。,7、Web Services技术在应用中所面临的主要问题,(1)Web Service技术在应用中的安全问题,对Web服务的客户端的身份验证和Web服务提供者的确认SOAP数据的传输和保护,Web服务组件所在的底层系统的安全架构,在基于Webservice技术的电子商务系统中的安全性更加重要!,(2)Web服务组件的响应性能和数据处理的效率,网络交易时间:客户端请求者需要向远程 Web 服务发出请求。处理消息所花费的时间:这包括对XML数据的解析、业务流程的管理、Web服务本身的调用以及对最终响应结果的

温馨提示

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

评论

0/150

提交评论