最新九大软件质量因素教学提纲
软件质量因素及其指标
软件质量因素及其指标一、运行因素1、正确性(Correctness)软件满足需求说明书规定以及用户补充提出任务要求的程度。
包括安全性(Completeness)和可跟踪性(Traceability)2个指标。
2、可靠性(Reliability)在规定的条件下和规定的时间内软件正确运行的概率。
包括精确性(Accuracy)、容错性(Error Tolerance)、兼容性(Consistency)等指标。
3、效率(Efficiency)软件运行所需的资源和时间开销。
包括存储效率(storage Efficiency)和执行效率(Execution Efficiency)2个指标。
4、完整性(Integrity)或安全性(security)对软件或数据所受到的未经获准的存取或修改可以加以控制的程度。
包括存取控制(Access Control)和存取审查(Access Audit)2个指标。
5、可用性(Usability)掌握该软件运行的容易程度。
包括可操作性(Operability)、易培训性(Training)和通信性(Communicativeness)3个指标。
二、修正因素──软件经受修改的能力1、可维护性(Maintainability)对软件理解、纠错的容易程度。
包括简明性(Simplicity)、可简洁性(Concisenes)模块性(Modularity)等指标。
2、灵活性(Flexibility)对软件修改或扩充的可能性和容易程度。
包括通用性(Generality)、可扩充性(Expandabitity)等指标。
3、可测试性(Testability)对软件测试的容易程度。
包括自检性(Instrumentation)、自描述性(Self-Descriptiveness)等指标。
三、转移因素──软件适应新环境的能力1、可移植性(Port ability)软件转移到另一个环境运行的可能性和容易程度。
软件质量管理与质量保证
CMM /PSP/TSP技术流派
CMM(软件能力成熟度模型:Capability Maturity Model For Software)是由美国卡内基梅隆大学的软件工程研究 所(SEI:Software Engineering Institute)受美国国防部评 估软件供应商能力的要求,1986年开始研究制定,并 在美国,随后在全世界推广实施的一种软件评估标准 ,主要用于软件开发过程和软件开发能力的评估和改 进。CMM标准共分五个等级,由低到高分别为: 初始 级、可重复级、已定义级、定量管理级和优化级。
9.2.1 质量保证的主要功能
质量方针的制定和展开 质量保证方针的质量保证标准的制定
质量保证体系的建立和管理
各阶段的质量评审
9.2.2 质量保证的实施 质量度量方法
ISO建议的软件质量评价标准分为三级: 高层:质量需求评价准则(SQRC) 中层:质量设计评价准则(SQDC) 低层:质量度量评价准则(SQMC)
优化级(5)
不断改进的过程
软件过程能力
管理级(4)
可预测的过程
定义级(3)
标准的一致的过程
重复级(2)
0 1 2 3 4 5
有纪律的过程
初始级(1)
成熟度等级
5个成熟度等级在开发过程中变化的显著特点
级别 1 初始级
2 重复级
特点
软件开发过程是一个偶然的甚至无序的过程,很少有 明确的定义,成功完全依赖于个体的能力. 实施基本的项目管理:跟踪软件成本、进度和功能。 依照以往项目成功的经验来建立基本的过程规则,使 得其他相似项目能重复以往的成功。
定义级(3)
同行评审 组间协调 软件产品工程 集成软件管理 培训大纲 组织过程定义 组织过程集点
软件质量保证与测试教学大纲
软件质量保证与测试教学大纲第3次开课开课时间:2020年09月28日~ 2020年12月31日当前开课已结束学时安排:2/4已有253 人参加老师已关闭该学期,无法查看课程详情课程评价(24)2016年获批教育部协同育人MOOC建设项目,为江苏省2018-2019年在线开放课程建设项目,已开展6轮SPOC/MOOC教学,目前同时在中国大学慕课、优课在线和本校网络教学平台上线,教学效果较好,被中国高校计算机教育MOOC 联盟评为2018年度“联盟建设课程”。
课程按照OBE理念建设,符合工程教育认证要求。
——课程团队课程概述随着软件规模越来越大,复杂度越来越高,应用领域越来越广泛和深入,社会对软件产品的质量要求,尤其是可靠性、安全性等要求越来越高,软件产品的质量风险越来越大,重要软件,如果生产过程中没有严格的质量保证措施,不经过充分测试,就投入使用,可能造成恶性事故,导致难以挽回和无法估量的巨大损失,在这样的发展背景下,软件质量保证与测试越来越重要。
《软件质量保证与测试》是软件工程专业的一门核心课程。
本课程主要讲授软件质量保证与测试的发展过程、基本概念、核心思想、基础知识、基本原理、主要方法、基本过程、常用技术和工具。
本课程要求学习者通过对软件质量保证与测试的重要性和意义、原则和局限性、静态测试和动态测试、黑盒测试和白盒测试、软件质量和模型、人工测试和自动化测试、测试过程和环节、测试组织和管理、软件评审等内容的学习和实践,掌握软件质量保证与测试的原理、方法和技术,掌握自动化测试工具和辅助工具软件的使用,具备软件测试需求分析能力,具备软件测试项目的计划和组织能力,具备软件测试分析和测试用例设计能力,具备软件测试的执行、记录、结果分析和评价能力。
为方便学习者学习、测验和交流互动,本课程配备了教学视频、PPT课件、课堂提问、测验题、讨论题等。
为培养学生自学能力,本课程安排一部分拓展学习内容,要求学习者自行通过查阅资料、交流讨论等来进行学习。
软件质量保证教程ppt
02
集成测试
将多个模块集成在一起进行测试, 确保模块之间的接口正常。
用户验收测试
让用户对系统进行实际操作,确保 系统满足用户需求。
04
测试驱动开发
编写测试用例
在编写代码之前,先编写测试 用例,明确代码的预期行为。
单元测试
对每个函数或方法进行测试, 确保其功能正常。
集成测试
将多个函数或方法集成在一起 进行测试,确保其接口正常。
测试覆盖率评估
01
单元测试覆盖率
02
集成测试覆盖率
03
端到端测试覆盖率
评估单元测试覆盖的代码比例, 确保关键代码路径得到充分测试。
评估集成测试覆盖的功能或模块 比例,确保各模块之间的集成和 交互得到充分测试。
评估端到端测试覆盖的系统功能 比例,确保整个系统的功能得到 充分测试。
缺陷预防与预测性分析
重用性。
需求分析
对软件需求进行深入理解,确保开发 团队对需求有准确的理解和实现。
文档编写
编写详细的文档,包括需求文档、设 计文档、用户手册等,以便于项目管 理和后期维护。
动态质量保证
01
单元测试
对代码的每个模块进行测试,确保 模块功能正常。
系统测试
对整个系统进行测试,确保系统功 能正常、性能达标。
代码优化
通过改进算法、减少冗余代码等方式, 提高代码性能和效率。
敏捷开发与DevOps实践
敏捷开发
采用敏捷开发方法,快速响应需求变化,提高软件交付速度和质量。
DevOps实践
通过自动化工具和流程,实现快速部署、持续集成和持续交付,提高软件交付效率和质量。
05
软件质量保证工具与技术
静态代码分析工具
软件质量管理概论
软件质量管理概论引言软件质量管理(Software Quality Management)是指在软件开发过程中,针对软件产品或项目进行全面的管理和控制,以确保软件满足用户需求和预先定义的质量标准。
软件质量管理包括质量计划制定、质量控制和质量保证等方面,是保证软件项目顺利进行和提供高质量软件产品的关键环节。
质量管理体系概述质量管理体系是软件质量管理的核心,它为软件开发过程中的各个环节提供了一套全面的规范和指引,以确保软件开发的质量和效果。
一个完善的质量管理体系包括质量管理方针、质量目标、质量策划、质量控制和质量改进等要素。
质量管理方针质量管理方针是指组织对质量管理的整体要求和目标。
它是软件开发过程中质量管理的基石,为各个相关方明确了软件质量管理的基本原则和目标。
质量管理方针应包括以下要素: - 组织对软件质量的承诺,包括领导层对质量的重视和支持; - 对用户需求的明确和理解,确保软件开发过程中始终以用户满意为导向; - 对质量目标和指标的设定,以便于对软件质量进行评估和控制。
质量目标质量目标是质量管理的具体目标和标准。
它是根据质量管理方针和需求分析而确定的,用于评估软件开发过程中的质量水平。
质量目标应包括以下要素: - 软件性能要求,包括响应速度、稳定性和安全性等; - 用户体验要求,包括界面友好性、易用性和可访问性等; - 软件功能要求,包括功能完整性和兼容性等。
质量策划质量策划是质量管理的具体计划和措施。
它是根据质量目标和质量要求而确定的,用于指导软件开发过程中的质量控制和改进。
质量策划应包括以下要素: - 质量控制计划,包括质量检查和质量测试等; - 质量改进计划,包括缺陷修复和持续改进等; - 质量培训计划,包括对开发团队的培训和指导等。
质量控制质量控制是质量管理的具体操作和实施。
它是根据质量策划和质量目标而进行的,用于确保软件开发过程中的质量符合预期。
质量控制应包括以下要素: - 质量检查,包括对软件开发过程中的各个环节进行检查和验证; - 质量测试,包括对软件产品进行功能测试、性能测试和兼容性测试等; - 质量记录,包括对质量检查和测试结果进行记录和分析。
软件质量因素
健壮性是指在异常情况下,软件能够正常运行的能力。 正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外的行为。 开发者往往把异常情况错当成正常情况而不作处理,结果降低了健壮性。 用户才不管正确性与健壮性的区别,反正软件出了差错都是开发方的错。所以提高软件的健壮性也是开发者的义务。 健壮性有两层含义:一是容错能力,二是恢复能力。
可靠性
可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。 可靠性本来是硬件领域的术语。比如某个电子设备在刚开始工作时挺好的,但由于器件在工作中其物理性质会发生变化(如发热),慢慢地系统的功能或性能就会失常。所以一个从设计到生产完全正确的硬件系统,在工作中未必就是可靠的。 软件在运行时不会发生物理性质的变化,人们常以为如果软件的某个功能是正确的,那么它一辈子都是正确的。可是我们无法对软件进行彻底地测试,无法根除软件中潜在的错误。平时软件运行得好好的,说不准哪一天就不正常了,如有千年等一回的“千年虫”问题,司空见惯的“内存泄露”问题、“误差累积”问题等等。 时隐时现的错误一般都属于可靠性问题,纠错的代价很高。
安全性
这里安全性是指信息安全,英文是Security而不是Safety。 安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。 “道高一尺,魔高一丈” ,绝对安全的信息系统几乎不存在。 开发商和客户愿意为提高安全性而投入的资金是有限的,他们要考虑值不值得。 究竟什么样的安全性是令人满意的呢? 一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、风险等因素)高于得到的好处,那么这样的系统可以认为是安全的。
软件质量因素
软件质量因素主要包括以下十点:
功能性质量因素易用性,清晰性,安全性,可扩展性,兼容性,可移植性
九大软件质量因素
九大软件质量因素1、健壮性是指在异常情况下,软件能够正常运行的能力。
正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外的行为。
开发者往往把异常情况错当成正常情况而不作处理,结果降低了健壮性。
用户才不管正确性与健壮性的区别,反正软件出了差错都是开发方的错。
所以提高软件的健壮性也是开发者的义务。
健壮性有两层含义:一是容错能力,二是恢复能力。
2、可靠性可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。
可靠性本来是硬件领域的术语。
比如某个电子设备在刚开始工作时挺好的,但由于器件在工作中其物理性质会发生变化(如发热),慢慢地系统的功能或性能就会失常。
所以一个从设计到生产完全正确的硬件系统,在工作中未必就是可靠的。
软件在运行时不会发生物理性质的变化,人们常以为如果软件的某个功能是正确的,那么它一辈子都是正确的。
可是我们无法对软件进行彻底地测试,无法根除软件中潜在的错误。
平时软件运行得好好的,说不准哪一天就不正常了,如有千年等一回的“千年虫”问题,司空见惯的“内存泄露”问题、“误差累积”问题等等。
时隐时现的错误一般都属于可靠性问题,纠错的代价很高。
3、性能性能通常是指软件的“时间-空间”效率,而不仅是指软件的运行速度。
人们总希望软件的运行速度高些,并且占用资源少些。
性能优化的关键工作是找出限制性能的“瓶颈”可以通过优化数据结构、算法和代码来提高软件的性能。
4、易用性易用性是指用户使用软件的容易程度。
现代人的生活节奏快,干啥事都想图个方便。
所以把易用性作为重要的质量属性对待无可非议。
导致软件易用性差的根本原因:理工科大学教育存在缺陷:没有开设人机工程学、美学、心理学这些必修课,大部分开发人员不知道如何设计易用的软件产品。
开发人员犯了“错位”的毛病:他以为只要自己用起来方便,用户也就会满意。
软件的易用性要让用户来评价。
当用户真的感到软件很好用时,一股温暖的感觉油然而生,于是就用“界面友好”、“方便易用”等词来评价软件产品。
影响软件质量的几个因素
影响软件质量的几个因素随着计算机技术的发展,建立起一个应用系统并不困难,困难的是如何让您的应用系统真正产生效益。
应该看到,虽然社会在信息化建设方面投入了大量资源,其现状并不令人十分满意,很多信息系统虽然运转起来,但是利用率很低。
这其中可能有众多原因,导致信息系统运行的效果,未能达到前期设计时的目标,其中,有组织的软件质量是问题的关键所在。
以下是影响软件质量的几个因素:1设计时需求不明确应用需求不明确,影响数据完整性和准确性。
在系统开发之初,管理者说不清应用需求,设计目标难明确;系统开发中,不断冒出新要求,计划赶不上变化;系统开发完后,为了适应众口难调状况,修改、完善周期拖得很长。
这样的系统,可利用的程度自然不高。
2 开发方式落后原始数据都是由业务干部掌握的,相关性也是他们最清楚,但他们不懂计算机程序。
而编程人员大多数不熟悉业务,对相关性也难于理解,很难编写出业务人员使用方便、适应面宽、又很灵活的口径调整工具。
长期以来两类人员不易沟通,数据口径调整就成了老大难问题目前,大多数单位的开发方法往往把主要精力和资金投在编程上,而数据如何准备较少考虑。
系统开发完后才发现所需要的数据拿不到或不能用,影响数据可移植性和可继承性。
数据库应用软件开发必须与数据的组织、整理同步,并应着重考虑继承原有的信息资源。
3 对数据准备认识不足一些单位对档案数据的重要性缺乏认识,以为计算机是万能的机器,数据质量差些不要紧;也有的单位仅仅是“赶时髦”才盲目购买机器,对数据工作的难度、工作量等缺乏思想准备;还有的单位是为了应付评比检查,并没有真正把自动化检索提到议事日程。
4 缺乏质量控制监督措施由于多数检索系统没有进入实际应用阶段,数据质量的控制和监督往往被人们忽视。
绝大多数单位在数据准备、录入阶段缺乏审核等质量控制、监督措施。
著录标引的检查,一般采取自己审核或互相审核的方法,少数单位也设专人负责质量检查,但实际上由于种种原因,不能将著录卡片与文件一一对应起来审核,有些问题也难发现。
软件质量计划书
软件质量计划书1. 引言软件质量是一个软件项目成功的关键因素之一。
软件质量计划书是一个框架文档,描述了软件开发团队如何保证软件质量的过程、方法和目标。
本文档旨在定义软件质量计划,并提供一个指南,帮助团队确保开发的软件符合质量标准和用户需求。
2. 背景软件质量计划书的编制是为了确保软件在开发过程中和最终交付给用户时能够满足预期的质量要求。
这需要在整个软件开发生命周期中采取一系列的质量控制措施和质量保证方法。
本文档将描述这些措施和方法,并指导开发团队如何进行软件质量管理。
3. 质量目标软件质量目标是通过定义一系列质量指标来衡量软件的质量。
以下是我们项目中的质量目标:3.1 可靠性我们的软件需要具备高可靠性,能够稳定地运行在各种不同的环境中,并能够持续稳定地工作。
3.2 可维护性我们的软件需要易于维护,软件的代码应该易于理解和修改。
我们将采用清晰的代码结构和注释来提高软件的可维护性。
3.3 可测试性我们的软件需要具备良好的可测试性。
我们将采用自动化测试和测试驱动开发等方法来确保软件的正确性和稳定性。
3.4 性能我们的软件需要具备良好的性能,能够在合理的时间内处理大量数据和复杂的计算任务。
3.5 安全性我们的软件需要具备良好的安全性,能够保护用户的个人信息和数据安全。
4. 质量计划4.1 质量控制措施质量控制是通过在开发过程中采取一系列的措施来确保软件质量符合预期。
以下是我们项目中的质量控制措施:•代码审查:通过定期的代码审查来发现和纠正代码中的问题,提高代码质量。
•单元测试:编写单元测试用例来验证代码的正确性和稳定性。
•集成测试:在不同模块之间进行集成测试,验证模块之间的交互是否正常。
•系统测试:对整个系统进行测试,模拟用户的真实使用场景,验证系统的功能和性能是否符合预期。
•用户验收测试:将软件交给用户进行验收测试,确保软件满足用户的需求。
4.2 质量保证方法质量保证是通过制定一系列的方法和规程来确保软件质量符合预期。
软件质量目标
软件质量目标
软件质量目标是指为了保证软件的可靠性、稳定性和安全性,而设定的一系列要求和目标。
以下是软件质量目标的一些常见例子。
1. 可用性:软件应该易于使用,用户能够快速上手并流畅地完成各种操作。
2. 可靠性:软件应该能够在正常和不正常情况下保持稳定运行,不出现崩溃或错误。
3. 安全性:软件应该保护用户的数据和隐私,防止未经授权的访问和非法操作。
4. 效率:软件应该能够以合理的速度进行各种操作,不占用过多的系统资源。
5. 兼容性:软件应该能够与不同的操作系统、硬件和软件环境进行良好的兼容,确保在不同的平台上运行稳定。
6. 可维护性:软件应该易于进行修改和维护,使得新增功能、修复错误和升级版本变得简单和高效。
7. 可测试性:软件应该易于进行测试,能够快速发现和修复潜在错误。
8. 可扩展性:软件应该能够方便地进行扩展和升级,以满足用
户不断变化的需求。
9. 可管理性:软件应该易于管理和部署,有良好的文档和界面,方便运维人员进行操作。
10. 用户满意度:最终的目标是使用户对软件感到满意,能够
满足他们的需求,并提供良好的用户体验。
总之,软件质量目标是为了保证软件的功能和性能达到用户的期望,同时具备可靠性、稳定性、安全性和可维护性。
只有通过监控、测试和持续改进,才能不断提高软件质量,提供更好的用户体验。
软件的质量因素
软件的质量因素“运⾏正确”的程序就是⾼质量的程序吗?不贪污的官就是好官吗?时下⽼百姓对⼀些腐败的地⽅政府深痛恶绝,对“官”不再有质量期望。
只要当官的不贪污,哪怕毫⽆政绩,也算是“好官”。
也有⼀些精明的⽼百姓打出旗号:宁要贪污犯,不要⼤笨蛋。
相⽐之下,程序员是够幸福的了。
因为我们能通过努⼒,由⾃⼰来把握软件的命运。
那么就不要轻易放弃提⾼软件质量的权利了。
“运⾏正确”的程序不见得就是⾼质量的程序。
这个程序也许运⾏速度很低并且浪费内存;也许代码写得⼀塌糊涂,除了开发者本⼈谁也看不懂也不会使⽤。
正确性只是反映软件质量的⼀个因素⽽已。
软件的质量因素很多,如正确性、精确性、可靠性、容错性、性能、效率、易⽤性、可理解性、简洁性、可复⽤性、可扩充性、兼容性等等(还可以列出⼗⼏个)。
这些质量因素之间“你中有我,我中有他”,⾮常缠绵。
如果程序员每天要⾯对那么多质量因素咬⽂嚼字,不久就会迂腐得象孔⼄已,并且有找不到⼥朋友的危险。
为了便于理解,可以参照武侠⼩说中的武学分类,将质量因素粗略地分成⼏⼤派。
你想那武学源源流长,相互渗透,谁能数得清有多少江湖派别。
但想在道上混,总得知道六⼤门派:“少林派”、“武当派”、“峨嵋派”、“华⼭派”、“昆仑派”和“崆峒派”。
软件质量因素的分类如图3.2所⽰。
其中“正确性与精确性”排在⾸位,地位如同“少林派”与“武当派”;⽽“性能与效率”,“易⽤性”,“可理解性与简洁性”和“可复⽤性与可扩充性”亦是举⾜轻重的质量因素,地位仿佛“峨嵋派”,“华⼭派”,“昆仑派”和“崆峒派”。
其它的质量因素总可以在图3.2中找到合适的亲缘关系,本节不再⼀⼀细表。
3.3.1 正确性与精确性正确性与精确性之所以排在质量因素的第⼀位,是因为如果软件运⾏不正确或者不精确,就会给⽤户造成不便甚⾄造成损失。
机器不会主动欺骗⼈,软件运⾏不正确或者不精确⼀般都是⼈造成的。
即使⼀个软件能100% 地按需求规格执⾏,但是如果需求分析错了,那么对客户⽽⾔这个软件也存在错误。
如何保证软件的质量
如何保证软件的质量
影响质量的三要素:技术,流程,组织。
技术,流程直接影响软件质量,组织通过影响技术、流程,从而间接影响软件质量。
技术是有人来承载的,作为一个公司,员工的技术的凹凸,从一个方面影响了他们产品的质量,而员工的技术又可以分为两个方面,一是现有员工的技术,二是以前员工积累下的技术(包括专利,案例,及一些已经平台化,模式化的东西),这两方面有了保证,技术也就有了保证。
流程规定了一项活动的基本要素和规章,告知人们谁什么时候该做什么,如何去做,要得到什么。
它驱动着人们的活动,是使活动规范化,从而提高效率。
技术和流程的关系,两者相辅相成,缺一不行。
书上的例子:从上海去北京,技术能关心们找到最快的交通工具
飞机,而流程则找到了最短路径,两者结合,就OK了。
组织对技术的影响
1 .能否保证现有员工技术都是符合要求的。
2.能否在制度上保证以前员工积累的阅历能够固化下来。
组织对流程的影响
1.能否制定出符合企业实际状况的流程。
2.能否为流程的推行供应制度上的保证。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
九大软件质量因素
1、健壮性
是指在异常情况下,软件能够正常运行的能力。
正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外的行为。
开发者往往把异常情况错当成正常情况而不作处理,结果降低了健壮性。
用户才不管正确性与健壮性的区别,反正软件出了差错都是开发方的错。
所以提高软件的健壮性也是开发者的义务。
健壮性有两层含义:一是容错能力,二是恢复能力。
2、可靠性
可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。
可靠性本来是硬件领域的术语。
比如某个电子设备在刚开始工作时挺好的,但由于器件在工作中其物理性质会发生变化(如发热),慢慢地系统的功能或性能就会失常。
所以一个从设计到生产完全正确的硬件系统,在工作中未必就是可靠的。
软件在运行时不会发生物理性质的变化,人们常以为如果软件的某个功能是正确的,那么它一辈子都是正确的。
可是我们无法对软件进行彻底地测试,无法根除软件中潜在的错误。
平时软件运行得好好的,说不准哪一天就不正常了,如有千年等一回的“千年虫”问题,司空见惯的“内存泄露”问题、“误差累积”问题等等。
时隐时现的错误一般都属于可靠性问题,纠错的代价很高。
3、性能
性能通常是指软件的“时间-空间”效率,而不仅是指软件的运行速度。
人们总希望软件的运行速度高些,并且占用资源少些。
性能优化的关键工作是找出限制性能的“瓶颈”可以通过优化数据结构、算法和代码来提高软件的性能。
4、易用性
易用性是指用户使用软件的容易程度。
现代人的生活节奏快,干啥事都想图个方便。
所以把易用性作为重要的质量属性对待无可非议。
导致软件易用性差的根本原因:理工科大学教育存在缺陷:没有开设人机工程学、美学、心理学这些必修课,大部分开发人员不知道如何设计易用的软件产品。
开发人员犯了“错位”的毛病:他以为只要自己用起来方便,用户也就会满意。
软件的易用性要让用户来评价。
当用户真的感到软件很好用时,一股温暖的感觉油然而生,于是就用“界面友好”、“方便易用”等词来评价软件产品。
5、清晰性
清晰意味者所有的工作成果易读、易理解,可以提高团队开发效率,降低维护代价。
开发人员只有在自己思路清晰的时候才可能写出让别人易读、易理解的程序和文档。
可理解的东西通常是简洁的。
一个原始问题可能很复杂,但高水
平的人就能够把软件系统设计得很简洁。
如果软件系统臃肿不堪,它迟早会出问题。
所以简洁是人们对工作“精益求精”的结果,而不是潦草应付的结果。
千万不要把在学校里“造文章”的手法用于开发产品!
6、安全性
这里安全性是指信息安全,英文是Security而不是Safety。
安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。
“道高一尺,魔高一丈”,绝对安全的信息系统几乎不存在。
开发商和客户愿意为提高安全性而投入的资金是有限的,他们要考虑值不值得。
究竟什么样的安全性是令人满意的呢?一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、风险等因素)高于得到的好处,那么这样的系统可以认为是安全的。
7、可扩展性
可扩展性反映软件适应“变化”的能力。
在软件开发过程中,“变化”是司空见惯的事情,如需求、设计的变化,算法的改进,程序的变化等等。
由于软件是“软”的,是否它天生就容易修改以适应“变化”?关键要看软件的规模和复杂性。
现代软件产品通常采用“增量开发模式”,不断推出新版本,获取增值利润。
可扩展性越来越重要。
可扩展性是系统设计阶段重点考虑的质量属性。
8、兼容性
兼容性是指两个或两个以上的软件相互交换信息的能力。
兼容性的商业规则:弱者设法与强者兼容,否则无容身之地;强者应当避免被兼容,否则市场将被瓜分。
示例:中国联通和中国移动的手机互联互通问题金山软件公司的WPS 与微软的Word之争
9、可移植性
可移植性是指软件运行于不同软硬件环境的能力编程语言越低级,其程序越难移植,反之则容易。
软件设计时应该将“设备相关程序”与“设备无关程序”分开,将“功能模块”与“用户界面”分开。
我有一个好朋友,她的名字叫琳琳,她来自中国,她10岁,她是我的同班同学,她喜欢体育。
光明小学一年级:刘子睿。