团队做业3 ---- 需求分析与设计

需求分析

软件的最终目的是用来解决用户的某些问题,需求分析就是要理解要解决的问题,真正明确用户需求。javascript

1.访问软件项目的真实用户(至少10个),确保软件真正体现用户的需求,为软件最终可用奠基基础。

咱们在问卷网上作了一份问卷调查,总共10道选择题,外加一道用户建议题css

用户问卷调查统计对比:

截止目前为止,一共有89人完成了问卷,其中男女比例2:3,学生占了78人,咱们从如下几个主要的方面来调查,结果以下html

记帐习惯

选择习惯

是否有消费计划

比较学生和从事其余行业的用户的需求

学生用户的需求

其余行业的用户的需求

现用的记帐APP或小程序不足之处

用户担忧的问题

对于记帐APP或小程序的意见:

用户指望和建议


2. 参考《软件需求规格说明书》国标规范文本,撰写对应项目的软件需求规格说明书。提供《需求规格说明书》的Git连接。

  • 除形式上知足规范文本要求外,总体内容必须围绕项目实质展开,对所要开发的项目确保尽力作到清晰完整准确。
  • 使用一致的图形符号和文字描述内容。
  • 全部的缩写须事先定义。
  • 须要有一个目录,word排版样式规范美观,图文并茂,通篇文档有一个统一的样式风格。
  • 将本身置于读者的立场——若是对软件项目不熟悉的人员,经过阅读这份文档,可否彻底读懂软件要作什么。

git连接入口

3.NABCD 写做,视频

  • 请同窗们把本身项目的NABCD 都写出来。
  • 列成详细的条目,用具体的事实和分析说明。
  • 请分析本身项目的杀手功能是什么?参考教材的第8章:功能分析的四个象限
    把这些要点都组合成为一段话 -- 当你要向别人兜售你的项目的时候, 你一般只有很短的时间 (电梯演说),可否天然而有条理地把项目说清楚? 请用你产品中实际的元素代替 <> 中的抽象概念。
    各位领导/投资人/用户/合做伙伴:咱们的产品 是为了解决 <目标用户> 的痛苦, 他们须要 ,可是现有的方案并无很好地解决这些需求,咱们有独特的办法 ,它能给用户带来好处 ,远远超过目前市场上的竞争对手 。 同时,咱们有高效率的 方法,能很快地让大部分用户知道咱们的产品,并进一步传播。
    [附加题]把上面的这段话录制为视频,上传到视频网站,并把连接发到团队博客上。
  • N(Need)
    • 咱们团队的项目是基于微信开发的记帐小程序,知足了用户不依赖app,就能够在手机上轻松记录平常开销收支的需求,即开即用,用完就走,无需占用内存,影响桌面美观。
    • 从需求量来看,在咱们的调查问卷结果上能够明确看出,相对于传统的记帐方式,超过一半的人选择使用较为简便的记帐小程序。
    • 从用户对曾经使用的记帐方式的痛苦,最主要的缘由是数据表达不直观问题,其次是程序繁琐,界面美观和分类细节也占有一部分。
    • 从用户对小程序要求统计数据来看,数据分析及统计和数据更改都是最基本的,同步帐本和提醒功能虽比重不大,但也是咱们项目的一个发展趋势。
    • 综上总结了记帐小程序最本质的开发需求是:以简为本,在基本记帐功能之上进行分类细则的数据分析与界面美化。
  • A(Approach)
    向微信方申请搭建一个我的性质的微信小程序。用户经过微信搜索咱们的小程序后直接使用微信注册绑定使用。
    完成基本的基础记帐的功能后,就能够推出去给客户试用一下,看看用户有什么反馈的要求,或者改进的地方,好的方面及时商讨改进,方便后续更多功能的推动,若固步自封地作,所有完成后反而不知足客户需求,很难倒回头改进。
    小程序第一版后端使用java+SQL数据库,前端使用HTML + javascript+css。小程序风格以简洁为主。前期主要将基础功能作好作强大,后期再不断迭代更新。
  • B(Benefit)
    成本低:咱们的微记帐小程序是一种无需下载安装便可使用的应用,能以最低成本触达用户,减小用户成本,释放手机内存量。
    灵活性高:替代传统麻烦的手工记帐,实现记帐简单化、方便化、数据化。
  • C(competitors)
    1)其余小组带来的竞争
    2)其余微信记帐小程序开发者带来的竞争
    优点:咱们团队人员积极合做,并且你们住在一块儿能够第一时间了解项目进度,并及时修改或更新。
    劣势:都是大学生,项目经验不足,能力稍有欠缺。

    优点:经过简单调查,目前同类型的微信小程序功能大都不齐全不完善,不存在已经很强大健全的记帐小程序,开发空间仍是很大的。
    劣势:记帐app能够不用网络就可记帐,而咱们的记帐小程序必须链接网络登陆微信才能使用。
  • D(delivery)
    微信小程序本就自带推广,大大减轻了咱们的推广工做量;而且小程序特色之一就是只要使用过便是用户,只要在微信内搜索过记帐小程序并进入咱们的微记帐,就会产生用户,随着时间,咱们会产生固定用户,继而有了大的流量产生,咱们的微记帐也会在用户搜素记帐小程序是排名愈来愈靠前,交付推广就更容易简单了。

