文章目录

  • 第1章 绪论
    • 1.1 引言
    • 1.2 内容
    • 1.3 本文结构
  • 第2章 需求分析
    • 2.1 功能需求
      • 2.1.1 系统功能模块架构图
    • 2.2 性能需求
      • 2.2.1 精度
      • 2.2.2 安全性
      • 2.2.3 灵活性
    • 2.3 系统需求
  • 第3章 建模分析
    • 3.1 用例图分析与设计
      • 3.1.1 用户用例图分析
      • 3.1.2 系统管理员用例图分析
      • 3.1.3 用例规约
    • 3.2 类图分析与设计
    • 3.3 数据建模
    • 3.4 顺序图分析与设计
      • 3.4.1 用户借车顺序图
      • 3.4.2 用户还车顺序图
      • 3.4.3 系统管理员管理用户、车辆顺序图
    • 3.5 协作图分析与设计
      • 3.5.1 用户借车协作图
      • 3.5.2 用户还车协作图
      • 3.5.3. 系统管理员管理用户、车辆协作图
    • 3.6 状态图分析与设计
      • 3.6.1 用户状态图
      • 3.6.2 车辆状态图
      • 3.6.3 管理员状态图
      • 3.6.4 订单状态图
    • 3.7 活动图建模与分析
      • 3.7.1 用户借车、还车活动图
      • 3.7.2 系统管理员活动图
    • 3.8 面向对象设计分析
      • 3.8.1 外观模式
      • 3.8.2 迭代器模式
      • 3.8.3 责任链模式
      • 3.8.4 原型模式
      • 3.8.5 策略模式
      • 3.8.6 观察者模式
  • 结 论
  • 参考文献

第1章 绪论

1.1 引言

共享单车是一种自行车使用权租赁服务,是一种分时租赁方式,一种新型绿色环保共享经济。共享单车车身小巧,方便快捷,为群众的出行带来了很大的便利,解决了公共交通最后一公里的问题。不仅如此,共享单车费用低廉且功能齐全,又低碳环保,减少空气污染,极大的改善了交通拥堵问题。因此,为了人们更加方便的使用和管理共享单车,我开发了一个共享单车管理系统,本文将对该系统进行详细的建模与分析。

1.2 内容

首先,在进入共享单车管理系统后,系统会提示用户进行登录,若是第一次使用该系统,需要进行注册。在登录之后,系统会根据用户的位置显示附近可用的共享单车,用户可以根据提示去选择距离自己最近的共享单车。之后用户需要扫码开锁或者输入自行车的编号进行开锁。在骑行的过程中,若用户临时有事,可以进行临时锁车,不过要在规定时间内回来,否则系统会额外收费。此外,共享单车要在规定范围内使用,不能骑出运营区。在归还车辆时,不能将车辆停在小区、学校、公园、医院等禁止停车区域,否则会进行罚款。

系统不仅要对用户进行管理,还要对车辆进行管理。系统要管理用户的登录注册,解决用户在使用过程中遇到的问题,收集用户的反馈信息等。系统会根据车辆的使用情况进行分析,对车辆进行调度,将偏远地区的车辆运送到对车辆需求较高的地方,方便用户使用。此外,系统还要根据用户反馈,安排工作人员对问题车辆进行维修。

1.3 本文结构

本文首先对共享单车管理系统进行了需求分析,对功能需求、性能需求和系统需求等做了详细的分析。其次对系统进行了建模分析,包括用例图分与设计,类图分析与设计、数据建模、时序图分析与设计、协作图分析与设计、状态图分析与设计、活动图分析与设计。之后对整篇文章进行了总结,包括对需求分析、建模分析、设计方案和思路的总结。最后在文章结尾附上了本文的参考文献和资料

第2章 需求分析

2.1 功能需求

共享单车管理系统主要为用户提供登录、注册及单车租赁服务,另外还要负责车辆的维修与管理

2.1.1 系统功能模块架构图

​ 图2.1 系统功能模块架构图

(1)登录

对登录的用户进行登录验证,只有验证通过才可以进入共享单车管理系统

(2)注册

为用户提供注册服务,需要登记其个人信息只有注册成为共享单车管理系统的用户之后才可以进行单车租赁服务

(3)借车

