软件工程导论复习(期末_考研用)

合集下载

软件工程导论复习(期末_考研用)

软件工程导论复习(期末_考研用)

第1章软件工程概述1、什么是软件工程?为什么会出现软件工程?软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。

软件工作者在20世纪60年代后期开始认真研究消除软件危机的途径,从而逐渐形成了一门新兴的工程学科——计算机软件工程学(通常简称为软件工程)。

2、软件工程的主要目标是什么?基本目标是什么?软件工程的目标:从管理和技术两个方面开发和维护计算机软件,用低成本,开发出达标、高性能、易于移植、可靠性高的软件。

软件工程的基本目标是:优质、高产。

3、什么是软件工程方法学?软件工程的3要素(软件工程方法学的3要素)是什么?分别包含什么内容?软件工程方法学:软件生命周期全过程中使用的一整套技术方法的集合软件工程方法学包含3个要素:方法、工具和过程。

方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。

4、什么是软件过程?什么是软件周期?常见软件生命周期模型(课件中的前5类)的特点有哪些?软件过程:它是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

软件生命周期:由软件定义、软件开发和运行维护(也称之为软件维护)3个时期组成①瀑布模型定义:传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。

瀑布模型的特点:1.阶段间具有顺序性和依赖性;2.推迟实现的观点;3.质量保证的观点。

瀑布模型的成功在很大程序上是由于它基本上是一种文档驱动的模型。

瀑布模型的主要优点:a.可强迫开发人员采用规范的技术方法;b.严格地规定了每个阶段必须提交的文档;c.每个阶段结束前必须正式进行严格的技术审查和管理复审。

《软件工程导论》期末复习材料

《软件工程导论》期末复习材料

《软件工程导论》期末复习材料1、什么是软件危机?产生的主要原因有哪些?(1页)软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

主要原因:1)用户对软件需求的描述不精确。

2)软件开发人员对用户需求的理解有偏差。

3)缺乏处理大型软件项目的经验。

4)开发大型软件易产生疏漏和错误。

5)缺乏有力的方法学的指导和有效的开发工具的支持。

6)面对日益增长的软件需求,人们显得力不从心。

2、什么是瀑布模型,瀑布模型的缺点主要有哪些?(15页)瀑布模型将软件开发分成:需求分析、规格说明、设计、编码、综合测试和维护阶段,每个阶段必须完成规定的文档,必须等前一个阶段完成之后才开始下一个阶段的工作,前一个阶段输出的文档是下一个阶段的输入文档。

缺点主要包括:1)在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。

2)在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。

3)不支持产品的演化,缺乏灵活性,使软件产品难以维护。

3、什么是数据流图,数据流图由哪些基本符号组成?(40页)数据流图:简称DFD, ,主要用于SA(结构化分析)方法,它描绘信息流和数据从输入移动到输出的过程中所经受的变换,是一种功能模型. 基本符号有四种: ->,箭头,表示数据流; =,开口矩形或者两条平行线,表示数据存储; 正方形或者立方形,表示数据的源点或终点,圆角矩形或圆形,表示加工,也就是数据的处理;数据流图中每一个加工至少有一个输入流和一个输出流。

4、数据字典有哪几种元素组成?(47页)1)数据流,2)数据元素,3)数据存储,4)处理或者加工5、需求分析阶段的基本任务是什么(56页)1).问题识别,确定系统的综合需求和数据需求,包括a.功能需求b.性能需求c.环境需求d.用户界面需求e.出错处理的需求f.接口需求2).分析与综合,导出软件的逻辑模型.3).修正开发计划4).编写文档6、模块的内聚有哪几种?(99页)功能内聚(模块就是一个单一功能)、顺序内聚(模块中的处理必须顺序执行)、通信内聚(模块中所有任务都是对同一批数据操作)、过程内聚(模块中的处理必须按特定次序执行)、时间内聚(模块的任务要在同一时间段完成)、逻辑内聚(模块的任务在逻辑上属于一类)、偶然内聚(模块中的任务有很松散的关系)。

软件工程导论期末复习题

软件工程导论期末复习题

软件工程导论期末复习题第一章1、什么是软件工程?软件工程方法学包括哪三要素?答:概括地说,软件工程是指导计算机软件开发和维护的一门工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

