前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >系统架构师论文-论软件的可维护性设计

系统架构师论文-论软件的可维护性设计

作者头像
cwl_java
发布2019-10-26 20:51:41
1.5K0
发布2019-10-26 20:51:41
举报
文章被收录于专栏:cwl_Java

论软件的可维护性设计

【摘要】

随着软件大型化,复杂化的发展,软件维护所耗费的资源越来越多,软件可维护性设计日益得到重视。我单位近几年开发综合业务ATM交换机,用户対交换机的可维护性要求很高。我参加了该项目并负责软件的维护性设计工作。根据当前工作中在维护性设计中的不足。通过在各个软件开发阶段注重软件可维护性的应用,规范文档,使用CASE工具管理软件版本和成立软件可维护性设计小组等方面,为软件的可维护性设计提供了帮助,并最终开发出具有良好可维护性的交换机软件。但是由于初次实施这方面的工作,大家思想上认识不够,许多操作不习愦,并且单位里不具备专用的测试软件和其它CASE工具,在一定程度上制约了软件可维护性的实施。

【正文】

经过一系列的需求分析、设计、编码和测试之后,软件正式交付用户使用。至此,软件便进入维护期。软件维护的工作重特别大,随着时间的推移,软件维护対开发商带来的成本压力也越来越大。许多软件开发商要把70%的工作量用在维护已有的软件上,平均来说,大型软件的维护成本是开发成本的4倍左右。因此,在开发软件时,就应该考虑到可维护性问题,进行软件的可维护性设计。 2002年底,我单位开始为某集团开发综合业务AIM交换机。该交换机支持多种业务应用,包括话音、IP数据、图像和视频等;用户可通过维护台或网管対交换机进行配置和管理;由于特殊的应用,用户対该交换机提出了很高的要求,并且提出要求产品交付使用之后,我单位要有很好的服务支持,鉴于将来要大批量生产交换机,软件的可维护性设计被提上日程。 我有幸参加了该项目,并负责软件的维护性设计工作。在以前的课题中,也曾提到过要进行软件的可维护性设计,但在真正实施过程中,还存在诸多问题,主要表现在: (1)在软件开发过程中対可维护性设计考虑欠缺,导致软件设计从根本上就忽视了可维护性的重耍性。 (2)软件设计文档不规范,内容不一致。在维护阶段出现问题,根据文档不易得到有帮助的信息,难以定位错误的类型和根源。 在本交换机软件的设计过程中,我们通过注重软件可维护性的开发过程,规范文档,使用CASE工具管理软件版本和成立软件可维护性设计小组等方面进行软件的可维护性设计,最终开发出具有良好可维护性的交换机软件。

一、注重可维护性的开发过程

在整个交换机软件的开发过程中,从软件易于理解、易于测试、易于修改的角度出发,提高软件的可维护性。 在需求分析阶段,和用户进行充分的交流和协商,対将来要改进的和可能要修改的部分进行明确。由于该交换机所涉及的业务种类厂泛,并且综合了话音、IP和网管等多种技术,任何一种技术实现的功能不完善或者扩展性不好,都不会让用户满意。但是,另一方面,又考虑到用户需求和功能需求并非容易获取,所以通过和用户定期交流,举亦各种形式的讨论等方式尽可能了解当前的需求和以后需要扩展的需求信息,由专人整理记录这些信息,作为以 后的跟进内容。即使在其它设计阶段対需求的临时变动,也要在这个记录中体现。 在设计阶段,交换机软件被划分为不同模块进行设计,并建循“高内聚、低耦舍"的设计原则;这些工作便于将来软件维护工作的进行。同时也已考虑到,対可能要扩展的地方,预留出充足接口。在一些模块中,如网管模块中,根据功能,尽可能使用面向対象的设计方法,以便维护时的修改和升级。 在编码阶段,我和小组成员制定了统一的编码规范,经过半天的培训,强化编码人员対注释的使用,并强调要保证注释的质量,対有可能出现误解的地方,注释的要详细。并且,每个文件都要注明编写作者,生产日期和版本号。 在测试阶段,测试组成员已经负责进行测试,我们小组这时的工作是根据测试报吿,対照测试大纲和用例设计,対当前的测试进行总结,比如,何种测试用例发现何种错误,最常见的错误,如何从测试结果判断是哪种错误,该错误所在的模块是什么。在相关人员修改错误时,记录排错时的思路和过程。特别是,根据这些总结,我们编写’了 “ATM交换机软件故障解析",这篇总结在后来的维护阶段被证明是最受欢迎的文档之一。 在维护阶段,制定严格的管理要求。每一次维护工作之后,都要按照配置关联,同歩更新维护有关的系统文档和用户文档,包括维护需求、源代码、注释、设计文档、测试文档和用户使用手册等,保证系统的一致性。维护中所进行的修改要专人记录,生成“ATM交换机维护更新"文档,做为内部文件存档。同时把一些内容扩充到“ATM交换机软件故障解析"中。在用户使用时,做好用户的培训工作,初期由专人和用户一起操作交换机,直到能熟练操作,以免用户使用交换机时产生不满。

