系统分析师论文范文-论软件的可维护性设计

2022-10-10 09:55:00   第一文档网     [ 字体: ] [ 阅读: ] [ 文档下载 ]

#第一文档网# 导语】以下是®第一文档网的小编为您整理的《系统分析师论文范文-论软件的可维护性设计》,欢迎阅读!
可维护性,分析师,范文,论文,设计
软件的可维护性设计

【摘要】

200831日至1220 H,我参加了“数据安全访问平台"项目的开发,担任系统 分析

员的工作该项目是某行业用户“数据中心二期”建设的主要内容,目标是:建立数据统 —访问接口及其使用标准,规范约束和审计数据应用访问数据库的行为,对数据应用提供 强制审计的技术手段。由于系统交付后,存在较长维护期,同时系统存在升级与扩展的情 况,因此本项目对系统的可维护性设计要求较高。本文结合作者实践,讨论了从软件设计 提高可维护性的方法和措施:通过模块化设计方法和提高设计文档质量,改善软件的可理解 性;通过提供测试接口和采用测试框架工具,改善软件的可测试性;通过动态库加载和针对 接口编程的方法,提高软件可扩展性。最后分析了采用方法的效果。 【正文】

一、项目概述200831日至20081220日,我参加了“数据安全访问平台” 目的开发,担任系统分析员的工作"数据安全访问平台■•是某行业用户“数据中心二期" 的主要内容。在一期建设中已建成数据的统一存储和统一分发框架。但主要存在以下问题: 无法获得应用用户对数据库的操作日志;开发人员对数据库的使用不规范查询的结果集过 大,导致数据库的性能大幅下降;应用直接使用数据库的登录数据库,存在着一定的安全隐 患。数据安全访问平台"的目标是:建立数据统一访问接口及其使用标准,规范、约束和审 计数据应用访问数据库的行为,对数据应用提供强制审计的技术手段。该项目具有较高的 业务需求风险和技术风险。由于没有成熟系统做为参照,该项目需求不是很明确,而且系统 涉及甲方多个利益相关方,各方对系统的安全和审计功能、运行维护、可乘性、性能和易用 性有者不同的观点,某些观点之间还存在冲突。同时系统作为“数据中心”的基础设施之一, 所有的应用系统都要通过本系统完成数据库访问。系统的可乘性和性能直接影响到应用系统 的正常运行。整个系统分为6个子系统,包括JDBC驱动封装子系统、ADO.Net驱动封装子 系统、WebService接口子系统、管理配置网站、存储子系统SQL Server2005数据库,存 储配置信息)和监控子系统(数据库网络协议分析与连接控制)。二、项目中的可维护性设 工作1、系统的可维护性需求本系统有较高的可维护性需求。首先,系统作为数据中心 应用的基础平台,数据中心的新建应用系统必须依赖于本系统,系统具有较长生命周期; 合同中规定系统正式上线后,公司需要提供1年的免费维护。其次,本项目中的接口子系 统是基于JDBC5.0ADO.Net2.0实现的,随着JDBCADO.Net


的升级 接口子系统也需 要升级。然后,监控子系统对OracleSQL Server数据库的网络包进行解析,由于商用数 据库网络包格式不公开,我们在解析时会有遗漏;用户要求,当发现未能解析的数据包时, 需要及时添加到监控子系统中。最后,由于没有成熟系统做为参照,该项目开始时需求不是 很明确,在开发过程中用户提出了一些新需求,由于工期的限制,经过与用户协商,这些新 需求不在本项目中完成;用户准备视系统的运行情况,设立新的项目完成这些剩余需求。 此可维护性是本系统的一个重要质量指标。为了增加系统的可维护性,减少维护人员理解 修改系统的难度,我们在本系统的设计上,不仅仅关注系统的功能需求实现,而且重视系 统的可维护性需求。决定软件可维护性的因素主要包括:软件的可理解性、可测试性和可修 改性。在整个系统设计过程中,我们都注重改善系统的可理解性、可测试性和可修改。2 改善软件的可理解性本系统涉及的问题域有一定的复杂性,如果将整个问题域的复杂性完 全暴露给维护人员,维护人员很难理解整个系统。因此,首先,我们将整个系统划分为功能 独立的六个子系统;其次,在各个子系统设计时,我们都采用了模块化的方法,即将内聚性 高的业务逻辑合并封装成独立的模块;最后,重视设计文档质量,对设计文档做了内部审核, 确保文档清晰准确了描述了设计。监控子系统是本系统的关键部分之一。公司原有Oracle 数据库监控子系统,本项目中需要在原有监控系统中增加SQLServer的监控功能。监控子系 统的流程是网络协议包的截获、数据库协议解析、监控审计处理模块。由于原监控子系统只 是处理Oracle,其关注功能的实现,三个模块划分的不清晰。例如,使用了过多全局变量在 模块间传递数据;功能分布不合理,导致模块之间相互依赖;一个源代码文件包含两个相关 功能代码。本项目中,除了添加SQLServer的监控功能外,我们还改善了子系统的设计 增强各个模块的内聚性,降低模块之间的耦合性。首先,各个功能的相关代码处于不同的代 码目录;其次,三个模块都做成了单独的静态库,总控模块负责调度各个库.并且明确了各 个模块对外提供的接口,模块之间的调用都通过接口完成。通过这种方式将系统进行清晰 的划分,维护人员可通过对模块接口的学习快速了解子系统的运行流程,当需要时再对某模 块做进一步分析。3、改善软件的可测试性维护人员对代码进行修改后,必须进行测试, 才能保证软件的质量。并且,用户对系统的可乘性要求很高。因此,在软件设计的整个过程 中,我们都考虑了测试的问题。首先,各个子系统的内部模块必须是单向依赖,对出现循 环依赖的模块,我们采用调整功能分布,抽取公共模块等方面消除循环依赖。其次,对于接 口子系统,我们需要对某些模块内部进行深入的测试,而由于模块接口的封装性,无法直接 访问内部数据;对于这样的情况,我们在设计这样的模块时,专门提供了测试接口。最后, 开发中采用了

CppUmtNUnitJUnit测试框架.通过测试框架来组织测试驱动程序。4 改善软件的可扩展性

监控子系统采用网络监听的方式获取数据库访问的信息,这种方案的 优点是不给业务系统増加


性能负担,缺点是由于商用数据库协议不公开的,虽然我们经过大 量的测试,但是肯定是有遗漏的。为了当发现未能解析的数据包时,及时添加到监控子系 统,同时不重新编译系统,我们进行了可扩展性设计我们采用了动态库加载和针对接口编 程的方法。监控子系统启动后,会加载指定目录下的动态库(符合名字规范),这些动态 都实现了规定的接口。子系统当收到一个网络包后,会依次询问所有的动态库是否能解析该 网络包。这样只需要将新开发的动态库拷贝到制定目录,并重启动监控子系统就可以完成系 统的升级。三、总结在系统的维护阶段,发现了较严重缺陷2个与8个一般缺陷,同时, 发现了监控子系统不能解析的5协议包。维护阶段的开发人员与开发阶段有了较大变化。 由于在系统设计上重视可维护性,软件进行模块化设计提供了完备的设计文档,维护人员 可以较快的定位与解决问题;由于考虑了系统的可测试性,提供了回归测试集,维护人员可 以运行回归测试验证软件质量;由于考虑监控子系统的扩展性,维护人员可以及时增加了新 协议包解析功能。综上所述,由于在设计中考虑了软件的可理解性、可测试性与可扩展性, 很大程度上提高了系统的可维护性。


本文来源:https://www.dy1993.cn/L8A.html

相关推荐