项目管理计划(版本1.0) - sekaiiiii/BUCTCS1703SECD GitHub Wiki

软件项目管理计划(版本1.0)

目录


1. 简介

1.1 项目概述

说明:简要综述项目的目标、发布的产品、主要工作活动、主要工作制品、关键里程碑、所需资源、进度和预算等。必要的情况下,还应描述该项目与其他项目的关系

  • 本项目为计科1703班软件工程课程中的课设项目。在完成课程设计的同时旨在让同学们获得编程能力的提高。发布的产品是可使用的安卓的app、web端后台管理系统,相关源代码、技术文档和用户手册等。主要工作是需求分析、系统设计、开发测试。关键里程碑分别为需求规格说明书的发布,系统设计说明书的发布,和系统的交付。项目所需资源为版本控制服务器和个人开发工具,进度大约为8周,预算人工成本为100人天

1.2 项目交付产品

说明:列出主要的可交付产品、交付日期、交付地点和满足项目协议条款所需的质量

  • 项目交付日期:2020年春季学期第14周
  • 交付方式:网盘上传相关文件
  • 博物馆网站数据采集子系统程序
  • 博物馆新闻采集分析子系统程序
  • 博物馆信息服务子系统的安卓端安装程序(apk文件)
  • 博物馆导览子系统的安卓端安装程序(apk文件)
  • 后台管理子系统web客户端
  • 各个子系统系统源代码,用户使用手册、技术文档包、项目进度日志包
  • 项目整体的技术文档包(包括需求规格说明书、系统设计说明书、系统测试说明书、项目总结文档等)
  • 项目日志包(包括开发周记,会议记录等等)

1.3 SPMP演化过程

说明:描述如何以及由谁负责维护本文档,应指明更新内容的传播方式以及在变更控制下更新文档 版本的机制。

  • SPMP文档于第七周第一天由各子系统组长开会讨论得出模板,各小组就自己所管辖实际情况编写SPMP初稿,最后由团长总结汇总得出第一版SPMP,第七周周日上传至github wiki板块。
  • 第八周以后根据项目的进展情况,对其进行修改。

1.4 参考资料

说明:提供项目计划中所引用的所有文档和其他信息资源的完整清单,包括标题、报告编号、日 期、作者以及发布机构。

  • 《软件工程——理论、方法与实践》,孙家广 刘强, 高等教育出版社
  • 《人月神话》,布鲁克斯,清华大写出版社
  • 孙家广学生文档范例
  • 韩万江软件文档范例

1.5 术语与缩写

说明:定义 SPMP所应用的全部术语和缩写词。

  • App: 应用程序
  • Android Studio: Android App开发工具
  • SDK: 软件开发工具包
  • Api: 应用程序接口
    • 子系统名简写:

    • S1:博物馆网站数据采集子系统

    • S2:博物馆新闻采集分析子系统

    • S3:博物馆信息服务子系统

    • S4:博物馆导览子系统

    • S5:后台管理子系统

    • *: 表示所有子系统


2.项目组织

2.1 过程模型

说明:描述该项目所使用的软件过程模型,或者 是所遵循的组织标准模型。过程模型需要指明里程 碑的时间、基线、评审、工作制品、项目交付产品、结束标志等。

alt alt alt

2.2 组织结构

*说明:描述项目的内部组织结构

alt

2.3 组织接口

说明:描述项目与其他组织或部门之间的接口,这些组织或部门包括上级部门、客户组织、分包组织或与项目相关的其他组织,可以参考如下表格表示组织接口关系。

2.4 项目职责

说明:指定主要项目活动的负责人,可以参考如下表格表示项目职责。


角色 职位描述 负责人员
团长 领导项目团队、执行和管理项目、负责项目的交付工作等 谢奇
组长 领导各子系统项目团队、执行和管理项目 田泽鑫&胡以欣&曹锦华&孟玲翔&谢奇
组员 参与软件设计和编写代码以及软件测试等由组长分配的任务 人数较多此处略

3. 管理过程

3.1 管理目标和优先级

说明:描述管理本项目的基本原则、目标和优先级。 每位成员既是积极的建言者,又是负责的合作者。 决策应在充分的讨论基础上做出,并被及时有效的执行。

  • 按时按量完成项目的基本功能,按时发布产品 优先级:1(最高)
  • 遵循规范化的项目运作标准,文档严谨完整,代码注释充分,便于后续维护 优先级:2
  • 产品运行稳定,界面友好易上手,可玩性强 优先级:3
  • 注重团队建设,成员分工合理,合作默契,气氛融洽 优先级:4
  • 项目设计和开发上有创新,营造出卖点 优先级:5

3.2 风险管理

