1、中山大学信息科学与技术学院第三届科技创新大赛项目申报书项目名称:软件工程虚拟实验室 申 请 者:胡杨 所在单位(含院、系):信科院 计算机系 计算机科学与技术专业 通讯地址:广州市大学城中山大学至善园 6 号-208 邮政编码:510006 联系电话:13828438247 申请日期:2008 年 3 月 26 日中山大学学生信息科技发展中心年度 2008 项目类别教 学 辅助 支 持工 具编号 学科分类 计算机 科学2填 报 说 明:一、填写申请书各项内容,要实事求是,逐条认真填写。表达要明确、严谨,字迹要清晰易辩。外语要同时用原文和中文表达。第一次出现的缩写词,须注出全称。二、申请书为 A
2、4 开本,复印时用 A4 复印纸,于左侧装订成册。第三面以后各栏空格不够时,请自行加页,一式三份。三、填报时,应在封面“项目类别”一栏注明申请的项目类别。四、申请人不需要填写评审意见表。五、本表用于本届科技创新大赛有关项目。3一、简表名称软件工程虚拟实验室的研究设计与实现(S.E Lab+, Software Engineering Virtual Laboratory Plus Plus)项目类别 A A 类、重点项目 B 类、一般项目 名 称 1 名 称 2报审学科 软件工程 计算机科学研究类别A基础研究B应用研究C综合研究D其他研究B研究项目申请金额 800 元 起止年月 2008 年
3、3 月 至 2008 年 10 月姓名胡杨性别(打)A男B女出生年月 1987 10民族汉学历 本科 研究专长熟悉系统编程,网络编程,数据库以及分布式运算.精通 C/C+,熟悉汇编,以及系统底层的逆向工程熟悉 STL,Boost,Qt4名 称 中山大学计算机系申请者所在单位 邮 政编 码 510275联系电话 020-84112290总人数 博士生 硕士生 本科生 参加单位数5 0 0 5 1姓 名 性别 出生年月 学历 项目中的分工 所在单位 联系电话 签名胡杨 男 87.10 本科生 组长,软件工程管理,协调事务,网络层数据传输计算机系 13828438247杨潇 男 88.10 本科生
4、副组长,主程序员,服务器界面计算机系 13763374997洪小宇 男 86.11 本科生 算法设计,主程序员,UML 类图编辑器计算机系 13751829682项目组成员郑寅鹏 男 87.1 本科生 文档设计,经典案例分析界面以及数据解析计算机系 159187404634钟沛 男 87.6 本科生 创意策划,数据库设计,客户端界面计算机系 13560156364预期成果G, IA.专著 B.译著 C. 教材 D. 工具书 E. 论文 F. 调研报告 G.电脑软件 H.艺术作品 I.其他推荐人姓名 衣杨 专业职务 副教授 工作单位 中山大学计算机系5研究和实现大学本科阶段软件工程课程的虚拟实验
5、室,以实际案例强化学生的软件工程理论知识、训练实践操作能力、加强标准化的文档编写及设计实现能力,通过网络化的系统加强学生互助、师生交流、以及学生学习过程的可监测性,以此有助于克服当前软件工程实验教学弱点、改进实验教学质量。本项目对于科软件工程教学是一个很大促进,同时也是对于传统软件教学方法的一种挑战和革新,让软件工程教学从课室走到了宿舍,走到了学生身边。1.主题词数量不多于三个; 2.主题词之间空一格。研究内容和意义摘要主题词 软 件 工 程 实 验 装 置 C + +简表填写要求:一、简表内容必须认真填写,采用国家公布的标准简化汉字。二、凡选择性栏目,将相应提出符 A、B 等之一填入该栏的右
6、下角。三、部分栏目填写要求:项目名称应确切反映研究内容,最多不超过 25 个汉字(包括标点符号)。报审学科名称申请项目所属的基础学科。如涉及多学科可填写两个,先填为主学科。申请金额以元为单位,用阿拉伯数字表示,注意小数点。项目组主要成员指在项目组内对学术思想、技术路线的制定与理论分析及对项目的完成起主要作用的人员。6二、立论依据:(项目的研究意义,国内外研究现状分析,附主要的参考文献)软 件 工 程 是 大 学 计 算 机 学 科 群 中 一 门 比 较 重 要 的 高 年 级 必 修 课 程 , 此 课 程 对 于 培 养 、 训 练 、提 高 大 学 生 建 立 软 件 开 发 工 程 化
7、 的 思 想 理 念 、 掌 握 软 件 分 析 和 设 计 的 基 本 理 论 原 则 、 掌 握 规 范和 开 发 技 术 、 了 解 和 掌 握 软 件 实 现 过 程 管 理 的 知 识 、 以 及 积 累 项 目 经 验 都 非 常 重 要 。然 而 , 由 于 软 件 工 程 课 程 ( 简 称 SE) 是 一 个 理 论 结 合 实 践 、 管 理 结 合 技 术 的 学 科 , 对 于基 本 没 有 实 际 工 程 经 验 和 管 理 理 论 背 景 的 计 算 机 系 大 学 生 , 此 课 程 难 以 掌 握 , 大 部 分 同 学 感 觉到 此 课 程 很 抽 象 , 学
8、 习 的 效 果 不 好 。传 统 模 式 下 的 软 件 工 程 教 学 存 在 三 个 很 明 显 的 缺 陷 。1) 课 堂 知 识 抽 象 。 老 师 在 课 堂 上 的 讲 授 侧 重 于 软 件 工 程 概 念 部 分 , 着 重 阐 述 面 向 对 象 、结 构 化 、 以 及 软 件 项 目 管 理 的 基 本 概 念 和 理 论 。 听 完 之 后 了 解 了 概 念 , 却 还 是 不 明 白为 什 么 会 有 这 个 概 念 , 知 其 然 而 不 知 其 所 以 然 , 更 加 不 知 如 何 运 用 到 实 际 的 工 程 实 践中 。2) 缺 少 实 践 训 练 。
9、 缺 乏 比 较 完 善 的 实 验 环 境 和 工 具 支 持 学 生 , 有 效 的 培 养 软 件 工 程 课 程的 实 践 技 能 。 目 前 的 SE 实 验 支 持 软 件 只 有 Rational Rose、 Microsoft Project 等 , 几个 过 于 “通 用 ”的 专 业 设 计 软 件 。 缺 少 结 合 最 新 SE 技 术 的 案 例 分 析 , 没 有 问 题 背 景 、知 识 要 点 , 在 做 实 验 是 , 通 常 首 先 由 同 学 们 凭 空 想 象 出 一 个 软 件 项 目 , 然 后 自 己 解 决在 软 件 设 计 中 遇 到 的 问
10、题 , 缺 乏 一 个 规 范 的 对 实 验 结 果 的 评 价 标 准 ; 总 而 言 之 , 针 对软 件 工 程 的 教 学 辅 助 软 件 极 度 缺 乏 !3) 参 考 资 料 分 散 。 SE 在 网 络 上 有 大 量 的 资 源 , 但 软 件 工 程 是 一 个 很 大 的 学 科 , 而 且 网络 资 料 基 本 上 不 会 与 课 程 教 学 同 步 , 学 生 急 需 一 个 软 件 把 老 师 的 授 课 资 料 统 一 起 来 ,加 上 专 门 的 背 景 训 练 、 案 例 介 绍 和 分 析 , 让 同 学 们 不 仅 可 以 复 习 老 师 课 上 讲 授
11、的 知 识 ,还 能 在 机 房 或 者 宿 舍 随 时 随 地 锻 炼 实 验 技 能 。反 观 其 他 必 修 课 , 如 C+程 序 设 计 、 数 据 库 原 理 等 , 其 实 验 课 的 目 的 性 、 可 操 作 性 均 较 强 ,实 验 环 境 和 条 件 也 较 完 备 ; 在 实 验 室 , 根 据 课 程 内 容 , 学 生 使 用 IDE(集 成 开 发 环 境 , 如Microsoft Visual Studio)或 者 DBMS(数 据 库 管 理 系 统 , 如 Microsoft SQL Server), 完 成 老 师布 置 的 题 目 , 根 据 题 目 有
12、 效 地 学 习 专 业 知 识 和 培 养 能 力 ; 又 比 如 需 要 特 定 硬 件 进 行 实 验 的 必 修课 数 字 电 路 分 析 与 设 计 , 同 学 们 可 以 到 数 字 电 路 实 验 室 , 在 俗 称 ”面 包 板 ”的 数 字 电 路 板 上反 复 进 行 训 练 , 同 时 加 深 对 老 师 课 堂 讲 解 的 理 解 。 但 是 软 件 工 程 这 门 课 程 却 缺 乏 这 样 直 观 有 效的 实 验 手 段 。参 考 文 献 :MIT Software Engineering Course1.http:/ ocw.mit.edu/OcwWeb/Ele
13、ctrical-Engineering-and-Computer-Science/6-171Fall2003/CourseHome/UIUC Software Engineering Course2.http:/ www.cs.uiuc.edu/undergraduate/courses.php?course=cs428Stanford Software Engineering Course3.http:/ www.stanford.edu/class/cs295/74.Roger S Pressman. Software Engineering: A Practitioners Approa
14、ch, 6th EditionNewYork: McGraw-Hill, 20055. 钱 乐 秋 , 赵 文 耘 , 牛 军 钰 软 件 工 程 清 华 大 学 出 版 社6.郑 人 杰 , 殷 人 昆 , 陶 永 雷 实 用 软 件 工 程 清 华 大 学 出 版 社8三、研究方案:1研究目标、研究内容和拟解决的关键问题S.E Lab+可同时在 Windows、Linux、Mac 等主流平台上部署,它将是一个可跨平台的软件。任何学习者都能获得为其量身定做的可运行版本。本项目旨在开发一套实用性强的软件工程课程实验装置,为学习者营造一个分阶段、循序渐进并且带有明确目标、进度指示和定量评价手段的
15、学习过程。本项目研究的主要着眼点在于如何利用计算机辅助教学(CAI)技术,实现软件工程实验课程理论与实践的紧密结合;研究内容将包括教学辅助软件界面的设计,知识点相关案例的展示方式,对学习进度的定量、自动化评价和管理,个人资料、案例、习题、知识点等信息的表示(用适当的数据结构)和存储等主题。本项目针对当前软件工程实验课程的情况,主要解决软件工程实验装置没有充分体现学科特点及教学要求这一问题;具体上通过将教学系统、评价系统与可视化的分析、设计工具相结合,将知识点的讲授、案例的演示与学习者的动手实践相结合,培养学习者的理解、分析、设计以及表达能力,并以习题的方式对其知识点掌握情况进行评估。在循序渐进
16、的学习过程中,学习者将加深对软件工程核心思想的体会,逐步掌握软件开发流程中各个阶段所需的实验技能。明确的学习目标和交互式的学习手段,有助于帮助初学者克服对软件工程实验“纸上谈兵”般难以入手的尴尬,总结出实实在在的体会和收获。拟解决的关键问题:1)在并发的网络环境中,本项目对于稳定性以及性能方面的要求特别是在多人通过本虚拟实验室与老师互动的时候的速度和相应时间的高要求。2)在知识点练习的时候,怎样模拟老师出题的场面,特别是练习提交的时候怎么样模拟老师改试卷的情况,如客观的评分,以及有用的提示和批注。2拟采取的研究方法、技术路线、实验方案及可行性分析师生互动环节经典案例解析UML类图设计课后习题训
17、练学生讨论社区虚拟实验室平台9拟采取的研究方法、技术路线、实验方案:以软件工程权威文献、行业国家标准为主导,辅以主流软件开发规范,以“研究实现再研究再实现”的迭代开发方式来实现此项目。1) 需求分析:通过负责软件工程教学的衣杨老师的指导,自己的上课的亲身经历和与感受一与同学之间的沟通与交流,发现目前教学中的不足和需要改进的地方2) 系统架构设计:通过第一步,得知客户(学生)对软件工程教学的需求,开始思索整个程序的架构设计3)系统静态逻辑结构的设计:设计好宏观以及总体的系统架构以后,小组会一个星期开一次会慢慢讨论底层的静态逻辑架构的建设4)代码编写:在每个架构都设计和构思好以后,开始按照之前的需
18、求分析和方案开始编写程序以及代码5)项目单元测试:在代码编写完成以后,项目组成员内开始对已完成的项目软件进行分步骤,有条理的单元回归测试,以及压力测试以便及时发现问题,修改问题.6)项目管理:在通过系统的测试以后,开始正式投入使用,部署。而且及时和用户沟通,不断了解新的形势和变化,进一步完善功能,提高用户满意度。技术路线:采用跨平台的 C+类库 QT 来实现平台无关性,使用 SQLite 实现数据库存储访问,以在线团队协作和项目管理平台 EveryDo 来实现项目的管理、任务日程安排、文档、代码的更新和成员交流,以 boost 库的智能指针、函数绑定、信号-槽机制来加强项目实现的稳定性及组件化
19、。可行性分析:本项目已有详细的研究资料列表,项目的各个目标功能皆已确定了对应的技术方案,因此项目在技术上已经不成问题。项目组组长、组员各有所长,各成员都曾参与与他人合作的编程项目的开发,组长胡杨更是 QT、Boost 等跨平台 C+库的精通者;而组员杨潇长于数据库、界面编程,组员洪小宇精于算法、图表绘制的程序实现、组员郑寅鹏长于数据格式设计、文档实现,组员钟沛精通 QT 界面编程:因此,对于此项目所采用的各技术,小组成员们完全能够胜任。103本项目的特色与创新之处本项目计划研究、设计开发一个软件系统软件工程虚拟实验室(S.E Lab+)具体特色如下:1)提供虚拟学习环境。使用者通过 S.E L
20、ab+提供的具体案例训练,获得软件工程中各环节的基本技能(包括需求分析、系统分析与设计这样的设计技能,以及图表绘制、各种文档的标准格式等操作技能),2)提供 SE 实验软件装置。虚拟实验室提供的各种虚拟实验装置,如各种图表绘制工具,例如 UML 绘制、数据流图绘制等,和各种标准格式的文档又为进行软件工程实验提供了有力工具。3)提供面向教师的学习进度监测、管理功能和学习社区功能。学习者登入联机系统时,学习的进度、质量将会汇总到服务器供教师参考;教师也可以自由定制需要学习者完成的测试。同时,通过记录各使用者的学习进度细况,一个使用者在需要帮助时,可以了解到哪些使用者已经顺利完成了自己正在学习的知识
21、点,从而可以向这些使用者发送消息并请求帮助。学习者在学习社区内可以轻松地就软件工程课程请求帮助、提供帮助和发表意见。4)两大突出技术特点:大规模,高性能,并发网络连接的支持。模拟现实批改自然语言的试题的人工智能的研究。4(1)预期的研究进度和成果(2)项目规模及要达到的技术、经济指标(3)效益预测(1) 预期的研究进度和成果:2008-3-01 2008-4-30:进行需求分析,与老师和同学交流,得出共识。项目组进一步完成,问题陈述,用例分析,用例规约,活动图。等初期文档2008-5-1 2008-5-31:开始宏观上进行系统的架构设计。2008-6-1 2008-6-30:开始系统底层逻辑结构的设计,反思之前的 2 步不足的地方,进行评估修改。2008-7-1 2008-8-28:开始正式进行代码的编写工作,预计此时可以完成一个带有完整软件工程案例的软件工程虚拟实验室的例子。2008-9-1 2008-10-1在最终完成作品的基础上进行单元回归测试,发现以及纠正必要的问题。等诸类成员再也不能发现问题的时候正式投入使用,部署,进入软件项目管理的过程。(2) 项目规模及要达到的技术、经济指标:此虚拟实验室完成以后应该是一个可以满足部署在实验室的实验环境,规模大概是一个机房或者说 75-125 人共同学习软件工程。预计达到的技术:1)提供虚拟学习环境。2)提供软件工程实验软件装置。