高校MIS系统开发中的软件质量控制 |
高艳明(转载自51CMM) 2003年05月19日 |
我有话说…… |
编辑点评: 本文是作者参加系统分析员考试时的论文。作者严格按照论文写作的三大块进行构思和写作,正文中并没有罗列教科书上的质量管理原则和方法,而是从“十分琐碎”的设计和开发过程中贯穿这些原则和方法,可信性很高。这就是本文的特点和优点。然而,整篇文章表达形式口语化,对个人背景及其他细节问题介绍过多,影响了论文的质量。 摘要: 本文主要阐述了我在高校校园MIS系统开发中实施软件质量控制所采取的措施。严格进行系统分析与设计,并形成系统分析说明书书面文档;利用项目管理工具MS Project2000提高工作效率;组建项目顾问组,让将来的用户和专家参与到软件项目中来;全院范围内寻找编程高手参与软件开发,并进行统一的培训,包括项目方案的培训和统一代码编写方案的培训;选择合适的开发工具PowerBuilder、FrontPage;严格按照软件测试的理论进行单元测试、集成测试等。最终,在全体成员的共同努力下,我们提前一个月完成了项目的设计与开发,并得到了项目组顾问和校领导的一致好评。 正文: 随着计算机科学的进步和新技术的不断涌现,我们学院的MIS愈来愈显得笨拙。以前的MIS系统都是在没有统一规划的情况下,看到需要什么就加上什么功能模块这样一点点累加起来的,随着高校招生规模的扩大,原有的MIS系统已经不能满足当前的需要。因此,学院决定重新规划建设学院的MIS系统,充分利用成熟先进的新技术推进学校的信息化建设。尤其是要进一步完善办公自动化软件,尽快实现真正的无纸化办公。为此,学院建立了以院长为组长多位专家教授为组员和顾问的软件开发项目组,在具体开发方面则主要有我的导师来完成。因为我的导师是我们学校计算机软件开发方面的专家,曾留学国外,不仅具有丰富的理论知识而且还具有在软件公司参与项目规划的经验。 我从高一开始接触计算机,在那时就对计算机产生了极大的兴趣,在小霸王学习机上编写数学方面的计算的小程序,梦想着有一天考上大学更好的学习计算机知识。进入大学后第二年就顺利通过了江苏省计算机等级考试三级偏软和三级偏硬(公认观点是江苏省计算机等级考试比全国计算机等级考试难度大一些),随后又以上午场62分,下午场63分的优异成绩顺利通过高级程序员(系统设计师)的水平考试。在计算机方面小有成绩后被我的导师发现并要我过去参与他的软件开发项目。能够在大学期间跟着一位老师做项目那是很多追求科技知识的学生梦寐以求的事情,我当时兴奋得一夜没睡,拿着厚厚地Visual C++技术内幕 “贪婪”地研究起来,准备大干一场。最终因为在开发团队中表现出色被大家选为项目组长。 因为当时我的导师的教学及科研任务很多,还要参加开发系里面已经接下的项目,鉴于我以前的成功表现,我的导师决定给我一个机会,让我来主持学校MIS系统的规划和软件开发工作。我十分珍惜这次来之不易的机会,暗下决心一定要将这个项目做得出色。 首先进行项目的系统分析与设计。校园MIS项目的开发时间初步定为6个月,我分配给系统分析与设计阶段的时间为45—60天。这里值得一提的是,我要求学院领导帮助我们软件开发组成立一个由学院领导牵头各系负责人、辅导员代表及后勤部门的负责人、代表以及学校的各系的专家教授组成的顾问组,受到了学院领导的怀疑和嘲笑。他认为软件开发的工作已经交给我们计算机系了,理应由我们系组织完成开发,不需要兴师动众调集全院的人员。经过多次的沟通和解说,告诉他们软件开发离不开用户的支持,而且,开发出来的软件是给用户用的,用户知道他最需要的是什么功能,而且他们有使用以前的MIS系统的经验,知道以前系统的弊端,而以前系统的弊端正是我们需要改进的地方。而且,用户了解他们的“业务需求”,这些都是我们做系统分析与设计以及进一步开发的基础。后来,院领导明白了这是保证软件项目成功和保证软件质量必需的,立即暗我们的建议组成顾问组,开动员会,为我们顺利优质地完成系统分析与设计工作打下了坚实的基础。在调研了三个礼拜之后,我花了一个礼拜的时间完成了校园MIS系统分析与设计说明书,交给我的导师审阅。同时完成系统需求说明书交给项目顾问组审阅,得到了他们的肯定,并提出了修改意见。我的基于C/S和B/S相结合的设计方案得到了它的肯定。B/S是未来瘦客户机的趋势,但是C/S技术比较成熟,所以我选择了两者结合的折衷方案。受到肯定的同时他也为我提出来修改意见,例如部分业务不明白、含含糊糊。在后来的两个礼拜的时间中我多次跑到各系办公室的和后勤部门去了解他们具体的业务,真正搞清楚各个细节问题,然后加工完善初期设计方案,并交给我得导师审阅,导师少有的微笑肯定了我的工作。修改后的系统需求说明书也得到了顾问组的称赞。系统分析与设计阶段提前保质完成,为整个项目的顺利进行和质量的保证奠定了良好的基础。 系统分析与设计方案中主要根据我们学校的具体情况进行了模块划分。具体的讲,整个MIS系统有以下模块组成:学生收费信息系统模块:学生信息管理与服务系统模块、研究生教育信息系统模块、继续教育学院信息系统模块、校园新闻管理信息系统模块、科技成果项目与信息检索信息系统模块、就业管理与服务信息系统模块、校友信息系统模块和档案管理信息系统模块等,并对各个模块的功能进行了具体的界定。 网络办公自动化模块:这是一个校内机关的办公系统,可以进行文件传送、批阅,公文流转、分发、签发,还有部门管理信息,分类管理信息,专题信息管理以及全文检索等功能。 本科教学管理信息系统模块:①、学年制/学分制两种条件较无处教学管理与计算机自动排课:培养计划、执行计划,网上排课及任课教师和教室管理等。②、本科生学籍管理:注册收费、成绩管理、学籍异动;网上选课等。 组建开发团队在确定项目开始实施时就已经开始了。为确保项目在规定的时间内高质量地完成,我们决定在全院范围内广泛召集计算机高手参与学校的MIS系统的开发工作。在院科协和各系科协发布“招聘”消息,并张贴海报寻找“不漏相”的真正的高手,最终在全院师生的配合下寻找到了真正的高手组建了我们的团队,并按照我们的工作量和各个模块的划分组建了数个个团队,每个团队推荐一人任组长,各个团队的组长组成了MIS项目工作组。每个团队实行组长负责制,负责团队的整体部署以保障各项工作的顺利完成。 统一的代码编写标准也是我们提高软件质量的一个重要举措。我的导师已开始就和我谈到了这个问题,毕竟他非常有经验。统一的代码编写标准一方面可以培养我们的优秀的编程习惯,而且为我们后来的代码测试提供方便,更远的为将来的系统维护提供便利。而且我们提供的代码编写标准比较科学,而且很多是优秀软件公司的经验总结,也为我们的开发人员今后走向工作岗位铺了铺垫。比如说,我们要求各个团队还要将平时出现的代码编写错误写出来挂在墙上,让每个人都知道,不让同样的错误再犯,一方面提高了我们的工作效率,另一方面也减少了测试阶段的工作量,间接提高了软件的质量。 培训是我们这个项目的非常重要的一环。一方面,培训我们的开发人员,使他们熟悉我们的开发工具和代码编写标准;另一方面,将我们的项目的整体情况和各个细节以及我们的进度和要求传达给我们的开发者。这项培训工作主要由我的导师来完成。 制定软件开发进度表也是必不可少的事情。这项工作主要有我来完成。因为以前学习过几种软件项目分析与管理工具,在充分考虑各个工具的特色后,我最终选择了我比较熟悉的MS Project2000作为我们校园MIS项目的管理工具。充分利用MS Project2000所提供的功能,例如使用甘特图等。尤其是我对项目进行分析并寻找到了关键路径,然后在整个项目开发团队中贯彻实施,让每个人都了解关键路径的作用,并时刻保持警惕,保证关键路径项目的顺利实现,从而使我们的项目进展顺利,没有拖延时间。在进行系统分析与设计工作的后期,顺利完成了整个项目的资源利用规划和项目进度表,并在项目团队成立之初就发给了各个团队小组组长,让每一个参与项目的开发人员都了解我们的进度和我们的工作量,利于每一个开发人员整体把握,统筹安排。 选择开发工具也是保证软件质量的一个方面。因为我们的项目初步定为C/S和B/S相结合,所以,在前台开发工具方面,我们综合考虑了项目开发人员已经掌握的开发工具、各个开发工具的学习难度和所选得开发工具是否能够满足我们软件的开发要求,我们最终选择PowerBuilder和FrontPage作为我们的前台开发工具,并辅之以 ASP、JSP来完成B/S结构的前台瘦客户的开发。对于后台的开发则主要是数据库的设计,最重要的是要能够将以前的数据信息平稳过渡到新的数据库中。鉴于我们学校以前的数据库时VFP,考虑到数据的平稳过渡以及我们对数据库的熟悉程度,我们最终选择了MS SQLSERVER作为我们的后台数据库服务器。一方面有利于我们数据的平稳过渡,另一方面,我们相信具有强大研发实力的微软公司会不断升级优化他的产品MS SQLSERVER。再加上我们大部分开发人员已经对MS SQLSERVER进行过研究和开发,最终使我们的进度加快,质量提高。 测试是软件开发中必不可少的。测试的目的不是为了证明软件是正确的,而是为了尽可能多得查找出我们软件中的错误,并尽可能早的解决这些错误。这个观念我们在进行开发人员的培训时就已经贯彻了。同时我们要求我们的开发人员在编写一段代码后就要尽可能的回过头来检查一下看是否有些类似于拼写错误等的低级错误。并由开发人员自己进行实时的单元测试,同时要求开发团队内共同进行但预测试和集成测试。鉴于每个人都有认为自己开发的代码没有错误这样一个心理,我们要求团队之间进行“无记名”式的软件集成测试,最后由我们软件开发组共同进行总体的集成测试。 整个项目因为完善的分析和我们优秀的开发人员辛勤工作而得以顺利的高质量地完工,受到了我们院领导和MIS项目顾问组的一致好评。但我认为还有不是非常成功的地方,比如说,由于部分开发人员经验不足,致使代码的质量不够高;后来在进行大批量的访问时会出现堵塞现象,当然堵塞的原因主要还是硬件设备没有跟上,但是我认为如果我们前台的客户软件如果能够用Visual C++作为我们的开发工具或许效率会高一些。 最后我们的项目比原计划提前了一个月按照初期系统规格说明书的要求完成了项目的开发工作。在这一过程中,我们普遍的感受是自己的软件开发实践能力得到了一次提升,尤其是我,在导师的帮助下,自己的系统分析与设计的能力得到了很大的提高,为今后的工作积累了不可或缺的经验。 软件质量是与很多因素都息息相关的,以上只是我在项目的进行中根据自己的经验和学识努力的提高软件的质量,但是我相信还有很多的需要注意的地方石碑我忽略了的,这与我当时的水平关系很大,相信随着所参与项目的增多和经验的增长,一定会更为全面有效的提高所参与软件项目的质量。 |