APP下载

以“互联网+”体验式社区农场为例的毕业设计课题设计

2019-05-24江建慧

计算机教育 2019年5期
关键词:毕业设计体验式农场

张 颖,江建慧

(同济大学 软件学院,上海 201804)

0 引 言

“互联网+”技术是软件工程学科一个重要的研究方向[1-2],也是现今社会上创新创业最活跃,创造大量社会和经济价值的新型领域。软件工程专业的学生具有极大的热情学习这门科学技术,为此,软件工程学科通常开设数据结构与算法、软件工程、计算机网络、无线传感网络、数据库设计、移动计算等课程,这些课程体系有力地支撑着“互联网+”技术的教学。为了培养学生的实践能力,这些课程还包含专门的教学实验和课程设计。

毕业设计阶段是一个培养学生集成应用能力的重要教学阶段[3]。在毕业设计阶段,本科生已经完成了各门课程知识的学习,同时具备课程相应的技术开发能力,但本科生在将课程间的知识与技术融会贯通方面仍缺乏足够的能力,包括协同设计和开发能力。“互联网+”项目需要集成多种技术,为用户提供多维的服务,然而,目前高校面临的较为普遍的问题是部分课程及其相应的课程设计相互孤立,因此,难以培养学生的集成应用能力[4],学生无法胜任开发完整的“互联网+”项目任务。

1 “互联网+”应用需求分析

“互联网+”技术是一项重要的技术革命,通过无线或有线的网络,将商品或者服务的供应者和消费者联系在一起,构造一种全新且便捷的渠道,创造社会和经济价值,因此,“互联网+”也成为当前创新创业的热门领域。

分析现实社会的“互联网+”应用需求,设计“互联网+”的毕业设计课题,需要兼顾多方的需求,如图1所示。参与毕业设计的学生都希望参与贴近现实社会的项目开发,并且愿意进行团队协作开发,提前适应未来的工作方式;毕业设计指导教师需要毕业设计项目满足学校的教学要求,能够覆盖相关课程的核心知识,并且开发过程有一定的深度和难度;企业都在进行信息化建设,离不开使用“互联网+”技术,但是他们难以准确描述所需要的“互联网+”系统。

图1 毕业设计的各方需求

采用“互联网+”体验式社区农场的毕业设计项目作为示例,目的是培养学生的知识和技能的集成应用能力,以及促进创新创业活动的开展[5]。体验式社区农场是一种被各地农业扶贫攻坚推广的新型农业模式,让消费者参与生态农业生产,最后农产品直接输送给消费者。这种农场不仅能提高农业经济效益,增加农民收入,而且能让消费者获得最新鲜的农产品。实现这种农场需要网络技术的支持,一方面,这种农场需要使用网络技术监控生态作物,控制农业种植过程,以提高生产效率;另一方面,农场需要具备农产品买卖和农场租用功能,为消费者和农业工作者提供服务。“互联网+”体验式社区农场的毕业设计项目需要满足上述应用需求。

2 “互联网+”毕业设计课题的设计

毕业设计是本科生毕业之前最后一个实践教学环节,也是全面培养和检验学生综合运用学科知识的重要教学过程,因此,软件工程专业的“互联网+”毕业设计课题的设计必须紧密结合软件工程相关课程知识,并且具有一定的难度和真实性,促使学生深入掌握相关知识。具体而言,首先需要详细地分析“互联网+”的社会需求,然后细化为明确的项目需求,再筛选出与课程知识相关的需求点,建立起项目需求与课程知识点之间的映射关系。一个大的项目可能需要分解成若干个子项目,自然地需要将各课程的相关知识点融入子项目中,最终形成毕业设计任务书。以“互联网+”体验式社区农场系统为例,设计“互联网+”毕业设计的详细过程如下。首先,设计“互联网+”体验式社区农场系统的功能需求,包括信息管理、农产品管理、农田租赁、个人农田详情、登录与注册和日志管理,如图2所示。这些功能进一步细化,形成明确的功能,如信息管理包括用户信息和地址信息管理,而农产品管理包括浏览农产品、收藏农产品、编辑购物车和订单管理。其次,按照功能属于“互联网+”系统的前端和后端,以及前端的运行平台,将这些功能需求划分为互联网网站、手机APP客户端、物联网系统和网络后端4个子系统。这些系统的开发都需要按照软件工程的流程进行,各子系统开发所需要的知识分别对应计算机网络、移动计算、物联网、数据库系统等课程。最后,将相关课程知识融入子项目的任务书里。①网站系统主要对应计算机网络课程,涉及网页开发和组织,但是网页数量庞大而且类似,因此还可以将面向对象的程序设计思想融入该项目中。在任务书中,要求将所有网页聚类,然后设计网页的模板,采用这些模板设计具体的网页。②手机APP开发主要对应移动计算课程,涉及Java移动开发,需要调用手机短信库和WiFi数据,还需要与其他平台进行交互,因此,本项目的任务书包含数据流管理的任务,保持与网站数据同步更新,同时对数据更新添加写数据锁。③远程种植控制系统对应物联网课程,该项目的任务书包括使用节点采集数据和控制种植操作;实现无线结点之间的组网和数据的点播、组播和广播;物联网结点与远程终端通过短信或者WiFi进行数据通信。④后端系统主要对应数据库系统课程,需要进行数据设计覆盖所有的信息,同时需要明确数据之间的ER关系。由于后端设计中的IP地址管理比较复杂,任务书要求学生使用云平台实现后端,而且后端还需要管理“互联网+”系统中的日志信息。

