高校校园通自行车借还服务系统软件系统设计报告.doc

上传人:laozhun 文档编号:2885340 上传时间:2023-03-01 格式:DOC 页数:42 大小:1.47MB
返回 下载 相关 举报
高校校园通自行车借还服务系统软件系统设计报告.doc_第1页
第1页 / 共42页
高校校园通自行车借还服务系统软件系统设计报告.doc_第2页
第2页 / 共42页
高校校园通自行车借还服务系统软件系统设计报告.doc_第3页
第3页 / 共42页
高校校园通自行车借还服务系统软件系统设计报告.doc_第4页
第4页 / 共42页
高校校园通自行车借还服务系统软件系统设计报告.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《高校校园通自行车借还服务系统软件系统设计报告.doc》由会员分享,可在线阅读,更多相关《高校校园通自行车借还服务系统软件系统设计报告.doc(42页珍藏版)》请在三一办公上搜索。

1、软 件 系 统 设 计 报 告 题目校园通自行车借还系统专业: 班级: 小组成员: 指导教师: 职 称: xx大学计算机科学与技术学院年 月 附表3:题 目校园通自行车借还服务系统设计日期 2010 年 9月 10日至 2011 年 1 月 12 日小组成员在本次设计中承担的任务文档成绩可行性研究报告、系统策划、软件测试可行性研究报告、系统策划、软件测试可行性研究报告、系统策划、软件测试软件需求分析、软件测试软件需求分析、软件详细设计、编码指导教师签字: 年 月 日题目可行性研究报告作者:日期:2010/9/28 目录1项目背景12任务概述12.1项目目标12.1.1减轻自行车服务队同学的工作

2、负担、节省经费。12.1.2提高自行车借还登记处理速度。12.1.3减少登记出错率。12.1.4更好、更有效地为同学、教职工服务。12.2项目范围12.2.1功能:12.2.2性能:22.2.3系统输入说明:22.2.4系统输出说明:22.2.5基本数据流程和处理流程流程图:22.2.6安全与保密:52.3初步想法53对现有系统的分析53.1局限性64所建议的系统64.1对所建议系统的说明64.2改进之处64.3可行性分析64.3.1经济可行性64.3.2技术可行性74.3.3运行可行性74.3.4法律可行性75结论71项目背景一骑黄红学子倚,半打驿站笑脸迎。这是高校中的一道人性化的风景线校园

3、通自行车借还服务项目。学生、教职工们可以凭借有效证件方便地在各个自行车借还点处借、还自行车。这项服务方便了学生、教职工们的出行,为之节省了一定的时间,意义深刻。然而在为全校几千学子服务的同时,我们的服务队同学却还要每天手工整理、登记和统计自行车的借还情况,工序繁杂、费时劳神。为减轻相关工作人员的负担,同时减少工作出错率、展现为同学服务的精神,我们小组决定开发一套旨在更好地为同学们服务的“校园通自行车借还服务系统”。2任务概述122.1 项目目标2.1.1 减轻自行车服务队同学的工作负担、节省经费。2.1.2 提高自行车借还登记处理速度。2.1.3 减少登记出错率。2.1.4 更好、更有效地为同

4、学、教职工服务。2.2 项目范围2.2.1 功能:一、 自行车以编号形式的录入、删除、修改、查询、检索;二、 设立管理面板,使系统管理员拥有本系统数据处理的所有权限三、 对自行车借还的登记;四、 对借还记录进行检查以发现车辆未归还等异常情况;五、 生成借还报告以指导工作人员去找回相应数量的未还自行车。2.2.2 性能:本软件是基于LINUX GCC环境下字符界面的软件,采用数据文件操作作为数据记录形式,具有较好的移植性。2.2.3 系统输入说明:一、 输入自行车编号信息,以查询借还状态。二、 输入用户有效证件。 2.2.4 系统输出说明:一、 即时服务自行车编号输出:对有效证件进行合法性检测,

5、同时对可借自行车通过对应编号进行检索,如果证件合法且有可用的自行车,则系统输出一个自行车编号。 二、 用户借还记录报告:用于记录用户对自行车的借还信息,报告输出借还自行车的日期、当前借还次数、站点服务人员编号。本报告用于对服务工作成果的展示,按需要生成。三、 每日借还总结报告文档:用于对每日服务结束后对自行车的数量的检测,先计算当前自行车的数量,发现比原来少时,输出缺少的车辆编号,以指导工作人员去找回。2.2.5 基本数据流程和处理流程流程图:一、 系统流程图表 1系统数据流程二、 处理流程图表 2系统管理员控制流程图表 3借车处理流程图表 4还车处理流程2.2.6 安全与保密:系统设立一个管

