软件工程创新性实验教学课程实践_优秀论文_第1页
软件工程创新性实验教学课程实践_优秀论文_第2页
软件工程创新性实验教学课程实践_优秀论文_第3页
软件工程创新性实验教学课程实践_优秀论文_第4页
软件工程创新性实验教学课程实践_优秀论文_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、 软件工程创新性实验教学课程实践摘要:传统的软件开发方法以及对应的软件工程课程实验设计通常缺乏一致性、系统性, 不利于提高学生软件开发的综合实践能力。针对上述问题, 开设实施了软件工程创新性实验教学项目“基于AADL模型驱动的软件开发方法”, 使得软件开发过程的各个阶段集成于统一、一致的建模框架中。同时, 辅以“做中学”与项目驱动相结合的教学模式, 让学生从实践中体验一个完整的软件开发过程, 提高学生的自主学习探索、软件开发综合实践能力, 为软件工程实践教学的开展提供实用的可选方案。关键词:软件工程;创新性实验教学;AADL;模型驱动;项目驱动传统软件工程课程教学主要以经典的结构化方法学和面向

2、对象方法学为主线, 讲授两种方法学在软件生命周期开发各个阶段的原理、方法及工具的应用1。在课程实验阶段, 结构化方法学通常使用数据流图、软件架构图、流程图2等不同的描述方式来分别刻画软件从需求分析、概要设计到详细设计的开发模型, 对于软件开发初级者来说, 同一软件在开发过程中采用不同描述手段, 在两个不同阶段之间, 都需要进行手工的模型转换(例如从数据流图到软件架构图的转换), 容易引入错误, 很难保证所建模软件系统的输入输出一致性。而面向对象的软件开发方法学尽管在软件开发生命周期的各个阶段主要采用统一的UML语言来建模软件, 但是由于仍然采用了多种视图模型3(如用例图、类图、顺序图等)来描述

3、同一软件不同阶段的开发, 同样容易导致软件开发的不一致性。基于上述问题, 软件工程创新性实验教学课程引进了一种有别于传统软件方法学的新型软件开发方法, 即基于AADL(ArchitectureAnalysisandDesignLanguage)4模型驱动的软件开发方法。基于模型驱动的软件开发方法3主要以高度抽象的模型为核心, 将软件开发焦点聚焦于需求功能的获取、软件体系架构及业务逻辑的设计, 而底层与平台实现相关的代码框架则可以由相应的软件工具自动生成, 极大地提高了软件开发效率。基于UML的软件开发方法也属于模型驱动的开发方法之一。为了避免UML多种视图模型可能导致的软件开发不一致性, 本课

4、程结合当前高可信系统的开发研究热点, 选取了美国汽车工程师协会提出的体系结构分析与设计语言AADL作为模型驱动开发方法的建模语言。该语言支持自顶向下、粒度逐级细化的基于组件的开发方法, 将系统、子系统、进程、线程、子程序等常用的计算机运行时组件集成于统一的描述框架中, 能够较好地保证软件开发的一致性。另外, 该语言除了提供图形化的表示方式以外, 还提供具有精确语义的文本描述以及支持第三方插件的通用XML描述方式, 因此便于在软件设计早期对其表示的软件体系架构模型进行分析校验, 尽早地检测出系统设计缺陷, 有效地减少软件故障检测成本。本课程在引入上述方法的同时, 还结合“做中学”5与项目驱动相结

5、合的教学模式, 将基于AADL模型驱动的开发方法应用于实践项目的开发过程中, 从而使需求分析、概要设计、详细设计、代码生成等开发过程集成于统一的开发框架中, 让软件开发者对于软件开发各阶段的系统一致性及软件回溯确认验证有一个良好的开发实践, 聚焦于业务需求、架构设计, 提高软件开发综合实践能力。1基于AADL模型驱动的软件开发方法的应用本课程选取了AADL语言作为模型驱动的建模语言, 能将软件工程开发各阶段统一于视图一致的框架中, 能够很好地顺应经典的瀑布模型的开发过程。在软件开发的不同阶段, 仍然采用以AADL组件为基础的统一视图, 下层视图模型在上层的视图模型的基础上, 提供组件粒度更细的

6、视图。例如, AADL系统及细化的子系统组件模型对应于需求分析阶段的业务需求建模;AADL进程组件模型在系统需求模型的输入输出接口限定下进一步推导出体系结构模型, 对应于软件工程的概要设计阶段;AADL线程组件及子程序模型作为进程模型内部的执行体, 刻画软件的动态行为, 对应于软件工程的详细设计阶段。由于该方法遵循自顶向下、逐级求精的方法学, 所以每个阶段获取的AADL模型都是基于上一阶段的模型框架下细化得到, 便于复审验证分析。若发现某个开发阶段的模型缺陷, 可以回溯至上一阶段进行重新分析与设计。对于最终确认的详细设计模型, 学生可以进一步手动完成整个编码工作, 也可以选取相应的代码生成工具

