2009
1.课程目的
在完成软件工程课程后,需要应用软件工程开发方法从需求分析、体系结构设计、详细设计、测试等相关环节来实践软件系统开发过程。本课程提供了相关完成相关环节报告的模版,需要学生在完成相关软件题目开发过程中,按照软件工程学到的方法,在各个阶段撰写相关内容。
2.课程内容
2.1.课程要求
开发题目将按照高中低三个档次来进行布置,每个题目的起评分依照项目难度的不同分别为90、85和80。如完成基本题目要求的功能为以上分数,如缺少部分功能将减少5~10,如不能完成(缺少大部分功能)将减少20分,如提供比较完备的功能将在此基础上增加5~10分。
提交的作业需包含以下内容:
1.选择以下题目或自拟一个题目,并提交与此题目对应的可执行代码和源代码。(20~30分)
2.提交四个文档,即产品需求规格说明书、体系结构设计说明书、模块设计说明书、测试用例说明书(70~80分,以论文来替代此部分报告,将给零分)
3.将完成的文档以压缩包的格式上传,不能上传多个doc、docx文档,以免造成文件的丢失。
2.2.开发题目及其验收内容
2.2.1.表格识别和内容抽取
难度
高
实现内容
在Windows平台或Andorid/IOS平台下实现图片中表格内容提取应用程序。这个程序能够识别输入图像中的表格格式,抽取表格中内容,并将获得的表格及其内容保存为Excel支持的表格文件。
2.2.2.手写公式计算器App
难度
高
实现内容
设计Andorid/IOS应用程序,能够对用户输入的数字和公式进行识别;在识别结果基础上,能够对用户录入的公式进行计算,并获得正确结果。同时支持用户通过拍照的形式,对纸张上的公式进行识别,并进行计算(具体可以参考小猿搜题中计算功能)。
2.2.3.P2P分布式存储
难度
高
实现内容
使用Java下JXTA或自己设计P2P协议完成多个客户机下的资源共享。此系统具有以下功能,每个用户能够配置自己的硬盘空间来供全网络的用户使用,每个用户能够看到全网络下唯一的文件视图(即能够看到唯一文件目录,此文件目录下存储着全网络的共享文件),用户能够在此文件视图下创建文件目录、上传文件和下载文件。其中上传文件指的是将本地文件上传到P2P文件存储系统中,下载文件指的是将P2P文件存储系统中的文件内容下载到本地机。
2.2.4.工作流引擎的设计
难度
高
实现内容
查阅工作流资料和分析现有的开源工作流引擎软件,设计一套简单的工作流描述语言,并对此语言建立解释和运行引擎,以支持工作流系统的开发和运行。要求此语言能够支持简单形式的流程,如顺序、分支和循环。在此基础上实现工作流语言的可视化和图形化编辑、生成(此内容为加分)。
2.2.5.数据库迁移工具设计与实现(ETL)
难度
高
实现内容
查阅ETL相关软件和开源工具,据此写出ETL实现技术的分析报告。并按此完成相应的ETL软件的分析、设计和开发。此题目要求的ETL功能具体为:支持Oracle和SQL Server数据库平台下数据表和数据的双向迁移,支持Oracle到SQL Server的触发器、存储器、功能包的单向迁移(从Oracle到SQL Server或SQL Server到Oracle)
2.2.6.移动平台下的五子棋程序设计
难度
高
实现内容
实现五子棋对弈界面,能够支持人机对弈过程,能够判断胜负。通过查阅人工智能中相关的搜索算法,来给出五子棋的存储数据结构和相应的搜索算法,以及评估函数。使得机器具有一定水平的对弈能力。
2.2.7.机器人自动行走游戏
难度
中
实现内容
使用Unity3D创建游戏场景以及自己设计的机器人模型,然后在场景中随机生成多个障碍物;设计机器人的控制算法,让机器人在上述场景中躲避障碍物,并向指定目标运动。
2.2.8.手机上自动换脸APP
难度
中
实现内容
在Android/IOS上设计应用程序,能够从手机摄像头中获得自己头像视频;通过构建深度学习模型(参考deepface),能够将视频中自己头像改为指定目标人物的图像。
2.2.9.手机上旅游信息APP
难度
中
实现内容
在Android/IOS上设计应用程序,支持朋友之间对旅游线路讨论(要有旅游线路地图)、预订酒店、旅游过程感悟发布、及相关经验讨论等功能。除此以外,还能根据用户旅游经历,向其推荐他可能喜欢旅游的信息。
2.2.10.手机/平板多媒体终端控制
难度
中
实现内容
通过手机或平板来完成对电脑中PPT展示功能的控制。具体功能要求为,使得手机能够控制电脑中PowerPoint软件中的文件打开、文件播放、上一页和下一页等针对PPT文件的播放功能。在电脑针对指定PPT文件进行播放的过程中,手机屏幕应与电脑屏幕一致,并能够控制播放。(如果实现对手机屏幕内容进行标注编辑并同步显示到投影中的功能,则此系统的难度升级为高)
。
2.2.11.Ajax技术的个人日历系统
难度
中
实现内容
实现个人日历系统,此系统能够记录个人日志安排,能够对个人到期的事务进行定时提醒,通过Google地图或Microsoft地图,能够反映出个人事务的发生地点。此系统的界面应类似于Outlook中的日历功能(已有相应的Ajax组件来实现),并具有地图查询显示功能(即通过地图能够看到将要发生的事件)。针对个人提醒功能,要求如果用户在线,则通过系统弹出动态提示框来完成,如果用户不在线,则通过发送电子邮件来完成。此系统能够同时对多个人的事务安排进行管理。
2.2.12.电子词典系统
难度
中
实现内容
实现鼠标的动态取词功能,根据鼠标指向的英文单词,从Google的翻译引擎接口(Web Service)得到相应的汉语内容,并使用系统提示框进行显示(可参考金山词霸Google版来进行设计)。
2.2.13.局域网消息和文件传递系统
难度
中
实现内容
在局域网内能够动态看到正在在线的系统,能够针对指定个人的在线系统发送消息或发送文件。要求能够使用聊天模式与多个人同时进行消息发生,能够同时发生和接受多个文件(包括针对文件夹内所有文件的发生和接受)。具体可参考飞鸽传书的程序功能。
2.2.14.在线商城销售平台
难度
中
实现内容
此系统具有三种类型的用户。系统用户能够管理所有的用户权限及其发布的相关信息。商户能够根据系统用户的审批来创建自己的网上商店,能够对自己的商店主页进行个性化显示和布局,能够上传自己的商品图片和价格,能够统计自己的库存货物和已收货物,能够得到累计收入报表,能够查询购买货物的帐号信息;普通用户通过在线注册,得到此系统的账户,能够浏览此平台下各个商店中的货物,并能够进行订购,能够管理自己订单。要求此平台的主页能够将商城中各个商户的货物按照类别和商户级别进行相应的显示(类似于淘宝网的首页)。
2.2.15.排课软件设计
难度
中
实现内容
针对现有排课软件做出分析,形成分析报告。并在此基础上,设计排课软件,此排课软件应考虑以下限制条件:每个教师的开课情况,选课的学生所在的班级和专业,选课的人数,上课的时间,上课的地点等情况。根据上述约束条件,生成课表,并能够根据实际要求进行手动课程调整,但是通过此系统能够判断调整后是否与其它课程安排冲突(比如安排在同一教室,同一教师或学生上两门或多门课),并将相关信息进行显示,并给出按照手动调整后的课程结果,如何来调整其它冲突的条件,来解决课程安排。(如考虑的因素多,并且能够给出课程调整的完整解决方案,并且具有较高的执行效率或较好的解决算法,则此项目难度可升级为高)
2.2.16.在线视频网站设计
难度北京石油答案请进:opzy.net或请联系微信:1095258436
中
实现内容
用户能够上传自己的视频文档,并对自己的视频资料进行管理,其它用户能够浏览别人上传的视频资料并能够书写相关的评注内容。系统管理员能够对视频内容进行审核,网站首页能够对点击率高的视频链接进行显示,能够对视频按照类型进行分类显示
2.2.17.旅游网站的设计
难度
中、高
实现内容
用户能够将自己的旅游图片和相关信息发布到Google地图中,使得其它用户通过查询能够看到某个旅游景点的图片资料或者是文字资料。并且驴友能够组成固定的旅游联盟论坛,在此联盟论坛内能够通过Google地图来发布旅游线路介绍,其它人能够针对此旅游信息进行讨论(类似于BBS)。此系统的主页和页面设计要求美观(建议部分内容使用Flash或者Silver Light技术来进行编程实现)。
2.2.18.多平台下应用场景共享
难度
高
实现内容
在多个window平台,或windows与linux平台、或window与android平台下,运行应用程序,多个平台下的用户均能够控制和观察到应用程序运行的情况。
2.2.19.移动平台下自动点名程序设计
难度
中、高
实现内容
利用移动平台下的蓝牙或Wifi热点,能够对处在课堂内的学生实现自动点名,并能够统计学生的日程出勤情况。要求能够设计出简单、有效点名进制,教师和学生只需打开相应的软件即能够完成点名,能够支持利用学生的发过来的短信进行点名。要具有相应的验证机制,防止学生在非课堂环境中完成点名。
2.2.20.其它
题目可以按照自己的研究方向自拟,要求内容有创新性。难度和起评分准则为如下:
规则1. 创新性:有自己的Idea,目前没有相关的应用实例,并且有一定的实用价值,此类系统判定为高;有自己的Idea,目前没有相关的应用实例,但不能看到其实用价值,此类系统判定为中;其他为低
规则2 技术难度:较为复杂的数据结构、算法或涉及到操作系统内核相关技术,此类系统为高;如果使用较新的技术(如Ajax、Flex、Web Services等,一般为近三年左右出现的新技术),则系统难度为中;其他为低。
规则3:通过以上两个规则得到的难度(创新难度和技术难度),取其中较大的难度作为此项目的参考难度。