说明:描述将被用来识别、分析和管理那些与项目相联系的风险因素的过程,说明跟踪各种风险因 素和实施偶然计划的机制。这里,应该考虑的风险包 括合同风险、技术风险、产品尺寸和复杂性所带 来的风险、人员获得和保持过程中的风险、以及在使客户接受产品的过程中的风险。


INDEX 风险名称 风险严重性 规避策略 负责人
1 开发技术不熟练 超级严重 各小组组长对项目所需技术进行培训并监督学习 各组长
2 开发人员时间紧张 严重 做好时间规划,提高学习以及开发效率 开发时间紧张的人员
3 需求频繁变更 严重 制定好合适的需求文档 组长团长

  • 风险详细描述
    • 风险1: 在整个项目过程中各子系统采取不同的技术栈,所用开发工具,编程语言都有可能不同,大多数成员对于新的开发工具,开发语言,开发框架不了解,难以直接参与软件开发的过程
    • 风险2: 部分开发成员有各种各样的事情,例如准备考研,其他的项目。导致成员自己可调控时间变少。
    • 风险3: 在需求制定阶段,可能会因为需求分析不全面导致需求变更,此外在设计开发过程中可能发现原有需求不容易转化为设计稿,在测试体验过程中可能发现app并不好用,这都会带来需求的重新变更。

3.3 监督和控制机制

说明:定义报告机制、报告格式、评价和审核机制以及将被用在与SPMP联系在一起的监视和控制 中的其他工具和技术,项目监控包括项目支持功能( 质量保证、配置管理、文档和培训)的监督和控 制机制。

  • 报告机制
    • 各开发过程中、培训负责人以周为单位记录工作进展,形成电子文档报告,上传至文档库。
    • 负责人在每周项目例会做口头总结,小组会议审核通过给出意见,报告修改后上传至文档库
  • 报告格式
    • 暂定报告主题,时间,负责人,报告内容,审核意见
  • 评价和审核机制
    • 每周例会上小组讨论形成一致意见后即为通过,相关负责人针对改进意见开展下一周工作,小组会议持续评估其成效。
    • 每一项目阶段结束之前(里程碑前后),组织一次阶段评审会,评估整个阶段的工作效率和成果 质量。尽量与项目例会合并。

3.4 人员计划

说明:描述项目所需的类型、如何雇佣合适的人员、以及项目团队成员所需的全部培训。


子系统简写 人员类型 计划人数 人员职责或要求 人员来源
* 项目经理 5 领导项目团队、执行和管理项目、负责项目的交付工作等 各子系统组长
S1 Python程序员 2 熟悉Python编程并进行开发 曹锦华&周强柱
S1 文案人员 2 负责项目各类文档编写 李宇洋&李霄
S2 爬虫程序员 5 编写程序从网站上爬取新闻 王棨玢&张俊峰&孟铃翔&黄帅旺&王思远
S2 机器学习程序员 2 将爬取的新闻数据进行过滤 孟铃翔&黄帅旺
S2 文档人员 1 负责项目各类文档编写 王思远
S3 需求分析员 2 整理需求分析并撰写需求分析文档 叶黎&刘行
S3 UI工程师 2 据需求分析做出界面设计;将设计图进行代码实现(待定) 叶黎&刘行
S3 客户端开发程序员 3 按UI设计搭建客户端项目,编写代码,生成客户端程序;自测保证程序可用;和组内外服务端约定接口格式 车子杰&史新玮&胡以欣
S3 文案人员 1 负责项目各类文档编写 曹健
S3 测试人员 1 进行软件测试 S3全体组员
S4 组件开发程序员 1 将ui工程师的设计图进行代码实 许航
S4 接口开发程序员 1 完成对接口的网络请求和本地数据存储等工作 万军霞
S4 UI工程师 1 根据需求文档做出设计图 王琦
S4 产品策划经理 1 将需求转化为需求文档并撰写更新需求文档 王沛智
S4 文案人员 1 负责项目各类文档编写 张正发
S4 测试人员 1 进行软件测试 张正发
S5 WEB前端开发程序员 3 了解并能使用VUEJS+ELEMENTEUI进行WEB前端开发 罗威&王燎炳&谢奇
S5 NodeJS后端程序员 3 了解并能使用Nodejs进行整个项目的服务端开发 龙俊至&刘学海&谢奇
S5 Linux运维人员 1 了解并熟悉Linux下各种环境的配置并进行维护 谢奇
S5 文案人员 1 负责项目各类文档编写 齐焱

4. 技术过程

4.1 方法&工具&技术