杀手功能前端

相较于其余同类的记帐小程序:
咱们增长了数据导出备份的功能,这样即便用户清除了历史帐目记录,也能够经过备份再次查到,减小用户丢失数据的损失;
还增长了帐单添加的功能,例如:默认帐单能够记录用户我的全部支出消费结余等,生意帐单能够记录用户公有的财务支出收入等,还有旅游帐单…….java

一段话mysql

各位用户朋友们:咱们的产品 <微记帐小程序> 是为了解决手工记帐和APP记帐用户的痛苦, 他们在现有的记帐工具中不能明确的了解自身的收支情况且清除记录后没法找到数据,易形成损失;可是现有的方案并无很好地解决这些需求, 咱们有独特的办法,首先咱们增长了数据备份这项功能,而且也增长了收支情况的分类统计图表、对比统计图表、趋势统计图表,它能让用户清晰快速的了解本身的收支情况而且加以对比和估算,也大大的减小了数据丢失所形成的的重大损失,远远超过目前市场上的竞争对手(同类型记帐小程序)。 同时,咱们有高效率的推广方法(利用微信自身海量用户的优点),能很快地让大部分用户知道咱们的产品,并进一步传播。 git


视频连接入口


4.团队协做,增强分工,须要描述每一个成员的具体分工及占整个文档任务的工做量比例。

参考web


原型设计

原型设计可以在表现层将设计合成一个逻辑总体,用户能和你一块儿看到将来交互的软件蓝图、功能和效果,得到较真实的感觉,在不断讨论的基础上完善将来的设计思想。所以,原型设计能起到有效沟通的做用,漂亮,直观的原型图更是让人赏心悦目。sql

1.不要等到全部代码写好以后再去验证需求,请用设计工具描述用户界面和需求。
2.原型设计不只要考虑主要功能的页面排布,同时也要考虑用户实际操做中的问题,提早为用户考虑得当并征求用户意见
3.系统是必须可运行的,可实际使用的——请抱着这样的同理心去考虑系统。
4.给目标用户展示原型,与目标用户进一步沟通理解需求。数据库

  • 思考:他们的痛是什么?场景是什么?(用产品以前/以后,有照片或视频显示用户调查的过程,使用了各类调查手段的,加分)
  • 参考:
    • 《构建之法》第10章典型用户和场景
    • http://www.cnblogs.com/xinz/archive/2011/10/30/2229236.html
    • 阿里巴巴卫哲:http://iamsujie.com/8000/8018/

      场景:用户使用产品的过程当中
      痛点:刚开始想要要点击图标按钮,但实际上点击按钮下面的小字才能实现功能的切换。
      这会使刚接触使用的人不能较好适应。以致于一直点击图标却没有反应。调研拍摄图片以下:

用户体验界面

初始界面(记帐、显示当月收支及预算)

报表界面(根据预算值显示总收入支出及结余)

帐单界面(设置月预算及关键字搜索记录)

帐本界面(新建帐本及查看当前帐本总额记录)

登陆界面(经过邮箱记帐提醒及导出数据到邮箱)

调研拍摄


原型工具参考

若是是设计原型,采用专门的原型设计工具,可以事半功倍,工具参考:

  • 移动应用原型与线框工具-墨刀
  • 原型设计界的PS -Axure RP,Axure
  • 网页和移动端的设计sketch
  • 一款简洁高效的原型图设计工具mockplus
  • 致力于高保真原型制做工具Justinmind
  • 一款免费的带有手绘涂鸦风格的原型设计软件balsamiq mockups
  • 更多选择,请参考:https://www.zhihu.com/question/19592829

做业参考
原型设计界面简洁,用户体验极佳。分工比例部分的泳道图十分清楚地展现了各个同窗的工做任务,Github上数十次Commit也展现了他们和谐的团队协做。

原型设计连接


任务分解WBS

一个团队项目要在一段时间内完成诸多任务,知足用户需求,实现团队目标,从哪里入手?
WBS(Work Breakdown Structure)即工做分解结构,是根据项目目标把工做分解成许多井井有条的、可交付成果的工做任务,而后用逻辑图形或树形结构表示出来。

