软件评测时笔记_软件开发模型学习20161021

author author     2022-08-14     493

关键词:

软件开发模型
为了指导软件的开发,可以用不同的方式将软件生命周期中的所有开发活动组织起来,从而形成了不同的软件开发模型。常见的开发模型有瀑布模型(Waterfall Model)、快速原型模型(Rapid Prototype Model)、演化模型(Evolutionary Model)、增量模型(Incremental Model)、螺旋模型(Spiral Model)和喷泉模型(Water Fountain Model)等。
1.瀑布模型
瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、测试和维护,上一阶段完成后才能进入下一阶段,整个模型就像一个飞流直下的瀑布,如图6-9所示。
 
图6-9 瀑布模型示意图
瀑布模型有许多优点:可强迫开发人员采用规范的方法;严格规定了各阶段必须提交的文档;要求每个阶段结束后,都要进行严格的评审。
但瀑布模型过于理想化,而且缺乏灵活性,无法在开发过程中逐渐明确用户难以确切表达或一时难以想到的需求,直到软件开发完成之后才发现与用户需求有很大差距,此时必须付出高额的代价才能纠正这一偏差。
 
2.快速原型模型
快速原型是指快速建立起来的可以在计算机上运行的程序,它所完成的功能往往是最终软件产品功能的一个子集。快速原型模型的第一步是快速建立一个能反映用户主要需求的软件原型,让用户在计算机上使用它,通过实际操作了解目标系统的概貌。开发人员按照用户提出的意见快速地修改原型系统,然后再次请用户试用,一旦用户认为这个原型系统确实能够满足他们的需求,开发人员便可据此书写软件需求说明,并根据这份文档开发出可以满足用户真实需求的软件产品。
原型化方法基于这样一种客观事实:并非所有的需求在系统开发之前都能准确地说明和定义。因此,它不追求也不可能要求对需求的严格定义,而是采用了动态定义需求的方法。
具有广泛技能、高水平的原型化人员是原型实施的重要保证。原型化人员应该是具有经验与才干、训练有素的专业人员。衡量原型化人员能力的重要标准是他是否能够从用户的模糊描述中快速获取实际的需求。
 
3.演化模型
演化模型也是一种原型化开发方法,但与快速原型模型略有不同。在快速原型模型中,原型的用途是获知用户的真正需求,一旦需求确定了,原型即被抛弃。而演化模型的开发过程,则是从初始模型逐步演化为最终软件产品的渐进过程。也就是说,快速原型模型是一种“抛弃式”的原型化方法,而演化模型则是一种“渐进式”的原型化方法。
 
4.增量模型
增量模型是第三种原型化开发方法,但它既非“抛弃式”的,也非“渐进式”的,而是“递增式”的。增量模型把软件产品划分为一系列的增量构件,分别进行设计、编程、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。如何将一个完整的软件产品分解成增量构件,因软件产品特点和开发人员的习惯而异,但使用增量模型的软件体系结构必须是开放的,加入新构件的过程必须简单方便,新的增量构件不得破坏已经开发出来的产品。其示意图如图6-10所示。
 
图6-10 增量模型示意图
 
5.螺旋模型
螺旋模型综合了瀑布模型和演化模型的优点,还增加了风险分析。螺旋模型包含了4个方面的活动:制订计划、风险分析、实施工程、客户评估。这4项活动恰好可以放在一个直角坐标系的4个象限,而开发过程恰好像一条螺旋线。采用螺旋模型时,软件开发沿着螺旋线自内向外旋转,每转一圈都要对风险进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个概念项目。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。其示意图如图6-11所示。
 
图6-11 螺旋模型示意图
 
6.喷泉模型
喷泉模型主要用于描述面向对象的开发过程。喷泉一词体现了面向对象开发过程的迭代和无间隙特征。迭代意味着模型中的开发活动常常需要多次重复,每次重复都会增加或明确一些目标系统的性质,但却不是对先前工作结果的本质性改动。无间隙是指在开发活动(如分析、设计、编程)之间不存在明显的边界,而是允许各开发活动交叉、迭代地进行。
 

软件测试学习笔记5

软件测试学习笔记5软件开发模型由于项目、需求的模式不同,所以在软件生命周期过程中选择的软件开发模型也会有所不同,在历史上,软件开发模型经历了“边做边改”、瀑布、原型、螺旋、敏捷等模式的变更。... 查看详情

软件测试学习笔记1

