软件工程学习培训课件.ppt

上传人(卖家):林田 文档编号:4115893 上传时间:2022-11-11 格式:PPT 页数:97 大小:877.50KB
下载 相关 举报
软件工程学习培训课件.ppt_第1页
第1页 / 共97页
软件工程学习培训课件.ppt_第2页
第2页 / 共97页
软件工程学习培训课件.ppt_第3页
第3页 / 共97页
软件工程学习培训课件.ppt_第4页
第4页 / 共97页
软件工程学习培训课件.ppt_第5页
第5页 / 共97页
点击查看更多>>
资源描述

1、2022-11-11Software Engineering 2022-11-11第一章第一章 软件工程概述软件工程概述水利工程建筑工程机械工程 本章将对软件的地位和作用、软件的特点、软件 的发展、软件的危机以及软件工程学科的形成、软件 生期等方面的问题和基本概念传统工程新兴工程气象工程生物工程2022-11-111.1 软件的概念与特点软件的概念与特点1、软件softwaresoft+ware软制品(软体)软件是计算机系统中与硬件相互依存的另一部分。它包括程序、数据及其相关文档的完整集合。2022-11-112、软件特点 软件是一种逻辑实体,而不是具体的物理实体 软件的生产与硬件不同 在软件

2、的运行和使用期间,没有硬件那样的机械 磨损,老化问题磨合调整磨损用坏修改点实际曲线理想曲线硬件失效率曲线时间失效率时间失效率软件失效率曲线2022-11-11 软件的成本相当昂贵软件技术的发展落后于需求时间软件复杂性软件需求差距软件技术硬、软件成本比例的变化年份成本%1950197019851995硬件硬件2022-11-113、软件的分类系统软件支撑软件应用软件2022-11-11支撑软件2022-11-11 按开发软件所需的 人力、时间以及完成的 源代码行数。类别参加人数研制期限产品规模(源代码行数)2022-11-11 软件项目开发软件产品开发软件产品:指的是不局限于特定领域的、可以被广

3、大用户直接使用的软件系统。如微软的 Windows,Office等。这类系统的特点是技术含量高,开发时要考到各种不同的用户需求;软件项目:也称定制软件,是受某个特定客户(或少数客户)的委托,由一个或多个软件开发机构在合同的约如我们常说的管理信息系统(MIS)和电子商务系统。这类软件的特点是领域知识所占的比重较大,相对技术而言工程性更强。例如,军用防空指挥系统、卫星控制系统等均为这类软件。2022-11-111.2 软件工程的概念及范畴软件工程的概念及范畴 1、“软件工程”-Software Engineering 于1968年 NATO 组织在德国召开的一次会议上提出2022-11-11 软件

4、工程学 软件开发技术 软件工程管理 软件开发方法学 软件工具 软件工程环境 软件工程管理学 软件经济学-软件工程学的范畴 2、软件工程学 2022-11-11软件开发方法软件开发方法 u 60年代后期才逐步形成了一种软件开发方法,在不同的软件开发阶段对应有不同的方法,例如在软件的设计阶段有“结构化分析与设计”方法,在软件测试阶段有“黑盒”与“白盒”测试技术,等等。u 目前又有一种更新的技术“面向对象的程序设计方法”。在这一方法中,数据和数据的操作是被封闭在一个个称为对象的统一体中,对象之间则是通过消息进行相互联系的。从而使由软件所描述的系统与客观世界的系统在结构上十分相似,不仅提高了软件的可修

5、改性与可维护性,同时也提高了软件的可重用性,那么这些都是工程多年来所追求的目标。u 从结构程序设计到面向对象程序设计,是程序设计方法的又一次飞跃。2022-11-11软件工具软件工具 u所谓工具,在这里泛指一切帮助开发软件的软件。u为了提高软件设计的质量和生产效率,现已经发展了许多的帮助开发和维护软件的软件。例如,我们要用某种语言来开发一个应用软件,这就要涉及到编辑程序、编译程序、连接程序等,另外在软件测试阶段还要用到 测试数据产生器、排错程序、跟踪程序、静态分析工具和覆盖监视工具等。也就是说在不同的时期要用到不同的软件开发工具。目前,软件工具发展迅速,许多用于软件分析和设计的工具正在建立,其