1.请给出团队项目的WBS

2.团队成员估计各自任务所需时间

成员 负责模块 估计时间
顾芷菱 丁蓉 报表模块 210h
林羽晴 洪亚文 帐单模块 210h
秦贞一 齐畅 用户模块 200h

3.参考:http://www.cnblogs.com/zhengrui0452/p/6653964.html


编码规范

根据结对编程的经验,你们已经意识到编码规范的重要性。

讨论制定团队的编码规范,知足代码风格规范和代码设计规范(参考书第4章4.1-4.3内容)
http://www.cnblogs.com/xinz/archive/2011/11/20/2255971.html

  • 代码风格规范
    • 基本间距:
      • 缩进:4个空格
      • 行宽:100字符
    • 条件执行块:
      • 条件表达式:在复杂的条件表达式中增长括号加强逻辑性,如if ( (A||B) & ( (A&B) || (A||B) ) )
      • 格式:断行与空白的{ }行,
        如:
        if ( condition)
        {
        DoSomething();
        }
        else
        {
        DoSomethingElse();
        }
    • 分行:
      • 变量定义:将不一样的变量分别分行定义
        如:
        Foo foo1, foo2; (错)
        Foo foo1;
        Foo foo2; (对)
      • 多行语句:分行放
        如:
        a = 1; b = 2; (错)
        a = 1;
        b = 2; (对)
        if (fFoo) Bar(); (错)
        if (fFoo)
        Bar(); (对)
    • 变量名称:
      • 命名:匈牙利命名法,能够直观看出变量的类型或存在的意义
      • 下划线:分隔变量名字中的做用域标注和变量的语义,如:people结构体中的student为p_student
      • 大小写问题:全部变量及函数的名称均使用camel式,每一个单词首字母大写,如:StuInfo,GetInfo()
    • 注释
      • 内容:注释的内容仅为程序的用途和缘由
      • 符号:源程序和注释都使用ASCII字符
      • 函数头注释解释函数的参数类型,若程序说明则省去
  • 代码设计规范
    • 函数:只实现一个功能
    • goto:使用goto语句实现无条件转移,加强程序的逻辑性
    • 参数的处理:对传递过来的参数进行验证
      • 断言:参数百分百正确,直接Assert
      • 错误处理:设置条件语句的断定,对不一样的断定作不一样的处理
    • 类的使用:
      • 在必要的时候才使用,数据的封装用结构体就行,减少开销
      • 成员变量:用下划线指明所属域
      • 修饰词:按照public、protected、private的次序来讲明类中的成员
      • 构造函数:只用来简单初始化数据成员,不能有返回错误的操做
      • 运算符:简单运算状况下直接使用不要从新定义,复杂操做才定义成函数进行运算
      • 异常
        • 不要用异常做为逻辑控制来处理程序的主要流程
        • 使用时须要明确数据被清理的地方

系统设计

在设计阶段,咱们要清楚:软件是怎么解决这些需求的?
一个好的分层式结构,可使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不一样逻辑设计的开发人员就能够分散关注,齐头并进。

1.如何才能最大限度地实现这些需求,这就是架构设计要解决的问题。请给出系统的架构设计

(1)微信小程序主要由3个全局的文件和一些与页面相关的文件组成

文件 做用及说明
app.js 逻辑部分,用于编写全局的事件
app.json 用于配置微信小程序
app.wxss 公共样式表,用于设置可使用的样式

(2)系统结构简单描述

  • 前端设计:
    前端是直接提供给用户的,属于视图层面的,是最直观的,须要保证界面的美观,能够给人用的,并且还要保证易上手,知足大多数人的使用习惯。

  • 后台开发:
    后台是为了在各个不通的界面中,实现不一样的功能。若是只有良好的界面,没有后台的支持,那这个产品也只是一个空壳。假设用户经过点击某一个功能按钮,为达到其效果,就须要从后台调取数据,根据不一样的需求呈现给用户,而这些是属于逻辑层面的

  • 搭建服务器,提供数据服务:
    咱们作的是基于微信平台的记帐小程序,须要保存用户大量的数据,并且还要保持数据的同步,咱们将采用mysql,优势是易操做,咱们还须要搭建web服务器,为用户提供http service

(3)系统结构图:

2.完成团队项目的数据库设计,并在随笔中提供相应ER图(若是必要)

