图书馆设计项目管理计划书1项目背景1项目组成开发软件名称图书管理系统项目任务提出者项目开发者用户系统管理员操作员读者实现软件单位2待开发系统定义传统的图书馆管理系统模式有多种缺陷比如操作繁琐工作量大难以上手效率低容错率差等给大量的资料查询更新及维护带来了大量的困难图书管理系统对于现代图书馆而言是能否发挥其教学科研的作用的至关重要技术平台对于读者和图书管理员来说是能否方便快速获取信息的关键所以我们接受这个项目首先考虑的便是功能的实现给用户带来充足的信息和快捷方便的操作3图书管理系统模型图书信息表图书信息表tsxxb字段类型长度约束图书编号文本20主键必须输入图书名称文本50必须输入图书类别编号文本20必须输入书架位置文本20ISBN文本20作者文本20译者文本20单价数值出版社编号文本20出版时间时间日期总数量数值入库日期时间日期入库操作员文本10现存量数值借阅次数数值是否注销文本1内容简介文本200备注文本50读者信息表dzxxb字段类型长度约束读者编号借书证号码和用户名与此同文本20主键必须输入读者姓名文本10必须输入读者类别编号文本20必须输入读者性别文本2出生日期时间日期读者状态文本4办证日期时间日期已借图书数量数值证件名称文本10证件号码文本20读者单位文本30联系地址文本40联系电话文本30EMAIL文本30用户密码文本10办证操作员文本10备注文本50借阅信息表jyxxb字段类型长度约束图书编号文本20主键必须输入图书名称文本50读者编号文本20主键必须输入读者姓名文本10图书价格数值借阅日期时间日期应还日期时间日期续借次数数值借阅操作员文本10图书类别表tslbb字段类型长度约束图书类别编号文本20主键必须输入图书类别名称文本20必须输入备注文本50出版社信息表cbsxxb字段类型长度约束出版社编号文本20主键必须输入出版社名称文本30必须输入出版社地址文本40邮政编码文本6联系人文本20联系电话文本30EMAIL文本30备注文本50读者类别表dzlbb字段类型长度约束读者类别编号文本20主键必须输入读者类别名称文本10必须输入可借书数量数值可借书天数数值可续借次数数值逾期缓冲天数数值逾期每天罚款金额数值丢失罚款倍数数值图书注销信息表tszxxxb字段类型长度约束图书编号文本20主键必须输入注销数量数值必须输入注销日期时间日期注销操作员文本102主要功能本系统主要实现书籍管理读者管理和借阅管理等主要的图书管理功能21图书管理图书类别管理增删除改等管理图书信息管理新书入库图书购入后由图书管理人员将书籍编码并将其具体信息录入书籍信息表书籍信息修改书籍信息由于工作人员的疏忽而出现错误时可修改其信息管理员按不同方式查询统计读者按不同方式查询出版社信息管理增删除改等管理图书注销某一部分图书会随着时间的增长及知识的更新而变得不再有使用的价值或者图书被损坏这些图书就要在图书籍信息表中的除去即从书籍信息表中删去此书籍记录22读者管理读者类别信息管理增删除改等管理读者信息管理办理挂失暂停借注销阅卡录入修改删除读者信息23借阅管理续借管理提供读者在符合规定的情况下网上续借还书管理根据借阅卡编号图书ID等在借阅信息表中找到相应的记录将借书记录删除更新该记录的相应数据图书信息表根据违反规定情况计算和登记罚款记录借书管理根据借阅卡编号和图书编号进行借书登记在借阅信息表中插入一条借书记录该记录包括读者ID图书ID借出日期借阅编号操作员等信息更新该记录的相应数据图书信息表把超期图书以列表的形式显示出来并以电子邮件或打印成书面通知读者提供读者网上查询自己的借阅情况包括超期提示3开发进度与成本估算图书馆图书管理系统此项目的成本是项目进行全过程所消耗的各种费用总和根据工作分解结构制定出项目分摊估计表来有效的进行项目的成本计划合同规定项目的总成本包括软件开发成本硬件成本和开发中的其他成本是10万元人民币根据项目团队制定的工作分解结构按照系统的生命期将本项目划分为六个活动分别是项目规划需求分析软件设计编程实现系统测试验收总结对这六个活动进一步分解得到21个小活动小活动的成本主要由劳动力成本工资和硬件成本构成其中工资根据工期人数和日工资来确定硬件成本根据该项小活动的需求数量来确定成本估算采用的方法为先估算出每项小活动的预算然后在算出大活动的预算进而预算出整个项目的成本表1图书馆图书管理系统项目工资标准计算表资源名称最大单位标准费率加班费率每次使用成本成本累算基准日历1100330工作日50小时000按比例标准2100200工作日40小时000按比例标准3100200工作日35小时000按比例标准表2图书馆图书管理系统项目分摊估算表单位元活动小活动预算小活动分摊预算大活动分摊预算累计项目规划1模板确定77023107702撰写项目计划报告15402310需求分析3需求调研1540693038504需求分析308069305需求确认154084706撰写需求分析说明书7709240软件设计7系统分析231014630115508模块设计5390169409数据库设计38502079010美工设计23102310011撰写详细设计说明书77023870软件开发12硬件安装10000215503387013环境配置7703464014代码实现1078045420软件测试15集成测试308069304850016系统测试30805158017撰写系统测试报告77052350验收总结18撰写用户手册77030805312019人员培训7705389020产品转移7705466021经验总结77055430经过预算图书馆项目预算总金额为55430元项目的合同规定总成本为100000基本上达到446的利润率原计划此图书管理经费占整个图书管理系统的百分之一十即是10万时间为3个月整个项目由一名项目经理两名开发成员同时完成开发后要兼顾测试比较辛苦所以时间也比较充足要求图书管理的开发的时间最长不能超过原定计划的3天比原计划提前了20天这样就节省了不少成本4系统开发项目风险分析报告41软件开发项目的风险背景信息产业的发展是目前发展最快的行业之一也是对社会影响最大的一个行业它不但为我们创造了巨大的财富而且从各个方面改变着我们的生活达到一个行业小到一项服务我们不得不承认软件是二十一世纪最不可思议的产品伴随着软件开发技术的不断更新软件数量的增多软件复杂程度不断加大客户对产品的要求也在不断的提高随之而来的是软件开发项目给软件开发企业和需求企业带来的巨大风险软件开发项目的成功与否会直接影响到公司的生存这对软件开发企业来讲应该是更大的难题一方面是业务需求更加复杂人们对软件质量和用途的期望大幅度提高对业务系统的要求也越来越挑剔另一方面是开发成本不断缩减在此形势下风险管理与控制已成为软件开发项目成败的关键软件开发项目由于其具有连续性复杂性少参照性无标准规范等特点其风险程度较高目前国内的大多数软件开发企业还缺乏对软件开发项目的风险认识缺少进行系统有效的度量和评价的手段据有调查数据显示有1535的软件项目中途被取消剩下的项目不是超期就是超出预算或是无法达到预期目标另外软件项目因风险控制和管理原因失败的约占90可见软件风险控制与管理在目前的软件开发项目中的重要性42风险管理与风险控制介绍1风险管理风险管理应是贯穿软件项目开发始末的一项重要任务其中包括风险识别风险评估风险计划风险解决和风险监控它能让风险管理者主动规避风险进行有效的风险管理风险管理模型有SEI风险管理模型Riskit风险管理模型SoftRisk风险管理模型IEEE风险管理过程模型CMMI风险管理模型MSF风险管理模型等在项目管理中建立风险管理策略在项目的生命周期中不断控制风险是非常重要的风险管理主要包括五个阶段1风险识别识别风险的方法常用的有现场观察法座谈法流程图法财务报表法相关部门配合法和环境分析法等2风险评估对已识别的风险要进行估计和评价风险估计的主要任务是确定风险发生的概率与后果风险评价则是确定该风险的经济意义及处理的费效分析常用的方法有概率分布外推法多目标分析法等3计划进度按照评估后的风险结果制定相应的风险管理进度表为后续的风险管理提供参考4风险处理一般而言风险处理有三种方法风险控制法即主动采取措施避免风险消灭风险中和风险或采用紧急方案降低风险风险自留当风险量不大时可以余留风险风险转移5风险监控包括对风险发生的监督和对风险管理的监督前者是对已识别的风险源进行监视和控制后者是在项目实施过程中监督人们认真执行风险管理的组织和技术措施2风险控制1建立有效的风险控制的组织机构设置风险管理岗位在软件开发项目管理过程中设置风险管理岗位该岗位的主要职责是在制订与评估规划时从风险管理的角度对项目规划或计划进行审核并发表意见不断寻找可能出现的任何意外情况试着指出各个风险的管理策略及常用的管理方法以随时处理出现的风险风险管理者最好是由项目主管以外的人担任风险管理岗位的人数依据项目大小来决定一般23人较为适合双项目经理为项目开发项目设定两个项目经理岗位一个负责技术岗位另一个负责管理岗位目前国内的软件开发企业的项目经理一般都是一名而且是技术出生的占绝对多数他们主要擅长的是技术研发在管理方面先天不足这不利于项目风险管理和控制通过增加专门的管理经理岗位可以弥补技术出生的项目经理的不足提升软件开发项目的管理水平而且这样的经验也已得到了国外业界大多企业的认可2建立有效的风险控制管理过程风险管理过程包括培训风险识别风险分析风险计划执行计划跟踪计划等活动有效的风险管理过程应是学习型的持续的和不断改进的软件企业应建立自己的风险管理数据库作为风险管理的基础并在实施中不断地更新和完善根据企业和项目的实际情况进行科学的项目风险和控制对项目的成功研发有着举足轻重的意义在项目开发的过程中进行必要的项目风险分析制定符合项目特点的风险评估和监督机制特别是要定期对项目的风险状况进行评估和监管发现意外风险或者是风险超出预期的一定要重点关照发现问题要立即上报尽快解决并建立风险监管日志实行岗位负责制将软件开发项目的风险降到最低43软件开发项目的风险来源及对项目成败的影响软件开发项目风险是指在软件生命周期中所遇到的所有的预算进度和控制等各方面的问题以及由这些问题而产生的对软件项目的影响软件项目风险经常会涉及许多方面如缺乏用户的参与缺少高级管理层的支持含糊的要求没有计划和管理等总体概括下来应该由楼六大方面1需求风险很多项目在确定需求时都面临着一些不确定性当在项目早期容忍了这些不确定性并且在项目进展过程当中得不到解决这些问题就会对项目的成功造成很大威胁如果不控制与需求相关的风险因素那么就很有可能产生错误的产品或者拙劣地建造预期的产品每一种情况对产品来讲都可能致命的2相关性风险许多风险都是因为项目的外部环境或因素的相关性产生的经常我们在控制外部的相关性上做的不够因此缓解策略应该包括可能性计划以便从第二资源或协同工作资源中取得必要的组成部分并且觉察潜在的问题3技术风险软件技术的飞速发展和经验丰富员工的缺乏意味着项目团队可能会因为技巧的原因影响项目的成功在早期识别风险从而采取合适的预防措施是解决风险领域问题的关键4管理风险尽管管理问题制约了很多项目的成功但是不要因为风险管理计划中没有包括所有管理活动而感到惊奇在大部分项目里项目经理经常是写项目风险管理计划的人他们有先天性的不足自己检查自己的错误这是最难的然而像这些问题可能会使项目的成功变得更加困难如果不正视这些棘手的问题它们就很有可能在项目进行的某个阶段影响项目本身5自然风险软件产品本身也属于一种应用型产品同样会受到自然灾害的的影响自然风险主要有火灾洪涝恶劣天气等对图书馆的馆藏服务系统信息系统和人员可能造成的损害44图书馆管理系统风险应对表风险识别风险定性与定量分析风险应对编号WBS模块风险事件风险概率风险影响描述风险影响值风险期望值缓解策略策略应急计划和突发事件风险处理措施风险负责人1需求风险需求分析不到位导致610成本增长02012重新进行到位的需求当数据模型建立后无法使用时即使重新做需求一周工作包数据模型建立好后无法使用分析分析负责人2需求风险缺少有效的需求变化管理过程105进度实施020020及时和项目经理进行有效的沟通确保需求的有效管理当缺少有效的需求变化管理过程时要及时与相应的管理人员惊醒沟通制定有效的变化管理三天工作包负责任3需求风险客户不断变化需求9工作质量受到较小的影响0100091要做好与客户之间的沟通工作2工作人员要做好应对必要变化的准备满足客户的需求当客户不断变化需求时1要做好与客户之间的沟通工作2工作人员要做好应对必要变化的准备满足客户的需求一周工作包负责人4需求风险院图书馆调研经常推后2010进度拖延040080与客户相关人员进行有效沟当需求调研不能及时进行时根据合理时间调研并与相关工作人两天项目经理通员进行有效沟通并确定调研时间5需求风险某些需求超出项目范围25范围主要部分受到影响020050查看范围进度计划并与客户进行合理的沟通某些需求超出项目范围时1明确列出超出项目范围需求2查看范围进度计划并与客户进行合理的沟通一天项目经理6需求风险漏掉某些模块或多了某些模块6范围的次要不分受到影响010006查看范围进度计划及时修改当漏掉某些模块或多了某些模块时1查看范围进度计划及时与项目经理进行沟通如果漏掉某些模块及时把漏掉的任务分配给相应的工作人员进行补充如果多了一些设计模块查看进度并决定是否删除多出的模块一周工作包负责人7相关性风险签订合同不科学不严谨存在边界界定不清1510进度实施040060及时与客户进行有效沟通并重新修订合同当合同有问题时1及时与客户进行有效沟通并进行重新修订合同2重新根据需求制定三天项目经理楚的问题更加完美的合同9相关性风险软硬件不兼容1项目的最终产品实际上不能使用080040及时与供应商联系并进行有效沟通更换硬件设备当软硬件不兼容时1及时与供应商联系并进行有效沟通更换硬件设备2如果无法更换查看该硬件是否可以用在该系统的其他位置三天工作包负责人10相关性风险病毒黑客入侵造成系统无法正常工作5项目的最终产品实际上不能使用060050做好系统安全防护当病毒黑客入侵造成图书馆系统无法正常工作时1及时进行系统体检用相关工具杀毒2通过相关设备对系统进行有效保护防止系统再次收到攻击11技术风险预算有误导致开发过程无法进行910进度实施020018向投资者申请新的的资金当预算有误导致开发过程无法进行时向投资者申请新的的资金2向投资者展示新的预算和以前错误的预算一周工作包负责人1技术开发工510040003确定开当开发工具不可一工2风险具不可靠导致项目过程中的bug进度实施2发工具可靠靠时1及时做测试发现bug2更换开发工具周作包负责人13技术风险使用框架存在漏洞bug导致项目失败1质量降低需要得到有关领导的批准020002测试人员及时发现问题开发人员及时解决问题当使用框架存在漏洞bug导致项目失败时1及时对框架进行修复2更换更可靠的框架一周工作包负责人14管理风险技术人员离职模块任务无人完成510进度实施0300501加强人员考核确定人员的可靠性2及时需找人员代替气工作当技术人员离职模块任务无人完成时1加强人员考核确定人员的可靠性2及时需找人员代替齐工作3与当事人做及时沟通2天项目经理15管理风险不能按进度计划完成相应的任务210进度实施030060做好跟踪记录当不能按进度计划完成相应的任务时1做好对每个人的及时跟踪记录2若不能按进度完成应当进行加班完一周工作包负责人成相应任务15管理风险进度进化不够完善导致整体任务滞后5质量降低需要得到有关领导的批准060086及时调整计划当进度进化不够完善导致整体任务滞后时1及时调整计划2将所差进度加班完成2天工作包负责人16自然风险火灾涝灾地震等自然灾害1质量降低需要得到有关领导的批准030020做好转移工作降低损失程度当火灾涝灾地震等自然灾害时1做好系统备份的转移工作把损失降低到最小2及时做出应急处理是相关负责人做出快速反映三天工作包负责人5开发项目人员分配项目人力资源计划就是决定在项目中的每一项工作中用什么样的人力资源确定人力资源的数量质量和结构组织结构图书管理系统的项目管理是采用项目型组织各成员按照从事的项目组成不同的团队并由指定的项目经理来协调和管理项目的运作a职能型组织b项目型组织c矩阵型组织复合型组织人员要求a项目经理1有5年以上软件研发经验2能分析和判断大部分软件问题对项目软件开发过程负责有丰富的项目经验和很强的责任心有熟练的英文阅读能力和交流能力b调研分析员1计算机软件工程等专业本科以上学历2熟悉需求调研方法具备较强的业务流程及业务模型分析设计能力3熟悉软件工程理论掌握软件需求获取与分析方法具备财务软件物流系统软件ERPSAP等系统软件的需求分析经验优先考虑4有较强的文档编写能力有较强的团队协作精神c系统分析员1精通Java语言WEB编程熟悉J2EE应用系统开发熟悉Tomcat等应用服务器2熟悉Mysql等数据库的设计与开发3熟悉软件开发流程具有需求分析和架构设计的实际经验4能够控制客户需求并能够处理好与客户之间的关系有较强的文档撰写能力5能够高效的管理与激发团队使团队更具有凝聚力d模块设计员1精通java及数据库相关知识至少3年以上开发经验1年以上架构设计经验2熟悉面向对象的分析设计方法3熟练使用UML工具进行建模设计并能充分理解客户的需求并根据需求进行模块化和面向对象分析设计4能够独立完成系统需求分析与概要设计设计工作5有较强的系统需求分析设计文档编写能力6具有良好的团队协作精神有较强的业务模型分析能力思维清晰敏捷逻辑分析能力强善于与人沟通能够承担一定的工作压力e测试工程师1计算机软件工程等相关专业2对人员管理资源调配测试方法改进等经验3分析能力强思维周密积极主动关注细节勇于创新良好的沟通技巧以及优秀的言语表达能力具备良好的团队合作精神4熟悉一些主流的软件工程方法论和思想了解软件工程软件生命周期模型基础实施人员1积极上进2有项目管理经验优先3肯吃苦能出差客户联络员1较强的沟通理解和应变能力2有刚正不阿的性格吃苦耐劳的精神3服从公司工作安排能长期出差2角色职能表6系统成品评价61对生产效率的评价给出实际生产效率包括系统开发已历时快2个月的时间了开发的反复性比较多对客户的需求理解不是很透彻综合以上虽然以上问题是项目开发经常面对的问题开发工程中存在着一些问题造成这些问题的原因是多方面的如前期系统数据库的设计缺陷和部分代码的构建缺陷客户需求的理解上也存在一定问题这就需要我们用一定的时间来维护客户使用过程中提出的新问题和存在的bug这些都造成了一定时间的消耗但同时也使得我们的产品日趋完善但是总的来说此项目的开发效率不是很高相反有相当一定时间的浪费经过我们各位成员的共同努力图书管理系统已经很好的完成了客户的业务流需角色姓名职责项目经理项目总体设计制定和监控开发进度制定相应的开发规范负责各个环节的评审工作协调各个成员小组之间开发调研分析员实际调研提供详细的策划方案和需求分析系统分析员根据需求分析报告进行总体分析得出系统的概念模型模块设计员根据系统分析结果对系统做模块化分及相关接口定义程序员编写功能模块的实现代码并惊醒单元测试测试工程师测试程序及系统的功能实施人员负责工程实施现场培训协助项目验收需求的初步确认项目维护客户联络员与客户联系协助其他人员与客户的交流求经过对客户使用过程的观察此项目开发的还是比较成功但是还是存在着一些问题造成这些问题的原因是多方面的如前期系统数据库的设计缺陷和部分代码的构建缺陷客户需求的理解上也存在一定问题这就需要我们用一定的时间来维护客户使用过程中提出的新问题和存在的bug总的来说此系统的功能开发还是一个比较成功的案例62对技术方法的评价系统开发框架此系统的框架使用的是简单三层结构此框架在开发一些中小软件是比较实用的但是我们要是可以开发出自己的框架把一些通用的功能开发到框架中这样以来在以后的系统开发中针对系统中一些通用的功能就不需要再开发从而也可以很好的提高我们的开发效率减少很多维护费用使我们的技术不断的更加成熟系统安全加密此系统中针对客户提出的系统安全问题我们采用了Ikey加密硬件钥匙来验证客户端登陆客户的合法性此Ikey钥匙可以绑定到一个系统使用用户也可以让多个用户来使用一个加密钥匙来验证登陆系统的合法性这样以来即使用户的密码不慎丢失或者被不法人员取得不法人员他也是无法登陆到我们的系统中来这样就最大的提高了我们系统的安全性Ikey加密钥匙是很好的加密BS架构软件的硬件工具在以后的软件安全方面可以借鉴我们在项目开发中使用了一些测试工具包括JUnitJCheck测试工具的应用可以提高测试的质量测试的效率但是在选择和使用测试工具的时候我们也应该看到在测试过程中并不是所有的测试工具都适合我们使用同时有了测试工具会使用测试工具并不等于测试工具真正能在测试中发挥作用7经验与教训71签定合同一个项目的开发成败或者说项目开发带来效益的大小在很大程度上是受项目合同签定的影响的往往很多一部分公司与客户签定的项目合同都是很模糊的也很难签定的比较清楚这样以来就会导致在项目的开发后期工作两会越来越大影响项目的竣工周期而且项目的开发费用一般是不会变的这样以来我们就大大的降低了我们的开发效益虽然需求范围很难签定的明确但是我们在签定合同时需要研究求实要尽量的去把合同功能边界和添加新功能的条件签定72需求的调研在项目确立后就到了需求调研分析阶段项目组对客户的整体组织结构公司有关人员的关系职责等如果没有一个很好足够的了解掌握这样项目组就无法很好的完整的整理到客户的需求或者说客户真实的功能需求如此以来我们就为自己埋下了地雷影响项目的开发周期这就要求我们要与客户搞好无论是工作上的还是生活上的朋友关系要深入的去了解客户需求我们要尽量的让客户也参与到项目的开发团队中来也就是说我们要使客户把自己也纳入到项目的开发团队中来如此一来我们掌握客户需求的真实性可靠性就会大大的提高也就不会为项目的后期功能开发埋下陷阱在需求调研过程中如果缺乏足够用户参与这样的需求调研也是失败的很多程序员不愿参与到客户的需求调研中去为什么呢很简单与客户沟通不如与代码沟通容易有意思尽管这样我们还是必须用足够多的时间去和客户进行沟通了解他们真实的需求很多用户也是如此他们自己也不愿意参与到项目的需求调研中来为什么呢需求调研是一件枯燥的事对吗虽然现状如此我们还是要努力的使客户参与到需求的调研中来73做好开发计划在项目确立后我们就需要做好项目开发计划需求调研用时开发用时测试用时实施用时维护用时在我们做好了计划后我们要随时的跟踪计划任务的完成进度从而使我们的项目进度掌控在我们的开发周期范围之内今日计划行动明日成功74做好人际沟通培训准备和动员工作1项目组成员的任务分配不是十分均衡小组成员的职能划分不清未能按要求实现计划书中的职能分配造成了效率低下2由于实现开发成员对此次项目开发的环境并不太熟悉项目组也没有组织培训造成了摸石过河的现象降低了开发速度和后期的赶工3项目组成员在各个模块的开发时后沟通不够一度各自为政造成了二次开发浪费了资源4项目组缺乏一种有效的激励机制出现了一些怠工现象在其他行业中人与人的之间的沟通只很重要的项目开发也不例外很好的沟通能够加快项目的进度这就要求我们每一个开发人员要学会和善于沟通于客户和同事之间利于下次项目开发可以让项目组成员成员之间以及与本公司其他其他项目组保持沟通实现技术共享提高开发效率同时对外上在一个项目的开发过程中我们与客户的沟通是一个不断交流和沟通的过程在开发到一定的阶段我们就需要和客户沟通已有功能尽量的去避免一些隐藏的问题及时的发现问题解决问题从而按时或者提前完成项目的开发