前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇软件设计模式论文范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
历史的时针进入21世纪以来,我国迎来了信息技术快速发展时期,伴随着信息技术的飞速发展,Internet 的发展与完善使我国获取了世界范围内的大量信息基础设施。软件设计过程中所运用的设计模式也得以初步显现。设计模式(Design pattern)指的是一种运用范围广泛且基于分类编码以及代码设计的一种总结形式。在软件设计中运用设计模式可有效地提高代码的使用率,不仅确保了代码的稳定性而且更加的易于被人们理解并接受。设计模式在当下的今天已经被广泛的用于到各类软件的设计中去。本文接下来将围绕设计模式及其在软件设计中的运用展开分析和讨论。
【关键词】设计模式 软件设计 运用
设计模式的功能主要是针对面向对象进行设计的过程中频繁出现的设计中反复出现的设计问题给出具体且行之有效的解决方案。设计模式概念诞生于上世纪九十年代,是由Erich Gamma 等人从建筑设计领域引入到计算机领域内的。在当下有关于设计模式尚存许多有争议的话题,但因其可以给出一套完整的软件设计公共语言,使得一些相关的工作人员能够分享高端设计大师们的宝贵经验,这种争议的声音也就逐渐趋于平静。说到设计模式的作用还远不止以上那些,其最为让人称道的是软件的重构提供了目标。
1 设计模式相关概述
追溯设计模式的起源其是一种源于建筑学的概念,被导入到计算机领域之后其主要的功能是记录软件开发人员发觉出的一系列共性问题以及软件开发人员经验证所得出的成功解,并且理清特定上下文所表现出来的问题及其与之对应的解决方案之间的联系。本文所提及的软件设计模式当前多是用于明确设计模式与另外的面向对象设计方式的关系,并且得出两者之间所适应的范围等等。
2 设计模式的具体分类
设计模式的分类大体可以分为行为型、创建型以及结构型。其中各个分支又可以进行进一步的细分。
行为型模式可细分为以下几种:备忘录模式、迭代器模式、解释器模式、观察者模式以及中介者模式。
创建型模式可细分为以下几种:原型模式、单例式模式、建造模式、抽象工厂以及工厂方法模式。
结构型模式可细分为以下几种:享元模式、组合模式、桥模式、外观模式以及装饰模式。
3 设计模式在软件设计中的运用
当下国内的软件设计模式普遍都是运用于两个层面。首先,待到整个软件系统结构搭建初步完成后,可以及时的加入满足特殊需求的组件以及给予模块指定的设计使其在功能上更加灵活。软件设计模式本身就具有明显的复杂性,这也就使其无法用于相关具体的软件设计,一种原因是由于设计模式在运用的过程中得不到指导,另一种原因是软件设计模式所对应的设计师在设计的过程中没能够正确的把握设计方向。
3.1 设计模式的一系列步骤
为了使设计模式的效果达到最佳,应充分的遵照下列步骤进行:
(1)抽象化有待进行解决的种种问题,类型实施合理规划拆分。
(2)针对问题所属类型采取适用于这一类型的设计模式。
(3)规划问题并进行相应的模式匹配。并且把问题与选择的模式两者进行对比得出相互间共同存在的特性。针对需要解决问题所涉及的整体区域进行所有类及其对应的模式进行通盘归纳,在此过程中一旦发现所采用的设计模式并不适合立即重新返回第三步进行重新设计。
(4)对所采用的设计模式进行变体,所采用的方式可以是对初始结构拓展或修正,以便及时的解决当中所存在的问题。
(5)对所涉及到的软件体系进行结构细化使其进一步完善。
(6)对设计质量实施度量。
3.2 设计模式选取
在软件设计过程中设计模式的选取至关重要,选取恰到好处的软件设计模式,一般要充分结合以下几点因素。
(1)事先总结出在设计进行过程中哪些因素是非固定存在即可以变化。
(2)充分考虑设计模式对所遇到的问题的解决方式,并且分析所给出的解决方式是否行之有效。
(3)明确反复进行检查的原因是什么,所选用的设计模式是否可以很好地解决此类问题。
(4)对设计模式的主要方向实施浏览。
(5)需要对与目相关的模式进行研究。
(6)清晰地了解并掌握模式是如何实现相互关联的。
3.3 设计模式的应用
待到软件设计模式选定以后,在执行的过程中需要严格遵照科学方式方法进行设计。
(1)将其所设计的模型实施详细浏览。
(2)深入的对协作、结构以及参与者三部分进行研究探讨。
(3)仔细观察代码示例部分以及观察相关的一系列案例。
(4)选取设计模式相关参与者名字,以使其在全文的运用上更具鲜明的意义。
(5)对设计中所涉及的类进行定义。第六,对应用中的操作名称采取在定义模式中专用,良好的实现在设计模式中的责任与协作的操作。
4 结语
进入新世纪以来,在软件设计面向对象领域工作者们所收获的最有意义的成就就是设计模式概念问世与其所得到的稳定发展。从设计模式由建筑领域被引入计算机领域以来,设计模式概念被提出至今其凭借着表达的清晰性和简洁性备受广泛关注,自身拥有的强大适用性也得到了深入的发掘。实践是检验一切的唯一标准,反观设计模式从出现至今这一路走来,设计模式在软件设计中的运用经受住了一次又一次的检验,时光荏苒相信随着面向对象理论的发展,设计模式在软件设计中的运用也定会愈加完善。
参考文献
[1]G Vanmeerbeeck,P.Schaumont,S.Vernalde,M.Engels,and L Bolsens.Hardware/Software Partitioning of Embedded System in OCAPI -xl.Proc.of the Ninth Int.Symposium on Hardware/Software Codesign(CODES' 2009),2009(22):26-29.
[2]姜昌A,胡幼华,杨旭丽,张婕洁.一个基于遗传算法的仿真优化包的设计与实现[A].系统仿真技术及其应用(第7卷)――2010系统仿真技术及其应用学术交流会论文选编[C].2010(12):16-19.
[3]苏飞,张能立,王紫绮,万小林.面向对象设计模式在B/S 架构Web应用中的运用[J].武汉理工大学学报(信息与管理工程版),2009(08):09-11.
关键词:数据库课程体系;教学改革;教学特色
中图分类号:G642 文献标识码:B
文章编号:1672-5913 (2007) 24-0110-04
1数据库课程体系改革的背景
随着IT产业的迅速发展,可视化程序设计、计算机网络技术、数据库技术、多媒体技术和软件工程等计算机技术已经出现了大融合,网络数据库技术已经成为数据库技术的主流。而以前数据库课程建设主要针对关系数据库的理论和设计方法,偏重理论教学环节,实践环节较为薄弱,也不涉及网络编程,与应用性人才培养模式的要求不相适应。为了加强实践环节,培养高等技术应用型人才,从01级开始,在计算机类专业的教学计划中新增了“网络数据库技术及应用”、“C/S结构应用软件设计实习”和“B/S结构应用软件设计实习”三门以实践为主的课程,并构建了数据库课程体系(程序设计基础à关系数据库设计技术à网络编程技术à网络编程实践à毕业设计提高),该课程体系有相应的理论教学、实验教学、课程设计、课程实习等教学环节,不仅五个阶段本身各有其侧重点,而且五个阶段之间前后有密切的联系。该课程体系在教学计划中处于关键的地位,在计算机类专业集中实践环节中占有相当大的比重,并对该专业学生顺利完成毕业设计提供了技术支持,已成为教学计划得以顺利实施的关键环节。
要提高教学质量,就要组建教学团队,建设精品课程[1]。在数据库课程体系的改革研究与实践中,我们重点对课程体系中的二门核心课程“数据库原理及应用”和“网络数据库技术及应用”进行了教改和建设,并分别在2003年和2005年获得了浙江省高等学校精品建设课程。自2005年以来,“网络数据库技术及应用”课件获2005年浙江省第四届高校教师自制多媒体教学软件评比二等奖,“网络数据库技术课程建设与实践”项目获2006年宁波工程学院教学成果奖一等奖,“数据库课程体系的改革研究与实践”项目获2007年宁波市人民政府教学成果奖二等奖。
2数据库课程体系的改革研究与实践
在数据库课程体系的五年教改实践中,项目负责人组织教学团队主持完成了“教学模式、教学措施、教学目标、教学方法和教学软件”的改革成果,具体内容如下。
2.1数据库课程体系的“五阶段”教学新模式
近五年来,该课程团队的教研活动涉及了数据库、程序设计、网络、多媒体等领域。通过国家教育部计算机重点试点专业教学改革的探索,又经过多年数据库课程体系教学与科研工作的实践,建立了“程序设计基础(可视化程序设计+ASP程序设计)à关系数据库设计(数据库原理及应用)à网络编程技术(网络数据库技术及应用)à网络编程实践(C/S结构应用软件设计实习+B/S结构应用软件设计实习)à毕业设计提高(开发基于C/S和B/S结构的网络数据库应用系统)”的计算机类专业数据库课程体系的“五阶段”教学新模式,取得了较好的教学效果。“五阶段”教学新模式的具体实施步骤如下。
在程序设计基础阶段开设“可视化程序设计”和“ASP程序设计”课程,通过程序设计的基础训练,培养学生良好的编程、调试技能和动态网页的制作方法,学会有关集成工具软件的使用,为以后的设计、技术和实践做准备。
在关系数据库设计阶段开设“数据库原理及应用”课程,主要介绍关系数据库的基本概念、基本理论和设计方法,同时介绍数据库应用系统设计案例,以培养学生对中小型数据库应用系统的结构设计和行为设计的能力。课程结束后马上进行一个为期二周的数据库课程设计,以加强这方面的训练。
在网络编程技术阶段开设“网络数据库技术及应用”课程,主要介绍SQL Server 2000数据库管理系统、客户/服务器(C/S)应用系统、浏览器/服务器(B/S)应用系统等内容,以培养学生采用基于C/S和B/S结构技术来开发网络数据库应用系统的能力,为下一步的实践和提高做准备。
在网络编程实践阶段开设“C/S结构应用软件设计实习”和“B/S结构应用软件设计实习”以实践动手为主的课程,教师以兴趣小组的形式指导学生,学生以小组的形式合作开发小型实用项目,计算中心的开放式实验室提供给学生充足的上机时间,从而使学生们在实践中得到了锻炼。
在毕业设计提高的最后阶段,我们的主要做法是:教师部分科研项目吸收优秀学生参与,从而锻炼了学生参与科研的能力;教师以学生兴趣小组的方式指导学生毕业设计,教师给题,学生选题,教师指导。通过这二项措施,带动了学生学习网络数据库的积极性,提高了学生网络数据库应用系统编程的能力。
通过“五阶段”教学新模式近五年的实践,学生的网络数据库设计能力及实际网络编程动手能力均有了较大的提高。在毕业设计中采用C/S和B/S结构开发网络数据库应用系统的计算机类专业的学生比例逐年提高,取得了较好的实践效果。浙江省2005届毕业设计(论文)抽查结果表明[2]:我校计算机类专业学生的毕业设计(论文)在选题、教师指导、收集处理信息与实际动手能力、综合应用基本理论与基本技能能力、文字表述与图表质量、规范要求六个方面指标名列各校前茅,并以总分77.97的分数荣获全省专科计算机类专业毕业设计(论文)抽查结果评比第一名。
2.2数据库课程体系的“四加强”教学新措施
第一,加强课程建设力度,不断完善教学文档。近五年来,我们编写了较为合适的讲义和教材,不断完善了课程教学大纲、实纲和课程设计大纲等教学文件,在课程教改方面取得了显著的成绩。近几年在课程建设中,我们主要突出了实践动手能力的培养,突出了B/S和C/S等成熟和先进技术的应用,突出了实用和典型案例的讲解。在上述“三个突出”思想的指导下,“VB网络程序设计”、“网络数据库技术及应用”和“数据库原理及应用”教材已分别由科学出版社、西安电子科技大学出版社和人民邮电出版社在2003年、2004年和2006年主编和编著出版。
第二,加强教学软件开发质量,构建网络教学环境。我们构建了基于WEB的教学网站和适应性网络教学平台,同时电子在线网站在教学管理中得到了应用,受到了较好的效果。这些不仅有利于进行计算机多媒体的辅助教学,而且能为学生提供一种个别化自主学习的环境,促进了学生主动学习的积极性,达到了助教助学的目的。
关键词:软件工程;实践化教学;软件构造;教学方法
0引言
软件工程是一门实践性很强的课程,课程实践对于巩固课堂教学成果、培养学生软件工程能力具有重要作用,因此实践化教学已成为软件工程课程建设的一个基本方向[1-4]。本文所讨论的软件工程课程是指软件工程概论课程,一般会作为软件工程或计算机专业本科生基础课在大学二年级或三年级开设,从而为软件需求、软件设计、软件测试等后续专业课程学习打下基础。例如,复旦大学软件学院的软件工程课程在大二下学期开设,后续还开设了多门软件工程专业课程以及软件实践课程。因此,这类概论性质的软件工程课程实践教学的主要目的是通过实践巩固与加深对课程内容的理解,同时初步培养学生的软件工程能力。在此基础上,可在高年级专门开设综合性的软件实践课程,并突出规模性、综合性、集成性、创新性等方面的实践要求[2]。软件工程课程实践应当贴近工业界的软件开发实践,以一种迭代化的方式开展。通过多次迭代的系统理解、分析、纠错、改进等演化式的开发活动,不仅可增强学生的代码理解、修改等软件开发实践能力,还可强化对其软件设计准则、编码和文档习惯以及软件测试能力的培养[5]。考虑到授课对象的专业基础及可接受性,本文在软件工程课程教学与实践中采用以软件构造活动为中心的思想。软件构造是指通过将编码、验证、单元测试、集成测试及调试相结合,具体创建可运行的软件的过程[6]。作为刚经过2年专业学习、初步掌握编程能力的本科生而言,软件构造活动所覆盖的软件工程专业知识及能力是其最容易理解与接受的学习内容。以软件设计为例,其中包含两个层次[6]:体系结构设计关注软件顶层结构和组织,以及识别各种可用组件;详细设计关注为每个组件(或模块)提供足够的细节以支持软件构造。在这两个层次中,体系结构设计通常在大规模、分布式软件系统开发中有较多考虑,但在此阶段的学生由于缺乏所需专业知识和软件开发经验,一般很难理解体系结构设计。属于软件构造活动一部分的详细设计则建立在面向对象设计等更贴近编码开发能力的基础上,比较适合在软件工程课程中进行介绍与实践。此外,课程设计还充分考虑了软件工程师成长路径,按照局部编码、详细设计、总体设计、需求分析与测试的顺序逐步开展课程教学与实践。按照以上指导思想,本文设计了软件工程课程教学及配套实践内容,在复旦大学软件学院开展课程教学,并依托华为软件开发云DevCloud平台[7]开展实践教学,取得了良好效果。
1课程教学及实践安排
根据软件工程实践化教学的需要,同时考虑修读本课程学生的专业基础及可接受度,本文确定了以下3条课程教学内容安排基本原则:(1)以软件构造活动为中心。以详细设计、编码、单元测试等软件构造活动以及与之密切相关的版本管理等协作支持能力为中心,强调本科生可深入理解并切实掌握的软件工程能力。(2)突出实践化培养特色。通过课程实践项目加强学生对相关知识的理解、锻炼对应的软件工程能力,课程教学内容及进度安排配合实践项目进展过程。(3)体现软件工程师成长路径。课程教学内容安排体现企业中软件工程师的成长路径,按照局部编码、详细设计、总体设计、需求分析与测试的顺序逐步培养学生的软件工程能力,同时穿插版本管理和配置管理等团队协作能力培养。根据以上原则,本文设计了课程相关教学模块及实践内容。
1.1课程教学模块设计
课程教学内容模块及其教学顺序如表1所示。软件工程概述部分为学生提供了一个关于软件工程思想及其基本内容的概览,为其理解后续学习内容提供一个基本的上下文知识背景。后续学习过程从个人开发技能和必要的软件过程与团队协作能力开始,逐步展开软件设计、软件需求、软件测试等教学内容。其中,个人开发技能和软件设计两部分中与软件构造密切相关的内容是教学重点,属于学生较容易接受并掌握的基础开发能力。各个课程教学模块都需要与课程实践及相应的软件开发环境和工具相结合,突出各部分的实践要点。
1.2课程实践内容设计
课程的重点教学内容需要通过课程实践让学生进行体验与巩固。为此,本文设计了配套的课程实践项目。除第一次的体验性实验外,整个实践项目都是围绕一个开发项目(如“在线论文投稿系统”)要求,以一种小组协作和迭代化的方式开展。教学侧重点从编码能力、设计能力到分析能力逐步进阶,同时伴随着软件需求逐步增加与变更。实践项目依托华为软件开发云DevCloud平台进行,可实现整个软件开发与协作过程全程留痕,帮助学生更完整与系统地理解工程化软件开发,同时为课程项目评分提供依据。课程实践项目以4人为一组,设置组长1名,根据交付及完成情况进行整体评估打分,期末再通过组内协商或互评将实践项目评分分解到人。整个课程实践项目分阶段安排如下,其中针对卓越工程师班的特殊要求需单独注明。阶段1(个人任务):熟悉DevCloud及Git版本库,在事先准备好的Web项目内容基础上通过fork操作建立自己的代码仓库,利用Maven完成项目构建,并在华为云上进行在线部署。阶段2(小组任务—初始项目开发):利用SpringBoot+Vue实现一个在线论文投稿系统的注册、登录以及会议申请等基本功能,并在华为云上进行部署;要求使用DevCloud的需求规划、工作分配以及代码质量检查功能,确保功能实现的正确性和完整性,同时注重版本提交等开发过程的规范性。阶段3(小组任务—代码质量):实现系统中的会议申请与管理等相关功能;实践单元测试,要求项目中的代码测试覆盖率不低于80%;提升代码质量,要求使用DevCloud代码质量检查工具进行代码质量检查,并解决检查中暴露出来的代码质量问题。阶段4(小组任务—设计与持续集成):完成系统的稿件分配与审稿功能,回顾并检视软件设计质量,进行必要的重构与改进;为提交的代码打标签(如按照每次迭代后实现的功能打标签),根据标签实现选择性地编译构建;利用华为云平台构建CI/CD流水线,尝试持续集成、持续交付与持续部署(卓越班要求)。阶段5(小组任务—需求分析与测试):完成系统中的会议评审意见答复(rebuttal)与论文录用相关功能;开展需求分析,检视此前软件实现中的需求完备性和准确性;在单元测试的基础上实践集成测试;结合DevCloud和SonarQube的代码检测能力进一步改善代码质量;进一步完善CI/CD流水线,使每个任务的健康度都达到四星及以上(卓越班要求)。以上课程实践项目安排通过迭代化的方式逐步完善项目各项功能,每个阶段结束后都有可交付、可运行的软件版本。这种演化式的开发过程更有利于学生理解真实的软件开发过程,同时对软件代码和设计质量等方面要求有更深刻的理解与体会。与此同时,在每个课程项目阶段中都加入与课程教学内容相对应的实践要求。例如,第2阶段在完成初始项目功能开发的基础上,要求学生利用DevCloud的代码质量检查功能发现代码质量问题并进行修复,同时建立基本的版本提交规范;第3阶段在增量需求开发的基础上,进一步要求学生实践单元测试并解决大部分代码质量问题。此外,整个课程实践项目过程都贯穿了对软件设计能力和团队协作能力的要求:通过迭代化和演化式的开发过程让学生体验软件设计(特别是模块化设计)质量对软件持续演化与扩展能力的支持;持续的小组任务要求学生在项目中考虑前后端分离、模块划分、接口定义等设计问题,同时建立有效的分工协调、进度管理、交流讨论、版本分支与合并、集成与测试、构建与部署等团队协作机制。
2实践教学效果
采用上述实践化教学方式在复旦大学软件学院开展本科软件工程教学取得了良好效果。学生普遍反馈课程实践项目对其有一定压力,但对于理解软件工程理论及培养工程化开发能力有很大帮助。
2.1实践中存在的问题
在课程实践项目的每个阶段,都会对各小组交付情况进行评估,并通过课堂交流的方式邀请一些小组进行分享。通过该过程也发现了学生在课程实践中的一些问题,主要包括以下几个方面:(1)逻辑不严密、测试不充分。对输入的合法性检查不够,例如密码长度限制检查、必填数据项的非空检查等;未使用登录拦截器,可在未登录状态下直接使用URL访问特定页面。(2)代码提交不规范。一些小组提交频率过低,仅在项目开始和结束时各进行了一次提交;一些版本提交的粒度过大或逻辑不完整,对提交消息的描述也不够准确;有些小组的代码提交说明内容非常随意,缺乏可读性(如图1所示,其中第一列和第二列分别是代码提交ID和提交说明)。(3)缺少必要的分支管理。一些小组成员在各自分支上进行开发,主分支合并较晚,因而导致较多冲突,修复负担较重。(4)代码质量存在问题。典型的代码质量问题包括代码重复率和圈复杂度过高、标识符命名不规范、方法参数过多、在版本中包含alert语句、不合理的代码重复等。(5)用户界面不友好。界面上存在一些对用户不友好的情况,例如点击按钮后系统没有任何提示、执行操作后无法看到操作结果、一些重要信息无处查看等。(6)前后端分离及模块划分不佳。一些小组没有意识到在前后端分离及模块化开发过程中建立接口契约的重要性,出现了模块实现未按照契约编写的情况,导致小组项目集成时问题较多,拖慢了开发进度。
2.2进一步的实践探索
大部分小组通过阶段性反馈意识到相关问题后都进行了改进,最终大部分小组不仅圆满完成了各项基本要求,而且还在多个方面进行了一些有意义甚至创造性的实践探索,具体包括以下几个方面:(1)需求规划和任务交流。使用DevCloud进行需求分解与开发任务规划,在此基础上通过视频会议或即时通信讨论组的方式进行沟通讨论及结对开发,通过共享文档的方式约定开发接口、记录会议纪要以及协作完成实验报告。(2)设计思维和体系结构理解。在前后端分离的基础上,明确定义了后端接口及其契约,同时给出了包含后端模块划分及前端Web组件结构的完整设计方案,在设计方案基础上进行开发任务分配与协同。(3)演化式设计与软件重构。在迭代化的开发过程中不断评估设计方案的不足,据此对代码进行整理与重构,从而完善设计方案。(4)分支策略和开发协作。制定适合团队开发模式的分支策略,例如将主分支、特性分支、开发分支进行分离,建立规范化的代码分支(branching)与合并(merging)实践模式,保持主干清晰,及时提交并解决代码冲突;规范版本提交过程,采用规范化的模板,并按照新增特性、缺陷修复、重构改进等不同目的编写提交消息。(5)高质量编码。建立良好的代码注释风格;充分体现防御式编程,在前端输入验证的基础上,后端代码也进行输入值的合法性验证,并在发现问题时抛出异常;充分利用DevCloud的代码质量检查工具对前后端代码进行全面扫描,根据检查结果改进代码质量;开展代码评审实践,在发现代码缺陷的同时,也促进了组员对代码的理解与共享。(6)软件测试。初步建立测试驱动开发实践,通过JUnit工具编写测试用例,对类或方法进行单元测试,并保证一定的代码覆盖率;采用Web自动化测试方法,通过大量测试用例的自动运行保证后台接口质量。
关键词:综合飞行/火力控制,计算机网络,仿真
引言
为了更好地开展现代战机空战中自动攻击引导问题的研究,我们进行了空战自动引导系统仿真设计。本系统应用分布仿真技术、数据库技术和虚拟现实技术,采用DSP、高性能工控机及PC机进行设计,研制了战机空战中自动攻击引导仿真系统,用于自动攻击引导控制律研究与仿真验证。本文从硬件和软件两方面分别予以介绍。
1 系统硬件设计
系统中“我机”除增加了基于DSP设计的飞/火综合控制器,用于实现所设计的引导控制律之外,“敌”、“我”两机硬件组成基本相同,如图1所示。
由图可见,“敌”、“我”双机的硬件结构可以分成两部分:第一部分为模拟座舱,主要由操纵装置及传感器、左/右操纵台和两块大屏幕显示器(视景显示和虚拟仪表显示各一块)组成;第二部分为计算机网络,由仿真计算机、虚拟仪表计算机和集线器组成。论文参考。
1.1模拟座舱
“敌”、“我”双机均可进行人工或自动驾驶。人工驾驶时,进行双机的攻击演练。自动驾驶时,“我机”可以进行自动攻击导引。
“敌”、“我”双机驾驶舱布局相同,驾驶杆、油门杆、脚蹬等操纵部件采用飞机的实装部件,仪表板为虚拟仪表显示器。左操纵台为启动控制、油门杆,右操纵台为驾驶仪状态、气动参数及飞控系统传动比等控制/显示部分。布局如图2。
驾驶杆、脚蹬、油门杆等操纵部件的操纵信号由相应的位置传感器以模拟量形式送至虚拟仪表计算机的A/D接口卡;
启动控制部分包括:系统供电、引导方式选择、自动驾驶仪启动、起落架收放控制、襟翼位置控制及风力、风向选择;
驾驶仪状态由8个带灯按钮和2个拨动开关完成飞控系统各种状态的控制;
气动参数与飞控系统传动比使用20个多圈电位器完成相应参数和传动比的调整。
1.2计算机网络系统
计算机网络系统主要由两台工控机和两台PC机组成,由网卡和集线器(HUB)组成星形网络,实现相互间的数据通信。网络数据传输采用TCP/IP协议,采用Windows Socket的Client/Server模式,实现数据传输的功能。
PC机、工控机及DSP功能如下:
飞行仿真计算机(PC机) 软件任务调度;软件用户界面的输入;各种参数曲线的显示;实时显示飞机的运动状态和视景;支持三种视角(座舱、后视、前视);网络通信。
虚拟仪表计算机(工控机)硬件调参数据的采集;将飞机的状态实时显示在虚拟仪表显示器上;网络通信。
DSP(飞/火综合控制器)实时解算“我机”攻击引导律。
2 系统软件设计
仿真系统软件平台为WindowsXP,所有软件均建立在该平台上。在软件编写过程中,使用了VC、C++Builder等软件。所有的程序均使用统一变量名形式,程序都为32位代码,提高了与操作系统的兼容性和运行速度。
两台PC机及两台工控机(“我机”与“敌机”各使用一台PC机和一台工控机)通过以太网络联系在一起,完成仿真任务。飞行仿真计算机主要完成飞机气动方程和飞行控制律解算、飞机图像的变换和视景显示;虚拟仪表计算机主要完成控制信号采集和输出,座舱内各仪表(气压高度表、升降速度表、空速表、马赫数表、地平仪、航姿器)的显示。我机的基于DSP技术研制的飞/火综合控制器完成攻击引导律的解算。
仿真计算的步长为10ms,视景刷新率为25F/s,仪表刷新率为25F/s。
2.1 软件结构
所有的软件均采用模块化设计,以便于调试和移植。系统包含以下主要的程序模块:
任务程序模块 人工/自动引导方式选择、参数设定;
接口程序模块 控制量输入及测量信号输出;
方程解算程序模块 飞机气动方程、飞行控制律解算;
DSP程序模块 “我机”攻击引导律解算;
视景程序模块 飞机图像的变换和视景显示;
虚拟仪表程序模块 座舱各虚拟仪表显示。
2.2 各软件模块功能
2.2.1 飞行仿真计算机软件功能
通过网络接收虚拟仪表计算机数据;
实时计算飞机模型的响应及飞控系统输出;
实时显示飞机和视景,支持三种视角(座舱、后视、前视);
将飞机位置、速度、姿态等状态量通过网络送至虚拟仪表计算机;
显示飞机舵面动作及起落架收放;
关闭仿真程序;
以曲线显示双机飞行轨迹,并可选择送至打印机输出。
“我机”任务系统中飞行仿真计算机软件功能还增加有:通过网络接收“敌机”姿态及速度、高度等信息;与DSP进行数据传输。
2.2.2 虚拟仪表计算机功能
提供软件操作面板,进行各参数设定;
提供人工/自动引导方式切换开关,实现两种引导方式转换;
在硬件方式下通过接口程序采集驾驶杆、油门杆及脚蹬信号的输入;
通过网络接收飞机位置、速度、姿态等状态量数据;
将飞机状态信息通过虚拟仪表实时显示;
显示攻击引导方式(人工/自动)、自动驾驶仪、起落架收/放相应状态;
主要飞行参量以模拟信号形式输出。
2.2.3 DSP飞/火综合控制器功能
实时计算攻击引导律;
与“我机”飞行仿真计算机进行数据通信。
3 主要技术难点及解决措施
3.1 系统运行实时性的要求
程序运行过程中需要进行双机模型仿真、控制律及引导律解算,另外还有控制信号的采集、双机数据的输出及处理,所有这些都需要大量的计算,增加了实时仿真的技术难度。为达到系统实时性要求,在系统硬件和软件设计上均采取了相应的解决方法。论文参考。论文参考。
3.1.1 硬件设计方面
采用高性能的工控主机(P43.0 G CPU, 1024M内存,120G硬盘),提高主机处理能力。
采用高性能DSP(TI公司的16位定点C2000系列TMS320LF2407,性能优良且价格适中)进行控制律和引导律解算。
采用多功能智能型通信接口卡(ADVANTECH研华公司系列产品):PCL-818H(A/D16路单端或8路差分;DI/O16路);PCL-727(D/A 12路;DI/O16路);PCL-711B(A/D8路;DI/O16路)扩展卡PCLD-8115。增强数据处理能力,减小主板CPU负荷。
采用硬件定时中断卡(PIO-D64),减轻软件中断处理负担。
3.1.2 软件设计方面
采用主循环加消息驱动的机制,充分利用操作系统后台处理能力。
采用四阶龙格库塔算法,解算飞机12阶微分方程。
线性化微分方程减少系统处理的数据量。
3.2 飞控系统及攻击引导律实现
飞控系统保证飞机模型的正确实现,优质的飞行控制律设计则是空战仿真系统中的关键之一。考虑到今后对攻击引导律进一步研究的需要,系统允许“我机”实时选择不同的引导律进行攻击引导,以验证各种攻击引导律的优劣,从而实现对“敌机”最优的攻击方法。因此,我们在仿真演示系统的研发过程中,借鉴并采用目前一些成熟的飞控系统仿真和编程技术及成果,在提高研制效率的同时,还大大增强了系统的可靠性与可维护性。
3.3 数据动态刷新与同步
为了进行实时的空战演示,双机的高度、速度、姿态等信息需要及时传输并处理。系统中数据传输采用Windows Socket的Client/Sever模式,此模式可以有效解决网络中资源、运算能力和信息不对称的问题,并且为异步通信的进程建立联系,实现双方数据的同步。
4 结束语
本文针对双机空战模拟实时性及有效性的双重要求,设计并实现了一种基于工控机和DSP的仿真演示系统。该系统充分利用现代计算机技术、自动控制技术和面向过程编程技术,通过对现代战机飞控系统有效模拟,实现研究攻击引导律的完美平台。经反复调试和验证,系统性能稳定,工作可靠,可用于自动攻击引导律工程实现研究。
参考文献
1 王涛,吴文海. 多型飞控系统模拟器的设计. 飞行力学,1999,17(4):61~65.
2 张启,陈欣. 一种基于工控机的飞控系统模拟器. 工业控制计算机,2005,18(3):33~37.
3 雷亚平,杨忠,沈春林. 基于DSP的UAV飞控计算机设计与半物理仿真. 飞机设计,2004,3(1):55~59.
4 程文俊. 飞翼式飞机起飞着陆仿真技术研究:[学位论文]. 南京:南京航空航天大学, 2005. 58~67.
5 凌利. 现代战机引导及其效能评估研究:[学位论文]. 南京:南京航空航天大学, 2005. 33~35,63~65.
关键词:应用型;多媒体技术专业;人才培养模式
中图分类号:Q81-4 文献标识码:A 文章编号:1007-9599 (2012) 09-0000-02
一、前言
近年来随着计算机与网络的迅猛发展,新兴了多媒体技术,并形成了一个朝气蓬勃的产业。多媒体技术是一个典型的技术密集型产业,几乎涉及了高新技术的每一个热点,是具有交互特性的传媒展示综合技术。随着多媒体市场的发展,据不完全统计,全国有1000多所院校开设了多媒体技术专业。但是如何顺应市场发展的需求,办好多媒体技术专业,给学生创造良好的就业机会,很多问题值得探索和研究。
本文在分析目前我国应用型本科院校多媒体技术专业人才培养现状的基础上,以石家庄学院计算机系多媒体技术专业为例,针对专业培养目标、培养要求、课程体系和教学模式进行了研究与探讨。以服务地方经济建设为目的,探讨一种适合应用型层次的、切实可行的多媒体技术专业人才培养模式,并设计该专业的培养方案及课程体系设置。
二、应用型本科院校多媒体技术专业的人才培养模式思路
“多媒体技术”是信息学科和媒体学科向文化艺术领域拓展的新方向。随着计算机技术、网络技术和数字通信技术的高速发展与融合,传统的广播、电影快速地向数字音频, 数字视频、数字电影方向发展,与日益普及的电脑动画、虚拟现实等构成了新一代的数字传播媒体。
(一)培养目标
根据人才市场需求,结合石家庄学院办学指导思想,确定本系多媒体技术专业培养目标为:培养德、智、体、美全面发展,掌握数字媒体技术专业基本理论、知识与技能,具备数字媒体作品的设计、制作和技术创新能力,能在新闻媒体、文化传播机构、影视制作公司、游戏软件公司、动漫设计与制作公司、广告传媒、网络传媒、教育与培训机构等数字内容相关行业,从事游戏软件设计与开发、虚拟现实项目开发、数字影视制作、网络媒体设计与开发等相关工作的高级应用技术人才。
(二)培养要求
本系多媒体技术专业要求学生具有较高的政治觉悟和理论水平,树立辩证唯物主义和历史唯物主义的世界观。具有健全的人格、健康的体魄、团结协作的精神及一定的人文审美素养,具有较强的创新精神和实践能力,具有扎实的专业功底并掌握一定的科学研究方法。毕业生应获得以下几方面的知识和能力素质:
1.系统掌握数字媒体技术专业的基本理论、基础知识与基本技能,了解本专业及相关领域的前沿和发展动态;
2.掌握游戏软件设计的基本理论和技术,具备开发游戏软件的能力;
3.掌握虚拟现实项目设计的基本理论,具有能运用相关软件制作三维模型的能力,具备开发虚拟现实项目的能力;
4.掌握数字影视制作技术的理论与方法,能熟练运用拍摄、编辑、特效制作等技巧创作数字影视作品;
5.掌握网络传播的基本理论和技术,具备开展网站设计与开发、网络多媒体设计与开发的能力;
6.掌握数字媒体产品开发项目的策划与管理的相关理论与方法,了解相关的法律法规和行业规则,具备组织、控制、管理、推广数字媒体项目的能力;
7.掌握文献检索、资料查询的方法和撰写研究论文的能力;
8.具有较强的自学能力和创新意识;
9.具有适应社会工作岗位的综合素质和能力。
(三)课程体系
1.以就业为导向,以市场应用需求为目标,构建课程体系
我系多媒体技术专业培养目标是从事游戏软件设计与开发、虚拟现实项目开发、数字影视制作、网络媒体设计与开发等相关工作的高级应用技术人才。因此,在课程体系上,加大了专业模块课程的学分比例(占总学分的25.7%),实践环节课程提高到总学分数的21.1%。如下表1:
表1 课程结构与学分比例
课程类型 课程内容 修习类型 学分数 学分比
公共基础平台课程 “思想政治理论课”、体育、英语、计算机等 公共必修 39 22.3%
学科基础平台课程 学科基础课 专业必修
专业必修 18
26 10.3%
14.9%
专业基础平台课程 专业基础课
专业模块课程 专业方向课 专业必修 35 20.0%
提高、拓宽课 专业选修 10 5.7%
公共选修课程 素质教育课 专业选修 10 5.7%
实践环节课程 “思想政治理论课”实践、大学生职业指导实践、专业实习、毕业实习、毕业论文(设计)等 专业必修 37 21.1%
课外学分 课外学分等
合计 175 100%
2.以专业核心课程为主,以夯实学生专业基础为目标,突出应用型院校特色
为突出应用型院校专业特色,提高教学质量,我系多媒体教研室全体教师通过各种途径认真调研,研计本专业培养方案和课程体系,遴选出本专业核心课程,并围绕着核心课程进行教学和实施理论与实践教学改革。通过多种途径夯实学生专业基础,进一步强化专业骨干课程的重要性和在专业的地位。
本专业的核心课程包括:《数字媒体技术导论》、《C语言程序设计》、《数据结构与算法设计》、《计算机图形学》、《数字图像处理》、《软件工程》、《游戏策划与运营》、《三维数字建模技术》、《电视节目编导与制作》等。通过这些核心课程的学习,毕业后能胜任游戏软件设计与开发、虚拟现实项目开发、数字影视制作、网络媒体设计与开发等相关工作。
(四)教学模式的探讨进行研究
1.以提高学生的创造力和创新能力为宗旨,开展形式多样的课外兴趣小组
创新是设计的灵魂。我系教师不仅仅在正常的课堂教学和实践中注重培养学生的创新意识和创新能力,在课外还组织了很多不同内容和形式的多种多样的兴趣小组。这些兴趣小组是由学生根据学生爱好和特长自发组织起来的,旨在能够进一步的学习。课外小组的指导教师由我系多媒体教研室一些有经验的教师担任。这些课外兴趣小组内容多样,比如摄影兴趣小组、FLASH动画创作兴趣小组等、影视后期创作与制作兴趣小组、三维建模兴趣小组、二维转三维兴趣小组等等。这些兴趣以提高学生创作力和创新能力为宗旨的,利用课余时间,以达到提高学生自身综合素质为目的。我系多媒体专业学生在省挑战杯科技作品比赛、信息技术大赛中荣获了全国二等奖、省一等奖,省三等奖。
2.以业务进修、进企业挂职锻炼、引进企业精英为手段,培养教学骨干
信息时代对多媒体专业的专职教师业务和专业水平提出了更高的要求,再加上多媒体技术日新月异,更新较快;如果不与时俱进,有可能被时代所淘汰,无法胜任多媒体技术专业的教学;进而影响学生实践动手能力培养。因此,以“业务进修、进企业挂职锻炼、引进企业精英”为手段,从三方面提高专任教师业务和专业水平,培养成为专业教学骨干;使提高高质量教学和提供可靠的工程背景成为可能。
现在大部分高等院校采取了校企合作或服务外包的方式,即将优秀企业精英或公司高级技术人员引进到课堂教学过程中,聘请他们为客座教授,设立学术讲座,这样不仅仅提高了学生兴趣;增加了学生的实践意识,为学生的就业开辟了一条道路;还能通过与专任教师的互动与交流,进而提高教师本身业务素养。
3.打造良好的实践环境
我系本专业注重实践能力培养,安排有素描、色彩实践、构成实践、数字摄影实践、移动媒体游戏设计实践、动画设计制作实践、三维数字建模实践、数字影视节目包装实践、游戏设计制作实践、网站规划与建设实践、科研论文写作实践、电视节目制作实践等多个实践环节,它们与毕业设计一起构成完整的实践教学环节。
我系多媒体实验室的设备均为具备图形图像处理的电脑,为实施教学与实践教学提供了强有力的保障。我系还积极与校企合作和进行服务外包,目前与企业建立了四个实习基地和2项服务外包,为学习实习与实训提供了机会和保障。
三、结束语
作为我国应用型本科院校开设多媒体技术专业之一,我院多媒体技术专业在培养目标、培养要求、课程体系和教学模式等方面一直进行着实践与探索,在培养应用型人才服务石家庄地方经济建设方面也做了积极有效的工作。但是,与其他高等院校同一专业相比,在专业建设中还存在一些问题有待进一步探索;如课程体系中艺术类课程的比例应占多少,培养方案应如何适应多媒体技术的快速发展等等问题;在培养目标方面还应该根据企业对多媒体人才的需求以及多媒体技术的发展适时调整等等。
参考文献:
[1]符蕴芳,徐军.地方高校多媒体技术与应用专业的人才培养模式研究[J].电脑知识与技术,2011(14):3431-3432
[2]韩凤英.高职计算机多媒体专业培养目标探讨[J].职业时空,2010(3):63-64
基金项目: 河北省高等教育科学研究课题