• 功能规格说明书


    学号1:367 姓名:林恩 学号2:445 姓名:肖志豪

    作业链接:https://edu.cnblogs.com/campus/fzzcxy/2016SE/homework/2180

    原型模型设计工具: 墨刀

    原型模型链接:https://modao.cc/app/Dib7wlWBGtRcmSmyBR8RDMSAAJdTLQe

    一、预估与实际

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划 30 30
    • Estimate • 估计这个任务需要多少时间 30 30
    Development 开发 790 750
    • Analysis • 需求分析 (包括学习新技术) 170 150
    • Design Spec • 生成设计文档 50 70
    • Design Review • 设计复审 20 30
    • Coding Standard • 代码规范 (为目前的开发制定合适的规范) 30 20
    • Design • 具体设计 185 185
    • Coding • 具体编码 185 185
    • Code Review • 代码复审 30 30
    • Test • 测试(自我测试,修改代码,提交修改) 120 120
    Reporting 报告 60 50
    • Test Repor • 测试报告 30 30
    • Size Measurement • 计算工作量 10 10
    • Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 10 20
    合计 880 830

    二、需求分析

    需要了解

    • 《构建之法》,第八章-需求分析第十章-典型用户和场景
    • 原型模型如何设计
    • 功能规格说明书如何书写

    三、设计

    1. 设计思路

    显示解决用户问题的过程

    • 题目重复
      • 在每次生成式子最终时判断式子是否是已经存在的,如果存在,则放弃这道题,选择重新生成;如果不存在,则继续生成这道题。
    • 数量不可定制或无限制
      • 输入数量时限制数量大小,直至输入合格数量
    • 非法输入参数
      • 输入非法参数,与正则表达式进行匹配,不匹配则重新输入参数;匹配则继续下一步。
    • 乘除法、括号、数制范围、数值范围
      • 用字符串数组存放乘除号,括号则是手动添加,数制范围默认为整型,数值范围则根据年级进行重新限制。

    2. 实现方案 写出具体实现的步骤

    分为六个步骤:

    定义相关概念,如缩写、专有名词等

    竞争性需求分析的框架

    N(Need,需求)

    • 要充分了解用户的痛苦,他们对已有软件、服务不满意的地方。
    • 老师需要能够批量生成题目的软件以及能够定时访问的网站

    A(Approach,做法)

    • 有什么招数,特别是独特的招数,来解决用户的痛苦。
    • 构建一个网站创建上述功能减轻用户负担

    B(Benefit,好处)

    • 你的新的软件具体有哪些好处,能让用户离开现有产品,使用你的产品呢?
    • 使用方便快捷且小巧,能够快速进行题目构建并下载,方便学生做题

    C(Competitors,竞争)

    • 做竞争性需求分析的目的之一,就是要看清楚我方优势在哪里,我方劣势在哪里。
    • 背景美观,题目具有独立性,每道题目都不一样

    D(Delivery,推广)

    • 如何把产品交到千万个用户手中呢?
    • 如何使应用快速推广至用户手中,快速扩大使用群体?
    • 通过学校推广,然后慢慢推广到其他学校之间

    功能的定位和优先级

    从各个角度将需求量化(需求实现的最后期限,实现需求大致所需的时间和资源成本,各个不同需求的优先级,需求带来的收益,等等)

    功能分析的四个象限

    • 杀手功能(Core)/ 外围功能(Context)
      题目具有独立性,每道题目都不一样/背景美观
    • 必要需求(Mission Critical)/ 辅助需求(Enabling)
      能够快速进行题目构建并下载,方便学生做题/使用方便快捷且小巧
    功能分析的四个象限

    规格说明书(Specification),简称Spec

    软件功能说明书(Functional Spec),主要用来说明软件的外部功能和用户的交互情况(把软件当作一个黑盒子)。

    1. 定义好相关的概念。
    2. 规范好一些假设(Assumptions)。
    3. 避免一些误解,界定一些边界条件。
    4. 描述主流的用户/软件交互步骤。
    5. 一些好的功能还会有副作用。我们要把这些副作用明明白白地写出来。
    6. 服务质量的说明。软件团队要说清楚服务质量是什么等级,意味着什么,不然就会人云亦云,以谬传谬。

    软件技术说明书(Technical Spec),又叫设计文档(Design Doc),主要用来说明软件内部的设计规范(把软件当作一个透明的箱子)。

    定义典型用户

    用户 用户1
    身份 小学老师
    年龄 30~60岁
    重要性 非常重要
    使用场景 发布作业
    使用环境 学校
    生活/工作 承担数学课的教学工作
    知识层次/能力 熟悉小学数学的知识
    动机/目的 提高学生知识水平
    用户偏好 题目避免重复,可定制数量,控制年级以及运算符号
    用户 用户2
    身份 小学教导主任
    年龄 30~60岁
    重要性 非常重要
    典型场景 编写考卷
    使用环境 学校
    生活/工作 担任教学工作,管理老师
    知识层次/能力 对小学知识有着卓越的理解力和出题力
    动机/目的 提高学生学习能力
    用户偏好 能生成期中期末的试卷 ,网站在5:00~24:00可访问
    用户 用户3
    身份 小学生
    年龄 10岁
    重要性 非常重要
    典型场景 老师或教导主任布置作业时
    使用环境 学校、家庭
    生活/工作 好好学习,天天向上
    知识层次/能力 小学数学一年级水平、小学数学二年级水平、小学数学三年级水平
    动机/目的 好好学习,天天向上
    用户偏好 学习更加轻松

    给出界面原型设计

    主要页面
    登录与注册
    退出登录页面
    注册页面1
    注册页面2
    注册完成页面
    功能页面
    生成四则运算的试卷
    生成期中期末的试卷
    ### **描述主流的用户/软件交互步骤**
    • 主流用户进入登录页面进行注册操作,然后登录进行功能选择,可以选择是生成期中期末试卷功能或是生成四则运算功能,生成后可按照提示获取生成,然后退出网站即可。

    系统功能描述及验收验证标准

    具体功能

    • 网站至少在五点到晚十二点能访问
    • 能生成期中期末的试卷
    • 对于题目:
      • 题目避免重复
      • 可定制数量
      • 可以控制一下参数
      • 乘除法、括号、数制范围、数值范围、……

    验收验证标准

    • 在5:00~24:00能够登录,其它时间无法登录
    • 正常生成期中期末的试卷
    • 对生成的题目进行自动化测试

    写出产品可能的副作用

    • 不够完善,功能上仍有残缺,需要补缺
    • 在超过一定人数访问时,可能会无法及时响应
    • 不同的人在生成题目时,可能会生成有重复部分的题目

    四、总结

    spec的目标是什么,不包括什么?

    • 从用户的角度描述软件产品的功能, 输入,输出,界面, 功能的边界问题, 功能的效率问题(对用户而言), 国际化, 本地化异常情况, 等;
    • 不涉及软件内部的实现细节

    spec的用户和典型场景是什么?

    • 用户:学生、老师、教导主任
    • 典型场景:老师布置作业让学生上网站各自下载对应作业,然后学生上学校网站获取题目并完成;教导主任负责出卷子给学生做

    spec用到了哪些术语,它们的定义是什么?

    • 软件功能说明书(Functional Spec),主要用来说明软件的外部功能和用户的交互情况(把软件当作一个黑盒子)。
    • 软件技术说明书(Technical Spec),又叫设计文档(Design Doc),主要用来说明软件内部的设计规范(把软件当作一个透明的箱子)。

    用户是如何使用软件的功能的?

    • 进入登录页面点击注册,进行注册操作
    • 完成注册,回到登录页面,进行登录
    • 登录成功,进行所需功能的选取
    • 选定功能后,转至相对应功能页面
    • 进行各自功能操作,完成操作后,获取相对应所需

    各种边界条件是什么,软件功能应该怎样随之变化?(用户数量的变化,输入内容的上限下限,不同国家地区文化语言硬件……)

    • 一年级只会有加减运算,运算结果在100以内进行
    • 二年级只有乘除运算,运算结果在100以内
    • 三年级有加减乘除运算,并且加入括号进行混合运算,运算结果在1000以内
    • 用户只能输入年级在13以内,数量1100以内才能正确运行程序
    • 不同国家,则会改变成相对应的语句

    功能有什么副作用,对于其他功能有什么显性或隐性的依赖关系?

    • 生成题目过程中需要调用所输入参数,需要用户一定有参数输入,方能运行
    • 如果输入的是0,则只会生成空的文档,不进行题目生成

    什么叫“好”,什么叫“这个功能测试完了,可以交付了”?

    • 能够顺利运行,并且没有太高延迟,保证所有人都能顺利执行操作,简易明白。才是“好”
    • 当所有功能都能顺利运行,并且没有异常抛出,就叫“这个功能测试完了,可以交付了”

    软件发布出去之后,有哪些和项目目标相关的数据可以收集,怎么在实现阶段就能把数据收集的工作准备好?

    • 用户在进行参数的输入时输入了哪些数据导致功能无法顺利运行,应当进行和项目目标相关的数据收集
    • 用户正常操作,出现异常或无法继续执行,应当进行和项目目标相关的数据收集
    • 当出现异常时,调用try{}catch{}捕获异常,并存储下来,进行和项目目标相关的数据收集

    结对照片

    结对照片
  • 相关阅读:
    Fluent UDF【1】:简介
    CFD使用者应当了解的一些事情
    关于CAE的那点儿破事儿【二】
    sau交流学习社区--看小说的lovebook一个无线端BS应用
    sau交流学习社区--songEagle开发系列:Vue.js + Koa.js项目中使用JWT认证
    mysql数据库NO CONNECTION问题分析以及解决方案
    sau交流学习社区第三方登陆github--oauth来实现用户登录
    微信小程序初体验,入门练手项目--通讯录,部署上线(二)
    快速新建简单的koa2后端服务
    docker初体验,搭建自用的gitlab服务
  • 原文地址:https://www.cnblogs.com/mumuyinxin/p/9755596.html
Copyright © 2020-2023  润新知