6、目标就是要实现软件生产自动化软件生产自动化。2022-11-11软件工程环境软件工程环境 u“环境”一词,对不同用户有着不同的含义。对最终用户(end user)而言,环境就是他们运行程序所使用的计算机系统。这类用户对环境的要求,主要是运行可靠,操作方便,容易学习和使用。u 而对于软件开发人员来说,环境就是他们进行软件开发活动动的舞台。例如,资料管理系统(DbaseII DbaseIII),大型数据库软件 Sybase 等等2022-11-11软件工程管理软件工程管理u 软件生产同一般产品生产一样,若管理不善,就不可能高质量、按时完成任务。u 软件工程管理就是对软件工程生存期内的各阶段的活动进

7、行管理。其目的是为了能按预期的时间和费用,成功地完成软件的开发和维护任务。u 软件工程管理学的内容包括软件费用管理、人员组织、工程计划管理、软件配置管理等各项方面的内容。2022-11-11程序 3、软件的演变(即从传统软件开发到现代软件开发)软件软件产品传统软件开发现代软件开发 1975 1989 2000 0.00016240营业额增长曲线 80程序:C语言计算三角函数值=100元2022-11-111.3 软件生存周期软件生存周期(SW life cycle)一切工业产品都有自己的生存周期,软件(产品)也不例外。生存周期是软件工程的一个重要的概念,它是把软件在形成产品的整个期间划分为若干

8、个阶段并赋予每个阶段相对独立的任务 下面我们可以从软件开发模型中来观测出软件生存周期的每个阶段的任务。2022-11-11特点:上一阶段的变换结果 是下一阶段的变换的 输入,相邻两个阶段 具有因果关系,紧密 相联。需求分析需求分析问题定义问题定义可性行研究可性行研究计划计划时期时期概要设计概要设计详细设计详细设计编编 码码 测测 试试开发开发时期时期运行与维护运行与维护运运 行行时时 期期软件生存周期模型(瀑布模型 Waterfall Model)19702022-11-11瀑布模型瀑布模型u 瀑布模型在软件工程中占有很重要的地位,它提供了软件开发的基本框架,非常有利于大型软件开发过程中人员的

9、组织、管理,有利于软件开发方法和工具的研究与使用,从而大大提高了大型软件项目开发的质量和效率。u 主要缺点u在项目各个阶段之间极少有反馈。u只有在项目生命周期的后期才能看到结果。u通过过多的强制完成日期和里程碑来跟踪各个项目阶段。u对于经常变化的项目而言,瀑布模型毫无价值。2022-11-11原型模型(Prototype Model)加工原型原型原型:是指模拟某种产品的原始模型快速分析和设计建造原型客户评价原型1、原型系统仅包括未来系统的 主要功能,以及系统的重要 接口。2、为了尽快向用户提供原型,开发原型系统时应尽量使用 能缩短开发周期的语言和工 具。2022-11-11其他模型其他模型u快

10、速原型模型u增量模型u螺旋模型u喷泉模型u混合模型u层次模型2022-11-11 第二章第二章 问题的定义与可性行研究问题的定义与可性行研究 当我们在着手做任何一件工作以前,必须明确工作的性质、任务,制定完成任务的计划,这是非常必要的。同样对于软件产品的开发,显然也应该解决好这样类似的问题,明确该软件产品开发的任务,以及完成任务的价值从而制定出完成任务的计划。那么问题的定义和可性行研究就是制定软件系统的计划的第一步。所以在软件工程中把这一步称为 计划时期2022-11-11开始问题定义可性行研究 可行否?项目实施计划终止项目的建议结束Y计划时期的工作流程图N2022-11-112.1 现状调查

