1.实验名称

面向对象程序设计-类模型的设计

2.实验目的

通过实验,熟悉并掌握面向对象程序设计模式的选取、设计过程。

3.实验内容

设计和实现中通快修APP系统的模式设计,完成类模型图。

  1. 实验过程

一.维修工登录和注册

  • 场景:
  • Who:技师用户
  • Where:登录注册界面
  • When:app的正常使用时间
  • 用例描述:
  • 1技师用户点击打开中通快修(技师端app)并停留在登录界面
  • 2若有账号密码输入账号密码点击登录
  • 3若没有账号密码点击注册进行账号密码的注册
  • 4输入正确注册格式的(手机号、验证码、新密码)账号密码正确注册后点击去登录按钮进行登录
  • 5输入注册好的账号的密码点击登录
  • 6若注册过账号密码但是忘记了密码点击忘记密码进行密码找回
  • 7正确找回并修改密码后 返回登录界面并输入新找回的密码进行登录
  • 当维修工登录系统时输入维修工的账号密码,登录界面进行校验,并返回响应的结果第一次下载使用中通快修技师维修端,需要先进行账号注册,否则无法登录app
  • 用例价值:校验账号密码并对相应的用户允与登录操作,起到保护app和用户信息的作用
  • 约束和限制:中通快修(技师端app)必须能正常使用和稳定的显示给用户使用手册中的包含的功能
  • 异常:账号密码中有一项或多项不正确导致的无法登录系统
  • 异常步骤:输入错误的账号密码然后点击登录按钮-无法登录-跳出异常处理界面
  • 替代步骤:输入正确的账号密码-登录
  • 用例价值:给第一次使用的用户注册的机会和使用权限
  • 约束和限制:必须输入正确的手机号和验证码保证注册成功
  • 异常:注册使用的手机号不正确或者是输入的验证码不正确或者是设置的密码不符合要求的规范导致的注册失败异常
  • 异常步骤:输入错误的手机号-收不到验证码-点击注册-显示异常 输入正确的手机号-输入错误的验证码-点击注册-显示异常 输入正确的手机号和对应的验证码-输入不合规范的密码格式-点击注册-显示异常 输入正确的手机号和对应的验证码和争取的密码格式-点击注册-后台校验是否有该手机号存在的用户-用户已存在-显示异常
  • 替代步骤:输入正确格式的手机号、验证码、密码-点击注册-校验后台有没有该用户若没有-注册成功

C:用例名称:维修工修改密码

  • 场景:忘记密码或者是新账号第一次登录需要修改密码的情况
  • 用例描述:忘记密码或者是新账号第一次登录需要修改密码时,可以进行密码修改,以便于用户的使用
  • 用例价值:修改密码,方便用户后续的使用
  • 约束和限制:必须要修改合适的符合规范的新密码并且新密码不能和旧密码相同
  • 异常:输入了不合规范的新密码和手机号和错误的验证码和两次新密码的输入不一样
  • 异常步骤:输入错误的手机号-收不到验证码-点击注册-显示异常 输入正确的手机号-输入错误的验证码-点击修改密码-显示异常 输入正确的手机号和对应的验证码-输入不合规范的密码格式-点击修改密码-显示异常 输入正确的手机号和对应的验证码和符合规范的新密码-第二次输入密码与第一次输入不同-点击修改密码-显示异常 输入正确的手机号和对应的验证码和争取的密码格式-点击修改密码-后台校验是否有该新密码相同的旧密码-存在相同密码-显示异常
  • 替代步骤:输入正确的符合规范的手机号、验证码、新密码

二.技师个人信息

场景:

Who:技师用户

Where:登录app之后技师个人信息界面

When:app的正常使用时间

用例描述:

1平台奖励:进入平台奖励页面,技师可以充值积分。查看积 分明细。

2技能认证:在技能认证页面,技师需要填写姓名,手机号, 申请维修类型,从业时间,维修经验,操作证,门面名称以 及门面地址。然后点击确定等待后台审核。

