软件构造 第一章第二节 软件开发的质量属性

软件构造 第一章第二节 软件开发的质量属性

1.软件系统质量指标

External quality factors affect users

外部质量因素影响用户

Internal quality factors affect the software itself and its developers

内部质量因素影响软件本身和它的开发者

External quality results from internal quality

外部质量取决于内部质量

 

外部属性:

正确性:按照预先定义的"规约"执行,最重要的指标

保证的方法:

-Testing and debugging

-Defensive programming such as typing and assertions

-Formal approach: "check", "guarantee" and "ensure"

健壮性:

针对异常情况的处理

未被specification覆盖的情况即为"异常情况"

可扩展性

离散化:低耦合

可复用性

兼容性

跨平台、跨软件

实现方法:一致性和标准化(一致的方法和标准)

效率

可移植性

应用性

用户是否容易使用,不影响专业人员的使用情况下,方便初学者

功能性

(不好的现象:开发者开发越来越多的功能,造成程序的复杂和不灵活)

原则:在保证整体质量不降低的情况下进行更新

策略:增量式模型

及时性

在规定时间内完成:时间效率高

 

内部属性:

LOCline of code)到圈复杂度:用来衡量一个模型判定结构的复杂程序

耦合度和内聚度

代码是否可读、可理解、简洁

完整性

五个质量属性:

转载于:https://www.cnblogs.com/masteryellow/p/9214190.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css --- 让不同的浏览器加载不同的CSS

// 通过条件注释让不同的浏览器加载不同的CSS <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--> <!--[if IE]><!--> 所有的IE可识别 <![endif]--> <!--[if IE 6]> 仅IE6可识别 <![endif]--> <!--[if lt IE 6]> I…

정규식 문법 정리.초급

abcdefg a검색 abca abcbca abcabcdeda Cc 한개 캐릭터 [a] [ac] [a-c] [Cc] 수량자 1>* ( 0~무한대) 2> (1~무한대) 3.? () 4 {1,2} {Min,Max} [패턴]*{} 수량자.패턴…

css自媒体查询

准备工作1&#xff1a;设置Meta标签 首先我们在使用Media的时候需要先设置下面这段代码&#xff0c;来兼容移动设备的展示效果&#xff1a; <meta name"viewport" content"widthdevice-width, initial-scale1.0, maximum-scale1.0, user-scalableno">…

css --- 清除浮动

有时我们需要用到浮动,但又不想由于浮动的某些特性影响布局,这时就需要清除浮动 清除浮动主要应用的是CSS中的clear属性,clear属性定义了元素的哪一侧不允许出现浮动元素. 下面是两种应用比较广泛的清除浮动的方法: // 在需要的地方添加定义了clear:both的空标签 <style>…

数据可视化实现技术(canvas/svg/webGL)

数据可视化的实现技术和工具比较转载于:https://www.cnblogs.com/knuzy/p/9215632.html

Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)...

http://www.cnblogs.com/huangcong/archis.strip() .lstrip() .rstrip(,) 去空格及特殊符号复制字符串Python1 #strcpy(sStr1,sStr2)2 sStr1 strcpy3 sStr2 sStr14 sStr1 strcpy25 print sStr2连接字符串Python1 #strcat(sStr1,sStr2)2 sStr1 strcat3 sStr2 append4 sStr1…

java 将一个非空文件夹拷贝到另一个地方

没有处理异常&#xff0c;只是简单的抛出了。需要捕获的需修改一下。 public class Test001 { //把一个文件夹或文件移到另一个地方去。 public static void main(String[] args) throws Exception { File filenew File("D:\\testFolder"); new Test001().copyFileTo…

Python环境 及安装

windows 1、下载安装包 https://www.python.org/downloads/2、安装默认安装路径&#xff1a;C:\python273、配置环境变量【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行&#xff0c;双击】 -->…

MUI主界面菜单同时移动主体部分不出滚动条解决

mOffcanvas(侧滑导航-主界面、菜单同时移动) 生成代码 增加列表滚动OK 增加幻灯片就挂了 百度了半天 没发现问题 后来想起官网的一句话 除顶部导航、底部选项卡两个控件之外&#xff0c;其它控件都建议放在.mui-content控件内&#xff0c;在Hbuilder中输入mbody&#xff0c;可快…