11、和问题的定义现状调查和问题的定义 目的目的:弄清楚用户要求计算机解决什么问题弄清楚用户要求计算机解决什么问题任务任务:编写系统目标与规范说明书编写系统目标与规范说明书2022-11-112.2 可行性研究与论证可行性研究与论证 通常我们在系统开发之前,都要对项目进行“可性行研究与论证。其论证的焦点就是围绕着对-系统开发的价值进行论证,其价值主要体现在以下四个方面:u 技术可行性:分析技术的各种风险因素,如:现有的技术是否能实现本系统,现有的技术人员是否能胜任,开发系统的软、硬资源是否能如期得到等。u 经济可行性:开发这个系统有没有经济效益?多久能收回成本,因此要对经济的合理性进行评价。u 运行

12、可行性:为新系统规定的运行方案是否可行?如果新系统是建立在原来已担负其它计算机系统上的,就不能要求它在时实在现状态下运行,以免有与原来的任务想矛盾。u 法律上可行性:新系统的开发,会不会侵犯他人、集体或国家的利益,并由此而承担法律责任。2022-11-112.2 可行性研究与论证可行性研究与论证 1、经济可行性:进行成本效益分析,评估项目的开发成本。基于计算机系统的成本由四部分组成1、购置软、硬件及有关设备费用2、系统开发费用3、系统安装和维护费用4、人员培训费用费用其论证的焦点是:围绕着对系统开发的价值价值进行论证2022-11-11举例:关于开发CAD系统的软件开发成本及效益分析 1 2

13、3 4 5 年604020 0成本-效益(万元)该系统节省经费该系统成本盈亏平衡点投资回收期-成本及效益分析图2022-11-112、技术可行性:对系统的性能、可靠性、可维护性以及生产率等方面的信息进行评价。通过技术可行性的分析,将为新系统提交技术可行性评估。以指明为完成系统的功能和性能需要什么技术?需要哪些材料、方法、算法、或者过程等 技术可行性分析方法-数学模型和优化技术、概率和统计、排队论、控制论等方法。2022-11-11可性行分析可性行分析 u 对软件开发人员来说,大都存在着一个通病,那就是,有时只考虑到了满足了人的一切需要,而忽略了技术上的可行性,或过分依赖未来新技术的突破。这样的

14、设计通常会导致软件的失败,会浪费大量的人力物力。u 历史反例:日本第五代计算机:在20世纪70年代,日本政府发起了“第五代计算机”的革命,投入了大量的财力和人力,其目的在于使计算机以人的智能帮助人类。其中包括能看、能听、能说、能与人对话、能理解人及能翻译的智能机器人。这一革命在当时极大地推动了计算机人工智能的发展。但人工智能的发展未能如愿,绝大多数基本技术不能解决。日本最终不得不宣布放弃。“第五代计算机”终成泡影。计算机人工智能这一学科也因此蒙受了不白之冤,被很多人称为无用的学问。u 软件设计工作只有基于用户需求,立足于可行的技术才有可能成功。2022-11-11可行性论证报告1、系统概述2、

15、可行性分析3、拟订开发计划4、结论意见2022-11-112.3 可行性分析所需工具可行性分析所需工具(系统流程图)系统流程图:是用来描述系统物理模型的一种传统工具。流程符号含 义流程符号含 义数据加工符号换页连接 输入/输出符号磁带符号连接点符号文档符号人工操作多文档符号2022-11-11 第三第三 章章 软件需求分析软件需求分析 软件需求分析是软件开发早期的一个重要阶段。它在问题定义和可行性研究阶段之后进行。需求分析的基本任务是软件人员和用户一起完全弄清用户对系统的确切要求。这是关系到软件开发成败的关键步骤,也是整个系统开发的基础。软件需求分析阶段要求用 需求规格说明书(SRS)来表达用