3服务时间:在服务时间页面,技师可以设置今天,明天,后 台三天的具体服务时间,点击提交按钮即可修改完成。

4设置维修价格表:在设置维修价格表页面中,可以查看技师 设置的故障类型上门费用。点击设置维修价格表页面下方的 修改按钮,可以进入修改故修价格页面。修改完之后,点击 下方的修改即可修改成功。

5分享二维码:进入分享二维码页面,点击推荐中通快修预约 平台或者推荐技师之后点击推荐会跳转到微信页面,此时可 以将复制信息发送给好友。或者直接扫码二维码。

6平台使用协议:进入联系客服页面,可以通过电话或者客服 微信进行咨询相关问题。

7联系客服:技师通过客服微信联系客服

8设置:技师在设置页面可以修改姓名,性别,手机号码,密 码,头像,门面名称,门面地址以及区域地址,修改信息之 后点击保存数据即可修改完成。

用例价值:完成技师用户用户个人需求

约束和限制:必须成功登录app系统并且app能完整显示和使用功能

L:用例名称:抢单

  • 场景:技工抢单做维修时
  • 用例描述:给技工分发任务的一种方式
  • 用例价值:测试功能是否完善
  • 约束和限制:必须要点击左下方的抢单界面
  • 异常:网络限制或者是未打开GPS定位导致的抢单信息缺失

M:用例名称:订单管理

  • 场景:需要查看当前技师的订单详情时
  • 用例描述:在订单管理页面可以查看到技师所有未完成和已完成订单的详细信息
  • 用例价值:测试功能是否完善
  • 约束和限制:正确点击订单管理界面

N:用例名称:收益管理

  • 场景:需要提现或者查看工作收益时
  • 用例描述:点击收益管理,进入账单明细页面,可以查看到技师每个月的账单信息
  • 用例价值:测试功能是否完善
  • 约束和限制:正确点击收益管理界面
  • 异常:填写了错误的提现信息导致的无法提现

O:用例名称:知识库

  • 场景:需要查看其他技师发表的文章时
  • 用例描述:在知识库页面,可以看到技师发表的文章
  • 用例价值:测试功能是否完善
  • 约束和限制:正确点击知识库
  • 异常:填写了错误的或者违规的信息导致的发表失败异常

三.抢单模块

(1) 给出本系统的需求分析,采用“用例法”描述需求的过程,格式如下:

第一步:按照正常处理进行描述

  • 用例名称:抢单模块
  • 场景:

Who:顾客、技师

Where:中通快修app

When:当有用户预约订单的时候

  • 用例描述:

1. 用户在平台上传需求订单后,技师可以看到有订单

2. 技师在订单列表中进行抢单

3. 抢单成功,系统显示技师在预约时间内前往目的地进行抢修工作,

  • 用例价值:

技师抢到订单,就可以去完成工作,而用户的设备将会有师傅去进行修复.

  • 约束和限制:

用户界面得使用中文,因为使用者都是中国人

1.技师一次只能抢一个订单,不能提前进行预约下一个订单

2.技师不能了解大概此次订单可以得到多少报酬

3.用户在同一时刻下订单的数额不能太大,可能会造成系统卡顿

4.用户一次只能下一个订单.不能同时下多个订单.

第二步:针对每一个正常处理步骤分析对应的异常处理

  • 异常:

1.用户没有填写预约时间,

2.用户没有填写预约地点,

3.用户没有填写故障设备类型,

  • 异常步骤:

1.用户没有填写预约时间,技工无法进行抢单,需要补充填写时间

2.用户没有填写预约地点,技工无法进行抢单,需要补充填写地点

3.用户没有填写故障设备类型,技工无法进行抢单,需要补充填写

第三步:针对每一个正常处理步骤分析对应的替代处理

  • 替代步骤

进行验证

第四步:对用例进行可视化