6、理员入口,负责管理自行车的借还情况和工作人员的服务情况,数据文件采用二进制文件以本系统的数据结构读写,以保密。本系统拟定的完成期限为一个月。2.3 初步想法本系统为简单起见,采用了数据文件的数据储存方法,这是由于精力和时间限制所造成的。本简单版本只考虑了只有一个工作站的情况,因此,不用考虑数据文件间的同步问题。3对现有系统的分析本软件采用Linux操作系统,因为软件的设计限制比较大,所以本软件只考虑了最简单的情形。而针对这个软件简化版,在数据库设计模式上存在着不较合理的因素:校园通的服务站是有多个的,在实际中还要考虑数据的同步问题。33.1 局限性受软件开发平台限制,所以本软件只考虑了最简单的

7、单个校园通工作站的情形而设计了本管理软件的简化版。其在数据库设计模式上存在着不较合理的因素:校园通的服务站是有多个的,在实际中还要考虑数据的同步问题。4所建议的系统44.1 对所建议系统的说明本系统所涉及的功能、性能是基于GCC中文件操作函数上的。因此,在Linux环境下,这些功能都是可以实现的。4.2 改进之处可在本软件的简化版上进一步修改,在后续的升级版本中,设计成C/S模式,在每个自行车服务站设一个终端,连接到主服务器,以实现数据间的同步。4.3 可行性分析在建立所建议系统时,我们预期了将带来的影响,包括:4.3.1 经济可行性本软件采用的是字符界面操作,一方面节省了开发时间,另一方面也

8、避免了因为开发平台的限制而面临的技术难关。在经济和时间上也是符合我们小组的预算的。软件投入使用后,用户要有一定的字符界面操作适应期。由于数据储存方式简单,功能要求不高,在用户需求没有明显提高的情况下,软件的维护是易于进行的,这给用户减轻了一定的使用和维护经济负担。4.3.2 技术可行性本软件采用的是字符界面操作,开发平台为Linux+QT+GCC编译器,不考虑美工因素,因此,对单纯的字符界面来说,在Linux下用GCC来编译软件项目是可行的。拟定的开发时间为4个月,经过本组详细讨论和分工下,估计开发时间的偏差不会超过3周。4.3.3 运行可行性本软件主要使用对象是大学生,大学生的计算机基础是足

9、够好的,软件的使用者技术水平是可以保证的。如果只考虑单一的自行车服务工作站,本软件可以胜任这一假设下的情况。4.3.4 法律可行性本软件是专用软件,具有较强的针对性。在我们的编码和设计中,除了参阅相关的资料,不涉及已存在的设计专利、不侵犯国家、学校的相关制度,因此具法律可行性。5结论经过可行性研究分析后,我们得出如下结论:“校园通自行车借还服务系统”在最简化的情况下具有经济、技术、运行、法律可行性,该项目可以立刻开始进行。题目软件需求说明书作者:日期:2010/9/29目录1需求分析概述12数据流图12.1顶层数据流图12.2分层数据流图22.2.1一层数据流图22.2.2二层数据流图333

10、数据字典43.1数据元素43.2数据流53.3数据存储54加工逻辑描述61需求分析概述本系统的工作范围为在校园里,提供了自行车借还、管理等服务,主要服务对象为学校里的师生们。目的是为服务站的工作人员、师生提供进一步的便利,使工作、使用更加有效和愉快。本软件采用Linux下字符界面管理面板,C语言中数据文件操作作为数据存取方法,形成一个具有简单数据库应用功能的完整系统。2数据流图 122.1 顶层数据流图图表 1顶层数据流图2.2 分层数据流图2.2.1 二层数据流图图表 2二层数据流图2.2.2 三层数据流图图表 3借车子系统图表 4还车子系统图表 5每日自行车整顿子系统3数据字典33.1 数

11、据元素下面逐项叙述数据流图中涉及到的基本数据元素。表1:“自行车编号”名称自行车编号别名BID取值类型字符串长度4个字节描述自行车的唯一编号,作为关键字。位置自行车状态表、用户使用记录表表2:“用户编号”名称用户编号别名UID取值类型字符串长度4个字节描述用户的唯一编号,作为关键字。位置用户使用记录表、用户列表表3:“管理员编号”名称管理员编号别名AID取值类型字符串长度2个字节描述管理员的唯一编号,作为关键字。位置管理员信息表3.2 数据流下面逐项叙述数据流图中的数据流。表4:“自行车状态表”名称自行车状态表描述自行车是否已经被借出来源1.2,1.3,3.2去处2.2,无,2.1组成自行车编