16、户对系统的要求。规格说明书可用文字方式表示,也可用图形表示。本章将介绍需求分析的2022-11-113.1 需求分析的任务需求分析的任务如外存种类、数据的输入方式、数据通信接口、哪种操作系统、数据库系统等系统所需的存储容量安全性、可靠性、期望的响应时间要求等2022-11-11 该系统规模不太大,可以和用户单位的其他管理系统该系统规模不太大,可以和用户单位的其他管理系统使用使用相同的计算机硬件设备相同的计算机硬件设备、相同的操作系统相同的操作系统和和相同的关相同的关 系数据库管理系统系数据库管理系统。如果,可以使用汉化了的数据库管理系统,但在建立如果,可以使用汉化了的数据库管理系统,但在建立数

17、据库结构时,凡是用英文名称来代表字段名时,则必须数据库结构时,凡是用英文名称来代表字段名时,则必须在数据字典中予以说明。在数据字典中予以说明。2022-11-11(1 1)具有表格形式屏幕的输入格式)具有表格形式屏幕的输入格式 (2 2)具有重复录入数据的功能)具有重复录入数据的功能 (3 3)具有查询和统计汇总的功能)具有查询和统计汇总的功能 (4 4)职工的调入和调出以及对数据库的初始化)职工的调入和调出以及对数据库的初始化2022-11-11(1 1)数据不能随意更改)数据不能随意更改 2 2)保证数据的准确性)保证数据的准确性 由于医疗费管理系统涉及到会计经费问题,由于医疗费管理系统涉

18、及到会计经费问题,数据不能数据不能随意更改随意更改但数据输入又难免会出错。因而在每输入一个职但数据输入又难免会出错。因而在每输入一个职工的医疗费后,屏幕提示工的医疗费后,屏幕提示“数据有误吗?数据有误吗?”。若是在核对时。若是在核对时 有误,可及时更改,避免输入错误。一天报销结束时,在有误,可及时更改,避免输入错误。一天报销结束时,在 数据存档前,再让出纳员核对一下经费总额,若出纳员支数据存档前,再让出纳员核对一下经费总额,若出纳员支 出的金额总数有误时,应让计算机显示每笔帐目,供一一出的金额总数有误时,应让计算机显示每笔帐目,供一一 仔细核对,此时在允许修改一次。当正式登帐后,数据就仔细核对

19、,此时在允许修改一次。当正式登帐后,数据就 绝对不允许在修改了,由此保证财务制度的严格性,保证绝对不允许在修改了,由此保证财务制度的严格性,保证 数据的安全性。数据的安全性。2022-11-11 通常软件软件开发项目是要实现目标系统的物理模型,即通常软件软件开发项目是要实现目标系统的物理模型,即 确定待开发软件系统的系统元素,并将功能和数据结构分配到确定待开发软件系统的系统元素,并将功能和数据结构分配到 这些系统元素中。它是软件实现的基础。这些系统元素中。它是软件实现的基础。但是目标系统的物理模型是由它的逻辑模型经实例化,即但是目标系统的物理模型是由它的逻辑模型经实例化,即 具体到某个业务领域

20、而得到的。与物理模型不同,逻辑模型忽具体到某个业务领域而得到的。与物理模型不同,逻辑模型忽 视机制和细节,只描述系统要完成的功能和要处理的数据。视机制和细节,只描述系统要完成的功能和要处理的数据。为此,该阶段的主要任务是,为此,该阶段的主要任务是,借助于当前系统的逻辑模型借助于当前系统的逻辑模型 导出目标系统的逻辑模型导出目标系统的逻辑模型,也就是解决目标系统,也就是解决目标系统“做什么做什么”的问的问 题。题。2022-11-112022-11-11一、数据流图一、数据流图 3.2 数据描述数据描述-DFD(Data Flow Diagram)是用来描述系统逻辑模型的一种图形工具。是用来描述