为已登录的用户提供借车服务,解锁车辆,并在借车时生成订单,记录租赁信息,包括借车人、车辆、开始时间等

(4)临时锁车

用户正在进行租赁服务,若临时有事,可将车辆暂时锁上,临时锁车有时间限制,若超出该限制将额外收费

(5)还车

用户在使用完车辆之后可进行归还,系统会验证还车位置是否合法并提示用户,在还车成功后,系统会对订单进行结算,并为用户提供支付接口,待用户支付成功后,订单结束,并录入数据库,供用户查看

(6)管理用户

只有进入系统管理员页面才可以进行该项操作,管理用户的登录、注册和身份验证等,对用户的信息进行修改和增删改查操作

(7)管理车辆

系统管理员会对车辆使用情况进行分析,对车辆进行调度以满足用户的需求。若车辆出现故障,安排维修人员对车辆进行维修。

2.2 性能需求

2.2.1 精度

​ 共享单车管理系统对数据的精度要求是根据信息存储的形式、借车还车的结果等量化而制定的。

​ 查询时应保证查全率和查准率,所有相应域包含查询关键字的记录都应能查到,查询的记录应域给定的单项或组合查询条件不完全匹配的模糊查询

2.2.2 安全性

由于共享单车管理系统使用频度较高,为防止对信息资料和管理程序的恶意破坏,要求该系统具有较为可靠的安全性能。为避免系统运行时发生故障给用户带来损失,系统应对重要数据进行自行备份,做好数据维护工作。

2.2.3 灵活性

共享单车管理系统要能适应各种系统的手机,方便用户操作和管理。在操作上要方便简单,界面上要新颖,用户界面要友好。

2.3 系统需求

高效性、可扩展性、便利性、易维护性

第3章 建模分析

3.1 用例图分析与设计

3.1.1 用户用例图分析

(1)用例模型执行者:共享单车用户

(2)包括:注册、登录、借车、还车、临时锁车

​ 图3.1 用户用例图

3.1.2 系统管理员用例图分析

(1)用例模型执行者:系统管理员

(2)包括:管理用户、管理车辆

​ 图3.2 系统管理员用例图

3.1.3 用例规约

(1)用例规约Login

用例名称 Login
用例描述 系统验证用户合法性身份后进入系统
参与者 共享单车用户
前置条件
后置条件 用户登录成功,进入系统主页面
基本路径 1.进入系统登录页面 2.用户填写用户名和密码 3.系统验证用户身份的合法性 4.验证成功,进入系统主页面
扩展路径 1.登陆信息填写不充分,返回登录页面 2.用户身份不合法,返回登录页面

(2)用例规约Register

用例名称 Register
用例描述 注册之后获得单车租赁的权限
参与者 未注册的共享单车用户
前置条件
后置条件 注册成功,进入系统主页面
基本路径 1.进入系统注册页面 2.填写用户名和密码 3.系统验证注册信息的合法性 4.注册成功,进入系统主页面
扩展路径 注册信息填写不充分,返回注册页面

(3)用例规约Borrow

用例名称 Borrow
用例描述 用户租赁共享单车
参与者 共享单车用户
前置条件 用户已经登录系统
后置条件 返回是否借车成功信息
基本路径 1.用户提出借车请求 2.系统验证用户身份合法性 3.验证成功,同意用户借车,给车辆远程解锁 4.车辆解锁成功,用户收到借车成功信息
扩展路径 1.若未登录,系统会提示未登录,提示用户先注册或登录 2.车辆故障,系统会返回车辆故障信息,并为用户推荐距离最近的车辆

(4)用例规约Lock

用例名称 Lock
用例描述 用户在借车过程中临时锁车
参与者 共享单车用户
前置条件 用户正在进行租赁服务
后置条件 返回临时锁车成功的信息,并开始计时
基本路径 1.租车服务正在进行 2.用户提出临时锁车请求 3.系统验证临时锁车区域是否合法 4.验证通过,系统远程锁车 5.系统返回临时锁车成功的信息
扩展路径 临时锁车地点在禁停区域内,系统会提示此地不能临时锁车,请求用户更换锁车地点

(5)用例规约Return

