




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、广州大学华软软件学院广州大学华软软件学院 毕业论文(设计)毕业论文(设计) 课题名称课题名称 基于软件测试的缺陷管理系统的设计与实现 基本业务管理与信息统计分析模块 学学 院院 华软软件学院 系系 别别 软件工程系 专业班级专业班级 软件开发 2 班 学生姓名学生姓名 冯名诗 学学 号号 0740112244 指导教师指导教师 林平荣 日日 期期 2011 年 4 月 10 日 摘要: 软件测试近些年来在国内的发展非常快速,它可作为企业软件项目开发 中的软件质量和项目管理的监控技术,逐渐成为企业软件开发的成败直接挂钩的项 目过程。 fgwbms软件缺陷管理系统开发目的旨在建立一个以微软的asp
2、.net mvc2与 mssql server 2005为基础,符合cmmi对于软件缺陷管理功能,而且轻量、精致的 软件缺陷管理系统(bms)。 软件缺陷管理为本系统的主要应用目标,同时能够满足不同用户群(如项目经 理、测试人员、开发人员)的流程控制,提供足够灵活的接口是实现上述需求的关 键。 本论文主要介绍了基于 b/s 模式软件缺陷管理系统的 mvc2 三层模式与 ado.net entity framework(ef)混合开发架构的基本业务与信息统计分析模块的设计与实现, 侧重点放在了讨论这个程序的需求分析、设计、实现及所用到的项目管理知识。对 维护人员提交的缺陷报告认真鉴定、筛选、分类
3、,进入不同的处理流程,以获得真正 的缺陷跟踪数据。 关键词: mvc2,软件缺陷,bms abstract: software testing develops very fast in recent years domestically. it can be used as the monitoring technology of software quality and project management in the development of enterprise software project, and gradually becomes the project process
4、 tied to the success or failure of enterprise software development. the development aim of fgwbms is to establish a lightweighted and delicated bms based on microsofts mvc2 and mssql server 2005 to which accords with the function request of cmmi. the main application target of the system is to manag
5、e the software defect as well as satisfy different user groups (such as the project manager, testers, developers) process control above which is achieved mainly by providing the interface flexible enough. this paper mainly introduced mvc2 three-layer model based on the bms of b/s and the design and
6、implementation of the mixed development framework s basic business information as well as statistical analysis which belongs to ado.net entity framework (ef). the paper emphasises not only on discussing the needs as well as the design of the program but implementing the knowledge of project manageme
7、nt. to get the real defect tracking data, we must seriously identificate, screen, classificate the defect reports which is submitted by maintenance personnel and actualize different treatment process. keywords: mvc2;software defect;bms 目录 前 言 .1 第 1 章 系统分析 .3 1.1系统设计目的 .3 1.2功能简介 .3 1.3系统需求 .3 1.3.1
8、功能需求.4 1.3.2性能需求.9 1.4用例分析 .10 1.4.1主程序用例.10 1.4.2项目管理用例.11 1.4.3模块管理用例.12 1.4.4版本管理用例.13 1.4.5缺陷管理用例.14 1.5运行环境 .15 1.5.1硬件环境.15 1.5.2软件环境.15 第 2 章 数据库设计 .16 2.1数据库设计分析 .16 2.2数据库字典 .16 2.2.1t_project.16 2.2.2t_p_version.17 2.2.3t_p_module.17 2.2.4t_defect.18 2.2.5t_d_properties.18 2.2.6t_d_log.19
9、2.3e-r 图.20 第 3 章 功能模块设计 .21 3.1mvc 模式分析.21 3.2ado.net entity framework分析 .22 3.3开发设计模型 .23 3.3.1系统整体模式架构.24 3.4权限模块 .25 3.5模块结构 .27 3.5.1母板模块(shared/ site.master).27 3.5.2业务模块(view 目录下) .27 3.5.3控制模块(controllers 目录下) .30 3.6核心模块设计 .32 第 4 章 部分功能实现 .35 4.1asp.net mvc2 模式.35 4.1.1mvc2 的强类型 .35 4.1.2m
10、vc2 的代码组织 .36 第 5 章 系统测试 .39 5.1测试说明 .39 5.1.1测试平台环境如下:.41 5.1.2主要测试业务:.41 5.1.3功能测试:.41 5.2性能测试 .44 5.2.1测试对象.44 5.2.2测试工具.44 5.2.3测试目的.45 5.2.4术语及缩写词.45 5.2.5计算公式.46 5.2.6测试模型.47 5.2.7测试过程简述.47 5.2.8测试结果.48 设计总结 .49 致谢 .51 参考文献 .52 前 言 随着软件产业的发展,软件的质量已经越来越成为软件产品成功的关键性因素, 质量保证的一个重要方法就是通过测试活动来尽早的发现问
11、题。软件测试的出现保 证了软件在生产过程中的质量控制,在测试过程中所发现的质量问题就被称为“软 件缺陷”。 软件中的缺陷(defect 或 bug)是软件开发过程中的“副产品”。通常,缺陷会 导致软件产品在某种程度上不能满足用户的需要。每一个软件开发团队都必须知道 如何妥善处理软件中的缺陷,这关系到软件生存、发展的质量根本。 在软件开发流程的每个阶段都必须引入软件测试技术,及早测试,杜绝错误的 蔓延。然而,测试工作的天性决定了测试人员可能是开发人员总想回避的角色。在 测试实践的早期,当测试人员查出某个缺陷,报告给开发人员时,多数情况下开发 人员会象征性表示一下感谢,然后把测试报告撂在一边,继续
12、忙手头的工作。事后 到底有没有修改,谁也不知道。如果测试人员频繁给同一开发人员报错或不停地追 问缺陷的修改情况,开发人员或许会逐渐丧失好脾气,出于维护技术权威或其他目 的,他会狡辩:这不是错误,这是软件的一个特殊功能。或者说:这不是什么大问 题,现在开发进度紧,而且纠正起来也挺麻烦的,等有时间再说吧。于是,不了了 之,问题依旧存在。 为了规避这种情况的发生,软件企业必须引入软件缺陷跟踪管理机制。测试人 员不再需要直接与开发人员接触,甚至不需要知道开发者是谁,查出错误以后,直 接报到缺陷跟踪管理系统就可以了(有些测试团队是有写入权限控制的),开发人 员做不做修改以及什么时间之前必须完成修改是项目
13、管理部门的事情(当然测试团 队也可以提相关建议)。引入缺陷跟踪管理机制一方面划清了各个角色的职责,避 免了不必要争执,另一方面也有助于项目管理部门及时了解软件产品在生产过程中 所处的质量状况,从而更好地控制产品的质量。 bms 是 bugs manager system 的缩写,中文意思是缺陷管理系统,软件缺 陷管理是在软件生命周期中为确保缺陷被跟踪和管理所进行的活动。狭义地讲, bug 是写程序过程中造成的错误。广义地讲,bug 是影响客户正常使用的任何问题。 就是说,bug 不仅仅是编程中出现的问题,还包括客户需求和功能规范等方面。 那么缺陷管理有什么优点? 1. 便于查找和跟踪。对于大型
14、本地化软件的测试,报告的错误总数可能成百 上千个,如果在没有错误跟踪系统的情况下,要求查找某个错误,简直 是搜索者的恶梦,其难度和效率可想而知。这样就会导致某个缺陷被遗 忘,质量得不到保证。 2. 便于跟踪和监控错误的处理过程和方法。可以方便地检查处理方法是否正 确,可以确定处理者的姓名和处理时间,作为工作质量的统计和考核的 参考。 3. 便于集中管理,提高效率。本地化服务商和软件供应商共享同一个错误跟 踪系统数据库,各自负责处理己方需要处理的软件错误。对于需要对方 提供更多信息的错误,可以通过改变错误的当前信息(状态、处理者、 处理建议等) ,使对方尽快处理。 4. 安全性高。通过权限设置,
15、不同权限的用户能执行不同的操作,保证只有 适当的人员才能执行正确的处理。例如,测试工程师只能报告和验证错 误,修复工程师能够修复错误。 5. 保证处理顺序的正确性,根据当前错误的状态,决定当前错误的处理方法。 例如,如果是新报告的确认的错误,那么需要修复。如果是已经修复的 错误,需要测试者验证是否完全修复。 6. 便于项目结束后的存档。错误跟踪系统具有方便存储的特点,可以随时或 在项目结束后存储,以备将来参考。 在国外,缺陷跟踪对于保证软件质量的重要作用目前已经被大多数软件组织所 接受。在 s 上,几乎每一个比较受欢迎的开源项目,都有十分完备 的 bug 追踪记录。
16、 目前比较著名的商业缺陷跟踪软件有 compuware 公司的 trackrecord。开源软 件有 mozilla 的 bugzilla。 第 1 章 系统分析 软件中的缺陷(defect 或 bug)是软件开发过程中的“副产品” 。通常,缺陷会导 致软件产品在某种程度上不能满足用户的需要。每一个软件开发团队都必须知道如 何妥善处理软件中的缺陷,这关系到软件生存、发展的质量根本。 软件缺陷管理系统,管理的信息对象即是软件缺陷,在知道软件缺陷的定义之 后就可以进行管理。软件缺陷管理是在软件生命周期中为确保缺陷被跟踪和管理所 进行的活动。狭义地讲,bug 是写程序过程中造成的错误。广义地讲,bu
17、g 是影响 客户正常使用的任何问题。就是说,bug 不仅仅是编程中出现的问题,还包括客户 需求和功能规范等方面。 1.1 系统设计目的 本软件缺陷管理系统设计目的旨在建立一个以 asp.net mvc2 与 mssql 2005 为基础,功能简单、结构灵活而且轻量、精致的管理系统。软件缺陷管理为本 系统的主要应用目标,同时能够满足不同用户群(如项目经理、测试人员、开 发人员)的管理,实现上述需求的关键。 1.2 功能简介 项目管理功能:缺陷所对应的项目,模块,版本等的管理 缺陷管理功能:本系统的主要内容。 信息统计分析功能:对不同属性软件缺陷统计,并分析结论。 1.3 系统需求 在本文中主要是
18、从简单的两个方面进行阐述系统的需求,也是任何信息系统所关心的最基 本的需求:功能需求,与性能需求。 功能需求 功能需求是本系统体现其作用的重点,也是用户所要求的功能,作为一个软件 缺陷管理系统,其重中之重就是缺陷的管理。 同时作为一个软件缺陷,同样有其归属,软件缺陷只会出现在一个软件项目中, 这是一个大的方向。从细分的时候,一个项目有多个版本,一个版本中有多个模块, 而软件缺陷可以在这其中任一个对象当中。如整个项目和客户所需的软件不符合, 这是一个软件缺陷;某个版本的性能达不到客户要求,这是一个软件缺陷;某个版 本中的某个模块无法正常使用或得出的结果与客户要求的不符合,这一样是一个软 件缺陷。
19、所以软件缺陷和项目是不可分离的,要对软件缺陷进行管理,就必须对其 项目进行简单的管理。同时信息管理还有一个重要功能模块,即是统计功能,让项 目经理能够发现某种缺陷的发生频率与防止其再次发生。 任何的信息管理系统,都离不开其管理者,即使用者。软件缺陷管理系统发展 至今,可以说在项目中涉及的人员都可以使用软件缺陷管理系统,如在软件工程中, 项目的前期,如需求师;项目的管理人,项目经理;测试小组中,测试工程师;项 目中的开发人员。还有就是一个大项目中,多个组织和公司同时进行开发时,会多 出很多参与到项目中的人员。本系统是一个轻量级的软件缺陷管理系统,所以本文 只针对三个角色进行描述。
20、 项目管理需求: a)项目管理:新增项目、修改项目、删除项目、项目列表。 b)模块管理:新增模块、修改模块、删除模块、模块列表。 c)版本管理:新增版本、修改版本、删除版本、版本列表。 缺陷管理需求: 软件缺陷有一系列的属性组成,这些属性指示了需要系统跟踪和管理的是什么。 软件缺陷属性包括:缺陷标识、缺陷类型、缺陷严重程度、缺陷产生可能性、 缺陷优先级、缺陷状态、缺陷起源、缺陷来源、缺陷原因。 缺陷标识缺陷标识:是标记某个缺陷的唯一的表示,可以使用数字序号表示。 缺陷类型缺陷类型:是根据缺陷的自然属性划分缺陷种类 缺陷类型描述 功能影响了各种系统功能、逻辑的缺陷 用户界面影响了
21、用户界面、人机交互特性 文档影响发布和维护 软件包由于软件配置库、变更管理或版本控制引起的错误 性能不满足系统可测量的属性值,如执行时间,事务处理速率。 系统/模块接口与其他组件、模块或设备驱动程序、调用参数、控制块或 参数列表等不匹配、冲突。 表格 1-1 缺陷类型列表 缺陷严重程度缺陷严重程度:是指因缺陷引起的故障对软件产品的影响程度,所谓“严重 性”我指的是在测试条件下,一个错误在系统中的绝对影响。 缺陷严重等级描述 致命系统任何一个主要功能完全丧失、用户数据受到破坏 严重系统的主要功能部分丧失、数据不能保存 一般系统次要功能没有完全实现,不影响用户的正常使用 较小使操作者不方便或遇到麻
22、烦,它不影响功能的操作和执行 表格 1-2 缺陷严重程度 缺陷产生的可能性缺陷产生的可能性:指缺陷在产品中发生的可能性,通常可以用频率来表示。 缺陷产生可能性描述 总是总是产生这个软件缺陷,其产生的频率是 100% 通常按照测试用例,通常情况下会产生这个软件缺陷,其产 生的频率大概是 80-90% 有时按照测试用例,有的时候产生这个软件缺陷,其产生的 频率大概是 30-50% 很少按照测试用例,很少产生这个软件缺陷,其产生的频率 大概是 1-5% 表格 1-3 缺陷长生的可能性列表 缺陷优先级缺陷优先级:指缺陷必须被修复的紧急程度。“优先级”的衡量抓住了在严 重性中没有考虑的重要程度因素。 缺
23、陷优先级描述 立即解决(p1 级)缺陷导致系统几乎不能使用或测试不能继续,需立即修 复 高优先级(p2 级) 缺陷严重,影响测试,需要优先考虑 正常排队(p3 级) 缺陷需要正常排队等待修复 低优先级(p4 级)缺陷可以在开发人员有时间的时候被纠正 表格 1-4 缺陷优先级列表 一般来讲,缺陷严重等级和缺陷优先级相关性很强,但是,具有低优先级 和高严重性的错误是可能的,反之亦然。例如,产品徽标是重要的,一旦它丢 失了,这种缺陷是用户界面的产品缺陷,但是它阻碍产品的形象。那么它是优 先级很高的软件缺陷。 缺陷状态缺陷状态:指缺陷通过一个跟踪修复过程的进展情况,也就是在软件生命周 期中的状态基本定
24、义。 缺陷状态描述 打开问题还没有解决,存在源代码中,确认“提交的缺陷” ,等待处理,如新报的缺陷。 修复已被开发人员检查、修复过的缺陷,通过单元测试, 认为已解决但还没有被测试人员验证 关闭测试人员验证后,确认缺陷不存在之后的状态。 重新打开测试人员验证后,还依然存在的缺陷,等待开发人员 进一步修复 不能重现开发不能复现这个软件缺陷,需要测试人员检查缺陷 复现的步骤。 需要更多信 息 开发能复现这个软件缺陷,但开发人员需要一些信息, 例如:缺陷的日志文件,图片等。 表格 1-5 缺陷状态列表 缺陷来源缺陷来源:指缺陷所在的地方,如文档、代码等。 缺陷来源描述 需求说明书需求说明书的错误、或不
25、清楚引起的问题 设计文档设计文档描述不准确、和需求说明书不一致的问题 系统集成接口系统各模块参数不匹配、开发组之间缺乏协调引起 的缺陷 数据流(库)由于数据字典、数据库中的错误引起的缺陷 程序代码纯粹在编码中的问题所引起的缺陷 表格 1-6 缺陷来源列表 缺陷根源缺陷根源:指造成上述错误的根本因素,以寻求软件开发流程的改进、管理 水平的提高。 缺陷根源描述 测试策略错误的测试范围,误解了测试目标,超越测试能力 等 过程,工具和方 法 无效的需求收集过程,过时的风险管理过程,不适 用的项目管理方法,没有估算规程,无效的变更控 制过程等。 团队/人项目团队职责交叉,缺乏培训。没有经验的项目团 队,
26、缺乏士气和动机不纯等。 缺乏组织和通讯缺乏用户参与,职责不明确,管理失败等。 硬件硬件配置不对、缺乏,或处理器缺陷导致算术精度 丢失,内存溢出等 软件软件设置不对、缺乏,或操作系统错误导致无法释 放资源,工具软件的错误,编译器的错误,2000 千年虫问题等。 工作环境组织机构调整,预算改变,工作环境恶劣,如噪音 过大。 表格 1-7 缺陷根源列表 软件缺陷的属性只是作为一个软件缺陷的组成部分,参与人员需要管理缺陷不 只一个,不同的角色参与的管理也是不同的,所以下面是大概所需要的功能。 a) 缺陷管理:新增缺陷、修改缺陷、缺陷列表、缺陷日志。 业务的处理是本文的重点,也是本系统的重点之一。 整个
27、业务的一般流程都是根据软件缺陷的状态进行跟踪管理的,不同状态由不 同的角色进行处理,这就向工作流(bpm)一样。缺陷信息提交后,会进行分配,进 入待修正状态。通常情况下,被分配的开发人员会负责对它进行修复。然后由测试 人员进行验证,验证通过后就会被关闭。如果没有通过验证,就会交给开发人员进 行修复。但开发人员基于某种原因或理由,也可能会拒绝修改,这时会交给评审委 员会进行评审,如果通过评审,则这个缺陷会被关闭,否则开发人员还是要继续进 行修复。 这个过程涉及到的人员角色有: 测试人员:进行测试的人员,缺陷的发起者; 项目经理:对整个项目负责,对产品质量负责的人员; 开发人员:执行开发任务的人员
28、,完成实际的设计及编码工作; 信息统计分析需求: a) 信息统计:不同属性类型的缺陷统计、不同模块中缺陷统计、不 同版本中缺陷统计。 b) 统计分析:根据相应公式计算统计信息,得出结论。 1.3.2性能需求 忽略网络环境因素、主题模板及功能插件运作的因素,以本地测试为准。 响应时间与内存使用量: 数据库安装响应:时间 2 秒内,内存使用量最高上限 8,000,000 bytes。 前台浏览响应时间:时间 0.8 秒,内存使用量最高上限 9,000,000 bytes。 后台操作响应时间:时间 0.9 秒,内存使用量最高上限 9,000,000 bytes。 1.
29、4 用例分析 1.4.1 主程序用例 项目经理进行登陆认证后,在进行项目管理,模块管理,版本管理,缺陷管理 等方面的操作。 测试人员,开发人员进行登陆认证后,可以进行缺陷管理。 项目管理 模块管理 版本管理 缺陷管理 主程序用例图 项目经理 图 1-1 主程序一级用例图 测试人员 开发人员 信息统计与 分析 1.4.2 项目管理用例 项目经理 创建项目 统计项目数目 删除项目 编辑项目 内容 项目管理 图 1-2 项目管理用例图 修改项目 描述 修改项目 标题 a) 系统从项目管理中,提取编辑项目内容,创建项目,删除项目等功能,让 项目经理进行对其选择操作。 b) 编辑项目内容,包括修改项目标
30、题,修改项目描述。 c) 一旦项目经理完成编辑项目内容,创建项目,删除项目等方面的操作后, 系统就自动对项目进行统计数目。 1.4.3 模块管理用例 项目经理 创建模块 统计模块数目 删除模块 编辑模块 内容 模块管理 图 1-3 模块管理用例图 修改模块 描述 修改模块 标题 a)一旦创建项目后,系统从模块管理中,提取编辑模块内容,创建模块,删 除模块等功能,让项目经理进行对其选择操作。 b)编辑模块内容,包括修改模块标题,修改模块描述。 c)一旦项目经理完成编辑模块内容,创建模块,删除模块等方面的操作后, 系统就自动对模块进行统计数目。 1.4.4 版本管理用例 项目经理 创建版本 统计版
31、本数目 删除版本 编辑版本 内容 版本管理 图 1-4 版本管理用例图 修改版本 描述 修改版本 标题 a)一旦创建项目后,系统从版本管理中,提取编辑版本内容,创建版本,删 除版本等功能,让项目经理进行对其选择操作。 b)编辑版本内容,包括修改版本标题,修改版本描述。 c)一旦项目经理完成编辑版本内容,创建版本,删除版本等方面的操作后, 系统就自动对版本进行统计数目。 1.4.5 缺陷管理用例 a) 项目经理,在缺陷管理中,可以进行添加缺陷,编辑缺陷,等方面的操作。 b) 测试人员,可以发起缺陷,即添加缺陷。 c) 测试人员对缺陷进行验证,开发人员提交修复后,即修改缺陷状态操作 d) 无论任何
32、人在缺陷管理中对缺陷状态进行修改,都会记录其历史日志。 项目经理 缺陷管理 编辑缺陷 添加缺陷 图 1-5 分类管理用例图 修改缺陷 状态 记录缺陷 日志 开发人员 测试人员 1.5 运行环境 1.5.1 硬件环境 a) 服务器端: 服务器端的最低配置是由建立站点所需的软件来决定的,在最低配置的 情况下,服务器的性能往往不尽人意,现在硬件性能已经相当出色,而且价 格也很便宜,因此通常应给服务器端配置高性能硬件。 本网络系统服务器端的配置如下: 处理器:inter pentium(celeron) 4 2.4ghz 或更高。 内存:512mb 硬盘空间:60g 显卡:svga 显示适配器 1.5
33、.2 软件环境 a) 服务器端: 操作系统:windows nt/2000/2003/2008/xp professional 网站服务器:iis6 + .net 4.0 数据库管理系统:mssql sever 2005 b) 用户端: 操作系统:windows nt/2000/2003/xp professional 或 linux 2.6.4 .etc 第 2 章 数据库设计 2.1 数据库设计分析 各数据表描述 数据表数据表描述描述相关区域相关区域 t_project 项目信息 admin comments t_p_version 版本信息 admin settings t_p_modu
34、le 模块信息 admin posts t_defect 缺陷信息 admin catetories t_d_properties 缺陷属性信息 admin users t_d_log 缺陷日志信息 admin users 表 2-1 数据表描述 2.2 数据库字典 t_project 字段名类型默认值扩展描述 p_idvarchar(50)id p_titlevarchar(50) 项目名称 p_descriptionvarchar(500) 标识描述 表 2-2 t_project 表 键名类型字段名 pk_t_projectprimaryp_id 表 2-3 t_project 索引 2
35、.2.2 t_p_version 字段名类型默认值扩展描述 p_v_idnvarchar(50)id p_idnvarchar(50)fk-t_project.p_id 项目 id p_v_titlenvarchar(50) 版本名称 p_v_descriptionnvarchar(500) 版本描述 表 2-4 t_p_version 表 键名类型字段名 pk_t_p_versionprimaryp_v_id 表 2-5 t_p_version 索引 2.2.3 t_p_module 字段名类型默认值扩展描述 p_m_idnvarchar(50)id p_idnvarchar(50)fk-t
36、_project.p_id 项目 id p_m_titlenvarchar(50) 模块名称 p_m_descriptionnvarchar(500) 模块描述 表 2-6 t_p_module 表 键名类型字段名 pk_t_p_moduleprimaryp_m_id 表 2-7 t_p_module 索引 2.2.4 t_defect 字段名类型默认值扩展描述 d_idnvarchar(50)id d_titlenvarchar(50) 缺陷名称 d_properties_idnvarchar(50) fk- t_d_properties.d_p_id 缺陷属性 id d_descripti
37、onnvarchar(500) 缺陷描述 d_opendatedatetime 打开时间 d_updatedatedatetime 更新时间 p_idnvarchar(50)fk-t_project.p_id 项目 id p_v_idnvarchar(50)fk-t_p_version.p_v_id 版本 id p_m_idnvarchar(50)fk-t_p_module.p_m_id 模块 id d_handlerusernvarchar(50)fk-t_users.u_id 处理人 id d_designeenvarchar(50)fk-t_users.u_id 指派人 id d_spo
38、nsornvarchar(50)fk-t_users.u_id 发起者 id 表 2-8 t_defect 表 键名类型字段名 pk_t_defectprimaryd_id 表 2-9 t_defect 索引 2.2.5 t_d_properties 字段名类型默认值扩展描述 d_p_idnvarchar(50)id d_p_typenvarchar(50) 缺陷类型 d_p_severitynvarchar(50) 缺陷严重程度 d_p_prioritynvarchar(50) 缺陷优先等级 d_p_statusnvarchar(50) 缺陷状态 d_p_originnvarchar(50)
39、 缺陷根源 表格 2-10 t_d_properties 表 键名类型字段名 pk_t_d_propertiesprimaryd_p_id 表 2-11 t_d_properties 索引 2.2.6 t_d_log 字段名类型默认值扩展描述 l_idnvarchar(50)id l_datedatetime 日志时间 l_usernvarchar(50) 用户 l_d_idnvarchar(50) 缺陷 id l_descriptionnvarchar(500) 日志描述 l_statusnvarchar(50) 缺陷状态 表格 2-12 t_d_log 表 键名类型字段名 pk_t_d_l
40、ogprimaryl_id 表 2-13 t_d_log 索引 2.3 e-r 图 t_defect t_d_properties 1 d_id 拥有 1 d_p_id 图 2-2 缺陷管理 e-r 图 拥有 t_d_log l_id 1n t_defect s t_project 拥有 t_p_module 拥有 n1 1 1 p_id d_id p_m_id 图 2-1 主程序 e-r 图 t_p_version 拥有 n n p_v_id 关联 关联 1 1 1 1 第 3 章 功能模块设计 3.1 mvc 模式分析 使用像 asp,php,或者 cfml 这样的基于过程化开发的语言来开
41、发一般的 web 应用程序,它们的输入、处理和输出都不能很好的进行分离,因而很难体现出业务 模型和业务重用性,以至于代码难以结构混乱和难以维护。mvc 从根本上强制性的 将它们分开。 mvc 是一种将应用程序的逻辑层和表现层进行分离的方法。asp.net mvc2 是基 于模型-视图-控制器这一设计模式的。本系统采用 asp.net mvc2 框架下的 mvc 开 发模式。 模型模型(model)(model)代表你的数据结构。通常来说,你的模型类将包含取出、插入、 更新你的数据库资料这些功能。 视图视图(view)(view)是展示给用户的信息。一个视图通常是一个网页。 控制器控制器(con
42、troller)(controller)是模型、视图以及其它任何处理 http 请求所必须的资 源之间的中介,并生成网页。 mvc 三层模式的好处显而易见,首当其冲就是模型重性能很好地发挥,因为模 型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据 层和业务规则。由于运用 mvc 的应用程序的三个部件是相互对立,改变其中一个不 会影响其它两个,所以依据这种设计思想你能构造良好的松偶合的构件。 图 3-1 mvc 模式 3.2 ado.net entity framework 分析 图 3-2 ado.net ef 结构 ado.net entity framework 是
43、微软以 ado.net 为基础所发展出来的对象关系对 应(o/r mapping)解决方案。entity framework 以 entity data model(edm)为主, 利用抽象化数据结构方式,将数据库对象转换成应用程序对象,库表字段转换为属性,并 系转换为关联系统,把数据库的 e/r 模型转换成对象模型,使开发人员通过对概念应 用程序模型编程来创建数据访问应用程序,以此降低面向数据的应用程序所需要的 开发量,并减轻系统维护工作。 entity framework 技术的应用中,可针对数据库中各个表按照 1:1 映射生成模 型和映射信息,在代码中直接对表中数据进行增、删、改、查操作
44、。但在实际应用 中,这种简单的处理方式不利于进一步降低程序开发工作量,部分情况还违背了“程 序开发以应用为中心的概念模型来工作”的理念,对象的概念不清晰。为此,对几种 常用的数据库情景的建模方法进行列举: a) 带有有效载荷的多对多关系建模 b) 自引用关系建模 c) 跨表实体建模 d) 多实体建模 e) 多表派生建模 f) 表分割建模 3.3 开发设计模型 基于 asp.net mvc2 + ado.net ef 模型的一点看法,能解决数据访问到逻 辑分析考虑,为系统设计找到一个平衡点,它能把扩展功能从框架中剥离出来,降 低了框架的复杂度,让框架更容易实现。扩展功能与框架以一种很松的方式耦合
45、, 两者在保持接口不变的情况下,可以独立变化和发布。公开插件接口,让第三方有 机会扩展应用程序的功能,共同分享成果。 为更好地体现出系统的灵活性和可扩展性,本系统采用了 mvc 三层模式开发和 ado.net ef 的混合开发模式,实现数据连接层和业务层的分离,加上事件处理 (action)和过滤器(filter)处理的机制,在数据库存取数据时,进行格式化数 据。 系统整体模式架构 ontrollerontroller 控制器控制器 modelmodel 模型模型 ( (业务处理模型业务处理模型) ) viewview 视图视图 客户 m v c 模 型 图 3-3 混合式开发模型图 3.4
46、权限模块 asp.net 所具有的表现层,业务逻辑层和数据访问层的三层架构,使页面代码 与逻辑处理代码与访问数据库的代码相互分开并且相互透明。此系统的所有访问控 制和权限控制基本上是通过软件界面来实现的,通过对界面的控制来控制主体对客 体的访问。在系统中对界面的表现要求主要有两种:软件界面元素的可见性和可访 问性;软件界面数据集合的可见性和可操作性。即将用户按总部和办事处分角色, 总部可以看到全体办事处的信息,而办事处只能看到自己办事处的相关信息。 功能是实现主要是指能否方便正确得进行权限判断。为此,我使用了自定义的 authorizeattribute 用此来实现权限判定。 在 asp.ne
47、t mvc2 中,我们可以使用 authorize filter 限制用户对内容的访问, 但前提是要用到 membership / role 机制。 我们要不就使用内置的机制,要不就 派生出自己的。不管怎样,都比较麻烦。其实可以绕过这套机制,而且还能使用 authorizeattribute。 进行权限判断时,先获取 controller,action,以及存放在 session 中的用户 信息,检索数据库 controlleraction 表中有没有记录,如果 action 无记录,找 controller,都没有的话说明这个 controller 是不需要进行权限控制的,允许直接 访问。如
48、果有的话,首先判断该 controller 是否属于 isallowednoneroles(无角色)的 范畴。true 则说明该 controller 允许没有角色的,也就是说允许所有人,包括没 有登录的用户。false 则判断该用户是否拥有角色。 用户无角色,则禁止访问;有角色,就选出 action 对应的角色。如果角色数量 为 0,也就是说没有定义访问规则,默认允许访问。如果该 controller 不属于 isallowedallroles(允许所有角色),就查询查询该 controller 与 role 的关联信 息。没关联信息,则禁止访问;有关联信息,就判断是否在禁止的角色列表中。在
49、 列表中,则禁止访问;不在列表中,还得判断用户的角色是否在允许的角色中。是, 则允许访问;否,则禁止访问。 访问 xxcontroller/xxaction 允许访问 用户是否 有角色 禁止访问 查询与 role 的 关联信息 有无关 联信息 判断用户的角 色是否在禁止 的角色中 判断用户的角色是 否在允许的角色中 不在列表中,默认禁止访 问 无关联信息 在允许的用 户列表中 false 在禁止的列表 中 false true true 有角色 不在列表 中 有关联信息 图 3-4 权限模块设计图 isallowednonero les(无角色) 是否有 indexaction 的记录 是否有
50、 homecontroller 的记录 isallowedallroles (允许所有角色) 有 有 无 无 无角色 3.5 模块结构 3.5.1 母板模块(shared/ site.master) 母板模块用于前台视图的内容显示,主要定义了多个contentplaceholder,包 括五个contentplaceholder,每个contentplaceholder标签的具体职责为: 1. toppanel:顶部 actionlink 连接信息 2. maincontent:包括显示和获取主页面的数据信息 3. titlecontent:包括显示和获取当前页面标题信息; 4. sider:
51、包括显示和获取当前用户信息; 5. footer:包括显示和获取当前页脚信息; 3.5.2 业务模块(view 目录下) 项目管理模块: 1项目管理 project 目录下的为数据的获取、处理及输出 1. project/index.aspx :项目管理首页,自动根据所登录用户参与的项 目列出项目列表。可进入查看项目详细信息,只用项目经理才有权限添 加项目。 图 3-5 项目列表页面 2. project/ details.aspx :项目详细信息页面,列出基本项目信息,模 块列表,版本列表,参与人员的信息。只有项目经理才有权限对模块、 版本、人员进行添加、修改、删除等操作。 图 3-6 项目
52、详细信息页面 3. project/ edit.aspx :项目编辑页面 4. project/addproject.aspx :创建项目页面,包括输入项目名称与项目 描述等信息。 图 3-7 创建项目页面 2版本管理 version 目录下的为数据的获取、处理及输出 1. version/addversion.aspx :创建版本页面,包括输入版本名称与版本 描述等信息。 图 3-8 创建版本页面 2. version/edit.aspx :版本编辑页面 图 3-9 版本编辑页面 3模块管理 module 目录下的为数据的获取、处理及输出 1. module/addmodule.aspx :
53、创建模块页面,包括输入模块名称与模块描 述等信息。 4缺陷管理模块: 1. defect/index.aspx:项目管理首页,自动根据所登录用户参与的项目列出 项目列表。可进入查看项目详细信息,只用项目经理才有权限添加项目 2. defect/details.aspx:项目详细信息页面,列出基本项目信息,模块列表, 版本列表,参与人员的信息。只有项目经理才有权限对模块、版本、人员 进行添加、修改、删除等操作。 3. defect/adddefect.aspx:创建项目页面,包括输入项目名称与项目描述等 信息。 3.5.3 控制模块(controllers 目录下) 控制器模块中每一个 acti
54、on 代表一个页面 控制器主要有: 1. 项目控制器(projectcontroller): 包含了添加项目(addproject),删 除项目(delete),项目详细(details),编辑项目(edit)等多个 action 图 3-10 项目控制器类 2. 模块控制器 (modulecontroller) 图 3-11 模块控制器类 3. 版本控制器 (versioncontroller) 图 3-12 版本控制器类 4. 缺陷控制器 (defectcontroller) 图 3-13 缺陷控制器类 3.6 核心模块设计 一个缺陷的一般生命周期是如下顺序, “提交”“分配”“修正”“验
55、证” “通过”“关闭” ,如图 3-14 所示: 初始化 提交 (a1) 待分配 bug 基本信息 分配 (a2) 待修正 修正 (a3) 待验证 角色说明 a1: 测试人员 a2: 项目经理 a3: 开发人员 a4: 评审委员会 bug 修改信息 未通过 (a1) 拒绝修改 (a3) 通过 (a1) 评审通过 (a4) 评审不通过 (a4) bug 验证信息 待评审关闭 图 3-14 缺陷状态流程图 这里,我们简化了软件缺陷管理的流程,将角色设置为测试人员、测试经理、 开发人员、项目经理四种。由测试人员“提交”缺陷,经过测试经理审核确认为一 个缺陷时, “打开”缺陷,通知开发人员修复,开发人
56、员检查后不认为是一个缺陷, 也就是“发生冲突” ,此时项目经理查看该缺陷信息,裁决仍属于缺陷,需要被修 复,于是“重新打开”缺陷,然后由开发人员修复该缺陷,测试人员再进行回归测 试,测试经理审核验证后确认修复完毕, “关闭”缺陷。 在 uml 中,活动图常常被用来简化描述一个过程或者操作的工作步骤。它是状 态图的一种扩展。活动图描述了一个动态的过程,这样就不易找出过程中各个活动 由哪个对象负责。为了弥补这个缺点,活动图中引入了泳道这个概念。泳道是一张 图被分割成多个平行的段后每一个段的名称,每个泳道的顶部可以显示出角色的名 称,每个角色负责的活动放在各个角色的泳道中。一个泳道到另一个泳道之间可
57、以 发生转移。 下面给出四种角色权限的操作流程的活动图: 1、测试人员:查看缺陷;提交缺陷。如图 3-15 所示。 2、开发人员:查看缺陷,判断是否需要处理缺陷,若需要,则处理缺陷,并 置缺陷状态为“已处理” ;若不需要,则置缺陷状态为“发生冲突” 。如图 3-16 所 示。 3、项目经理:解决冲突。当缺陷状态为“发生冲突”时,确认是否需要处理 缺陷,若需要,则置缺陷状态为“重新打开” ;若不需要,则置缺陷状态为“结束” 。 如图 3-17 所示。 以下是相关的活动图的说明情况: 图 3-15 测试人员操作流程图 图 3-16 开发人员操作流程图 图 3-17 项目经理操作流程图 第 4 章
58、部分功能实现 asp.net mvc2 模式 4.1.1mvc2 的强类型 mvc2 中的调用简单易用,数据部分为model文件夹下各个的类。mvc2在之前mvc 的前提下做了改进,使用了强类型,使得数据的操作即业务逻辑更加安全有效,所 以在一个view下我们绑定了一个类,所以就会出现一个.cs文件下会出现多个类, 并且其内容大部分都相同。 % page title= language=c# masterpagefile=/views/shared/site.master inherits=system.web.mvc.viewpage % . 添加缺陷 model.defcet_title)
59、% model.defcet_title, new style = width:60% )% model.defcet_title)% “inherits=system.web.mvc.viewpagefgwbms.models.adddefectmodel”, 即是在页面中和adddefectmodel模型进行绑定,在页面上使用了强类型,业务逻辑 对其进行操作。 4.1.2mvc2 的代码组织 model,view,contorller的有效集合,减轻了开发的复杂度,分工更加明确,不 同的程序员,负责各自不同层次。 namespace fgwbms.models public class a
60、dddefectmodel qx1entities qx = new qx1entities(); displayname(标题) public string defcet_title get; set; displayname(描述) public string defcet_description get; set; displayname(类型) public list defcet_type get; set; displayname(严重程度) public list defcet_serverity get; set; displayname(优先级) public list de
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 历史村落保护规划基础知识点归纳
- 2025年大学计算机复试题
- 地理(武汉专用)2025年中考考前押题最后一卷
- 冀教版小学一年级数学三单元教学设计
- 绿色金融产融合作的国际化发展趋势与实践经验
- 完善企业民主管理制度的绩效评估与反馈机制
- 智慧养老的策略及实施路径
- 天然气管道项目可行性研究报告
- 2025至2030年中国法院案件诉讼管理系统行业投资前景及策略咨询报告
- 深化拓展生态文明建设的策略及实施路径
- 四年级下册数学方程题100道及答案
- 小学数学小专题讲座《数学教学生活化-》
- 军队文职人员招聘(军需保管员)历年考试真题试题库(含答案)
- 2024北京海淀区初三一模英语试卷和答案
- 中建三局三公司安装分公司劳务企业定额
- 《选品与采购》中职全套教学课件
- HG∕T 4591-2014 化工液力透平
- 国家开放大学《工程地质(本)》形考作业-1-4参考答案
- 2024年新疆发声亮剑发言稿3则
- JT-T-1344-2020纯电动汽车维护、检测、诊断技术规范
- 【网上书店设计与实现20000字(论文)】
评论
0/150
提交评论