第三章软件工程基础

第三章软件工程基础
第三章软件工程基础

第三章软件工程基础

【考点】软件定义与软件特点

软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完

软件的特点:

软件是一种逻辑实体,具有抽象性;

软件的生产与硬件不同,它没有明显的制作过程;

软件在运行、使用期间不存在磨损、老化问题;

软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;

软件复杂性高,成本昂贵;

软件开发涉及诸多的社会因素。

根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。

【考点2】软件的生命周期

软件生命周期是指软件产品从提出、实现、使用维护到停止使用退役的整个过程。可分为软件定义,软件开发及软件维护3个阶段。软件生命周期中,能够准确确定软件系统必须做什么和必须具备哪些功能的阶段是:需求分析。

定义阶段开发阶段维护阶段

【考点3】软件危机和软件工程的概念

软件危机泛指在计算机软件的开发和维护过程中遇到的一系列严重的问题,集中表现在成本,质量。生产效率等几个方面。

所谓软件工程是指采用工程的概念、原理、技术和方法指导软件的开发与维护。是建立并使用完善的工程化原则,以较经济的手段获得,能在实际机器上有效运行的可靠软件的一系列方法;软件工程的主要思想强调在软件开发过程中需要应用工程化原则。软件工程的核心思想是把软件当作一个工程产品来处理。

软件工程包括3个要素:方法,工具和过程

【考点4】软件工程过程

软件工程过程是把软件转化为输出的一组彼此相关的资源活动,包含4种基本活动:(1)P(plan)——软件规格说明;(2)D(do)——软件开发;

(3)C(check)——软件确认;(4)A(action)——软件演进。

【考点5】软件开发技术和软件工程管理

软件工程的理论和技术性研究的内容主要包括软件开发技术和软件工程管理。

软件开发技术包括软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。

软件开发方法包括分析方法,设计方法和程序设计方法。

软件工程管理包括软件管理学,软件工程经济学,软件心理学等。

软件管理学包括人员组织,进度安排,质量保证,配置管理,项目计划等。

软件工程经济学是研究软件开发中成本的估算,成本效益的方法和技术。

【考点6】软件工程的原则

软件工程的原则:抽象,信息隐蔽,模块化,局部化,确定性,一致性,完备性,可验证性(详细见教材第46页)。

【考点7】需求分析概述

需求分析阶段的工作:需求获取,需求分析,编写需求规格说明书,需求评审。

需求分析方法有:

(1)结构化需求分析方法

①面向数据结构的Jackson方法(ISD);

②面向数据流的结构化分析方法(SA);

③面向数据结构的结构化数据系统开发方法(DSSD);

(2)面向对象的分析的方法(OOA)。

从需求分析建立的模型的特性来分:静态分析和动态分析。

【考点8】结构化方法和结构化分析方法

1、结构化方法包括结构化分析方法,结构化设计方法,结构化编程方法。

结构化方法中,软件功能分解属于总体设计阶段。

2、结构化分析方法的概念

结构化分析方法是面向数据流自顶而下逐步求精进行需求分析的方法。

结构化分析方法在软件需求分析阶段的应用。

3、结构化分析的常用工具

数据流图(DFD-Data Flow Diagram):是结构化分析方法中用于系统逻辑模型的一种工具。它以图形的方式描绘在系统中流动和处理的过程。

数据流图中四种基本的符号。

箭头:表示数据流,数据流是数据在系统中传播的路径。

圆或椭圆:表示加工,加工又称为数据处理,是对数据流进行某些操作或变换。

双横:表示数据存储(数据源)。数据存储又称为文件,指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。

框:源、潭。表示数据的源点或终点;它是软件系统外部环境中的实体,统称外部实体。

数据字典(DD):它是结构分析方法的核心,是用来描述系统中所用到的全部数据和文件的文档,作用是对DFD中出现的被命名的图形元素进行确切解释。

数据字典由以下4类元素组成

(1)数据流(2)数据流分量(3)数据存储(4)处理

判定树(决策树):是一种描述加工的图形工具,适合描述时候处理中具有多个判断,而且每个决策与若干条件有关。

判定表:与判定树类似,也是一种描述加工的图形工具。如果一个加工逻辑有多个条件、多个操作,并且在不同的条件组合下执行不同的操作,那么可以使用判定表来描述。【考点9】软件需求规格说明书

软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段得出的最主要的文档。软件需求规格说明书的特点:有正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性。其中最重要的是无歧义性。

【考点10】软件设计的基本概念

软件设计是确定系统的物理模型。

软件设计是开发阶段最重要的步骤,是将需求准确地转化为完整的软件产品或系统的唯一途径。

从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。(1)结构设计定义软件系统各主要部件之间的关系;

(2)数据设计将分析时创建的模型转化为数据结构的定义;

(3)接口设计是描述软件内部、软件和协作系统之间以及软件与人之间如何通信;(4)过程设计则是把系统结构部件转换为软件的过程性描述。

从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。

(1)概要设计将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式;

(2)详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。

【考点11】软件设计的基本原理

1、软件设计中应该遵循的基本原理和与软件设计有关的概念:

模块化:把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能。

抽象化:抽出事物的本质特性而暂时不考虑它们的细节。

信息隐藏和局部化:信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的,实现信息隐蔽依靠对象的封装。

模块独立性:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块的独立程度是评价设计好坏的重要度量标准。

【考点12】耦合性和内聚性

衡量软件的模块独立性是用耦合性和内聚性两个定性的度量标准。

耦合性:是对一个软件结构内不同模块之间互联程度的度量。耦合性的强弱取决于模块间接口的复杂程度。

内聚性:是一个模块内部各个元素间彼此结合的紧密程度的度量。

一个模块的内聚性越强则该模块的模块独立性越强。一个模块与其他模块的耦合性越强则该模块的模块独立性越弱。

在结构程序设计中,模块划分的原则是模块内具有高内聚度,模块间具有低耦合度。

耦合度由低到高:非直接耦合,数据耦合,标记耦合,控制耦合,外部耦合,公共耦合,内容耦合。