7、生成代码框架, 再补充完整业务代码。该方法在需求分析、设计阶段通过对模型进行早期分析验证来部分替代传统的代码测试方法, 以减小代码测试晚期检测到的错误代价。2以“做中学”模式提高学生探究式学习能力2.1教学设计课程实验采取“做中学”教学模式, 以促进学生自主学习, 探索未知科学的能力。参与课程的学生包括计算机专业以及来自于地理信息科学、机械电子工程、信息科学、信息管理等非专业的学生, 基础各不相同, 且大部分同学从未接触过AADL语言建模项目, 所以配套编写了详细的实验指导书, 提前分发给学生进行实验准备与预习。给学生提供丰富的国内外文献参考资料, 学生可以在遇到问题时进行查阅解惑, 并要求学

8、生将问题及解决方案写入报告。要求学生通过系列调研后, 自主选择一种AADL语言建模工具, 在实践中快速学习一门语言的使用与相应的建模方法。课程同时也给予学生自由的探索空间, 对于问题的解决给予开放式的策略, 不作过多限制。例如在AADL建模时, 学生可以选择AADL文本、XML、图形表示之一, 但要求整个软件建模阶段采用前后一致的表示方式, 以便于模型的分析与验证。对于模型分析验证的方法可以基于不同的表示形式, 采取不同的分析手段。2.2教学效果学生通过自主学习实验指导书以及查阅文献资料, 能够选择当前流行的AADL语言建模工具(如OSATE等)辅助软件系统的开发, 并能通过工具自带示例快速的

9、学习AADL语法, 体验该语言的建模特性。例如, 有的学生选择采用AADL文本的建模方法, 并利用现有的词法、语法分析工具(如LEX, YACC)对AADL文本进行分析验证;有的学生则以AADL文本相对应的XML表示为基础, 采用XML解析技术(如DOM、SAX)自己实现模型解析与分析的逻辑。有的学生采用图形表示方式进行建模, 直观明了, 但发现图形表示的模型不便于之后的模型检测, 因此利用相应工具将图形转换为文本方式, 进行进一步处理。通过做中学的模式, 学生通过实践, 发现具体问题, 激发学生的求知欲与好奇心, 再辅以详实的实验指导书和丰富的参考资料, 提高学生自主探究解决问题的能力。3以

10、项目驱动提高学生综合实践能力3.1教学设计通过项目制的方式, 让学生组成23人的团队实践一个完整的基于模型驱动的软件开发过程, 提高学生的综合知识应用能力、沟通合作能力、软件复审能力、文档撰写能力等多项综合实践能力。首先, 学生需要综合软件工程、操作系统、计算机组成原理等多门课程的知识来理解AADL各组件的建模语义, 并将其准确地应用于项目开发各阶段的建模。其次, 每组学生都要负责该组项目开发的一个或多个阶段的建模与分析任务, 负责每个阶段建模的学生还需要对其建立的模型采用适当的方式进行分析验证, 如果发现问题, 可回溯至上一阶段的模型, 与其负责的学生进行沟通确认, 共同解决问题。同时, 在

11、每个阶段需要输出规范的文档, 以备复审, 且作为下一阶段开发的依据。3.2教学效果多数团队项目成员能够严格按照软件开发瀑布模型各阶段进行任务分工, 并利用AADL语言固有的分层组件语义进行自顶向下逐级细化的开发。例如, 负责需求建模的成员使用AADL语言精确地刻画出系统及子系统模型的输入输出接口, 并给出相应的需求分析文档。该团队负责概要设计的成员依据该需求分析文档, 继续在由AADL系统组件刻画的需求模型的接口之下进一步细化推导出体系架构模型, 并输出概要设计文档。负责详细设计的成员依据概要设计文档, 在由AADL进程组件刻画的体系架构模型的接口之下进一步刻画系统的动态行为模型, 以保持系统

12、的一致性和可回溯性。由于整个软件开发过程的一致性, 当发现问题时, 团队成员能够依据该阶段的模型和撰写的文档快速向上回溯, 通过进一步沟通探讨, 及时解决问题。4结语该项目作为华中农业大学本科创新性实验项目之一, 来自于计算机科学与技术等六个不同专业的学生参加了总共30个学时的课程实验。学生自由组成了多个小组体验了基于AADL模型驱动的软件开发方法, 通过“做中学”的方式, 从实际项目中体验了软件工程从需求分析到详细设计的自顶向下逐级细化的设计思想, 提高了学生的自主学习探索能力以及软件开发综合实践能力, 增加了学生探究科研、开发可信软件的兴趣。该项目为软件工程创新性教学改革提供了一种实用可行的参考方案。参考文献1窦万峰.软件工程方法与实践(第3版)M.北京:机械工业

温馨提示

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

评论

0/150

提交评论