首页 > 其他分享 >软件构造复习(一)

软件构造复习(一)

时间:2023-05-20 15:23:24浏览次数:46  
标签:版本 复习 迭代 异常 构造 测试 软件 过程

最近在复习软件构造,知识点感觉比较多,有些记不住的就在这里写一下以便回顾,如果有幸能帮到别人那就更好了。

测试、异常、健壮性

测试

测试的等级

按被测试部分的规模分为单元测试、集成测试、系统测试、验收测试

回归测试:一旦程序被修改,重新执行之前的所有测试

 黑盒测试/白盒测试

白盒测试:对程序内部代码结构的测试——要考虑内部实现细节

黑盒测试:对程序外部表现出来的行为的测试——完全从函数Spec中导出测试用例,不考虑函数内部实现

测试优先编程

步骤:写Spec、根据Spec写测试用例、写代码并测试

单元测试

针对软件的最小单元模型开展测试,隔离各个模块,容易定位错误和调试

错误和异常

错误(Error):指程序中严重的错误,如栈溢出、内存溢出、虚拟机运行错误等。程序员无法处理。

异常(Exception):指程序可以处理的异常,可捕获且可能恢复。

异常又分为运行时异常(RuntimeException)和编译异常。运行异常是指运行时出现的异常,如数组越界(ArrayIndexOutOfBoundsException)、空指针异常(NullPointerException)等。这类异常不能在编译时被发现。编译异常是编译时能被发现的异常,如找不到方法(NoSuchMethodException)。有编译异常的程序不会被通过。

异常按是否能在编译时被发现分为UncheckedExcptions和CheckedException,其中CheckedExcecption必须被捕获或者声明(因为运行异常有jvm处理,编译异常则不行,所以必须自定义处理逻辑)。

 异常处理

1.try......catch......finally

用法:

try{

  //可能出现异常的代码

}catch(异常类型1  e){

  //发生类型1异常时进行的处理

}catch(异常类型2  e){

  //发生类型2异常时进行的处理

}......

finally{

  //无论异常是否发生都要执行的代码

}

捕获的异常一般是CheckedException,因为一般来说,如果捕获UncheckedException,则相当于对编程的错误置之不理。

2.throw

用于抛出异常

3.throws

如果一个方法抛出了CheckedException且没有捕获处理,则必须在方法声明上进行声明。

修饰符 返回值类型 方法名(参数) throws 异常类型1 异常类型2 ......{...}

还有下面这张表 比较重要

构造过程与配置管理

软件的过程模型

分为两种:线性过程和迭代过程。下面的前三种属于线性过程。

瀑布过程

线性推进,管理简单但无法适应需求的增加及变化

增量过程

将软件看作一系列相互联系的增量,在开发过程的各次迭代中,每次完成其中的一个增量

是多个瀑布的串行

V字过程

是对瀑布过程的扩展,在其基础上增加了测试阶段

原型过程

在原型基础上持续不断的迭代,发现用户变化的需求

开发出来之后由用户试用/评审,发现问题反馈给开发者,开发者修改原有的实现,继续交给用户评审。循环往复这个过程,直到用户满意为止。

该过程时间代价高,但开发质量也高

螺旋过程

非常复杂的过程

多轮迭代基本遵循瀑布模式。每轮迭代有明确的目标,遵循原型过程,进行严格的风险分析,方可进入下一轮迭代

敏捷开发

通过快速迭代和小规模的持续改进,快速适应变化。

软件配置管理(SCM)与版本控制系统(VCS)

SCM

软件配置管理:追踪和控制软件的变化

软件配置项:软件中发生变化的基本单元(如文件)

 基线:软件持续变化过程中的“稳定时刻”(如对外发布的版本)

 配置管理数据库(CMDB):存储软件的各配置项随时间发生变化的信息+基线

版本控制

分为三种

本地版本控制系统:仓库存储在开发者本地及其,无法共享和合作。

集中式版本控制系统:仓库存储于独立的服务器,支持多开发者之间协作。

分布式版本控制系统:仓库存储于独立的服务器 + 每个开发者的本地机器。(git)

git

四个工作区域

 workspace 工作区

staging 暂存区,虚拟区域,临时存放改动

local repository 本地仓库

remote repository 远程仓库

Object Graph

