版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章,验收交付与过程改进,软件缺陷按严重程度可以分为三个等级、分别是什么? 生成TreeView菜单可以按哪两个过程来实现? 用户控件文件的后缀是什么?,回顾,预习检查,项目验收时还有哪些工作要做? 如何实例化用户控件? 如何从.aspx页面向.ascx页面传递参数?,本章任务,给角色分配权限,本章目标,了解项目验收的常见流程 了解项目维护的日常事项 了解过程改进的概念及实践 会给角色分配权限,项目接近尾声.,在开发阶段接近尾声的时候,是项目组战斗气氛最浓郁的时候 !,不时有电话打过来,声音急促有力,“需要支援!测试组需要再加一个人手!返测任务重,用户手册又要改!,工区内人们走来走去,都是匆
2、忙的脚步。项目组长高呼一声“还有10个紧急BUG,今天一定要改完!”。,我们满怀信心和希望,项目组聚餐会有的 !,公费集体出游会有的 !,项目调休和项目奖金也一定会兑现的!,项目验收交付时,还有最后三项工作等着我们:实施、培训、验收!,项目实施,什么是项目实施? 定义:实施是指将软件系统部署到客户方的计算机上,协助客户准备基础数据,使软件系统顺利上线运行。 项目实施时的准备 保证软件符合需求,质量过关 全面做好测试工作(集成测试、系统测试、性能测试) 制定实施计划 要发布的代码版本、数据库创建方式、基础数据准备方式 准备好程序代码和相关文档 用户手册、测试用例文档,在开发接近尾声的时候就要开始
3、准备实施了 !,客户培训,培训人员的选择 行业积累雄厚,对客户方业务很了解,对我们的系统很了解 培训时注意事项 准备好培训内容 不可临时抱佛脚,丢了面子 制定好培训计划 了解客户时间,做好沟通,协调好,安排好,系统装好了,基础数据也已准备齐全。接下来就是组织客户培训了,教他们怎么使用我们的系统。,项目验收,项目验收 客户对系统的“接收测试” 对系统进行范围核实(看看需求是否全部实现)和质量核实 最后,客户在验收报告上签字,一切尘埃落定,每个人都长出一口气,心想“这些琐琐碎碎的单据、报表与我再无瓜葛了”!大中型的项目会有一个签字验收仪式。,然后我们的项目正式进入“维护阶段”!,小结1,项目验收交
4、付时,还有哪三项工作要做? 项目实施时,有哪些注意事项?(列举出一、两点即可),为什么需要“维护阶段”?,可能的原因包括 软件的原有功能和性能可能不再适应用户的要求 例:企业业务流程调整 软件的工作环境改变了 例:国家对某些单据的打印规格的规定调整了 软件运行中发现错误,需要修改 例:单据编号发现重号 用户操作不方便,影响效率。,这些问题都需要在项目的“维护阶段”来解决!,系统上线了,项目验收了,客户使用软件的过程中可能会遇到一些问题 !,“维护阶段”做什么?,“维护阶段”做什么? 校正性维护 诊断、校正软件错误的过程 适应性维护 为适应环境的变更(计算机设备更新)而修改软件的维护活动 完善性
5、维护 为满足用户提出的新功能、性能要求而进行的维护 预防性维护 为进一步改进可维护性、可靠性而进行的维护活动,如何做项目维护(1),项目交付 项目结束时,开发团队将项目交付到维护团队手中 客户已经签字验收 维护团队对项目检验通过 维护团队要迅速熟悉项目的业务、技术和客户 维护流程 1、客户提出维护申请 2、对确实需要修改系统解决的问题进行业务上和技术上的论证 3、对修改方案论证和审批通过后,报给客户修改和发布的计划,如何做项目维护(2),范围管理 严格定义系统的边界,明确什么需要给客户做,什么不需要做 软件需求变更和膨胀是项目的杀手 功能性膨胀 例:客户业务流程(CRM和HR系统要集成)变化所
6、需系统做调整 非功能性膨胀 例:培训要求、文档要求、性能要求 保持一致性 系统中一个小小的调整,导致牵一发而动全身,“大力”的案例(一),如何做项目维护(3),维护记录 做维护时,需记录维护的记录,以利于在维护过程中发现问题、解决问题 维护报告 对维护工作做总结,归纳问题以便改进今后工作,“大力”的案例(二),小结2,为何在项目维护时,“保持一致性”很重要? “维护流程”有哪三步流程?,为什么要做过程管理?,某个项目进行的非常成功,还是原班人马,承担的下一个项目居然失败了。 同等规模的项目,乙部门总是比甲部门周期长,成本高,而且容易风险发生的频率高。 同类的错误反复重犯。要么是需求没有控制好,
7、要么是项目压力大人员纷纷离职。项目组似乎对错误“没有记性”。,很多软件企业的软件开发过程中,都存在着这样那样的问题:,犯错误不可怕,可怕的是没“记性”,相同的错误再犯。我们需要过程管理!,过程定义,菜谱里只写了做菜的原料和关键步骤。你买了菜谱并不会有个人去帮你做菜,那为什么菜谱还那么好卖?,因为菜谱定义了一个做菜的标准过程:什么时候放油,放多少,下一步炒什么,炒多久.,同样,CMM(菜谱)帮助我们定义软件开发过程(做菜步骤) 。,能力成熟度模型 (CMM),什么是CMM CMM(Capability Maturity Model),意思是软件成熟度模型 CMM通过审查一个组织开发软件的过程的规
8、范程度,来评价这个组织的软件开发能力 CMM的五个等级 第一级:初始级 第二级:可重复级 第三级:以定义级 第四级:已控制级 第五级:优化级,小结3,CMM分为哪五个等级? 飞行员驾驶飞机的时候,其操作步骤要遵循事先严格定义好的过程。请问这样做的好处在哪里?,角色分配权限(1),实现这个功能主要是通过一个用户对应一 个角色,一个角色对应多个权限控制的。,系统管理员登录 后看到的菜单,普通用户登录 后看到的菜单,通过RoleRight中的NodeId从SysFun表查找对应的菜单信息,如何给不同的角色分配不同的权限,角色分配权限(2),下面我们来看一下整个权限分配的处理过程,从角色管理页面点“权
9、限分配”超连接,RoleRight表中已经存在的菜单默认被选中,菜单分类显示,角色分配权限(3),选择父菜单时,其对应 的所有子菜单全被选中,选择子菜单时, 父菜单也被选中,角色分配权限(4),使用母版页,在SysManage文件夹 下新建页面“DistributeRole.aspx”, 分配角色权限 权限分配(选定后保存)当前角色 -background-color:#B4E5FD ,用于装载所有的权限菜单,关键HTML代码,角色分配权限(5),由多个父子 菜单组成,把一个父子菜单的组合做成用户控件,Hidden1:用 来存放父菜单Id,Hidden2:用 来存放角色Id,CheckBox:
10、 用来显示父菜单,CheckBoxList: 用来显示子菜单,新建“RoleUserControl.ascx”, ,选择父节点时,选中 其对应的全部子节点,选择任何一个子节点时, 其对应的父菜单也被选中,用户控件页面对应 的关键HTML代码,显示所有的父子菜单(1),下面编写代码实现:展示所有的父子菜单,使用用户控件时,需要把 “RoleUserControl.ascx” 拖到权限管理页面上,注册一下,父子菜单 归类显示,实现思路: 首先获得所有的父节点信息, 对每一个父节点查找它的所有子节点, 把父子节点一起生成一个用户控件, 然后放入PlaceHolder容器,protected void
11、 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
12、= (RoleUserControl)LoadControl(RoleUserControl.ascx); HtmlInputHidden hidParentMenu = (HtmlInputHidden)roleCotrol.FindControl(hidParentMenu); hidParentMenu.Value = nodeId; CheckBox chkParentMenu = (CheckBox)roleCotrol.FindControl(chkParentMenu); chkParentMenu.Text = displayName; phRoleDistribute.Con
13、trols.Add(roleCotrol); ,实例化隐藏域,用以存储父节点Id,实例化用户控件,得到所有父级节点信息,实例化用户控件中的CheckBox , 以显示父菜单名称,权限分配主页面DistributeRole.aspx对应的后台关键代码,显示所有的父子菜单(2),protected void Page_Load(object sender, EventArgs e) if (!Page.IsPostBack) DisplayRoleRightMenu(); protected void DisplayRoleRightMenu() int nodeId = int.Parse(hi
14、dParentMenu.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控件中,
15、用户控件页面RoleUserControl.ascx关键后台代码,运行程序,即可实现系统菜单归类显示,选中当前角色已经拥有的权限(1),Id 为“1”的普通用 户对应的角色权限,数据库中已经拥有 的节点默认被选中,选中当前角色已经拥有的权限(2),实现这个功能,我们只要在原来的基础上进行修改即可,查看修改后的关键代码,IList currentRoleParentNodes = RoleRightManager.GetParentNodesByRoleId(roleId); ArrayList arrRoleParentNodes = new ArrayList(); foreach (Rol
16、eRight roleRight in currentRoleParentNodes) arrRoleParentNodes.Add(roleRight.SysFun.NodeId.ToString(); ,根据角色Id获得当前 角色拥有的权限信息,循环将该角色拥有的父节 点添加到角色权限数组中,if (arrRoleParentNodes.Contains(nodeId) chkParentMenu.Checked = true; ,判断生成的父节点 是否已经在数组中,实现父子菜单之间的互选关系, 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) ,查看全部JavaScript方法,获得当前控件元素的Id,判断控件类型是否是checkbox,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采油平台水手岗前规章考核试卷含答案
- 低空经济应急处置规范
- 第三章-消费税的会计核算课件
- 人造花制作工道德评优考核试卷含答案
- 小学数学单元综合测试卷设计方案
- 幼儿园科学启蒙活动设计方案
- 企业人力资源管理案例分析题集
- 混凝土后浇带模板施工方案
- 建筑工程项目风险预测与防范措施
- 小学数学植树问题专项训练题解析
- T/CI 424-2024锂离子电池用复合铜箔材料轻薄化设计要求
- 2026年临汾职业技术学院单招职业技能测试题库新版
- 2025年CIC国际顾问认证考试备考题库及答案解析
- 《中国痛风诊疗指南(2025版)》
- 镜泊湖景区综合规划研究
- 安全生产四防内容是什么
- 2025江苏省江阴市中考数学带答案详解(综合卷)
- 智能建造讲解课件
- 财务文件分类管理办法
- 四川华电三江新区 100MW200MWh 电化学储能电站项目环评报告
- 农药执法课件
评论
0/150
提交评论