软件工程概述课程作业_第1页
软件工程概述课程作业_第2页
软件工程概述课程作业_第3页
软件工程概述课程作业_第4页
软件工程概述课程作业_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程作业与解答第一章 软件工程概述1.简述软件的发展过程。 答:计算机软件的发展经历了三个阶段:(1)程序设计阶段,约50至60年代;(2)程序系统阶段,约60至70年代;(3)软件工程阶段,约70年代以后。各个时期软件开发的特点见课本第7页表1.3。2.简述软件的定义及特点。 答:软件是计算机系统中与硬件相互依存的另一部份,它是包括程序、数据及其相关文档的完整集合。 特点见课本第1页至第3页。3.简述软件的种类。 答:见课本第3页至第6页。4.什么叫软件危机? 答:在软件发展的第二阶段,随着计算机硬件技术的进步,计算机的容量、速度和可靠性有了明显的提高,生产硬件的成本降低了。计算机价格的下跌为它的广泛应用创造了极好的条件。在这一形式下,要求软件能与之相适应。然而软件技术的进步一直未能满足形式发展提出的要求。在软件开发中遇到的问题找不到解决的办法,致使问题积累起来,形成日益尖锐的矛盾。软件开发时期所面临的这种状态就是所谓的软件危机。5.软件危机主要有哪几种表现? 答:见课本第8页(1)、(2)、(3)、(4)。6.什么叫软件工程? 答:开发、运行、维护和修复软件的系统方法。7.什么叫软件生存周期? 答:软件从孕育、诞生、成长、成熟到衰亡的过程叫软件生存周期。它包括制定计划、需求分析、设计、程序编码、测试及运行维护。8.简单介绍软件开发的瀑布型模型和螺线型模型。 答:见课本第11页至第14页。第二章 系统分析1.简述系统分析的目标(1) 识别用户要求;(2) 评价系统的可行性;(3) 进行经济分析和技术分析;(4) 把功能分配给硬件、软件、人、数据库和其它系统元素;(5) 建立成本和进度限制;(6) 生成系统规格说明,形成所有后续工程的基础。2.系统分析过程的第一步就是识别用户要求。要求的识别是系统开发的起点。为此,分析员必须回答哪些问题,才能完成这一步骤?(1) 所期望的功能和性能是什么(2) 可靠性和质量问题是哪些(3) 总的系统目标是什么(4) 成本与进度限制如何(5) 制造的需求是什么(6) 市场与竞争情况怎样(7) 有效的技术有哪些(8) 将来可能有哪些扩充3.软件项目的可行性研究主要集中在哪个方面?(1)经济可行性。(2)技术可行性。(3)法律可行性。(4)抉择。4.填空 在成本-效益分析中,有形的效益可以用(货币的时间价值、投资回收期、纯收入 )等指标进行度量。第三章 软件需求分析课程作业 一、简述与问答1.简述软件需求分析的任务。需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。分析员通过需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发提供一种可转化为数据设计、结构设计和过程设计的数据与功能表示。在软件完成后,制定的软件需求规格说明还要为评价软件质量提供依据。2.软件的需求分析就是解决所开发软件做什么,做到什么程度的问题。它包括诸多需求,这些需求有那些?功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、软件成本消耗与开发进度需求、预先估计以后系统可能达到的目标。3.简述需求分析评审的主要内容。a.系统定义的目标是否与用户的要求一致;b.系统需求分析阶段提供的文档资料是否齐全;c.文档中的所有描述是否完整、清晰、准确反映用户要求;d.与所有其他系统成分的重要接口是否都已经描述;e.所开发项目的数据流与数据结构是否足够确定;f.所有图表是否清楚,在不补充说明时能否理解;g.主要功能是否已包括在规定的软件范围之内,是否都已充分说明;h.设计的约束条件或限制条件是否符合实际;i.开发的技术风险是什么;j.是否考虑过软件需求的其他方案;k.是否考虑过将来可能会提出的软件需求;l.是否详细制定了检验标准,它们能否对系统定义是否成功进行确认;m.有没有遗漏、重复或不一致的地方;n.用户是否审查了初步的用户手册;o.软件开发计划中的估算是否受到了影响。4.软件需求分析的基本原则是什么?(1)必须能够表达和理解问题的数据域和功能域。(2)必须按自顶向下、逐层分解的方式对问题进行分解和不断细化。(3)要给出系统的逻辑视图和物理视图。5.什么是结构化分析方法?结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。6.数据词典的任务什么?.对于数据流图中出现的所有被命名的图形元素在数据词典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。数据词典中所有的定义应是严密的、精确的,不可有半点含混,不可有二义性。二、填空1.在软件开发的原型化方法中,原型是指(软件的一个早期可运行的版本,它反映最终系统的部分重要特性)。2.软件原型化方法是在研究分析阶段的方法和技术中产生的,由于软件项目的特点和运行原型的目的不同,原型主要有((1)探索型(2)实验型。(3)进化型。 (4)修正和改进)三种不同的作用类型。3.结构化分析方法主要使用了(数据流图、数据词典、结构化英语、判定表和判定树。 )几个工具。4.需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。其实现步骤包括((1)获得当前系统的物理模型。(2)抽象出当前系统的逻辑模型。(3)建立目标系统的逻辑模型。(4)为了对目标系统做完整的描述,还需要对得到的逻辑模型做一些补充。)5.需求分析阶段的工作,可以分成(问题的识别、分析与综合、制定规格说明和评审)四个方面。第四章 软件设计课程作业 1.一旦确定了软件需求之后,就进入开发阶段。开发阶段由三个互相关联的步骤组成:(.设计、实现(编码)和测试)。2.性能主要是指(周转时间 响应时间 吞吐量 精度)四个指标。3.概要设计阶段完成时应编写的文档包括(概要设计说明书 数据库设计说明书 用户手册 制定初步的测试计划)。4.概要设计评审的内容主要包括(可追溯性 接口 风险 实用性 技术清晰度 可维护性 质量 各种选择方案 限制)。5.软件的结构包括两部分。其一为(程序模块的层次结构),其二为(数据的结构 )。6.在软件系统的分层模块结构图中,上级模块调用(下级模块)。它们之间存在主从关系,即自上而下“主宰”,自下而上“从属”。而同一层的模块之间没有这种主从关系。7.多扇出意味着需要控制和协调许多(下属模块)。而多扇入的模块通常是(公用模块)。8.数据结构设计应确定数据的(组织、存取方式、相关程度、以及信息的不同处理方法)。9.软件过程着重描述(各个模块的处理细节 )。软件过程必须提供精确的处理说明,包括事件的顺序、正确的判定点、重复的操作直至数据的组织和结构等等。10.如果模块是相互独立的,当模块变得越小,每个模块的内部结构就变得越(简单 ),花费的工作量也越低。11.模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。一般采用两个准则度量模块独立性。即(模块间的耦合)和(模块的内聚)。12.在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。表达过程规格说明的工具可以分为以下三类:(.图形工具)、(表格工具)、(语言工具 )。二、简答题1.为什么软件设计在开发阶段中的具有重要意义?除了维护阶段以外,开发阶段占软件工程总成本的75%以上。开发阶段的决策将最终影响软件实现的成败,影响软件维护的难易程度。软件设计是软件开发阶段最重要的步骤。它是软件开发中质量得以保证的关键步骤。设计提供了软件的表示,使得软件的质量评价成为可能。软件设计又是将用户要求准确地转化成为最终的软件产品的唯一途径。2.在概要设计过程中需要完成的工作具体有哪些?(1)制定规范:在进入软件开发阶段之初,首先应为软件开发组制定在设计时应该共同遵守的标准,以便协调组内各成员的工作。(2)软件系统结构的总体设计:在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,使每一部分完成简单的功能且各个部分之间又保持一定的联系,这就是功能设计。在设计阶段,基于这个功能的层次结构把各个部分组合起来成为系统。(3)处理方式设计:确定为实现软件系统的功能需求所必需的算法,评估算法的性能。确定为满足软件系统的性能需求所必需的算法和模块间的控制方式(性能设计)。确定外部信号的接收发送形式。3.简述数据结构设计的内容确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计。它包括:1)确定输入、输出文件的详细的数据结构。2)结合算法设计,确定算法所必需的逻辑数据结构及其操作。3)确定对逻辑数据结构所必需的那些操作的程序模块(软件包)。限制和确定各个数据设计决策的影响范围。4)若需要与操作系统或调度程序接口所必须的控制表等数据时,确定其详细的数据结构和使用规则。5)数据的保护性设计4.在详细设计过程中需要完成的工作有哪些?(1)确定软件各个组成部分内的算法以及各部分的内部数据组织。(2)选定某种过程的表达形式来描述各种算法。(3)进行详细设计的评审5.软件设计的最终目标是要取得最佳方案。“最佳”的含义是指什么?是指在所有候选方案中,就节省开发费用,降低资源消耗,缩短开发时间的条件,选择能够赢得较高的生产率、较高的可靠性和可维护性的方案。在整个设计的过程中,各个时期的设计结果需要经过一系列的设计质量的评审,以便及时发现和及时解决在软件设计中出现的问题,防止把问题遗留到开发的后期阶段,造成后患。在评审以后,必须针对评审中发现的问题,对设计的结果进行必要的修改。6.模块具有哪些基本属性?(1)功能:即指该模块实现什么功能。(2)逻辑:即描述模块内部怎么做。(3)状态:即该模块使用时的环境和条件。7.简述数据设计的原则。(1)用于软件的系统化方法也适用于数据。(2)要确定所有的数据结构和在每种数据结构上施加的操作。(3)应当建立一个数据词典并用它来定义数据和软件的设计。(4)低层数据设计的决策应推迟到设计过程的后期进行。(5)数据结构的表示只限于那些必须直接使用该数据结构内数据的模块才能知道。(6)应当建立一个存放有效数据结构及相关操作的库。(7)软件设计和程序设计语言应当支持抽象数据类型的定义和实现。8.程序流程图有哪几种基本控制结构?(1)顺序型 (2)选择型 (3)先判定(while)型循环 (4)后判定(until)型循环 (5)多情况(case)型选择。三、名词解释1.结构图的深度在多层次的结构图中,其模块结构的层次数称为结构图的深度。结构图的深度在一定意义上反映了程序结构的规模和复杂程度。2.结构图的宽度结构图中同一层模块的最大模块数称为结构图的宽度3.模块的扇入和扇出扇出表示一个模块直接调用(或控制)的其他模块数目。扇入则定义为调用(或控制)一个给定模块的模块个数。4.模块软件系统的层次结构是模块化的具体体现。将整个软件划分成若干单独命名和可编址的部分,称之为模块。可以将这些模块组装起来以满足整个问题的需求。5.信息隐蔽信息隐蔽是指,每个模块的实现细节对于其他模块来说是隐蔽的。即模块中所包含的信息(包括数据和过程)不允许其他不需要这些信息的模块使用。四、选择一种将三个数从小到大排序的算法,分别用(1)流程图,(2)N-S图,(3)PAD图描述其详细过程。设数为a,b,c,其详细过程如下:(1)流程图 (2)N-S图 (3)PAD图 第五章 Jackson系统开发方法 一、问答1.JSD的系统模型是互相通信的一组进程的集合。进程间的通信可采用哪几种方式?(1)进程活动同步发生。(2)通过数据流通道发送/接收活动发生。(3)访问公用存储信息。2.JSD方法是支持软件分析与设计的一组连续的技术步骤,它们包括哪些方面?(1) 实体动作分析:从问题的描述中,提取软件系统要产生和运用的实体(人、物或组织),以及现实世界作用于实体上的动作(事件)。(2) 实体结构分析:把作用于实体的动作或由实体执行的动作,按时间发生的先后次序排序,构成进程,并用一个层状的Jackson结构图表示。(3) 定义初始模型:把实体和动作表示成一个进程模型,定义模型与现实世界的联系。(4) 功能描述:说明与已定义的动作相对应的功能,为已定义的动作加入功能函数。(5) 决定系统时间特性:对进程加入时间因素,对进程调度特性进行评价和说明。(6) 实现:设计组成系统的硬件和软件,实现系统的原型。3.在Jackson系统开发方法中定义了哪几种功能?(1) 嵌入功能:把操作分配(或写入)到模型进程的结构正文内。(2) 强制功能:检查模型进程的状态向量,并给出输出结果。(3) 交互功能:检查模型进程的状态向量,写入一个施加于模型进程活动的数据流,或引入一个写出结果的操作。二、填空1.JSD方法的前三步属于(需求分析)阶段,后三步属于(设计)阶段。2.分析实体的动作,需要从一段用简单的自然语言给出的问题描述(通常是一个段落)入手。当选定了实体和动作的时候,实际上已经把要开发系统的(范围)划定了。第六章 用户界面设计课程作业 一、填空1.用户界面作为软件的重要组成部分,应当具备(可使用性 灵活性 复杂性和可靠性 )三方面的特性。2.用户类型通常可以分为(外行型 初学型 熟练型 专家型)种类型。3.按照显示的形象或样式来分类菜单可分为(正文菜单 图标菜单 正文和图标混合的菜单 )。4.按屏幕位置和操作风格来分类菜单可分为(固定位置菜单 浮动位置菜单 下拉式菜单 嵌入式菜单)。5.常用的二维图形显示包括(直方图 饼图 折线图 散布图)等几种。 二、问答题1.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。它包括哪些内容?(1)使用的简单性(2)用户界面中所用术语的标准化和一致性(3)拥有HELP帮助功能(4)快速的系统响应和低的系统成本(5)用户界面应具有容错能力2.怎样理解用户界面的复杂性?用户界面的规模和组织的复杂程度就是界面的复杂性。在完成预定功能的前提下,应当使得用户界面越简单越好。但也不是把所有功能和界面安排成线性序列就一定简单。3.用户界面设计的任务分析应与软件系统的需求分析同步进行。它包括用那几个步骤?用户特性分析、用户工作分析、记录用户有关系统的概念和术语、确定界面类型等4个步骤。4.用户特性的度量的主要衡量标准是什么?1)用户使用的频度2)用户需要自由选用界面的情况3)用户对计算机的熟悉程度4)用户知识5)用户思维能力6)用户的生理能力和技能5.如果从用户与计算机交互的角度来看,用户界面设计的类型主要有哪些?问题描述语言、数据表格、图形与图标、菜单、对话、以及窗口等等。每一种类型都有不同的特点和性能。6.对话框有哪几种对话形式?(1)必须回答式(2)无需回答式(3)警告式。7.问题描述语言是一种结构化的语言,它可以分为哪几层?(1)任务层(2)语义层(3)语法层(4)交互层。8.数据输入对话设计的一般规则是什么?(1)确认输入(2)交互动作(3)明确取消(4)确认删除(5)提供反馈(6)允许编辑(7)提供复原(Undo)(8)自动格式化(9)提示输入的范围第七章 程序编码 一、填空1.(程序编码)阶段的工作是把软件的详细设计变换成用某一种程序设计语言编写的可实现的源程序。 2.结构化程序设计中,应注意数据结构的合理化问题,即数据结构访问的规范化,标准化问题。对于数据结构中常使用的数组、指针等数据类型,一般可用(栈 )和(队列)去代替。3.源程序文档化包括(选择标识符的名字)、(安排注释 )以及程序的(视觉组织 )等。二、问答1.结构化程序设计的主要的原则有哪些?(1)使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。(2)选用的控制结构只准许有一个入口和一个出口。(3)程序语句组成容易识别的块(Block),每块只有一个入口和一个出口。(4)复杂结构应该用基本控制结构进行组合嵌套来实现。(5)语言中没有的控制结构,可用一段等价的程序段模拟,但要求该程序段在整个系统中应前后一致。(6)严格控制GOTO语句,仅在下列情形才可使用:a.用一个非结构化的程序设计语言去实现一个结构化的构造。b.在某种可以改善而不是损害程序可读性的情况下。2.自顶向下逐步求精方法的优点是什么?(1)自顶向下,逐步求精方法符合人们解决复杂问题的普遍规律。可提高软件开发的成功率和生产率;(2)用先全局后局部,先整体后细节,先抽象后具体的逐步求精的过程开发出来的程序具有清晰的层次结构,因此程序容易阅读和理解;(3)程序自顶向下,逐步细化,分解成一个树形结构,在同一层的节点上做细化工作,相互之间没有关系,因此它们之间的细化工作相互独立;在任何一步发生错误,一般只影响它下层的节点,同一层其他节点不受影响。在以后的测试中,也可以先独立地一个节点一个节点地做,最后再集成。(4)程序清晰和模块化,使得在修改和重新设计一个软件时,可复用的代码量最大;第八章 软件测试课程作业 一、填空1.软件测试在软件生存期中横跨两个阶段:(单元测试 )和(综合测试 )。2.确认(Validation)是一系列的活动和过程,其目的是想证实在一个给定的外部环境中软件的(逻辑正确性)。它包括需求规格说明的确认和程序的确认,而程序的确认又分为(静态确认 )与(动态确认 )。3.(验证)则试图证明在软件生存期各个阶段,以及阶段间的逻辑协调性、完备性和正确性。4.测试过程至少需要三类输入,即(软件配置 )、 (测试配置)、 ( 测试工具)。5.(排错的过程)是测试过程中最不可预知的部分,正是因为如此,才使得人们很难定出可靠的测试进度。6.(软件的黑盒 )测试意味着测试要在软件的接口处进行,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。7.(软件的白盒测)试是对软件的过程性细节做细致的检查。这一方法允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。8.逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计技术,属(白盒测试 )。9.基本路径测试就是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行(路径集合 ),从而设计测试用例。10.等价类划分是一种典型的(黑盒 )测试方法,也是一种非常实用的重要测试方法。使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。11.测试过程一般按4个步骤进行,即(单元测试)、(组装(集成)测试 )、( 确认测试)、(系统测试 )。二、问答1.什么是软件测试?软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。如果给软件测试下定义,可以这样讲:软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果,并利用这些测试用例去运行程序,以发现程序错误的过程。2.软件测试目的是什么?测试的目标是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。如果成功地实施了测试,就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符。此外,实施测试收集到的测试结果数据为可靠性分析提供了依据。3.软件测试的原则是什么?(1)应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。(2)测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。(3)程序员应避免检查自己的程序。(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。(5)充分注意测试中的群集现象。(6)严格执行测试计划,排除测试的随意性。(7)应当对每一个测试结果做全面检查。 (8)妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。4.黑盒测试主要是为了发现以下那些错误?(1)是否有不正确或遗漏了的功能?(2)在接口上,输入能否正确地接受?能否输出正确的结果?(3)是否有数据结构错误或外部信息(例如数据文件)访问错误?(4)性能上是否能够满足要求?(5)是否有初始化或终止性错误?5.白盒测试主要对程序模块进行那些检查?(1)对程序模块的所有独立的执行路径至少测试一次;(2)对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测试一次;(3)在循环的边界和运行界限内执行循环体;(4)测试内部数据结构的有效性等。三、判断1.软件开发过程是一个自顶向下,逐步细化的过程,软件测试过程也是如此。错误 软件开发过程是一个自顶向下,逐步细化的过程,首先在软件计划阶段定义了软件的作用域,然后进行软件需求分析,建立软件的数据域、功能和性能需求、约束和一些有效性准则。接着进入软件开发,首先是软件设计,然后再把设计用某种程序设计语言转换成程序代码。而测试过程则是依相反的顺序安排的自底向上,逐步集成的过程。低一级测试为上一级测试准备条件。当然不排除两者平行地进行测试。2.在软件测试中,若发现错误则说明程序有问题,软件需要修改;若未发现错误,则说明程序是正确的,软件可以交付使用。错误 软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在发现错误时能说明程序有问题;但在未发现错误时,不能说明程序中没有错误,不能说明程序中没有问题。第九章 面向对象技术课程作业 一、填空1.根据Coad和Yourdon的定义,面向对象的概念可表示为:“面向对象=(对象)+(类)+(继承 )+(通信 )” 。2.对象是面向对象开发模式的基本成分。每个对象可用其一组(属性 )和它可以执行的一组(操作)来定义。3.类是一组具有相同数据结构和相同操作的对象的集合。在一个类中,每个对象都是类的(实例 ),它们都可使用类中提供的函数。4.面向对象分析是软件开发过程中的(问题定义 )阶段。这一阶段最后得到的是对问题论域的清晰、精确的定义。5.对象模型技术,即三视点技术,它把分析时收集的信息构造在三类模型中,即(对象模型 )、(功能模型)和(动态模型 )。6.高层设计阶段开发系统的结构,即用来构造应用的总的(模型)。7.利用现存类来设计新类,有4种方式:(选择)、(分解 )、(配置 )和(演变 )。8.Coad与Yourdon的方法是在信息模型化技术,面向对象程序设计语言及知识库系统的基础上发展起来的。这个方法分为 (面向对象分析(00A) )和 (面向对象设计(00D) )两个部分。二、问答1.面向对象技术有哪些特色?一是方法的唯一性,即方法是对软件开发过程所有阶段进行综合考虑而得到的。二是从生存期的一个阶段到下一个阶段的高度连续性,即在一个阶段所用到的部分与在下一个阶段所使用的部分是衔接的,所使用的技术经过生存期每一阶段后不改变。三是把面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)集成到生存期的相应阶段。2.面向对象的设计包括哪几部分的设计?(1)问题论域部分的设计;(2)用户界面部分的设计;(3)任务管理部分的设计;(4)数据管理部分的设计。3.Booch认为软件开发是一个螺旋上升的过程。在这个螺旋上升的每个周期中,有哪几个步骤? (1)发现类和对象;(2)确定它们的含义;(3)找出它们之间的相互关系;(4)说明每一个的界面和实现。第十章 软件质量保证课程作业 一、问答1.什么是软件的质量?软件质量为“所有描述计算机软件优秀程度的特性的组合”。也就是说,为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合,作为在软件开发与维护中的重要考虑因素。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。2.软件质量反映了哪几方面的问题?(1)软件需求是度量软件质量的基础。不符合需求的软件就不具备质量。(2)在各种标准中定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。(3)往往会有一些隐含的需求没有明确地提出来。例如,软件应具备良好的可维护性。如果软件只满足那些精确定义了的需求而没有满足这些隐含的需求,软件质量也不能保证。3.怎样理解软件质量保证的概念?软件的质量保证就是向用户及社会提供满意的高质量的产品。软件的质量保证活动也和一般的质量保证活动一样,是确保软件产品从诞生到消亡为止的所有阶段的质量的活动。即为了确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。二、填空题1.McCall等人于 1979年提出了软件质量模型,其软件质量概念基于 11个特性之上。这11个特性分别面向软件产品的(运行)、(修正)和(转移)。2.根据McCall等人的软件质量特性定义,(正确性)是指在预定环境下,软件满足设计规格说明及用户预期目标的程度。它要求软件没有错误。3. 根据McCall等人的软件质量特性定义,(可靠性 )是指软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度。4. 根据McCall等人的软件质量特性定义,(效率 )是指为了完成预定功能,软件系统所需的计算机资源的多少。5. 根据McCall等人的软件质量特性定义,(完整性 )是指为了某一目的而保护数据,避免它受到偶然的,或有意的破坏、改动或遗失的能力。6. 根据McCall等人的软件质量特性定义,(可使用性 )是指对于一个软件系统,用户学习、使用软件及为程序准备输入和解释输出所需工作量的大小。7. 根据McCall等人的软件质量特性定义,(可维护性 )是指为满足用户新的要求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。8. 根据McCall等人的软件质量特性定义,(可测试性 )是指测试软件以确保其能够执行预定功能所需工作量的大小。9. 根据McCall等人的软件质量特性定义,(灵活性 )是指修改或改进一个已投入运行的软件所需工作量的大小。10. 根据McCall等人的软件质量特性定义,(可移植性 )是指将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需工作量的大小。11. 根据McCall等人的软件质量特性定义,(复用性 )是指一个软件(或软件的部件)能再次用于其它应用(该应用的功能与此软件或软件部件的所完成的功能有联系)的程度。12. 根据McCall等人的软件质量特性定义,(互连性 )是指连接一个软件和其他系统所需工作量的大小。如果这个软件要联网,或与其他系统通信,或要把其他系统纳入到自己的控制之下,必须有系统间的接口,使之可以联结。13.软件质量特性度量有两类:(预测型 )和(验收型)。14.定量地评价软件的质量,目前还不能精确地做到。一般采取由若干(610)位软件专家进行打分来评价。其过程包括两步:(评分 )和(分析结果 )。 三、判断 1.软件的容错技术是进行质量管理,实现产品应有质量所必不可少的技术,也就是软件工程中所讨论的先进的软件分析和开发技术和管理技术。错误 软件的避开错误技术是进行质量管理,实现产品应有质量所必不可少的技术,也就是软件工程中所讨论的先进的软件分析和开发技术和管理技术第十一章 软件维护课程作业 一、问答1.为什么要对软件产品进行维护?要求进行维护的原因多种多样,归结起来有三种类型:(1)改正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷。(2)因在软件使用过程中数据环境发生变化或处理环境发生变化,需要修改软件以适应这种变化。(3)用户和数据处理人员在使用时常提出改进现有功能,增加新的功能,以及改善总体性能的要求,为满足这些要求,就需要修改软件把这些要求纳入到软件之中。2.软件的维护活动可以归为哪几类?(l)改正性维护;(2)适应性维护;(3)完善性维护;(4)预防性维护3.影响软件维护工作量的程序特性有哪些?在软件维护中,影响维护工作量的程序特性有以下6种。(1)系统大小;(2)程序设计语言;(3)系统年龄;(4)数据库技术的应用;(5)先进的软件开发技术;(6)其他:例如,应用的类型、数学模型、任务的难度、开关与标记、IF嵌套深度、索引或下标数等,对维护工作量都有影响。4.尽管软件维护申请的类型不同,但都要进行同样的技术工作。这些工作有哪些?修改软件需求说明、修改软件设计、设计评审、对源程序做必要的修改、单元测试、集成测试(回归测试)、确认测试、软件配置评审等。5.建立软件维护档案记录时,对每项维护任务应该收集那些数据?为了估计软件维护的有效程度,确定软件产品的质量,同时确定维护的实际开销,需要在维护的过程中做好维护档案记录。其内容包括程序名称、源程序语句条数、机器代码指令条数、所用的程序设计语言、程序安装的日期、程序安装后的运行次数、与程序安装后运行次数有关的处理故障次数、程序改变的层次及名称、修改程序所增加的源程序语句条数、修改程序所减少的源程序语句条数、每次修改所付出的“人时”数、修改程序的日期、软件维护人员的姓名、维护申请报告的名称、维护类型、维护开始时间和维护结束时间、花费在维护上的累计“人时”数、维护工作的净收益等。对每项维护任务都应该收集上述数据。6.如何提高软件的可维护性?提高软件的可维护性,需从以下五个方面着手:1.建立明确的软件质量目标和优先级;2.使用提高软件质量的技术和工具;3.进行明确的质量保证审查;4.选择可维护的程序设计语言;5.改进程序的文档。7.软件维护是一组软件工程活动,它们发生于软件已交付给用户并已投入运行之后;软件配置管理是一组追踪和控制活动,它们开始于软件开发项目开始之时,结束于软件被淘汰之时。维护和软件配置管理之间的区别是什么?二、填空题1.在软件维护时,必然会对源程序进行修改。通常对源程序的修改不能无计划地仓促上阵,为了正确、有效地修改,需要经历三个步骤。即(分析和理解程序)、(修改程序)和(重新验证程序)。2.在将修改后的程序提交用户之前,需要用以下的方法进行充分的确认和测试,以保证整个修改后的程序的正确性:(静态确认 )、(计算机确认 )和(维护后的验收 )。3.软件工程中,SCM活动的目标就是为了:(标识变更 )、(控制变更 )、(确保变更正确地实现)和(向其他有关的人报告变更 )。第十二章 软件工程标准化与软件文档课程作业 一、问答题 1.软件工程标准的类型有哪些?软件工程标准的类型包括过程标准(如方法、技术、度量等)、产品标准(如需求、设计、部件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论