《软件工程概论》作业一:新冠疫情下软件产品设计

课程说明:《软件工程概论》为浙江科技学院2018级软件工程专业在大二下学期开设的必修课。课程使用《软件工程导论(第6版)》(张海藩等编著,清华大学出版社)作为教材。以《软件设计文档国家标准GBT8567-2006》作为原型,经过教师挑选和精简,布置为课程作业。专业同学组成3人小组,以第十一届中国大学生服务外包创新创业大赛企业命题类的赛题作为选题,进行文档撰写的练习。本人为所在小组的组长。

本作业说明:本次作业要求以新冠疫情作为背景,设计一款软件产品,提交一份包含原型图的设计方案。其中原型图使用Axure绘制。本小组提出的方案名称为:小区电梯实体按钮的软件替代方案(小区电梯按键模拟系统)

本文章说明:本文章根据小组最终作品改编得到。本文章为终稿,若无特殊情况,将不再进行修改。

目录

  • 背景介绍
  • 现状分析
  • 解决方案
    • 概述
    • 硬件配合与环境配合
    • 前台软件概述
    • 软件使用流程

背景介绍

2020年伊始,一场突如其来的新冠肺炎疫情打乱了人们的生活步伐。疫情自武汉爆发,并迅速扩展到全国各地,进而发展为全球范围内的大流行。此次流行疫情的病原体是与SARS冠状病毒同属一族的新型冠状病毒,具有潜伏期长、传染性强的特点,可通过呼吸道飞沫和接触传播。(“接触传播”是指飞沫沉积在物品表面,接触污染手后,再接触口腔、鼻腔、眼睛等黏膜,导致感染。)公共场所中的电梯按钮等公共设施,在日常生活中是频繁接触的对象,因而成为病毒的绝佳传播载体。如何避免此类高危接触行为,已成为疫情防控中一个不容忽视的问题。

现状分析

对于上述问题,物业(而非个人)可以采取以下几个解决方案:

方案概述优点缺点
提供纸巾等介质操作按钮,定期消毒简单有效,实施难度小非强制性,消耗大量纸巾,需要妥善处理废弃物、定期补充,可能有人私吞
派专人常驻电梯内,帮居民操作节约物资,按钮使用人数变得十分有限电梯外按钮无防护,夜班,工作量大,专人需要较强保护
小区门禁卡内写入楼层,电梯安装读卡器利用了原有的硬件,无接触,绿色环保忘带卡、前往其他楼层,无法替代“开门”“关门”按钮
电梯安装声控模块硬件成本低,无接触语音识别通病;说法会产生飞沫
替换为感应电梯按钮无接触,覆盖所有按钮成本高,容易误操作

解决方案

概述

用软件来代替电梯实体按钮,即用户通过操作软件,达到与按下电梯按钮相同的效果。这里的电梯按钮包括电梯轿厢内部的按钮与楼道电梯门外请求“上楼”或“下楼”的按钮,电梯轿厢内部的按钮又包括楼层选择按钮、开/关电梯门按钮和紧急求助按钮。传统的电梯使用场景中,电梯内、外的按钮在按下时发出的信号经过电路处理,统一输入到控制接口中,从而对电梯运行发出控制命令;在本解决方案中,用户操作软件,软件前台将用户命令发送到后台,后台再将命令输入到控制接口。所以,这里的“软件替代方案”包括前台的用户界面和后台与控制接口对接的部分,在本报告中仅阐述前台部分

硬件配合与环境配合

  1. 电梯按钮区域设置屏蔽装置,阻止乘客接触电梯按钮。
  2. 在电梯内外设置小型显示屏(可以与屏蔽装置一体化设计,可以利用电梯内外原有的屏幕)。
  3. 通过各种方式(在屏蔽装置、显示屏或其他显目位置设置提示语,电梯口派遣人员等)引导乘客学习使用软件。

前台软件概述

由于微信用户基数大、微信登录方便快捷等原因,本方案采取微信小程序作为前台软件的载体。用户在使用软件前,需要明确自己的身份定位。身份定位有3种:小区单元楼住户,偶然访客和固定访客(来访频繁且到访楼层固定)。对于小区单元楼住户和固定访客,他们可以在进入程序后,进行微信登录授权,登记自己居住(到访)的楼层,之后每次进入程序都无需选择楼层,程序会自动判断用户的上楼/下楼意图。出于隐私保护需要,用户可以在程序中解除授权,清除登记的楼层信息。对于偶然访客,他们无需授权,但需要手动选择目的楼层。程序中的主要页面如下。

【身份选择页面】小程序加载过程中,自动判断用户的授权状态。若为未授权用户,则进入该页面,让用户选择“住户(固定访客)”或“偶然访客”身份(以下简称“住户”和“访客”身份)。

【访客乘电梯页面】 选择“访客”身份后进入的页面。页面上有电梯状态、电梯按钮模块和身份切换按钮。电梯按钮模块包括楼层选择子模块和 “开门”“关门”“紧急求助”按钮。楼层选择子模块包括楼层选择控件(按钮组或下拉列表等)和“确认”“取消”按钮。用户选择楼层后,点击“确认”,等待电梯将自己运送到目的楼层,在到达之前有一次更改机会(“确认”按钮变为“更改”按钮)。用户点击“取消”按钮,则视阶段跳转到完成页面或将用户运送到下一停靠楼层。电梯到达目的楼层后,若程序未被关闭,则会跳转到完成页面