21、系统逻辑模型的一种图形工具。数据流图从数据传递和加工的角度,以图形的方式数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。刻画数据流从输入到输出的移动变换过程。DFD2022-11-112022-11-11二、数据字典二、数据字典 -DD(Data Dictionary)数据字典的任务是数据字典的任务是:对于数据流图中出现的所有被对于数据流图中出现的所有被命名的图形元素在字典中作为一个词条加以定义,使得命名的图形元素在字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。每一个图形元素的名字都有一个确切的解释。DD2022-11-112022-

22、11-11 第四章第四章 软件设计基础软件设计基础 2022-11-114.1 软件设计过程软件设计过程编码编码测试测试设计设计信息描述功能描述行为描述其他需求总体结构设计数据设计过程设计 程序模块集成并确认的软件-软件开发阶段的信息流2022-11-114.2 软件设计的任务和步骤软件设计的任务和步骤2022-11-11制定规范:在进入软件开发阶段之处,首先应为软件开发组制定在设计时应该遵守的标准,以便协调组内各成员的工作。它包括:(1)阅读和理解SRS,在给定预算范围内和技术现状下,确认用户的要求能否实现;(2)根据目标确定合适的设计方法制定规范制定规范2022-11-11软件系统结构的总

23、体设计:在需求分析阶段,已经从系统开发的角度出发,把系统功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定的联系,这就是功能设计。在设计阶段,基于这个功能的层次结构把个各部分组合起来成为系统。它包括:(1)采用某种设计方法,将一个复杂的系统按功能划分成模块的层次结构。(2)确定每个模块的功能,建立与已确定的软件需求的对应关系;(3)确定模块间的调用关系;(4)确定模块间的接口,即模块间传递的信息;设计接口的信息结构软件结构的总体设计软件结构的总体设计2022-11-11数据结构设计:确定软件涉及的文件系统的结构以及数据库的模式,进行数据完整性和安全性的设计。它包括:(1)

24、确定输入、输出文件的详细的数据结构;(2)结合算法设计、确定算法所必须的逻辑数据结构极其操作等;数据结构设计数据结构设计2022-11-11可靠性设计:也叫质量设计。在使用计算机的过程中,可靠性是很重要的,可靠性不高的软件会使得运行结果不能使用而造成严重损失可靠性设计可靠性设计2022-11-114.3 软件设计的方法软件设计的方法2022-11-11一、模块化设计与信息隐藏-“模块“又称”构件”一般指用一个名字调用的一段程序4.4 软件设计基础软件设计基础 模块(module)模块化设计(modular design)按适当的原则把软件划分为一个个较小的、相关而又相对独立的模块。模块的三个基

25、本属性:逻辑 功能 状态2022-11-111、分解(decomposition)E(P1+P2)E(P1)+E(P2)设:C(x)为复杂程度函数 E(x)为决定解决问题x x所需的工作量(时间)函数 C(P1+P2)C(P1)+C(P2)2022-11-11C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2)软件工程基本定理最小成本区M模块成本接口成本总成本软件开发工作量 模块数 2022-11-113、模块的独立性(module independence)模块的独立性是指软件系统中每个模块只模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统

26、涉及软件要求的具体的子功能,而和软件系统中其他模块的接口是简单的。中其他模块的接口是简单的。2022-11-11(1)、内聚(Cohesion)低功能内聚信息内聚通信内聚过程内聚时间内聚逻辑内聚巧合性内聚 高强弱 内聚性模块独立性2022-11-11(2)、耦合 耦合性是程序结构中各个模块之间相互关联的度量它取决于各个模块之间接口的复杂程度、调用模块的方式以及那些信息通过接口。低非直接非直接耦合耦合数据数据耦合耦合标记标记耦合耦合控制耦合外部耦合公共耦合内容耦合 高弱 强耦合性模块独立性2022-11-11三、软件模块结构的改进三、软件模块结构的改进一、模块功能的完善化2022-11-11 二

