项目管理系统详细设计说明书目录1引言........................................................................................................................................41.1编写目的........................................................................................................41.2背景................................................................................................................41.3定义................................................................................................................41.4参考资料........................................................................................................52总体设计................................................................................................................................52.1需求概述........................................................................................................52.2系统架构........................................................................................................62.3数据库结构....................................................................................................73程序功能设计........................................................................................................................73.1项目管理........................................................................................................73.1.1项目申报.................................................................................................................73.2尚未解决的问题..........................................................................................174附件......................................................................................................................................17文件信息编写者雒凡编写日期2014-6-10审核者审核日期批准人批准日期变更记录日期作者版本变更说明变更审阅日期审阅者意见1引言1.1编写目的项目管理系统详细设计是设计的第二阶段,这个阶段的主要任务是在项目管理系统概要设计说明书的基础上,对概要设计中产生的功能模块进行过程描述,设计功能模块的内部实现细节,包括算法和详细数据结构,为编写源代码提供必要的说明。概要设计解决了软件系统总体结构设计的问题,包括整个软件系统的结构、模块划分、模块功能和模块间的联系等。详细设计则要解决如何实现各个模块的内部功能,即模块设计。具体地说,模块设计就是要为已经产生的项目管理系统中的各个子系统/模块设计详细的实现方法。但此阶段并不要求采用具体的系统实现阶段所用的语言编码和各类脚本,他只是对实现细节进行精确的描述,这样在编码就可以将详细设计中对功能实现的描述直接翻译、转化为用具体程序开发语言编写的程序。1.2背景目前国内企业对项目管理水平和方法越来越重视,而合适的项目管理软件在其中起了极其重要的作用。处在迅速扩张阶段的中小型企业,大部分都存在管理瓶颈,其具体表现在项目目标制定不明确,任务分解不清楚,责任不落人,工作进度无法追踪等。为了解决以上问题,达到项目立项标准化,任务执行透明化,任务进度可跟踪,任务结果可追溯的目的,就需要构建一个指标与项目管理的综合性平台来实现管理闭环。1.3定义WebAppWeb应用程序View表示层BLL业务逻辑层DAL数据访问层Model实体层1.4参考资料项目管理系统——需求规格说明书,作者:武智;项目管理系统——概要设计说明说,作者:檀志兵;2总体设计2.1需求概述项目管理系统是建立在统一集成的平台之上,涵盖项目立项、执行和结项的全过程,特别关注项目计划的执行,具有项目计划的制定与跟踪,项目审批的流程管理、项目预算成本、沟通、风险、人员、知识等多要素的管理功能,不仅可以供公司高层、项目经理使用,也是项目成员、财务、运管部门等各相关个部门及其他所有项目干系人共同工作的平台。2.2系统架构SQLServer2008R2WebAppDAL实例——System.Data.SqlClientIDALModelUserRoleDepartmentTargetProjectBLLEmployee权限管理指标管理项目管理日报/周报提供日报明细填报任务进展操作日志附件管理异常处理外部文件系统写入日志文件运行参数配置上传/下载ViewASP.NetWebForm(WithAJAX)Javascript/JSONHTMLCSSService基于WCF的各类服务接口其他系统基于WebAPI的简易RESTful接口2.3数据库结构3程序功能设计3.1项目管理本章节为项目管理模块各功能的详细设计说明。3.1.1项目申报3.1.1.1程序描述本功能用于发起一个新项目,由项目经理进行操作。需要完成“标的填报”、“任务分配”、“风险评估”以及“里程碑”四部分内容的填写。其中“标的填报”为必填内容。点击“申报”按钮后弹出申报表单,“标的填报”、“任务分配”、“风险评估”以及“里程碑”四项内容在页面上以四个选项卡的形式依次展现。填写完成后点击“确定”按钮进行提交。程序拿到表单数据进行必要验证,如果验证通过则保存,验证不通过则提示用户修改并重新提交数据。程序根据保存结果在界面给用户以相应提示。3.1.1.2功能系统:项目管理设计人:雒凡模块:项目管理日期:2014-06-11上层调用模块:无/浏览器/用户调用的下层模块:无/数据库访问组件输入:HTMLForm输出:保存数据,返回成功或失败开始业务模型用户提交数据数据验证(非空、格式)验证失败验证通过保存数据保存结果保存成功保存失败封装数据提示用户修改并重新提交数据提示成功提示失败结束局部数据元素:无注释:(项目申报IPO表)3.1.1.3输入项浏览器端Post请求携带的表单数据,详细信息见下表。名称标识数据类型有效范围输入方式输入媒体输入数据来源安全保密条件数量频度表单数据Request.FormCollection手动输入键盘、鼠标无无1待定3.1.1.4输出项名称标识数据类型有效范围输出方式输出媒体对应图形符号说明安全保密条件数量频度项目申报数据无DBRow自动输出无无1..*待定操作结果FlagBoolTrueFalse自动输出无无13.1.1.5程序设计前端封装表单数据,并以AJAX形式提交到服务端,代码逻辑示意如下:后端1、类图特性操作«接口»特性操作+GetModelList(be...特性操作特性操作+GetModelList(be...特性操作+DataTableToList...+GetModelList(str...+GetModelList(be...特性操作特性操作特性操作特性操作特性操作特性操作主要属性、方法说明——接口/类接口/类说明属性/方法说明ProjectPersonMapping用于分解项目和账户的多对多关系ProjectID引用项目表主键User_ID引用账户表主键TaskMilestoneMappin用于分解任PlanTaskID引用任务表主g务和里程碑的多对多关系键MilestoneID引用里程碑表主键PlanTask项目中的计划任务明细,每个任务还可以有若干子任务ProjectID表示当前任务属于哪一个项目ParentID表示当前任务的父任务,可以为空TotalParentID表示当前任务归属于哪个主任务ProjectAdd申报项目页面的后置类AddProject(ProjectApplypa)接收一个项目申报对象,并调用业务逻辑层代码将其保存到数据库中ProjectBLL项目管理的业务逻辑类DataTableToList(DataTabledt):ListProjectApply遍历dt中的所有DataRow,将其封装为一个ListProjectApplyExists(intprojectId):bool判断是否存在projectId所表示的项目记录。True:存在;False:不存在IProjectDAL定义项目管理模块的数ChangeState(intpId,stringstate):bool根据传入的状态编码state修据访问类的接口改由Id指定的项目的状态,并返回操作结果。DataRowToModel(DataRowdr):ProjectApply跟据DataRow对象封装ProjectApply对象2、时序图:创建匿名对象将验证结果及失败原因输出到页面封装实体对象数据验证构造模型输出结果创建ProjectBLL创建MethodInterceptorHelper创建AnonymousType,以供封装为JSON对象[if(验证结果==true)]3.1.1.6接口1、代码接口:无2、调用层次:Client/Browser项目申报模块发起请求数据持久化模块数据访问以http协议请求URL:Http://.../Project/ProjectAdd.aspx/CreateProject3.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、推送提醒审核信息到相关