软件架构的时间和情感因素

质量属性是软件架构的一个重要方面,而质量属性中也包含了时间和情感的因素。

公元前1世纪,古罗马御用工程师、建筑师Marcus Vitruvius Pollio在其《建筑十书》中最早提出了建筑的三要素“坚固、实用、美观”。英文的表述为Firmitas,Utilitas, Venustas,通俗的说也就是Solid,Useful, Beautiful。软件架构同样需要具备这三个要素,用计算机的术语表述就是:

·        Firmness: Achieve asatisfactory level of freedom from damaging failure.

·        Commodity: Utility toaccomplish the tasks it is purported to be for.

·        Delight: Pleasure in use.

马尔库斯·维特鲁威·波利奥是古罗马的作家、建筑师和工程师,他的创作时期在公元前1世纪,他的生平不详,连他的名字马尔库斯和姓波利奥也只是由伐温提努斯提到过,他的生平年代主要是根据他的作品确定的。

时至今日,这三个要素仍然是成功软件设计的重要组成部分。这三个方面谈的都是架构的质量属性。如何理解呢?

无论从架构设计还是工程实施的角度,时间都是软件设计的重要因素。架构在时间推进的过程中演化,其实现在一个个PDCA循环中迭代,软件也在与用户的磨合中生死。

统计质量控制 (SQC) 之父,沃特·阿曼德·休哈特在1931年就指出过质量评价的主观性——质量包含了人对客观现实的思考,感受,感知。

"There are two common aspects of quality: One of them has to do with the consideration of the quality of a thing as an objective reality independent of the existence of man.The other has to do with what we think, feel, or sense as a result of the objective reality. In other words, there is a subjective side of quality."  —W.A. Shewart, 1931

2016年9月份《美国计算机学会通讯》上刊登了Peter J. Denning博士的文章《Software Quality》,介绍了软件质量评价从代码视角向用户视角的演化,很好的诠释了软件质量的Firmness,Commodity和Delight三个要素。

软件质量的评价已经明显的从上世纪70年代代码视角的评估演化到今天用户视角的评估。——Peter J. Denning博士

1.1        代码视角

根据Peter J. Denning博士的观点,传统的软件质量评价体系都是从代码视角出发的。其基本原则是制定客观的测量指标,监测软件的所有属性,量化软件本身。比如我们经常说的UT覆盖率,TA覆盖率,代码静态检查(Sonar)指标,在软件设计开发过程中制定详细的规范,ISO 9216,ISO-25010:2011等等。这些软件质量评价方法一般都包括correctness,reliability,integrity,usability,efficiency,maintainability,testability,interoperability,flexibility,reusability,portability,clarity,modifiability,documentation,resilience,understandability,validity,functionality,generality,economy等指标,每一个指标都可以展开成一套程序员必须遵循的规则。没人敢说软件质量是一件简单的事情!

1.2        用户视角

从用户的角度看,用户不会问“软件是不是有很好的架构并且通过了ISO9126标准?”,用户关心的是“软件是否能够帮助完成我工作?”,“我可以依靠它吗?”。这说明用户体验的满意度影响到用户对软件质量的评价。Peter J. Denning博士在文章中提出了6个级别来评估用户视角的软件质量。

·        Level -1: No trust. 用户不信任该软件。软件可能包含很多bug、引起系统崩溃或带有恶意插件。

·        Level 0: Cynical satisfaction.无忠诚度的满意。用户不信任软件提供商的所有声明。

·        Level 1: Software fulfills allbasic promises.软件满足所有基本承诺。ISO软件量标准定义就在这个级别。

·        Level 2: Software fits environment.软件适应用户环境。什么意思呢?软件提高了用户完成重要工作的能力。

·        Level 3: Software produces nonegative consequences.软件不会有任何负面影响。这包括两方面:第一,软件能够处理用户没能预见的错误场景;第二,软件可以满足用户未来的需求。

·        Level 4: Software delights.软件愉悦。这个级别的产品远远超出用户的期望,并产生新的,意想不到的,有时令人惊讶的积极作用。用户在该软件上收获了极大的愉悦并愿意推广给其他的用户。用户感觉软件设计者是理解了用户的真实世界并认为软件改善了他们的生活。

文献《Software Quality Models and Philosophies》总结软件质量具备以下两个属性:

The meaning and definition of software quality:

·        Conformance to specification:Quality that is defined as a matter of products and services whose measurable characteristics satisfy a fixed specification – that is, conformance to an inbeforehand defined specification.

·        Meeting customer needs: Quality that is identified independent of any measurable characteristics. Thatis,quality is defined as the products or services capability to meet customer expectations – explicit or not.

从上面的定义可以很容易推导出软件开发过程中常用的两个重要质量保证框架:DoD和CoS。正如Peter J. Denning博士所说:最高级别的软件愉悦出现在客户和开发者之间美好的互动关系中。

时间: 2024-09-27 03:39:32

软件架构的时间和情感因素的相关文章

软件架构(一)