内聚性由强到弱:功能内聚,顺序内聚,通信内聚,过程内聚,时间内聚,逻辑内聚,偶然内聚。

【考点13】结构化设计方法

结构化分析方法是面向数据流自顶而下,逐步求精进行需求分析的方法,基本思想将软件设计成由相对独立,单一功能的模块组成的结构,与结构分析方法衔接使用,以数据流图为基础得到软件的模块结构,适用于变换型结构和事物型结构的目标系统。

1、概要设计的任务:(1)划分出组成系统的物理元素(2)设计软件的结构

2、概要设计的工具:

结构图(SC-Structure Chart)也称程序结构图,在结构图中,模块用一个矩形表示,箭头表示模块间的调用关系。可以用带注释的箭头表示模块调用过程中来回传递的信息。还可用带实心圆的箭头表示传递的是控制信息,空心圆箭心表示传递的是数据。

结构图的基本形式:基本形式、顺序形式、重复形式、选择形式。

结构图有四种模块类型:传入模块、传出模块、变换模块和协调模块。

程序结构图中的专业术语:

3、面向数据流的设计方法

任何软件系统都可以用数据流图表示,典型的数据流类型有两种:变换型和事务型。

变换型系统结构图由输入、中心变换、输出三部分组成。

4、设计的准则

(1)提高模块独立性。

(2)模块规模适中。

(3)深度,宽度,扇出和扇入适当。如果深度过大,则说明有的控制模块可能简单了,如果宽度过大,则说明系统的控制过于集中,扇出过大说明模块过分复杂,需要控制和协调过多的下级模块,应适当加中间层次,扇出过小可以把模块进一步分解成若干小模块,或合并到上级模块中,扇入越大则共享该模块的上级数目越多。好的软件设计结构通常顶层高扇出,中间扇出较少,底层高扇入。

(4)使模块的作用域在该模块的控制域内。

(5)减少模块的接口和界面的复杂性。

(6)设计成单入口,单出口的模块。

(7)设计功能可预测的模块。

详细设计常用的设计工具(工程设计工具):图形工具,表格工具和语言工具。

图形工具:

程序流程图:箭头表示控制流,方框表示加工步骤,菱形表示逻辑条件。

N-S图:有五种基本图形。

PAD图:问题分析图,有五种基本图型。

表格工具:判定表。

语言工具:PDL——过程设计语言(结构化的英语和伪码)。

【考点14】软件测试的目标和准则

软件测试的目标:发现程序中的错误。

软件测试的准则:

(1)所有测试都是应追溯到需求。

(2)严格执行测试计划,排除测试的随意性。

(3)充分注意测试中的群集表现。程序中存在错误的概率与该程序中已发现的错误数成正比。

(4)程序员应避免检查自己的程序。

(5)穷举测试不可能。穷举测试是把程序所有可能的执行路径都进行检查,即使小规模的程序的执行路径数也相当大,不可能穷尽,说明测试只能证明程序有错,不能证明程序中无错。

(6)妥善保存测试计划,测试用例出错统计和最终分析报告。

【考点15】软件测试方法

是否需要执行被测软件的角度分为静态测试和动态测试;按功能分为白盒测试和黑盒测试

1、静态测试和动态测试

静态测试包括代码检查、静态结构分析、代码质量度量。不实际运行软件,主要通过人工进行。

动态测试是通过运行软件来检验软件中的动态行为和运行结果的正确性。动态测试的关键是使用设计高效、合理的测试用例。测试用例就是为测试设计的数据,由测试输入数据(输入值集)和预期的输出结果(输出值集)两部份组成。测试用例的设计方法一般分为两类:黑盒测试方法和白盒测试方法。

2、白盒测试和黑盒测试

(1)白盒测试

白盒测试也称为结构测试或逻辑测试,是把程序看成装在一只透明的白盒子里,测试者完全了解程序的结构和处理过程。它根据程序的内部逻辑来设计测试用例,检查程序中的逻辑通路是否都按预定的要求正确地工作。

白盒测试的基本原则:

(1)保证所测模块中每一独立路径至少执行一次。

(2)保证所测模块所有判断的每一分支至少执行一次。

(3)保证所测模块每一循环都在边界条件和一般条件下至少各执行一次。

(4)验证所有内部数据结构的有效性。

(5)按照白盒测试的基本原则,“白盒”法是穷举路径测试。

白盒测试的方法:逻辑覆盖,基本路经测试。

(2)黑盒测试

黑盒测试也称功能测试或数据驱动测试,是把程序看成一只黑盒子,测试者完全不了解,或不考虑程序的结构和处理过程。它根据规格说明书的功能来设计测试用例,检查程序的功能是否符合规格说明的要求。

黑盒测试的方法:等价划分法,边界值分析法,错误推测法。

【考点16】软件测试的实施

软件测试过程分4个步骤,即单元测试、集成测试、验收测试(确认测试)和系统测试。

单元测试是对软件设计的最小单位——模块进行正确性检验的测试,单元测试的根据是源程序和详细设计说明书,单元测试的技术可以采用静态分析和动态测试。

单元测试期间对模块进行的测试:模块接口,局部数据结构,重要的执行通路,出错处理通路,边界条件。

驱动模块相当于被测模块的主程序,它接收测试数据,并传给所测模块,输出实际测试结果

桩模块通常用于代替被测模块调用的其他模块,其作用仅做少量的数据操作,是一个模拟子程序。

集成测试是测试和组装软件的系统化技术,主要目的是发现与接口有关的错误,集成测试的依据是概要设计说明书。

集成测试的方法:非增量方式组装和增量方法组装。

增量方式包括自顶而下的增量方式,自底而上的增量方式和混合增量方式。

确认测试的任务是验证软件的功能和性能,确认测试的实施首先运用黑盒测试方法,对软件进行有效性测试,即验证被测软件是否满足需求规格说明确认的标准。

检查软件产品是否符合需求定义的过程是:确认测试。