软件工程方法学三要素:方法、工具、过程。

目前使用得最广泛的软件工程方法学:传统方法学、面向对象方法学。

2、传统方法学与面向对象方法学定义传统方法学也称为生命周期方法学或结构化范型。

它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。

这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。

面向对象方法学:面向对象方法把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。

面向对象方法学具有下述4个要点:(1)把对象作为融合了数据及在数据上的操作行为的软件构件。

(2)把所有对象都划分成类。

(3)按照父类(或称为基类)与子类(派生类)的关系,把若干个相关类组成一个层次结构的系统。

(4)对象彼此间只能通过发送消息互相联系。

3、软件生命周期有哪些阶段?软件生命周期由软件定义、软件开发和软件维护3个时期组成,每个时期又进一步划分为若干个阶段。

软件定义时期分3阶段:问题定义、可行性研究、需求分析。

开发时期分4个阶段:总体设计、详细设计、编码和单元测试、综合测试。

其中前两个阶段称为系统设计,后两个称为系统实现。

维护时期的主要任务是使软件持久地满足用户的需要。

第二章1、为什么要进行可行性研究,要从哪几个方面研究?可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。

可行性研究至少应从3个方面研究:技术可行性、经济可行性、操作可行性。

软件工程导论期末考试试题

软件工程导论期末考试试题

软件工程导论期末考试试题1.选择题1.瀑布模型将软件生命周期划分为八个阶段,包括问题定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。

这八个阶段可以归纳为三个大的阶段,即计划阶段、开发阶段和运行阶段。

选项中正确的是C,即运行阶段。

2.在结构化的瀑布模型中,如果哪个环节出错,对软件的影响最大,选项中正确的是C,即测试和运行阶段。

3.在结构化的瀑布模型中,系统测试阶段的目标是由哪个阶段定义的标准决定的,选项中正确的是A,即需求分析阶段。

4.软件工程的出现主要是由于软件危机的出现,选项中正确的是C。

5.软件工程方法学的目的是使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是软件开发工具和软件开发的环境,选项中正确的是C。

6.软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为相互补充,选项中正确的是B。

7.UML主要应用于基于对象的面向对象的方法,选项中正确的是C。

8.在下面的软件开发方法中,要求软件设计和开发人员的开发要求最高的是原型化方法,选项中正确的是B。

9.结构化分析方法强调分析对象的数据流,选项中正确的是B。

10.软件开发的结构化生命周期方法将软件生命周期划分成计划阶段、开发阶段和运行阶段,选项中正确的是A。

11.软件开发中常采用的结构化生命周期方法一般称其为瀑布模型,选项中正确的是A。

12.软件开发的瀑布模型中,可能占用人员最多的阶段是编码阶段,选项中正确的是C。

2.改写1.瀑布模型将软件生命周期划分为八个阶段,包括问题定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。

这八个阶段可以归纳为三个大的阶段,即计划阶段、开发阶段和运行阶段。

其中,运行阶段是指软件开发完成后,软件被交付给用户并开始使用的阶段。

2.在结构化的瀑布模型中,如果哪个环节出错,对软件的影响最大。

在这八个阶段中,测试和运行阶段是最后一个阶段,也是软件交付给用户前的最后一个阶段,如果在这个阶段出现问题,将会对软件的使用造成很大的影响。

软件工程导论《软件工程》期末考试题及答案

软件工程导论《软件工程》期末考试题及答案

软件工程导论《软件工程》期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪项不是软件工程的基本目标?A. 提高软件的生产率B. 提高软件的可维护性C. 提高软件的性能D. 降低软件的开发成本答案:C2. 下列哪种方法不属于软件需求分析的方法?A. 数据流图(DFD)B. 实体-关系图(ER图)C. 状态转换图D. Petri网答案:D3. 软件设计中,模块的内聚性越高,表明模块的:A. 功能越单一B. 独立性越强C. 复用性越低D. 可维护性越低答案:A4. 在软件测试阶段,下列哪种测试方法不属于黑盒测试?A. 等价类划分B. 边界值分析C. 代码覆盖率分析D. 逻辑覆盖分析答案:D5. 软件项目管理中,项目经理的主要职责不包括以下哪项?A. 制定项目计划B. 管理项目进度C. 组织项目团队D. 编写代码答案:D二、填空题(每题2分,共20分)6. 软件生命周期可以分为______、需求分析、设计、编码、测试、维护等阶段。

