文章目录
- 1. 软件
-
- 1.1 软件发展史
- 1.2 软件生命周期
- 1.3 软件缺陷
- 1.4 三种纠错技术
- 2. 软件过程
-
- 2.1 RUP
-
- 2.1.1 RUP各个阶段
- 2.1.2 RUP核心工作流
- 2.2 敏捷开发
-
- 2.2.1 敏捷开发简介
- 2.2.2 敏捷开发的特征
- 3. 软件质量
-
- 3.1 概论
- 3.2 CMM/CMMI
-
- 3.2.1 CMM
- 3.2.2 CMMI
- 4 测试与开发的关系
1. 软件
软件是一系列按照特定顺序组织的计算机数据和指令的集合。一般认为,软件包括以下内容:
(1)运行时,能够提供所要求功能和性能的指令或计算机程序集合。
(2)程序更够妥善地处理信息的数据结构。
(3)描述程序功能需求以及程序如何操作和使用的文档。
我们可以简单理解为,软件=程序+文档。
1.1 软件发展史
软件的发展可以分为如下四个阶段:
- 第一个阶段(20世纪50年代初期至60年代中期),被称为程序设计阶段。此时软件规模小、功能单一,而且只有程序,没有文档。
- 第二个阶段(20世纪60年代中期至70年代末期),被称为程序系统阶段。这个阶段已经出现了多道程序设计技术、多用户系统、人机交互技术等,软件广泛应用,但软件技术和管理水平相对落后,导致出现“软件危机”。
- 第三个阶段(20世纪70年代末期至80年代中期),被称为软件工程阶段。这个阶段以软件产品化、序列化、工程化和标准化为特征的软件产业发展起来,软件开发有了可以遵循的软件工程化的设计准则、方法和标准。
- 第四个阶段(20世纪80年代中期至今),这个阶段C/S体系结构,特别是Web技术和 络分布式对象技术法飞速发展,导致软件体系结构向更灵活的多层分布式结构演变,CORBA,EJB,COM/DCOM等三大分布式的对象模型技术相继出现。
软件工程研究的主要内容是:如何应用科学的理论和工程上的技术来指导软件开发,进而达到以较少的投资获得高质量软件的最终目标。
(看到这句话,让我有了一丝丝领悟:程序员也不能埋头编码,还是要懂点产品思维的好)
1.2 软件生命周期
软件生命周期具有如下六个阶段:
(1)问题的定义和规划
(2)需求分析
(3)软件设计
(4)程序编码
(5)软件测试
(6)运行维护
其中,软件维护是软件生命周期中持续时间最长的阶段。
1.3 软件缺陷
软件缺陷是指软件系统或系统部件中那些导致系统或部件不能实现其功能的问题或差错。通常认为,符合下面4个规则之一的就是软件缺陷:
- 软件未达到软件规格说明书中规定的功能;
- 软件出现了产品说明书中指明不会出现的错误;
- 软件功能超出了产品说明书中指明的范围;
- 软件测试人员认为软件难以理解,不易使用,运行速度慢,或者最终用户认为软件的使用效果不好。
1.4 三种纠错技术
纠错之前需要先查明错误,而查错工作量通常占整个纠错的90%以上,下面三种是常用的查错手段:
- 插入打印语句
通过这种手段,我们可以查看到程序运行中过程量的值,以此来定位错误原因。这是我们写一开始学编程时最常用的手段。 - 设置断点
断点可以使运行的程序在断点处暂停下来,我们就可以通过观察变量的值来分析程序运行的情况,进而快速找到错误所在。 - 掩蔽部分程序
一般是把代码注释掉,留下有可能出错的地方,进而缩小错误的范围;也或者把有可能出错的部分取出来单独运行。
2. 软件过程
2.1 RUP
RUP(Rational Unified Process)译为Rational统一过程,以统一建模语言(UML)描述软件开发过程。
2.1.1 RUP各个阶段
RUP中的软件生命周在时间上被分解为4个顺序的阶段,分别是初始阶段、细化阶段、构建阶段和交付阶段。
3.2 CMM/CMMI
3.2.1 CMM
CMM是软件过程改良和评估模型,由卡耐基—梅隆大学软件工程研究院指定,也称为SEI-CMM。
CMM为软件企业的过程能力提供的阶梯式进化框架如下表所示:
软件测试与软件开发的并行性
从上面,我们可以知道,软件测试不仅仅是测试我们编写的程序,还要测试软件过程中所编写的文档。同时,测试过程和开发过程是同步进行的,测试过程是对开发过程中阶段性成果和最终产品进行验证的过程,它们是相互依赖的关系。
(为什么要那么麻烦要从一只蝙蝠说起……)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!