系统测试是通过测试确认的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、支撑软件、数据和人员等其他系统元素组合在一起,在实际运行(使用)环境下对计算机系统进行一系列的集成测试和确认测试。

系统测试的具体实施一般包括:功能测试、性能测试、操作测试、配置测试、外部接口测试、安全性测试等。

【考点17】程序调试

在对程序进行了成功的测试之后将进入程序调试(通常称Debug,即排错)。

程序的调试任务是诊断和改正程序中的错误。

程序调试和软件测试的区别:

(1)软件测试是尽可能多地发现软件中的错误,而程序调试先要发现软件的错误,然后借助于一定的调试工具去执行找出软件错误的具体位置。

(2)软件测试贯穿整个软件生命期,调试主要在开发阶段。

程序调试的基本步骤:

(1)错误定位。从错误的外部表现形式入手,研究有关部分的程序,确定程序中出错位置,找出错误的内在原因;

(2)修改设计和代码,以排除错误;

(3)进行回归测试,防止引进新的错误。

软件调试可分为静态调试和动态调试。静态调试主要是指通过人的思维来分析源程序代码和排错,是主要的设计手段,而动态调试是辅助静态调试的。

主要的调试方法有:

(1)强行排错法;(2)回溯法;(3)原因排除法,包括演绎法,归纳法和二分法。

计算机公共基础(第三章)

第3章软件工程基础 经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是软件生命周期、软件设计的基本原理,软件测试的目的、软件调试的基本概念,读者应对此部分进行重点学习。 详细重点学习知识点: 1.软件的概念、软件生命周期的概念及各阶段所包含的活动 2.概要设计与详细设计的概念、模块独立性及其度量的标准、详细设计常用的工具3.软件测试的目的、软件测试的4个步骤、 4.软件调试的任务 3.1软件工程基本概念 考点1 软件定义与软件特点 考试链接: 考点1在笔试考试中,是一个经常考查的内容,考核的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件的定义,特点及其分类。 软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。数据是使程序能正常操纵信息的数据结构。文档是与程序的开发、维护和使用有关的图文资料。可见,软件由两部分组成: (1)机器可执行的程序和数据; (2)机器不可执行的,与软件开发、运行、维护、使用等有关的文档。 软件的特点: (1)软件是逻辑实体,而不是物理实体,具有抽象性; (2)没有明显的制作过程,可进行大量的复制; (3)使用期间不存在磨损、老化问题; (4)软件的开发、运行对计算机系统具有依赖性; (5)软件复杂性高,成本昂贵; (6)软件开发涉及诸多社会因素。 根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。 小提示:应用软件是为解决特定领域的应用而开发的软件;系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件;支撑软件是介于两者之间,协助用户开发软件的工具性软件。 考点2 软件工程过程与软件生命周期 考试链接: 考点2在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件生命周期的定义,主要活动阶段及其任务。 软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。一般包括

经典题目: 第3章 软件工程基础

第3章软件工程基础经典题(8%-10%) 一、选择题 1、下列叙述中正确的是______。(2005,9) A)程序设计就是编制程序 B)程序的测试必须由程序员自己去完成 C)程序经调试改错后还应进行再测试 D)程序经调试改错后不必进行再测试 2、下列叙述中正确的是______。(2005,9) A)软件工程只是解决软件项目的管理问题 B)软件工程主要解决软件产品的生产率问题 C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D)软件工程只是解决软件开发中的技术问题 3、在软件设计中,不属于过程设计工具的是___。(2005,9)A)PDL(过程设计语言)B)PAD图 C)N-S图D)DFD图 4、下列叙述中正确的是______。(2005,9) A)软件交付使用后需要进行维护 B)软件一旦交付使用就不需要再进行维护 C)软件交付使用后其生命周期就结束 D)软件维护是指修复程序中被破坏的指令 5、两个或两个以上模块之间关联的紧密程度称为___。(2006,4)A)耦合度B)内聚度C)复杂度D)数据传输特性 6、下列叙述中正确的是______。(2006,4) A)软件测试应该由程序开发者来完成 B)程序经调试后一般不需要再测试 C)软件维护只包括对程序代码的维护 D)以上3种说法都不对 7、从工程管理角度,软件设计一般分为两步完成,分别是______。(2006,9) A)概要设计和详细设计 B)数据设计与接口设计 ----------专业最好文档,专业为你服务,急你所急,供你所需-------------

C)软件结构设计与数据设计 D)过程设计与数据设计 8、下列选项中不属于软件生命周期开发阶段任务的是______。(2006,9) A)软件测试B)概要设计 C)软件维护D)详细设计 9、下列叙述中正确的是______。 A)软件测试的主要目的是发现程序中的错误 B)软件测试的主要目的是确定程序中错误的位置 C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作 D)软件测试是证明软件没有错 10、软件是指______。 A)程序B)程序和文档 C)算法加数据结构D)程序、数据与相关文档 11、软件调试的目的是______。 A)发现错误B)更正错误 C)改善软件性能D)验证软件的正确性 12、下列描述中正确的是______。(2005,4) A)程序就是软件 B)软件开发不受计算机系统的限制 C)软件既是逻辑实体,又是物理实体 D)软件是程序、数据与相关文档的集合 13、软件生命周期是指______。 A)软件系统投入运行到软件系统被淘汰 B)软件系统开始研制到软件系统投入试运行 C)软件系统投入试运行到软件系统被淘汰 D)软件系统开始研制到软件系统被淘汰 14、软件工程与计算机科学性质不同,软件工程着重于______。A)理论研究B)建造软件系统 C)原理和理论D)原理探寻 15、软件系统生命周期的第一个阶段是______。 A)软件分析阶段B)软件设计阶段 C)软件运行阶段D)软件维护阶段 ----------专业最好文档,专业为你服务,急你所急,供你所需-------------

《软件工程基础》习题集