27、、消除重复功能,改善软件结构。2022-11-11 三、模块的作用范围应在控制范围之内。2022-11-11 第五章第五章 详细设计描述的工具详细设计描述的工具5.1 详细设计阶段的目的与任务 详细设计的目的 为软件结构图(SC)中的每一个模块确定采用的算法和模块内 数据结构,用某种选定的表达工具给出清 晰的描述。详细设计阶段的主要任务 编写软件的“详细设计说明书”c2022-11-11需求分析需求分析问题定义问题定义可性行研究可性行研究计划计划时期时期概要设计概要设计详细设计详细设计编编 码码 测测 试试开发开发时期时期运行与维护运行与维护运运 行行时时 期期2022-11-11详细设计阶段

28、的主要任务为每一模块确定算法确定每一模块使用的数据结构确定模块的外部接口和用户界面为每一模块设计一组测试用例2022-11-11描述工具程序流程图 图 图 伪代码5.2 详细设计阶段的描述工具2022-11-11第六章第六章 程序编码程序编码 编码的目的 是使用选定的程序设计语言,把模块的过程性描述翻译为用该语言书写的源程序(源代码)模块的过程性描述 (不可执行的)源程序(可执行的)编码6.1 编码的目的2022-11-11清晰性效率开发时间程序输出内存数语句数程序可读性最佳输出可读性最佳占内存最小语句数最少开发时间最短1-21-245321433351243521442-352-31编码要求

29、结果 名次评判 项目Winberg 的程序实验结果2022-11-11 结构化程序设计是一种设计程序的技术,它采用自顶向下逐步细化的设计方法和单入口(Single entry)单出口(Single exit)的控制结构。这种控制结构包括有:顺序、选择和循环。6.2 结构化程序设计(Structured Programming)2022-11-11 一、结构化程序设计的原则1 1、使用语言中的顺序、选择、重复等有限的基本控制结构表示程序2、选用的控制结构只准许有一个入口和一个出口 3、程序语句组成容易识别的块(Block),每块只有一个入口和一个 出口4、复杂结构应该用基本控制结构进行组合嵌套来

30、实现 5、严格控制GOTO语句2022-11-11二、程序设计自顶向下,逐步求精1、程序设计是一个由粗到细的“渐进”的过程 2、程序设计不仅包括对控制结构的设计,也包括对数据结构的设计。二者都要一步一步地细化。采用逐步细化方法设计程序的步骤列出问题的初步解分解主要问题继续细化利用图形工具或伪代码描述程序的详细逻辑2022-11-11三、程序复杂性的度量 程序复杂性主要是指模块内部程序的复杂性。它 直接关系到软件开发费用的多少,开发周期的长短和 软件和软件内部潜伏错误的多少。同时它也是软件可 理解性的另一种度量。2022-11-11 如果设每行代码的出错率为每100行源程序中可能的错误数目。例如

31、,每行代码的出错率为 1%,也就是说,每 100 行源程序中就可能有一个错误。1、代码行度量法:统计程序中的源代码的行数较小的程序-1.3%1.8%/行较大的程序-2.7%3.2%/行2022-11-11 该方法是利用程序模块的程序图中环路的个数,来计算程序的复杂性的。为此,该方法也称为环路复杂度计算法。2、McCabe 度量法:利用程序的控制流来度量程序的复杂性 它是一种退化了的程序流程图。即:把程序流程图中每个处理符号都退化成一个结点,而原来流程图中的流程线,则变成连接不同结点的有向弧。2022-11-11TC1C2CABED(1)从流程图导出程序图 A开始C1BCED结束C2TF2022

