瀑布模型

软件测试 → 第一章 基础-> 软件与软件危机

半世苍凉 提交于 2019-12-26 09:46:03
一、 软件概念 1、软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。 2、程序是按事先设计的功能和性能要求执行的指令序列。 3、数据是使程序能正常操纵信息的数据结构。 4、文档是与程序开发,维护和使用有关的图文材料。 二、 软件特性   形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性 三、 软件种类   1、系统软件:操作系统 数据库管理系统 设备驱动程序 通信和网络处理程序等   2、支撑软件(工具软件)     ①、纵向支撑软件:分析、设计、编码、测试工具等;     ②、横向支撑软件:项目管理工具,配置管理工具等   3、应用软件:工程与科学计算软件 商业数据处理软件 ERP软件 计算机辅助设计/制造软件 系统仿真软件 智能产品嵌入软件 事务管理、办公自动化软件    4、可复用软件:标准函数库、类库、构件库等 四、 软件危机及其原因   软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求。软件开发周期长、成本高、质量差、维护困难。 五、 软件工程   采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 六、 软件生命周期 6.1

软件工程背景知识及过程模型

感情迁移 提交于 2019-12-24 10:42:35
一、背景知识: 软件开发的基本过程: 需求定义→软件设计→软件实现→软件测试→软件维护 软件的定义: 软件=程序+数据+文档 程序:可以按照设计好的 功能 和 性能 要求执行的指令序列 数据:程序能正确处理信息的数据结构 文档:与程序的 开发 、 维护 、 使用 有关的图文资料 软件的特点: 包含个人因素的大规模知识型工作 有工具辅助的软件开发也尚未实现自动化(即无法像硬件加工一样,机械组装已有部件,软件开发还未达到组装已有模块的程度) 对开发和运行的计算机软硬件环境具有依赖性 需求往往在变更,开发进度难估算 软件测试困难,覆盖所有路径的测试难实现。 软件测试只能证明软件中有缺陷,不能证明软件中没有缺陷。 软件不会损耗,(参考硬件的磨损和老化),软件维护不再具有经济性时,软件即被淘汰 软件危机: 1965年——1985年,20世纪60——80年代 于1968年提出 催生了软件工程这一学科 没有化解软件危机的灵丹妙药,已知的技术和方法都是进一步改进 SWEBOK(软件工程知识体系指南) PDCA环(戴明环):    二、软件过程: 以质量为中心,以软件工程,方法,工具为三要素。其中软件过程是基础,是联系各层的桥梁,工具为过程和方法提供支持。 软件过程的定义:软件过程定义了软件开发中的一系列活动,所以过程都具有下列活动: 沟通 建模 计划 构造 部署 项目管理(贯穿于以上所有活动)

常见的软件开发模型

﹥>﹥吖頭↗ 提交于 2019-12-23 20:07:56
软件开发过程模型 在软件开发的几十年实践中,人们总结了很多软件开发模型用来描述和表示一个复杂的开发过程,如: 1 瀑布模型 2 快速原理模型 3 螺旋模型 软件测试与软件的开发模式有着紧密的联系,作为一名测试人员,应该充分理解软件的开发模式,以便找准自己在其中的位置,从而发挥自身的价值. 瀑布模型 1 是线性模型的一种,在所有模型中占有重要的地位,是所有其他模型的一个基础 2 每一个阶段执行一次,按线性顺序进行软件开发. 测试的切入点: 测试阶段处于软件实现后,必须在代码完成后留出足够的时间给测试活动,否则将导致测试不充分,很多问题到项目后期才暴露 瀑布模型的优缺点 优点: 开发的各个阶段比较清晰 强调早起计划及需求调查 审核需求稳定的产品开发 缺点: 4. 依赖于早期的需求调查,不适应需求的变化 5. 单一流程不可逆 6. 风险往往到后期才显露,失去及早纠正的机会 7. 问题在项目后期才会开始暴露 8. 前面未发现的错误会传递并扩散到后面的阶段,可能导致项目失败 改良: 沿用瀑布模型的线性思想,细化了各个阶段,在某些重要关注的阶段之间代入迭代的思想. 快速原型模型 在开发真实系统之前,构架一个原型,在该原型的基础上,逐渐完成整个系统的开发工作. 第一步是建造一个快速原型,实现用户与系统的交互,用户对原型进行评价,进一步细化待开发软件的需求,通过逐步调整原型使其满足用户的要求

个人阅读&个人总结