《软件工程基础》习题集 第一章概述 1.什么是软件危机,它有哪些典型表现? 2.简述产生软件危机的原因和解决的思路。 3.什么是软件工程?它有哪些本质特性? 4.软件工程是如何用来消除软件危机的? 5.假设你是某软件开发企业的CEO,当你把教材P.4的图1.1给手下的软件工程师们看,同时告诉他们应及早发现并改正错误的重要性时,有人不以为然,认为要求在错误进入软件前就发现并清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么又如何能够在设计阶段就发现并清除呢?”那你应该如何说服? 6.简述软件的定义。 7.软件工程的目的是什么? 8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支? 9.简述软件工程的基本原理。 10.软件工程的基本开发原则有哪些? 11.构成软件工程的基本元素有哪些? 12.什么是软件过程?它与软件工程方法学有何关系? 13.什么是软件生命周期?什么是软件生命周期模型? 14.简述软件生命周期方法学的途径,以及划分阶段步骤的目的和实质。15.试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明它们各自的适用围。

第二章可行性研究 1.在软件开发的早期阶段,为什么要进行可行性研究?其目的和任务各是什么?2.应该从哪些方面研究目标系统的可行性? 3.可行性研究有哪些工作步骤? 4.简述系统流程图在可行性研究中的作用。 5.简述数据流图在可行性研究中的作用和用途。 6.简单描述数据字典但容和定义数据的方法。 7.说明软件计划的容和目标。 8.什么是软件围?定义软件围需要哪些信息? 9.简述软件开发环境资源的三个层次。 10.软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义? 11.软件计划中,安排软件开发进度主要可以用哪些工具?都有哪些优缺点?12.主要的成本估计技术有哪些?其依据的主要是什么? 13.为什么说成本估计是不可能精准的? 14.进行成本/效益分析的方法主要有哪些? 15.软件计划的主要容有哪些? 16.如何对制定完成的软件计划进行复审?为什么要复审? 17.为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统。如果是存款,系统记录存款人的、地址、存款类型、存款日期、存款数量和利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。 请写出问题定义并分析此系统的可行性。

2016年全国计算机二级考试——第三章 软件工程基础

1.软件是指() A.程序 B.程序和文档 C.算法加数据结构 D.程序、数据与相关文档的完整集合[解析]软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文资料。本题为D 2.下列描述中正确的是 A.程序就是软件 B.软件开发不受计算机系统的限制 C.软件既是逻辑实体,又是物理实体 D.软件是程序、数据和相关文档的集合 [解析]软件是与计算机操作相关的计算机程序、规程、规则,以及可能有的文件、文档及数据;软件开发要受到计算机系统的限制;软件是一个逻辑实体,不是物理实体,软件具有抽象性。因此本题为D 3.按软件的功能划分,需求分析工具软件属于 A.应用软件 B.系统软件 C.支撑软件 D.专用软件 [解析]p65 软件设计基本原理:模块化、模块独立性、抽象、信息隐蔽。所以本题为C 4.由于软件危机的出现,20实际70年代人们提出了“______”的思想和方法。 [解析]p44 结构化程序设计 5.______是应用于计算机定义、开发和维护的一整套方法、工具、文档、实践标准和工序。[解析]软件工程 6.下面软件工程要素中哪一项提供软件工程项目的软件开发的各个环节的控制、管理的支持? A.方法 B.工具 C.过程 D.技术 [解析]软件工程包含3个要素:方法、工具、过程。方法是完成软件开发各项任务的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的哥哥环节的控制、管理。本题选C 7.下面不属于软件工程的三个要素的是() A.工具 B.过程 C.方法 D.环境 [解析]本题选D 8.软件工程研究的主要内容包括:______和软件工程管理。 [解析]软件开发技术 9.下列哪一项不是软件设计的基本原理? A.抽象 B.完备性 C.模块化 D.信息隐蔽 [解析] p65 软件设计基本原理:模块化、模块独立性、抽象、信息隐蔽。所以本题为C 10.下面哪一项不符合软件工程的原则? A.把程序分解成独立的模块 B.采用封装技术把程序模块的实现细节隐藏起来 C.采用全局变量传递的方式,以简化模块之间的通信接口和通信量 D.程序的内外部接口保持一致,系统规格说明与系统行为保持一致 [解析]本题选C 11.软件工程的核心思想是把软件产品当作一个______产品来处理。 [解析]工程 12.把输入转化为输出的一组相关的资源和活动是______。 [解析]软件工程过程 13.在软件开发中,需求分析阶段产生的主要文档是() A.可行性分析报告 B.软件需求规格说明书 C.概要设计说明书 D.集成测试计划

软件工程基础习题集答案-2

软件工程基础习题集答案-2

《软件工程基础》习题集答案 第一章概述 1.什么是软件危机,它有哪些典型表现? 所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。 软件危机的典型表现主要有: a. 开发成本和进度不能准确估计 b. 开发出来的软件不能满足用户的要求 c. 软件的可维护性差 d. 软件质量不可靠 e. 软件成本在系统中的比重逐年上升 f. 软件开发生产率的提高速度不够 2.简述产生软件危机的原因和解决的思路。 软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。 解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。 3.什么是软件工程?它有哪些本质特性? 软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。 其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。 4.软件工程是如何用来消除软件危机的? 软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。 6.简述软件的定义。 软件=程序 + 数据 + 文档 7.软件工程的目的是什么? 为高质量的软件开发提供一个科学的体系框架。 8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支? 软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。 软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并由于其涉及学科内容的极为广泛,而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术。 9.简述软件工程的基本原理。 软件工程有7条基本原理: 1.严格按照软件生命周期计划进行管理 2.坚持进行阶段评审 3.实行严格的产品控制 4.采用先进的程序设计技术 5.结果应能清楚的审查 6.开发小组成员应少而精 7.承认不断改进软件工程实践的必要性 10.软件工程的基本开发原则有哪些? 软件工程的基本开发原则有:

第3章 软件工程基础(习题答案)