范围查询 BETWEEN AND

查询&#xff1a;从表t_student里 查找 id 在1~10 之间的学生信息&#xff0c;并显示 id,name,age,email 信息 SELECT id,name,age,email FROM t_student WHERE id BETWEEN 1 AND 10转载于:https://www.cnblogs.com/hello-dummy/p/9216720.html

css --- 应用媒介查询制作响应式导航栏

以上导航会自动适应各个尺寸的屏幕 代码如下: <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <meta name"apple-mobile-w…

AODV中实施watchdog

1.开启混杂模式&#xff0c;接收邻居转发的所有数据包&#xff0c;不进行MAC过滤&#xff0c;全部 sendToWatchdog(const Packet *p) 2.当前节点转发数据包后&#xff0c;缓存数据包 sendToWatchdog(const Packet *p, int mac_dst) //Start Watchdog Code voidAODV::tap(const …

Drools 7.4.1.Final参考手册(六) 用户手册

用户手册 基础 无状态的知识Session Drools规则引擎拥有大量的用例和功能&#xff0c;我们要如何开始&#xff1f;你无须担心&#xff0c;这些复杂性是分层的&#xff0c;你可以用简单的用例来逐步入门。 无状态Session&#xff0c;无须使用推理&#xff0c;就形成了最简单的用…

css --- 弹性盒子

左右两侧按1:1自适应,中间固定宽度500px // CSS /* 首先定义 container &#xff0c;关注display */ /* webkit 是Chrome、Safari 的浏览器前缀 */ .container{margin: auto;display: -webkit-box;width: 80%&#xff1b;height: 200px; } /* 开始定义左、中、右 */ .left { …

更精炼更专注的RTMPClient客户端EasyRTMPClient,满足直播、转发、分析等各种需求...

现状 EasyRTMPClient&#xff0c;熟悉的朋友就会联想到EasyRTSPClient项目&#xff08;https://github.com/EasyDSS/EasyRTSPClient&#xff09;&#xff0c;EasyRTSPClient从14年中期开始发展&#xff0c;已经迭代发展历时3年多时间&#xff0c;可以说在RTSPClient领域是非常成…

数据操纵语言 ,DML, 增删改

DML(data manipulation language)&#xff1b;数据操纵语言 插入数据&#xff1a;插入数据&#xff1a; 每次只能插入一行数据 INSERT INTO 表名(列名1, 列名2, 列名3....) VALUES (value1, value2, value3....); value与列数一一对应。 #插入一行: INSERT INTO t_student(id,…

bootstrap --- 表格

几个可选类: .table-bordered: 为表格加上边框 .table-striped: 为表格加上斑马效果 .table-hover: 鼠标悬停在表格行上时展现不同得颜色 .table-condensed: 更为紧凑的表格样式 // 导入样式,从bootstrap官网导入CDN // HEAD <link rel"stylesheet" href"…

发现一个小坑的地方,unity的协程,想要停止,必须以字符串启动

今天想要停止一个协成&#xff0c;发现调用 StopCoroutine(ShowDebug()); 竟然不管用&#xff0c;后来看了文档才知道&#xff0c;原来想要停止协成&#xff0c;必须用字符启动协程 StartCoroutine("ShowDebug"); 然后再调用 StopCoroutine("ShowDebug…

mongodb数据库中插入数据

mongodb数据库中插入数据 一&#xff1a;connection 访问集合&#xff1b; 在mongodb数据库中&#xff0c;数据是存储在许多数据集合中&#xff0c;可以使用数据库对象的collection方法访问一个集合。该方法使用如下&#xff1a; db.collection(collectionName, [options], [ca…

bootstrap --- 表单

// HTML >>> 第一种样式 <!DOCTYPE html> <html> <head><link rel"stylesheet" href"https://cdn.bootcss.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity"sha384-Gn5384xqQ1aoWXA058RXPxPg6fy4IWvTNh0E263XmF…