答案:需求调研7. 软件工程的三要素是______、过程、方法。

答案:工具8. 在软件设计中,模块的独立性包括______和耦合性两个方面。

答案:内聚性9. 软件测试的目的不包括______。

答案:发现并修复所有错误10. 软件项目管理的主要目标是实现项目的______、质量和成本控制。

答案:进度三、简答题(每题10分,共30分)11. 简述软件工程的基本原则。

答案:软件工程的基本原则包括:(1)抽象:将复杂问题分解为更简单的子问题;(2)分解:将问题分解为多个部分,分别解决;(3)模块化:将软件划分为独立的模块,提高可维护性和复用性;(4)信息隐藏:隐藏模块内部的信息,只暴露必要的接口;(5)一致性:保持软件各部分的一致性,提高可读性;(6)可维护性:使软件易于修改和维护。

12. 简述软件需求分析的目的和任务。

答案:软件需求分析的目的在于明确用户对软件系统的功能、性能等方面的需求。

2023软件工程导论期末考试题库及参考答案

2023软件工程导论期末考试题库及参考答案

2023软件工程导论期末考试题库及参考答案一、选择题(每题2分,共20分)1. 以下哪个不是软件工程的三个基本目标?A. 可维护性B. 可用性C. 可靠性D. 高效性参考答案:D2. 软件生命周期中,以下哪个阶段是软件开发过程的核心阶段?A. 需求分析B. 设计C. 编码D. 测试参考答案:C3. 以下哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 逻辑编程参考答案:A4. 在软件工程中,以下哪个方法用于估算软件项目的成本和进度?A. COCOMOB. WBSC. SDLCD. CASE参考答案:A5. 以下哪个是软件工程中的一个重要原则?A. 分而治之B. 一次性编写C. 重用D. 模块化参考答案:D6. 以下哪个不是软件工程的基本活动?A. 软件规格B. 软件开发C. 软件验证D. 软件测试参考答案:C7. 以下哪个是软件工程中用于提高软件质量的技术?A. 设计模式B. 重构C. 代码审查D. 单元测试参考答案:C8. 以下哪个不是软件工程的五大基本过程?A. 软件规格B. 软件开发C. 软件维护D. 软件项目管理参考答案:D9. 以下哪个是软件工程中的一个重要概念,用于描述软件系统中的各个组件之间的关系?A. 耦合B. 内聚C. 模块化D. 重用参考答案:A10. 以下哪个是软件工程中的一个重要原则,用于指导软件开发过程?A. 迭代B. 增量C.螺旋D. 模型驱动参考答案:A二、填空题(每题2分,共20分)11. 软件工程的三要素是:方法、工具和______。

参考答案:过程12. 软件生命周期包括:需求分析、设计、编码、______和软件维护。

参考答案:测试13. 软件工程中的面向对象方法包括:封装、继承和______。

参考答案:多态14. 软件工程中的 CASE 工具主要用于支持______。

参考答案:软件设计和开发15. 软件工程中的敏捷开发方法强调______、可维护性和可扩展性。

软件工程导论期末复习题_答案.

软件工程导论期末复习题_答案.

一、单向选择题(四选一、每小题3分,共18分)1、软件的发展经历了(D)个发展阶段。

0102A.一B.二C.三D.四2、需求分析的任务不包括(B)。

0401A.问题分析B.系统设计C.需求描述D.需求评审。

3、一个软件的宽度是指其控制的(C)。

0801A.模块数B.层数C.跨度D.厚度4、当模块中包含复杂的条件组合,只有(A)能够清晰地表达出各种动作之间的对应关系。

0802A.判定表和判定树B.盒图C.流程图D.关系图5、以下不属于逻辑覆盖的是(D)。

1402A.语句覆盖B.判定覆盖C.条件覆盖D.基本路径6、为适应软件运行环境的变化而修改软件的活动称为(B)。

1501A.纠错性维护B.适应性维护C.改善性维护D.预防性维护二、填空题(每空2分,共18分)1.软件可靠性是指在给定的时间间隔内,程序成功运行的(概率)。