第3章习题答案 3.1 什么是软件危机?为什么会出现软件危机? 解答: 软件危机是指落后的软件生产方式无法满足开发复杂软件的需求,从而导致软件开发与维护过程中出现一系列严重的问题,主要表现在:(1)软件开发费用和进度估计不准。(2)软件的正确性和可靠性难以保证。(3)文档不全,导致软件维护难度加大。 总之,可将软件危机归结为:成本、质量和生产率等问题。 到了20世纪50年代末和60年代初,随着计算机应用的普及,软件的规模和复杂度提高了,“家庭作坊”式的方法已经无法适应软件的开发。软件开发的周期变长、费用上涨,导致软件的生产效率下降、目标软件的正确性难于保证,即出现了“软件危机”。 3.2 软件工程的概念是什么?软件工程的目标和原则是什么? 解答: 软件工程是指导计算机软件开发和维护的一门学科。软件工程从管理和技术两个方面,研究如何更好地开发和维护计算机软件,内容主要包括:软件开发技术和软件工程管理。 软件工程的目标是在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。 软件工程的原则,在软件开发各阶段,应遵循一些基本原则,包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。 3.3 什么是软件的生命周期?瀑布模型把软件生命周期划分成几个时期、几个阶段?每一个阶段的任务是什么?每个阶段产生的文档是什么? 解答: 软件从提出、开发、使用到退役的整个过程称为软件生命周期,软件生命周期可划分为

3.4 什么是结构化方法?结构化分析、结构化设计、结构化程序设计分别用在软件生命周期的哪一个阶段? 解答: 结构化开发方法是现有软件开发方法中最成熟、应用最广泛的方法。结构化方法最早起源于结构化程序设计。目前由结构化分析方法(SA)、结构化设计方法(SD)及结构化程序设计方法(SP)组成。 结构化分析方法主要应用于需求分析阶段,结构化设计方法主要应用于软件概要设计阶段,结构化程序设计方法主要应用于详细设计和编码阶段。 3.5软件需求分析阶段要解决的问题是什么?采用什么分析技术?需求分析常用工具有哪些?这些工具用于表述什么? 解答: 需求分析的任务是通过与用户广泛的交流,准确定义未来系统的目标,确定为了满足用户的需求系统必须做什么,用需求规格说明书规范地、准确地表达用户的需求。 需求分析要应得到如下内容:功能需求、性能需求、环境需求、界面需求、用户或人的因素、文档要求、数据需求、资源需求、安全保密要求、软件成本消耗与开发进度需求、质量保证。 需求分析的方法很多,如功能分析法、结构化分析法、信息建模法以及面向对象分析法等。最常用的是基于功能分析的结构化分析法。 结构化分析法常用工具有数据流图、数据字典、结构化英语、判定表和判定树等工具。 数据流图从数据传递和加工的角度,描述系统的数据从输入到输出的移动变换过程。数据字典用于对数据流图中包含的全体数据元素进行定义和说明。结构化语言用于描述数据流图中“加工”的处理步骤。判定表也称决策表,可用于处理结构化语言不易表述的复杂组合条件,是描述多条件、多条目动作的形式化工具。判定树是也称决策树,它的意义与判定表一样,表述比判定表更加直观。 3.6 数据流图有哪两类?分别表示什么意义? 解答: 根据“加工”的特征,可以将局部数据流图划分成两种类型,即变换型和事务型。 变换型数据流的特点是:“加工”是按照时间顺序对数据流进行处理的。事务型数据流的特点是:接受一项事务,根据事务处理的特点和性质,选择一个适当的处理单元,然后分别处理分别给出结果。 3.7 如何从数据流图导出软件结构图? 解答: 首先区分局部数据流图的类型,然后按照变换型和事务型数据流图的特点分别转换成对应的软件结构图,最后合成一个整体。

第一章 软件工程概述习题及答案

第一章软件工程概述 一. 填空题 1. 软件的发展过程 , , , . 2. 基于软件的工作方式,软件可以划分为 , , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境 . 4. 在计算机系统中,软件是 , 而硬件是 . 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,, . 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤 , , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型 , , , , , . 14. 软件工程面临的问题有 , , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和 . 16.基于软件的功能划分可以把软件划分为 , ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原则: , ,和 , 。 20.原型模型是从需求分析开始。软件开发者和用户在一起定义,说明需求,并规划出定义的区域。然后快速设计软件中对用户/客户可见部分的表示。快速设计导致了原形的建造,原形由用户/客户评估,并进一步求精。

第三章 软件工程基础

第三章软件工程基础 3.1软件工程基本概念 软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。 软件由两部分组成: (1)机器可执行的程序和数据; (2)机器不可执行的,与软件开发、运行、维护、使用等有关的文档。 软件的特点: (1)软件是逻辑实体,而不是物理实体,具有抽象性; (2)没有明显的制作过程,可进行大量的复制; (3)使用期间不存在磨损、老化问题; (4)软件的开发、运行对计算机系统具有依赖性; (5)软件复杂性高,成本昂贵; (6)软件开发涉及诸多社会因素。 根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。 应用软件是为解决特定领域的应用而开发的软件; 系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件; 支撑软件是介于两者之间,协助用户开发软件的工具性软件。 软件危机主要表现在成本、质量、生产率等问题。 软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。 软件工程包括3个要素:方法、工具和过程。 方法是完成软件公曾项目的技术手段 工具支持软件的开发、管理、文档生成 过程支撑捐建开发的各个环节的控制、管理 软件工程过程是把软件转化为输出的一组彼此相关的资源和活动,包含4种基本活动: (1)P——软件规格说明; (2)D——软件开发; (3)C——软件确认; (4)A——软件演进。 软件工程过程与软件生命周期 软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。一般包括可行性分析研究与需求分析、设计、实现、测试、交付使用以及维护等活动, 还可以将软件生命周期分为软件定义、软件开发和软件运行维护3个阶段。 生命周期的主要活动阶段是:可行性研究与计划制定、需求分析、软件设计、软件实施、软件测试及运行与维护。3.2结构化设计方法 在程序结构中,各模块的内聚性越强,则耦合性越弱。软件设计应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。 软件设计的基本原理 (1)抽象:软件设计中考虑模块化解决方案时,可以定出多个抽象级别。抽象的层次从概要设计到详细设计逐步降低。 (2)模块化:模块是指把一个待开发的软件分解成若干小的简单的部分。模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。 (3)信息隐蔽:信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。 (4)模块独立性:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。内聚性是信息隐蔽和局部化概念的自然扩展。一个模块的内聚性越强则该模块的模块独立性越强。一个模块与其他模块的耦合性越强则该模块的模块独立性越弱。