12、号+借/还标记位+当前借出用户编号+借出时间流程量无表5:“用户使用记录表”名称用户使用记录表描述记录用户对自行车的使用情况来源1.3,2.2,3.2去处无,无组成用户编号+借出自行车编号+借/还标记位+借出时间流程量无表6:“未归还自行车表”名称未归还自行车表描述报告未归还自行车的编号来源3.1去处服务队组成自行车编号+借出时间流程量无3.3 数据存储下面逐项叙述数据流图中的数据存储。表6:“自行车状态表”名称自行车状态表输入数据流自行车的编号输出数据流对应编号自行车借还状态描述某编号自行车的借还状态组成自行车编号+借/还标志位+当前借出用户编号+借出时间组织方式按借出时间,编号由小到大排列

13、表7:“用户使用记录表”名称用户使用记录表输入数据流用户编号输出数据流该用户是否有未还车描述及时了解用户借还车情况组成用户编号+自行车编号+借/还标志位+借出时间+当前诚信度组织方式按借出时间,编号由小到大排列4加工逻辑描述下面逐项叙述数据流图中所提出的功能要求。表8:“审查有效性”名称审查有效性编号1.1,2.1输入用户编号输出合法用户,非法用户功能描述说明该用户是否合法加工处理若发现没有该编号的用户,则说明该用户是非法的表9:“可用自行车编号,自行车状态更新”名称可用自行车编号,自行车状态更新编号1.2输入自行车状态表输出最先得到的一辆可用自行车功能描述为用户提供可用的自行车,并及时更新自

14、行车状态表加工处理在自行车状态表中检索,发现借出标志位为0,表明该车可用,即找到了一辆可用自行车。借出后更新标志位。表10:“用户使用记录、自行车状态更新”名称用户使用记录、自行车状态更新编号1.3,2.2输入分别输入用户编号、自行车编号输出该编号的用户自行车使用情况功能描述可生成未归还自行车的用户编号;该编号自行车借还状态的更新加工处理对每个用户按编号进行检索,发现借出标志位为1,表明尚未归还,输出到报告中表11:“当日未归还自行车”名称当日未归还自行车编号3.1输入自行车使用状态表输出当日未归还的自行车编号,即表F4.功能描述查询当日未归还的自行车加工处理对每个自行车按编号进行检索,发现借

15、出标志位为1,表明尚未归还,输出到报告中表12:“用户诚信记录更新修改、附加对应惩罚策略”名称用户诚信记录更新修改、附加对应惩罚策略编号3.2输入自行车使用状态表、用户列表输出用户诚信分数,对应惩罚策略功能描述根据用户能否及时借还的情况,制定对策以促使用户及时归还加工处理先进行3.1,发现有未归还自行车后,由输出结果可知未归还自行车的用户,再结合用户列表可找到该用户的详细信息,即可对用户的诚信记录进行更新。“诚信分数”是拖借自行车的次数,累加次数达到一定值后,可由相关“惩罚策略”进行对该用户的惩罚。 题目概要设计说明书作者:日期:2011.1.1目录1软件结构设计51.1软件结构51.2功能需

16、求与模块的关系71.3人工处理过程71.3.1人工借还71.3.2人工寻车71.4尚未解决的问题71.4.1多服务站模式问题71.4.2智能化程度问题72软件接口设计82.1用户接口82.1.1登陆界面82.1.2数据表显示界面82.2外部接口83数据库结构设计83.1概念结构设计83.2逻辑结构设计93.3物理结构设计94运用设计104.1数据字典设计104.2安全保密设计101软件结构设计11.1 软件结构为进一步说明本系统的事务流程,我们作出了本系统的事务型软件结构图(SC图)如下:图表 1系统事务型 SC图下面使用IPO图扼要说明每个模块的标识符和功能:图表 2借车模块IPO图图表 3

17、还车模块IPO图图表 4每日整顿模块IPO图1.2 功能需求与模块的关系为说明各项功能需求的实现同主要模块的分配关系,下面以矩阵图说明:借车模块还车模块每日整顿模块登陆验证查询可用自行车更新自行车状态更新用户使用记录生成未归还车辆1.3 人工处理过程1.3.1 人工借还 本软件系统要在服务站设置值班人员,用户来借还车时,为用户派用或者回收车辆。11.11.21.31.3.2 人工寻车每日整顿车辆时,要求值班人员根据当日未归还车辆表去看看找回缺失车辆。1.4 尚未解决的问题1.4.1 多服务站模式问题本系统只能应用于只有一个自行车服务站的情况,对于多个服务站,本系统暂时无法胜任。1.4.2 智能

