软件工程阅读笔记3

  第七章主要是测试与改错。测试的目的是为了发现尽可能多的缺陷。测试并不仅是个技术问题,更是个职业道德问题。在软件测试时如果发现了错误,必须请程序员改错,否则测试工作就白干了。改错是个大悲大喜的过程,一天之内可以让人在悲伤的低谷和喜悦的颠峰之间跌荡起伏。改错之后一定要马上进行重新测试,以免引入新的错误。程序中的错误只有开发者自己才能找出并改掉。如果因畏惧而拖延,会让你终日心情不定,食无味,睡不香。所以长痛不如短痛,要集中精力对付错误。程序员应该把测试当成份内之事,不要依赖于外界的“黑盒测试”。程序出了错误一定要改错,但是“编写优质无错”的程序才是根本的解决之道。

    第八章讲的是维护与再生工程。对软件而言,''维护''是个不太直观的术语,因为软件产品在重复使用时不会被磨损,并不需要进行像对车辆或电器那样的维护。软件维护是人们对既丰富多彩又会令人心酸的活动的统称。其中丰富多彩的活动是指那些反映客观世界变化、能使软件系统更加完善的修改和扩充工作。令人心酸的活动是指那些永无修止、并且改了旧错却引起新错让人欲哭无泪的工作。一些学者将软件维护划分为主要的三类:纠错性维护(Corrective maintenance)、适应性维护(Adaptive  maintenance)和完善性维护(Perfective maintenance):
(1)纠错性维护。由于前期的测试不可能揭露软件系统中所有替在的错误,用户在使用软件时仍将会遇到错误,诊断和改正这些错误的过程称为纠错性维护。
(2)适应性维护。由于新的硬件设备不断推出,操作系统和编译系统也不断地升级,为了使软件能适应新的环境而引起的程序修改和扩充活动称为适应性维护。
(3)完善性维护。在软件的正常使用过程中,用户还会不断提出新的需求。为了满足用户新的需求而增加软件功能的活动称为完善性维护。Lientz  和Swanson调查发现(1980年),完善性维护约占65%,适应性维护约占18%,纠错性维护约占17%[Sommerville  1992]。上述调查已是20年前的事了,我们不必太关心具体的比例,心里有数即可。

     一个好的项目,设计至少可以占到百分之五十甚至更多。林锐的文章当中,自始至终在灌输两个思想,一个是高内聚低耦合,一个是设计应当以行为为中心而非数据为中心,业界的话就是应当以需求为中心。

     这本软件工程思想大概只有百页,核心讲的是设计,贯穿全文的是思想。

    书的最后,林锐博士更是讲叙了自己的“十年”大学生涯,生动而精彩,让人回味无穷。所以,我想以作者的肺腑之言结束我的这篇读后感:

一、主动去创造环境,否则你无法设计人生。

二、生活和工作要充满激情,否则你无法体会到淋漓尽致的欢乐与痛苦。

转载于:https://www.cnblogs.com/fan-xiaofan/p/5590285.html

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

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

相关文章

四、PHP基础——会话技术Cookie 和 Session

会话技术初步认识 会话技术介绍 web会话可简单理解为:用户开一个浏览器,访问某一个web站点,在这个站点点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。 HTTP协议的特点是…