软件工程基础(复习题及答案)

复习题 一、判断题(每题2分,共30分) 1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析 活动。(对) 2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。(错) 3.JAVA语言编译器是一个CASE工具。(对)。 4.软件是指用程序设计语言(如PASCAL,C,VISUALBASIC等)编写的程序,软件开发实际上就是编写程序代码。(错) 5.软件模块之间的耦合性越弱越好。(对) 6.数据库设计说明书是一个软件配置项(对) 7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。(错) 8.过程描述语言可以用于描述软件的系统结构。(错) 9.如果通过软件测试没有发现错误,则说明软件是正确的。(错) 10.快速原型模型可以有效地适应用户需求的动态变化。(对) 11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。(对) 12.集成测试主要由用户来完成。(错) 13.确认测试计划应该在可行性研究阶段制定(错) 14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(错) 15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(对) 16.在可行性研究中最难决断和最关键的问题是经济可行性。(╳) 17.耦合是指一个模块内各个元素彼此结合的紧密程度。(╳) 18.一笔交易、一个动作、甚至操作人员按一个按钮都可以看做是一次事物。(√) 19.概要设计阶段完成的主要文档是概要设计说明书。(√) 20.过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。(╳)

浙大软件工程基础离线作业

浙江大学远程教育学院 《软件工程基础》课程作业 姓名:王海清学号:714073012001 年级:14秋学习中心:厦门 所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。 软件危机的典型表现主要有: a. 开发成本和进度不能准确估计 b. 开发出来的软件不能满足用户的要求 c. 软件的可维护性差 d. 软件质量不可靠 e. 软件成本在系统中的比重逐年上升 f. 软件开发生产率的提高速度不够 2.简述产生软件危机的原因和解决的思路。 软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。

解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。 3.什么是软件工程?它有哪些本质特性? 软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。 其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。 4.软件工程是如何用来消除软件危机的? 软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。 6.简述软件的定义。 软件=程序 + 数据 + 文档 7.软件工程的目的是什么? 为高质量的软件开发提供一个科学的体系框架。 8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支? 软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。

access公共基础第三章

第三章软件工程基础 3.5 例题详解 一、选择题 【例1】对软件的特点,下面描述正确的是_______。(考点1) A)软件是一种物理实体 B)软件在运行使用期间不存在老化问题 C)软件开发、运行对计算机没有依赖性,不受计算机系统的限制 D)软件的生产有一个明显的制作过程 解析:软件在运行期间不会因为介质的磨损而老化,只可能因为适应硬件环境以及需求变化进行修改而引入错误,导致失效率升高从而软件退化,所以本题正确答案为B)。 答案:B) 【例2】以下哪项是软件生命周期的主要活动阶段?_______(考点2) A)需求分析B)软件开发 C)软件确认D)软件演进 解析:B)、C)、D)项都是软件工程过程的基本活动,还有一个是软件规格说明。 答案:A) 【例3】从技术观点看,软件设计包括_______。(考点3) A)结构设计、数据设计、接口设计、程序设计 B)结构设计、数据设计、接口设计、过程设计 C)结构设计、数据设计、文档设计、过程设计 D)结构设计、数据设计、文档设计、程序设计 解析:技术角度,要进行结构、接口、数据、过程的设计。结构设计是定义系统各部件关系,数据设计是根据分析模型转化数据结构,接口设计是描述如何通信,过程设计是把系统结构部件转化为软件的过程性描述。 答案:B) 【例4】以下哪个是软件测试的目的?_______(考点5) A)证明程序没有错误B)演示程序的正确性 C)发现程序中的错误D)改正程序中的错误 解析:关于测试目的的基本知识,IEEE的定义是:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求,或是弄清预期结果与实际结果之间的差别,所以正确答案是C)。 答案:C) 【例5】以下哪个测试要对接口测试?_______。(考点6) A)单元测试B)集成测试 C)验收测试D)系统测试 解析:检查对测试实施各阶段的了解,集成测试时要进行接口测试、全局数据结构测试、边界条件测试和非法输入的测试等,所以正确答案是B)。 答案:B) 【例6】程序调试的主要任务是_______。(考点7) A)检查错误B)改正错误 C)发现错误D)以上都不是 解析:程序的调试任务是诊断和改正程序中的错误。调试主要在开发阶段进行。 答案:B)

软件工程基础作业

软件工程基础》作业 第一章概述 1.什么是软件危机,它有哪些典型表现?2.简述产生软件危机的原因和解决的思路。 3.什么是软件工程?它有哪些本质特性? 4.软件工程是如何用来消除软件危机的? 5?假设你是某软件开发企业的CEO,当你把教材P.4的图1.1给手下的软件工程师们看,同时告诉他们应及早发现并改正错误的重要性时,有人不以为然,认为要求在错误进入软件前就发现并清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么又如何能够在设计阶段就发现并清除呢?” 那你应该如何说服? 6.简述软件的定义。 7.软件工程的目的是什么?8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支? 9.简述软件工程的基本原理。 10.软件工程的基本开发原则有哪些?11.构成软件工程的基本元素有哪些?12.什么是软件过程?它与软件工程方法学有何关系?13.什么是软件生命周期?什么是软件生命周期模型?14.简述软件生命周期方法学的途径,以及划分阶段步骤的目的和实质。15.试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明它们各自的适用范围。