32、-11-11(2)环路复杂性的计算方法 V(G)=m-n+p 说明:V(G)是有向图G中环路数;m:为图G中弧数;n:为图G中节点数;p:为图G中强连通分量个数;A B C D E F G H K L I McCabe 的环路复杂性度量值为 32022-11-11四、程序效率 程序效率是指程序的执行速度及程序占用的存储空间。程序编码是最后提高运行速度和节省存储机会,因此在此阶段不能不考虑程序的效率。2022-11-111、算法对效率的影响源程序的效率与详细设计阶段确定的算法的效率有着直接的关系。当我们把详细设计翻译并转换成源代码之后,那么算法效率就会反映为程序的执行速度和存储容量的要求2022

33、-11-11(1)在编程序前,尽可能化简有关的算术表达式和逻辑表达式(2)仔细检查算法中的嵌套的循环,尽可能将某些语句或表达 式移到循环外面(3)尽量避免使用多维数组(4)尽量避免使用指针和复杂的表(5)不要混淆数据类型,避免在表达式中出现类型混杂(6)尽量采用整数算术表达式和布尔表达式(7)选用等效的高效率算法转换过程中的指导原则是:2022-11-11请设计求解下列问题的算法注意循环的合理使用2022-11-11第七章第七章 用户界面设计用户界面设计 在计算机应用中,用户与计算机都要以适当的形在计算机应用中,用户与计算机都要以适当的形式把消息传递给对方,称为人式把消息传递给对方,称为人-机

34、交互:机交互:(HumanComputer Interface)交互是通过界面进行的。这种界面既存在于用户交互是通过界面进行的。这种界面既存在于用户与计算机硬件之间,也存在于用户与一切软件(包括与计算机硬件之间,也存在于用户与一切软件(包括系统软件与应用软件)之间,系统软件与应用软件)之间,所以现在常把所以现在常把“用户界用户界面面”简称为简称为 “HCI”2022-11-117.1 用户界面设计分析 用户特性分析用户工作分析2022-11-11外行型用户特性分析 用户特性分析的目的是:用户特性分析的目的是:了解所有用户的技能和经验,以便能预测他们对不了解所有用户的技能和经验,以便能预测他们对

35、不同的界面设计会做出什么反映,并针对用户的能力来设同的界面设计会做出什么反映,并针对用户的能力来设计或更改界面。计或更改界面。用户类型用户类型初学型熟练型专家型2022-11-11 系统的功能分解,可以用数据流图和数据词典来描述。其中,每一个加工相当于一个功能,也就是一个任务。任务可以由一组动作构成,它规定了为实现该任务所必须的一系列活动 任务的细节,可以使用结构化语言来表达。它描述了动作完成的序列以及在完成动作时的所有例外情况。用户工作分析用户工作分析,也称为任务分析。它是系统内部活动的分解。用户工作分析与需求分析中结构化分析的方法类似,是采用自顶向下,逐步进行功能分解。2022-11-11

36、 任务和工作设计的目的在于创造用户的工作环境。通常,任务应组织得与人的能力相适应。既不能完全由非常复杂的步骤组成,也不能太过简单而使操作者感到厌烦。7.2 用户界面任务 2022-11-117.3 界面设计的基本类型 如果从用户与计算机交互的角度来看,用户界面设计的类型主要有问题描述语言、数据表格、图形与图表、菜单、对话以及窗口等。使用的难易程度学习的难易程度操作速度复杂程度控制开发的难易程度类型2022-11-111、使用的难易度:对于没有经验的用户,该截面使用的难度有多大。2、学习的难易程度:学习该界面的命令和功能的难度有多大。3、操作速度:在完成一个指定操作时,该界面在操作步骤、击键和反

