软件构造正确性和健壮性

面向健壮性的编程有以下几点要求或优点:处理未期望的行为和错误终止即使终止执行,也要准确/无歧义的向用户展示全面的错误信息错误信息有助于进行debug

健壮性原则:总是假定用户为恶意用户,假定自己的代码会失败把用户想象成一个小孩,可能输出任何东西注意,因为用户很小孩,最好要返回给用户错误提示信息,而且要详细准确无歧义!对自己的代码要保守,对用户的行为要开放。

  关于这一点,体现在代码方面,就需要做出策略,是写多个分支进行检查或者是检测错误报错。

原文地址:https://www.cnblogs.com/yanzhao-x/p/10928193.html

时间: 2024-10-08 04:31:11

软件构造正确性和健壮性的相关文章

【软件构造】第七章第一节 健壮性和正确性的区别

第七章第一节  健壮性和正确性的区别 第七章:进入软件构造最关键的质量特性 --健壮性和正确性. 本节在1-2节的基础上,重申了Robustness and Correctness的重要性,澄清了二者之 间的差异,并指明了在软件构造中处理二 者的典型技术(防御式编程.异常处理. 测试.调试等) Outline 健壮性(Robustness)和正确性(correctness) 如何测量健壮性和正确性 Notes ## 健壮性(Robustness)和正确性(correctness) [健壮性] 定

软件构造 7-1 健壮性与安全性

健壮性与安全性 什么是健壮性与安全性? 如何衡量健壮性与安全性? 健壮性:系统或组件在存在无效输入或压力环境时一颗正确运行的程度. 健壮性编程关注异常终止和异常活动的处理. 健壮性原则:严于律己(满足specification),宽以待人(接受各种输入) 健壮性编程原则(把用户当做小孩) 1.用户会修改代码,而且自己写的还不对 2.用户不会看specification(所以我们应该在他操作错误时返回明确的错误信息帮助其改正) 3.危险行为,我们不应当将信息暴露给用户,以至于产生漏洞,使用户专注于

【软件构造】第二章第二节 软件构造的过程、系统和工具

第二章第二节 软件构造的过程.系统和工具 Outline 广义的软件构造过程 编程 静态代码分析 动态代码分析 调试与测试 重构 狭义的软件构造过程 构造系统:经典BUILD场景 构造系统的组件 构造过程和构造描述 Java编译工具 子目标和结构变体 构造工具 Notes ## 广义的软件构造过程 [编程(Coding)] 开发语言:如Java.C.Python 使用IDE(集成开发工具)的优势(组成) 方便编写代码和管理文件(有代码编辑器,代码重构工具.文件和库(Library)管理工具) 能

哈工大 软件构造课程 考点复习总结(第三章)

数据类型 Primitive types 基本数据类型(8种) Object types 对象数据类型(reference types 引用数据类型) Short.int .long.float.double.boolean.char.byte 如:String.BigInteger 只有值,没有ID(无法与其他值区分),不能赋值为null: immutable 有值,也有ID: 部分mutable,部分immutable 在栈中分配内存,代价低 在堆中分配内存,代价高 静态类型检查&动态类型检

软件构造-犯错的艺术——健壮性与正确性,异常,防御式编程,debugging与test的思考与总结

健壮性与正确性 健壮性与正确性是不同的——一个倾向于使程序尽可能保持运行,即使遇到错误,一个倾向于使程序尽可能正确,不在意保持运行 异常 异常分为两种——checked exception与unchecked exception 二者的区别在于: checked exception需要显式的处理,说白了就是编程者必须要么用catch抓住它,然后在try中想办法处理掉,要么显式的将这个异常扔到调用的上一级方法,也就是甩锅.总而言之,你永远不能无视checked exception unchecke

软件构造复习——7.1健壮性与正确性

一.健壮性和正确性的简单介绍 1.1Robustness  健壮性 1.1.1 定义:健壮性又称鲁棒性,是指软件对于规范要求以外的输入情况的处理能力.所谓健壮的系统是指对于规范要求以外的输入能够判断出这个输入不符合规范要求,并能有合理的处理方式. 简单来说就是系统在正常输入或不正常外部环境下仍能够表现正常的程度. 1.1.2面向健壮性编程的做法 处理未期望的行为和错误终止 即使终止执行,也要准确/无歧义的向用户展示全面的错误信息 错误信息有助于进行debug 1.1.3面向健壮性编程的原则 总是

【软件构造】第一章 软件构造基础(2)

二.软件构造的质量目标 1. 外部属性(主要):影响用户感受,如外观.速度等 (1)正确性:符合规格范围和计划目标 ·只保证各个层面的正确性(假设调用正确) ·检验与调试 ·防御性编程 ·形式化编程 (2)健壮性:响应规格范围外的异常情况 ·提示错误信息 ·正常退出或降级 (3)可扩展性:提供增加新功能的空间 ·固化需求以规避风险 ·设计简洁.离散化 (4)可复用性:使软件模块能够被其他程序使用 ·模式固化 (5)兼容性:跨平台.跨软件交互 ·使用标准文件格式.数据结构.接口,保持一致性 ·定义

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

?软件构造 第一章第二节 软件开发的质量属性 1.软件系统质量指标 External quality factors affect users 外部质量因素影响用户 Internal quality factors affect the software itself and its developers 内部质量因素影响软件本身和它的开发者 External quality results from internal quality 外部质量取决于内部质量 外部属性: 正确性:按照预先定义的"

软件构造 第一章

一.课程简介 1.软件构造课程的目标 ①程序设计与实现能力 ②系统设计与实现能力 ③系统分析与评价能力 ④利用现代软件构造工具的能力 2.传统软件设计步骤 ①讨论需要写的软件并实现②测试代码并改错③重复②.图示如下 3.更好的软件设计 ①未雨绸缪②考虑非功能质量属性③考虑多种设计选择④把设计决策明确写下来 4.设计的目标.原则和模式 设计目标:编程的视野 设计原则:编程的标尺 设计模式:编程的经验 二.软件构造多维视图 1.什么是软件 (1)构成: ·程序Program:UI, Algorith