python三级菜单设计题目_Python三级菜单

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 三级菜单:打印省、市、县三级菜单。 可返回上一级,可随时退出程序首先准备基础数据zone{山东:{青…

c#复习-2

输入三个学生的信息学号、姓名、分数从大到小排序 1 using System;2 using System.Collections;3 using System.Collections.Generic;4 using System.Linq;5 using System.Text;6 7 namespace 复习CS8 {9 class Program 10 { 11 struct Student 12 { 1…

加入 Git 版本管理(git的基本使用)

加入 Git 版本管理 https://github.com/zep03/toutiao-publish-admin/tree/master/src 建议在项目的一开始就加入版本管理,通过版本管理,我们可以得到很多好处,例如: 代码备份 多人协作 历史记录 … 下面是具体的操作流程。 …

long类型python_Python类型long vs C'long long'

I would like to represent a value as a 64bit signed long, such that values larger than (2**63)-1 are represented as negative, however Python long has infinite precision. Is there a quick way for me to achieve this? 解决方案>>> from ctypes import …

软工课程读书笔记

这个学期的软工课程相对而言是很特殊的,没有期末考试,取代的三个由简到难的项目,也由一人变成多人团队开发,还有每周一篇的博客来记录自己的学习情况。这就要求我们平时注重知识的积累,多看书才能很好的完成任务。 软件…

Vue中富文本编辑器的使用

基于 Vue 的富文本编辑器有很多,例如官方就收录推荐了一些: https://github.com/vuejs/awesome-vue#rich-text-editing 。 这里我们以 element-tiptap 为例。 GitHub 仓库:https://github.com/Leecason/element-tiptap 在线示例&#xff1a…

python中continue格式_python自学(3)--for 、 while、 break、continue、字符格式化输出...

一、循环语句 1.for 语句 有限循环 ,次数限制 格式: for i in range (3): 例子: _username "zhichengfang" _password "fzc2551352" for i in range(3) : username input("use…

Vue项目中使用Echarts(一)

Echarts官方文档 1. 安装Echarts 在cmd命令行输入: npm install echarts --save 2. 代码中使用 注意:import 引入echarts 包时,不要使用 import echarts from ‘echarts’ 而要使用import * as echarts from echarts 否则会报错如下: 3. 页…

Google Guava缓存实现接口的限流

一.项目背景 最近项目中需要进行接口保护,防止高并发的情况把系统搞崩,因此需要对一个查询接口进行限流,主要的目的就是限制单位时间内请求此查询的次数,例如1000次,来保护接口。 参考了 开涛的博客聊聊高并发系统限流…

javaweb 常用jar包_使用javaweb写一个登录案例

下载地址:https://gitee.com/dl_shrimp/java_web_login_case.githttps://www.zhihu.com/video/1241780888599699456讲一下如何使用javaweb写一个登录案例Dao就是用来操作数据库的一些类的统称(1)DAO是Data Access Object数据访问接口。数据访…

Vue项目中使用图片裁切器 cropperjs (头像裁切)

cropperjs官方文档 cropperjs结合element-ui 组件后的显示效果: 1. npm 安装 cropperjs cmd命令行输入:npm install cropperjs --save 2. 导入相关js和css文件 import cropperjs/dist/cropper.css import Cropper from cropperjs3. 用块元素(容器&…

mysql常见问题记录

1.常见命令:查看mysql表结构的方法有三种:1、desc tablename;2、show create table tablename;3、use information_schema;select * from columns where table_nametablename例如:要查看jos_modules表结构的命令:use information_…

跳一跳python源码下载_python 微信跳一跳和源码解读

刚好周末,想研究一下前阵子很火的微信跳一跳 下面进入正文。 本文适用对象为WIN10系统,安卓用户。目的在于让丝毫没有接触过Python的小伙伴都能成功运行,如果你恰好是这样的对象,那么跟着我开始操作。我会把我自己的每一步都写下来…

HTML文件上传对象file

window.URL.createObjectURL(fileObj)

python自动化接口测试excel用例串行之行_python 读取 Excel 自动化执行测试用例

python 读取 Excel 自动化执行测试用例 Excel 测试用例的读取 安装 python 操作Excel 的库 pip install xlrd/xlwt/xlutils (安装三个操作库) 接口请求代码构建 import requests from random import randint import xlrd import json class My_request(object): # 对返回值进行…

Vue项目中使用Echarts(二)

1. 安装&#xff1a; 通过 npm 获取 echarts&#xff0c;npm install echarts --save 2. 最终页面展示效果如下&#xff1a; 三、代码实现 map-demo.vue: <template><!-- 1. 为 ECharts 准备一个具备大小&#xff08;宽高&#xff09;的 DOM --><div ref&quo…

python批量处理excel文本改为数字_Python批量修改Excel中的文件内容

import os import xlrd from xlutils.copy import copy def base_dir(filenameNone): return os.path.join(os.path.dirname(__file__),filename) """对excel进行操作""" work xlrd.open_workbook(base_dir("excel.xls")) # 索引到第…

正则表达式替换排除特定情况

1.只替换第一次出现的字符串“红豆”&#xff1b; $s"iam carl 小红豆杉苗 <a hrefabc>dfsaf<a href\"fdsafdsaf\">大红豆杉</a></a> carl fds<b>af红豆dsa</b>few"; $r preg_replace(/红豆/i, 绿豆,$s,1); var_dump…

Vue项目中使用百度地图API

百度地图官方文档 1. 申请百度账号和ak 申请 2. 引用百度地图API文件 <script type"text/javascript" src"https://api.map.baidu.com/api?v1.0&&typewebgl&ak您的密钥">3. 设置容器样式 设置容器样式大小 4. 创建地图容器元素 …