版本之间的演化关系图,一条边A->B表征了“在版本B的基础上作出变化,形成了版本A”

多个commit指向同一个父亲:分支

一个commit指向两个父亲:合并

与传统版本控制工具的区别

传统VCS存储版本之间的变化(行),git存储发生变化的文件而非代码行,不变化的文件不重复存储。

 分支/合并

示意图

关于合并,我在复习查找资料的过程中找到了一篇写得很好的文章

这才是真正的 Git——分支合并 - 知乎 (zhihu.com)

这篇文章详细地介绍了分支合并中的各种情况

标签:版本,复习,迭代,异常,构造,测试,软件,过程
From: https://www.cnblogs.com/Y-Y-R/p/17407258.html

相关文章

  • 全新的照片后期处理软件Lightroom Classic 2022(lrc2022)Mac版
    LightroomClassic2022是一款全新的照片后期处理。通过使用其卓越的图形处理功能,该软件不仅可以帮助您轻松地制作出创意的照片,而且还可以为您带来意想不到的效果。对照片,视频和图像编辑工具进行优化。这些新功能使您可以在处理图像时使用编辑器之外的方法进行编辑,从而节省时间并......
  • Visual Studio1.76.0Mac软件安装包下载VS软件安装教程
    [名称]:VisualStudio1.76.0Mac[大小]:2M[语言]:简体中文 [适用系统]:macOS系统[简介]:VisualStudio是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序,VS是一个非常完整的开发工具集,包括了所有软件生命周期中所需的大部分工具,如UML工具、代码管控工具、集成开......
  • Axure RP 9 for Mac软件安装包下载&安装教程
    [名称]:AxureRP9[大小]:75MB[语言]:简体中文 [安装环境]:MacOS10.12及以上[是否支持M1芯片]:支持[简介]:AxureRP是一个专业的快速原型设计工具。使用者主要包括商业分析师、信息架构师、产品经理、IT咨询师、用户体验设计师、交互设计师、UI设计师等,另外,架构师、程序员也在使用Axure......
  • 软构笔记-9-面向复用的软件构造技术
    目录软构9面向复用的软件构造技术源代码复用模块级别的复用class/interfaceclass的复用在OOP中设计复用类子类型多态LSP原则协变反协变、逆变软构9面向复用的软件构造技术本章大纲:软件复用的优缺点为复用而construct通用可复用组件的特征开发便携式应用系统的方法可复......
  • 软件测试的笔记 黑马程序员
     我想学会软件测试的课程。认真学呗。全部学了过一遍。认真学,自己想学。 ......
  • 2023.5.19——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......
  • LeetCode 105. 从前序与中序遍历序列构造二叉树
    题目链接:LeetCode105.从前序与中序遍历序列构造二叉树题意:给定两个整数数组 preorder和inorder ,其中 preorder是二叉树的先序遍历,inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。解题思路:模拟手动构建的过程,注意下标的变化。完整代码如下:/***Defini......
  • 评价软件产品
    我评价的软件产品是微信,微信是一款非常流行的社交软件,但是它也存在一些对用户不友好的设计。具体来说,以下是对微信不友好的设计的评价:隐私问题:微信在隐私问题上存在很多问题。例如,在用户同意微信的服务协议和隐私条款后,微信可以读取用户所有联系人,并上传到微信的服务器,用户的个......
  • Autodesk Maya 2024 for Mac软件安装包Maya2024Mac安装教程支持M1/M2芯片
    安装步骤1,双击打开下载好的安装包。2,选择installmaya2024双击打开启动安装程序。3,点击打开。4,安装准备中...5,输入电脑密码。6,勾选同意使用条款,然后点击下一步。7,点击下一步。8,点击安装。9,软件安装中,耐心等待一会...10,安装结束点击,关闭。11,返回打开的镜像,选择补丁双击打开它。12......
  • Autodesk AutoCAD 2024 Mac软件安装包下载CAD 2024Mac安装教程
    安装步骤1,双击打开下载好的安装包。2,选择installAutodeskAutoCAD2024forMac双击打开启动安装程序。3,选择打开。4,安装准备中...5,输入电脑密码。6,勾选我同意使用条款,然后下一步。7,点击【安装】。8,软件安装中...9,安装结束关闭安装页面。10,返回到打开的镜像选择补丁双击打开。11,将......