第二章可行性研究 1.在软件开发的早期阶段,为什么要进行可行性研究?其目的和任务各是什么?2.应该从哪些方面研究目标系统的可行性?3.可行性研究有哪些工作步骤?4.简述系统流程图在可行性研究中的作用。5.简述数据流图在可行性研究中的作用和用途。6.简单描述数据字典但内容和定义数据的方法。 7.说明软件计划的内容和目标。8.什么是软件范围?定义软件范围需要哪些信息?9.简述软件开发环境资源的三个层次。 10.软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义?11.软件计划中,安排软件开发进度主要可以用哪些工具?都有哪些优缺点?12.主要的成本估计技术有哪些?其依据的主要是什么?13.为什么说成本估计是不可能精准的? 14.进行成本/效益分析的方法主要有哪些?15.软件计划的主要内容有哪些?16.如何对制定完成的软件计划进行复审?为什么要复审?17.为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统。如果是存款,系统记录存款人的姓名、地址、存款类型、存款日期、存款数量和利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。 请写出问题定义并分析此系统的可行性。

软基第三章 软件工程-参考答案

第三章软件工程 一、选择题 1. B 2. C 3. A 4. B 5. A 6. D 7. C 8. B 9. C 10. B 11. A 12. C 13. B 14. D 15. D 16. C 17. D 18. B 19. A 20. C 21. D 22. D 23. D 24. C 25. B 26. A 27. B 28. D 29. C 30. C 二、简答题 1. 什么是软件危机?软件危机表现在哪些方面? 答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。 软件危机的表现:对软件开发成本和进度的估计常常很不准确;软件产品不符合用户的实际需要;软件开发生产率提高的速度远远不能满足客观需要;软件产品的质量差;软件的可维护性差;软件文档资料通常既不完整也不合格;软件的价格昂贵,软件成本在计算机系统总成本中所占的比例逐年上升。 2. 产生软件危机的原因是什么?如何克服软件危机? 答:产生软件危机的原因:用户需求不明确;缺乏正确的理论指导;软件规模越来越大;软件复杂度越来越高。 克服软件危机的措施:软件开发不再是个体人员的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合共同完成的项目;推广和使用在软件开发实践中总结出来的成功的技术和方法,并研究更有效的技术和方法;开发和使用更好的软件工具。总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 3. 什么是软件工程?什么是软件工程学? 答:软件工程是:(1)将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护过程,即将工程化应用到软件上;(2)对(1)中所述的方法的研究。 软件工程学是研究软件开发工程模型、设计方法、工程开发技术和工具,指导软件生产和管理的一门综合性的应用科学。 4. 什么是软件生存周期?软件生存周期划分为哪些时期和阶段? 答:一个软件项目从问题提出开始,到软件产品废弃不用为止,称为软件生存周期。 软件生存周期包括三个时期:软件定义、软件开发和软件维护。软件定义时期划分为问题定义、可行性研究和需求分析三个阶段。软件开发时期划分为总体设计,详细设计,编码和测试四个阶段。 5. 瀑布模型的主要缺点是什么? 答:(1)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,中间提出的变更要求很难得到响应,增加了开发风险。(2)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重后果。 6. 快速原型模型的基本方法是什么? 答:快速原型模型的方法是:首先快速建立一个能反映用户主要需求的原型系统,即“样品”,让用户运行和试用原型系统,了解未来目标系统的概貌。用户通过试用原型系统,提出修改意见,开发者快速修改原型系统,然后再通过多次这样的反复,开发人员就可以将用户的真正需求确定下来,并据此书写需求规格说明书。

第一章软件工程概述习题及答案

第一章软件工程概述习题 及答案 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

第一章软件工程概述 一. 填空题 1. 软件的发展过程 , , , . 2. 基于软件的工作方式,软件可以划分为 , , , . 3. 在软件发展的第四阶段计算机体系结构迅速地从环境转变为环境 . 4. 在计算机系统中,软件是 , 而硬件是 . 5. 软件危机是在软件发展第阶段末期,随着第代计算机和诞而产生。 6. 文档一般可分为面向的文档,面向的文档,面向的文档和面向的文档。 7. 软件生存期若分为三个大的阶段,, . 8. 它是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。 9. 在软件的生存周期开发阶段要经三个步骤 , , 。 10. 瀑布模型是以文档为驱动、适合于的软件项目的模型。 11. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内为,, 和四个步骤。 12. 软件开发的螺旋模型综合了瀑布模型和演化模型的优点,还增加了____。采用螺旋模型时,软件开发沿着螺线自内向外旋转,每转一圈都要对____ 进行识别和分析,并采取相应的对策。螺旋线第一圈的开始点可能是一个____ 。从第二圈开始,一个新产品开发项目开始了,新产品的演化沿着螺旋线进行若干次迭代,一直运转到软件生命期结束。 13. 软件开发模型 , , , , , . 14. 软件工程面临的问题有 , , , . 15. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和 . 16.基于软件的功能划分可以把软件划分为 , ,和。 17.计算机系统发展的早期所形成的一系列错误概念和做法,已经严重地阻碍了计算机软件的开发,甚至有的根本无法维护,只能提前报废,造成大量人力、物力的浪费,从而导致软件危机。为了研究解决的方法,计算机科学技术领域中的一门新兴的学科逐步形成了,这就是。 18.软件工程是指导的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。 19.为了开发出低成本高质量的软件产品,软件工程学应遵守以下基本原 则: , ,和 , 。

软件工程试题与答案 (3)

一、填空题(每空1分,共20分) 1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__ 测试________、运行与维护阶段。 2.按软件的功能进行划分,软件可以划分为系统软件、支撑软件 和应用软件。 3.可行性研究主要集中在以下四个方面经济可行性、技术可行 性、法律可行性和抉择。 4.用户界面的可使用性是用户界面设计最重要的也是最基本的目标。 5.常见的软件概要设计方法有3大类:以数据流图为基础构造模块结构的___结构化设计 方法_________,以数据结构为基础构造模块的__jackson方法__________,以对象、类、继承和通信为基础的__面向对象设计方法__________。 6.__数据流图________和__数据字典___共同构成系统的逻辑模型。 7.软件测试的方法有__分析方法________和___非分析方法_______(即黑盒法)。 8.单元测试一般以___白盒_____________测试为主,___黑盒______测试为辅。 9.成本估计方法主要有__自底向上估计________、_自顶向下估计_________和算法模型估 计三种类型。 二、单项选择题(每小题2分,共10分) 1.下列哪个阶段不属于软件生存周期的三大阶段( C )。 A、计划阶段 B、开发阶段 C、编码阶段 D、维护阶段 2.需求分析是(A )。 A、软件开发工作的基础 B、软件生存周期的开始 C、由系统分析员单独完成的 D、由用户自己单独完成的 3.原型化方法是软件开发中一类常用的方法,它与结构化方法相比较,更需要(B )。 A、明确的需求定义 B、完整的生命周期 C、较长的开发时间 D、熟练的开发人员