18、化程度问题本系统还未实现全自动的智能借还车辆模式,需要工作人员时刻在服务站进行人工服务。2软件接口设计22.1 用户接口2.1.1 登陆界面22.1输入用户名,为一定数位的字符串数据。系统应答该用户是否存在,如果是管理员,还要判断密码是否正确。2.1.2 数据表显示界面对产生的数据表进行显示,系统应答显示包括当前的用户使用状态表;当前自行车状态表;当前活动的用户列表。表结构请参考相关列表说明。2.2 外部接口本系统同外界的接口安排有硬件系统的普通电脑支撑设备, 软件系统的Linux操作系统,搭配GCC编译器支持。3数据库结构设计33.1 概念结构设计图表 5系统ER图3.2 逻辑结构设计下面是

19、各数据项的逻辑结构设计说明实体:用户User名称用户别名User取值类型自定义结构体长度2+30个字节描述内含用户编号、用户资料说明实体:使用记录名称使用记录别名User_Using取值类型自定义结构体长度4+20+20+4个字节描述内含用户编号、借出时间、归还时间、违纪次数实体:服务人员名称服务人员别名Admin取值类型结构体长度2+20个字节描述服务编号、值班时间实体:自行车名称自行车别名Bicycle取值类型自定义结构体长度4+4+4+1字节描述内含自行车编号、借出时间、归还时间、借还标志位3.3 物理结构设计为方便程序员编写程序,建立系统程序员视图说明如下:数据以二进制方式储存,随机读

20、写机制进行读写;一个便于操作数据文件的数据库引擎;视图如下:图表 6程序员数据库视图4运用设计44.1 数据字典设计在数据字典设计中,我们充分考虑了实际情况,如自行车数量、用户数量等。详细设计请参考已有陈述的相关文档。4.2 安全保密设计我们以二进制数据文件结合数据结构体读写的方式进行数据的安全保密,外人即使拿到本系统的数据库物理文件,不知道其数据结构,也不容易轻易地进行数据偷窥。题目详细设计说明书作者:日期:2011.1.11目录1详细设计任务51.1模块算法和数据组织51.1.1登陆或者验证模块51.1.2注册模块61.1.3用户借车模块61.1.4用户还车模块61.2模块测试61.2.1

21、登陆或者验证模块61.2.2注册模块61.2.3用户借、还车模块62详细设计工具72.1模块间协作和运行流程72.2模块代码管理软件72.2.1我们的代码库82.2.2上传程序文档82.2.3版本控制82.2.4利用Trac代码在线管理92.2.5代码更新即时知道93人机界面设计103.1界面简介103.2界面截图103.2.1初始运行时103.2.2管理员登陆103.2.3查询自行车状态113.2.4用户借车测试113.2.5其他说明124个人设计总结144.1Captain:144.2Member:141详细设计任务11.1 模块算法和数据组织在详细设计阶段,我们按之前的概要设计,结合实际

22、的编程可实现性,设计了4个模块,模块对应共同的数据结构,说明如下:struct Bicyclechar number4;char lendtime20;/借出时间char returntime6;/即将归还的时间int isused;/标志位,是否占用;/自行车实体struct Adminchar number2;char sn8;/最多8位密码char worktime20;/值班时间;/服务人员实体struct Userchar number4;char Property30;/用户属性描述;/用户列表struct User_Usingchar number4;char lendtime2

23、0;/借出时间char returntime20;/归还时间unsigned int disobey;/违纪次数;/用户用车记录1.1.1 登陆或者验证模块本模块为一验证函数,函数说明如下:int Logins(char *dbstr,struct Admin *admin,struct User *user)算法中设置dbstr为数据文件路径字符串,admin,user为验证的信息。当结构体指针admin,user非空时,表示验证的是管理员,用户身份。验证管理员时,除了要验证是否存在该角色编号外,还要验证管理员的密码是否正确。验证通过时,返回1,否则返回0.1.1.2 注册模块本模块提供了注

24、册用户、管理员、添加新的自行车的功能,函数体如下:int Register(char *dbstr,struct Admin *admin,struct User *user,struct Bicycle *bike)结构体指针非空时说明是要注册的角色。注册成功返回1,否则返回0.1.1.3 用户借车模块本模块提供了找到自行车状态表中最近一辆可用的自行车实体和实时修改相应数据文件(自行车状态表、用户使用记录表)的功能。函数体说明如下:struct Bicycle *LendBike(char *db_bikestr,char *db_usingstr,char *user_number)通过自