01012.高级语言:独立于机器,面向过程或面向(对象)01013.软件项目管理的范围主要集中于3个P上,即:People人员、Problem问题和(过程)。

02014.人机界面的风格第一代界面是命令和(询问)方式。

12025.由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的(副作用)。

15046.在公式V(G)= E –N + 2中:E为程序图G中边的总数;N 为程序图中结点的总数。

V(G)又称为图G的环形(复杂度)0204。

7.任何一个基于计算机系统都可以用输入-处理-输出(IPO)图来描述,它将该系统转换成一个信息变换模型。

03038.为提高可交互性一般对所有可能造成损害的用户操作动作,应坚持要求用户(确认),例如,提问“你确实要删除…?”。

12049.文档是一种数据媒体和其上所记录的(数据)。

0101三、判断题(每小题2分,共24分,错误打X、正确打√)1.用户对软件需求的描述不精确,往往是产生软件危机的原因之一。

(√)01022.目前,软件项目的进度安排的两种比较常用的方法是程序评估与审查技术(PERT)和关键路径法(CPM)。

软件工程导论-期末题库(完整版)

软件工程导论-期末题库(完整版)

软件工程导论-期末题库(完整版)1.填空题1.一般来说,可以从__一致性__、_完整性___、_现实性____和_有效性___四个方面验证软件需求的正确性。

2.IPO图是_输入、处理和输出图_的简称,它是美国IBM公司发展完善起来的一种图形工具。

3.系统流程图是描述__物理模型__的传统工具,用图形符号表达了系统中各种元素之间的_____信息流动_____情况。

4.数据流图中的箭头表示数据流,椭圆或圆形表示数据处理,矩形表示数据的源点/终点。

5.软件测试的步骤按顺序分别是:___单元测试_____、子系统测试、系统测试(子系统和系统测试通常称为集成测试)、__确认测试__和_____系统测试(集成测试)____6.软件生命周期一般可分为_问题定义_、可行性研究、_需求分析_、设计编码、_测试_、运行与维护阶段。

7.可行性研究主要集中在以下四个方面_经济可行性_、__技术可行性____、__法律可行性___和抉择。

8.在结构化设计中,HIPO图应用在总体设计阶段,由IPO图和_层次图_两部分组成。

9.复杂问题的对象模型通常由下述五个层次组成:主题层、___类与对象_层、__结构___层、_属性_层和__服务_层。

10.实施精化设计的目标是基于模块的“高内聚低耦合”的原则,提高模块的_独立性。

11.软件生命周期一般可分为___问题定义_、可行性研究、__需求分析__、概要设计__、详细设计、编码、__软件测试_、运行与维护阶段。

12.面向对象的数据存储管理模式分为__文件__、_关系数据库__和__面向对象数据库___三种。

13.单元测试一般以_白盒_测试为主,__黑盒__测试为辅。

14.软件工程三要素包括_方法_、__工具___和__过程___,其中,_过程_支持软件开发的各个环节的控制和管理。

15.类构件的重用方式有_实力重用__、__继承重用______和_多态重用__三种。

16.能力成熟度模型分为5个等级:初始级、____可重复____级、__已定义___级、____已管理__级和__优化____级。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程导论复习(期末_考研用)1、需求分析的任务是什么?分析得到的成果(文档)是什么?包含哪些内容?1、需求分析的任务:(1)确定对系统的综合要求:功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、逆向需求、将来可能提出的要求(2)分析系统的数据要求:(3)导出系统的逻辑模型(4)修正系统开发计划;2、需求分析得到的结果:是通过需求分析得到的除了分析模型之外,还应该写出软件需求规格说明书,它是需求分析阶段得出的最主要的文档。

2、软件需求通常包括哪些方面?各类需求一般包含内容有哪些?(1)功能需求:这方面的需求指定系统必须提供的服务。

通过需求分析应该划分出系统必须完成的所有功能。

(2)性能需求:性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求。

(3)可靠性和可用性需求:可靠性需求定量地指定系统的可靠性。

可用性与可靠性密切相关,它量化了用户可以使用系统的程度。

(4)出错处理需求:这类需求说明系统对环境错误应该怎样响应。

(5)接口需求:接口需求描述应用系统与它的环境通信的格式。

常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。

(6)约束:设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。

(7)逆向需求:逆向需求说明软件系统不应该做什么。