耗尽温柔 提交于 2019-12-23 19:15:45
助教推荐的这些文章都是软件工程的经典之作,读完之后对这学期的软工学习有了更深的认识。才觉得学习软件工程之前写的都不算是软件工程,只是些程序。真正的软件工程历史悠久,其对程序员带来的痛苦伴随着很多代人,许多经典的软件工程著作和讨论都是几十年前就完成的,虽然软件行业日新月异,但其中的哲学和根本却从未改变。 软件工程中到底有没有银弹呢? No Silver Bullet --Essence andAccident in Software Engineering 在西方文化中,狼人是一种十分可怕的怪物。其最恐怖的地方在于,他们会忽然从十分熟悉的人变为恶魔。就像中国的黑狗血可以制服妖怪一样,狼人的克星是银弹(Silver Bullets)。作者用狼人来比喻软件工程,银弹以比喻可以克服软件工程中困难的通用方法。人们渴望得到银弹,但就像题目所直截了当地描绘的那样,作者认为并不存在这种通用方法。 首先,从软件开发近10年的历史(文章写于1986年)上来看,不存在一种单独的开发、技术或管理技巧可以完全保证效率、可靠性、简易性的提高。 其次,软件开发中存在一些本质的困难。 硬件速度的增加相对软件开发的进步是十分快的。 软件本身内在的困难(复杂性、整合性、不断变化性、不可见性)和不断出现的意外。 在解决这些问题的过程中,工程师们取得了一系列突破:高级程序设计语言、时间共享、统一的编程环境

华为软件开发云测评报告一:项目管理

旧城冷巷雨未停 提交于 2019-12-22 23:22:07
体验环境 体验方式:PC端 系统:Windows 64位 浏览器类型:Chrome浏览器 浏览器版本:49.0.2623.110 m 体验时间:2017.05.11 测试目的 了解华为软件开发云的 项目管理 服务功能,分析其优缺点; 瀑布化开发到敏捷开发的转型分析,以及未来软件开发模式的发展方向; 产品简介 产品名称: 华为软件开发云 定位:软件开发云(DevCloud)是集华为研发实践、前沿研发理念、先进研发工具为一体的研发云平台,面向开发者提供研发工具服务,让软件开发简单高效。 产品slogan:云智软件 众享未来 产品关键字:(从各服务网页源码中提取)项目管理服务,云端项目管理,项目外包协作、配置管理,代码托管服务,跨地域协同开发、代码检查服务,代码质量管控,多语言代码检查、编译构建,开发编译构建,混合语言构建平台、部署管理_软件开发云_华为企业云、测试管理服务,测试解决方案,产品用例设计,测试活动管理、发布管理服务,软件仓库,软件快速发布、流水线_软件开发云_华为企业云 用户构成 软件开发云为to B 平台,主要面向具有开发业务的技术团队、组织或个人。 作者简介 高鑫,某二线城市创业公司的技术总监,从事软件开发行业10余年,主要做软件外包(包括web端和APP)。带着20人的技术团队,由于项目多且复杂,且多项目同时进行,成员沟通协作困难,各工作项的进度不好掌控

软件工程:理论、方法与实践 软件过程读后感

六眼飞鱼酱① 提交于 2019-12-19 14:07:03
在软件过程里面,从前言里面我们知道绝大多数软件企业长期面临许多质量,进度,成本的问题,所以产生了人物思维与过程思维两种方式,现在我们对其有了一个定义: 软件 过程为一个为建造高质量软件所需完成的任务的框架,即形成软件产品的一系列步骤,包括中间产品、资源、角色及过程中采取的方法、工具等范畴。它的基本活动是:问题提出,软件需求规格说明,软件设计,软件实现,软件确认与软件演化等活动。 第二节里我们学习了软件过程模型,其主要如下所示: 1. 瀑布模型 是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。 瀑布模型 的 本质 是一次通过,即每个活动只执行一次,最后得到软件产品,也称为“线性顺序模型”或者“传统生命周期”。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动。同时评审该项活动的实施,若确认,则继续下一项活动;否则返回前面,甚至更前面的活动。 瀑布模型 有利于大型软件开发过程中人员的组织及管理,有利于软件开发方法和工具的研究与使用,从而提高了大型软件项目开发的质量和效率。然而软件开发的实践表明,上述各项活动之间并非完全是自上而下且呈线性图式的,因此 瀑布模型 存在严重的缺陷。 ① 由于开发模型呈线性,所以当开发成果尚未经过测试时,用户无法看到软件的效果

软件开发模型