25、行车状态表的数据文件路径,查询可用的自行车,并修改相应数据表数据,将结果返回。如果没有可用的自行车,则返回空指针。1.1.4 用户还车模块本模块提供了用户归还自行车时实时修改相应数据文件(自行车状态表、用户使用记录表)的功能。函数体说明如下:int ReturnBike(char *db_bikestr,char db_usingstr,char *user_number)db_bikestr为自行车状态表数据文件路径,db_usingstr为用户使用记录数据文件路径,user_number表明还车用户编号。归还成功返回1,否则返回0。1.2 模块测试1.2.1 登陆或者验证模块本模块主要验证

26、数据文件是否正确被打开和读取,用条件覆盖法,输入已存在的用户和不存在的用户编号进行测试,期望结果应为登陆成功和登陆失败,并给出相应的提示界面。1.2.2 注册模块本模块主要验证数据文件是否正确被打开和读写,直接选择相应的注册实例进行测试。1.2.3 用户借、还车模块本模块涉及的数据文件操作比较多,主要测试数据文件是否被正确连接、读写和更新。采用模拟借还车实例进行测试,看函数返回的结果是否正确。2详细设计工具22.1 模块间协作和运行流程为更好地表达系统运行时逻辑,体现模块间协作和运行的关系,设计系统程序流程图如下:图表 1系统程序流程图2.2 模块代码管理软件为体现软件工程化观点,我们小组运用

27、代码管理软件进行代码编写、测试的方法。采用的软件有Visual SVN Server 2.1.4; TortoiseSVN1.6.5; VisualSVN-Server-Trac-2.1.1。以下为小组代码管理的截图:2.2.1 我们的代码库图表 2 VisualSVN代码库2.2.2 上传程序文档图表 3上传程序文档2.2.3 版本控制图表4版本控制2.2.4 利用Trac代码在线管理图表 5 Trac代码在线管理2.2.5 代码更新即时知道图表 6代码更新3人机界面设计33.1 界面简介因本系统是基于Linux+Gcc的环境,所以界面采用简约的类DOS界面,可在linux终端中输入运行指令

28、即可使用。3.2 界面截图3.2.1 初始运行时图表 3初始运行时3.2.2 管理员登陆图表4验证通过图表 5验证不通过3.2.3 查询自行车状态图表 6查询自行车状态此处要说明的是由于C语言中文件操作特性,读到最后一个数据项时会重复读一次才令文件结束标志位有效。3.2.4 用户借车测试图表 6管理员尚未登陆时图表 7管理员已经登陆时图表 8用户未注册用户来借车时有两步判断,先判断管理员是否已经登陆,再判断该用户是否存在。3.2.5 其他说明因时间仓促,本系统所陈述的功能尚未完全完成。以上界面截图仅是本系统一部分的功能截图,作测试用。4个人设计总结44.1 Captain:4.2 作为本次团队

29、性项目的Captain,从可行性分析到最后的详细设计、编码测试等,我都以身作则,督促和安排了各种工作的进行。在小组中又作为惟一一个程序员的情况下,依然积极地参与到队员们尚未解决的问题中,大家一起讨论,拿出解决问题的方法和结论。虽然在其他课程较多的艰苦情况下,我们依然能处理好设计与其他课程的学习时间上分配。在编码的环节上,因为采用的是纯粹的C语言编程,难免会与熟悉的C+有所不同,为此特意查看了相关的书籍,与队员们总结C语言与C+的不同之处,写出本系统的第一个测试版本。在测试的环节上,与队员们一起探讨软件工程角度上的测试方法,选择合适的测试用例,保证系统的基本正确。关于本系统更详尽的更新信息和相关

30、的执行文件、程序、数据等,请关注我的个人网站:http:/frozenpoint.co.cc4.3 Member:通过对本项目的开发,提高了我们团队合作的意识、分析解决实际问题的能力。最主要的是提高了我们的自学能力,本项目中我参与了可行性报告、系统策划、软件测试、软件需求分析等环节,与队长和其他队员一起,掌握了软件工程化的一些基本理念和一些软件工程相关的辅助软件如Visual SVN Server,Trac的配置和使用,受益匪浅。在开发本系统的过程中,要查询翻阅大量的参考文献以及网上搜索资料,培养了我们调查研究、查阅中外文献资料,运用国家标准、行业规范、手册、图册等资料的能力。通过这次实验,把所学的理论知识与实际应用联系了起来,为我们今后走向社会打下了坚实的基础。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号