【住户乘电梯页面】 已授权用户在小程序加载完成之后进入的页面。其布局与访客乘电梯页面类似,不同之处在于:楼层选择控件为文本标签(系统自动判断用户要前往的楼层并显示),只需用户点击“确认”即可,确认之后只可取消,不可更改;如果用户要前往其他楼层,可点击身份切换按钮“访客(本次)”,切换到访客乘电梯页面;页面底部有选项卡组“乘电梯”(处于选定状态)和“个人中心”。

【楼层登记页面】 选择“住户”身份后进入的页面。用户在这个页面登记自己居住(到访)的楼层。登记完成后,进入 住户乘电梯页面

【个人中心页面】住户乘电梯页面点击“个人中心”选项卡进入的页面。用户可以在该页面修改居住(到访)楼层、解除授权等。
在各个页面中,均有一个部分提示当前页面剩余操作时间,如果用户未及时做出操作,程序将跳转到超时提示页面。
在这里插入图片描述

软件使用流程

  1. 乘客使用微信“扫一扫”功能扫描显示屏上的二维码之后,进入小程序。
  2. 用户是否授权?已授权,转步骤2.1;未授权,转步骤2.2。
  • 2.1 系统自动给出目的楼层。要前往其他楼层,点击“访客(本次)”后转步骤2.2.2,否则转步骤3。
  • 2.2 用户选择“住户”或“访客”身份。若选择“住户”身份,转步骤2.2.1;若选择“访客”身份,转步骤2.2.2;
    • 2.2.1 程序请求微信登录授权。授权通过后,用户进行楼层登记,转步骤2.1。若用户拒绝授权,转步骤2.2.2。
    • 2.2.2 用户手动选择目的楼层。要切换到“住户”身份,点击“切换到住户”后转步骤2.2.1,否则转步骤3。
  1. 用户点击“确定”,等待电梯到来。若已经在电梯内,转步骤4。
  2. 用户进入电梯或已经在电梯内,等待电梯将自己送到目的楼层或下一停靠楼层(当用户取消时)。在本阶段,“开门”“关门”“紧急求助”按钮可用。
  3. 用户走出电梯或已经在电梯外,结束。
    注:上述步骤中的跳转和某些判断由系统自动完成;用户在步骤2.1、步骤2.2.2、步骤3、步骤4均可点击“取消”,视情况转步骤4或5;拥有更改机会的用户(见上)在步骤3、步骤4均可点击“更改”;用户在登录后到步骤5之前均可进入“个人中心”,更改居住楼层或解除授权。居住楼层的更改将在下一次乘坐电梯时生效。如果解除授权,视情况转步骤4或5。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/439564.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【小沐学GIS】blender导入OpenTopography地形数据(BlenderGIS、OSM、Python)

文章目录 1、简介1.1 blender1.2 OpenStreetMap地图 2、BlenderGIS2.1 下载BlenderGIS2.2 安装BlenderGIS2.3 申请opentopography的key2.4 抓取卫星地图2.5 生成高度图2.6 获取OSM数据 结语 1、简介 1.1 blender https://www.blender.org/ Blender 是一款免费的开源 3D 创作套…

IMS添加实体按键流程 - Android14

IMS添加实体按键流程 - Android14 1、实体按键信息(Mi 9 左侧实体按键)2、硬件添加2.1 内核添加设备节点2.2 Generic.kl映射文件2.3 映射文件文件加载loadKeyMapLocked2.4 addDeviceLocked 添加设备相关对象 3、keycode对应scankode4、KeyEvent.java 添加…

【星汇极客】手把手教学STM32 HAL库+FreeRTOS之创建工程(0)

前言 本人是一名嵌入式学习者,在大学期间也参加了不少的竞赛并获奖,包括但不限于:江苏省电子设计竞赛省一、睿抗机器人国二、中国高校智能机器人国二、嵌入式设计竞赛国三、光电设计竞赛国三、节能减排竞赛国三。 后面会经常写一下博客&…

服务器conda环境安装rpy2

参考博客 https://stackoverflow.com/questions/68936589/how-to-select-r-installation-when-using-rpy2-on-conda 现在我遇到这样一个问题,服务器系统环境没有R(没有权限安装),我只能在minconda的conda环境中使用R, 使用方法如下 我现在…

(11)MATLAB莱斯(Rician)衰落信道仿真2

文章目录 前言一、莱斯衰落信道仿真模型二、仿真代码与结果1.仿真代码2.仿真结果画图 三、后续:四、参考文献: 前言 首先给出莱斯衰落信道仿真模型,该模型由直射路径分量和反射路径分量组成,其中反射路径分量由瑞利衰落信道模型构…

Art. 1 | 信号、信息与消息的区别及其在通信中的应用