二、规范文档

交换机交付用户使用之后,除了在培训时所了解的内容之外,为了让用户対交换机软件能够更好的理解和使用,向用户提供了多种随机文档,包括功能说明,安装文档,用户使用手册,参考手册,管理员指南等。在文档的编写过程之前,我们编写了 “ATM交换机软件文档编写规范",対文档格式和一些必要内容进行了规范,保证各文档的风格一致,内容一致。対于一些用户使用中容易出错的地方,比如配置某种功能时,在用户使用手册示例说明。在具体编写文档时,根据设计人员的反馈信息,也及时调整了文档编写规范。 在设计开发过程中,対某个问题进行修改,或者功能増删,要充分考虑到问题所涉及的不同文档,保证前后文档在该问题的一致性。対于所修改的部分,要填写”更改单”,需要写明更改人,更改理由,更改所影响的程序和文档,更改日期,批准人。采用CASE工具在这一方面也起到了事半功倍的作用。

三、使用CASE工具管理软件版本

在软件的设计编码过程中,尤其是在调试阶段,会不断的生成新的程序版本。为了有效的管理版本问题,采用Ration公司的ClearCase工具,由专人负责进行管理,从而保证软件版本的一致性。

四、成立软件可维护性设计小组

为了有效的対软件可维护性设计进行管理,成立了软件可维护性设计小组。我担任小组组长,明确了维护性设计的工作内容和各人的责任,针対不同的模块,又确定四个责任人。在运作过程中,组长対软件开发阶段所需进行的工作进行协调,各负责人対维护性设计所涉及的变动控制进行维护。 因为交换机软件的各个模块开发时间有穿插,因此,対开发过程中出现的一些问题,包括技术方面和管理方面的问题,我们都及时进行了记录,対后面开发的软件模块进行指导,避免了同样问题的再次发生。现在这份文档已经成为单位新课题启动时的“必修"文档。 按照上面的思路,经过两年多的工作,我们已完成了交换机软件的开发,新的软件运行良好,交付用户后,用户很满意,受到了业务部门和技术部门高层的赞许。尤其是我们所总结的“ATM交换机软件故障解析"和“ATM交换机软件文档编写规范"等文档,対单位其它课题也起到了很好的指导和规范作用。并且,在提高软件可维护性的同时,也提高了软件产品的质量,我自己的开发管理水平也得到了很大的提升。单位的高层领导対我们制定的规范和做法也表示认可,正式在其它课题中推广。 然而,由于初次在整个软件开发过程中进行可维护性设计,还有许多要改进的地方。许多情况下,现有的可维护性设计措施理论性太强,具体实施时可参夸的依据少,比如我们测试小组如何更好的与各课题开发组间进行协调工作,感觉还是有不尽人意的地方。在测试阶段,单位条件所限,没有采用专业的测试软件进行测试,主要靠人工根据经验生成测试用例,测试力度不够,隐含的问题较多,这也不利于今后的维护工作。软件可维护性设计是一个长期的工作过程,我希望今后能够不断的充实自己在这方面的知识,提供整体能力,为单位软件可维护性设计方面提供新的、好的思路。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/10/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 论软件的可维护性设计
    • 【摘要】
      • 【正文】
      相关产品与服务
      文档服务
      文档服务(Document Service,DS)是腾讯云数据万象提供云上文档处理服务,支持多种类型的文件生成图片或 html 格式的预览,可以解决文档内容的页面展示问题,满足 PC、App 等多端的文档在线浏览需求。同时,本产品还提供文本隐私筛查能力,可以有效识别文本中的身份证号、银行卡号、手机号等敏感数据,满足数据可用性和隐私保护的各种要求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档