《软件工程基础》习题集-)

《软件工程基础》习题集-()

————————————————————————————————作者:————————————————————————————————日期: 2

《软件工程基础》习题集 第一章概述 1.什么是软件危机,它有哪些典型表现? 2.简述产生软件危机的原因和解决的思路。 3.什么是软件工程?它有哪些本质特性? 4.软件工程是如何用来消除软件危机的? 5.假设你是某软件开发企业的CEO,当你把教材P.4的图1.1给手下的软件工程师们看,同时告诉他们应及早发现并改正错误的重要性时,有人不以为然,认为要求在错误进入软件前就发现并清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么又如何能够在设计阶段就发现并清除呢?”那你应该如何说服? 6.简述软件的定义。 7.软件工程的目的是什么? 8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支? 9.简述软件工程的基本原理。 10.软件工程的基本开发原则有哪些? 11.构成软件工程的基本元素有哪些? 12.什么是软件过程?它与软件工程方法学有何关系? 13.什么是软件生命周期?什么是软件生命周期模型? 14.简述软件生命周期方法学的途径,以及划分阶段步骤的目的和实质。 15.试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明它们各自的适用范围。

第二章可行性研究 1.在软件开发的早期阶段,为什么要进行可行性研究?其目的和任务各是什么? 2.应该从哪些方面研究目标系统的可行性? 3.可行性研究有哪些工作步骤? 4.简述系统流程图在可行性研究中的作用。 5.简述数据流图在可行性研究中的作用和用途。 6.简单描述数据字典但内容和定义数据的方法。 7.说明软件计划的内容和目标。 8.什么是软件范围?定义软件范围需要哪些信息? 9.简述软件开发环境资源的三个层次。 10.软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义? 11.软件计划中,安排软件开发进度主要可以用哪些工具?都有哪些优缺点? 12.主要的成本估计技术有哪些?其依据的主要是什么? 13.为什么说成本估计是不可能精准的? 14.进行成本/效益分析的方法主要有哪些? 15.软件计划的主要内容有哪些? 16.如何对制定完成的软件计划进行复审?为什么要复审? 17.为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统。如果是存款,系统记录存款人的姓名、地址、存款类型、存款日期、存款数量和利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。 请写出问题定义并分析此系统的可行性。

第三章 软件工程基础

3.1 软件工程基本概念 1、软件的相关概念 计算机软件是包括程序、数据及相关文档的完整集合。 软件的特点包括:1)软件是一种逻辑实体,而不是物理实体,具有抽象性(注释1);2)软件的生产与硬件不同,它没有明显的制作过程;3)软件在运行、使用期间不存在磨损、老化问题;4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;5)软件复杂性高,成本昂贵;6)软件开发涉及诸多的社会因素(注释2)。 2、软件危机与软件工程 软件工程源自软件危机。所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。具体的说,在软件开发和维护过程中,软件危机主要表现在: 1)软件需求的增长得不到满足。用户对系统不满意的情况经常发生。 2)软件开发成本和进度无法控制。开发成本超出预算,开发周期大大超过规定日期的情况经常发生。 3)软件质量难以保证。 4)软件不可维护或维护程度非常低。 5)软件的成本不断提高。 6)软件开发生产率的提高跟不上硬件的发展和应用需求的增长。 总之,可以将软件危机可以归结为成本、质量、生产率等问题。 软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。软件工程的目的就是要建造一个优良的软件系统,它所包含的内容概括为以下两点: 1)软件开发技术,主要有软件开发方法学、软件工具、软件工程环境。 2)软件工程管理,主要有软件管理、软件工程经济学。 软件工程的主要思想是将工程化原则运用到软件开发过程,它包括3个要素:方法、工具和过程。方法是完成软件工程项目的技术手段;工具是支持软件的开发、管理、文档生成;过程支持软件开发的各个 环节的控制、管理。 软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。 3、软件生命周期 软件生命周期:软件产品从提出、实现、使用维护到停止使用退役的过程。

考点 3 软件工程基础

考点 3 软件工程基础 (1) 【答案】A) 【解析】软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件,因此B)、C)、D)都是系统软件,只有A)是应用软件。 (2) 【答案】C) 【解析】编译程序、操作系统、汇编程序都属于系统软件,只有教务管理系统才是应用软件,因此本题答案为C)。 (3) 【答案】A) 【解析】软件危机主要表现在:软件需求的增长得不到满足;软件开发成本和进度无法控制;软件质量难以保证;软件不可维护或维护程度非常低;软件的成本不断提高;软件开发生产率的提高赶不上硬件的发展和应用需求的增长。因此本题答案为A)。 (4) 【答案】A) 【解析】通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期,因此本题答案为A)。 (5) 【答案】A) 【解析】软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。主要活动包括:可行性研究与计划、需求分析、软件设计、软件实现、软件测试、运行和维护,因此本题答案为A)。 (6) 【答案】B) 【解析】A)错误,可行性分析阶段产生可行性分析报告。C)错误,总体设计阶段产生概要设计说明书。D)错误,集成测试计划是在概要设计阶段编写的文档。B)正确,需求规格说明书是需求分析阶段产生的主要文档,是后续工作如设计、编码等需要的重要参考文档。 (7) 【答案】D) 【解析】需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面,因此本题答案为D)。 (8) 【答案】D) 【解析】需求分析阶段的工作包括:需求获取、需求分析、编写需求规格说明书、需求评审,因此本题答案为D)。

相关文档
最新文档