(2) 设计本系统的领域模型,具体过程如下:

第一步:在用例模型中,查找名词列表并提炼

  • 名词列表:

订单列表、技师、用户、订单、首页、总数。

  • 提炼:

删除⾮领域对象或领域对象的属性。“首页”与系统没有关系,总数是技师订单数量的体现

第二步:加属性

名词

属性

备注

技师

编号

用户

用户名称、预约时间、设备名称、联系电话、服务方式、设备地址、故障描述

这里是给技师提供一个详细信息

订单

状态、总数

状态在其中未体现,根据经验得出

第三步:用类图表示相互关系

(3) 应用面向对象程序设计的设计原则和设计模式,完成类模型设计,如下:

第一步:根据步骤(2)中类关系图进行类筛选,通过名称映射、属性映射提炼设计类。

第二步:根据步骤(1)用例寻找动词并筛选提炼动词,得到提炼后的结果。

  • 动词:点击
  • 筛选提炼动词:

抢单分配给技师类

第三步:分配职责

抢单分配给技师类

第四步:类模型初始图

(4) 精雕细琢,应用设计原则和设计模式,实现类模型优化:

第一步:类的行为设计

  • 找寻变化:
  • 选取设计模式:

单一设计原则

第二步:画出优化模型的类图

  • 首页

4.1订单管理

用例名称:订单管理

场景:技师进行收费时

用例价值:在订单管理页面可以查看到技师所有未完成和已完成订单的详细信息。当技师维修完成订单之后,在未完成订单页面,点击订单对应的正在进行按钮进入接单维修页面,技师填写维修情况反馈,上传现场照片,并且点击完成工单收款,进入技师收款页面。

约束和限制:订单限制完成时间

异常:(1)支付不成功

异常步骤:(1)用户支付宝和微信都没有余额

替代步骤:(1)用户使用现金支付

名次列表:技师、订单、信息、按钮、情况、照片、完成工单、现金、二维码、金额、微信、支付宝

提炼:按钮跟系统没有多大关系,故不需要

名词

属性

备注

技师

接收订单信息

订单

已完成、未完成

支付方式

现金、二维码

NA

动词:接单、反馈、上传、收款、支付、选择

4.2收益管理

用例名称:收益管理

场景:技师查看自己的收益情况

用例价值:技师可以将收款金额未提交的点击提交交给后台进行审核,点击页面最下方提交记录进入提交记录页面。

约束和限制:提现金额额度

异常:(1)提现金额过高

异常步骤:(1)比如一次性提现十万

替代步骤:(1)限制每日提现金额额度

名词:收益,账单明细、姓名、手机号、提现金额、提现方式。

动词:提现、审核、查看

4.3查看评价

用例名称:查看评价

场景:用户对技师的服务进行评价

用例价值:可以让其他客户进一步了解该技师

约束和限制:字数

异常:(1)字数异常

异常步骤:(1)用户对技师的评价长篇大论

替代步骤:(1)提示用户字数

名词:信息

名词

属性

备注

信息

预约时间、设备名称、故障描述、联系电话、评价反馈、服务评价

4.4知识库

用例名称:知识库

场景:技师提供自己的经验

用例价值:其他技师可以学习到一些技能

约束和限制:发表的字数限制

异常:字数过少,部分内容未填写

异常步骤:(1)技师发表自身经验,但是字数过少,其他技师可能看不懂

(2)技师在发表文章时,其中一栏可能忘记填写

替代步骤:(1)提示技师字数可能过少(2)在技师点击发表时提示有一栏为空,或者标红那一栏

名词:文章、图片、匿名用户、标题、正文、请勿转载

名词

属性

备注

文章

标题、正文、图片、匿名用户、请勿转载

  1. 实验结论及心得

通过实验,熟悉并掌握了面向对象程序设计模式的选取、设计过程,系统的掌握该面向对象程序设计的用例模型、领域模型和设计模型的主要方法等.