用例名称 Return
用例描述 用户在租赁服务结束后归还车辆
参与者 共享单车用户
前置条件 用户正在进行租赁服务
后置条件 返回还车成功的信息,并进入结算页面
基本路径 1.正在进行租赁服务 2.用户提出还车请求 3.系统验证还车区域是否合法 4.验证成功,同意用户还车请求 5.系统返回还车成功的信息 6.进入支付页面进行结算
扩展路径 还车地点在禁停区域内,系统会提示此地不能还车,否则会进行罚款,请求用户更换还车地点

(6)用例规约ManageUser

用例名称 ManageUser
用例描述 管理用户的登录、注册及基本信息修改
参与者 系统管理员
前置条件 以系统管理员的身份登录系统
后置条件 返回对用户的操作结果
基本路径 1.系统管理员登录系统 2.接收用户的请求 3.对用户的请求进行相关操作 4.返回操作成功与否的相关信息 5.返回给用户操作相关与否的相关信息
扩展路径 1.对用户的操作不合法,返回相关信息 2.用户的请求不合法,返回给用户相关信息

(7)用例规约ManageBike

用例名称 ManageBike
用例描述 对车辆进行管理
参与者 系统管理员
前置条件 以系统管理员的身份登录系统
后置条件 返回对车辆管理的相关操作
基本路径 1.对车辆分布情况进行分析或接收到用户的反馈 2.派遣工作人员调度车辆或维修车辆 3.接收到工作人员对车辆的处理反馈 4.返回车辆管理的相关信息
扩展路径

3.2 类图分析与设计

(1)User

用户可以对自己的个人信息进行修改,包括用户名、密码和其他个人信息,还可以查看自己的帐单记录

(2)Bike

车辆实体类,描述车辆的具体信息。包括车辆id、车辆编码、车辆状态和车辆位置

(3)Admin

系统管理员实体类,包括管理员id、账户名、密码

(4)Order

订单实体类,包括订单id、订单编号、车辆id、用户id、订单详细信息

​ 图3.3 类图

3.3 数据建模

根据3.3的类图进行数据建模

​ 图3.4 数据建模图

3.4 顺序图分析与设计

3.4.1 用户借车顺序图

​ 用户首先登录系统,登录成功之后查看自己附近的车辆信息,然后选择自己要租赁的车辆,扫码请求解锁,之后系统生成订单并解锁车辆,用户借车成功

​ 图3.5 用户借车顺序图

3.4.2 用户还车顺序图

​ 用户进入还车页面,可以浏览自己的订单信息,请求还车结束订单,进入支付页面进行付款,付款成功,系统锁车,用户还车成功

​ 图3.6 用户还车顺序图

3.4.3 系统管理员管理用户、车辆顺序图

​ 系统管理员登录系统后,对用户和车辆进行管理并返回管理结果信息

​ 图3.7 系统管理员管理用户、车辆顺序图

3.5 协作图分析与设计

3.5.1 用户借车协作图

​ 图3.8 用户借车协作图

3.5.2 用户还车协作图

​ 图3.9 用户还车协作图

3.5.3. 系统管理员管理用户、车辆协作图

​ 图3.10 系统管理员管理用户车辆协作图

3.6 状态图分析与设计

3.6.1 用户状态图

​ 用户状态图主要包括登录状态、借车状态、还车状态、临时锁车状态

​ 图3.11 用户状态图

3.6.2 车辆状态图

​ 车辆状态图主要包括空闲状态、被借状态、临时锁车状态和故障状态

​ 图3.12 车辆状态图

3.6.3 管理员状态图

​ 管理员状态主要包括登录状态、管理用户状态、管理车辆状态

​ 图3.13 管理员状态图

3.6.4 订单状态图

​ 订单状态主要包括订单生成状态、记录信息状态、订单完成状态、订单支付状态

​ 图3.14 账单状态图

3.7 活动图建模与分析

3.7.1 用户借车、还车活动图

​ 图3.15 用户借车、还车活动图

3.7.2 系统管理员活动图

​ 图3.16 系统管理员活动图

3.8 面向对象设计分析

3.8.1 外观模式

​ 在共享单车管理系统中,我们为用户提供借车服务、临时锁车服务和还车服务,这些服务我们运用了外观模式,将一系列复杂的流程封装成一个接口提供给用户使用。通过这种模式,使得客户端和系统之间解耦,让系统内部的模块更容易扩展和维护。此外,还更好的划分了访问层次。在系统中,有些方法是对外的,有些方法是内部相互交互使用的,通过外观模式,把那些暴露给外部的更能集中到门面中,这样可以实现客户端的调用,隐藏了系统内部的细节。

