收藏 分销(赏)

验收交付与过程改进-.ppt

上传人:w****g 文档编号:10278708 上传时间:2025-05-13 格式:PPT 页数:34 大小:3.27MB
下载 相关 举报
验收交付与过程改进-.ppt_第1页
第1页 / 共34页
验收交付与过程改进-.ppt_第2页
第2页 / 共34页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,六章,验收交付与过程改进,1,软件缺陷按严重程度可以分为三个等级、分别是什么?,生成,TreeView,菜单可以按哪两个过程来实现?,用户控件文件的后缀是什么?,回顾,2,预习检查,项目验收时还有哪些工作要做?,如何实例化用户控件?,如何从.aspx页面向.ascx页面传递参数?,3,本章任务,给角色分配权限,4,本章目标,了解项目验收的常见流程,了解项目维护的日常事项,了解过程改进的概念及实践,会给角色分配权限,5,项目接近尾声.,在开发阶段接近尾声的时候,是项目组战斗气氛最浓郁的时候,!,不时有电话打过来,声音急促有力,“需要支援!测试组需要再加一个人手!返测任务重,用户手册又要改,!,工区内人们走来走去,都是匆忙的脚步。项目组长高呼一声“还有10个紧急BUG,今天一定要改完!”。,我们满怀信心和希望,项目组聚餐会有的!,公费集体出游会有的,!,项目调休和项目奖金也一定会兑现的!,项目验收交付时,还有最后,三项,工作等着我们:,实施,、,培训,、,验收,!,6,项目实施,什么是项目实施?,定义:实施是指将软件系统部署到客户方的计算机上,协助客户准备基础数据,使软件系统顺利上线运行。,项目实施时的准备,保证软件符合需求,质量过关,全面做好测试工作(集成测试、系统测试、性能测试),制定实施计划,要发布的代码版本、数据库创建方式、基础数据准备方式,准备好程序代码和相关文档,用户手册、测试用例文档,在开发接近尾声的时候就要开始准备实施了,!,7,客户培训,培训人员的选择,行业积累雄厚,对客户方业务很了解,对我们的系统很了解,培训时注意事项,准备好培训内容,不可临时抱佛脚,丢了面子,制定好培训计划,了解客户时间,做好沟通,协调好,安排好,系统装好了,基础数据也已准备齐全。接下来就是组织客户培训了,教他们怎么使用我们的系统。,8,项目验收,项目验收,客户对系统的“接收测试”,对系统进行范围核实(看看需求是否全部实现)和质量核实,最后,客户在验收报告上签字,一切尘埃落定,每个人都长出一口气,心想“这些琐琐碎碎的单据、报表与我再无瓜葛了”!大中型的项目会有一个签字验收仪式。,然后我们的项目正式进入“,维护阶段,”!,9,小结1,项目验收交付时,还有哪三项工作要做?,项目实施时,有哪些注意事项?(列举出一、两点即可),10,为什么需要“维护阶段”?,可能的原因包括,软件的原有功能和性能可能不再适应用户的要求,例:,企业业务流程调整,软件的工作环境改变了,例:国家对某些单据的打印规格的规定调整了,软件运行中发现错误,需要修改,例:单据编号发现重号,用户操作不方便,影响效率。,这些问题都需要在项目的“,维护阶段,”来解决!,系统上线了,项目验收了,客户使用软件的过程中可能会遇到一些问题,!,11,“维护阶段”做什么?,“维护阶段”做什么?,校正性维护,诊断、校正软件错误的过程,适应性维护,为适应环境的变更(计算机设备更新)而修改软件的维护活动,完善性维护,为满足用户提出的新功能、性能要求而进行的维护,预防性维护,为进一步改进可维护性、可靠性而进行的维护活动,12,如何做项目维护(1),项目交付,项目结束时,开发团队将项目交付到维护团队手中,客户已经签字验收,维护团队对项目检验通过,维护团队要迅速熟悉项目的业务、技术和客户,维护流程,1、客户提出维护申请,2、对确实需要修改系统解决的问题进行业务上和技术上的论证,3、对修改方案论证和审批通过后,报给客户修改和发布的计划,13,如何做项目维护(2),范围管理,严格定义系统的边界,明确什么需要给客户做,什么不需要做,软件需求变更和膨胀是项目的杀手,功能性膨胀,例:客户业务流程(,CRM,和,HR,系统要集成)变化所需系统做调整,非功能性膨胀,例:培训要求、文档要求、性能要求,保持一致性,系统中一个小小的调整,导致牵一发而动全身,“大力”的案例(一),14,如何做项目维护(3),维护记录,做维护时,需记录维护的记录,以利于在维护过程中发现问题、解决问题,维护报告,对维护工作做总结,归纳问题以便改进今后工作,“大力”的案例(二),15,小结2,为何在项目维护时,“保持一致性”很重要?,“维护流程”有哪三步流程?,16,为什么要做过程管理?,某个项目进行的非常成功,还是原班人马,承担的下一个项目居然失败了。,同等规模的项目,乙部门总是比甲部门周期长,成本高,而且容易风险发生的频率高。,同类的错误反复重犯。要么是需求没有控制好,要么是项目压力大人员纷纷离职。项目组似乎对错误“没有记性”。,很多软件企业的软件开发过程中,都存在着这样那样的问题:,犯错误不可怕,可怕的是没“记性”,相同的错误再犯。我们需要,过程管理,!,17,过程定义,菜谱里只写了做菜的原料和关键步骤。你买了菜谱并不会有个人去帮你做菜,那为什么菜谱还那么好卖?,因为菜谱定义了一个做菜的标准,过程,:什么时候放油,放多少,下一步炒什么,炒多久.,同样,,CMM,(菜谱)帮助我们,定义软件开发过程,(做菜步骤)。,18,能力成熟度模型(CMM),什么是CMM,CMM(Capability Maturity Model),意思是软件成熟度模型,CMM通过审查一个组织开发软件的过程的规范程度,来评价这个组织的软件开发能力,CMM的五个等级,第一级:初始级,第二级:可重复级,第三级:以定义级,第四级:已控制级,第五级:优化级,19,小结3,CMM分为哪五个等级?,飞行员驾驶飞机的时候,其操作步骤要遵循事先严格定义好的过程。请问这样做的好处在哪里?,20,角色分配权限(1),实现这个功能主要是通过一个用户对应一,个角色,一个角色对应多个权限控制的。,系统管理员登录,后看到的菜单,普通用户登录,后看到的菜单,通过RoleRight中的NodeId从SysFun表查找对应的菜单信息,如何给不同的角色分配不同的权限,21,角色分配权限(2),下面我们来看一下整个权限分配的处理过程,从角色管理页面点“权限分配”超连接,RoleRight表中已经存在的菜单默认被选中,菜单分类显示,22,角色分配权限(3),选择父菜单时,其对应,的所有子菜单全被选中,选择子菜单时,,父菜单也被选中,23,角色分配权限(4),使用母版页,在SysManage文件夹,下新建页面“DistributeRole.aspx”,分配角色权限,权限分配(选定后保存)当前角色-,用于装载所有的权限菜单,关键HTML代码,24,角色分配权限(5),由多个父子,菜单组成,把一个父子菜单的组合做成用户控件,Hidden1:用,来存放父菜单Id,Hidden2:用,来存放角色Id,CheckBox:,用来显示父菜单,CheckBoxList:,用来显示子菜单,新建“RoleUserControl.ascx”,选择父节点时,选中,其对应的全部子节点,选择任何一个子节点时,,其对应的父菜单也被选中,用户控件页面对应,的关键HTML代码,25,显示所有的父子菜单(1),下面编写代码实现:展示所有的父子菜单,使用用户控件时,需要把,“RoleUserControl.ascx”,拖到权限管理页面上,注册一下,父子菜单,归类显示,实现思路:,首先获得所有的父节点信息,,对每一个父节点查找它的所有子节点,,把父子节点一起生成一个用户控件,,然后放入PlaceHolder容器,protected void Page_Load(object sender,EventArgs e),DisplayRoleRightInfo();,protected void DisplayRoleRightInfo(),IList sysFuns=SysFunManager.GetAllParentNodeInfo();,foreach(,SysFun,sysFun in sysFuns),string nodeId=sysFun.NodeId.ToString();,string displayName=sysFun.DisplayName;,RoleUserControl roleCotrol=,(RoleUserControl)LoadControl(RoleUserControl.ascx);,HtmlInputHidden hidParentMenu=,(HtmlInputHidden)roleCotrol.FindControl(hidParentMenu);,hidParentMenu.Value=nodeId;,CheckBox chkParentMenu=,(CheckBox)roleCotrol.FindControl(chkParentMenu);,chkParentMenu.Text=displayName;,phRoleDistribute.Controls.Add(roleCotrol);,实例化隐藏域,用以存储父节点Id,实例化用户控件,得到所有父级节点信息,实例化用户控件中的CheckBox,以显示父菜单名称,权限分配主页面DistributeRole.aspx对应的后台关键代码,26,显示所有的父子菜单(2),protected void Page_Load(object sender,EventArgs e),if(!Page.IsPostBack)DisplayRoleRightMenu();,protected void DisplayRoleRightMenu(),int nodeId=int.Parse(hidParentMenu.Value);,IList sysFuns=,SysFunManager.GetSysFunByParentNodeId(nodeId);,foreach(SysFun sysFun in sysFuns),ListItem li=new ListItem();,li.Value=sysFun.NodeId.ToString();,li.Text=sysFun.DisplayName;,chklstChildMenu.Items.Add(li);,得到父节点Id,根据父节点Id得到对应的所有子节点信息,将子节点循环追加到CheckBoxList控件中,用户控件页面RoleUserControl.ascx关键后台代码,运行程序,即可实现系统菜单归类显示,27,选中当前角色已经拥有的权限(1),Id 为“1”的普通用,户对应的角色权限,数据库中已经拥有,的节点默认被选中,28,选中当前角色已经拥有的权限(2),实现这个功能,我们只要在原来的基础上进行修改即可,查看修改后的关键代码,IList currentRoleParentNodes=,RoleRightManager.GetParentNodesByRoleId(roleId);,ArrayList arrRoleParentNodes=new ArrayList();,foreach(RoleRight roleRight in currentRoleParentNodes),arrRoleParentNodes.Add(roleRight.SysFun.NodeId.ToString();,根据角色Id获得当前,角色拥有的权限信息,循环将该角色拥有的父节,点添加到角色权限数组中,if(arrRoleParentNodes.Contains(nodeId),chkParentMenu.Checked=true;,判断生成的父节点,是否已经在数组中,29,实现父子菜单之间的互选关系,function CheckAll(paramId),var items=document.getElementsByTagName(input);,for(i=0;iitems.length;i+),var e=itemsi;,var eId=e.id;,var m=eId.indexOf(_chk);,var n=paramId.indexOf(_chk);,if(eId.substring(0,m)=paramId.substring(0,n)&e.type=checkbox),e.checked=document.getElementById(paramId).checked;,查看全部JavaScript方法,获得当前控件元素的Id,判断控件类型是否是checkbox,父子节点客户端Id是否匹配,以控制只选中该父节点对应的子节点,30,保存角色权限(1),初始普通用户的权限情况,给普通用户重新分配权限,保存角色权限的思路是:,查找当前角色拥有的节点Id放进一个数组,“提交”时循环判断:,若选中的节点不在数组中,则添加到数据库,否则不执行操作;,若不选的节点在数据库中存在,则从数据库删除。,31,保存角色权限(2),查看保存角色权限的关键代码,“提交”后的普通用户权限信息,32,小结4,请简单描述一下用户表、角色表、系统功能表和角色权限表之间的业务关系。说一下实现角色权限分配的思路?,33,Thank you,34,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服