软件设计说明书1、引言软件设计主要分为概要设计和详细设计。在软件设计中根据需求分析的软件需求及功能、性能需求,采用某种设计方法进行公交运营系统的数据设计,系统结构设计和过程设计。2、任务概述2.1.需求概述登录管理:为用户提供用户登录功能;系统管理员提供添加、删除用户功能以及查看修改日志功能;实时监控管理:对汽车进行实时的监控并快速有效的反馈给管理人员。动态调度管理:可以快速处理拥塞以及其他事故。检修记录管理:对公交车基本检修情况有效记录。2.2.需求阶段分析阶段的分析模型软件设计包括数据设计、体系结构设计、接口设计、过程设计。数据设计将实体关系图中描述的对象和关系,以及数据字典中描述的详细数据内容转化为数据结构的定义。侧重于数据结构的定义体系结构设计定义软件系统各主要成份之间的关系。接口设计根据数据流图定义软件内部各成份之间、软件与其它协同系统之间及软件与用户之间的交互机制。过程设计则是把结构成份转换成软件的过程性描述。2.3.系统的目标(1)建立张家口公交运营调度系统(2)用计算机管理取代手工作业和定性的管理模式(3)建立标准的调度数据库根据不同路别不同的性质对公交汽车进行合理的调配(4)提高管理工作效率只需要通过查询就可以清楚的知道车辆的运行状况、调度状况以及其他基本信息。(5)为管理人员和司机提供准确的信息3、概要设计3.1.总体设计总体设计主要分为系统设计与结构设计,在需求分析阶段,已经从系统开发的角度出发,把系统按功能主次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定的联系,这就是功能设计。在设计阶段,基于这个功能的层次结构把各个部分组合起来成为系统。3.1.1.整体的处理流程处理流程采用采用事务型的数据流图(DFD图)做总体设计。自顶向下,逐步细化。图解如下所示:图3.1总体设计3.1.2.总体结构设计公交运营调度系统主要由登录管理、实时监控管理、动态调度管理、检修记录管理模块组成。公交运营调度系统的功能模块图如图3-3。图3.3功能模块图3.1.3.模块功能1)登录管理模块为用户提供用户登录功能;系统管理员提供添加、删除用户功能以及查看修改日志功能;司机评工作证号在公交车终端进行登录。登录通过刷卡实现。读卡器将读出司机的登录名及司机基本信息并对该司机进行身份验证。验证通过后系统将登录信息写入日志。向系统录入司机及公交汽车的基本信息。通过管理员权限向系统录入司机以及公交汽车的基本信息,实现对各信息综合管理。其具体流程如图3.4所示。2)实时监控管理模块对汽车进行实时的监控并快速有效的反馈给管理人员。通过对速度与客流量的实时监控,系统可以做出拥塞警报。系统接收公交车端发回的客流量与车速信息,系统进行分析后作出是否拥塞判断。若发生拥塞则作出拥塞报告,并有调度员进行调度调整,以解决拥塞。其具体流程如图3.5所示。图3.4登录管理处理流程图3)动态调度管理模块可以快速处理拥塞以及其他事故。有效地提高公交运营的效率,减少用户等待的时间更有利于管理人员的管理,原先是个人的工作可以两个人解决,大大降低了投资成本。其具体流程如图3.6所示。图3.5实时监控管理处理流程图4)实检修记录管理模块对公交车基本检修情况有效记录。系统会自动生成日常工作日志,事故处理记录,公交车检修记录。每日检修信息、事故处理记录每天都会实时录入系统并生成相应日志,方便日后查询。其具体流程如图3.7所示。图3.6动态调度管理处理流程图3.1.4.功能分配下面是各个模块的功能分配,表明各项功能与程序结构的关系。如下表所示。图3.7检修记录管理处理流程图模块功能登录管理用户登录、注册申请、审核新用户、删除用户、生成日志实时监控管理拥塞警报、作出是否拥塞判断、作出拥塞报告动态调度管理与调度员进行调度调整、做出调整报告检修记录管理公交车检修记录、事故处理记录3.2.接口设计1)外部接口用户界面:在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对WINDOW风格较熟悉,应尽量向这一方向靠拢。软件与硬件接口:本系统设有人机操作界面,考虑到操作简单,易于管理方面,主要硬件接口设备为PC,鼠标,键盘。而软件接口主要以windows平台为基本平台2)内部接口见系统框图,各模块之间相互独立又彼此关联,主要通过函数调用实现各部分的连接。3.3数据结构设计3.3.1.逻辑结构设计司机(姓名,性别,出生日期,工作证号,驾驶证号,联系电话)公交汽车(车牌号,路别,汽车型号)日志(监控信息,时间)事故处理记录(警报信息,解决方案)登录(登录名,密码,权限)驾驶(车速,客流量)3.3.2.物理结构设计表1司机信息表z_driver表2公交车信息表z_bus表3日志信息表z_log表4事故处理表z_accidentDeal字段名字段类型是否为空主码/外码/索引项说明UserNameChar(20)NOTNULL主码姓名SexChar(4)NULL索引项性别BirthdateIntNULL索引项出生日期WorkNumberIntNULL外码工作证号DriveNumberIntNULL索引项驾驶证号PhoneIntNULL索引项联系电话字段名字段类型是否为空主码/外码/索引项说明|LpnIntNOTNULL主码车牌号lubieIntNULL索引项路别XingHaoIntNULL外码汽车型号字段名字段类型是否为空主码/外码/索引项说明|LpnIntNOTNULL主码车牌号ControlMIntNULL索引项监控信息DateIntNULL索引项时间字段名字段类型是否为空主码/外码/索引项说明A_idIntNOTNULL主码事故ID|LpnIntNOTNULL外码车牌号WorkNumberIntNULL外码工作证号WarningMsgcharNULL索引项警报信息SolutioncharNULL索引项解决方案表5登录信息表z_login表6驾驶信息表z_drive3.3.3.数据结构与程序的关系各模块与程序的关系如下表所示。3.4、运行设计运行设计主要包括运行模块的组合、运行控制和运行时间。其中(1)运行模块的组合应该满足具体软件的运行模块组合为程序多窗口的运行环境,各个模块在软件运行过程中能较好的交换信息,处理数据。(2)运行控制将严格按照各模块间函数调用关系来实现。在各事务中心模块中需对运行控制进行正确的判用户的数据处理要求。(3)运行时间。系统的运行时间基本可以达到用户所提出来要求。字段名字段类型是否为空主码/外码/索引项说明UserNameChar(20)NULL主码姓名PasswordChar(20)NULL索引项密码limitIntNULL索引项权限字段名字段类型是否为空主码/外码/索引项说明D_idIntNOTNULL主码驾驶ID|LpnIntNULL外码车牌号WorkNumberIntNULL外码工作证号SpeedChar(20)NULL索引项车速FlowChar(20)NULL索引项客流量模块使用的数据库表登录管理模块登录信息表(z_login)、司机信息表(z_driver)实时监控管理模块司机信息表(z_driver)、公交车信息表(z_bus)、驾驶信息表(z_drive)、日志信息表(z_log)动态调度管理模块公交车信息表(z_bus)、驾驶信息表(z_drive)检修管理模块事故处理表(z_accidentDeal)、驾驶信息表(z_drive)表6各模块与表的关系3.5.出错处理设计出错处理设计主要包括搓搓输出信息和出错处理对策。说明如下:(1)出错输出信息用户使用错误的数据或访问没有权限的数据后,系统给出提示:“对不起,你无法使用数据,没有权限!”而且用户的密码管理可以让用户修改自己的密码,不让用户的匿名登录。(2)出错处理对策由于数据在数据库中已经有备份,故在系统出错后可以依靠数据库恢复功能,并且依靠日志文件使系统再启动,就算系统崩溃用户的数据也不会丢失或遭到破坏。但有可能占用更多的数据存储空间,权衡措施由用户决定。3.6.安全保密设计和维护设计(1)安全保密设计系统的系统用户管理保证了只有授权的用户才能进入系统进行数据操作,而且对于一些重要数据,系统设置为只有最高权限的人员方可读取或是操作。系统安全保密性高。(2)维护设计由于系统较小没有外加维护模块,因为系统维护工作比较简单,仅靠数据库的一些基本维护。4、详细设计4.1.软件结构软件系统的结构如下:4.2.程序描述程序设计主要是为了明了概括运营系统的设计思路理念,给人以清晰的结构。通过分布罗列来说明其作用与其重要性,也有部分补充其其他方面。程序包括:登录系统:其功能含有:用户登录到监控系统界面。实时监控系统:其功能含有:用户通过监控公交汽车的情况做出正确处理。动态调度系统:其功能含有:对车辆进行合理的调度。检修记录系统:其功能含有:获得公交汽车检修的信息。图4.1软件系统结构图4.2.1.程序的功能和性能描述程序的功能描述如下:1、司机把自己的相关信息(姓名,性别,出生日期,工作证号,驾驶证号,联系电话)和公交汽车相关信息(车牌号,路别,汽车型号)输入该系统;2、系统利用GPS定位系统确定公交车的运行状况;3、在遇到车路拥塞和意外事故时进行高效的调度,提高公交车的运行效率。程序的性能描述如下:1、系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和相应时间能过满足用户对信息处理的需求。由于公交运营系统的系统的监控功能对于整个系统的功能和性能完成举足轻重。,其准确性很大程度上影响公交运营的效率。在系统开发过程中,必须采用一定的方法保证系统的准确性。2、系统的开发性和可扩充性公交运营系统在开发过程中,应该充分考虑以后的可扩充性。所有这些都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应该通过系统的开发性来完成,既系统应是一个开放系统只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补,替换完成系统的升级和更新换代。3、系统的响应速度公交运营系统在日常处理中要达到实时要求,以及实时反馈信息。在进行统计分析时,根据其问题而影响工作效率。4.2.2.程序的输入输出项目程序的输入项目如下:程序的输出项目如下:序号名称类型有效范围输入方式数据来源1姓名Char手动输入司机2性别String男/女手动输入司机3出生日期datatime手动输入司机4工作证号Int000.0-999.9手动输入司机5驾驶证号Char手动输入司机6联系电话Int7-11手动输入司机7车牌号Char手动输入公交汽车8路别Int000-111手动输入公交汽车9汽车型号Char手动输入公交汽车表7程序的输入项目4.2.3算法◆登录(1)功能描述若用户未注册,则在注册前登录,若用户已注册则直接用已注册的用户名登录。登录模块主要实现管理员的登录功能。用以确定用户是否具有使用该系统的功能。(2)调试方法在进入系统之前,由系统默认直接调试。(3)界面设计还未设计(4)主要算法If(用户已注册){进入登录系统对公交车进行实时监控}Else提示:请先进行注册◆实时监控(1)功能描述通过对速度与客流量的实时监控,若出现拥塞或事故系统可以做出警报。(2)调试方法序号名称类型数据来源1日志String司机、公交汽车2事故处理记录String司机、公交汽车表8程序的输出项目系统自动调试。(3)界面设计还未设计(4)主要算法If(出现拥塞或事故系统){发出警报}Else(没有提示)◆动态调度(1)功能描述可以快速处理拥塞以及其他事故。(2)调试方法系统自动调试。(3)界面设计还未设计(4)主要算法If(出现拥塞或事故系统){处理并做日志记录}Else(没有提示)◆检修记录(1)功能描述可以快速处理拥塞以及其他事故。(2)调试方法系统自动调试。(3)界面设计还未设计(4)主要算法If(出现拥塞或事故系统){处理并做日志记