...绍:1.软件基础知识:软件基础知识软件生命周期软件开发模型软件开发文档软件测试基础软件测试模型测试组织架构软件工程标准2.测试用例:边界值分析法等价类设计法判定表设计因果图分析正交实验法场景法3.测... 查看详情

软件设计学习笔记1_架构

文章目录前言一、分层架构1.1基本模型1.2优缺点分析二、事件驱动架构2.1基本模型2.2简化模型2.3作用机理2.4优缺点分析2.5评价三.微服务架构3.1基本模型3.2作用机理3.3优缺点分析3.4评价四.总结前言回顾几十年以来计算机应用软件... 查看详情

vray学习笔记

vray是个什么东西?它是个渲染器。渲染器是个什么东西?渲染器就是3d软件里面把模型画成一张图片的东西,渲染的过程就是把3D物体变成2D画面的过程。模型是个什么东西?模型就是模型,它由两部分组成,第一个部分是模型... 查看详情

软件评测师笔记_结构化需求分析法20161019

需求分析需求分析的任务不是具体地解决问题,而是要准确地确定目标系统必须做什么。用户了解他们所面对的问题,知道必须做什么,但通常不能完整准确地表达出他们的要求,也不知道计算机软件可以解决他们的哪些问题;... 查看详情

springmvc学习笔记

1、MVCMVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范Model(模型)-模型代表一个存取数据的对象或JAVAPOJO。它也可以带有逻辑,在数据变化时更新控制器。... 查看详情

odoo10学习笔记三:模型(结构化的应用数据)视图(用户界面设计)

一:模型1:创建模型模型属性:模型类可以使用一些属性来控制它们的一些行为:_name:创建odoo模型的内部标识符,必含项。_description:当用户界面显示模型时,一个方便用户的模型记录标题。_order:当浏览模型记录或者显示... 查看详情

osi七层模型学习笔记

1、简介  什么是OSI模型呢?  OSI模型全名Open System InterConnect即开放式系统互联,是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。  计算机通讯需要用到必要的软... 查看详情

第十节,机器学习策略

[DeeplearningAI笔记]MLstrategy_1_1正交化/单一数字评估指标[DeeplearningAI笔记]MLstrategy_1_2开发测试集评价指标[DeeplearningAI笔记]MLstrategy_1_3可避免误差与改善模型方法[DeeplearningAI笔记]MLstrategy_2_1误差分析[DeeplearningAI笔记]MLstrategy_2_2训练和 查看详情

学习软件测试c单元测试测试基本流程html基础

...下)正式开始学习测试软件测试的原则软件产品质量模型(ISO/IEC9126)软件质量模型保证(SQA)软件测试基本流程HTML_01_html.html效果CSS样式_02_CSS.html_03_CSSTextControl.htmlmyCssTes 查看详情

软件测试学习笔记7

软件测试学习笔记7开发模型的变迁:最早期:边做边改稳定期:瀑布式发展期:敏捷创新期:DEVOPS项目进程:编程阶段:单元(白盒)测试参与。编程完成:开发联调(集成测试)-开发... 查看详情

springmvc学习笔记(代码片段)

1、MVCMVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范Model(模型)-模型代表一个存取数据的对象或JAVAPOJO。它也可以带有逻辑,在数据变化时更新控制器。... 查看详情

机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)

...)   前言:  找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可... 查看详情

软件测试学习笔记10

软件测试学习笔记10软件测试常用术语C/S:C指的是客户端,S指的是服务器端,这种软件是基于局域网或互联网的,需要一台服务器来安装服务器软件,每台客户端都需要安装客户端软件。B/S:B指的是浏览器ÿ... 查看详情

学习笔记:《微服务架构设计模式》之服务的拆分策略

目录一、软件架构的定义和视图模型软件架构的定义:软件架构的4+1视图模型:二、架构风格1、分层式架构风格2、六边形架构 3、微服务架构是一种架构风格 三、为应用程序定义微服务架构1、识别系统操作  2、根... 查看详情

机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)

...】   前言:  找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可... 查看详情

软件工程阅读笔记一

...方法模型和基于组件的开发模型。最后讲述了微软公司的软件开发过程(开发管理原则、软件过程模型),又引入 查看详情

20161021_一些基础的东西

1.mysql_num_fields()返回结果集中字段的数目如:$result=mysql_query("SELECTid,name,ageFROMmydb、tb1whereid<5");echomysql_num_fields($result);    //result:3(id,name,age)三个字段2.$a=9;$b=&%a;unset($b);$b=1;echo$a;/ 查看详情