E-R图说明:

  • 一个用户的微信名是惟一的,咱们能够经过存储微信名的方式直接找到昵称和微信头像,用户绑定邮箱无关紧要,用于导出帐单数据和提醒用户记帐
  • 一个用户能够拥有多个帐单,帐单的每一个数据项包含帐单编号(自增),帐单类型编号,时间,备注,消费类型,金额(+为入,-为出)
  • 一个用户有多个月预算,帐单类型和年月做为主键,保证惟一
  • 消费类型表,好比生活用品,服装,饮食,车费等等,用户还能自定义类型
  • 帐单类型表,好比生意帐单,生活消费帐单等等,用户一样也能添加自定义类型

参考


团队我的总结

  • 林羽晴
    本周主要任务完成需求分析与计划,咱们开了一个小会,安排了各个成员的任务
    完成状况:在初版本的基础上,对需求分析说明书进行了修改和补充,调整格式,增长模式图等,根据问卷调查的结果进行展现,完成任务分解和系统结构设计,了解整个项目的构架。
    感想:这两周都是在为后面的开发作准备,需求分析作得好坏会影响软件的质量,咱们的团队也特别重视,可是涉及的用户多数是学生,有必定的局限性。咱们接下来要开始小程序界面的设计,云服务器的准备,先后台的交互,数据库等等。虽然会面临不少的挑战,可是咱们准备好了!
  • 顾芷菱
    本周博客我和本组成员丁蓉负责的是用户需求分析模块,包括NABCD编写与视频、用户需求分析调查及《软件规格说明书》编写等。
    ①关于用户需求调查,咱们采用调查问卷的方式,收集了90人左右的调查结果。经过结果了解了用户的需求及痛点,找到从此项目开发的侧重点,知足用户需求
    ②在编写软件规格说明书的时候遇到了一些麻烦,从网上搜索得来的模版看起来很正式很高档,一开始甚至有写专业名词都看不懂,写起来比较一头雾水。固然,从编写的过程当中也获得了编写规范文档的经验与方法。
    ③NABCD编写是参照老师给的一些参考连接结合本身项目的实际状况写的,印象深入的是宣传视频的制做,咱们俩采用的是幽默诙谐的方式,但愿能给咱们的项目起到正面积极的宣传做用。
    从此你们也一块儿继续加油吧~
  • 丁蓉
    本周博客用户需求分析模块是由我和顾芷菱负责,包括用户调查,编写《软件需求规格说明书》以及编写NABCD和拍视频。 软件需求规格说明书那边真的是有点难写,看了不少模版,大多都是写了四五十页,咱们经验不足不太清楚具体怎么写,因此用了好久的时间,也才初步完成,而后又修改了一遍,最后组长羽晴又再次修改了一遍,足以说明这个真的很差写,而后咱们很认真哈哈。还有就是我和个人搭档顾芷菱的视频啦,颇有意思?!但愿你们能够用一种放松的心情来了解咱们的产品。相信咱们会越作越好的。
  • 洪亚文
    本周我主要负责的是熟悉微信小程序后端的编程开发为后面作好编程准备,本周博客部分因为内容较多,我负责的是整个编码规范的部分,通过讨论以后发现不少因为不一样编码风格会影响了代码的可读性比较差,所以代码规范一系列仍是特别有必要达到一致性的。
    其次是我以为这个项目在初始阶段作这些准备工做,好比需求分析,代码规范等,都是在为后续工做打基础,可是我以为若是在后续编程工做中还要继续完成量大的博客任务可能有点吃力,特别是冲刺阶段两天一篇博客,但愿老师能够酌情分配任务,留更多的时间在开发之上
  • 秦贞一
    本周我主要负责原型设计这一块,所用的工具是墨刀,在肯定了软件的功能便开始着手设计,一开始的时候没有什么头绪,不知道如何将功能如何很好的分块并实如今不一样的界面中,后来便参考了其余的记帐的软件,再结合咱们的记帐软件的具体需求,设计界面也是水到渠成。
    可是墨刀设计的局限性,不少功可以作了简便化的处理,如报表那一块,并无图标的实例,只能在设计完成后和组员说明状况。通过这一周的设计,相信在接下来的时间里,咱们会作的更好。
  • 齐畅 这周我和我主要负责原型设计中的用户调查关于痛点的问题,并拍了视频图片。以及和队友们在朋友圈微信广撒网,积累了大量的问卷调查的数据,有较强的说服力。完成了基本的市场需求分析。开了两次会,就功能实现展开激烈的讨论,并最终造成了整个项目的构架。 感想:下面两周就是冲刺周了。咱们也准备买云服务器,为数据库实现作准备。基本上能够想象天天的平常除了上课,吃饭睡觉,剩下的时间可能都是跟五个队友一块儿吧。虽然有点残忍,易审美疲劳,但一想到若是坚持到两周后,看到基本成型的小程序,那再痛苦也是值得的!
相关文章
相关标签/搜索