帅比萌擦擦* 提交于 2019-12-19 14:06:26
软件过程是软件生命周期中的一系列相关活动,即用于开发和维护软件及相关产品的一系列活动。 软件过程模型可以帮助开发团队理解开发过程,形成对开发中的活动、资源和约束的共同理解,可以根据具体情况对一个过程进行裁翦等。 瀑布模型 瀑布模型最早由Royce提出,该模型因过程排列酷似瀑布而得名。 该模型是文档驱动的,该模型适用于项目开始时需求已确定的情况。瀑布模型主要应用于结构化的软件开发。 从一种非常高层的角度描述了软件开发过程中进行的活动,并且提出了要求开发人员经过的事件序列。 对于非专业用户来说难以阅读和理解,而且导致很多问题在最后才会暴露出来,风险巨大。 V模型 是瀑布模型的变种,它说明测试活动是如何与分析和设计相联系的。 增量模型 增量模型是在项目的开发过程中以一系列的增量方式开发系统。增量方式包括增量开发和增量提交。 增量开发是指在项目开发周期内,以一定的时间间隔开发部分工作软件。 增量提交是指在项目开发周期内,以一定时间间隔增量方式向用户提交工作软件及其相应文档。 根据增量的方式和形式的不同,分为渐增模型和原型模型。 原型模型 原型模型又称快速原型模型,它是增量模型的另一种形式。 原型的用途是获知用户的真正需求,因此原型模型可以有效地引发系统需求。 根据原型的不同作用,有三类原型模型:探索型原型(用于需求分析阶段)、实验型原型(主要用于设计阶段)、演化型原型

史诗级软件开发模式归纳

怎甘沉沦 提交于 2019-12-16 02:51:20
话不多说, 十一种软件开发模式简介 边做边改模式(Build-and-Fix Model) 瀑布模式(Waterfall Model) 迭代模式(stagewise model) 快速原型模式(Rapid Prototype Model) 增量模式(Incremental Model) 螺旋模式(Spiral Model) 敏捷模式 (Agile development) 演化模式(evolutionary model) 喷泉模式(fountain model, (面向对象的生存期模型, 面向对象(Object Oriented,OO)模型)) 智能模式(四代技术(4GL)) 混合模式(hybrid model) 软件开发模式简介 边做边改模式(Build-and-Fix Model) 好吧,其实现在许多产品实际都是使用的“边做边改”模型来开发的,特别是很多小公司产品周期压缩的太短。在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改。 在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员重新修改代码,直到用户和测试等等满意为止。 这是一种类似作坊的开发方式,边做边改模型的优点毫无疑问就是前期出成效快。

软件工程中五种常用的软件开发模型整理

笑着哭i 提交于 2019-12-11 00:56:11
软件工程期末考试复习资料整理,顺便码了个博客,emmm~ 下面都是我对各位博主文章种我认为写的比较好的内容的截取 引言 软件将要经历一个定义、开发、运行维护,直至被淘汰这样的生命周期。 为了使软件生命周期中的各项任务能够有序地按照规程进行,需要一定的工作模型对各项任务给予规程约束,这样的工作模型被称为软件过程模型。 1.瀑布模型 瀑布模型是将软件生存周期中的各个活动规定为依线性顺序连接的若干阶段的模型,包括需求分析、设计、编码、测试、运行和维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水逐级下落 下面两张图摘自博客:https://blog.csdn.net/m18330808841/article/details/78452747 特点 1.阶段间具有顺序性和依赖性 具体指的是必须等前一阶段的工作完成才能开始后一阶段的工作, 前一阶段的输出文档就是后一阶段的输入文档,因此只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果 2.推迟实现的观点 瀑布模型的编码之前设置了系统分析和系统设计的各个阶段,分析与设计阶段的基本任务规定,这两个阶段主要考虑目标系统的路基模型,不涉及软件的物理实现,清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现 3.质量保证的观点 每个阶段必须完成规定的文档;每个阶段结束前都要对所完成的文档进行评审 实际中的瀑布模型带有反馈

《计算机基础》:计算机是怎么运行的?

*爱你&永不变心* 提交于 2019-12-09 16:44:13
计算机的三个根本性基础 1)计算机是执行输入、运算、输出的机器 2)程序是指令和数据的集合 3)计算机的处理方式有时与人们的思维习惯不同 计算机技术进步日新月异,进步的方向就是为了更好的贴合人类,为人类服务。这就需要他的思维习惯有更好的进步,这是如此,计算机还有很大的进步空间。(面向对象变成,是贴合人类的一种体现) 无论是刚入行的技术人员,还是有资历的老工程师,都应该 由衷地欢迎技术的进化,坦率地接受新技术。 CPU 机器语言就是由 二进制数字 构成的程序(.class文件),CPU 可以直接对其解释、执行。 1.CPU 中的 标志寄存器 (Flags Register)有什么作用? Flag的本意是“旗子”,这里引申为“标志”。一旦执行了算术运算、逻辑运算、比较运算等指令后,标志寄存器并不会存放运算结果的值,而是会把运算后的某些状态存储起来,例如运算结果是否为0、是否产生了 负数、是否有溢出(Overflow)等。 2.CPU内部有存储数据的地方。这种存储数据的地方叫作“寄存器”。虽然也叫寄存器,但是与I/O的寄存器不同,CPU的寄存器不仅能存储数据,还具备对数据进行运算的能力。( I/O的寄储器不能存取数据 ) 1. 控制器 控制单元主要由时序控制和指令控制等组成,其中指令控 制协调指令译码器,完成读指令、分析指令、交给运算器执行指令等操作。指令寄存器中存储着指令集。 2.