此份需求分析报告是为项目“网上书店”编写的,其中分析了“网上书店”这一项目的用户特点、功能需求,介绍了项目的开发环境和运行环境,以及可否移植的问题。全报告按照上述板块分为四个部分,对其进行相应详细的介绍。
此份需求报告是为项目“网上书店”编写的,我们之所以选择开发这个项目,是因为觉得现在是互联时代,交易已经可以通过网络跨越地域的限制,这是一个很有时代意义的项目,值得我们去做。而这个项目的具体作用和我们的最终意图就在于:实现书籍的网络买卖(买家可以方便的在网上买书,卖家可以方便的在网上卖书,并有效的管理书籍信息,把交易通过网络跨地域实现,做到足不出户完成书籍买卖)。
这份报告的预期读者包括:用户、开发人员、测试人员、项目经理、文档编写人员,希望能有助于读者了解我们所做的项目。
本项目名称是“网上书店”,一个基于网络通信的书籍交易平台,目前很多大型书店都已经加入了网络售书的洪流,而越来越多的人也倾向于网络购书,这是很有市场的。
此项目的任务提出者是老师,开发者是我们团队,用户可以是书籍卖家和买家。
我们对该项目的预期是实现基本交易环节,但不实现订单的最后付款,如果要实现付款实际交易需要和支付宝或者微信钱包等平台进行关系构建。
此项目可以实现唯一的卖家的书籍基本管理(添加书籍、删除书籍、修改书籍信息),订单的基本管理(查询订单、更改订单的基本信息);以及实现不唯一买家的书籍基本信息查询(书籍名称、简介、价格、存货量),订单的创建,订单的查询。
教材《软件工程》、本项目的《项目计划书》《设计说明书》《测试计划书》《测试报告》
说明最终制成的产品,包括:
a. 为实现模块功能我们定义函数如下:Struct book,Struct order,add_book,delete_book,add_order,Search_order,recommend,申请的全局量已经分配好了储存空间,新修改的内容放入堆栈中;
b. 程序年份为两个版本,版本一中为可供多个店家进行操作,同时用户订单处理中没有用户反馈功能和消费金额总数,同时已生成的订单中没有购买本数的记录。
c. 未连接数据库。在编写程序时使用一个源文件,在文件内部完成函数定义、调用。
2.2.1对功能的规定
主要功能包括:
卖家:登录、书籍管理(书籍信息的查看、添加、删除、修改)、订单管理(订单的创建、订单信息的查看、修改)、以及书籍推荐板块的功能实现。
买家:登录、书籍信息的查看、书籍信息的检索、订单的创建、订单信息的查看。
功能表如下
功能编号 |
功能名称 |
使用对象 |
功能描述 |
输入 |
系统响应 |
输出 |
1 |
注册 |
买家 |
买家注册账号 |
买家信息 |
数据库录入 |
注册是否成功 |
2 |
登录 |
卖家 |
卖家登录账户 |
卖家账户信息 |
数据库查询 |
登录成功与否 |
3 |
书籍信息添加 |
卖家 |
添加书籍信息 |
书籍信息 |
数据库录入 |
添加成功与否 |
4 |
书籍信息删除 |
卖家 |
删除书籍信息 |
需删除的书籍信息 |
数据库信息删除 |
删除成功与否 |
5 |
书籍信息修改 |
卖家 |
修改书籍信息 |
修改的书籍信息 |
数据库信息更新 |
修改成功与否 |
6 |
书籍推荐 |
卖家 |
添加推荐书籍 |
推荐书籍的信 |
数据库录入 |
添加成功与否 |
7 |
订单查询 |
卖家 |
查询已有订单信息 |
订单号 |
数据库查询 |
订单信息 |
8 |
订单修改 |
卖家 |
修改订单信息 |
修改的订单信息 |
数据库信息更新 |
修改成功与否 |
9 |
书籍检索 |
买家 |
检索某本书籍 |
书籍信息 |
数据库检索 |
书籍信息 |
10 |
书籍推荐 |
买家 |
浏览推荐书籍 |
书籍推荐 |
数据库查询 |
推荐书籍的信息 |
11 |
订单创建 |
买家 |
创建订单 |
订单信息 |
数据库录入 |
订单创建是否成功 |
12 |
订单查询 |
买家 |
查询已创建的订单 |
订单号 |
数据库查询 |
订单信息 |
2.2.1.1账户功能
每个注册的买家,都拥有一个自己的帐户管理界面,可以轻松的管理个人基本资料,管理订单,查询订单。
卖家拥有自己的账户管理界面,可以管理自己的书店基本资料,对书籍信息进行修改,对订单可以查询和修改。
2.2.1.2图书推荐功能
书籍推荐可以让更多优秀热卖的书籍进入买家的眼帘,有助于书籍的销售和推广,具有实质性文化意义和商业意义。
2.2.1.3检索方式
可以按照作者名称以及书籍名称进行检索。
2.2.1.4图书展示
主界面是书籍推荐,其余按客户检索展示。
2.2.2对性能的规定
2.2.2.1精度:
要求输入按照严格格式输入,比如:书籍名称的输入不可以带入书名号,否则系统报错,检索不成功。
2.2.2.2时间特性的要求
书籍检索、订单检索的响应时间不超过3秒。
性能点列表如下
编号 |
性能名称 |
使用对象 |
性能时间描述 |
输入 |
输出 |
1 |
查询书籍信息响应时间 |
买家 |
小于等于3s |
书籍名称 |
书籍信息 |
2 |
更新书籍信息响应时间 |
卖家 |
小于等于3s |
书籍修正信息 |
修正是否成功 |
3 |
创建订单响应时间 |
买家、卖家 |
小于等于3s |
订单信息 |
订单创建是否成功 |
4 |
查询订单响应时间 |
卖家、买家 |
小于等于3s |
订单号 |
订单信息 |
3.2.3灵活性
书籍检索可以按照作者检索也可以按照书籍名称检索。
书店系统功能流程图(绿色代表卖家,蓝色代表买家,橘色表示两部分操作有关联)
开始的计划是在5.30日之前完成完整代码的编译工作,6月之后就是对整个项目的完善以及修正,包括文档的编辑修改,以及代码的正确调试。
但是实际是六月初我们才完成完整代码的编译运行,直到要提交的deadline才完成对文档的编辑修改。
原因是组员的时间安排不合理,前期的进度稍稍有点慢,后期每个人的时间调配不开,导致进度延迟了。
因为我们并没有涉及实际意义上的金钱费用,耗费的都是组内成员的人力以及时间。由于有一部分时间安排不合理,所以时间稍有延迟,费用方面相当于超出了。主要原因还是因为开发经验不足,时间安排不合理。
a.程序的平均生产效率:200行 每人每月
b.文件的平均生产效率:3000字 每人每月
1.大部分的错误在单元测试中被发现,比较多的是逻辑和语法错误。根据统计,我们的代码中平均每个模块会有4—5处错误。
2.由于对需求理解的问题,使得一些功能的实现与要求并不十分符合。
3.没有可视化界面,控制台的方式操作十分麻烦。
4.没有连接数据库,使得原本保存的书籍信息较少,测试时无法产生足够多的数据。也使得每次操作的结果无法保存,每测试一次,都必须重新输入数据,太过繁琐。
在本次软件开发中,设计环节还欠缺一些灵活性和复杂度。首先,本次软件所完成的功能有限,对于开发语言来说,较为简单,数据结构并不复杂,以及未能连接数据库,因此很多方面的设计层次并没有派上用场。这个时候应该转变思路,从简单到复杂的方向深入,而不是单方面的比较我们目前的水平和所要求的层次的差别是什么,从而打乱自己已有的设计进程。
我们运用统一建模方法进行程序设计,在此过程中发现了许多在实际中无法解决的问题,因此设计的内容也在随之发生改变。开发工具为DevC++,所承载的复杂度并不高。设计结束后,我们发现,最终成品基本完成了我们在开始时的预设,但是部分功能在实际使用时未能很好的贴近现实生活。
1.大部分代码的错误在单元测试中被发现,这说明我们的水平还没达到要求,出错率太高,对一些基本语法的掌握还不够到位。逻辑思维不是特别清晰。
2.对于一些用户不合法的输入,在第一次编写代码时并未能处理完全,这说明我们考虑的不够细致。
通过此次网上书店的项目实践,我们收获颇丰,尤其深刻认识到了充分的项目计划对于一个项目的重要性,不论是项目计划还是需求分析,还是项目设计以及测试计划,都是相当重要的。充分的计划可以让我们想的更加完善,对于未知的错误也会有更加充分的准备以及应对措施。这一点对我们以后的学习工作都是有着很重要的意义的。
其次我们认识到了团队分工合作的重要性,一个项目放到一个人身上去做,压力是很大的,然而把大任务分配到团队的每个成员身上,然后再汇总起来完成就会容易很多。而且此次实践让我们对模型有了更好的认知,不同模型的选择会从前期决定后期步骤的进行,是很关键的。编程语言上我们也会更加精益求精,技术的积累是基础,希望以后的编写中少一些卡顿。总之,经过此次实践,我们收获到了很多东西,也很感谢老师给我们这个机会让我们亲手去做这个实践。难题只怕有心人,我相信,只要我们认真去做,是一定可以做好的。谢谢老师!