
详细设计说明书
1 引言 4
1。1 编写目的 4
1。2 背景 4
1.3 定义 4
1。4 参考资料 5
2 总体设计 5
2。1 需求概述 5
2。2 系统架构 6
2。3 数据库结构 7
3 程序功能设计 7
3.1 项目管理 7
3。1.1 项目申报 7
3。2 尚未解决的问题 17
4 附件 17
文件信息
| 编写者 | 雒凡 | 编写日期 | 2014—6-10 |
| 审核者 | 审核日期 | ||
| 批准人 | 批准日期 |
| 日期 | 作者 | 版本 | 变更说明 |
| 日期 | 审阅者 | 意见 |
1.1 编写目的
项目管理系统详细设计是设计的第二阶段,这个阶段的主要任务是在项目管理系统概要设计说明书的基础上,对概要设计中产生的功能模块进行过程描述,设计功能模块的内部实现细节,包括算法和详细数据结构,为编写源代码提供必要的说明.
概要设计解决了软件系统总体结构设计的问题,包括整个软件系统的结构、模块划分、模块功能和模块间的联系等。详细设计则要解决如何实现各个模块的内部功能,即模块设计.具体地说,模块设计就是要为已经产生的项目管理系统中的各个子系统/模块设计详细的实现方法.但此阶段并不要求采用具体的系统实现阶段所用的语言编码和各类脚本,他只是对实现细节进行精确的描述,这样在编码就可以将详细设计中对功能实现的描述直接翻译、转化为用具体程序开发语言编写的程序。
1。2 背景
目前国内企业对项目管理水平和方法越来越重视,而合适的项目管理软件在其中起了极其重要的作用。处在迅速扩张阶段的中小型企业,大部分都存在管理瓶颈,其具体表现在项目目标制定不明确,任务分解不清楚,责任不落人,工作进度无法追踪等。
为了解决以上问题,达到项目立项标准化,任务执行透明化,任务进度可跟踪,任务结果可追溯的目的,就需要构建一个指标与项目管理的综合性平台来实现管理闭环。
1。3 定义
Web App Web应用程序
View 表示层
BLL 业务逻辑层
DAL 数据访问层
Model 实体层
1。4 参考资料
项目管理系统—-需求规格说明书,作者:武智;
项目管理系统--概要设计说明说,作者:檀志兵;
2 总体设计
2.1 需求概述
项目管理系统是建立在统一集成的平台之上,涵盖项目立项、执行和结项的全过程,特别关注项目计划的执行,具有项目计划的制定与跟踪,项目审批的流程管理、项目预算成本、沟通、风险、人员、知识等多要素的管理功能,不仅可以供公司高层、项目经理使用,也是项目成员、财务、运管部门等各相关个部门及其他所有项目干系人共同工作的平台.
2。2 系统架构
2。3 数据库结构
3 程序功能设计
3.1 项目管理
本章节为项目管理模块各功能的详细设计说明.
3。1.1 项目申报
3.1.1。1 程序描述
本功能用于发起一个新项目,由项目经理进行操作。需要完成“标的填报”、“任务分配”、“风险评估”以及“里程碑”四部分内容的填写。其中“标的填报”为必填内容.
点击“申报"按钮后弹出申报表单,“标的填报"、“任务分配"、“风险评估”以及“里程碑”四项内容在页面上以四个选项卡的形式依次展现。填写完成后点击“确定"按钮进行提交.
程序拿到表单数据进行必要验证,如果验证通过则保存,验证不通过则提示用户修改并重新提交数据。
程序根据保存结果在界面给用户以相应提示。
3。1.1.2 功能
| 系统:项目管理 | 设计人:雒凡 |
| 模块:项目管理 | 日期:2014-06—11 |
| 上层调用模块: 无/浏览器/用户 | 调用的下层模块: 无/数据库访问组件 |
| 输入: HTML Form | 输出: 保存数据,返回成功或失败 |
| 局部数据元素: 无 | 注释: |
3。1.1.3 输入项
浏览器端Post请求携带的表单数据,详细信息见下表.
| 名称 | 标识 | 数据类型 | 有效范围 | 输入方式 | 输入媒体 | 输入数据来源 | 安全保密条件 | 数量 | 频度 |
| 表单数据 | Request。Form | Collection | 手动输入 | 键盘、鼠标 | 无 | 无 | 1 | 待定 |
| 名称 | 标识 | 数据类型 | 有效范围 | 输出方式 | 输出媒体 | 对应图形符号说明 | 安全保密条件 | 数量 | 频度 |
| 项目申报数据 | 无 | DB Row | 自动输出 | 无 | 无 | 1.。* | 待定 | ||
| 操作结果 | Flag | Bool | True False | 自动输出 | 无 | 无 | 1 |
前端
封装表单数据,并以AJAX形式提交到服务端,代码逻辑示意如下:
后端
1、 类图
主要属性、方法说明——
| 接口/类 | 接口/类说明 | 属性/方法 | 说明 |
| ProjectPersonMapping | 用于分解项目和账户的多对多关系 | ProjectID | 引用项目表主键 |
| User_ID | 引用账户表主键 | ||
| TaskMilestoneMapping | 用于分解任务和里程碑的多对多关系 | PlanTaskID | 引用任务表主键 |
| MilestoneID | 引用里程碑表主键 | ||
| PlanTask | 项目中的计划任务明细,每个任务还可以有若干子任务 | ProjectID | 表示当前任务属于哪一个项目 |
| ParentID | 表示当前任务的父任务,可以为空 | ||
| TotalParentID | 表示当前任务归属于哪个主任务 | ||
| ProjectAdd | 申报项目页面的后置类 | AddProject(ProjectApply pa) | 接收一个项目申报对象,并调用业务逻辑层代码将其保存到数据库中 |
| ProjectBLL | 项目管理的业务逻辑类 | DataTableToList(DataTable dt):List〈ProjectApply〉 | 遍历dt中的所有DataRow,将其封装为一个List |
| Exists(int projectId):bool | 判断是否存在projectId所表示的项目记录.True:存在;False:不存在 | ||
| IProjectDAL | 定义项目管理模块的数据访问类的接口 | ChangeState(int pId,string state):bool | 根据传入的状态编码state修改由Id指定的项目的状态,并返回操作结果. |
| DataRowToModel(DataRow dr):ProjectApply | 跟据DataRow对象封装ProjectApply对象 |
3。1。1。6 接口
1、 代码接口:
无
2、 调用层次:
3.1。1。7 存储分配
本模块由其自动分配内存。
3.1。1。8 注释设计
加在模块首部的注释;
加在各分枝点处的注释;
对各变量的功能、范围、缺省条件等所加的注释;
对使用的逻辑所加的注释等等.
3。1.1。9 条件
用户已登录,服务器Session中用户相关信息没有超时/丢失。
3.1.1.10 界面原型设计
1、 项目申报-—标的填报
2、 项目申报—-计划任务
3。1.1。11 测试计划
对本单元进行单元测试。
进行黑盒测试,检验能否实现功能。输入正确的条件,预期结果,输出信息.输入错误的条件,预期结果,无法输出信息,提示输入正确条件。
进行白盒测试,检验各程序路径是否能执行到。
3。2 尚未解决的问题
需求中的问题在本设计中已经全部实现,但是,基于一般的考虑,并且在开发过程中可能会出现功能不完善或者是功能模块缺少以及后期版本中增加的功能包括:
1、推送提醒审核信息到相关人员的未读消息库中.
4 附件
附件一:《项目管理系统数据字典》