3.8.2 迭代器模式

​ 当用户进行借车、还车和锁车时,调用的数据都是同一个,但是它们又是以不同的方式来遍历对象的,所以该系统使用了迭代器模式,提供一种方法顺序的访问各个元素,从而遍历整个对象,而又无需暴露该对象的内部表示。迭代器模式简化了聚合类,支持以不同的方式来遍历一个聚合对象。

3.8.3 责任链模式

​ 用户进行单车租赁服务是一个长时间的过程,而在这个过程中如何处理用户的请求则用到了责任链模式。用户在进行借车或锁车时,只需要将请求发送到责任链上即可,无需关心请求的处理细节和请求的传递。通过责任链模式可以解耦请求的发送者和请求的处理者。

3.8.4 原型模式

​ 当用户由借车状态进入临时锁车状态时或进入还车状态时会进行相应的操作,这些操作会通过复制借车状态的实例来创建一个新的实例而无需知道相应类的信息。原型模式的本质就是clone,可以解决构建复杂对象的资源消耗问题,能再某些场景中提升构建对象的效率;还有一个重要的用途就是保护性拷贝,可以通过返回一个拷贝对象的形式,实现只读的限制。

3.8.5 策略模式

​ 车辆在借车状态下和临时锁车状态下其费用计算方式是不同的,所以它们使用的算法也是不同的,所以共享单车管理系统使用了策略模式,把不同状态下的的费用算法封装起来,使他们在适当的时候进行相互替换。这样不仅避免使用多重条件判断,而且算法可以自由切换。

3.8.6 观察者模式

​ 在该系统中,用户和车辆需要在多种状态之间转换,所以使用了观察者模式,定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于他的对象都得到通知并被自动更新。观察者和被观察者时抽象耦合的,并建立了一套触发机制来实现广播通知。

结 论

共享单车不仅打通了“最后一公里”,减少了汽车的使用量,改变了人们的出行方式,也使我们的生活变的更加绿色环保。已经推出便收到广大人民的欢迎。所以我设计了共享单车管理系统对单车租赁服务进行统筹管理,并在本文中对该系统进行需求分析和软件建模分析,详细介绍该系统的设计思路和具体功能。

​ 在实践过程中,我遇到了很多问题,这些问题之前在单独学习每一个部分的时候是没有遇到的,当统筹起来,对一个软件进行系统的建模分析的时候,很多问题都暴露了出来,包括知识点不够熟悉、设计模式没有深刻理解、PowerDesign使用不够熟练等,之后我通过重新回顾课本、在网上搜索学习教程等方法成功的解决了这些问题,完成了此次实践。

​ 通过本次实践,我对软件建模与分析这门课程有了一个系统的认识,将理论与实践联合起来,加深了对软件建模的理解,掌握了用例图、类图等多种UML图的画法,熟练的掌握了PowerDesign建模工具使用方法,也让我明白了软件建模与分析对软件开发的重要性和意义。

参考文献

1 邹盛荣.UML面向对象需求分析与建模教程(第二版).北京:科学出版社,2019.1

2 弗里曼(美).Head First设计模式(中文版).中国电力出版社

3 促进共享单车与城市空间融合发展.王光荣.管理工程学报

4 共享单车深入发展面临的问题及对策.刘力.2021.7

5 共享单车管理系统的设计与实现.李志伟.电脑知