信号、信息与消息的区别及其在通信中的应用 通信技术是现代社会的基石,其广泛应用于日常生活的各个方面。从手机、互联网到企业信息管理,通信系统无处不在。在这一技术领域中,信号、信息和消息是三大基础概念,支撑着整个通信系统…

云计算Openstack Glance

OpenStack Glance(或称为Glance,但通常OpenStack官方文档中使用的是“Glance”作为项目代号)是OpenStack的镜像服务组件,为创建虚拟机提供镜像服务。以下是对OpenStack Glance的详细解析: 一、基本功能 Glance主要提…

【AI人工智能】文心智能体,双人冒险游戏智能体创作分享

背景 最近半年,“AI agent”(智能体)这一词汇变得非常热门。许多人以为创建自己的智能体会很复杂,实际上,现有的平台已经大大降低了操作门槛。只要有创意,几乎每个人都可以轻松创建属于自己的智能体。今天…

Linux下静态库与动态库制作及分文件编程

Linux下静态库与动态库制作及分文件编程 文章目录 Linux下静态库与动态库制作及分文件编程1.分文件编程1.1优点1.2操作逻辑1.3示例 2.Linux库的概念3.静态库的制作与使用3.1优缺点3.2命名规则3.3制作步骤3.4开始享用 4.动态库的制作与使用4.1优缺点4.2动态库命名规则4.3制作步骤…

Uniapp API

1.uni.showToast 显示消息提示框 unishowToast({ obj参数 }) 2.uni.showLoading 显示 loading 提示框, 需主动调用 uni.hideLoading 才能关闭提示框。 3.uni.showModal 显示模态弹窗,可以只有一个确定按钮,也可以同时有确定和取消按钮。类似于一个A…

VLAN:虚拟局域网

VLAN:虚拟局域网 交换机和路由器协同工作后,将原先的一个广播域,逻辑上,切分为多个广播域。 第一步:创建VLAN [SW1]dispaly vlan 查询vlan VID(VLAN ID):用来区分和标定不同的vlan 由12位二进制构成 范围: 0-4…

算法笔记(十一)——优先级队列(堆)

文章目录 最后一块石头的重量数据流中的第 K 大元素前K个高频单词数据流的中位数 优先级队列是一种特殊的队列,元素按照优先级从高到低(或从低到高)排列,高优先级的元素先出队,可以用 堆来实现 堆是一种二叉树的结构&…

HTB:Preignition[WriteUP]

连接至HTB服务器并启动靶机 靶机IP:10.129.157.49 分配IP:10.10.16.12 1.Directory Brute-forcing is a technique used to check a lot of paths on a web server to find hidden pages. Which is another name for this? (i) Local File Inclusion, (…

如何安全地大规模部署 GenAI 应用程序

大型语言模型和其他形式的生成式人工智能(GenAI) 的广泛使用带来了许多组织可能没有意识到的安全风险。幸运的是,网络和安全提供商正在寻找方法来应对这些前所未有的威胁。 随着人工智能越来越深入地融入日常业务流程,它面临着泄露专有信息、提供错误答…

2.创建第一个MySQL存储过程(2/10)

引言 在现代数据库管理中,存储过程扮演着至关重要的角色。它们是一组为了执行特定任务而编写的SQL语句集合,这些语句被保存在数据库中,并且可以被多次调用执行。存储过程不仅可以提高数据库操作的效率,还能增强数据的安全性和一致…

Docker 启动 Neo4j:详细配置指南和浏览器访问

Docker 启动 Neo4j:详细配置指南和浏览器访问 文章目录 Docker 启动 Neo4j:详细配置指南和浏览器访问一 Neo4j compose 得 yml 配置二 配置描述三 浏览器访问 这篇文章详细介绍了如何使用 Docker Compose 启动 Neo4j 数据库,包括 docker-com…

八大排序--01冒泡排序

假设有一组数据 arr[]{2,0,3,4,5,7} 方法:开辟两个指针,指向如图,前后两两进行比较,大数据向后冒泡传递,小数据换到前面。 一次冒泡后,数组中最大…

C++ | Leetcode C++题解之第459题重复的子字符串

题目&#xff1a; 题解&#xff1a; class Solution { public:bool kmp(const string& query, const string& pattern) {int n query.size();int m pattern.size();vector<int> fail(m, -1);for (int i 1; i < m; i) {int j fail[i - 1];while (j ! -1 &…

java基础_异常总结详解

1 列举一些列举常见的运行时异常 运行时异常都是 RuntimeException 子类异常 NullPointerException - 空指针异常 ClassCastException - 类转换异常 IndexOutOfBoundsException - 下标越界异常 ArithmeticException - 计算异常 IllegalArgumentException - 非法参数异常 Numb…

Elasticsearch:使用 LLM 实现传统搜索自动化

作者&#xff1a;来自 Elastic Han Xiang Choong 这篇简短的文章是关于将结构化数据上传到 Elastic 索引&#xff0c;然后将纯英语查询转换为查询 DSL 语句&#xff0c;以使用特定过滤器和范围搜索特定条件。完整代码位于此 Github repo 中。 首先&#xff0c;运行以下命令安装…