• 修改后的需求规格说明书


    需求规格说明书

    修改内容:
    (1)引言部分加入编写背景、定义,且将本文档的读者融入编写目的中。
    (2)项目概述部分加入用户场景,其中包括典型用户和典型的用户场景,便于用户通过这些例子较快了解如何使用几个相联系的功能,解决用户问题。同时加入一般约束、假设与依据部分的内容。
    (3)加入外部接口需求、性能需求、属性这几部分的内容。
    (4)将收集而得的需求加入我们的功能需求表中。

    1. 引言

    1.1 编写目的

    为明确软件需求、规划项目、确认进度、组织软件开发并测试而撰写本文档。本文分别介绍了产品的用户功能及运行环境,系统的功能的具体描述。同时,详细分析项目总体需求,可以作为软件开发工作的基础和依据以及确认测试和验收的依据。

    • 本文档面向多种读者对象:
      (1)项目经理:项目经理可以根据该文档了解预期产品的功能,并据此进行系统设计、项目管理。
      (2)设计员:对需求进行分析,并设计出系统,包括数据库的设计。
      (3)程序员:了解系统功能,编写《用户手册》。
      (4)测试员:根据本文档编写测试用例,并对软件产品进行功能性测试和非功能性测试。
      (5)用户:了解预期产品的功能和性能,并与分析人员一起对整个需求进行讨论和协商。
    • 在阅读本文档时,了解产品的功能概貌后,可根据个人需求对每个功能进行适当的了解。

    1.2 背景

    本次待开发的软件为“必备记”iOS软件。
    用户通过该软件在iOS终端上完成对日记本、备忘录、账本、待办事项的记录。用户注册并登录进入该软件,登录后的数据将全部存储于个人账户里,方便用户在集成四个功能的软件中完成对日常生活的记录及管理。

    1.3 定义

    序号 缩写 定义
    1 app 应用程序,application的缩写,一般指手机软件。
    2 iOS iOS是由苹果公司开发的移动操作系统,属于类Unix的商业操作系统。最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad上。

    2. 项目概述

    2.1 产品描述

    本产品集账本、备忘录、日记以及待办事项于一体,通过开发基于iOS平台的app“必备记”,节省用户于各相关应用之间的切换时间,为用户提供直观的每日花销数据及当日事务管理,记录生活的点滴。

    2.2 产品功能

    “必备记”app致力于通过移动iOS平台便捷快速地记录日常生活,大大减少切换app并进行记录造成的时间上的浪费。

    2.3 用户分析

    2.3.1 适用范围

    本产品主要面向拥有一定经济独立性,学习或工作事项繁多的青年用户群体。

    2.3.2 预期用户数量

    考虑到前期推广渠道有限,预计的用户量为三百到五百人。

    2.3.3 用户场景

    2.3.3.1 典型用户
    1. 林慧慧:工作任务繁重的白领

      名字 林慧慧
      性别、年龄 女,26
      职业 某大型上市公司的小员工
      知识层次和能力 大学,MBA,熟练使用电脑操作各办公软件,手机使用毫无问题
      生活/工作情况 经济独立,在外租屋居住,进入公司两年因能力突出被领导培养中
      动机,目的,困难 领导下发工作任务繁重,记录下容易忘记的任务和工作细节。困难:忘性大,工作太多产生焦虑,因经济独立需管理好每月支出。
      用户偏好 逛淘宝,刷剧,生活和工作要有条理
      用户比例 40%
      典型场景 会议后整理领导提点的细节,把各工作提上日程
      典型描述 时间管理大师,都市丽人,做什么都有规划
    2. 陈印:勤工俭学的大学生

      名字 陈印
      性别、年龄 男,19
      职业 大学学生,数学专业,兼职家教老师
      知识层次和能力 大学在读,电脑高手,热爱刷机
      生活/工作情况 家庭经济一般,大学后自己主动做兼职赚取学费和生活费
      动机,目的,困难 记好收入和支出,控制自己每月花销。困难:想要有一点积蓄买喜欢的东西
      用户偏好 打王者,steam老玩家,常驻B站
      用户比例 50%
      典型场景 兼职的工作发工资了、生活日常花销
      典型描述 勤工俭学的好孩子,有一些花钱的小爱好,精打细算
    3. 李敏:对生活事物比较敏感的人

      名字 李敏
      性别、年龄 女,14
      职业 学生
      知识层次和能力 大学,MBA,
      生活/工作情况 正值青春期,不太敢于表达自己,比较在意一些发生的事
      动机,目的,困难 有时不想朋友分享,选择悄悄记下来。困难:害怕自己写的东西被人随意打开阅览
      用户偏好 将自己在意的事情记下来
      用户比例 10%
      典型场景 记录发生的事,给自己的日记上锁
      典型描述 心思敏感的青少年,害怕家长查手机
    2.3.3.2 典型用户场景
    • 场景一
    典型用户 林慧慧
    用户需求/迫切需要解决的问题 上班半天后,慧慧被领导带出去见客户,慧慧还有部分工作未完成
    1.慧慧需要记下还没有完成的工作
    2.慧慧需要把领导交代的客户信息记下来,方便以后看
    3.
    假设 1.基于登录模块已经完成
    2.基于待办事项已经完成
    3..基于备忘录功能已经完成

    因此,我们可以概括出此用户的大致使用场景

    首先慧慧登录必备记app,在功能选项中选择了待办事项模块
    慧慧点一下添加待办事项将还没完成的工作内容逐项写进去,回到待办事项主页面,在已完成的事项前的小圆圈里面打勾,点开早上写的待办事项,按修改键,慧慧根据已完成一部分的工作修改了这个待办事项的内容,点完成保存修改内容。
    慧慧回到功能选项,点击备忘录,添加备忘录,写下了关于客户的重要信息,并上传一张自己做的客户信息笔记图片,以便之后和该客户洽谈工作前查看相关细节
    • 场景二
    典型用户 陈印
    用户需求/迫切需要解决的问题 陈印的兼职工资发了,下个月老板答应给他涨工资,他开始要统计下个月的花销和收入
    1.将工资记入账本的收入中
    2.查看本月收支差额
    3.查看本月各类花销
    假设 1.基于登录模块已经完成
    2.基于记账模块已经完成
    3.基于备忘录功能已经完成

    因此,我们可以概括出此用户的大致使用场景

    陈印登录必备记app,在功能选项中选择了账本功能
    陈印点击了新建账单,输入金额,选择日期,选择分类,将今日的出行及餐饮花费记录下来,在账本页面看到了自己本月的总收入、总支出,以及收支差额,还发现自己本月在娱乐类的花费比以往都多,下定决心要在之后克制自己在游戏方面的支出
    陈印最近还开始谈恋爱了,约会有时候也会花一些钱,但他发现账本类别总没有这个选项,于是他在账本类别管理中添加了恋爱消费类,并保存
    因为兼职工作涨了工资,陈印在账本设置中,重新设置了每月收入并保存,于是陈印下个月的账单会自动记入涨工资之后的收入
    陈印打开备忘录功能,将自己下周的兼职和约会行程记在新的备忘录,方便查看和提醒自己行程
    • 场景三
    典型用户 李敏
    用户需求/迫切需要解决的问题 李敏在周末和好朋友前往游乐园游玩,留下很多美好的回忆
    1.将周末发生的事记录下来
    假设 1.基于登录模块已经完成
    2.基于待办事项模块已经完成
    3.基于日记模块已经完成
    4.基于备忘录功能已经完成

    因此,我们可以概括出此用户的大致使用场景

    李敏登录了必备记,打开待办事项模块,将和朋友外出游玩事项改为已完成
    李敏选择日记模块,新建日记,选择时间、天气、心情、记录下了和朋友一起玩过山车的刺激感受,逛街时看到可爱的物件,吃饭时的美食,还上传了相关的照片,只要看到这些照片和这个日记,李敏就会想起这个愉快的周末。
    李敏写完日记后,还打开了以前写的一些日记,看到半年前和班里的同学一起出去秋游的图片,还有当时发生的趣事,于是和班里的朋友约好在今年的秋天也要找一个地方去游玩,并把这件事写进备忘录中。

    2.4 项目价值

    2.4.1 真实性

    日常生活中用户忙于事务,无法手写日记或者记录消费,手机一拿,随时可用。

    2.4.2 可用性

    一个人最好的习惯就是善于反思,而反思的根源来源于回忆,脑子做不到的,我们来存。

    2.4.3 有情怀

    小时候总以为遥遥无期,长大却发现过去就是一眨眼的事。若我们回想过去,有日记纪念过去的心情、事情,有记账回忆当初1块钱的快乐,有备忘让你所心心念念的都付诸实现,过去不可怕,可怕的是忘记。

    2.4.4 价值

    用户量定义价值,现在市面上的类似于记事本的手机app的功能缺少记账功能与云端联动的功能,这个好idea可以帮助扩展用户,定位准确。

    2.5 一般约束

    进行本软件开发工作的约束条件如下:
    1.开发周期短:5周左右的开发时间需要开发者合理规划时间,做到多项任务并发。
    2.所采用的方法与技术有限:项目团队成员的技术水平不够成熟,需要在开发中并发学习多种技术与能力。

    2.6 假设与依据

    本项目是否能够成功实施,主要取决于以下的条件:
    (1)团队成员的积极合作配合,为了项目的开发和实施,对个人时间进行合理规划同时为团队做出合理牺牲,配合队友完成任务。
    (3)团队掌握先进的能够适用于该项目的技术,这是系统的性能是否优化和项目能否成功的保证。

    3. 具体需求

    3.1 功能需求

    本系统是集日记、账本、待办事项、备忘录等功能为一体的iOS程序,势必让使用者摆脱需要多个软件的烦恼,只需要下载该款ios程序,就可以实现多元化的功能。

    3.1.1 功能结构图

    3.1.2 具体功能列表与描述

    功能 具体描述
    登录注册 用户使用邮箱号注册账号
    用户凭借注册的账号登录进入程序
    用户选择忘记密码,通过邮箱号的方式找回密码
    日记本 新建日记: 用户可在此选择新建一个日记
    查看日记: 用户可以点击日记列表中的日记查看已经写过的日记
    修改日记: 用户可以点击列表中的日记进行修改
    删除日记: 用户可以选择删除一个日记列表中的日记
    搜索日记: 用户可以选择日期检索当天的日记
    上锁日记: 用户可对隐私的日记进行加密
    备忘录 新建备忘录: 用户可在此选择新建一个备忘录
    查看备忘录: 用户可以点击备忘录列表中的备忘录查看已经写过的备忘录
    修改备忘录: 用户可以点击列表中的备忘录进行修改
    删除备忘录: 用户可以选择删除一个备忘录列表中的备忘录
    多选删除备忘录:用户可以选择多选,从而从列表中删除多个备忘录
    账本 账本设置: 用户可以在设置中选择月起始日期,月收入,以及选择账本类别
    新建账单: 用户可以新建一个账单,选择收入或者支出,选择分类名称,填写备注,输入账单金额
    修改账单: 用户可以通过点击已保存的账单进行修改
    删除账单: 用户可以从账单列表中删除一个账单
    多选删除帐单:用户选择多选可同时删除多个账单
    待办事项 新建待办事项: 用户可在此选择新建一个待办事项
    查看待办事项: 用户可以点击列表中的待办事项,查看已经写过的待办事项
    修改待办事项: 用户可以点击列表中的待办事项进行修改
    删除待办事项: 用户可以选择删除列表中的待办事项
    多选删除待办事项: 用户可以选择多选,从而从列表中删除多个待办事项

    3.2. 技术需求

    3.2.1 后端技术需求

    技术项 具体技术
    编程语言 Java
    通信协议 HTTP
    JDK 1.8
    数据库 MySQL 5.6.39 , Redis 5.0.8
    Web容器 docker+nginx
    代码版本控制 Git
    技术框架 springboot 2.6.0,mybatis-plus 3.0,Maven 3.0 ,springSecurity

    3.2.2 iOS客户端技术需求

    技术项 具体技术
    编程语言 Swift
    平台 iOS13.0及以上
    技术框架 SwiftUI+Combine
    代码版本控制 Git

    3.3 外部接口需求

    3.3.1 用户接口

    本系统采用C/S架构,所有界面使用app风格。

    3.3.2 硬件接口

    无特殊需求。

    3.3.3 软件接口

    无特殊需求。

    3.3.4 通信接口

    无特殊需求。

    3.4 性能需求

    3.4.1 精度需求

    • 个人信息精度
      用户名:即用户邮箱,符合邮箱的正则表达式。包含@字符。不可为空。
      用户密码:至少10位,密码必须由数字与英文混合的形式组成。不可为空。

    3.5 属性

    3.5.1 可用性

    (1)方便操作,操作流程合理。尽量从用户角度出发,以方便使用本产品。如:需要对备忘录的内容进行删除时,可以一键“多选”,通过一个动作实现删除多条记录的目的。
    (2)容错能力。本app具有一定的容错和抗干扰能力,在非硬件故障或非通讯故障时,系统能够保证正常运行,并有足够的提示信息帮助用户有效正确地完成任务。
    (3)操作完成时有统一规范的提示信息。如:删除操作时,app弹出警示框“确认要删除已勾选的xxx吗?一旦操作将无法撤销。”,用户点击确认后,软件才执行删除操作,删除后可直接返回相关界面。

    3.5.2 安全性

    • 用户独立性
      本app在登录后才可对记录进行操作,用户之间具有独立性,保障信息安全。

    4. 制定规范

    4.1 后台编码规范

    4.1.1 代码规范

    遵循阿里巴巴开发手册

    • 方法:遵循驼峰命名法,以动词开头,名词结尾,遵循增删查改命名原则
    • 接口:必须有Javadoc说明文档,参数作用,返回值等
    • 类:类名遵循驼峰,且首字母大写
    • 包:遵循MVC架构,分包具体为controller、service、mapper、entity、constant、bo、vo、util

    4.1.2 API接口规范

    • 接口名遵循RESTfulAPI的风格
    • HTTP响应状态码都是返回HTTP状态码200
    • 统一返回的reponseHeader设置为application/json,后台开发者进行自定code,如下:
        private Integer code;
        private String msg;
        private T data;
    
        /**
         * 功能描述 请求成功的返回数据
         *
         * @param data
         * @author chenqiting
         * @date 2020/2/9 13:13
         */
        public Result(T data) {
            this.data = data;
            this.code = 200;
            this.msg = "ok";
        }
    
        /**
         * 功能描述
         *
         * @param msg  请求错误的响应信息
         * @param code 请求错误的响应码
         * @author chenqiting
         * @date 2020/2/9 13:15
         */
        public Result(Integer code, String msg) {
            this.code = code;
            this.msg = msg;
        }
    }
    

    4.2 swift代码规范

    • 使用驼峰命名而不是下划线命名。
    • 命名清晰比简洁优先。
    • 避免对可选类型强解包。
    • 需要的时候才写上 self
    • 首选 struct 而非 classs
    • 除变量定义等较短语句的注释可用行尾注释外,其他注释当避免使用行尾注释。

    5. 原型设计

    墨刀链接:https://free.modao.cc/app/60c2bfc953e8cdc975daf1a94bfe375f8f6c2015?simulator_type=device&sticky

  • 相关阅读:
    C# 设计模式-抽象工厂模式
    C# 设计模式-工厂方法模式
    C# 设计模式-简单工厂模式
    C# 设计原则-迪米特法则(最少知识原则)
    C# 设计原则-接口隔离原则
    阻止右击事件并更改为自定义导航栏;
    今日头条滚动新闻版块特效
    抓包工具
    查看页面加载速度
    插件那点事
  • 原文地址:https://www.cnblogs.com/yyyy118/p/12925851.html
Copyright © 2020-2023  润新知