• 教育软件项目的质量管理

    普通类
    • 支持
    • 批判
    • 提问
    • 解释
    • 补充
    • 删除
    • 一、教育软件项目质量的内涵

    (一)概念:        

    质量是反映产品或服务满足明确的和隐含的需要的能力特性总和(ISO)。

    教育软件质量是指为教育服务的软件系统满足明确说明或者隐含的需求的程度。

    • 二、教育软件项目的质量管理的重要性

    质量管理是软件项目管理的核心内容,软件的质量是软件开发各个阶段质量的综合反映!
    所谓教育软件项目的质量,就是指与教育软件项目产品满足明确或隐含需求的能力有关的特征总和,它主要反映了三个方面的信息特征:(1)能满足用户需求的特性之全体;(2)利用各种质量标准体系,指导教育软件开发人员开发软件;(3)是否满足用户隐含需求。(陈淦, 2006)

    通过以上信息可以看出,不论教育软件开发模式如何演变,教育软件项目的质量始终是教育软件的核心竞争力。而要真正实现和提高教育软件项目质量,就必须通过执行项目质量管理,并通过使用一些基本项目质量管理工具和技术来实现。同时,教育软件项目的质量管理为管理者提供软件项目正在使用的过程和正在构造的产品的适当的可视性,满足教育软件本身的需求就存在多样性和变化性,扩大数字化校园中的软件项目规模,为教育行业信息化做出了巨大贡献。
     

    • 三、教育软件质量管理的方法

    (一)管理法则

    图 1  教育软件项目质量管理法则

    (二)人员因素

    项目团队成员通常要履行许多不同的角色职能,就象一个人可以担任许多职务,一个人也可以担任许多不同的角色,角色并不代表个人,而是说明个人在业务中应该如何表现以及他们应该承担的责任,虽然大多数角色都由组织内部人员来实现,但开发组织之外的人员也担当了一种重要的角色。参考RUP Rational Unified Process对团队成员的角色的描述,我将组成项目开发团队的人员分为以下几种角色:分析员角色集、开发人员角色集、测试员角色集、经理角色集。测试员角色集则是教育软件项目的质量管理的主要人员。

    测试员角色集:测试员角色集用于组织主要从事软件测试的各种角色

    1.测试设计员

    负责对测试进行计划、设计、实施和评估,生成测试计划和测试模型,执行测试过程,评估测试范围和测试结果,以及测试的有效性,生成测试评估摘要。测试设计员应具备的相应技能和知识包括

    (1)了解系统或所测试的应用程序

    (2)了解测试及测试自动化工具

    (3)具备诊断和解决问题的技能

    (4)编程技能 最好具备

    2.测试员

    测试员负责执行测试。其职责包括设置和执行测试、评估测试执行过程并修改错误。测试员应具备的知识和技能可能会因为他们所执行的测试类型或测试阶段的不同而有所差异。例如 在执行性能测试或集成阶段的测试时,需要更高级的技能,在执行功能测试或系统测试阶段的测试时,则不需要太高级的技能。

    3.初级测试员        

    (1)了解系统或所测试的应用程序

    (2)了解测试及测试自动化工具

    (3)具备诊断和解决问题的技能

    (4)编程技能 最好具备

    4.高级测试员

    (1)了解系统或所测试的应用程序

    (2)了解联网和系统构架

    (3)了解测试及测试自动化工具

    (4)具备诊断和解决问题的技能

    (5)编程技能 必备

    (三)管理工具

    1.软件缺陷管理工具 -- BugFree平台

    如何有效地管理软件产品中的 Bug,是每一家软件企业必须面临的问题。遗憾的是很多软件企业还是停留在作坊式的研发模式中,其研发流程、研发工具、人员管理不尽人意,无法有效的保证质量、控制进度,并使产品可持续发展。针对这个问题,BugFree应运而生,用它来管理Bug,可以不断提高产品质量。

    BugFree是借鉴微软的研发流程和Bug管理理念,使用PHP+MySQL独立写出的一个Bug管理系统。简单实用、免费并且开放源代码(遵循GNU GPL)。 命名BugFree 有两层意思:一是希望软件中的缺陷越来越少直到没有;二是表示它是免费且开放源代码的,大家可以自由使用传播。而且开放源代码之后,期待高手不断改进它,大家都能用到更加强大的功能。BugFree代码在我们的“数字神经系统”中非常独立,很容易拿出来给大家共享。

    不过坦率的讲,BugFree 仅仅是个工具而已,重要的是掌握其中蕴含的软件研发的流程思想,才能用好这个工具。如果你以前没有用过 Bug管理系统,那么一开始的时候也许你会觉得这个工具是在浪费时间,因为一个测试人员需要费神把发现 Bug的详细步骤记录下来, 有时还要贴一张示意图,这一切都不如当面说来得直接。

    但是使用一段时间,你会发现 BugFree很有用,它忠实的记录着每个问题的处理过程, 不断提醒你存在的问题,永远不会丢失和忘记。如果你参与过较大软件项目或产品的研发, 就会理解它对软件可持续发展是至关重要的。而且研发的规模越大,BugFree 的作用就会越大。

     

     

    图 2  BugFree

    2.源代码管理工具 – Tortoise SVN

    TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。

    版本控制是管理信息修改的艺术,它一直是程序员最重要的工具,程序员经常会花时间作出小的修改,然后又在某一天取消了这些修改,想象一下一个开发者并行工作的团队 - 或许是同时工作在同一个文件!- 你就会明白为什么一个好的系统需要管理潜在的混乱。

    某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性 - 比如,对编程语言的支持,或者提供程序构建工具。不过 Subversion 并不是这样的系统;它是一个通用系统,可以管理任何类型的文件集,包括源代码。

    是什么让 TortoiseSVN 成为一个好的 Subversion 客户端?下面是一个简短的特性列表。

    (1)可选的网络层

    Subversion 在版本库访问方面有一个抽象概念,利于人们去实现新的网络机制,Subversion 的“高级”服务器是 Apache 网络服务器的一个模块,使用 HTTP 的变种协议 WebDAV/DeltaV 通讯,这给了 Subversion 在稳定性和交互性方面很大的好处,可以直接使用服务器的特性,例如认证、授权、传输压缩和版本库浏览等等。也有一个轻型的,单独运行的 Subversion 服务器,这个服务器使用自己的协议,可以轻松的用 SSH 封装。

    (2)数据处理

    Subversion 使用二进制文件差异算法展现文件的区别,对于文本(人类可读)和二进制(人类不可读)文件具备一致的操作方式,两种类型的文件都压缩存放在版本库中,差异在网络上双向传递。

    (3)高效的分支和标签

    分支与标签的代价不与工程的大小成比例,Subversion 建立分支与标签时只是复制项目,使用了一种类似于硬链接的机制,因而这类操作通常只会花费很少并且相对固定的时间,以及很小的版本库空间。

    (4)维护能力

    Subversion 没有历史负担,它由一系列良好的共享 C 库实现,具有定义良好的 API,这使 Subversion 非常容易维护,可以轻易的被其他语言和程序使用。

    (5)外壳集成

    TortoiseSVN 与Windows 外壳(例如资源管理器)无缝集成,你可以保持在熟悉的工具上工作,不需要在每次使用版本控制功能时切换应用程序。并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展开发,因此在其他程序可能集成的并不完整,例如重载图标可能不会显示。

    (7)重载图标

    每个版本控制的文件和目录的状态使用小的重载图标表示,可以让你立刻看出工作副本的状态。

    (8)Subversion 命令的简便访问

    所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里添加子菜单。

    因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 Subversion 本身的特性

    (9)目录版本控制

    CVS 只能追踪单个文件的历史,但是 Subversion 实现了一个“虚拟”文件系统,可以追踪整个目录树的修改,文件和目录都是版本控制的,结果就是可以在客户端对文件和目录执行移动和复制命令。

    (10)原子提交

    提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提交修改版本控制的元数据。每个文件和目录都有一组附加的“属性”,你可以发明和保存任意的键/值对,属性是版本控制的,就像文件内容。

    图 3  SVN源代码管理工具

    3.在线项目管理平台—TeamLab

    TeamLab 是一个免费的商业协作和项目管理的平台。TeamLab 主要功能包括:项目管理、里程碑管理、任务、报表、事件、博客、论坛、书签、Wiki、即时消息等等。

    图 4  TeamLab

    (四)管理过程

    1.产品开发生命周期

    通过全员参与、策划、监控和改善产品生命周期的过程质量来保证产品和服务质量。PLCTQMS框架体体现了以质量规划、质量监控与质量改进三大活动为基础,以产品、指令、资源管理为主线围绕产品生命周期展开的质量管理体系。通过质量规划、质量监控和质量改进三大活动来完成质量策划、测量、分析、监控与持续改进功能,借助于过程组织活动,将指令管理、产品管理和资源管理贯穿于产品的整个生命周期过程。

    图 5  PLCTQM 基本框架

    PLCTQMS总体构架划分为三个层次,即访问层、应用层和支持层。

    访问层:对赋予不同访问权限赋于企业内部成员,由企业访问相应的功能模块。对于外部企业成员、游客、供应商、销售商和客户等用户不受地域限制,通过系统提供的 Web 服务窗口,由Internet以注册会员或匿名方式访问系统某些功能模块,如产品质量报告、质量投诉中心等,方便质量信息的获取、质量问题的讨论、质量知识评价和生成,利于企业之间以及企业与供应商、销售商和客户之间的及时沟通,了解产品的质量信息和需求信息。

    应用层:是系统的主体,包含了系统实现的主要功能模块:登录管理模块(login management

    Module,LMM)、过程可视化支撑子系统(processvisual support system,PVSS)、过程数据录入子系统(process data input system , PDIS)、质量报表输出子系统(report output System,ROS)、“问题”驱动的质量分析知识子系统(quality knowledge man-agement system,QKMS)、质量工具辅助支持子系统(quality tool support system,QTSS)、数据库管理子系统(database management system,DBMS) ,以及在线帮助、讨论辅助扩展子系统(help discusssystem ,HDS)等.

    支持层:提供支持系统运行的软硬件环境,包括计算机与网络等硬件环境、操作系统和统一的数据库。本系统基于 Internet /Intranet /Extranet ,以 Win-dows2000或 WinNT 为平台,由 Resin 3. x 提供 Web 服务运行平台,采用 SQL Server2000 作为统一数据库。

    图 6  PLCTQMS 总体构架

    2.里程碑控制的质量监测

    项目时间节点又称为项目的里程碑时间点,里程碑时间点是项目关键路径中重要任务项的目标时间,里程碑事件是确保完成项目需求的工作项目序列中不可或缺的关键任务。里程碑事件和时间点犹如项目进度执行过程中的领航灯,将项目目标分解为二级目标。控制好各个项目里程碑时间点,按时完成项目目标。

    (1)控制时间节点:把一个项目分成几个阶段,控制各个阶段的时间和任务。

    (2)编制里程碑计划:

    ①从项目既定目标开始,反向推算其紧前关键目标,依此类推衍生出从项目起始到终结的所有关键目标。

    ②依据过去同类项目的经验,确定各个里程碑任务并合理命名。

    ③复查各个里程碑,有些里程碑可能是另外某个里程碑的一部分,而有些则是独立的里程碑事件。

    ④尝试每条因果路径, 使其成为前后相关路径。

    ⑤从最后一个目标开始, 顺次往前,找出逻辑依存关系。以便可以复查每个里程碑,增加或删除某些里程碑, 或者改变因果路径的定义。

    ⑥画出最后的项目里程碑图表。

    (3)控制里程碑达成率

    图 7  检查里程碑结果

    3.螺旋式开发模型

    螺旋式开发模型适合大规模软件项目。

    (1) 制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;

    (2) 风险分析:分析评估所选方案,考虑如何识别和消除风险;

    (3) 实施工程:实施软件开发和验证;

    (4) 客户评估:评价开发工作,提出修正建议,制定下一步计划。

    4.缺陷趋势监测和管理

    图 8 

    5.测试版本制作过程控制

    制定合理的版本发布计划,并加强版本控制管理:软件版本的发布应有计划的执行,在项目开发计划中明确发布版本的时机和版本更新的策略,简单的说就是明确在什么条件下可以发布测试初始版本;什么条件时进行主版本、子版本的更新。

    强化测试准入条件:在开发人员发布测试版本时,应有相应的文档支持如自测报告、软件版本说明等等,这是前提,不满足这个前提,测试活动不应启动。

    强化BUG管理:充分使用TD测试管理工具,做好BUG管理工作。

    做好版本控制的文档管理工作:在每次提交测试版本,执行测试时都会生成相应的文档以便来记录版本信息和测试记录及测试结果等等,管理好这些文档,不仅有助于跟踪和监测测试版本的执行,而且也便于对测试活动的追溯。

    积极解决问题的态度:无论是开发人员还是测试人员,在版本控制过程中都应有积极的态度,遇到问题及时沟通,以高效的方式来解决问题。

    6.风险分析和管理
    http://www.cssn.cn/glx/glx_glgc/201310/t20131029_740122.shtml

    • 五、参考文献

    康壮. 软件开发项目管理方法研究[D]. 对外经济贸易大学, 2003.

    谢魁, 赵呈领, 陆三兰. 教师与教育技术人员在CAI软件设计上的差异分析[J]. 中国电化教育, 2001, 07期:38-40.

    徐颂, 黄文. 里程碑控制在研发项目进度管理中的应用[J]. 项目管理技术, 2011, 05期(5):86-90.

    邓军, 余忠华, 杨基平,等. 面向产品生命周期的全面质量管理系统[J]. 浙江大学学报(工学版), 2005, 04期:500-505.

    • 标签:
    • 里程碑
    • 质量管理
    • 文件
    • 控制
    • subversion
    • 教育软件
    • 质量
    • 项目
    • 测试
    • 版本
    • 管理
  • 加入的知识群:
    学习元评论 (0条)

    评论为空
    聪明如你,不妨在这 发表你的看法与心得 ~



    登录之后可以发表学习元评论
      
暂无内容~~
顶部