浅析软件体系架构之质量属性

石家庄铁道大学

 

 

 

 

 

 

 

教师:王建民

专业:软件工程

姓名:夏铭

 

 

 

 

 

 

 

 

 

 

 

浅析软件体系架构之质量属性

摘要:一个软件最为重要的阶段不是开发阶段,而是开发前各个阶段的准备。比如需求分析以及软件架构,这些往往能够决定一个软件的优劣程度。对于软件体系架构中又有很多重要的地方,其中质量属性是可以评价一个软件的好坏。以此对软件架构的质量属性进行简单分析,望对软件体系架构有所帮助。

 

关键字:软件架构;软件质量属性

 

在浅析质量属性之前需要对软件体系架构有简单的了解,对这个整体大的方向有了解便能能简单的对其下的质量属性进行更加透彻的分析及了解。

 

一、什么是软件体系架构

1.什么是架构

对于架构,并不是软件第一个引用的,是从其他行业的引过来的。不同的行业有不同的架构。但是其实简单来说架构就是通过分配合作,人类用少的时间完成更多活动,让人类的工作更加有效率。

  1. 什么是软件

什么是软件,不同的人有不同定义,参考资深架构师王概凯老师的架构漫谈随笔小生有些许的启发,软件只不过是将人类的期望或者行为加入到机器中,以此满足人类的工作期望或者行为期望这样都可以称为软件。

  1. 软件体系架构

有了软件,有了架构,总之都是为了用更高的效率满足人类的行为期望。因此在这样的基础上需要软件体系架构让这中转换更加有效率,变得更加规律化。提高人类的利益。

 

二、软件架构质量属性分析

  1. 常见质量属性分类

常见的软件质量属性有6个,分别为可用性、可修改性、性能、安全性、可测试性、易用性。这几个属性能够贯彻一个软件的所有过程,并且能够评价软件优劣。这几个质量属性相辅相成,不能分离。

  1. 质量属性分析

2.1可用性战术

可用性是对一个软件运行程度的评估。一个软件的(正常运行时间/(正常运行时间+平均修复时间))。这就是可用性的评估公式。从这里就可以看出一个软件正常运行时间越长,这个软件更加可用。所以对于软件而言,需要时刻关注软件的故障。一个软件的故障越少自然就越更加可用。因此,可用性关注的问题就是关注软件的故障,故障发现,排除,处理。防止故障的发生就是对可用性最好的保障。

2.2可修改性战术

可修改性针对的方面很广。不管是底层架构,还是界面开发都必须强调可修改性这一属性。贯彻可修改性能够节省一个软件的很多方面,时间,人力,财力都能节省很多。在可修改性的实施中需要强调设计模式使用。软件设计模式的宗旨就是高内聚,低耦合。正好符合可修改性战术的战术方案。可修改性就是满足局部化修改,防止联锁反应,延迟绑定时间。这三个战术方案简单就是一句话,多依赖组合,少继承,高内聚,低耦合。

2.3性能战术

性能战术通俗一点儿就是软件中功能的反应的时间。对这个反应时间是需要控制的,对于这个时间控制就是我们性能战术所需要研究的。例如,一个软件有死机的情况,这应该是很正常的情况,但是死机次数很多,这就不正常了。因此在软件开发时就需要考虑性能战术,性能战术包括,资源需求、资源管理、资源仲裁。为每一个资源进行分配,计算其效率。在程序中优先级分配,最常用的就是时间片轮转以及先到先优先原则。在软件中还会出现组件故障或资源不可用。其解决方案就是设置资源间的时间间隔,分析每个请求所消耗的资源。

2.4安全性战术

一个软件安全是最重要的元素之一。安全性对我们而言就是不让别人攻破,其实还有一方面就是在被攻击中防止入侵以及被攻击后及时恢复,这都是安全性的要素。在当今互联网+时代,人的个人信息都在网上的各种地方保存着,身份验证,限制访问,对数据机密性及完整性的维护。这些都是对攻击抵抗的策略。对检测攻击就是需要基本经验的积累,就是来攻击者与防护数据库对比,通过检测就能知道攻击类型以及程度,方能及时做出方案反击。常见的安全性技术有防火墙技术,对用户授权。

2.5可测试性战术

软件测试非常消耗资源。在软件完成增量一个后,越能够简单的测试就越节约成本以及时间。同时还需要运用其他质量属性。不能影响软件其他模块。对输入输出都需要进行测试,抽象及实现分离。常常在开发时就设置监视器,在各个阶段过程中都能知道其运行状态。

2.6易用性战术

易用性是软件与用户之间的满意程度反馈,上文提及软件就是满足人类的行为期望,就是为了提高人类的利益。而这一战术就是用户对使用软件的评估,人类觉得越方便了生活,越提高人类的利益,对于这个软件而言,它的易用性就越好。现在最流行的就是人工智能以及机器学习方面,这种学习能够记住用户的使用习惯以及最近浏览,通过大数据分析,机器学习能够自动为用户挑选数据展示给该用户。最简单的例子就是输入法以及淘宝。

 

结束语:一个软件能够成功,其最基本的原则就是满足软件质量属性,这几个质量属性是相辅相成,互不分离。在这基础上还应该联合软件设计模式,一个软件应该高内聚,低耦合,多使用依赖关联,不使用继承。一个软件从开发到完整发布,至始至终都贯彻质量属性。软件内部功能相互独立,至此可见质量属性对于软件架构的重要性。

 

摘要:架构漫谈;王概凯;2016 2 17 16:15

posted @ 2020-03-28 17:48  birdmmxx  阅读(465)  评论(0编辑  收藏  举报