软件质量属性

软件质量属性

司宇明

 

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

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

 

件质量是指在软件开发过程中形成的软件满足明确规定的需求的程度,也是衡量软件好坏的一个重要指标。随着软件规模和复杂性的不断增大,如何控制和保证软件的质量已成为一个亟需解决的问题。为了提高软件的质量,需要在整个软件开发周期中进行有计划的活动,包括对软件的评价。随着软件体系结构的发展,对软件体系结构系统进行深入研究将会成为提高软件生产率和解决软件维护问题的新的最有效的途径。

一、什么是软件体系架构

1.什么是架构

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

2.什么是软件

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

3.软件体系架构

有了软件,有了架构,总之都是为了用更高的效率满足人类的行为期望。因此在这样的基础上需要软件体系架构让这中转换更加有效率,变得更加规律化。提高人类的利益。软件体系结构是国际上软件工程研究的一个新兴领域,它的研究目前还处于初始阶段,对什么是软件体系结构还没有一个标准的、为大家所普遍接受的定义。一般认为,一个软件系统的体系结构定义了组成系统的计算构件和构件之间的相互作用关系,在体系结构层次的构件如:客户、服务器、数据库、过滤器等构件之间的交互可以是非常简单的。

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

1.常见质量属性分类

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

2.质量属性分析

可用性

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

可修改性

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

性能

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

安全性

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

可测试性

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

易用性

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

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

 

posted @ 2021-04-10 20:02  _Aming  阅读(301)  评论(0编辑  收藏  举报