博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
收集的描述软件质量的词语
阅读量:2491 次
发布时间:2019-05-11

本文共 1941 字,大约阅读时间需要 6 分钟。

健壮性 可扩展性   可维护性  可读性  可维护、可复用、可扩展、灵活性

正确性、健壮性、可靠性、效率、易用性、可读性(可理解性)、可扩展性、可复 用性、兼容性、可移植性

 

现在国内IT 企业拥有学士、硕士、博士文凭的软件开发人员比比皆是,但他们在接

受大学教育时就“先天不足”,岂能一到企业就突然实现质的飞跃。试问有多少软件开发
人员对正确性、健壮性、可靠性、效率、易用性、可读性(可理解性)、可扩展性、可复
用性、兼容性、可移植性等质量属性了如指掌?并且能在实践中运用自如?。“高质量”
可不是干活小心点就能实现的!

 

编程规范(统一软件编程风格,提高软件源程序的可读性、可靠性和可重用性,提高软件源程序的质量和可维护性)

 

软件编程规范的目的是为了统一公司软件编程风格,提高软件源程序的可读性、可靠性和可重用性,提高软件源程序的质量和可维护性,减少软件维护成本,最终提高软件产品生产力。

 

什么是网站系统的性能,可用性,可伸缩性,可扩展性

最近在读李智慧大拿写的<<大型网站技术架构--核心原理与案例分析》,其中第三节提到了大型网站的核心架构要素,感觉受益匪浅,总结的非常到位。读完之后,马上总结一下,也算是对自己爱不释手的一本书,画上一个总结的句号。一般来说,架构除了关注功能性需求外,其实更重要的是要关注非功能性需求,比如,性能,可用性,可伸缩性,可扩展性。而且一旦架构决定下来,一般难以改变,所以要求我架构师从一开始就要设计一个满足性能,可用性,可伸缩性,可扩展性的架构。那么在这个之前,需要了解,什么是性能,可用性,可伸缩性,可扩展性?很多对其中的概念和意思混淆不清。下面,笔者就进行科普一下,什么是网站系统的性能,可用性,可伸缩性,可扩展性?

性能(Performance)

性能是一个网站能够同时处理用户请求的表现能力。 不同的视觉,有不同的表现形式,性能的指标通常包括,响应时间,并发数,吞吐量,以及性能计数器等。

其中吞吐量和性能计数器比较难理解一些,

吞吐量其实指的就是单位时间内,系统处理的请求数量。 TPS(每秒的事务数),HPS(每秒的HTTP请求数),QPS(每秒的查询数)等等。性能一般通过缓存来解决。

性能计数器,它描述的是服务器或者操作系统的一组指标,包括,对象与线程数,内存使用,CPU使用,磁盘和网络的I/O等等。
提高网站的性能,很多的手段,比如,浏览器访问优化,CDN加速,反向代理,分布式缓存,使用集群,代码和数据结构的优化,存储性能的优化等。
可用性(Availability)
可用性是在某个考察时间,系统能够正常运行的概率或时间占有率期望值。考察时间为指定瞬间,则称瞬时可用性;考察时间为指定时段,则称时段可用性;考察时间为连续使用期间的任一时刻,则称固有可用性。它是衡量设备在投入使用后实际使用的效能,是设备或系统的可靠性、可维护性和维护支持性的综合特性。在大型网站应用系统中,衡量的指标一般是服务的可用性用几个9来表示。

高可用性一般通过负载均衡,数据备份,失效转移,提高软件质量,特别是发布时的质量来实现和保证的。

可伸缩性(Scalability)

可伸缩性,是一种对软件系统计算处理能力的设计指标,高可伸缩性代表一种弹性,在系统扩展成长过程中,软件能够保证旺盛的生命力,通过很少的改动甚至只是硬件设备的添置,就能实现整个系统处理能力的线性增长,实现高吞吐量和低延迟高性能。

纵向的可伸缩性——在同一个逻辑单元内增加资源来提高处理能力。这样的例子包括在现有服务器上增加CPU,或者在现有的RAID/SAN存储中增加硬盘来提高存储量。
横向的可伸缩性——增加更多逻辑单元的资源,并令它们像是一个单元一样工作。大多数集群方案、分布式文件系统、负载平衡都是在帮助你提高横向的可伸缩性
可伸缩性,一般通过DNS域名解析负载均衡,反向代理负载均衡,IP负载均衡,数据链路层负载均衡,改进和提高分布式缓存的算法,利用NOSQL数据库的可伸缩性等等。

可扩展性(Extensibility)

可扩展性,通常和可伸缩性混为一谈.在软件范畴上,是软件系统本身的属性,或者进一步说是设计的属性,代码的属性。因为我们经常说设计的可扩展性,代码的可扩展性.也可以说是系统设计的松耦合性。

实现方式:一般通过事件驱动架构和分布式架构来实现一个网站系统的可扩展性。

————————————————
版权声明:本文为CSDN博主「朱清云的技术博客」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chancein007/article/details/53983755

你可能感兴趣的文章
函数式数据处理(一)--流
查看>>
java 流使用
查看>>
java 用流收集数据
查看>>
java并行流
查看>>
CompletableFuture 组合式异步编程
查看>>
mysql查询某一个字段是否包含中文字符
查看>>
Java中equals和==的区别
查看>>
JVM内存管理及GC机制
查看>>
Java:按值传递还是按引用传递详细解说
查看>>
Java中Synchronized的用法
查看>>
阻塞队列
查看>>
linux的基础知识
查看>>
接口技术原理
查看>>
五大串口的基本原理
查看>>
PCB设计技巧与注意事项
查看>>
linux进程之间通讯常用信号
查看>>
main函数带参数
查看>>
PCB布线技巧
查看>>
关于PCB设计中过孔能否打在焊盘上的两种观点
查看>>
PCB反推理念
查看>>