要求
请阅读以下说明,完成要求的内容。
【说明】假设需要开发一款具有个性化推荐功能的购物网站,主要功能包括: 用户:商品浏览,购物车管理,订单管理,在线支付等功能;
管理员:后台管理功能,包括用户管理 和商家管理。
系统具有两种推荐功能,其一是根据用户浏览记录进行商品推荐(推荐算法),其二是根据用户已购买商品的关联商品进行推荐。(关联分析算法)
试从软件工程过程管理角度对项目进行分析。
1、引言
1.1编写目的
为了保证项目团队按时保质地完成项目目标,便于项目团队成员更好地了解项目情况,使项目工作开展的各个过程合理有序,因此以文件化的形式,把对于在项目生存周期内的工作任务范围、各项工作的任务分解、项目团队组织结构、各团队成员的工作责任等内容做出的安排以书面的方式,作为项目团队成员以及项目干系人之间的共识与约定,项目生命周期内的所有项目活动的行动基础,项目团队开展和检查项目工作的依据。
1.2背景
a.待开发项目名称:具有个性化推荐功能的购物网站
b.本项目的任务提出者、开发者、用户
①本项目的任务提出者:软件学院
②项目开发者:Richard
③用户:大众
1.3项目开发中需要的参与人员
1.3.1项目经理
职责:
1、制定产品的目标。
2、制定各个工作的详细任务表,跟踪这些任务的执行情况,进行控制。3、组织会议对程序进行评审。
4、综合具体情况,对各种不同方案进行取舍并做出决定。
5、协调各项目参与人员之间的关系。
1.3.2系统分析员
职责:
1、了解用户需求,写出《软件需求规约》。
2、建立用户界面原型。
1.3.3设计员
职责:
1、定义类的方法和属性以及各个类之间的关联,画出类图。
2、进行数据库设计。
1.3.4程序员
职责:按项目的要求进行编码和单元测试。
1.3.5测试分析员
职责:执行测试,描述测试结果,提出问题解决方案。
2、项目概述
阶段名称 | 工作任务内容 | 工作量 | 交付成果 | 验收标准 |
---|---|---|---|---|
需求分析 | 对软件需要实现的各个功能进行详细分析 | 2人月 | 《软件需求分析报告》(原型图) | |
概要设计 | 系统构架设计、软件结构和数据结构的设计 | 4人月 | 《软件系统概要设计报告》 | 详见2.2.4 |
详细设计 | 选定数据结构、算法设计,完成模块或者对象的设计 | 4人月 | 《软件系统数据库设计报告》、《软件系统详细设计报告》 | 详见2.3.5 |
软件编码 | 具体的编写程序工作,分别实现各模块的功能 | 8人月 | 《用户手册》《操作手册》《模块开发卷宗》以及项目 | 详见2.4.4 |
软件测试 | 界面测试、可用性测试、功能测试、稳定性测试、性能测试、逻辑性测试 | 2.5人月 | 《软件测试报告》 | 详见2.5.4 |
软件运行和维护 | 软件更新、校正性维护、适应性维护、完善性维护 | 长期 |
2.1 软件的需求分析
2.1.1 工作任务内容
主要功能包括:
用户:商品浏览,购物车管理,订单管理,在线支付等功能;
管理员:后台管理功能,包括用户管理 和商家管理。
系统具有两种推荐功能:
其一是根据用户浏览记录进行商品推荐
其二是根据用户已购买商品的关联商品进行推荐
2.1.2 工作量(人月)
在此阶段需要的参与人员有需求人员、产品经理、系统分析员
此阶段投入2个人工作1个月
工作量:2人*1月=2人月
2.1.3 交付成果
在软件需求分析工作完成后,软件开发者应提交《软件需求分析报告》。客户组织有关人员对需求进行评审,以决定软件需求是否完善和恰当。评审完成后,就可以进入软件的设计阶段。
2.2 软件的概要设计
2.2.1 工作任务内容
购物流程
1)注册用户(注:在欢迎页面,未登陆的用户可浏览商品信息>
2)用户登陆(注:在欢迎页面>
3)浏览商品信息
4)选择购物和数量
5) 选择付款方式
6) 确定购买
7) 系统处理购物单表插入定单表并设置1
8) 定单查询,定单状态为1、3的可以取消,状态为6的付款方式为货到付款的可以取消
9)定单收到后,由客户签收,把定单状态改为2
后台系统管理员流程
1)登陆
2) 修改管理员密码
3)会员用户的删除、修改、添加
4)商品的添加,
5)购买商品的浏览、删除与更新
2.2.2 工作量(人月)
在此阶段需要的参与人员有设计员、开发者
此阶段投入2个人工作2个月
工作量:2人*2月=4人月
2.2.3 交付成果
在软件概要设计工作完成后,软件开发者应提交《软件系统概要设计报告》。在对《概要设计报告》评审通过后,即可进入详细设计阶段。
2.2.4 验收标准
a.一致性
概要设计的要求应该与需求分析报告所描述的需求一致。
b.合理性
概要设计所提出的设计方法和标准应该是合理的、恰当的。
c.可追踪性
对概要设计所提出的各项要求应该可以得到它的清晰的源流
d.可行性
根据概要设计进行详细设计、操作和维护应该是可行的。
2.3 软件的详细设计
2.3.1 工作任务内容
1、用户注册模块的设计与实现
注册模块功能设计介绍
功能:本模块主要用于新用户注册,用户通过表单提供用户名和密码信息,系统根据用户提供的注册信息对用户进行具体操作。
输入操作:用户名、密码、确认密码。
对应处理:
1)输入注册信息:在页面提供的表单处输入用户的用户名和密码信息,点击“注册”按钮提交表单数据信息。已注册用户,可点击“登录”按钮,进入登录页面。
2)用户注册身份验证:连接数据库,以输入的“用户名”数据为查询条件来查看输入用户名是否已存在,如果用户名未注册,则提示注册成功并转到登录页进行登录,如果用户已注册,则给出用户已存在提示并重新注册。
2、购物车界面介绍和草图
商品页面介绍
关于购物车页面,主要展示用户已购买的商品,包括商品的信息、价格、数量,当然用户可以对其中商品进行增加、减少、删除操作,最后,用户可选择对其中商品进行结算,选择结算后,会提示相应的付款金额。
页面草图如下所示:
2.3.2 工作量(人月)
在此阶段需要的参与人员有设计员、开发者
此阶段投入2个人工作2个月
工作量:2人*2月=4人月
2.3.3 数据库设计
Server version: 8.0.25 MySQL Community Server - GPL
本项目的数据库采用Mysql,在前面工作的基础上,根据对其进行的各种分析(包括数据分析),提出数据库建设方案。数据库建模工作主要利用类图建模。
经过分析,依据数据库的规范形式,本着减少冗余的原则,可以整理出该系统所需要的数据库表
2.3.4 交付成果
在软件详细设计完成后,软件开发者应向软件学院提交《软件系统数据库设计报告》和《软件系统详细设计报告》。在软件学院对《软件系统数据库设计报告》、《软件系统详细设计报告》评审通过后,即可进入软件编码阶段。
2.3.5 验收标准
a.一致性
详细设计的要求应该与需求分析报告所描述的需求、与概要设计一致。
b.合理性
详细设计所提出的设计方法和标准应该是合理的、恰当的。
c.可追踪性
对详细设计所提出的各项要求应该可以得到它的清晰的源流。
d.可行性
根据详细设计进行编码、测试、操作和维护应该是可行的。
2.4 软件的编码
2.4.1 工作任务内容
在软件编码阶段,开发者根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。
2.4.2 工作量(人月)
在此阶段需要的参与人员有程序员
此阶段投入4个人工作2个月
工作量:4人*2月=8人月
2.4.3 交付成果
在软件详细设计完成后,软件开发者应向软件学院提交《用户手册》、《操作手册》、《模块开发卷宗》。
2.4.4 验收标准(编程规范及要求)
软件的程序设计必须遵照国家颁布的相关编程规范。
1、可读性第一,效率第二。
2、保持注释与代码完全一致。
3、每个源程序文件,都有文件头说明,说明规格见规范。
4、每个函数,都有函数头说明,说明规格见规范。
5、主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。
6、常量定义(DEFINE)有相应说明。
7、处理过程的每个阶段都有相关注释说明。
8、在典型算法前都有注释。
2.5 软件的测试
2.5.1 工作任务内容
界面测试、可用性测试、功能测试、稳定性(强度)测试、性能测试、强壮性(恢复)测试、逻辑性测试、破坏性测试、安全性测试等。
2.5.2 工作量(人月)
单元测试:程序员
集成测试:开发团队
系统测试:独立的测试团队
此阶段投入5个人工作0.5个月
工作量:5人*0.5月=2.5人月
2.5.3 交付成果
开发者针对单元测试,集成测试,系统测试分别制定《测试计划》。软件测试按照《测试计划》、《需求分析报告》的要求进行,最后形成《软件测试报告》。
2.5.4 验收标准
1)以上比例为错误占总测试模块(不包括E类)的比例。
2)软件产品未经测试合格,不允许投运。
2.6 软件运行与维护
2.6.1 工作任务内容
1.保障业务长期稳定运行(如网站服务器)。
2.保障数据安全可靠(如用户名密码、商品数据、商家信息、交易数据等)。
3.随时解决报警故障。
4.编写一些脚本,监控或完成其他可自动完成功能。
5.运维架构完善,部署一些用起来更方便更可靠或性能更好的开源工具以及制定运维流程规范。
3、人员分工及交接
本人Richard,在团队中所担任的角色是:测试分析师
岗位职责是:
1、编写测试计划、规划详细的测试方案、编写测试用例。
2、根据测试计划搭建和维护测试环境。
3、执行测试工作,提交测试报告。包括编写用于测试的自动测试脚本,完整地记录测试结果,编写完整的测试报告等相关的技术文档。
4、对测试发现的问题进行详细分析和准确定位,与开发人员讨论缺陷解决方案。
5、提出对产品的进一步改进的建议,并评估改进方案是否合理;对测试结果进行总结与统计分析,对测试进行跟踪,并提出反馈意见。
主管领导是:测试经理
工作成果验收人员:测试经理
本人与测试经理需要进行项目工作的交接,内容包括
1、在测试经理的安排和指导下,编写测试用例。
2、在测试经理的安排和指导下,完成“执行测试”的工作。
3、在测试经理的指导下,按测试计划进行测试工作。