说明:明确计算系统、开发方法、标准、策略、过程、团队结构、编程语言以及其他符号、工具、 技术以及方法,这些将被用来指定、设计、建立、测 试、集成、记录、传输、调整或维护项目可交付 的工作。

  • S1

    • 编程语言为 python;采用面向对象的分析设计方法;利用 UML 进行系统建模;统一文件命名、代码版式、注释等编码规范;
    • 开发环境为 python+requests+BeautiSoup4
  • S2

    • 本小组的团队组织结构为主程序员式组织结构;编程语言为python;统一文件命名、代码版式、注释等编码规范;编码人员进行代码检查查后再进行代码编译;测试人员根据测试文档进行单元测试;最后实现软件的交付。
  • S3

    • 采用面向对象的分析设计方法;利用UML进行系统建模;统一文件命名、代码版式、注释等编码规范;通过GitHub实现项目管理;编码人员进行代码走查后再进行代码编译;测试人员根据测试文档进行单元测试;最后实现软件的交付。
    • 开发环境:Java + Android Studio
  • S4

    • S4团队组织结构为主程序员式组织结构;编程语言为 java;采用面向对象的分析设计方 法;利用 UML 进行系统建模;统一文件命名、代码版式、注释等编码规范;通过github实现项目管理,编码人员进行code review后再进行代码编译;测试人员根据测试文档进行单元测试;最后实现软件的交付。
  • S5

    • S5团队采用前后端分离开发方式进行开发。
    • 前端
      • 开发技术:Html+Css+JavaScript+Vue.js+Element-UI
      • 开发工具:根据自己使用习惯制定
    • 后端
      • 开发技术:NodeJs+Express
      • 开发工具:根据自己使用习惯制定

4.2 软件文档

说明:列出所有的项目文档,以及这些文档所使用的同行评价类型。典型的项目文档包括软件需求 规格说明、软件设计说明、软件测试计划等。

  • 软件项目管理计划文档
    • 该文档由团长汇总完成,介绍项目的整个管理过程。
    • 该文档在需求分析阶段开始完成,在后续每个阶段更新。
  • 需求规格说明文档
    • 在需求分析阶段,由产品经理分析收集用户需求,其他组员进行补充,由组长负责编写规格说明文档,在后续的设计和开发阶段不断更新。
    • 该文档主要内容为:功能需求,性能要求,数据处理要求,软件运行需求等。
  • 软件设计文档
    • 在总体设计阶段,小组根据需求规格说明文档,完成软件体系结构的设计,编写体系结构设计文档,并在后续开发阶段补充和更新。
    • 该文档由开发人员负责编写。
  • 软件测试文档
    • 在软件开发阶段,测试人员需要编写测试规格说明文档,并在后续测试阶段更新。
    • 开发人员将根据测试规格说明文档建立测试环境。
  • 用户文档
    • 在需求分析阶段,产品经理需要开始着手编写用户手册,并在需求分析结束后需要形成初稿;在后续阶段不断更新用户文档;并在系统交付阶段随着系统一起被交付。
  • 项目周记
    • 贯穿软件开发始终,记录会议内容,项目进度,问题及解决方法等。
    • 由文档整理的负责人员编写

4.3 用户文档

说明:列出如何计划和开发用户文档,包括为在线书面文档、在线帮助、网络可访问文件以及支持 设备而设计的工作。

在需求分析阶段,测试人员需要开始着手编写用户手册,并在需求分析结束后需要形成初稿;在后续阶段不断更新用户文档;并在系统交付阶段随着系统一起被交付。

4.4 项目支持功能

说明:为软件项目直接提供或者通过引用方式提供支持功能的计划,例如配置管理、软件质量保证 以及验证和检验。

  • 为方便开发和保证软件产品质量,本项目采用GitHub对项目进行管理,保证项目的版本不冲突
  • 在开发阶段结束后,开发人员之间会进行代码走查,减少 bug,并在测试阶段跟新源代码。
  • 测试人员根据测试文档进行软件测试,提高软件的正确性。

5. 工作包&进度表

5.1 工作包

说明:为必须完成的活动和任务指定工作包,目的是满足项目协议。

alt

5.2 依赖关系

说明:描述工作包之间的次序关系,目的是解决这些工具包之间的互相依赖关系和对外部事件的依 赖性。

  • 组织团队是完成软件项目的前提,明确分工负责;
  • 开发期间测试运行环境建立是为编码开发以及编码测试做好充分准备;
  • 配置管理贯穿于整个软件开发和测试过程;
  • 需求分析是软件项目进入开发阶段的重要标志;
  • 系统设计是基于需求分析的基础上,又是编码的原理依据;
  • 编码测试是软件开发进展的重要过程;
  • 交付阶段是软件获得客户的认可,是软件开发结束的标志。

5.3 进度表

说明:为各种项目功能、活动和任务提供进度安排,考虑优先权关系和所需的重大事件日期。

alt