软件建模与分析--共享单车管理系统相关推荐

  1. springboot+vue+Elementui共享单车管理系统

    随着时代的发展,互联网和计算机技术,带动了整个的商业发展,方便了我们的生活.共享单车管理系统被越来越多的人选择,网络共享逐渐成为日常生活的一部分.并且随着共享平台的发展,也呈现出多元化方向,各种单车. ...

  2. 基于Java+JSP+MySQL共享单车管理系统的设计与实现-计算机毕业设计

    项目介绍 随着时代的发展,我国的国民经济一直在稳步的提升,共享单车的是用来一直在不断的攀升,为了能够更加方便快捷的管理共享单车,需要开发一套利用计算机进行管理的JSP共享单车管理系统. 本项目利用软件 ...

  3. 《需求工程-软件建模与分析之读书笔记之三》

    <需求工程-软件建模与分析之读书笔记之三> 第14章<面向对象建模>采用了面向对象方法学的世界观,将系统看作是一系列对象的集合,每个对象具有独立的职责,完成独立的任务,对象之间 ...

  4. 《需求工程——软件建模与分析》阅读笔记之一

    在老师推荐的几本书里面,我选择了阅读<需求工程--软件建模与分析>一书,感觉受益颇多,刚开始接触软件觉得最难得是代码,关键是代码,其他都没必要,随着学习的渐渐深入,越来越理解老师说的,在一 ...

  5. 计算机毕业设计Java高校共享单车管理系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java高校共享单车管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java高校共享单车管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B ...

  6. 基于SpringBoot的共享单车管理系统

    末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SpringBoot 前端:采用HTML和Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:To ...

  7. java校园共享单车管理系统

    本系统采用了Browser/Server体系结构,JSP(Java Server Page)作为前台开发工具,MySQL作为后台数据库进行开发. 最终系统实现的主要功能包括系统管理员部分的修改登录密码 ...

  8. Java+MySQL共享单车管理系统的设计与实现

    随着时代的发展,我国的国民经济一直在稳步的提升,共享单车的是用来一直在不断的攀升,为了能够更加方便快捷的管理共享单车,需要开发一套利用计算机进行管理的JSP共享单车管理系统. 本项目利用软件工程原理, ...

  9. 基于asp.net717共享单车管理系统

    随着时代的发展,我国的国民经济一直在稳步的提升,共享单车的是用来一直在不断的攀升,为了能够更加方便快捷的管理共享单车,需要开发一套利用计算机进行管理的共享单车后台管理系统. 本文以实际运用为开发背景, ...

  10. 基于JAVA共享单车管理系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA共享单车管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA共享单车管理系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

最新文章

  1. [导入]如何理解Return的返回值?
  2. Tensorflow框架是如何支持分布式训练的?
  3. 基于ip地址的客户识别原理_使用 LVS 实现负载均衡原理及安装配置
  4. 【集合论】卡氏积 ( 卡氏积概念 | 卡氏积示例 | 卡氏积性质 | 非交换性 | 非结合性 | 分配律 | 有序对为空 | n 维卡氏积 | n 维卡氏积个数 | n维卡氏积性质 )
  5. @requirespermissions注解是什么意思_如何基于spring开发自定义注解实现对接口访问频次限制?...
  6. 实验8.1 链表类的定义与实现
  7. Knockout.Js官网学习(创建自定义绑定)
  8. 设置linearlayout最大高度_桥式、门式起重机-安全防护装置30条设置要求(六)- 第1~10条...
  9. C语言从入门到精通 ————1.初识C语言
  10. 计算机无法安装小丸工具箱,小丸工具箱
  11. Arch LInux | 网络管理工具iproute2(网络接口、ip地址、路由表)
  12. 我的世界服务器怎么变无线耐久,我的世界大型服务器三小时新手变老手技巧
  13. phpDesigner 工具快捷键巧用
  14. 社区论坛小程序开发制作(同城圈子小程序)
  15. 服务器guid怎么装系统,GUID分区模式,UEFI+PGT磁盘模式安装Ghost系统详解
  16. axios在ie浏览器下提示promise未定义
  17. 明明可以靠脸吃饭偏要靠才华_你身边有女神程序员吗?
  18. 【python逆向一把梭】pyinstaller打包的exe逆向一把梭
  19. Word 2010安装包
  20. 对SingleTask和TaskAffinity的理解

热门文章

  1. 迅投QMT量化交易系统介绍
  2. Centos Piranha安装过程
  3. 无法完成windows正版认证
  4. HTML基础常识问答(三)
  5. html语言文档格式,HTML文档基本格式介绍,HTML基本标记介绍?
  6. F - Ubiquitous Religions
  7. 交换机与路由器的配置
  8. SPIR-V*:面向 OpenCL™ 工作负载的英特尔® 显卡编译器默认接口
  9. SCCM 2012 R2部署,SCCM配置(五)
  10. mbr mysql_主引导记录MBR的结构和作用