(8)将来可能提出的要求:应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。

这样做的目的是,在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。

3、追加的主要描述工具的概念和使用:E-R图:是什么,成份和基本符号,描述什么模型;状态转换图:是什么,描述什么模型(1)E-R图的定义:即实体--联系图,是表示数据对象及其之间关系的图形语言机制,是建立数据模型的图形工具。

E-R图的基本成份和使用的符号:实体(即数据对象)----矩形框,关系----菱形框,属性----椭圆形或圆角矩形。

E-R图描述的模型:用来建立数据模型,ER模型使用简单的图形符号表达系统分析员对问题域的理解(2)状态转换图的定义:通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。

状态转换图的基本成份和使用的符号:基本成分是状态、事件、状态转换。

状态转换图描述的模型:用来建立系统的行为模型。

4、在结构化分析中,建模的核心是什么?3种模型分别是什么,分别用什么工具来描述?建模的核心是数据字典,它描述了所有的在目标系统中使用的和生成的数据对象。

(1)、数据模型,用实体-联系图描述;(2)、功能模型,用数据流图描述;(3)、行为模型,用状态转换图描述。

第5章总体设计1、什么是总体设计?将软件需求转化为软件的数据结构和系统结构,确定各组成成分(子系统或模块)之间的相互关系2、模块化设计的原理包括什么?为了提高软件的可维护性,其中,模块独立性最重要的,是评价软件结构质量的首要标准。

模块化设计的原理包括:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立。

为了提高软件的可维护性,其中,模块独立性最重要的,是评价软件结构质量的首要标准。

3、模块独立性度量(描述)的两个指标:内聚、耦合;什么是内聚,什么是耦合;耦合和内聚的具体分类及使用原则;在面向数据流的方法中,内聚、耦合各分为哪几级,每级的具体含义分别是什么?强度从弱到强如何排列?耦合和内聚两者关系?(1)耦合定义:它是对一个软件结构内不同模块之间互连程度的度量;耦合分类:耦合使用原则:尽量使用数据耦合,小用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合,最终降低模块间接口的复杂性。

(2)内聚定义:它标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。

内聚分类:内聚使用原则:设计时力求高内聚,设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。

(3)耦合和内聚两者关系:耦合与内聚都是模块独立性的定性标准,都反映模块独立性的良好程度。

其中内聚更重要。

内聚与耦合密切相关。

同其它模块强耦合的模块意味着它自己是弱内聚的;强内聚模块意味着与其它模块间松散耦合。

所以设计的目标应该是力争高内聚、低耦合。

4、软件总体结构描述工具的概念和使用:软件层次图、软件结构(SC)图、HIPO图:是什么,基本符号和表示的结构,画法。

(1)软件层次图的定义:是用来描绘软件层次结构的图形工具。

一个矩形框代表一个模块,方框间的连线表示模块间的调用关系。

软件层次图的示例:(2)HIPO图的定义:即层次图 + 输入/处理/输出图,由一张H图和一组IPO图组成。

通常将HIPO图作为软件结构的描绘,列入设计文档。

H图,是给每个模块加上编号的层次图。

IPO图,即为H图中的每个模块画一张IPO图。

(3)结构图(SC)的定义:描述了软件的模块结构,表示了一个系统的层次分解关系;反映了模块间的联系以及块内联系;反映了模块间的信息传递。

结构图一般不列入设计文档,只用于设计阶段检查模块设计的正确性和模块独立性。

结构图(SC)的基本符号:方框,内有名称,表示模块;直线,表示上层模块对下层模块的调用;尾部带空心圆的箭头,表示按方向传递的数据信息;尾部带实心圆的箭头,表示按方向传递的控制信息;判定为真时调用A ,为假时调用B 模块M 循环调用模块A 、B 、C5、 结构化分析、结构化设计(SD )的实质是什么? SD 是目前使用最广泛的一种软件设计方法,它的基本思想是模块化,它给出了设计软件结构的一个系统化的途径,它提出了“高内聚、低偶合”的评价模块结构质量的具体标准。

SD 的任务,就是在需求分析的基础上,将表示系统逻辑模型的数据流图映射成软件系统结构的初始设计描述。