图2 “互联网+”体验式社区农场系统的功能需求

3 “互联网+”毕业设计课题的实施

同济大学软件学院大学四年级的4位学生组成团队,负责“互联网+”体验式社区农场系统的开发。4位学生分别负责“体验式农场”的网站设计、“体验式农场”的手机APP设计、远程种植控制系统和“体验式农场”的后端设计。首先,根据软件工程课程的要求,每位学生都被要求构思各自系统的功能需求,并且把这些功能需求写入各自的毕业设计任务书中;其次,负责后端设计的学生设计全系统的概要设计框图,明确其他系统接入后端的接口,如图3所示;第三,该学生和其他学生开展讨论,确定全系统使用到数据以及数据之间的关系,并且约定各系统需要提供的日志信息;最后,该学生需要采用现有商用的云平台,部署本系统的后端。负责网站设计的学生明确“体验式农场”系统中农产品交易的需求、农田租赁需求以及用户管理需求,设计各种网站界面,实现这些功能并且设计全系统一致的界面风格。负责手机APP系统的学生,利用Android手机开发模板,再现网站中的各种界面。该学生还需要使用Java程序开发中涉及的系统调用,读取手机SIM卡中的短信数据库以及获取WiFi传送的数据;开发远程种植系统的手机操控界面,通过短信数据和WiFi数据与远程种植的物联网系统进行交互。负责远程种植系统的学生需要完成种植控制节点的自组网、网络内的数据采集与种植操作的实现以及实现与手机APP的数据交互。

在系统开发阶段,组织团队开展“互联网+”毕业设计项目是培养本科生团队协作能力和训练系统开发能力的有效途径。一方面,课堂上涉及的很多系统开发问题,只有当开发多个系统集成的大项目才会出现,因此,有必要进行团队协作以解决这些问题。①程序开发课程中强调的程序可使用性,在大项目的开发过程中尤其重要。程序的团队开发过程需要按照软件工程的要求,书写完整的软件开发文档,然后严格执行开发过程。②程序的团队开发一定要注意程序中所有的变量与数据保持一致,如用于平台间通信的数据必须有统一的格式,多个平台共用数据(订单)的属性也必须保持一致。

图3 “体验式农场”系统的概要设计框图

另一方面,“互联网+”毕业设计课题需要多平台协同完成,程序的开发过程会有许多实战中才能遇见的问题,需要团队协作解决。①开发过程需要考虑数据流管理。数据发生更新前,需要添加数据锁,避免其他平台读入脏数据或者其他平台竞争性写入数据;同时,系统需要动态刷新显示数据,确保更新后的数据同步显示在各种平台上。②开发过程需要考虑程序健壮性的问题。在完成任意操作或者可能出现错误的部分,系统需要产生日志信息,后端系统需要妥善管理日志信息,确保系统中的操作(或者故障)可追踪。

最后需要注意的是,“互联网+”项目开发将会遇见很多困难,不仅需要学生组成团队协同攻关,而且还需要指导老师和其他学生团队进行协同攻关。

4 结 语

“互联网+”毕业设计项目的实践表明,毕业设计课题应该有真实的社会需求,这样才会受到学生的欢迎,进而获得较好的教学效果;“互联网+”领域的毕业设计课题应尽量设计成为团队协作的项目,以培养学生的团队协同攻关能力。同济大学软件学院本科生开发的“互联网+”系统交付湖南省某贫困县的农业企业使用,受到好评,以此课题为背景的教学改革项目也获得学校的立项。

猜你喜欢

毕业设计体验式农场
农场假期
体验式教学法在高中数学教学中的应用
浅析水墨画体验式学习的教学策略
高等职业院校汽车检测与维修专业毕业设计探究
农场
基于应用型人才培养模式下的毕业设计改革的思考
——以四川文化艺术学院为例
电子商务专业毕业设计实施与探索
一号农场
体验式教学理念下高中排球教学的实践探讨
丰收的农场