软件体系架构 是什么,为什么,怎么样,经典的三段论,同样适用软件的体系架构 软件体系架构: 首先要根据实际要解决的问题,对目标系统的边界进行明确的界定. 其次,选择适合系统,适合实际情况的原则,根据具体的原则,进行系统的划分,正所谓没有规矩不成方圆. 然后,系统按照某原则划分以后,变得零散,需要建立一定的沟通机制. 最后,根据沟通机制,有机的对各个部分进行组合,完成目标系统的各项工作. 简而言之,就是一个跟据原则,机制对系统进行,化整为零,化零为整的一个过程.其中,渗透的原则,机制就是架构的价值

高效时间管理

P1 P2 课程主要内容 时间管理概述 策略性的目标设定 设定优先顺序 规划与组织 时间管理工具 消除时间杀手 高效日程管理 如何为领导制定日程表 P3 昨天是一张已被注销的支票 明天是一张尚未到期的支票 今天则是随时可运用的现金,请善用它! P4 高效时间管理的心灵革命 心理建设 时间 = 金钱 = 生活 目标导向的成就感 P5 时间管理哲学 要有远大的眼光,作长期计划: 培养个人的特质,马上行动并在行动中自我操练: 学习微视,以每分钟来衡量时间: 学习如何说“不”: 要记住时间等于金钱: 要

因素空间发展评述

因素空间发展评述      刘海涛1,包研科1,郭嗣琮1,何华灿2, 何平3 (1. 辽宁工程技术大学 智能工程与数学研究院, 辽宁 阜新 123000: 2. 西北工业大学 计算机学院,陕西 西安 710072: 3. 辽宁警官学院 信息系,辽宁 大连 116036) ——2016年3月 摘 要:为了适应信息革命和大数据时代的需要,模糊数学要更多地切入智能数据的领域. 在这方面,我国早期学者汪培庄教授提出了因素空间的数学理论,从服务于模糊数学的研究开始,进而转向认知描述,建立了知识表示的数学描

HttpWatch的时间分析

HttpWatch的时间段捕捉详解 这是一个IE的插件,下载可以点这里.下载后解压如下图所示,一共有4个文件.HttpWatch Professional是单独软件,可以单独使用. 解压后有四个文件 插件安装时,只需运行httpwatchpro.exe,通常的安装过程.然后打开浏览器,就可以看到已经安装好的插件了. 插件安装成功 ?下面以百度为例来看TimeChart,详解捕捉到的网页的详细各个响应时间. httpwatch截取百度总图 时间的具体项 选择任意一条捕捉到的访问步骤,来详细学习时间

时间管理-暗世界-时间碎片

暗时间 简单的说就是思维的时间,也就是没有产生直接成果的时间.一个人走路.买菜.洗脸洗手.坐公车.逛街.出游.吃饭.睡觉,所有这些时间都可以成为“暗时间”,你可以充分利用这些时间进行思考,反刍和消化平时看和读的东西,让你的认识能够脱离照本宣科的层面. 概念 看书并记住书中的东西只是记忆,并没有涉及推理,只有靠推理才能深入理解一个事物,看到别人看不到的地方,这部分推理的过程就是思维时间,也是人一生中占据一个显著比例的“暗时间”. 其实每个人的时间都是不一样的,因为人们对时间的利用率不同.善于利用思

Azure SQL Database 时间点还原(Point in Time Restore)功能

微软中国TechNet 7 Oct 2014 9:17 PM Comments 0 Likes 原文地址:http://blogs.technet.com/b/azuretw/archive/2014/10/06/azure-sql-database-point-in-time-restore.aspx 本篇文章,将说明 Azure SQL Database 的时间点还原( Point in Time Restore )功能,这项功能在 Azure SQL Database 的 Basic.St

测试c语言函数调用性能因素之测试二

函数调用:即调用函数调用被调用函数,调用函数压栈,被调用函数执行,调用函数出栈,调用函数继续执行的一个看似简单的过程,系统底层却做了大量操作. 操作: 1,               调用函数帧指针(函数参数,局部变量,栈帧状态值,函数返回地址)入栈,栈指针自减 2,               保存调用函数的状态数据入寄存器 3,               被调用函数帧指针入栈,执行当前的被调用函数 4,               被调用函数执行结束,退栈,返回到调用函数的帧指针,从寄存

测试c语言函数调用性能因素

函数调用:即调用函数调用被调用函数,调用函数压栈,被调用函数执行,调用函数出栈,调用函数继续执行的一个看似简单的过程,系统底层却做了大量操作. 操作: 1,               调用函数帧指针(函数参数,局部变量,栈帧状态值,函数返回地址)入栈,栈指针自减 2,               保存调用函数的状态数据入寄存器 3,               被调用函数帧指针入栈,执行当前的被调用函数 4,               被调用函数执行结束,退栈,返回到调用函数的帧指针,从寄存

良好人际关系的基石是情感储蓄

人际关系问题,无论是商业性质还是个人性质,一般都是由于缺乏了解造成的,随之而来的就是沟通不畅.大多数人际关系中,情感因素占据主导地位,就一段关系而言,最强有力的基础是基于情感的吸引力--通过各种情感补偿建立情感储蓄.情感补偿是一种令对方感觉舒适的行为,包括各种无形的东西,如尊重.理解对方感受.同情.道歉或者让步,情感拉近了人与人的关系,人们彼此重视对方并积极回馈.情感补偿可以是谈心开导,也可以使保持沉默,下面是一些体现情感补偿行为: 1,重视别人,肯定对方价值.克制冲动,不要取笑对方的观点和看法