6、数据流的分类?结构化设计(SD)方法(面向数据流的设计方法)中,如何将分析的结果(数据流图)逐层分解、转换成设计的初步结果(软件层次图)?数据流分类:SD 方法把信息流(数据流图)映射成软件结构,信息流的类型决定了映射的方法。

DFD 中的数据流可分为两类:变换型数据流、事务型数据流;可转换为相应的软件结构:变换型结构、事务型结构。

变换分析----从变换流到变换型结构的映射过程:事物分析----从事物流到事物型结构的映射过程:第6章详细设计1、详细设计的任务(主要工作)有哪些?得到的结果是什么?详细设计的要求是什么?详细设计的任务(工作):确定每个模块内部的算法和数据结构,用一定的工具精确描述目标系统,从而方便在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。

包括:(1) 确定每一模块的算法(2) 确定每一模块使用的数据结构(3) 确定本模块的外部接口和用户界面(4) 为每一模块设计一组测试用例设计得到的结果:是确定每个模块内部的算法和数据结构,产生描述各模块处理过程的详细文档。

详细设计的要求:不仅要逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程容易阅读和理解。

2、什么是过程设计的工具?分类?基本要求?过程设计工具的定义:描述程序处理过程的工具过程设计工具的分类:它们可以分为图形、表格、和语言3类。

过程设计工具的基本要求:不论是哪类工具,对它们的基本要求都是能提供对设计的无歧义的描述。

3、软件详细设计描述工具的概念和使用:程序流程图、N-S图、PAD图、PDL语言:是什么,基本符号和表示的意义,画法;各种工具描述结果间的转换。

(1)程序流程图的定义:又称为程序框图,它是历史最悠久、使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。

程序流程图的基本符号:(2)盒图(N-S图)的定义:出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图。

它有下述特点:(1) 功能域(即,一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。

(2) 没有箭头,不可能任意转移控制。

(3) 很容易确定局部和全程数据的作用域。

(4) 很容易表现嵌套关系,也可以表示模块的层次结构。

盒图(N-S图)的基本符号:(a)顺序;(b)IF_THEB_ELSE型分支;(c)CASE型多分支;(d)循环;(e)调用子程序(3)PAD(问题分析图)的定义: 1973年由日本日立公司发明。

它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。

PAD(问题分析图)的基本符号:(a)顺序;(b)选择(IF C THEN P1 ELSE P2);(c)CASE型多分支;(d)WHILE型循环(WHILE C DO P);(e)UNTIL 型循环(REPEAT P UNTIL C);(f)语句标号;(g)定义(3)过程设计语言(PDL)的定义:也称为伪码,PDL是一种“混杂”语言,它使用一种语言的词汇,同时却使用另一种语言(某种结构化的程序设计语言)的语法。

过程设计语言(PDL)的举例:4、什么是模块的环形复杂度,如何计算?环形复杂度的定义:即程序的逻辑复杂度,主要是指模块内程序的复杂性。

环形复杂度的计算方法:方法一:流图中的区域数等于环形复杂度;方法二:流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数;方法三:流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目第7章实现1、什么是实现?选择程序设计语言主要的实用标准有哪些?通常把编码和测试统称为实现。

(1)系统用户的要求(2)可以使用的编译程序(3)可以得到的软件工具(4)工程规模(5)程序员的知识(6)软件可移植性要求(7)软件的应用领域2、软件测试的目的是什么?软件测试方法的种类?为了发现程序中的错误而执行程序的过程,测试阶段的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。

3、软件测试与软件开发阶段的关系?软件开发过程是一个自顶向下、逐步细化的过程,而测试则是依相反的顺序安排的,自底向上、逐步集成的过程。

低一级为上一级测试准备条件。

4、软件测试的步骤,过程。

模块测试----单元、子系统测试----局部、系统测试----全局、验收测试----用户参与、平行运行----新旧共存5、软件测试的三大阶段:单元测试、集成测试(组装测试)、确认测试(验收测试)的主要任务(目的)是什么?测试的内容主要有哪些?测试计划分别在什么时候制定?测试计划的内容有哪些?模块测试(单元测试)目的:是保证每个模块作为一个单元能正确运行。

在编写出源程序代码并通过了编译程序的语法检查之后,就可以用详细设计描述作指南,对重要的执行通路进行测试,以便发现模块内部的错误。

相关文档
最新文档