论文部分内容阅读
摘 要:软件架构是软件开发的基础,决定了软件产品的质量,它的重要性不言而喻。随着计算机软件开发技术的发展和进步,目前评价一个系统的软件架构变得越来越重要。在架构权衡分析方法与软件架构分析方法的基础上提出了一种基于场景软件架构分析方法,这种方法主要是基于场景的分析过程,再构建相对应的评价指标与场景库,给软件架构分析建立了一种轻量级分析手法。
关键词:软件架构;软件质量;架构分析;评价指标;场景库
中图分类号:TP311.52
软件架构是系统中的基本部分,它存在系统中的各组件中,刻画了整体系统结构设计,包含了全局组织和控制结构、数据访问、物理分布、设计选择、元素继承等,是一个系统的核心,一个软件的质量大部分就是要建立在架构设计上,所以分析架构设计的方法与思想是很有必要的,但是目前我国对于软件架构的评价还是一份很困难的工作,这还需要更多的学者进行研究。
1 软件架构分析(SAAM)与架构权衡分析(ATAM)
软件架构评价(SAAM)是一种评估软件架构的技术,是卡耐基梅隆大学软件工程研究所最先提出的,该方法时建立在任务场景和上下文的评价方法,通过建立一组领域驱动场景来评价软件的质量,建立的场景描述了不同的用户介入系统后所遇的特定任务,总体来说,该方法主要侧重于整体软件构架工功能的研究。
架构权衡评价(ATAM)还是由卡耐基梅隆大学软件工程研究所提出的另一种分析评价手段,该方法可以分析软件架构和系统性能、灵活性等方面的满意程度,还可以对系统内部的各参数见的互补和排斥等关系进行分析,从而得到折中的方案,最终使系统整体效果达到最好。
上述两种方案在评价软件结构时的效果还是非常明显的,但两者都属于重量级分析方法,这需要更多的人员来参与到架构的分析中来,根据目前的社会需求,很多情况不需要重量级的分析方法,仅仅需要的是一种轻量级的方法。
2 基于场景的架构分析方法
根据上述的两种方法,提取了其中的一些信息设计了一种轻量级的架构分析方法,由于场景定义能够对系统功能进行详细的描述,这对架构的分析变得清晰,分析效率提高,与此同时还能在多个软件开发中和架构设计、集成测试等方面进行结合,这使软件的质量得到了有效的提高。
上述的两种分析方法在分析过程是比较复杂的,在分析基于场景的架构方法时对两者对开发过程部分进行了简化处理,这使分析方法显得更为简单清晰,分析的步骤如下:(1)分析问题域,构建场景库。根据项目在应用中的具体定位,对需求进行详细分析,总结系统中预期功能,对预期功能进行分类,保证每项功能都被描述的很详细,并将功能都定义相对应的场景,构建针对功能的场景库;(2)根据场景库的测试整个系统软件架构对功能的支撑程度,对其中支撑程度不高的功能展开架构研究,再进一步的分析是否是软件架构设计导致的问题,从中去发现架构设计的不足;(3)构建非功能指标参数树。选择非功能性的指标,定义其期望值、场景和衡量属性;(4)利用参数指标进行非功能分析,比较实际的期望值与输出值,用以评价架构对指标属性的支持度,从中去发现架构的不足。
3 K-Sketch架构分析
K-Sketch是一款开源的动画制作工具,针对动画初学人员设计的笔交互工具,主要利用初学人员在时间与空间上的直觉来快速的编制动画,它的开源性对软件架构的分析显得比较方便。以下就利用基于场景软件架构分析法对K-Sketch软件架构进行一个详细的分析,为其他软件架构的设计提供一个借鉴。
3.1 K-Sketch功能场景库。针对K-Sketch软件,根据它的用户进行了需求分析,选择了一些简单、表达性强、快速的功能,然后对各个功能进行了定义并分类,主要选择的功能包括图形功能要求、视角功能要求、动画动作要求、动画播放功能要求。针对图形功能要求,主要是笔的属性、笔画的属性、填充颜色属性、可插入的文字和图片;针对视角要求,主要是观察者视角的变化;针对动画动作要求,主要有动画的平移、伸缩和旋转、录制绘制过程、动作同步性、擦除与恢复、动作合成、动作轨迹的复制和粘贴、取消操作、恢复操作。针对动画播放功能要求,主要是对动画的播放速度调整、暂停、恢复、循环播放。场景举例1(Zoom功能):一个用户可以用过滚动滚动条来进行画布的缩放操作,并能控制画布的缩放倍数,可以先将其缩放为原来的二分之一,描绘一个图案,将画布放大两倍,再描绘另一个图形,再恢复到原来的大小,2个图形应保持一个合理的倍数关系。
3.2 K-Sketch功能分析结果。通过功能场景库对K-Sketch架构进行的分析,部分的结果如下:对于多种图样的支持评级为B,可以通过现有类或者继承来实现架构内部的扩展,认定架构在该功能上有很好的扩展性,对于Zoom功能评级为C,由于K-Sketch数据结构是森林结构,无更节点,在从上到下的访问限制比较大,在功能的实现上一些功能也受到了限制,所以K-Sketch在数据模型设计上存在着不足的地方。
3.3 K-Sketch指标参数树。这里K-Sketch选择的是可移植性作为非功能参数指标,其他参数指标和此类似,具体的场景举例如下:场景举例2(播放性能)共有1000个动态笔画,其中长、中、短笔画各占分三之一,缩放动作和旋转动作各占四分之一,笔画平移占二分之一;另有400个静态的笔画,其中长、中、短笔画各占分三之一。动态笔画在数据模型中的深度是3,动作时间100秒,静态笔画不做任何动作。动画在播放时的帧频率是10毫秒每帧,期望的输出为实际帧率要小雨80毫秒每帧。
3.4 K-Sketch非功能性分析结果。利用指标参数对K-Sketch架构进行分析,部分的结果如下:播放性能评级为C,当进行测试动态笔画1000和静态笔画400的场景时,K-Sketch实际的帧率超过了500毫秒,播放的效果极不理想,出现了该问题,对K-Sketch在运行时进行了详细的监控,是因为底层中存在一个第三方的中间件占用了极多的运行时间,占据了大量的资源,这时就知道需要一个替换中间件的模块;网络平台的支持评级为C,虽然K-Sketch可以把动画导出成Flash文件,该Flash文件无论在网页上还是在PowerPoint文件中都能很轻松的镶入,但要将整个系统的架构全部移植到网络上,显得困难时极大的,这主要是因为NET框架留下的缺陷;跨平台的支持评级为C,K-Sketch的框架是NET框架,所以在移植上时不能直接被移植到其他操作平台上。
经过上述对K-Sketch软件架构进行分析,得到了一些无风险决策和风险决策、权衡点和敏感点,这些分析的结果在理论上可以为改进K-Sketch软件提供足够的数据依据和经验指导。对于无风险决策,K-Sketch采用了MVC模式,可以使系统的是结构更加具有扩展性;对于风险管理,K-Sketch使用了中间件来进行开发,但是没有将Piccolo框架运行性能考虑进去,这造成了在播放动画时出现了问题;对于权衡点,采用跨越各平台的技术能够提高K-Sketch可移植性,在部署和扩展上很是方便,但同时也存在影响整个系统的性能,此外,在提高播放帧率的同时也会增加系统的负担,使画面播放效果极差;对于敏感点,在系统中减少画白板笔画采样点能提供系统整体的运行速度,与此同时也能减少动画文件占用的空间。
4 结束语
本文提出了基于场景的软件架构分析方法,该方法通过需求分析,建立场景库来分析软件架构在设计时存在的问题,与此同时也要选择非功能性的要求,构建期望值与场景库,对此进行非功能性的评价,从中找出不足。
参考文献:
[1]杨兴春,谯石,董文.基于轻量级J2EE构架的高校教务管理系统的设计与实现[J].计算机系统应用,2007(03):75-78.
[2]严张凌.基于Java的轻量级企业开发架构的研究及应用[D].四川大学,2006.
[3]何永伟.关于轻量级软件架构的研究与评价[J].电脑知识与技术,2009(06):1385-1386.
[4]余彩霞.基于Hibernate的轻量级J2EE架构[J].现代电子技术,2005(22):12-14+17.
作者简介:范文学(1981.10-),男,江苏如皋人,工程师,本科,研究方向:软件架构、软件设计。
作者单位:洛阳电光设备研究所,河南洛阳 471023
关键词:软件架构;软件质量;架构分析;评价指标;场景库
中图分类号:TP311.52
软件架构是系统中的基本部分,它存在系统中的各组件中,刻画了整体系统结构设计,包含了全局组织和控制结构、数据访问、物理分布、设计选择、元素继承等,是一个系统的核心,一个软件的质量大部分就是要建立在架构设计上,所以分析架构设计的方法与思想是很有必要的,但是目前我国对于软件架构的评价还是一份很困难的工作,这还需要更多的学者进行研究。
1 软件架构分析(SAAM)与架构权衡分析(ATAM)
软件架构评价(SAAM)是一种评估软件架构的技术,是卡耐基梅隆大学软件工程研究所最先提出的,该方法时建立在任务场景和上下文的评价方法,通过建立一组领域驱动场景来评价软件的质量,建立的场景描述了不同的用户介入系统后所遇的特定任务,总体来说,该方法主要侧重于整体软件构架工功能的研究。
架构权衡评价(ATAM)还是由卡耐基梅隆大学软件工程研究所提出的另一种分析评价手段,该方法可以分析软件架构和系统性能、灵活性等方面的满意程度,还可以对系统内部的各参数见的互补和排斥等关系进行分析,从而得到折中的方案,最终使系统整体效果达到最好。
上述两种方案在评价软件结构时的效果还是非常明显的,但两者都属于重量级分析方法,这需要更多的人员来参与到架构的分析中来,根据目前的社会需求,很多情况不需要重量级的分析方法,仅仅需要的是一种轻量级的方法。
2 基于场景的架构分析方法
根据上述的两种方法,提取了其中的一些信息设计了一种轻量级的架构分析方法,由于场景定义能够对系统功能进行详细的描述,这对架构的分析变得清晰,分析效率提高,与此同时还能在多个软件开发中和架构设计、集成测试等方面进行结合,这使软件的质量得到了有效的提高。
上述的两种分析方法在分析过程是比较复杂的,在分析基于场景的架构方法时对两者对开发过程部分进行了简化处理,这使分析方法显得更为简单清晰,分析的步骤如下:(1)分析问题域,构建场景库。根据项目在应用中的具体定位,对需求进行详细分析,总结系统中预期功能,对预期功能进行分类,保证每项功能都被描述的很详细,并将功能都定义相对应的场景,构建针对功能的场景库;(2)根据场景库的测试整个系统软件架构对功能的支撑程度,对其中支撑程度不高的功能展开架构研究,再进一步的分析是否是软件架构设计导致的问题,从中去发现架构设计的不足;(3)构建非功能指标参数树。选择非功能性的指标,定义其期望值、场景和衡量属性;(4)利用参数指标进行非功能分析,比较实际的期望值与输出值,用以评价架构对指标属性的支持度,从中去发现架构的不足。
3 K-Sketch架构分析
K-Sketch是一款开源的动画制作工具,针对动画初学人员设计的笔交互工具,主要利用初学人员在时间与空间上的直觉来快速的编制动画,它的开源性对软件架构的分析显得比较方便。以下就利用基于场景软件架构分析法对K-Sketch软件架构进行一个详细的分析,为其他软件架构的设计提供一个借鉴。
3.1 K-Sketch功能场景库。针对K-Sketch软件,根据它的用户进行了需求分析,选择了一些简单、表达性强、快速的功能,然后对各个功能进行了定义并分类,主要选择的功能包括图形功能要求、视角功能要求、动画动作要求、动画播放功能要求。针对图形功能要求,主要是笔的属性、笔画的属性、填充颜色属性、可插入的文字和图片;针对视角要求,主要是观察者视角的变化;针对动画动作要求,主要有动画的平移、伸缩和旋转、录制绘制过程、动作同步性、擦除与恢复、动作合成、动作轨迹的复制和粘贴、取消操作、恢复操作。针对动画播放功能要求,主要是对动画的播放速度调整、暂停、恢复、循环播放。场景举例1(Zoom功能):一个用户可以用过滚动滚动条来进行画布的缩放操作,并能控制画布的缩放倍数,可以先将其缩放为原来的二分之一,描绘一个图案,将画布放大两倍,再描绘另一个图形,再恢复到原来的大小,2个图形应保持一个合理的倍数关系。
3.2 K-Sketch功能分析结果。通过功能场景库对K-Sketch架构进行的分析,部分的结果如下:对于多种图样的支持评级为B,可以通过现有类或者继承来实现架构内部的扩展,认定架构在该功能上有很好的扩展性,对于Zoom功能评级为C,由于K-Sketch数据结构是森林结构,无更节点,在从上到下的访问限制比较大,在功能的实现上一些功能也受到了限制,所以K-Sketch在数据模型设计上存在着不足的地方。
3.3 K-Sketch指标参数树。这里K-Sketch选择的是可移植性作为非功能参数指标,其他参数指标和此类似,具体的场景举例如下:场景举例2(播放性能)共有1000个动态笔画,其中长、中、短笔画各占分三之一,缩放动作和旋转动作各占四分之一,笔画平移占二分之一;另有400个静态的笔画,其中长、中、短笔画各占分三之一。动态笔画在数据模型中的深度是3,动作时间100秒,静态笔画不做任何动作。动画在播放时的帧频率是10毫秒每帧,期望的输出为实际帧率要小雨80毫秒每帧。
3.4 K-Sketch非功能性分析结果。利用指标参数对K-Sketch架构进行分析,部分的结果如下:播放性能评级为C,当进行测试动态笔画1000和静态笔画400的场景时,K-Sketch实际的帧率超过了500毫秒,播放的效果极不理想,出现了该问题,对K-Sketch在运行时进行了详细的监控,是因为底层中存在一个第三方的中间件占用了极多的运行时间,占据了大量的资源,这时就知道需要一个替换中间件的模块;网络平台的支持评级为C,虽然K-Sketch可以把动画导出成Flash文件,该Flash文件无论在网页上还是在PowerPoint文件中都能很轻松的镶入,但要将整个系统的架构全部移植到网络上,显得困难时极大的,这主要是因为NET框架留下的缺陷;跨平台的支持评级为C,K-Sketch的框架是NET框架,所以在移植上时不能直接被移植到其他操作平台上。
经过上述对K-Sketch软件架构进行分析,得到了一些无风险决策和风险决策、权衡点和敏感点,这些分析的结果在理论上可以为改进K-Sketch软件提供足够的数据依据和经验指导。对于无风险决策,K-Sketch采用了MVC模式,可以使系统的是结构更加具有扩展性;对于风险管理,K-Sketch使用了中间件来进行开发,但是没有将Piccolo框架运行性能考虑进去,这造成了在播放动画时出现了问题;对于权衡点,采用跨越各平台的技术能够提高K-Sketch可移植性,在部署和扩展上很是方便,但同时也存在影响整个系统的性能,此外,在提高播放帧率的同时也会增加系统的负担,使画面播放效果极差;对于敏感点,在系统中减少画白板笔画采样点能提供系统整体的运行速度,与此同时也能减少动画文件占用的空间。
4 结束语
本文提出了基于场景的软件架构分析方法,该方法通过需求分析,建立场景库来分析软件架构在设计时存在的问题,与此同时也要选择非功能性的要求,构建期望值与场景库,对此进行非功能性的评价,从中找出不足。
参考文献:
[1]杨兴春,谯石,董文.基于轻量级J2EE构架的高校教务管理系统的设计与实现[J].计算机系统应用,2007(03):75-78.
[2]严张凌.基于Java的轻量级企业开发架构的研究及应用[D].四川大学,2006.
[3]何永伟.关于轻量级软件架构的研究与评价[J].电脑知识与技术,2009(06):1385-1386.
[4]余彩霞.基于Hibernate的轻量级J2EE架构[J].现代电子技术,2005(22):12-14+17.
作者简介:范文学(1981.10-),男,江苏如皋人,工程师,本科,研究方向:软件架构、软件设计。
作者单位:洛阳电光设备研究所,河南洛阳 471023