37、应时间等方面效率有多高。4、复杂程度:该界面提供了什么功能、能否用新的方式组合这些功能一增强界面的功能。5、控制:人机交互时,是由计算机还是由人发起和控制对话。6、开发的难易度:该界面设计是否有难度、开发工作量有多大。界面选用的标准 2022-11-11第八章第八章 软件测试软件测试 在开发软件的过程中,我们使用了保证软件质量在开发软件的过程中,我们使用了保证软件质量 的方法分析、设计和实现软件,但难免还会在工作中的方法分析、设计和实现软件,但难免还会在工作中 犯错误。这样,在软件产品中就会隐藏着许多错误和犯错误。这样,在软件产品中就会隐藏着许多错误和 缺陷缺陷 。特别是对于规模大、。特别是对

38、于规模大、复杂性高的软件更是如复杂性高的软件更是如 此。在这些错误中,有些是致命性的错误如果不排除此。在这些错误中,有些是致命性的错误如果不排除 ,就会导致生命与财产的重大损失。,就会导致生命与财产的重大损失。2022-11-118.1 软件测试的基础 软件测试是为了发现错误而执行程序的过程。或者 说,软件测试是根据软件开发各阶段的规格说明和程序 内部结构而精心设计的一批测试用例(即输入数据及预 期的输出结果),并利用这些测试用例去运行程序,以 发现程序错误的过程。什么是软件测试2022-11-11 软件测试并不等于程序测试软件测试并不等于程序测试。软件测试应贯穿于软件 定义与开发的整个期间。

39、因此,需求分析、概要设计、详 细设计以及程序编码等所得到的文档资料,包括需求规格 说明、概要设计说明、详细设计规格说明以及源程序,都 应成为软件测试的对象。软件测试的对象2022-11-11 软件开发过程是一个自顶向下、逐步细化的过 程,而测试则是依相反的顺序安排的,自底向上、逐步集成的过程。低一级为上一级测试准备条件。测试与软件开发阶段的关系2022-11-11 需求分析 设 计 编 码 单元测试 集成测试 确认测试 2022-11-118.2 软件测试设计的方法 软件的测试设计与软件产品的设计一样,是一项需要 花费许多人力和时间的工作,我们希望以最少量的时间和 人力,最大可能地发现最多的错

40、误。测试技术1、白盒测试(White Box Testing)2、黑盒测试(Black Box Testing)2022-11-11 也叫玻璃盒测试(Glass Box Testing)。对软件的过程性细节做细致的检查。这一方法是把测试对象 看作一个打开的盒子,它允许测试人员利用程序内部的逻辑 结构及有关信息,来设计或选择测试用例,对程序所有逻辑 路径进行测试。白盒测试(White Box Testing)2022-11-11白盒测试的内容对程序模块的所有独立执行路径至少测试一次对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测试一次。在循环的边界和运行边界限内执行循环体 测试内部数据结

41、构的有效性。2022-11-11 已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。黑盒测试(Black Box Testing)2022-11-11黑盒测试的内容 Alpha/Beta Testing菜单/帮助测试发行测试回归测试2022-11-118.3 白盒测试用例的设计 逻辑覆盖测试方法通常采用流程图来设计测试用例,它考察的重点是图中的判定框,因为这些判定通常是与选择结构有关或是与循环结构有关,是决定程序结构的关键成分。最常用的:逻辑覆盖法2022-11-11发现错误的能力标 准含 义(弱)语句覆盖每条语句至少执行一次判定覆盖每一判定的每个分支至少执行一次条件覆盖每一判定中的每个条件,分别按“真”、“假”至少各执行一次判定/条件覆盖同时满足判定覆盖和条件覆盖的要求(强)条件组合覆盖求出判定中所有条件的各种可能组合值,每一可能的条件组合至少执行一次 逻辑覆盖测试的5种标准 2022-11-118.4 黑盒测试用例的设计 黑盒测试法是根据被测程序功能来进行测试,所以通常也称为功能测试。用黑盒测试法设计测试用例,有4 种常用技术:等价分类法 边界值分析 错误猜测法 因果图法

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(软件工程学习培训课件.ppt)为本站会员(林田)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|