1.引言
1.1编写目的
编写目的:
(1.) 确定项目目标和范围:这份计划书旨在明确网上书城软件项目的目标和范围,确保所有相关方对项目的理解和期望一致。
(2.) 规划项目进度和资源分配:通过详细的项目计划,可以合理规划项目的进度,并合理分配项目所需的资源,包括人力资源、技术资源和财务资源等。
(3.) 确定项目风险和应对措施:计划书中应包含对项目可能面临的风险的识别和评估,并提出相应的应对措施,以降低项目风险对项目实施的影响。
(4.)指导项目执行和管理:本计划书将成为项目团队执行和管理项目的重要指南,包括任务分配、进度控制、质量管理等方面的内容。
预期读者:
(1.) 项目经理:作为项目的负责人,项目经理需要了解整个项目的目标、范围、进度和资源分配等信息,以便能够有效地领导和管理项目团队。
(2.) 开发团队成员:开发团队成员需要清楚了解他们的责任和任务,以便能够按时高质量地完成各自的工作。
(3.) 测试团队成员:测试团队成员需要了解测试的范围和标准,以便能够进行有效的测试工作。
(4.)高级管理层:对于高级管理层来说,计划书提供了对项目的概览和决策依据,帮助其评估项目的可行性和风险,并做出相应的决策。
1.2重要术语
(1)WBS:Work Breakdown Structure,任务分解结构,是面向可交付成果的对项目元素的分组,它组织并定义了整个项目的范围。
(2)OBS:Objectives-Based Breakdown Structure,目标分解结构,是基于项目目标的对项目元素的分组,它组织并定义了项目的工作内容。
(3)PMBOK:Project Management Body of Knowledge,项目管理知识体系,是由美国项目管理协会(PMI)制定的一套标准,包括10个知识领域和5个过程组。
(4)Gantt Chart:甘特图,是一种用于可视化项目时间表和进度的图表。
(5)PERT:Program Evaluation and Review Technique,项目评估和审查技术,是一种用于评估和审查项目进度和成本的方法。
2.项目概述
2.1项目开发背景及意义
为了实现图书购买的方便、快捷、送货上门等服务为前提综合信息服务系统的设计。随着互联网的迅速发展以及我国经济的稳定平衡发展,人们对于知识的追求也越来越高,因而市场场上出现了各类的图书,但由于各种各样的原因使得消费者在选购图书的时候不能找到自己合意的书籍,同时由于网络经济的迅速发展激生出了网上卖书的现象,由于网上书城里面的图书相当丰富,且价格较市场上的书店里的便宜,以致于越来越多的人上网购书,同时也使得越来越多的人在网上开设自己的书店。
2.2项目初始范围
项目初始范围:
(1)系统用户:本项目的用户主要包括图书管理员、书店员工和普通消费者。
- 图书管理员:负责图书的上架、下架、管理库存以及处理订单等工作。
- 书店员工:负责协助图书管理员完成图书管理任务,并为客户提供咨询和售后服务。
- 普通消费者:可以在网上书店浏览和搜索图书,进行在线购买,并享受送货上门的服务。
(2) 系统基本功能:
- 图书浏览与搜索:用户可以在系统中浏览各类图书,并通过关键字搜索找到自己感兴趣的图书。
- 图书详情展示:用户可以查看图书的详细信息,包括作者、出版社、出版日期、简介等。
- 购物车与结算:用户可以将感兴趣的图书添加到购物车中,并进行结算操作以完成购买。
- 订单管理:用户可以查看自己的订单状态,包括订单处理进度、配送信息等。
- 付款方式:系统支持多种付款方式,如支付宝、微信支付等。
- 用户评价与反馈:用户可以对购买的图书进行评价和留言,同时可以向系统提供反馈意见和建议。
2.3项目生存期模型选择
图2-1 瀑布模型
当网上书城系统采用瀑布模型进行开发时,以下是各个阶段的任务描述:
(1)需求收集阶段:
与客户或用户密切合作,收集并分析他们的需求和期望。
定义系统所需的功能、界面设计、性能要求等方面的需求。
编写详细的需求文档,明确系统的功能和约束条件。
(2)系统设计阶段:
需求文档,设计系统的整体架构和模块划分。
定义系统中每个模块的功能、输入输出、数据结构等。
编写系统设计文档,包括架构图、模块设计、接口规范等。
(3)编码实施阶段:
根据系统设计文档,开始编码实现系统的各个模块。
使用所选的编程语言和开发工具进行编码作业。
编写文档和注释以保证代码的可读性和可维护性。
(4)测试阶段:
进行单元测试,验证每个模块的功能和正确性。
集成已完成的模块,并进行集成测试,确保模块之间的协作正确。
进行系统测试,验证整个系统是否满足功能和性能要求。
(5)部署和维护阶段:
将系统部署到生产环境中,以供用户访问和使用。
监控系统的性能和稳定性,进行必要的维护和更新。
处理用户反馈和bug修复,确保系统持续运行。
2.4开发技术的选择及其优势
后端开发技术:Python
前端开发技术:HTML
Web框架:Django
数据库开发技术:
MySQL:MySQL是一个性能良好且可靠的关系型数据库管理系统,可用于存储书籍、用户信息和其他相关数据。它提供了高效的查询和事务处理功能,适合处理大量的结构化数据。
技术优势:
使用成熟的Web框架可以快速搭建系统的基础架构,并提供丰富的功能库和扩展插件,加速开发过程。
关系数据库管理系统提供了强大的数据管理和查询功能,适用于处理具有复杂关系的数据。
3.项目范围计划
3.1用户需求概述及系统主要功能
用户注册和登录:用户能够注册新账户并使用已注册的账户登录系统。
浏览和搜索图书:用户可以浏览图书的列表,并能够通过搜索功能查找特定的图书。
图书分类:图书可以按照类型进行分类,方便用户浏览和筛选。
图书详情和评价:用户能够查看每本图书的详细信息,包括封面、描述、作者等,并能够阅读其他用户的评价和评论。
购买图书:用户可以将喜欢的图书添加到购物车并完成购买流程。
订单管理:用户能够查看订单历史记录并跟踪订单的状态和配送情况。
个人资料管理:用户可以编辑个人资料、修改密码和管理收货地址等信息。
推荐系统:系统能够根据用户的浏览和购买历史,向用户推荐相关的图书或热门图书。
支付和结算:用户能够选择合适的支付方式,并完成订单的支付和结算过程。
优惠和促销活动:系统能够提供优惠券或促销活动,供用户在购买图书时享受优惠。
图3.1功能模块图
3.2开发环境
服务器硬件配置:
(1.)处理器(CPU):至少具备多个核心的高性能处理器,如Intel Xeon或AMD Ryzen系列。
(2.)内存(RAM):建议至少16GB或以上,以支持项目的运行和并发访问需求。
(3.)存储:建议使用固态硬盘(SSD)以提供更快的读写速度,同时提供足够的存储容量来存储网上书城的数据和媒体文件。
(4.)网络:具备快速、稳定的网络连接,以确保用户能够快速访问网站。
软件环境:
(5.)操作系统:Linux的操作系统。如Ubuntu Server该系统通常具有良好的稳定性和安全性。
(6.)开发工具:IntelliJ IDEA,以提高开发效率。
(7.)开发语言:Java。
(8.)后端框架:Spring
(9.)前端技术:可以使用HTML、CSS和JavaScript的组合来搭建网上书城的用户界面,并借助流行的前端框架和库,如React、Vue.js等。
(10.)数据库平台:MySQL用于存储书籍信息、用户信息和订单数据等。
3.3基于系统功能分解的WBS方案
表3-1:功能WBS表
序号 | 系统功能模块名称 | 功能简述 | 责任人 |
1 | 用户管理模块 | 注册功能,登录功能,个人资料管理功能,密码重置功能 | A |
2 | 图书管理模块 | 图书浏览功能,图书搜索功能,图书分类和标签功能,图书详情展示功能,评价和评论功能 | B |
3. | 购物车管理模块 | 添加图书到购物车功能,编辑购物车功能,结算购物车功能 | C |
4. | 订单管理模块 | 查看订单历史记录功能,订单状态跟踪功能,退款管理功能 | D |
5. | 推荐系统模块 | 相关图书推荐功能 | E |
6. | 支付和结算模块 | 选择支付方式功能,订单支付和结算功能 | F |
7. | 促销和优惠模块 | 优惠券和促销活动管理功能,优惠券应用功能 | G |
3.4基于项目开发过程的WBS方案
表3-2:过程WBS表
序号 | 阶段任务 | 任务起止日期 | 责任人 | 参与人 | 阶段性成果 |
1. | 需求分析 | 2023.09.20-2023.09.21 | 项目经理 | 项目团队 | 项目计划文档、需求文档、范围说明文档 |
2. | 设计 | 2023.09.22-2023.10.02 | 系统设计师、数据库设计师、UI/UX设计师 | 开发团队、UI/UX设计团队 | 系统架构设计文档、数据库设计文档、用户界面设计稿 |
3. | 实施 | 2023.10.03-2023.10.18 | 前端开发人员、后端开发人员、数据库开发人员、系统管理员 | 开发团队、测试团队 | 前端代码、后端代码、数据库搭建完成的测试环境 |
4. | 测试 | 2023.10.19-2023.10.25 | 测试团队 | 开发团队 | 测试用例文档、测试报告、修复缺陷的代码 |
5. | 维护 | 2023.10.26-2023.11.07 | 运维团队、技术支持人员 | 开发团队 | 维护记录、问题解决方案文档、用户支持记录 |
4.软件成本估算
4.1项目规模估算
项目采用功能点估算方法进行项目规模估算:
该软件项目的14个技术复杂度因子的影响程度分别是,数据通信影响值为3,终端用户效率影响值为4,跨平台影响值为1,其它技术因子的影响值均为2。
表4-1 项目的功能计数项
组件级别 组件类型 | 低 | 中 | 高 |
外部输入 | 3 | 1 | 0 |
外部输出 | 2 | 0 | 1 |
外部查询 | 2 | 1 | 2 |
外部接口文件 | 1 | 2 | 1 |
内部逻辑文件 | 2 | 1 | 1 |
表4-2 计算UFC
组件级别 组件类型 | 低 | 中 | 高 | |
外部输入 | 3*3 | 1*4 | 0*6 | |
外部输出 | 2*4 | 0*5 | 1*7 | |
外部查询 | 2*3 | 1*5 | 2*6 | |
外部接口文件 | 1*5 | 2*7 | 1*10 | |
内部逻辑文件 | 2*7 | 1*10 | 1*15 | |
总计 | 42 | 33 | 44 | |
UFC | 119 |
由表4-2得出UFC=119
- TCF=0.65+0.01*(3+4+1+11*2)=0.95
- FP=UFC*TCF=119*0.95=113
所以本项目的功能点数为113个。
4.2项目成本估算
(1)直接成本(包括开发成本和管理成本)
a.开发成本(假设项目的生产力PE=20工时/功能点,每个工时的成本为250元/工时)
开发成本=FP*PE*250=113*20*250=565000元
b.管理成本(假设项目管理成本为开发成本的10%)
管理成本=565000*10%=56500元
(2)间接成本
假设间接成本系数为a=0.1
间接成本=直接成本* a = (565000+56500)x0.1=62150元
(3)项目总成本
项目总成本=直接成本+间接成本=565000+565000+62150=683650元
5.项目进度计划
5.1进度估算
图5-1 网络图
根据前一阶段制定的过程WBS以及项目生存周期模型(瀑布模型),选择关键路径法:
项目历时:35天
项目开始时间:2023.09.20
项目结束时间:2023.11.07
需求分析:2023年9月20日-2023年9月21日
设计:2023年9月22日-2023年10月2日
实施:2023年10月3日-2023年10月18日
测试:2023年10月19日-2023年10月25日
维护:2023年10月26日-2023年11月7日
5.2进度计划
图5.2甘特图
6.项目团队及沟通计划
6.1项目团队的组织结构
图6-1软件项目组织结构
其中:
高层领导:
负责制定战略方向
负责决策制定
合同管理者:
负责起草、审批、执行和监督项目相关的合同。
负责项目对外的商务协调。
项目经理:
负责规划、执行和控制项目的各个阶段。
负责资源分配、进度管理、风险评估、沟通协调等工作。
需求分析团队:
负责收集、分析、记录和管理项目的需求。
负责将需求传达给开发、设计和测试团队。
开发团队:
负责系统架构设计、数据库设计、用户界面设计。
负责前端开发、后端开发、数据库开发、部署测试环境
负责网上书城系统的集成和调试。
质量保证团队:
编写测试用例、功能测试、性能测试、安全性测试、修复缺陷
负责根据过程规范制定检查表、控制项目开发过程。
负责确保项目交付的产品或服务符合预期质量标准。
运维团队:
负责确保项目交付后的系统持续稳定运行。
负责系统维护、问题排查与修复、用户支持
6.2项目团队成员及职责
表6-1: 责任分配矩阵(RAM)
单位 | WBS任务 | ||||
制定项目计划、需求分析和范围定义 | 系统架构设计、数据库设计、用户界面设计 | 前端开发、后端开发、数据库开发、部署测试环境 | 编写测试用例、功能测试、性能测试、安全性测试、修复缺陷 | 系统维护、问题排查与修复、用户支持 | |
需求分析团队 | RP | ||||
开发团队 | RP | RP | |||
质量保证团队 | RP | ||||
运维团队 | RP |
注:R表示负责者,P表示执行者
表6-2: 人员职责描述表
序号 | 名称 | 人员数量 | 组长 | 职能 |
1 | 需求分析团队 | 3 | 李莲花 | *制定项目计划:规划团队负责创建项目计划,包括项目的时间表、里程碑和资源分配,确保项目按计划进行。 *需求分析:进行详细的需求分析,与利益相关者合作,以确保项目满足业务需求。 *范围定义:明确定义项目的范围,包括功能和特性,以确保项目交付符合预期。 |
2 | 开发团队 | 10 | 雷无桀 | *系统架构设计:设计系统的整体架构,包括技术堆栈和组件之间的关系,以确保系统的可扩展性和性能。 数据库设计:设计数据库结构,包括表、关系和查询,以支持应用程序的数据存储和检索需求。 *用户界面设计:设计用户界面,以确保用户友好性和用户体验。 *前端开发:编写前端应用程序,实现用户界面和交互功能。 *后端开发:编写后端应用程序,处理业务逻辑和数据交互。 *数据库开发:负责数据库的开发和维护,包括编写SQL查询和存储过程。 *部署测试环境:将应用程序部署到测试环境,以进行系统测试和验证。 |
3 | 质量保证团队 | 3 | 萧瑟 | *编写测试用例:创建详细的测试用例,覆盖各个方面的功能和性能需求。 *功能测试:执行功能测试,验证系统是否满足功能需求。 *性能测试:进行性能测试,评估系统的性能和响应时间。 *安全性测试:执行安全性测试,确保系统的安全性和数据保护。 *修复缺陷:与开发团队合作,报告和跟踪缺陷,确保它们得到及时修复。 |
4 | 运维团队 | 4 | 无心 | *系统维护:负责系统的日常维护,包括更新、补丁管理和性能优化。 *问题排查与修复:监视系统,识别并排查问题,并采取必要措施来修复它们。 *用户支持:提供用户支持,响应用户的问题和需求,确保用户满意度和系统的可用性。 |
6.3沟通计划
项目沟通分为外部协调和内部沟通。
(1)外部协调
对于外部协调,应注意以下两点:
<1>原则上由合同管理者负责与客户进行协调。为减少交流成本,项目人员也可直接与用户联系,但必须将联系内容通报合同管理者和项目助理,并由项目助理记入沟通记录。
<2>建立周三、五定期报告制度,由项目管理者向客户进行工作汇报,报告内容包括项目进展状态、下步安排、项目管理问题协商等。联系方式为E-mail,突发事件可通过电话联系。E-mail地址格式如下:
我方:1467817882@qq.com
客户:18609145506@163.com
E-mail标识:WeeklyReport-mmdd,其中mmdd表示月日,使用两位数字表示,如0505表示5月5日。
(2)内部沟通
<1>每日站立会议
会议时间:每天早上9点钟。
会议目的:
1)协调每日任务,讨论遇到的问题。
2)任务版能够帮助团队聚焦于每日活动之上,要在这个时候更新任务板。
基本要求:
1)项目团队所有成员必须参加。
2)每天15分钟,同样时间,同样地点。
3)团队成员需要认真聆听他人发言,并且认真思考问题。
会议输出:
1)团队成员都明确自己的工作任务,确定最新的任务板、燃尽图。
2)得到最新的产品阶段状况。
(3)沟通方式说明
为保证项目管理的有效进行,建立沟通事件记录通报制度,事件包括与用户的电话记录各方建议等。事件记录由项目助理负责,并于每周三和周五提交项目管理者,用于向合同管理者汇报。
<1>邮件沟通
邮件沟通在项目实施过程中是使用最频繁的沟通方式,邮件沟通约定如下:
1)邮件收件人为对邮件内容必须知晓或对邮件必须反馈的人员。
2)邮件抄送人为对邮件内容了解或对邮件可以但不强制反馈的人员。
3)邮件收件人和抄送人的顺序依据组织架构内容,同组的人员放在一起,组内职级最高的人员决定小组位置,并列关系的组按先业务后信息的原则排列。
4)邮件主题“[”+组织结构名称+“-”+邮件主题目“]”+邮件子题目。
5)邮件正文分为几种类型,邮件正文格式如下表:
表6-3 邮件正文格式
称谓,大家好 主要内容清晰无歧义 落款 日期 联系方式 |
<2>电话沟通
电话沟通时要清晰无歧义。电话沟通的结果(如需要)可以以邮件方式记录后发给相关人员。
<3>文件沟通与口头沟通
文件沟通特指通过纸质文件进行沟通的方式,在满足公司纸质文件流转规定的同时尽快推进。口头沟通时,遇到争议暂无法解决的问题,先记录下来之后讨论。口头沟通的结果(如需要)可以以邮件方式记录后发给相关人员。
7.软件质量保证计划
7.1质量目标
质量管理客观地核实软件项目的实施行动与开发的产品遵从于对应的需求、过程描述、标准及规程,提前发现并排除项目中存在的问题和缺陷,保证项目的实施质量,具体目标包括:
(1)通过监控软件开发过程来保证产品质量。
(2)保证开发的软件和软件开发过程符合相应标准与规程。
(3)保证软件产品、软件过程中存在的不合理问题得到处理,必要时将问题反映给管理者。
(4)确保项目组制定的计划、标准和规程适合项目组需要,同时满足评审和审计需要。
7.2质量管理角色及其职责
质量管理涉及的主要角色包括项目质量管理员、PMO质量管理专员、各小组组长或项目经理、项目配置管理员,PMO总体管理组。各主要角色的职责范围如表7-1所示。
表7-1 质量管理角色职责表
角色名称 | 职责范围 |
项目质量管理员 | 制定质量管理办法、质量评估计划和标准:按照质量评估计划,执行项目质量评估,登记质量问题表,并形成质量评估报告;根据项目需要,参与质量评估小组,进行项目关键交付物的评估;组织制定质量评估问题的改善行动计划。并指导和监控行动计划的有效执行 |
PMO质量管理员 | 根据PM0发布的质量管理办法,协助项目维制定项目质量管理计划:根据质量评估活动发现的问题和缺陷,组织各项目组制定改善行动计划;制定整体工程项目群的质量评估计划;支持PM0对各项目的评估检查工作;根据项目组质量改善计划指导质量改善行动 |
各小组组长或项目经理 | 负责审核本项目质量监控流程、质量管理办法;负责本项目所有交付物的中间文档、最终文档的内容的质量;负责本项目质量评估问题的改善行动计划的执行,针对项目质量管理员提出的不符合问题协调项目组成员进行整改 |
项目配置管理员 | 负责质量管理相关的文档存储 |
PMO总体管理组 | 审批质量管理计划及重大问题的改善行动计划,针对PMO质量管理专员上报的重大问题协调解决 |
7.3质量管理流程
图7-1 质量管理流程图
流程说明:
在项目实施过程中,每个项目成员都要对自己工作成果的质量负责,并且每个项目成员都是质量管理过程的参与者。小组负责人或项目经理参照质量管理办法执行质量保证活动,接受质量管理岗的评估检查,对质量评估反馈的缺陷进行修改和完善,并及时提交修改后的交付物,记录并存档质量保证活动的相关文档,以便于回溯查询。项目质量管理员需要根据工程项目总体计划,制定整体工程项目的质量管理计划,并按照计划执行项目质量保证活动(各项目质量评估),反馈质量评估的缺陷,并监督、指导质量改善行动。
质量管理计划:
●依据项目进度计划确定要评审的活动和审计的产品。
●确定QA评审和审计的方式及所需资源。
●根据项目情况、历史经验确定QA工作重点。
●必要时QA根据项目情况调整QA计划。
质量评估:
●确定项目每个阶段质量评估的指标。
●依据QA计划中确定的评审和审计方式执行计划中的QA活动,并保证计划中标注为工作重点.的活动和工作产品的评审和审计活动正常执行。
●把评审、审计活动记录、发现的不符合问题记录到QA计划中。
●QA根据问题等级判断准则确定问题的等级。
质量改善:
●QA向小组负责人或负责人报告不符合问题,协商解决措施,并将槽施记录到QA计划中。●QA针对重大问题制定改善行动计划并报PMO总体管理组批准。
跟踪不符合问题的解决情况,直至问题解决。
●定期对不符合问题的数据进行统计分析,并提出解决措施。
质量周报:
●统计本周发现的和上周遗留下来的不符合问题。
●记录本周的主要工作内容。
●记录本周的主要问题及解决措施。
●总结本周的工作经验,提出对QA工作的意见和建议。
●制定下周的工作计划。
7.4质量管理活动
表7-2 过程审核计划
阶段 | 对象 | 执行过程 审计频率 | 每周 | 每月 | 事件驱动 |
需求 | 需求分析 | 获得和确认需求 | √ | ||
软件需求开发 | √ | √ | |||
软件需求评审 | √ | ||||
建立软件需求基准 | √ | ||||
设计 | 架构设计 | 决策分析 | √ | ||
进行架构设计 | √ | √ | |||
架构设计评审 | √ | √ | |||
建立架构设计基准 | √ | √ | |||
系统设计 | 进行系统设计 | √ | |||
建立系统设计基准 | √ | ||||
开发 | 编码 | 编码 | √ | ||
系统集成 | √ | ||||
代码评审 | √ | ||||
测试 | 集成测试 | 进行集成测试 | √ | ||
错误修正 | √ | ||||
系统测试 | 进行系统测试 | √ | |||
错误修正 | √ | ||||
维护 | 系统维护 | 进行系统维护 | √ | √ |
表7-3产品审计计划
阶段 | 对象 | 执行过程 审计频率 | 每周 | 每月 | 事件执行 | |
需求 | 需求分析 | 需求文档 | √ | |||
软件需求开发文档 | √ | |||||
软件需求评审记录 | √ | |||||
软件需求基准 | √ | |||||
设计 | 系统设计 | 架构设计文档 | √ | |||
系统测试设计文档 | √ | |||||
集成测试设计文档 | √ | |||||
系统设计文档 | √ | |||||
开发 | 系统编码 | 商家模块代码 | √ | |||
买家模块代码 | √ | |||||
测试 | 集成测试 | 集成测试 | 集成测试问题卡 | √ | √ | |
错误修正后的源代码 | √ | √ | ||||
系统测试 | 系统测试 | 系统测试问题卡 | √ | √ | ||
错误修正后的源代码 | √ | √ | ||||
维护 | 系统维护 | 进行系统维护 | √ | √ |