第 1 页(共 52 页)
软件工程串讲材料
第1章 绪论
▓主要内容
一、填空题、选择题
1. 软件工程是一门综合性交叉学科,计算机科学着重于理论和原理,软件工程是一门(工程性)学
科,着重于(建造一个软件系统)。
2. 准确地解决“软件系统必须做什么”是(需求分析)阶段的任务。 3. 概要设计主要是把各项功能需求转换成系统的(体系结构)。
4. 编码阶段的任务是将每个模块的控制结构转换成计算机可接受的程序代码。 5. 软件维护是软件生存周期中时间最长的阶段。
6. 最基本、应用广泛、以文档为驱动、适用于开发功能明确的软件项目生存期模型是瀑布模型。 7. 将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是瀑布模型。 8. 螺旋模型是一种风险驱动的模型。
9. 喷泉模型是一种以用户需求为动力,以对象为驱动的模型。
10. 基于知识的模型又称智能模型,它把瀑布模型和专家系统结合在一起。 11. 简单实用、应用广泛、技术成熟的开发方法是结构化方法。
12. 结构化方法是一种面向数据流的开发方法。由结构化分析、结构化设计、结构化程序设计构
成。
13. 一个软件项目的开发中,要采用一种生存周期模型,要按照某种开发方法,使用相应的工具来
进行。
14. 软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能相同。
15. 软件规格说明书、软件模块、软件代码、软件文档等都可以是软件重用的单位。
16. 软件维护费用占整个软件系统费用的2/3,而软件开发费用只占整个软件系统费用的1/3。 17. 软件开发中大约要付出40%的工作量进行测试和排错。 二、名称解释
1. 软件:计算机程序及其说明程序的各种文档。
2. 程序:是计算机任务的处理对象和处理规则的描述。
3. 文档:是有关计算机程序功能、设计、编制、使用的文字或图形资料。 4. 软件工程:用科学知识和技术原理来定义、开发、维护软件的一门科学。
5. 软件工程过程:规定了获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务。 6. 软件生存周期:是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。 7. 软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
8. 软件开发方法:是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。 9. 软件工具:是支持软件开发人员的开发和维护活动而使用的软件。 10. 瀑布模型:是将软件生存周期各个活动规定为自上向下,按照线性顺序连接的若干阶段的模型。 三、简答题
1. 软件产品的特性是什么?
答:软件产品具有以下独特的特性:
(1)软件是一种逻辑产品,它与物质产品有很大的区别。
(2)软件产品的生产主要是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发研制完成后,通过复制就产生了大量软件产品。 (3)软件产品不存在磨损、消耗问题。
(4)其生产的成本主要是脑力劳动,还未完全摆脱手工开发方式,大部分产品是“定做”的。
(5)软件费用不断增加,软件成本相当昂贵。软件的研制工作需要投入大量的、复杂的、高强度的脑力劳动,它的成本非常高。
2. 软件生产有几个阶段?各有何特征?
答:软件生产经过了三个阶段:即程序设计时代,程序系统时代,软件工程时代。 (1)程序设计时代:生产方式是个体手工劳动,使用的工具是机器语言,汇编语言。
(2)程序系统时代:生产方式是作坊式的小集团合作生产,生产工具是高级语言,开发方法仍旧靠个人技巧,但开始提出结构化方法。
(3)软件工程时代:生产方式是工程化的生产,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件。
3. 软件危机产生的原因是什么?
第 2 页(共 52 页)
软件工程串讲材料
答:(1)软件危机产生的原因:软件的规模越来越大,结构越来越复杂;(2)软件开发管理困难而复杂;(3)软件开发费用不断增加;软件开发技术落后;(4)生产方式落后;(5)开发工具落后,生产提高缓慢。
4. 软件工程的性质、目标和内容是什么?
答:性质:软件工程是一门综合性的交叉学科,它涉及计算机科学、工程科学、管理科学、数学等领域。
目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。
内容: 软件工程研究的主要内容是软件开发技术和软件开发管理两方面。在软件开发技术中,主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件开发管理中,主要是研究软件管理学、软件经济学、软件心理学等。 5. 软件工程面临的问题是什么?
答:面临的问题包括:软件费用、软件可靠性、软件维护、软件生产率和软件重用等。 6. 简述软件工程过程的含义、目的以及包含的子过程。
答:软件工程过程规定了获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务。 目的是利用这些过程来获取、供应、开发、操作和维护软件所用的基本的、一致的要求。
软件工程过程包括七个过程:获取过程、供应过程、开发过程、操作过程、维护过程、管理过程和支持过程。
7. 软件生存周期有哪几个阶段?每个阶段的提交文档是什么? 答:通常,软件生存周期包括:(1)可行性分析和项目开发计划::提交项目开发计划和可行性分析报告;(2)需求分析:提交软件需求规格说明书;(3)概要设计:概要设计说明书;(4)详细设计:提交详细设计说明书;(5)编码:提交源程序代码;(6)测试:提交测试分析报告(7)维护:程序维护手册。
8.软件生存周期模型有哪些主要模型?
答:主要模型有:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。 9.何谓软件开发方法?请列举四种主要方法。
答:软件开发方法:是一种使用早已定义好的技术集及符号表示习惯来组织软件生产的过程。 软件开发方法主要有:结构化方法、Jackson方法、维也纳开发方法(VDM)和面向对象的开发方法。 ▓历年考题
全国2010年1月自考软件工程试题
1.软件生存周期中,准确地确定软件系统必须做什么的阶段是( B )P6 A.可行性分析和项目开发计划 B.需求分析 C.概要设计 D.详细设计
2.把瀑布模型和专家系统结合在一起的软件生存周期模型是( B )P9 A.增量模型 B.基于知识的模型 C.螺旋模型 D.喷泉模型 31.软件工程过程:P5
36.简述软件工程面临的问题。P4
全国2009年10月自考软件工程试题 1.软件危机产生的时期是( D )P2 A.“程序设计时代”初期 B.“程序设计时代”末期 C.“程序系统时代”初期 D.“程序系统时代”末期
21.螺旋模型是将两种软件生存周期模型结合起来,加入了风险分析,这两种模型是指瀑布模型和__增量模型___。 31.软件开发方法 P10
36.简述软件产品的特性。P1
全国2009年1月自考软件工程试题
1.以下不属于软件特点的是( B )P1 A.软件是一种逻辑产品 B.软件产品存在磨损问题 C.软件的生产主要是研制 D.软件费用不断增加 2.以下属于形式化开发方法的是( C )P10
第 3 页(共 52 页)
软件工程串讲材料
A.结构化开发方法 B.Jackson开发方法C.维也纳开发方法 D.面向对象开发方法 21.软件工程研究的主要内容是软件开发技术和__软件开发管理___两个方面。P4 31.软件生存周期模型:P8
36.简述软件危机产生的原因。P3
全国2008年10月自考软件工程试题
1.“软件工程的概念是为解决软件危机而提出的”这句话的意思是( D ) A.强调软件工程成功解决了软件危机的问题
B.说明软件危机的存在总是使软件开发不像传统工程项目那样容易管理 C.说明软件工程这门学科的形成是软件发展的需要
D.说明软件工程的概念,即:工程的原则、思想、方法可解决当时软件开发和维护存在的问题 2.瀑布模型的主要特点是( A )
A.将开发过程严格地划分为一系列有序的活动 B.将开发过程分解为阶段 C.提供了有效的管理模式 D.缺乏灵活性
全国2008年1月自考软件工程试题
1.在软件生存周期中,时间最长的阶段是(D )。
A.需求分析 B.详细设计 C.编码 D.维护 2.以下最适合于面向对象的软件开发的软件生存周期模型是(D )。
A.瀑布模型 B.增量模型 C.螺旋模型 D.喷泉模型 19.瀑布模型本质是一种(B )。
A.顺序迭代模型 B.线性顺序模型 C.线性迭代模型 D.非线性模型
21.为了支持软件人员开发和维护活动而使用的软件一般是指___软件工具_____。P11
27.软件的生产经历了三个阶段,分别是程序设计时代、程序系统时代和___软件工程时代__。P2 31.软件开发方法:P10
全国2007年10月自考软件工程试题
1.以下哪一项不是软件危机的表现( B )P2 A.开发的软件可维护性差 B.软件极易被盗版
C.经费预算经常被突破 D.开发的软件不能满足用户需求 2.以下哪个软件生存周期模型是一种风险驱动的模型( C ) A.瀑布模型 B.增量模型 C.螺旋模型 D.喷泉模型
21.组成软件的两个部分是:__计算机程序及说明程序的各种文档____。 23.为了克服软件危机,1968年北大西洋公约组织的工作会议上首先提出了___软件工程__的概念 25.Jackson方法是一种面向__数据结构__的开发方法。 36.简述软件工程过程的含义、目的以及包含的子过程。P5
全国2007年1月自考软件工程试题
l.以下哪一项不是软件产品所具有的特性( C ) A.软件是逻辑产品
B.软件产品不会用坏,不存在磨损、消耗问题 C.随着技术的提高,软件开发的费用不断降低
D.软件产品的成本主要体现在软件的开发与研制上
2.“确定软件系统必须做什么”是哪个阶段的任务( B )
A.可行性分析和项目开发计划 B.需求分析 C.概要设计 D.详细设计 31.软件生存周期:
21.软件生产的发展经历了三个阶段,分别是程序设计时代、程序系统时代和__软件工程__时代。 31.软件开发方法:P10
36.简述软件工程研究的内容和它所面临的主要问题。P4
全国2006年10月自考软件工程试题
18.以用户需求为动力,以对象作为驱动的模型是( C )
A.瀑布模型 B.基于知识的模型 C.喷泉模型 D.增量模型 20.在软件生存期的各个阶段中跨越时间最长的阶段是( D )
第 4 页(共 52 页)
软件工程串讲材料
A.需求分析阶段 B.设计阶段 C.测试阶段 D.维护阶段
30.在软件生产中,___软件工程过程__的作用是规定了获取、供应、开发、操作和维护软件时,要实施的过程、活动和任务。 35.瀑布模型:P8
全国2006年1月自考软件工程试题
19.为了克服软件危机,人们首先想到要用以下哪种方法来开发软件?( C )P3 A.模块化 B.结构化 C.工程化 D.形式化
20.以下哪一项是面向数据结构的软件开发方法?( D ) A.IDEF方法 B.结构化方法 C.VDM方法 D.JACKSON方法
30.计算机辅助软件工具简单地定义为软件开发自动化,通常简称为__CASE__。 39.软件生存周期有哪几个活动?其中需求分析阶段的主要任务是什么?P6 【其它】
31.软件生存周期模型P8
20.具有风险分析的软件生存周期模型是( C )
A.瀑布模型 B.喷泉模型 C.螺旋模型 D.增量模型 16.螺旋模型是一种将瀑布模型和_________结合起来的软件开发模型。( A ) A.增量模型 B.专家系统 C.喷泉模型 D.变换模型
20.在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了( A ) A.软件危机 B.软件工程 C.程序设计革命 D.结构化程序设计
30.软件生存周期是指一个软件从提出开发要求开始直到____该软件报废__为止的整个时期。 30.软件生存周期模型是描述软件开发过程中_各种活动如何执行_的模型。 20.在软件生产的( C ),使用的工具主要是机器语言和汇编语言。P1 A.程序系统时代 B.软件工程时代 C.程序设计时代 D.人工智能时代 19.瀑布模型是一种什么模型?( B )
A.风险驱动模型 B.线性开发模型 C.增量模型 D.迭代模型 30.软件工程的主要思想是在软件生产中用__工程化方法__代替传统手工方法。P3
第2章 软件可行性研究与项目开发计划
▓主要内容
一、填空题、选择题
1.可行性研究的目的是用最小的代价,在尽可能短的时间内,确定(项目值得开发否)。 2.可行性研究在进行简要需求分析和设计时,要在高层次上以(较抽象形式)进行。
3.系统流程图用图形符号表示系统中各个元素,表达了系统中各个元素之间的(信息流动)。 4.软件工程有两种效益,它们是无形效益和有形效益。
5.若年利率为i,不计复利,n年后能收入F元的现在价值P=F/(1+n×i)。 6.纯收入是软件生存周期内两项值之差,这两项是(经济效益与投资)。 7.项目开发计划是一种(管理性)文档。
8. 可行性研究具体步骤的最后一步是(编写可行性报告)。
1.可行性研究实质上是进行一次简化、压缩了的(需求分析和设计)。 2.可行性研究的三个方面是技术可行性、社会可行性和经济可行性。 3.可行性研究的第一个具体步骤是确定项目的规格和目标。 5.可行性研究中描述系统高层物理模型的工具是系统流程图。 2.技术可行性要研究的问题之一是(技术风险问题)。 3.纯收入是累计效益现在值与投资之(差)。 二、名称解释
1.可行性研究: 是用最小的代价,在尽可能短的时间内,确定项目值得开发否,包括技术可行性、经济可行性、社会可行性的研究。
2.技术可行性: 对要开发的项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。
3.经济可行性: 进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。
4.社会可行性: 要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目的运行方式在用户
第 5 页(共 52 页)
软件工程串讲材料
组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。
5.货币时间价值: 通常用利率表示货币的时间价值。设年利率为i,现存入P元,n年后可得钱数为F,若不计复利则F=P×(1+n×i),F就是P元在n年后得价值。
6.投资回收期: 投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。 7.纯收入: 在整个生存周期之内的累计经济效益(折合成现在值)与投资之差。
8.系统流程图: 系统流程图是描绘物理系统的传统工具,它用图形符号来表示系统中的各个元素,它表达了系统中各个元素之间的信息流动的情况。 三、简答题
1.可行性研究的目的和任务是什么?
答:可行性研究的目的是用最小的代价,在尽可能短的时间内,确定项目值得开发否。
可行性研究的任务是对系统进行一次概要分析研究在尽可能短的时间里明确系统的目标和规模、约束、限制。然后分析人员进行简要的需求分析,抽象出该项目的逻辑结构、建立逻辑模型,提出几种方案对它们进行可行性分析。包括技术可行性,经济可行性、社会可行性。 2.可行性研究有哪些步骤?
答:确定项目规模和目标、研究当前的系统、建立新系统的高层逻辑模型、导出和评价各种方案、推荐可行方案、编写可行性研究报告。 3. 成本—效益分析可用那些指标度量?
答:投资回收期、纯收入、货币的时间价值。 4.可行性研究报告的主要内容?
答:引言、可行性研究前提、对现有系统的分析、所建议系统的技术可行性分析、所建议系统的经济可行性分析、所建议系统的社会因素可行性分析、其它方案、结论意见。 5.怎样计算投资回收期和纯收入? 6.项目开发计划有哪些主要内容?
答:项目概述、实施计划、人员分组及分工、交付期限。
▓历年考题
全国2010年1月自考软件工程试题 3.以下不属于项目开发计划主要内容的是( C ) .A.实施计划 B.交付期限 C.测试用例 D.人员组织及分工 37.简述可行性研究报告包含的主要内容。P16
全国2009年10月自考软件工程试题
22.在软件项目的经济可行性分析中,所谓投资回收期指的是:使开发项目累计的经济效益等于_最初的投资费用_所需的时间。
全国2009年1月自考软件工程试题
22.软件可行性研究从技术可行性、_经济可行性_、社会可行性三个方面分析研究每种解决方案的可行性。
全国2008年10月自考软件工程试题
19.在制定项目开发计划文档时,不包含的内容是( C ) A.项目概述 B.实施计划 C.测试计划 D.交付期限
21.可行性研究从技术可行性、经济可行性、_社会可行性_三方面进行分析。 36.简述可行性研究的目的和任务。P14
全国2008年1月自考软件工程试题
5.系统流程图中 符号的名称是( A )。
A.联机存储 B.处理 C.磁盘 D.文档 全国2007年10月自考软件工程试题
6.系统定义明确之后,应对系统的可行性进行研究,可行性研究应包括( A )
A.技术可行性、经济可行性、社会可行性 B.经济可行性、安全可行性、操作可行性 C.经济可行性、社会可行性、系统可行性 D.经济可行性、实用性、社会可行性
22.项目开发计划的主要内容包括项目概述、__实施计划__、人员组织及分工、交付期限。
全国2007年1月自考软件工程试题
22.可行性研究从以下三个方面研究每种解决方法的可行性:经济可行性、社会可行性和_技术可
第 6 页(共 52 页)
软件工程串讲材料
行性_。
32.软件项目的纯收入:P20
【其它】
18.经济可行性研究的范围包括( C )
A.资源有效性 B.管理制度 C.效益分析 D.开发风险
19.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开 发的决策依据,因必须给出( A )的回答。
A.确定 B.行或不行 C.正确 D.无二义 30.若年利率为i,不计复利,n年后可得钱数为F,则现在的价值P= F/(1+n*i) 。 19.可行性分析研究的目的是( B )
A.争取项目 B.项目值得开发否 C.开发项目 D.规划项目 30.若年利率为i,现存入P元,不计复利,n年后可得钱数为F= P*(1+n*i) 。 19.设年利率为i,现存入p元,不计复利,n年后可得钱数为( A ) A.p﹡(1+i﹡n) B.p﹡(i+1)n C.p﹡(1+i)﹡n D.p﹡(i+n)
29.投资回收期就是使累计的经济效益等于___最初投资费用__所需的时间。
19.设年利率为i,若不计复利,n年后可得钱数为F,则这些钱现在的价值是( C ) A.F*(1+i*n) B.(1+n*i)/F C.F/(1+n*i) D.F/(1+ni)
29.成本效益分析的目的是从___经济__角度评价开发一个新的软件项目是否可行。
第3章 软件需求分析
▓主要内容
第3章例题分析与解答 一、填空题、选择题
1.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求。
2.结构化分析的基本思想是采用自顶向下逐步分解的方法,能有效地控制系统开发的复杂性。 3.当数据流图中某个加工的一组动作存在着多个复杂组合的判断时,其加工逻辑使用判定表或判定树描述较好。
4.在IDEF0图中,连在方框上的箭头有四种类型,它们分别是输入、输出、控制、机制。 5.为了较完整地描述用户对系统的需求,DFD应与数据库中的ER图结合起来。 6.需求分析最终结果是产生需求规格说明书。
7.需求分析中,开发人员要从用户那里解决的最重要的问题是要让软件做什么。 8.DFD中的每个加工至少有一个输入流和一个输出流。
9.数据字典中的条目包括数据流、数据项、数据存储、基本加工。 10.IDEF0图能够反映出系统做什么、.谁来做以及什么情况下做。
12.数据流图中有四种符号元素,它们是数据流、数据存储、加工、数据源点或终点。
13.IDEF0是建立系统功能模型的有效方法,在IDEF0图中,表示系统功能的图形称为活动图形。 14.用于描述基本加工的小说明的三种描述工具是结构化语言、判定表、判定树。 15.结构化语言是介于自然语言和形式语言之间的一种半形式语言。 16.在IDEF0方法中,被标志为A—0的图称为系统的内外关系图。 17.SA方法用DFD描述系统的功能
18.一个局部数据存储只有当它作为某些加工的数据接口或某个加工的特定输入/输出时,就把它画出来。
19.对于分层的DFD,父图与子图的平衡指子图的输入、输出数据流同父图相应加工的输入、输出数据流必须一致。
20.SA方法的分析步骤是首先调查了解当前系统的工作流程,然后获得当前系统的物理模型,抽象出当前系统的逻辑模型,建立目标系统的逻辑模型 21.SA方法的基本思想是自顶向下逐步分解 22.初步用户手册在需求分析阶段编写。 二、名称解释
1.需求分析:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转化到相应的形式功能规约(需求规格说明)的过程。 2.当前系统:指目前正在运行的系统,可能是需要改进的正在计算机上运行的软件系统,也可能
第 7 页(共 52 页)
软件工程串讲材料
是人工的处理系统。
3.目标系统:指待开发的新系统。
4.SA:是面向数据流进行需求分析的方法。也是一种建模活动,该方法使用简单易读符号,根据软件内部数据传递、变换的关系,自顶向下逐层分解,描绘出满足功能要求的软件模型 5.DFD:数据流图,简称DFD(Data Flow Diagram),是SA方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是 一种功能模型。
6.数据字典:就是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。它和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。 三、简答题
1.什么是需求分析?该阶段的基本任务是什么?
答:需求分析是开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转化到相应的形式功能规约(需求规格说明)的过程。 基本任务是: a.问题识别
(1) 功能需求:明确所开发的软件必须具备什么样的功能。 (2) 性能需求:明确待开发的软件的技术性能指标。
(3) 环境需求:明确软件运行时所需要的软、硬件的要求。 (4) 用户界面需求:明确人机交互方式、输入输出数据格式。 b. 分析与综合,导出软件的逻辑模型
分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。用图文结合的形式,建立起新系统的逻辑模型。 c. 编写文档
(1) 编写“需求规格说明书”:把双方共同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础。
(2) 编写初步用户使用手册:着重反映被开发软件的用户功能界面和用户使用的具体要求,用户手册能强制分析人员从用户使用的观点考虑软件。
(3) 编写确认测试计划:作为今后确认和验收的依据。 (4) 修改完善软件开发计划。
在需求分析阶段对待开发的系统有了更进一步的了解,所以能更准确地估计开发成本、进度及资源要求,因此对原计划要进行适当修正。
2.数据流图与数据字典的作用是什么?画数据流图应注意什么?
答:数据流图描述系统由哪几部分组成,各部分之间有什么联系等等。 数据字典定义了数据流图中每一个图形元素。 画数据流图应注意: ①合适命名。
②画数据流而不是控制流。 ③一般不画物质流。
④每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。 ⑤编号。
⑥父图与子图的平衡。子图的输入输出数据流同父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡。 ⑦局部数据存储。
⑧提高数据流图的易懂性。
3.简述SA方法的优缺点。
答: 优点:是软件需求分析中公认的、有成效的、技术成熟的、使用广泛的一种方法,较适合于开发数据处理类型软件的分析。 缺点:(1)不适合描述实时监控系统。(2)SA方法使用DFD在分析与描述“数据要求”方面是有局限的。(3)DFD不适合描述人机界面系统的需求,对于这类系统可采用其他的分析方法。(4)借助于需求分析工具。(5)与形式化方法结合使用。 4. 简述SA分析的步骤。
答: (1)了解当前系统的工作流程,获得当前系统的物理模型。
第 8 页(共 52 页)
软件工程串讲材料
(2)抽象出当前系统的逻辑模型。 (3)建立目标系统的逻辑模型。 (4)作进一步补充和优化。
为了对目标系统做完整的描述,还需要对得到的逻辑模型做一些补充。 5. 结构化分析的描述工具有哪些? 答:结构化分析的描述工具有:
(1)数据流图:描述系统由哪几部分组成,各部分之间有什么联系等等。 (2)数据字典:定义了数据流图中每一个图形元素。
(3) 结构化语言、判定表、判定树:详细描述数据流图中不能被再分解的每一个加工。 6.简述建立IDEF0图的步骤。 答:建立IDEF0图的步骤:
(1).确定建模的范围、观点及目的 (2).建立系统的内外关系图--A-0图 (3).建立顶层图--A0图
把A-0图分解为3-6个主要部分得到A0图,它清楚地表达了A-0图在同样信息范围内的细节,从结构上反映了模型的观点,是系统功能模型真正的顶层图。 (4).建立低层次的图形
按照自顶向下的方法,从A0图开始逐层分解,建立一系列的活动图形,直到最低层为止。 7. 数据字典的作用是什么,它有哪些条目?
答:数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅。
数据字典有以下四类条目:数据流、数据项、数据存储、基本加工。数据项是组成数据流和数据存储的最小元素。终点、源点不在系统之内,故一般不在字典中说明。 8. 简述需求分析方法应遵循的基本原则。 答:需求分析方法应遵循的基本原则包括:
(1)必须能够表达和理解问题的数据域和功能域。数据域包括数据流、数据内容和数据结构,而功能域反应上述三方面的控制信息。
(2)可以把一个复杂问题按功能进行分解并可逐步细化。
(3)建模。建立模型可以帮助分析人员更好地理解软件系统的信息、功能、行为,这些模型也是软件设计的基础。
▓历年考题
全国2010年1月自考软件工程试题
4.使用数据流图来表示系统逻辑模型的是( D ) A.Jackson B.VDM C.OOA D.SA
5.用于描述结构化分析中数据流加工逻辑的是( A ) A.判定树 B.ER图 C.状态图 D.用例图
23.数据字典有四类条目,分别是数据流、__数据项_、数据存储和基本加工。 全国2009年10月自考软件工程试题
3.数据字典定义数据流或数据存储组成时,使用了若干符号,其中{…}表示的含义是( D ) A.可选 B.与 C.或 D.重复
4.IDEF0是IDEF方法的一部分,用于建立系统的( A ) A.功能模型 B.信息模型 C.动态模型 D.关系模型
23.数据流图中描述加工逻辑一般使用三种工具,分别是__结构化语言__、判定表、判定树。 32.数据字典:P30
37.简述在需求分析基本任务中,对问题的综合需求包括哪几个方面。P22
全国2009年1月自考软件工程试题
4.IDEF0是IDEF方法的一部分,用于建立系统的( A ) A.功能模型 B.信息模型 C.动态模型 D.关系模型
第 9 页(共 52 页)
软件工程串讲材料
23.需求分析的基本任务是准确地定义新系统的目标,回答_系统必须“做什么”_的问题。P22 32.数据流图DFD:P25
37.简述结构化分析的步骤。P24
全国2008年10月自考软件工程试题
3.在软件工程的需求分析阶段,不属于问题识别内容的是( D ) P22 A.功能需求 B.性能需求 C.环境需求 D.输入/输出需求 4.画某系统的数据流图时,顶层图有( B ) A.0张 B.1张 C.2张 D.3张及其以上
22.IDEF0方法用来描述系统的功能活动及其联系,建立系统的_功能_模型。 23.结构化方法总的指导思想是_自顶向下_逐层分解。P23
37.结构化分析的描述工具有哪些?简述结构化分析的步骤。P24 41.某个学生成绩管理系统的部分功能如下:
(1)基本信息管理:教务管理人员输入或修改学期教学执行计划、学生名单和教师名单; (2)学生选课:学生根据教学执行计划进行选课;
(3)分配任课教师:教务管理人员为符合开课条件的课程分配教师,并打印任课通知单给教师; (4)成绩管理:每门课程的教师在考试评分结束后将考试成绩交给教务管理人员,教务管理人员输入、维护成绩,系统可生成成绩单(发给学生)、成绩统计分析表(发给教务管理人员)。 请根据要求画出该问题的分层数据流图(要求画出顶层和0层数据流图)。
全国2008年1月自考软件工程试题
3.以下不适用于需求分析的工具是( C )。
A.数据流图 B.判定表 C.PAD图 D.数据字典 6.数据流图中的每个加工至少有( D )。 P27
A.一个输入流或一个输出流 B.一个输出流
C.一个输入流 D.一个输入流和一个输出流 22.在IDEF0方法中,一个活动可以无输入,但必须至少有一个__控制__。P37 41.某服装贸易公司的销售子系统功能如下: P29
(1)公司提供多种类别服装,所有类别的服装通过各个地区的分公司进行销售;
(2)公司接收分公司的订单,检验订单,若有库存就供货,则修改库存,给仓库开备货单,并且将订单留底;若库存不足,则进行缺货登记。
(3)根据缺货记录将缺货通知单发给采购部,以便采购。
(4)根据采购部门的进货通知单处理进货,即修改库存,并从缺货记录中取出缺货订单进行供货处理。
试采用SA方法画出该公司销售管理系统的分层DFD(画出顶层、0层、1层图)。
全国2007年10月自考软件工程试题
3.各种需求分析方法都有共同适用的( D )P21 A.分析方法 B.说明方法 C.表示方法 D.基本原则 26.结构化语言是介于__自然语言__和形式语言之间的一种半形式语言。 32.需求分析:P21
37.数据字典的作用是什么,它有哪些条目?P30
40.根据下列对某种人寿保险问题的描述画出决策表。 P35
某保险公司的一种人寿保险的参保类型划分原则如下:
(1)如果年龄不满25岁,男性适用保险类型A,女性适用保险类型B。
(2)如果年龄满25岁但不满50岁,已婚男性适用保险类型A,未婚男性适用保险类型B,已
婚女性适用保险类型B,未婚女性适用保险类型C。
(3)年龄在50岁以上者,已婚女性适用保险类型B,其余适用保险类型C。
全国2007年1月自考软件工程试题
第 10 页(共 52 页)
软件工程串讲材料
4.结构化分析方法的分析策略是( B )
A.自底向上的抽象 B.自顶向下的分解 C.用DFD建模 D.用DD描述数据需求 24.数据流图描绘数据在系统中__流动和处理__的过程。 P25
37.说明需求分析的定义,并简述需求分析的基本任务。P21-22
全国2006年10月自考软件工程试题
16.能够清楚地表示复杂的条件组合与应做的动作之间的对应关系的工具是( C ) A.结构化语言 B.PAD图 C.判定表 D.程序流程图 17.需求分析方法必须能够表达和理解问题的数据域和( C )P21 A.数据流 B.用户类型 C.功能域 D.应用领域 28.结构化分析是面向___数据流___进行需求分析的方法。 38.简述需求分析方法应遵循的基本原则。
41.有一个处理单价为5角钱的饮料的自动售货机软件,其规格说明如下: (1)若投入5角钱或1元钱的硬币,按下饮料的按钮,则相应的饮料就送出来。
(2)若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时投入1元硬币并按下按钮后,饮料不送出来并且1元硬币也退出来; (3)若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还5角硬币。 试用判定表描述加工逻辑。(要求用单条件,不允许用复合条件)
全国2006年1月自考软件工程试题
15.结构化语言是介于自然语言和形式语言之间的一种( A ) P33 A.半形式语言 B.半自然语言 C.过程描述语言 D.高级语言
16.软件需求分析产生的重要文档一个是软件需求分析规格说明书,另一个可能产生的文档是( D )
A.软件维护说明书 B.概要设计说明书 C.可行性分析报告 D.初步的用户手册 17.结构化分析(SA),是面向下面哪一项进行需求分析的方法?( D ) A.过程 B.对象 C.用户 D.数据流
29.描述加工逻辑的三种工具是结构化语言、判定表、__判定树__。 38.画数据流图应注意哪些事项?P27
42.问题描述: P26
1)顾客将订票单交给预订系统
(1)如是不合法订票单,则输出无效订票信息;
(2)对合法的订票以及预交款要登录到一个记账文件中;
(3)系统有航班目录文件,根据填写的施行时间和目的地为顾客安排航班;
(4)在获得正确航班信息和确认已交了部分预付款时发出取票单,并记录到票单文件中; 2)在指定日期内顾客用取票单换取机票
(1)系统根据票单文件对取票单进行有效性检查,无效的输出无效取票信息; (2)持有有效取票单的顾客在补交了剩余款后将获得机票;
(3)记账文件将被更新,机票以及顾客信息将被登录到机票文件。 试根据要求画出分层的数据流图。 【其它】
20.需求分析阶段的任务是确定( D )
A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能 17.IDEF。图反映系统( D )
A.怎么做 B.对谁做 C.何时做 D.做什么 15.需求分析中开发人员要从用户那里了解( A )
A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模 28.在结构化分析中,用于描述加工逻辑的主要工具有三种,即:结构化语言、判定表、 判定树 。
29.结构化语言是介于自然语言和 形式语言 之间的一种半形式语言。 32.数据字典(DD)P30
15.数据流图(DFD)是__A_方法中用于表示系统的逻辑模型的一种图形工具。( )
第 11 页(共 52 页)
软件工程串讲材料
A.SA B.SD C.SP D.SC 17.需求规格说明书的作用不包括( C )
A.软件验收的依据 B.用户与开发人员对软件要做什么的共同理解 C.软件可行性研究的依据 D.软件设计的依据
18.数据字典是用来定义_________中的各个成份的具体含义的。( D ) A.流程图 B.功能结构图 C.系统结构图 D.数据流图
15.父图与子图的平衡是指子图的输入输出数据流同父图应加工的输入输出数据流( B ) A.数目相等 B.一致 C.各自输入数据流数与输出数据流数目一样多 D.名称完全相同 16.DFD中的每个加工至少有( B )
A.一个输出流 B.一个输入流和一个输出流 C.一个输入流 D.一个输入流或一个输出流 18.需求分析是回答系统必须( A )的问题。 A.做什么 B.怎么做 C.何时做 D.为谁做
29.软件需求分析方法必须能够表达和理解问题的_数据域__和功能域。 39.需求分析阶段的基本任务是什么?要进行哪几方面的工作? 16.数据字典和数据流程图共同构成了系统的( B )
A.物理模型 B.逻辑模型 C.原型 D.目标模型 17.软件需求不应包括( C )
A.功能要求 B.环境需求 C.标准实现的空间需求 D.用户界面要求
第4章 软件概要设计
▓主要内容
一、选择题、填空题
1.结构化设计方法在软件开发中,用于软件概要设计。 2.软件结构使用的图形工具,一般采用( )图。
A.DFD B.PAD C.SC D.ER
3.软件结构图中,模块框之间若有直线连接,表示它们之间存在着调用关系。 4.在软件概要设计中,不使用的图形工具是( )图。
A.SC B.IPO C.IDEF0 D.PAD 5.划分模块时,一个模块的作用范围应在其控制范围之内。
7.变换流的DFD由三部分组成分别是变换中心、.输入流、.输出流。 8.软件设计阶段一般又可分为概要设计与详细设计。 9. 数据流图(DFD)一般可分为变换型和事务型两类。
10.结构图中,其主要成分是模块、模块间传递的数据、模块的控制关系 、两个附加符号。 11.在软件概要设计阶段,建立软件结构后,还应为每个模块写一份处理说明和接口说明。 12.基于IDEF0图的设计也是结构化设计技术之一,它以系统功能模型和信息结构为基础设计软件结构。
13.结构化设计中以数据流图为基础映射成软件结构的两种具体设计方法是变换分析和事务分析设计。
14.软件设计阶段产生的最重要的文档是软件概要设计说明书。 15.软件结构是以模块为基础而组成的一种控制层次结构。
16.反映软件结构的基本形态特征是深度、宽度、扇入、扇出。
17.为了防止软件概要设计的错误传播到开发的后续阶段,在概要设计文档完成以后,要进行软件评审。
二、名词解释
1. 软件设计:软件设计是一个把软件需求转换为软件表示的过程。
2. 模块化:模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。
3.信息隐蔽:指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其它模块来说,是不能访问的。
4. 模块独立性:模块独立性是软件系统中每个模块只完成软件要求的独立的子功能,与其他的模块联系最少且接口简单。
5. 耦合性:也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间
第 12 页(共 52 页)
软件工程串讲材料
关系越紧密,其耦合性就越强,模块的独立性则越差。
6. 内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内各个元素彼此结合的紧密程度。
7. 软件结构:指软件系统的体系结构,是系统有层次的模块控制结构。 8. 抽象:抽象就是抽出事物的本质特性而暂时不考虑它们的细节。
9. 模块的作用范围:一个模块的作用范围指该模块内一个判定影响的所有模块的集合。
10. 模块的控制范围:一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于
它的模块)的集合。 三、简答题
1. 什么是软件概要设计,该阶段的基本任务是什么?
答:软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件概要设计或结构设计。
任务是:(1)设计软件系统结构;(2)数据结构及数据库设计;(3)编写概要设计文档;(4)评审。 2.软件设计的基本原理包括哪些内容?
答:软件设计的基本原理是模块化、抽象、信息隐蔽、模块独立性。 3.模块的耦合性、内聚性包括哪些种类?各表示什么含义? 答:模块的耦合性包括:
(1)无直接耦合:指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。因此模块间耦合性最弱,模块独立性最高。
(2)数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。 (3)标记耦合:指两个模块传递的是数据结构。
(4)控制耦合:指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某些功能。
(5)公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。
(6)内容耦合:这是最高程度的耦合,也是最差的耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部,这种模块之间的耦合为内容耦合 模块的内聚性包括类型:
(1)偶然内聚:指一个模块内的各处理元素之间没有任何联系。
(2)逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。 (3)时间内聚:把需要同时执行的动作组合在一起形成的模块为时间内聚模块。
(4)通信内聚:指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据。
(5)顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。
(6)功能内聚:这是最强的内聚;指模块内所有元素共同完成一个功能,缺一不可。 4.简述软件结构优化准则。 答:软件结构优化准则是:
(1)划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,并以此原则优化初始的软件结构。
(2)一个模块的作用范围应在其控制范围之内,且判定所在的模块应与其影响的模块在层次上尽量靠近。
(3)软件结构的深度、宽度、扇入、扇出应适当。 (4)模块的大小应适中。
(5)模块的接口要简单、清晰、含义明确,便于理解,易于实现、测试与维护。
5.变换分析设计与事务分析设计有什么区别?简述其设计步骤。 答:变换分析设计步骤:
⑴确定变换中心,逻辑输入和输出。
⑵设计软件结构的顶层和第一层--变换结构:顶层的功能是完成所有模块的控制(名称应是系统名,以体现完成整个系统功能)
第一层至少有三种功能模块:输入﹑输出和变换模块 ⑶设计中﹑下层模块,对第一层的模块自顶向下分解。
输入模块由两部分组成:接收数据﹑转换成调用模块所需信息。
输出模块由两部分组成:将数据转换成下属模块所需的形式﹑ 发送数据 变换模块:对每个基本加工建立一功能模块
第 13 页(共 52 页)
软件工程串讲材料
⑷设计的优化:输入部分求精,每个物理输入设置专门模块,以体现系统的外部接口。其它输入模块与转换数据模块都很简单时,可将它们合并。
输出部分求精:每个物理输出设置专门模块,其它也可适当合并。 变换部分求精:根据设计准则,对模块适当合并。 事务分析的设计步骤:
⑴确定事务中心和加工路径
⑵设计顶层(事务机构)和第一层 顶层模块有两个功能:接收数据和根据事务类型调动相应处理模块。
⑶中下层模块的设计﹑优化工作与变换结构相同。
事务型软件结构包括两部分: 接收分支 发送分支出 通常包括一调度模块,当事务类型不多时,可与主模块合并 。
▓历年考题
全国2010年1月自考软件工程试题
6.若一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是
下一功能元素的输入,则该模块的内聚性类型是( C )P47 A.时间内聚 B.偶然内聚 C.顺序内聚 D.功能内聚 7.下列几种耦合类型,耦合性最高的是( A ) A.公共耦合 B.控制耦合 C.标记耦合 D.数据耦合 24.变换型的DFD是由输入、__变换__和输出三部分组成。
24.各种软件系统的数据流图一般可分为__变换型___和事务型两类。 32.模块化P43
38.简述软件结构设计的优化准则。P49
40.根据下列事务型的数据流图,设计出初始软件结构图。
全国2009年10月自考软件工程试题
5.若模块内部所有处理元素都在同一个数据结构上操作,则该模块的内聚性类型是( C )P47 A.时间内聚 B.偶然内聚 C.通信内聚 D.功能内聚
6.若软件结构中两个模块之间传递的是数据结构,如高级语言中的数组名,则这两个模块 的耦合性类型是( D ) A.公共耦合 B.控制耦合 C.数据耦合 D.标记耦合 35.模块的作用范围:P49
40.根据下列变换型的数据流图,设计出初始软件结构图。
第 14 页(共 52 页)
软件工程串讲材料
题40图
全国2009年1月自考软件工程试题
5.软件结构中两个模块之间有调用关系,传递简单数据值,相当于高级语言中的值传递,这两个模块之间的耦合是( D )
A.公共耦合 B.控制耦合 C.标记耦合 D.数据耦合
6.把需要同时执行的动作组合在一起形成模块,该模块的内聚性是( C )P47 A.顺序内聚 B.逻辑内聚 C.时间内聚 D.通信内聚
24.一个模块的作用范围指受该模块内一个_判定__影响的所有模块的集合。 35.信息隐蔽:P44
40.根据下面变换型的数据流图设计出对应的初始软件结构图。
全国2008年10月自考软件工程试题 5.软件模块内聚性最强的是( A ) A.功能内聚 B.通信内聚 C.偶然内聚 D.逻辑内聚 7.SD(结构化设计)方法设计的结果是( B ) A.模块 B.模块结构图 C.模块的算法 D.数据流图
24.在一段程序中,将多次出现的一组语句设计为一个子程序,供多个部分调用,这种情况出现的内聚称为__偶然内聚_。
全国2008年1月自考软件工程试题
4.以下几种模块内聚类型中,内聚性最低的是(B)。
A.时间内聚 B.逻辑内聚 C.顺序内聚 D.功能内聚 7.HIPO图是软件工程中的一种描述工具,采用HIPO图进行描述的阶段是(C)。 A.可行性分析 B.需求分析 C.概要设计 D.详细设计 14.结构化软件设计是(C)。
A.面向数据结构的 B.面向数据库的 C.面向数据流的 D.面向对象设计的 23.在软件结构的设计中,各个模块之间要力求降低耦合性,提高__内聚性__。 25.数据流图(DFD)一般可分为变换型和__事务型__两类。 32.耦合性:P45
37.什么是模块化?软件结构设计的优化准则是什么?P49
第 15 页(共 52 页)
软件工程串讲材料
全国2007年10月自考软件工程试题
5.模块中所有成分结合起来完成一项任务,该模块的内聚性是( A ) A.功能内聚 B.顺序内聚 C.通信内聚 D.逻辑内聚 7.以下哪一项对模块耦合性没有影响( D )P46 A.模块间接口的复杂程度 B.调用模块的方式
C.通过接口的信息 D.模块内部各个元素彼此之间的紧密结合程度 24.变换型数据流图是由输入、__变换__和输出三部分组成的。
全国2007年1月自考软件工程试题
5.一组语句在程序中多处出现,为了节省存储,将这些语句组成一个新的模块,该模块的内聚性为( C )
A.功能内聚 B.顺序内聚 C.偶然内聚 D.逻辑内聚
7.数据库的设计一般要进行三个方面的设计:概念设计、逻辑设计和物理设计,其中逻辑设计对应于系统开发的什么部分( C )
A.可行性分析 B.需求分析 C.概要设计 D.详细设计
23.HIPO图的H图用于描述软件的层次关系,矩形框表示一个模块,矩形框之间的直线表示模块之间的__调用___关系。
41.某个银行的存取款业务处理系统有以下功能:
储户将填好的存/取款单和存折交给银行工作人员,银行工作人员将存/取款单输 入系统,系统要求进行以下处理:
(1)业务分类处理:系统审查存/取款单,不合格则退回;合格则确定本次业务的性质(存款或取款);
(2)存款处理:系统将存款单上的存款金额分别记录在存折和账目文件中;记录现金账; 打印存款通知单给储户;最后将存折还给储户;
(3)取款处理:系统将取款单上的取款金额分别记录在账目文件和存折中;修改现金账; 打印取款通知单给储户;最后将现金和存折交给储户。
试根据要求画出该系统的分层数据流图,并将其转换为软件结构图。
全国2006年10月自考软件工程试题
14.模块的内聚性可以按照内聚程度的高低进行排序,以下排列中属于从低到高的正确次序是( C )
A.偶然内聚,时间内聚,逻辑内聚 B.通信内聚,时间内聚,逻辑内聚 C.逻辑内聚,通信内聚,顺序内聚 D.功能内聚,通信内聚,时间内聚 15.以下软件生存周期的活动中,要进行软件结构设计的是( B ) A.测试用例设计 B.概要设计 C.程序设计 D.详细设计
27.一个模块通过传递开关、标志对某一模块的多种功能进行选择,则这两个模块之间的耦合方式是__控制耦合___。
29.有效的模块化是通过定义一组___相互独立__的模块来实现信息隐蔽的,这些模块彼此之间仅交换那些为了完成系统功能所必须的信息。 39.模块间的耦合性包括哪些类型
包含:无直接耦合、数据耦合、标记耦合、控制耦合、公共耦合、内容耦合。 42.一实时监护系统的中央处理机的功能如下:
(1)由定时检测系统取得各个监护病员的生理数据(脉搏,体温,血压)经合法性检查后,与预先保存的每一病号生理临界数据进行比较; (2)如发现超越临界则启动自动报警装置发出警报信号; (3)定时检测的数据将被格式化并被记入日志文件; 试根据要求画出该问题的数据流图,并将其转换为软件结构图。
全国2006年1月自考软件工程试题
11.在模块的四种基本属性中,反映模块内部特性的是( C ) A.接口 B.功能 C.逻辑 D.状态
12.模块的耦合性可以按照耦合程度的高低进行排序,以下哪一项符合从低到高的正确次序?( D )
A.标记耦合,公共耦合,控制耦合,内容耦合
第 16 页(共 52 页)
软件工程串讲材料
B.数据耦合,控制耦合,标记耦合,公共耦合 C.无直接耦合,标记耦合,内容耦合,控制耦合 D.无直接耦合,数据耦合,控制耦合,内容耦合
13.在建立软件系统的模块结构时,评价系统模块划分质量的根据为( C ) A.数据独立性 B.程序独立性 C.模块独立性 D.设备独立性
27.如果一个模块可调用n个模块,其中直接的下属模块的个数是m个(m<=n),那么该模块的扇出数是__m___个。
28.在概要设计阶段,形成软件结构并经过优化改进后,还应为每个模块写一份处理说明和提供一份__接口说明__。P56 34.信息隐蔽: 35.模块化: 【其它】
16.结构化程序设计主要强调的是( D )
A.程序的规模 B.程序的效率 C.程序设计语言的先进性 D.程序易读性 27.软件结构是以 模块 为基础而组成的一种控制层次结构。P41 13.结构化程序设计方法提供的工作方式为( B )的组织形式。 A.程序员组 B.主程序员组 C.分析员组 D.管理人员组 15.结构化程序设计的一种基本方法是( C ) A.筛选法 B.迭代法 C.逐步求精法 D.递归法
16.数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的顺序是( B ) A.数据、公共、标记、控制 B.数据、标记、控制、公共 C.控制、数据、标记、公共 D.控制、数据、公共、标记 17.软件概要设计结束后得到( B ) A.初始化的软件结构图 B.优化后的软件结构图 C.模块详细的算法 D.程序编码
26.当A模块调用B模块时,若两个模块之间传递的是数值型参数,则这两个模块的耦合方式是 数据耦合 。
27.软件概要设计关键的一步是 软件结构的设计 ,它直接影响下一阶段详细设计和编码的工作。 28.对大信息系统的需求,DFD应与数据库技术中 ER 图结合起来。 29.数据流图中的箭头表示 数据流 。
9.程序的三种基本控制结构的共同特点是( C ) A.只能用来描述简单程序 B.不能嵌套使用 C.单入口,单出口 D.仅用于自动控制系统 10.JSP方法是一种面向_________的设计方法。( D ) A.控制结构 B.对象 C.数据流 D.数据结构
11.当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为( D ) A.数据耦合 B.公共耦合 C.标记耦合 D.内容耦合
12.软件设计的方法有多种,_________方法不属于面向数据流的设计方法。( A ) A.基于Jackson图的设计 B.基于IDEF0图的设计C.交换分析设计 D.事务分析设计 13.为高质量地开发软件项目,在软件结构设计时,必须遵循_________原则。( C ) A.信息隐蔽 B.质量控制 C.程序优化 D.数据共享
14.设在一个模块内有2个判定,若受其中一个判定影响到的模块集合为A,而受另一个判定影响到的模块集合为B,则该模块的作用范围是( B ) A.AB B.AB C.(AB)—(AB) D.(AB)(AB) 26.一个进行学生成绩统计的模块其功能是先对学生的成绩进行累加,然后求平均值,则该模块的内聚性是____顺序内聚___。
27.基于IDEF0图的设计是以系统的功能模型和___信息结构___为基础设计系统的软件结构。P58 28.软件结构图的宽度是指一层中___最大____的模块个数。 11.结构化程序设计采用的三种基本控制结构是( C )
A.顺序、分支、选择 B.选择、循环、重复 C.顺序、选择、重复 D.输入、变换、输出 13.通信内聚、逻辑内聚、顺序内聚和时间内聚的内聚性从高到低顺序是( C ) A.通信、逻辑、顺序、时间 B.通信、时间、顺序、逻辑 C.顺序、通信、时间、逻辑 D.顺序、通信、逻辑、时间
14.在下列四种模块的耦合性中,信息隐蔽性能最好的是( D )P46 A.控制耦合 B.内容耦合 C.标记耦合 D.数据耦合
第 17 页(共 52 页)
软件工程串讲材料
17.结构化方法是一种( D )的软件开发方法。 A.面向用户 B.面向数据结构 C.面向对象 D.面向数据流
27.如果一个模块被n个模块调用,其中直接的上级模块的个数是m个(m<=n)那么该模块的扇入数是___m____个。
28.结构化设计以___数据流图___为基础,按一定的步骤映射成软件结构。 38.简述软件结构的设计优化准则。
3. 在IDEF0方法中,一个活动可以无输入,但必须有一个___控制___。
4. __软件结构_____的设计是概要设计关键的一步,直接影响到下一阶段详细设计与编码的工作。P41
11.在软件设计中,为解决一个大而复杂的问题把软件系统划分成一个个完成某一特定的子功能的方法称为( C )
A.细化 B.结构化 C.模块化 D.抽象化 12.结构化方法在建立软件系统的结构模块时按照以下哪种方法进行?( B ) A.由底向上 B.自顶向下 C.随机 D.回归
13.两个模块之间传递的是同一个数据结构的地址,这种耦合方式称为( C ) A.控制耦合 B.公共耦合 C.标记耦合 D.数据耦合
14.结构化设计是以哪个阶段产生的DFD图为基础,按一定的步骤映射成软件结构?( B ) A.可行性分析 B.需求分析 C.概要设计 D.详细设计 15.结构化方法的基本原则是功能的分解和( C )P10
A.模块化 B.信息隐蔽 C.抽象 D.细化 26.IDEF0用来描述系统的功能活动及其联系,建立系统的___功能____模型。 27.两个模块之间把简单的数值作为参数传递,这种耦合方式为___数据耦合___。
28.把在几个模块中都出现的一些毫无联系的处理序列抽出来组成一个新的模块,那么这个模块的内聚性是___偶然内聚___。
第5章 软件详细设计
▓主要内容
一、填空题、选择题
1.详细设计与概要设计衔接的图形工具是SC图。 2.结构化程序设计主要强调的是程序的易读性。 3.详细设计的任务是确定每个模块的算法。 4.Jackson方法实现从数据结构导出程序结构。
5.在软件详细设计过程中不采用的描述工具是( )。
A.判定表 B.IPO图 C.PAD图 D.DFD图
6.为了产生结构化的流程图,应由三种基本控制结构顺序组合或完整嵌套而成。 7.结构化程序设计方法提倡开发人员的组织形式是主程序员组。
8.在Jackson方法中解决结构冲突的具体办法是引入中间数据结构或中间文件。
9.在详细设计阶段,一种历史最悠久、使用最广泛的描述程序逻辑结构的工具是程序流程图。 10.结构化程序设计技术指导人们用良好的思想方法开发易于理解、易于验证的程序。 11.详细描述处理过程常用的三种工具是图形、语言和表格。 12.Jackson图不仅可表示程序结构,还可表示数据结构。
13.PDL具有严格的关键字外层语法,用于定义控制结构、数据结构和模块接口。 14.详细设计的目标不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程清晰易读。 15.在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的数据结构进行设计。 16.结构化程序设计的一种基本方法是逐步求精法。
17.JSP方法是一种面向数据流的设计方法,主要用于规模适中的数据处理系统的开发。用JSP方法导出程序结构后,还要列出操作与条件,并把它们分配到程序结构图的适当位置上去。 18.PDL是软件开发过程中用于细设计阶段的描述工具。
19.在详细设计阶段,可自动生成程序代码并可作为注释出现在源程序中的描述工具是PDL。 20.Jackson图上下层之间的关系是组成关系。
21.JSP方法根据输入输出的数据结构按一定的规则映射成软件的程序结构。 22.程序的三种基本控制结构是顺序、选择和重复。
23.程序的三种基本控制结构的共同特点是只有一个入口和一个出口。
第 18 页(共 52 页)
软件工程串讲材料
二、名词解释
1.结构化程序设计:是进行以模块功能和处理过程设计为主的详细设计的基本原则。它的主要观点是采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、重复三种基本控制结构构造 。
2.PAD:指问题分析图,是一种由左向右展开的二维树型结构并可自动生成程序代码的描述工具,图中的竖线为程序的层次线,最左线为程序主线。
3.PDL:即过程设计语言,也称程序描述语言,又称为伪码。它是一种用于描述算法设计和处理细节的语言。
4.结构冲突:输入数据与输出数据结构找不到对应关系的情况,称为结构冲突。 5.对应关系:
6.JSP方法:JSP方法定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构
7. 详细设计:是软件设计的第二阶段,主要确定每个模块具体执行过程,也称“过程设计”。 三、简答题
1.详细设计的基本任务是什么? 答:详细设计的基本任务是:
(1)为每个模块进行详细的算法设计。用某种图形、表格、语言等工具将每个模块处理过程的详细算法描述出来。
(2)为模块内的数据结构进行设计。对于需求分析、概要设计确定的概念性的数据类型进行确切的定义。
(3)对数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储方法,这些都依赖于具体所使用的数据库系统。 (4)其他设计:根据软件系统的类型,还可能要进行以下设计:
①代码设计。为了提高数据的输入、分类、存储、检索等操作,节约内存空间,对数据库中的某些数据项的值要进行代码设计。 ②输入/输出格式设计。
③人机对话设计。对于一个实时系统,用户与计算机频繁对话,因此要进行对话方式、内容、格式的具体设计。
(5)编写详细设计说明书。 (6)评审。
2.结构化程序设计方法的基本要点是什么? 答:结构化程序设计方法的基本要点是: (1)采用自顶向下、逐步求精的程序设计方法 (2)使用三种基本控制结构构造程序
任何程序都可以由顺序、选择、重复(循环)三种基本控制结构构造,这三种基本结构的共同点是单入口、单出口。
(3)主程序员组的组织形式
3.详细设计主要使用哪些描述工具?各有什么特点?
答:详细设计的描述方法有图形、表格和语言,其中图形常用结构化程序流程图、盒图和PAD(问题分析图)为描述工具,语言常用过程设计语言(PDL)来作为工具。 4.JSP方法有哪些设计步骤?该方法有哪些特点? 答:JSP方法的设计步骤如下:
(1)分析并确定输入数据和输出数据的逻辑结构,并用Jackson结构图表示这些数据结构。 (2)找出输入数据结构和输出数据结构中有对应关系的数据单元。 (3)按一定的规则由输入、输出的数据结构导出程序结构。
(4)列出基本操作与条件,并把它们分配到程序结构图的适当位置。 (5)用伪码写出程序。 JSP方法的特点是:
(1)能对结构进行自顶向下分解,可以表示层次结构。 (2)结构易读,形象直观
(3)既能表示数据结构也能表示程序结构,且表示的是组成关系。
四、应用题
画出下面用PDL写出的程序的PAD图。
第 19 页(共 52 页)
软件工程串讲材料
WHILE P DO
IF A>O THEN A1 ELSE A2 ENDIF; IF B>0 THEN B1;
IF C>0 THEN C1 ELSE C2 ENDIF ELSE B2 ENDIF; B3
ENDWHILE;
▓历年考题
全国2010年1月自考软件工程试题 8.程序流程图的优点不包括( B )P63 ...
A.历史最悠久,使用最广泛 B.容易表示逐步求精的过程 C.支持程序的三种基本控制结构 D.直观清晰,易于使用 25.过程设计语言是用于描述模块__算法设计_和处理细节的语言。P65 全国2009年10月自考软件工程试题
2.以下属于面向数据结构的开发方法是( B ) A.结构化方法 B.Jackson方法 C.维也纳开发方法 D.面向对象的开发方法 7.下列描述中,不属于程序流程图优点的是( B )P63 .
A.历史最悠久,使用最广泛 B.容易表示数据结构 C.支持程序的三种基本控制结构 D.直观清晰,易于使用
25.Jackson开发方法中,Jackson结构图由__顺序结构__、选择结构和重复结构这三种基本结构组合而成。P68
38.简述结构化程序设计的基本要点。P62
全国2009年1月自考软件工程试题
7.以下属于程序流程图缺点的是( D ) A.历史悠久 B.使用广泛 C.支持程序的三种基本控制结构 D.可以随心所欲地画控制流程线的流向 8.Jackson结构图的三种基本结构是( B )
A.顺序结构、选择结构、层次结构 B.顺序结构、选择结构、重复结构 C.层次结构、选择结构、重复结构 D.顺序结构、层次结构、重复结构 25.PAD图是日本日立公司提出的一种_算法描述_工具。P63 全国2008年10月自考软件工程试题
9.软件详细设计阶段的任务是( A )P61 A.算法与数据结构设计 B.功能设计 C.调用关系设计 D.输入/输出设计 12.用结构化语言来描述加工逻辑的外层结构时,以下不属于基本结构的是( C ) A.顺序结构 B.选择结构 C.嵌套结构 D.重复结构 31.过程设计语言(PDL): P65
34.详细设计:P61
40.下面是一段伪码程序(代码前的数字只作标号用,不参与程序执行): START
1:INPUT(A,B,C,D) 2:IF(A>0)AND(B>0) THEN
3:X=A+B ELSE
4:X=A-B 5:END
6:IF(C>A)OR(D第 20 页(共 52 页)
软件工程串讲材料
8:Y=C+D 9:END
10:PRINT(X,Y) STOP
根据以上的描述
(1)画出对应的流程图和程序图。 (2)计算程序图的环形复杂度。 全国2008年1月自考软件工程试题
8.Jackson方法是软件开发过程中常用的方法,使用Jackson方法可以实现(A)。P68 A.从数据结构导出程序结构 B.从数据流图导出初始结构图 C.从模块结构导出数据结构 D.从模块结构导出程序结构 9.过程设计语言(PDL),又称为(A)。
A.伪码 B.高级程序设计语言 C.中级程序语言 D.低级程序设计语言 l3.PAD图为下列哪个方面提供了有力的工具(B)。 P64
A.系统分析 B.软件的自动化生成 C.自动分析数据 D.测试软件 38.简述详细设计的基本任务。P61
40.某个程序的伪码如下(前面的标号只用于标明语句顺序,不参与程序运行): 1:START
2:IF L1 THEN 3:S1
4:DO WHILE L2 5:S2
6:IF L3 THEN 7:S3 ELSE 8: S4 9:END IF 10:END DO EISE 11:S5
12:END IF 13:STOP
(1) 试将其转换成PAD图(5分)
(2) 计算程序的环路复杂性(5分)
全国2007年10月自考软件工程试题
14.结构化程序设计,主要强调的是( C )P62
A.程序的执行效率 B.模块的内聚 C.程序的可理解性 D.模块的耦合 38.简述结构化程序设计方法的基本要点。P62
全国2007年1月自考软件工程试题
11.使用Jackson方法可以得到( C ) A.程序流程图 B.具体的语言程序 C.模块结构图及模块的功能说明书 D.分层数据流图
26.软件详细设计阶段常采用的工具有图、表和___语言___。P62 42.下列是某程序的NS图 (1)请将其转换成PAD图
(2)请将其转换成程序流程图。
第 21 页(共 52 页)
软件工程串讲材料
全国2006年10月自考软件工程试题
13.在JSP方法中解决结构冲突的具体办法是( A )P73 A.引入中间数据结构或中间文件 B.删除某个输入数据结构 C.删除某个输出数据结构 D.增加某个输入或输出数据结
26.在软件的详细设计中,根据控制流程从上到下,从左到右展开的设计工具是__PAD图__。P63 全国2006年1月自考软件工程试题
2.以下被详细设计阶段用来描述处理过程的工具是( B )
A.软件结构图 B.程序流程图 C.数据流图 D.对象图
10.PAD图的优点之一是支持逐步求精的设计方法,其逐步细化的方式为( D )P63 A.由右到左 B.由上到下 C.由下到上 D.由左到右 14.PDL是描述处理过程( C )
A.做什么 B.为什么做 C.怎么做 D.对谁做
18.系统流程图用于可行性分析中描述以下哪一方面?( D )P17 A.目标系统 B.当前运行系统 C.新系统 D.当前逻辑模型
26.PDL具有严格的关键字外层语法,用于定义__控制结构__、数据结构和模块接口。P65 40.画出下面用PDL写出的程序的PAD图
WHILE C DO IF A>0 A1; ELSE A2; ENDIF IF B>0 B1; IF C>0 C1; ELSE C2; ENDIF ELSE B2; ENDIF B3; ENDWHILE 【其它】
12.程序的三种基本控制结构是( B )
A.过程、子程序和分程序 B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移 13.在详细设计阶段,经常采用的工具有( A )
A.PAD B.SA C.SC D.DFD 14.详细设计的结果基本决定了最终程序的( C )P61
A.代码的规模 B.运行速度 C.质量 D.可维护性
第 22 页(共 52 页)
软件工程串讲材料
14.详细设计与概要设计衔接的图形工具是( B )
A.DFD图 B.SC图 C.PAD图 D.程序流程图
12.在软件设计中详细描述处理过程常用的三种工具是( D )P62
A.SA,SD,SP B.程序流程图,IPO,PAD C.SA,SC,SD D.图形,表格,语言 25.在许多软件项目中,输入数据和输出数据之间很少或没有结构上的对应关系,Jackson把这种情况称为__结构冲突__。P73
26.PDL是一种用于描述模块__算法设计__和处理细节的语言。P65 5. 软件的详细设计也称为“过程设计”,主要确定每个模块的__具体执行过程__。
第6章 软件编码
▓主要内容
一、填空题、选择题
1.软件需求分析之后,软件的设计、编码、测试与语言的特性有很大的关系,这个特性主要是语言的技术特性。
2.为了提高程序的易读性,同时减少错误,提高软件开发效率,编码时注意养成良好的程序设计风格。
3.源程序中加注释是帮助理解程序的重要手段,注释分为序言性注释和功能性注释两类。 4.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在人们更重视程序的可理解性。
5.源程序文档化要求在每个模块之前加序言性注释。该注释内容不应有语句的功能。 6.不适合作为数据处理的语言是PROLOG。
7.提高程序效率的根本途径并非在于对程序语句作调整。
8.程序设计语言的特性主要有心理特性、工程特性、技术特性三方面。
9.程序设计语言的心理特性在语言中的表现形式为歧义性、简洁性、局部性、顺序性和传统性。 10.程序设计语言的工程特性主要表现为可移植性、开发工具的可利用性、软件的可重用性、可维护性。
11.项目的应用领域一般有科学工程计算、数据处理与数据库应用、实时处理、系统软件、人工智能几种类型。
12.与编码风格有关的因素有数据说明、语句构造、输入输出、效率等,其中还有一个重要的因素是源程序文档化。
13.项目的应用领域是选择编程语言关键的因素之一,不适合作为项目应用领域的类型是UNIX操作系统。
14.为了提高易读性,源程序内部应加功能性注释,用于说明程序段或语句的功能。 15.程序设计语言的技术特性不应包括( )。
A.数据结构的描述性 B.抽象类型的描述性 C.数据库的易操作性 D.软件的可移植性 二、名词解释 1.编码::即“编程序”,它是将详细设计得到的处理过程的描述转换为基于某种计算机语言的程序,即源程序代码。
2.程序设计风格:程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。 3.可移植性:它指程序从一个计算机环境移植到另一个计算机环境的容易程度。 四、简答题
1.在项目开发时,选择程序设计语言通常考虑哪些因素? 答:通常要考虑的因素有:(1)项目的应用领域;(2)软件开发的方法;(3)软件执行的环境;(4(4)算法和数据结构的复杂性;(5)软件开发人员的知识等。
2.什么是程序设计风格?应在哪些方面注意培养良好的设计风格?
答:程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。
要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。
3、程序语言有哪些共同特征?
答:程序语言的共同特征(似为特性更符合题意)是指程序设计语言的语言特性,包括心理特性、工程特性和技术特性三个方面。语言的心理特性对人机通信的质量有主要的影响;语言的工程特性
第 23 页(共 52 页)
软件工程串讲材料
对软件开发成功一否有重要的影响,此外,语言的技术特性也会影响软件设计的质量。
4、第4代语言(4GL)有哪些主要特征?
答:4GL的主要特征是:(1)友好的用户界面(2)兼有过程性和非过程性双重特性(3)高效的程序代码(4)完备的数据库(5)应用程序生成器
5、举例说明各种程序设计语言的特点及适用范围? 答:以常见的一些编程语言为例:
FORTRAN语言,它不仅面向科学计算,数据处理能力也极强。适用于科学工程计算;
Pascal语言,具有很强的数据和过程结构化能力,它语言简明,数据类型丰富,程序结构严谨。它是第一个体现结构化编程思想的语言。用于描述结构化算法和科学计算,操作系统的编写; C语言:功能强大,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及数据处理操作符,它还具有汇编语言的某些特征,使程序运行效率高。可用于许多领域,特别是在操作系统等方面有较大优势。
Coble语言,它具有极强的数据定义能力,程序说明与硬件环境说明分开、数据描述与算法描述分开。结构严谨层次分明,广泛用于商业数据处理。 SQL:结构化查询语言,用于对数据库进行存取管理。
汇编语言和Ada语言,主要用于实时处理和编写系统软件。
Prolog、Lisp语言:Lisp是一种函数型语言,特别适用于组合问题中符号运算和表处理,用于定理证明、树的搜索和其他问题的求解。Prolog是一种逻辑型语言,它提供了支持知识表示的特性,每一个程序由一组表示事实、规则和推理的句子组成,比较接近与自然语言。这两种语言主要用于人工智能系统开发。
C++、Java语言,是面向对象的设计语言,用于面向对象的方开发软件。 6. 就程序设计语言的工程特性而言,对程序编码有哪些要求? 答:就程序设计语言的工程特性而言,对程序编码的要求有:(1)可移植性;(2)开发工具的可利用性;(3)软件的可重用性;(4)可维护性。 7. 程序设计语言的心理特性包含哪些? 答:(1)歧义性;(2)简洁性;(3)局部性与顺序性;(4)传统性。 8. 为增加软件的可移植性应注意的问题是什么? 答:要增加可移植性,应考虑以下几点:(1)在设计系统式模块与操作系统特性不应有高度联系;(2)要使用标准的语言,要使用标准的数据库操作,尽量不使用扩充结构;(3)对程序中各种可变信息,均应参数化,以便于修改。
▓历年考题
全国2010年1月自考软件工程试题
9.第一个体现结构化编程思想的程序设计语言是( C )P77 A.Cobol语言 B.C语言 C.Pascal语言 D.FORTRAN语言
26.效率是与编程风格有关的一个因素,效率是指处理机时间和_存储空间_的使用。 全国2009年10月自考软件工程试题
8.设计人工智能领域内的系统,程序设计语言最好选择( D ) A.Cobol语言 B.C语言 C.Pascal语言 D.Prolog语言
26.为开发一个特定项目选择程序设计语言时,必须从技术特性、__工程特性__和心理特性几方面考虑。
全国2009年1月自考软件工程试题
9.以下属于面向对象程序设计语言的是( A ) A.Java语言 B.C语言 C.Pascal语言 D.Prolog语言 26.程序的注释分_序言性注释_和功能性注释。 38.简述选择程序设计语言时通常要考虑的因素。 全国2008年10月自考软件工程试题
11.Fortran语言主要作为以下哪个方面的语言( A )P77
A.科学工程计算 B.系统软件 C.事务处理 D.人工智能 14.程序设计语言不具有的特性是( C )P75
A.心理特性 B.工程特性 C.应用特性 D.技术特性
第 24 页(共 52 页)
软件工程串讲材料
全国2008年1月自考软件工程试题
l2.以下不适合作为科学工程计算的语言是(D)。
A.Pascal B.C C.Fortran D.Prolog 全国2007年10月自考软件工程试题
11.以下不属于序言性注释的有( D )P80
A.模块设计者 B.修改日期 C.程序的整体说明 D.语句功能 33.程序设计风格:
全国2007年1月自考软件工程试题
8.以下哪种语言可用于描述模块算法设计和处理细节( B )
A.UML语言 B.过程设计语言 C.FORTRAN语言 D.Pascal语言 l3.与编程风格有关的因素不包括( D )P80
A.源程序文档化 B.语句构造 C.输入输出 D.模块间耦合性 38.就程序设计语言的工程特性而言,对程序编码有哪些要求?
全国2006年10月自考软件工程试题
12.至今已有好几百种不同的高级语言,它们有的是用于数值计算,有的是用于商业管理,有的是用于编写系统软件。以下语言中较适用于数值计算的语言是( B ) A.BASIC B.SQL C.LISP D.FORTRAN 【其它】
11.第一个体现结构化编程思想的程序设计语言是( B )
A.FORTRAN语言 B.Pascal语言 C.C语言 D.PL/1语言
26.程序设计语言的心理特性主要表现在 歧义性 、简洁性、传统性、局部性和顺序性。P75 38.就程序设计语言的工程特性而言,对程序编码有哪些要求?P80
12.比较接近于自然语言,被广泛应用于构造专家系统的程序设计语言是( D ) A.FORTRAN语言 B.Pascal语言 C.C语言 D.Prolog语言 38.为了具有良好的程序设计风格,应注意哪些方面的问题?P79
8.程序设计语言的心理特性在语言中表现不应包括( C ) A.歧义性 B.简洁性 C.保密性 D.传统性 1. 程序设计风格P79
25.软件编码是将___详细设计___阶段产生的算法,用某种程序设计语言编写成程序的过程。 10.源程序文档化要求在每个模块之前加序言性注释。该注释内容不应有( B )p80 A.模块的功能 B.语句的功能 C.模块的接口 D.开发历史
第7章 软件测试
▓主要内容
一、选择题、填空题
1.软件测试的目的是发现软件错误。
2.软件测试中,白盒法是通过分析程序的内部逻辑来设计测试用例的。 3.黑盒法是根据程序的功能来设计测试用例的。
4.为了提高软件测试的效率,应该选择发现错误可能性较大的数据作为测试用例。 5.与设计测试用例无关的文档是( )。
A.项目开发计划 B.需求规格说明书 C.设计说明书 D.源程序 6.测试的关键问题是如何选择测试用例。
7.软件测试用例主要由输入数据和预期输出结果两部分组成。 8.成功的测试是指运行测试用例后发现了程序错误。
10.在黑盒测试中,着重检查输入条件组合的方法是因果图法。
11.单元测试主要针对模块的几个基本特征进行测试包括:模块接口、局部数据结构、重要的执行路径、错误处理、边界条件。
12.软件测试过程中的集成测试主要是为了发现概要分析阶段的错误。 13.不属于白盒测试的技术是( )。
第 25 页(共 52 页)
软件工程串讲材料
A.路径覆盖 B.判定覆盖 C.循环覆盖 D.边界值分析
14.集成测试时,能较早发现高层模块接口错误的测试方法为自顶向下渐增式测试。 15.确认测试以需求规格说明书文档作为测试的基础。 16.运行被测程序的方法称为动态测试。
17.动态测试中,主要测试软件功能的方法称为黑盒法。
18.选择测试用例,使得被测程序中每个判定的每个分支至少执行一次,这种逻辑覆盖标准称为判定覆盖。
19.要覆盖含有循环结构的所有路径是不可能的,一般通过限制循环次数来测试。
20.用等价类划分法设计测试用例时,如果被测程序的某个输入条件规定了取值范围,则可确定一个合理的等价类和两个不合理的等价类。
21. 用等价类划分法设计一个测试用例时,使其覆盖一个不合理等价类。 22.集成测试中的具体方法是渐增式和非渐增式测试方法。
23.确认测试阶段的两项工作是进行确认测试和软件配置审查。 24.在单元测试中,测试一个模块时,需要设计驱动模块和桩模块。
25.被测试程序不在机器上运行,而是采用人工检测和计算机辅助分析检测的手段称为静态测试。 26.用等价类划分法设计一个测试用例时,使其覆盖尽可能多的尚未被覆盖的合理等价类。
二、名词解释
1. 软件测试:软件测试是为了发现错误而执行程序的过程。 2.黑盒法:该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。因此,黑盒测试又称为功能测试或数据驱动测试。
3.白盒法:该方法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。
4.渐增式测试:逐个把未经过测试的模块组装到已经过测试的模块上去,进行集成测试。每加入一个新模块进行一次集成测试,重复此过程直至程序组装完毕。
5.非渐增式测试:非渐增式测试:首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起进行测试。
6.调试:调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错。
7.错误推测法:凭经验或直觉推测程序中可能存在的错误而设计测试用例的方法是错误推测法。 11. 动态测试:指通过运行程序发现错误。一般意义上的测试大多是指动态测试。有两种方法,分
别是黑盒测试法和白盒测试法。 12. 静态测试:是指被测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段
对程序进行检测。 13. 条件覆盖:是指设计足够的测试用例,使得判定表达式中每个条件的各种可能的值至少出现一
次。
14. 确认测试:又称有效测试。它的任务是检查软件的功能与性能是否与需求规格说明书中确定的
指标相符合。 三、简答题
1.软件测试的任务、目的是什么?软件调试的目的是什么?
答:测试阶段的任务是:根据软件开发各阶段的文档资料和程序的内部结构,精心设计一组“高产”的测试用例,利用这些实例执行程序,找出软件中潜在的各种错误和缺陷。 软件测试的目的:
(1)软件测试是为了发现错误而执行程序的过程。
(2)一个好的测试用例能够发现至今尚未发现的错误。 (3)一个成功的测试是发现了至今尚未发现的错误的测试。 调试的目的是确定错误的原因和位置,并改正错误。
2.白盒法有哪些逻辑覆盖标准?这些标准有什么关系? 答:白盒法逻辑覆盖标准有:
(1)语句覆盖: 为了个提高发现错误的可能性,在测试时应该执行到程序中的每一个语句。语句覆盖是指设计足够的测试用例,使被测试程序中每个语句至少执行一次。
(2)判定覆盖: 判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次,因此判定覆盖也称分支覆盖。
第 26 页(共 52 页)
软件工程串讲材料
(3)条件覆盖: 条件覆盖是指设计足够的测试用例,使得判定表达式中每个条件的各种可能的值至少出现一次。
(4)判定/条件测试: 该覆盖标准指设计足够的测试用例,使得判定表达式的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。
(5)条件组合覆盖: 条件组合覆盖是比较强的覆盖标准,它是指设计足够的测试用例,使得每个判定表达式中条件的各种可能的值的组合都至少出现一次。
(6)路径覆盖: 路径覆盖是指设计足够的测试用例,覆盖被测程序中所有可能的路径。
在实际的逻辑覆盖测试中,一般以条件组合覆盖为主设计测试用例,然后再补充部分用例,以达到路径覆盖测试标准。
这些标准的关系:语句覆盖发现错误能力最弱。判定覆盖包含了语句覆盖,但它可能会使一些条件得不到测试。条件覆盖对每一条件进行单独检查,一般情况它的检错能力较判定覆盖强,但有时达不到判定覆盖的要求。判定/条件覆盖包含了判定覆盖和条件覆盖的要求,但由于计算机系统软件实现方式的限制,实际上不一定达到条件覆盖的标准。条件组合覆盖发现错误能力最强,凡满足其标准的测试用例,也必然满足前四种覆盖标准。
3.属于黑盒法的测试用例设计方法有哪几种?试对这些方法作比较。 答:属于黑盒法的测试用例设计方法有: (1)等价类划分 (2)边界值分析
使用边界值分析方法设计测试用例时一般与等价类划分结合起来。但它不是从一个等价类中任选一个例子作为代表,而是将测试边界情况作为重点目标,选取正好等于、刚刚大于或刚刚小于边界值的测试数据。 (3)错误推测
在测试程序时,人们可能根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例,这就是错误推测法。 (4)因果图
等价类划分和边界值方法分析方法都只是孤立地考虑各个输入数据的测试功能,而没有考虑多个输入数据的组合引起的错误。 (5)综合策略
每种方法都能设计出一组有用例子,用这组例子容易发现某种类型的错误,但可能不易发现另一类型的错误。因此在实际测试中,联合使用各种测试方法,形成综合策略。
4.软件测试要经过哪几个阶段?各阶段的任务是什么?各个阶段与什么文档有关? 答:软件测试要经历阶段:
(1)单元测试:对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计的文档。
(2)集成测试:是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试,故也称组装测试或联合测试。该阶段涉及概要设计的文档。 (3) 确认测试:又称有效性测试。它的任务是检查软件的功能与性能是否与需求规格说明书中确定
的指标相符合。需求规和说明书是确认测试的基础。
5.渐增式测试与非渐增式测试有哪些区别?用渐增式测试时具体采用什么方法和策略组装模块? 答:非渐增式测试:首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起进行测试。
渐增式测试:逐个把未经过测试的模块组装到已经过测试的模块上去,进行集成测试。每加入一个新模块进行一次集成测试,重复此过程直至程序组装完毕。 渐增式测试有以下两种不同的组装模块的方法:
(1)自顶向下结合。该方法不需要编写驱动模块,只需编写桩模块。 (2)自底向上结合。该方法仅需编写驱动模块,不需编写桩模块。 6. 简述单元测试的内容。
答:单元测试主要针对模块的以下五个基本特征进行测试:
(1)模块接口:主要检查数据能否正确地通过模块。属性及对应关系是否一致。 (2)局部数据结构:说明不正确或不一致;初始化或缺省值错误;变量名未定义或拼写错误;数据类型不相容;上溢、下溢或地址错误等等。
(3)重要的执行路径:重要模块要进行基本路径测试,仔细地选择测试路径是单元测试的一
第 27 页(共 52 页)
软件工程串讲材料
项基本任务。
(4)错误处理:主要测试程序对错误处理的能力。
(5)边界条件:程序最容易在边界上出错,如输入/输出数据的等价类边界,选择条件和循环条件的边界,复杂数据结构(如表)的边界等等都应进行测试。
▓历年考题
全国2010年1月自考软件工程试题 10.确认测试也称为( A )P99 A.有效性测试 B.无效性测试 C.静态测试 D.动态测试 11.黑盒测试技术不包括( B ) ...
A.等价类划分 B.路径覆盖 C.边界值分析 D.错误推测
27.调试技术有简单的调试方法、归纳法调试、__演绎法__和回溯法调试。P101 33.集成测试P96
41.根据下列程序流程图,设计3组的测试用例,使之满足语句覆盖,对每组测试数据给出执行
路径、两个判定(1)和(3)的判定结果。
全国2009年10月自考软件工程试题
9.以下四种逻辑覆盖中,发现错误能力最弱的是( A ) A.语句覆盖 B.条件覆盖 C.判定覆盖 D.条件组合覆盖
10.软件工程领域中,与确认测试有关的软件开发阶段是( D ) A.编码 B.详细设计 C.概要设计 D.需求分析
11.对某个学生成绩系统进行测试,输入值是学生的成绩,范围为0~100,根据黑盒测试的等价类划分技术,下列划分正确的是( B )P90 A.1个合理等价类,1个不合理等价类 B.1个合理等价类,2个不合理等价类 C.2个合理等价类,1个不合理等价类 D.2个合理等价类,2个不合理等价类
27.软件产品在交付使用之前一般要经过以下四步测试:__单元测试__、集成测试、确认测试和系统测试。
33.黑盒测试法
41.根据下列程序流程图,设计不超过2组的测试用例,使之满足语句覆盖,要求给出每组测试数据的执行路径、输入值、输出值及两个判定(3)和(5)的判定结果。
第 28 页(共 52 页)
软件工程串讲材料
题41图
全国2009年1月自考软件工程试题
10.以下四种逻辑覆盖中,发现错误能力最强的是( D )P87 A.语句覆盖 B.条件覆盖 C.判定覆盖 D.条件组合覆盖 11.软件工程领域中,与集成测试有关的软件开发阶段是( C ) A.编码 B.详细设计 C.概要设计 D.需求分析
27.G.J.Myers提出:软件测试是为了发现__错误__而执行程序的过程。P82 33.白盒测试法:P84
39.简述单元测试的内容。P95
41.根据下面给出的程序流程图,设计不超过3组的测试用例,使之满足判定/条件覆盖,对每组测试数据给出执行路径、输入值、输出值、两个判定(3)和(5)的结果以及两个判定中每个条件的结果。
全国2008年10月自考软件工程试题
8.在进行软件测试时,首先应当进行以下哪项测试,然后再进行组装测试,最后再进行有效性测试( A )P95
第 29 页(共 52 页)
软件工程串讲材料
A.单元测试 B.系统测试 C.集成测试 D.确认测试 10.下列属于静态测试方法的是( D )P83 A.黑盒法 B.路径覆盖 C.白盒法 D.人工检测 18.关于软件测试的目的,下面观点错误的是( C ) A.为了发现错误而执行程序的过程
B.一个好的测试用例能够发现至今尚未发现的错误 C.证明程序是正确、没有错误的
D.一个成功的测试用例是发现了至今尚未发现的错误的测试
26.用来模拟被测模块的上级调用模块的模块称为_驱动模块__。P96 33.渐增式测试:P97
35.条件覆盖:P85
全国2008年1月自考软件工程试题
10.单元测试阶段主要涉及的文档为(B)。
A.需求设计 B.编码和详细设计 C.详细设计 D.概要设计 35.确认测试:P99
39.简述软件测试的任务、目的与类型。P82-P83
全国2007年10月自考软件工程试题
8.检查软件产品是否符合需求定义的过程称为( A ) A.确认测试 B.集成测试 C.系统测试 D.单元测试 12.集成测试是为了发现( A )
A.接口错误 B.编码错误 C.性能、质量不合要求 D.功能错误
27.软件产品在交付使用之前一般要经过_单元测试_、集成测试、确认测试和系统测试。 34.白盒测试:P84
41.测试题:
函数Find(array,L,R,value)的功能是在一个整数数组array中搜索第一个值为value的整数,
搜索的范围在数组下标L到R范围内。如搜索到有这个数,则函数值为第1个等于该数的下标,否则函数值等于-1。假设数组非空,数组长度可由一内置函数得知,数组第一个元素的下标为1。
请根据题意采用等价分类法设计测试用例。
全国2007年1月自考软件工程试题 3.以下哪一项不是软件测试时需要的信息( B )P94 .
A.软件配置 B.软件结构 C.测试工具 D.测试配置
10.软件测试方法中,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试( D )P85 A.结构合理性 B.软件外部功能 C.程序正确性 D.程序内部逻辑
12.以下哪种测试的任务是检查软件的功能与性能是否与需求规格说明书中确定的指标相 符合( B ) A.集成测试 B.确认测试 C.单元测试 D.系统测试
25.为了便于对照检查,测试用例应由输入数据和预期的__输出数据__两部分组成。P82 全国2006年10月自考软件工程试题
8.在白盒技术测试用例的设计中,以下覆盖标准中发现错误能力最强的是( C ) A.语句覆盖 B.判定/条件覆盖 C.条件组合覆盖 D.判定覆盖 9.软件调试技术包括( A )P100
A.回溯法调试 B.循环覆盖调试 C.边界值分析调试 D.集成测试调试
10.在软件测试中,首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起测试,称为( D )P97
A.确认测试 B.系统测试 C.渐增式测试 D.非渐增式测试
第 30 页(共 52 页)
软件工程串讲材料
25.白盒法中,___基本路径测试__首先以详细设计或源程序为基础,导出控制流程图的拓扑结构(程序图)。P88
32.错误推测法:P93
33.黑盒测试法:P84
37.软件测试要经过哪些步骤?简述这些测试的基本任务。P94
40.设有如下程序流程图
测试数据组1 x 0 y 0 3 -1 -2 1
全国2006年1月自考软件工程试题
8.以下哪一项属于白盒技术设计测试用例的方法?( A ) A.循环覆盖 B.等价类划分 C.边界值分析 D.因果图
24.在软件测试的所有覆盖方法中发现错误能力最弱的覆盖是_语句覆盖_。P85 25.黑盒测试又被称为数据驱动测试或__功能测试__。P84 33.白盒测试法:P84
41.下图为一个被测程序流程图,试用判定覆盖方法为它设计足够的测试用例。
0 测试数据组2 3 测试数据组3 4 测试数据组4 4 测试数据组5 根据表中的测试数据回答如下问题: (1)满足语句覆盖的最少测试组合是什么? (2)满足判定覆盖的最少测试组合是什么?
(3)满足条件组合覆盖的最少测试组合是什么?
第 31 页(共 52 页)
软件工程串讲材料
【其它】
7.下列属于用白盒技术设计测试用例的是( B )
A.错误推测 B.逻辑覆盖 C.等价类划分 D.因果图 33.静态测试
41.根据下列条件使用边界值分析法设计测试用例: 某一8位微机,其十进制整数定义为:以非零开头的数是十进制整数,其值的范围是 -128~127,如123,-45,0。
7.用白盒技术设计测试用例的方法包括( B ) A.边界值分析 B.循环覆盖 C.因果图 D.错误推测 8.软件测试的目的是( C )
A.为了表明程序没有错误 B.为了说明程序能正确地执行 C.为了发现程序中的错误 D.为了评价程序的质量 9.针对软件需求分析所进行的软件测试是指( B )
A.集成测试 B.确认测试 C.黑盒子测试 D.白盒子测试 34.动态测试
41.根据下列条件使用边界值分析法设计测试用例。
某一8位微机,其十六进制常数定义为:以0x或0X开头的数是十六进制整数,其值的范围是-7f—7f(表示十六进制的大小写字母不加区别)。如0x13,0X6A,-0x3c
7.软件测试中根据测试用例设计的方法的不同可分为黑盒测试和白盒测试两种,它们( D ) A.前者属于静态测试,后者属于动态测试 B.前者属于动态测试,后者属于静态测试 C.都属于静态测试 D.都属于动态测试
41.根据下列条件使用边界值分析法设计测试用例。
某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177。如 05,0127,-065
8.软件测试方法中的静态测试方法之一为( A )
A.计算机辅助静态分析 B.黑盒法 C.因果图 D.路径覆盖 9.在白盒法技术测试用例的设计中( A )是最弱的覆盖标准。 A.语句 B.路径 C.条件组合 D.判定 10.软件调试技术包括( C )
A.错误推断 B.集成测试 C.回溯法 D.边界值分析 35.确认测试:
39.简述软件测试的任务、目的与类型。
40.下图为一个被测程序流程图,试用条件覆盖方法为它设计足够的测
第 32 页(共 52 页)
软件工程串讲材料
40.下面是某程序的流程图:
(1)计算它的环路复杂性。
(2)为了完成基本路径测试,求它的一组独立的路径。 41.根据下列条件使用等价划分法设计测试用例。
某一8位微机,其十六进制常数定义为:以0x或0X开头的数是十六进制整数,其值的范围是-7f~7f(表示十六进制的大小写字母不加区别),如0X13,0X6A,-0X3c。
第8章 软件维护
▓主要内容
一、填空题、选择题
1.维护阶段是软件生存周期中时间最长的阶段,也是花费精力和费用最多的阶段。 2.采用软件工程方法开发软件,各阶段均有文档,容易维护,这种维护是结构化维护。 采用手工方法开发软件只有程序而无文档,维护困难,这是一种非结构化维护。
3.为提高可维护性,要使用的先进的、强有力的、实用的软件开发方法是面向对象方法。
4.维护中用来指出修改的工作量、工作性质、优先权、修改的事后性质的文档是软件修改报告。 所有软件维护申请报告要按规定方式提出,该报告也称软件问题报告。 5.维护中,因修改全局或公用数据而引起的错误是数据副作用。 6.软件维护工作的活动分为生产性活动和非生产性活动。 生产性维护活动是分析、评价、修改设计和编写程序代码。
非生产性维护活动是理解程序代码、设计、功能和解释数据结构等。
7.在软件交付使用后,由于在软件开发过程中产生的错误没有完全彻底在开发阶段发现,必然有一部分隐含错误带到维护阶段。
8.软件维护费用高的主要原因是生产率非常低。软件维护困难的主要原因是开发方法的缺陷。 9.有两类维护技术:在开发阶段使用来减少错误,提高软件可维护性的面向维护技术;在维护阶段用来提高维护的效率和质量的维护支援技术。
10.维护中,因误删除一个标识符而引起的错误是编码副作用。
第 33 页(共 52 页)
软件工程串讲材料
11.可维护性的特性中相互促进的是(可理解性和可测试性)。 12.可维护性的特性中,相互矛盾的是(效率和可修改性)。 二、名词解释
1.校正性维护:为了识别和纠正运行中产生的错误而进行的维护称为校正性维护。 2.适应性维护:为适应软硬件环境变化而修改软件的过程是适应性维护。
3.完善性维护:为增加软件功能和性能而进行的软件修改维护过程是完善性维护。
4.预防性维护:为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。 5.软件可维护性:软件可维护性是指软件能够被理解、校正、适应及增强功能的容易程度。 6.软件维护的副作用:在软件维护中,因修改软件而造成的错误或其他不希望出现的情况称为维护的副作用。 三、简答题
1.软件维护有哪些类型?
答:软件维护类型有:校正性维护、完善性维护、适应性维护、预防性维护。 2.软件维护的特点是什么?
答:结构性维护、非结构性维护、别人的程序难懂、开发和维护在人员和时间上的差异、文档的不一致性、维护不是一项吸引人的工作。 3.软件维护的流程是什么?
答:软件维护的流程是:制定维护申请报告、审查申请报告并批准、实施维护并做记录、复审。 4.软维护的副作用有哪些?
答:软件维护的副作用有:代码副作用、数据副作用、文档副作用。 编码副作用:在使用程序设计语言修改源代码时可能引入错误。
数据副作用:在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件错误。 文档副作用:对数据流、软件结构、模块逻辑或任何其他有关特性进行修改时,必须对相关技术文档进行相应修改,否则会导致文档与程序功能不匹配、缺省条件改变、新错误信息不正确等错误,使文档不能反映软件当前的状态。 5.可维护性度量的质量特性有哪些?
答:软件可维护性可用下面七个质量特性来衡量,即可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。 6.提高可维护性有哪些方法?
答:(1)建立明确的软件质量目标;(2)使用先进的软件开发技术和工具;(3)建立明确的质量保证;(4)选择可维护的语言;(5)改进程序的文档 7. 软件维护的困难性表现在哪几个方面? 答:(1)读懂别人的程序是困难的。(2)文档的不一致性。(3)软件开发和软件维护在人员和时间上的差异;(4)软件维护不是一项吸引人的事。
▓历年考题
全国2010年1月自考软件工程试题
12.为了增加软件功能和性能、提高软件运行效率而进行的维护活动称为( C )P104 A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护
28.软件可维护性可用七种质量特性来衡量,分别是__可理解性__、可测试性、可修改性、可靠
性、可移植性、可使用性和效率。P111 全国2009年10月自考软件工程试题
12.为了使软件适应环境的变换而修改软件的维护活动称为( B )P104 A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护
28.软件维护的副作用有三种,分别是编码副作用、__数据副作用__、文档副作用。P110 39.简述提高软件可维护性的方法。
全国2009年1月自考软件工程试题
12.软件维护的副作用不包括( D ) A.编码副作用 B.数据副作用 C.文档副作用 D.效率副作用
28.软件维护的内容有四种:校正性维护、_适应性维护_、完善性维护和预防性维护。 全国2008年10月自考软件工程试题
6.最早提出软件系统维护问题的阶段是( B )
第 34 页(共 52 页)
软件工程串讲材料
A.可行性分析 B.需求分析 C.概要设计 D.详细设计 l3.可维护软件的主要特性包括( A )P111 A.可理解性、可修改性、可移植性 B.可使用性 C.可维护性、可使用性、可靠性 D.可测试性 全国2008年1月自考软件工程试题
11.软件维护会产生副作用,下面选项中不属于维护副作用的是( B )。
A.编码副作用 B.测试副作用 C.文档副作用 D.数据副作用 26.软件维护的内容包括校正性维护、适应性维护、_完善性维护_和预防性维护。 全国2007年10月自考软件工程试题
10.在整个软件维护阶段所花费的全部工作中,所占比例最大的是( C ) A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护
28.不采用软件工程的方法开发软件,软件只有程序而无文档,从而导致维护工作困难,这是一种__非机构化__的维护。P105
全国2007年1月自考软件工程试题
9.软件维护是软件生命周期中的固有阶段,一般认为,以下哪种软件维护在整个维护活动中所占的比例最小( C )
A.校正性维护 B.适应性维护 C.预防性维护 D.完善性维护 33.完善性维护:P104
39.简述提高软件可维护性的方法 P112
全国2006年10月自考软件工程试题
6.维护中,因修改文件的打开或关闭而引起的错误是( C )P110 A.文档副作用 B.数据副作用 C.编码副作用 D.设计副作用 7.诊断和消除程序在使用过程中发生错误的过程称为( A )P104 A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护 11.源代码的可维护性表现了程序设计语言的( B )P76 A.心理特性 B.工程特性 C.技术特性 D.传统特性 全国2006年1月自考软件工程试题
6.软件维护中,因修改交互输入的顺序,没有正确的记录而引起的错误是以下哪一项产生的副作用?( A )P110
A.文档 B.数据 C.编码 D.设计 7.以下属于软件维护阶段文档的是( C )
A.软件需求说明 B.操作手册 C.软件问题报告 D.测试分析报告 36.软件维护的困难性表现在哪几个方面? 【其它】
10.软件生命周期中所花费用最多的阶段是( D )
A.详细设计 B.软件编码 C.软件测试 D.软件维护 6.生产性维护活动包括( A ) A.修改 设计 B.理解设计 C.解释数据结构 D.理解功能 7.随着软硬件环境变化而修改软件的过程是( B ) A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护 32.完善性维护
4.维护中因删除一个标识符而引起的错识是_________副作用。( C ) A.文档 B.数据 C.编码 D.设计 5.软件维护的困难主要原因是( D ) A.费用低 B.人员少 C.开发方法的缺陷 D.维护难 5.为了提高软件的可维护性或可靠性而对软件进行的修改称为( D ) A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护 6.面向维护的技术涉及软件开发的( D )阶段。 A.设计 B.编码 C.测试 D.所有 33.维护的副作用
第 35 页(共 52 页)
软件工程串讲材料
第9章 软件开发的增量模型
▓主要内容
一、填空题、选择题
1.瀑布模型属于整体开发模型,增量模型属于非整体开发模型。 2.快速原型的思想是在研究需求分析阶段的方法技术中产生的。 3.用原型过程来代替设计阶段,考察设计方案的可行性与合理性,这种快速原型的类型是实验型原型。
4.构造原型时,忽略一切暂时不关心的部分,必须注意功能性能的取舍。 1.用于整个开发阶段,及早提交一个原型系统是演化型原型。 2.快速原型模型的主要特点之一是(及早提供工作软件)。 3.渐增模型是(瀑布模型的改进)。
4.构造原型过程中,需求分析时要(简单快速分析)。
1.瀑布模型本质上是一种线性顺序模型, 瀑布模型的问题是(缺乏灵活性)。
2.瀑布模型不适应需求可变的软件开发,只有到开发结束时才能见到整个软件系统。
3.增量模型在开发过程中以一系列增量方式开发系统,忽略某阶段的细节,从而尽早产生工作软件。 4.增量构造模型在分析和设计阶段按整体方式开发,按增量方式开发的是编码和测试阶段。 ........5.演化提交模型中,项目开发各阶段都是按增量方式开发的。
7.用原型过程来代替需求分析,使需求说明完整、一致、准确,该原型是探索型原型。 8.用原型过程来代替全部开发阶段,这种快速原型是演化型原型。 9.若原型不满足需求说明,则根据明确的要求修改原型。 6.构造原型时,主要考虑(原型要体现的特征)。 二、名词解释
1.增量开发:增量开发是指在项目开发周期内,以一定的时间间隔开发部分工作软件。
2.增量提交:增量提交是指在项目开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档。
3.原型:原型是指模拟某种产品的原始模型,在其他产业中经常使用。
软件开发中的原型是软件的一个早期可运行的版本,它反映了最终系统的重要特性。
5.增量构造模型:它在瀑布模型基础上,对一些阶段进行整体开发,对另一些阶段进行增量开发。即前面的开发阶段按瀑布模型进行整体开发,后面的开发阶段按增量方式开方。
6.演化提交模型:它在瀑布模型的基础上,所有阶段都进行增量开发,也就是说不仅是增量开发,也是增量提交。
7.快速原型模型:它是增量型的另一种形式。它是在开发真实系统之前,构造一个原型的基础上,逐渐完成整个系统的开发工作。 三、简答题
1、渐增模型有那几种?有哪些特点?
答:增量构造和演化提交。增量构造是瀑布模型的基础上在一些的阶段中采用增量开发一些阶段 整体开发。演化提交是在瀑布模型的基础上所有阶段都使用增量开发也就是不紧使用增量开发也 使用增量提交。
2、快速原形有那几种?各自的特点是什么?
答:探索型、试验型、演化型。探索型:在需求阶段帮助明确理解需求用完抛弃。试验型:在设 计阶段考核现行方案是否合适用完抛弃。演化型:及早的向用户展示一个系统的原形包含主要的 功能得到用户的认可后将原形不断的扩充直到系统完成。 3、快速原形开发的步骤? 答:快速原形开发的步骤:
(1)快速分析。迅速确定系统的基本需求;
(2)构造原型。根据基本需求说明尽快实现一个可行的系统;
(3)运行原型。这是发现问题、消除误解、开发者与用户充分协调的一个步骤。
(4)评价原型。在运行的基础上,考核评价原型的特性,纠正过去交互中的误解与分析中的错误,增添新的要求;
(5)修改。根据评价原型的活动结果进行修改。 4、评价快速原形的优缺点?
答:可以更清楚的理解用户的需求、开发阶段可以用原形解决局部的困难,通过原形的开发可以 让用户看见系统的初步功能的实现有利与用户的开发人员更好的交流,及早的解决存在的问题减
第 36 页(共 52 页)
软件工程串讲材料
少开发的风险。
缺乏好的管理工具和开发环境、缺乏管理机制、对开发人员的技术要求高、更新文档比较困难。 5、对比瀑布模型和增量模型,指出增量模型的新思路。
答:瀑布模型是一种整体的开发模型,开发的每一阶段必须按线性的顺序来进行,前一阶段的工 作没有完成后一阶段的工作就不能开始。由于需求分析的易变性使的软件开发工作不顺利,同时 瀑布模型的每个阶段有不可避免的错误出现,那么延伸到以下的各个阶段错误就会放大。增量模 型是非整体开发的模型它采用渐增模型和原形模型,软件的开发是用增量开发和增量提交,在项目开发周期内,以一定的时间间隔开发部分工作软件;增量提交是指在项目开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档。 6. 增量构造模型有什么特点?
答:它在瀑布模型基础上,对一些阶段进行整体开发,对另一些阶段进行增量开发。即前面的开发阶段按瀑布模型进行整体开发,后面的开发阶段按增量方式开方。即需求分析阶段和设计阶段都是按瀑布模型的整体方式开发,但是编码阶段和测试阶段是按增量方式开发。
▓历年考题
全国2010年1月自考软件工程试题
13.瀑布模型与增量模型之间的本质区别是( B )P117
A.瀑布模型属于非整体开发模型,增量模型属于整体开发模型 B.瀑布模型属于整体开发模型,增量模型属于非整体开发模型 C.瀑布模型容易适应需求变化,增量模型不容易适应需求变化 D.瀑布模型减少技术、应用风险,增量模型增大技术、应用风险 39.简述快速原型的开发步骤。
全国2009年10月自考软件工程试题
13.根据原型的不同作用,快速原型模型有三类模型,分别为( C )P118 A.探索型原型、归纳型原型、演化型原型 B.归纳型原型、实验型原型、演化型原型 C.探索型原型、实验型原型、演化型原型 D.探索型原型、实验型原型、归纳型原型 全国2009年1月自考软件工程试题 13.原型的优点不包括( A )P125
A.对设计人员水平及开发环境要求不高 B.可及早为用户提供有用的产品 C.可及早发现问题,随时纠正错误 D.可减少技术、应用的风险 全国2008年10月自考软件工程试题
30.增量模型根据增量方式和形式的不同,分为_渐增模型_和原型模型。 全国2008年1月自考软件工程试题
20.对于使用原型的建议,下面说法错误的是( C )。 P124 A.开发周期很长的项目,可通过原型开发来缩短开发周期
B.系统的使用可能变化较大,不能相对稳定,而原型模型具有适应变化的机制 C.缺乏开发工具,或对原型的可用工具不了解的时候宜使用原型 D.用户对系统的需求较为模糊,对某种要求缺乏信心时宜使用原型
28.渐增模型是瀑布模型的变种,分为两类:增量构造模型和_演化提交模型_。P118
全国2007年10月自考软件工程试题
18.在快速原型模型的开发过程中,仅用于代替设计阶段的原型是( C )P118 A.探索型模型 B.演化型模型 C.实验型模型 D.提交型模型
19.对于构造原型的建议,下面说法错误的是( A )P123
A.暂不考虑错误恢复和处理,但应考虑速度、空间等性能效率方面的要求 B.可降低可靠性和软件质量标准
C.原型界面部分的设计,最好能与最终系统的界面相容
D.根据不同的软件类型和应用领域,可使用不同风格的高级语言来构造原型 39.简述原型的开发步骤。
全国2007年1月自考软件工程试题
第 37 页(共 52 页)
软件工程串讲材料
14.对于构造原型的建议,下面说法错误的是( D )P123 A. 暂不考虑速度、空间等性能效率方面的要求。 B.暂不考虑错误恢复和处理。 C.可降低可靠性和软件质量标准。
D.原型界面部分的设计,暂不考虑与最终系统的界面相容。 l7.对于一个大型系统,若对设计方案没有把握,可以通过以下哪种原型来证实设计方案的正确性。( B )P118
A.探索型 B.实验型 C.演化型 D.增量型
27.由于运用原型的目的和方式不同,在使用原型中可以采取__抛弃__策略和附加策略。 全国2006年10月自考软件工程试题 5.构造原型时,主要考虑( B )
A.全部功能 B.原型要体现的特征 C.全部细节 D.全部要求
23.软件开发的原型模型可以分为三类,它们是:探索型原型、实验型原型和_演化型原型_。 36.增量构造模型有什么特点?P124
全国2006年1月自考软件工程试题
5.快速原型思想是在研究以下哪个阶段的方法和技术中产生的?( B ) A.软件开发 B.设计 C.编码 D.需求分析 37.增量模型和瀑布模型的本质区别是什么? 【其它】
8.瀑布模型的存在问题是( B )
A.用户容易参与开发 B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 5.用于设计阶段,考核实现方案是否可行的是( C )原型。 A.探索型 B.演化型 C.实验型 D.增量型
3.在快速原型模型的开发过程中,用原型过程来代替全部开发阶段所用模型是_________模型。( B )
A.探索型原型 B.演化型原型 C.实验型原型 D.增量型原型 31.增量开发 32.增量提交
37.简述快速原型模型的开发步骤。
11. 下列选项中,不属于快速原型模型的优点是( C )。 A. 可及早发现问题,随时纠正错误 B. 减少技术应用风险,提高生产率
C. 容易作到彻底测试,更新文档较为容易 D. 适应需求变化,能有效提高系统质量 8. 运用快速原型的策略主要有抛弃策略和__附加__策略。
3.快速原型模型中,用于及早向用户提交一个原型系统的是( D )
A.实验型原型 B.探索型原型 C.提交型原型 D.演化型原型
24.演化提交模型是在___瀑布模型____的基础上,项目开发的各阶段都进行增量开发。
第10章 面向对象的方法
▓主要内容
一、填空题、选择题
1.对象具有封装性,实现了数据和操作的结合。 2.类的实例化是对象。
3.类具有属性,描述类的属性用数据结构。 4.类具有操作,它是对象行为的抽象。
6.子类自动共享父类的属性和操作的机制称为继承。
7不同应用中信息共享的这种机制和构造是通过类库来实现的。 9.对象模型的主要元素是类、关联和关系。 10.受限关联由两个类和一个限定词组成。
1.汽车有一个发动机。汽车和发动机之间的关系是(整体部分)关系。 3.软件部件的内部实现与外部可访问性的分离,是指软件的(封装性)。 5.动态模型的描述工具是状态图。
第 38 页(共 52 页)
软件工程串讲材料
6.在只有单重继承的类层次结构中,类层次结构是树型层次结构。 7.表示对象的相互行为的模型是动态模型。 8.有时间间隔的操作是(活动)。
9.与事件联系在一起的瞬时操作是(动作)。 10.在确定类时,所有(名词)是候选的类。 11.常用动词或动词词组来表示关联。
二、名词解释
1.对象:对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。 2.类:具有相同或相似性质的对象的抽象就是类。 3.属性:指的是类中对象所具有的性质(数据值)。它是对象的状态的抽象,用数据结构来描述类的属性。
4.操作:是类中对象所使用的一种功能或变换。它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
5.消息:对象之间进行通信的结构叫做消息。
6.消息传递:当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。接收消息的对象经过解释,然后给予响应。这种通信机制称为消息传递。
7.方法:类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。 8.关系:
9.关联:两个或多个类之间的相互依赖就是关联。 10.一般具体关系 11.整体部分关系
12.继承:是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
13.单重继承:在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。 14.多重继承:在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。
15.多态性:多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。 16.角色
17.受限关联:受限关联由两个类及一个限定词组成,限定词是一种特定的属性,用来有效的减少关联的重数,限定词在关联的终端对象集中说明。
18.封装:封装性是指所有软件内部都有明确的范围以及清楚的外部边界。每个部件都有友好的界面接口,软件部件的内部实现与外部可访问性分离。
19.对象模型:对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系。
20.动态模型:动态模型是与时间和变化有关的系统性质。该模型描述了系统的控制结构,它表示了瞬间的、行为化的系统控制性质,它关心的是系统的控制,操作的执行顺序,它表示从对象的事件和状态的角度出发,表现了对象的相互行为。
21.功能模型:功能模型描述了系统的所有计算。功能模型指出发生了什么,表明一个计算如何从输入值得到输出值,它不考虑计算的次序。由多张数据流图组成。 22.事件:是指定时刻发生的某件事。 23.状态:状态是对象属性值的抽象。
24.事件追踪:即不同对象之间的事件排序表,对象为表中的列,给每个对象分配一个独立的列。 25.状态图:对各对象类建立状态图,反映对象接收和发送的事件,每个事件跟踪都对应于状态图中一条路径。
26.处理:数据流图中的处理用来改变数据值。最低层处理是纯粹的函数,一张完整的数据流图是一个高层处理。
27.数据流:数据流图中的数据流将对象的输出与处理、处理与对象的输入、处理与处理联系起来。 28.动作对象:动作对象是一种主动对象,它通过生成或者使用数据值来驱动数据流图。
29.数据存储对象:数据流图中的数据存储是被动对象,它用来存储数据。它与动作对象不一样,数据存储本身不产生任何操作,它只响应存储和访问的要求。
三、简答题
1.说明面向对象的特征和要素。 答:面向对象的特征:
第 39 页(共 52 页)
软件工程串讲材料
(1)对象唯一性。每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。 (2)分类性。分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。
(3)继承性。继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
(4)多态性(多形性)。多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同
的结果。
面向对象的要素:
(1)抽象。抽象是指强调实体的本质、内在的属性,忽略一些无关紧要的属性。 (2)封装性(信息隐藏)。封装性是指所有软件内部都有明确的范围以及清楚的外部边界。 (3)共享性。面向对象技术在不同级别上促进了共享,包括同一类中的共享和在不同应用中共享。
2.说明对象模型的特征。
答:对象模型表示了静态的、结构化的、系统数据性质,描述了系统的静态结构,表现了对象间的相互关系,模型主要关心系统中对象的结构、属性和操作使用对象图来描述。 3.说明动态模型的特征。
答:动态模型描述了与时间和变化有关的系统性质,描述的是系统的控制结构,表示了瞬间的系统控制性质,它关心系统的控制,操作顺序,从对象的状态角度出发表现对象的相互行为。 4. 说明面向对象的实现。 答:选择面向对象语言;程序设计风格 (1)提高重用性(2)提高可扩充性 (3)提高健壮性;类的实现。 5.说明功能模型的特征。
答:功能模型描述了系统的所有计算。功能模型指出发生了什么,表明一个计算如何从输入值得到输出值,它不考虑计算的次序。由多张数据流图组成。 6.说明分析阶段建立的三个模型的关系。
答:功能模型描述发生了什么,动态模型确定什么时候发生,对象模型确定发生的客体。 7.说明建立对象模型的过程。
答:对象模型:确定类、准备数据字典、确定联系、确定属性、完善对象模型。 8.说明建立动态模型的过程。
答:动态模型:准备脚本、准备事件跟踪、构造状态图。 9.说明建立功能模型的过程。
答:功能模型:确定输入输出值、建立DFD。 10.说明系统设计的步骤。
答:系统结构的一般框架;系统分解——建立系统的体系结构;选择软件控制机制;数据存储管理;设计人机交互接口。 11.说明对象设计的步骤。
答:三种模型的结合,获得操作,确定操作的目标对象;算法设计 ;优化设计;控制的实现;调整继承;关联的设计。
▓历年考题
全国2010年1月自考软件工程试题
14.面向对象分析中,对象模型描述了系统的( A )P132 A.静态结构 B.动态结构 C.控制结构 D.顺序结构 15.面向对象设计中存在三种内聚,分别是( D )P152 A.属性内聚、操作内聚、类内聚 B.操作内聚、类内聚、整体-部分内聚 C.属性内聚、操作内聚、对象内聚 D.操作内聚、类内聚、一般-具体内聚
29.UML将Booch方法、OMT方法和__OOSE__的表示方法统一,并进一步发展为大众所接受的
标准建模语言。 30.面向对象分析中,动态模型使用__状态图_作为描述工具,该图反映了状态与事件的关系。P136 全国2009年10月自考软件工程试题
14.面向对象开发方法中,动态模型使用的描述工具是( A ) A.状态图 B.对象图 C.数据流图 D.类图
15.在面向对象方法建立的对象模型中,类之间的关联具有多重性,其中小空心圆表示的重数是( A) A.0或1 B.1 C.0到多 D.1到多
第 40 页(共 52 页)
软件工程串讲材料
29.面向对象设计可以细分为系统设计和___对象设计__。
30.面向对象分析要建立三个模型,其中___对象___模型是三个模型的核心,也是其他两个模型的框架。
全国2009年1月自考软件工程试题
14.UML统一了三种面向对象方法的表示方法,这三种面向对象方法是( B ) A.Coad方法、OMT方法、OOSE方法 B.Booch方法、OMT方法、OOSE方法 C.Booch方法、Coad方法、OOSE方法 D.Booch方法、OMT方法、Coad方法 15.面向对象的类层次结构中,聚集关系是一种( B ) A.“一般——特殊”关系 B.“整体——部分”关系 C.“相互依赖”关系 D.“一般——具体”关系
29.面向对象分析模型有三种,分别是:对象模型、__动态模型__和功能模型。
30.对面向对象软件的测试可分为四个层次进行,这四个层次是:算法层、类层、__模板层__和系统层。
全国2008年10月自考软件工程试题
20.面向对象的开发方法中,以下哪种方法原是面向Ada语言的,并处于面向对象开发方法的奠基性地位( A ) A.Booch方法 B.Coad方法 C.UML语言 D.OMT方法 全国2008年1月自考软件工程试题
16.汽车是一种交通工具,汽车类和交通工具类之间的关系是( A )。
A.一般具体 B.has a C.整体部分 D.组成 24.在类的层次结构中,通常上层类称为父类或超类,下层类称为__子类____。 25.软件部件的内部实现与外部可访问性分离,这是指软件的_封装性__。 29.状态图反映了__状态与事件____的关系。 33.多态性:
全国2007年10月自考软件工程试题
20.面向对象开发方法中,将在面向对象技术领域内占主导地位的标准建模语言是( C ) A.Booch方法 B.Coad方法 C.UML语言 D.OMT方法
29.子类自动共享父类数据结构和方法的机制是__继承性___,这是类之间的一种关系。 全国2007年1月自考软件工程试题
l8.对UML的叙述不正确的是( D )
A.UML统一了Booch方法、OMT方法、OOSE方法的表示方法。
B.UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。 C.UML融入了软件工程领域的新思想、新方法和新技术。
D.UML仅限于支持面向对象的分析与设计,不支持其它的软件开发过程。 30.面向对象分析的目的是对__客观世界系统_____进行建模。 34.类的继承性:
40.说明面向对象的要素以及这些要素的具体含义。
全国2006年10月自考软件工程试题 4.面向对象的要素包含( B )
A.对象的唯一性 B.抽象 C.继承性 D.分类性 全国2006年1月自考软件工程试题
23.面向对象分析阶段所使用的三种模型是__对象模型___、动态模型和功能模型。 32.类的继承性:
第11章 软件质量与质量保证
▓主要内容
一、填空题、选择题
1.贯穿软件生存期中的一个极为重要的问题是软件质量。 2. 为了作好软件质量评价,必须在开发前定义其质量需求。 3.质量度量准则是为定量度量质量而规定的一些检查项目。
第 41 页(共 52 页)
软件工程串讲材料
4.软件可靠性是指在给定的条件与时间内,在规定的环境条件下系统完成所指定的软件功能的概率。
5.我们将评审“设计的规格说明书是否符合用户的要求”称为设计质量评审。 6.软件复杂性度量的参数主要有难度、结构、智能度和规模。 7.软件的规格说明分为外部规格说明和内部规格说明。
8.设计质量的评审是针对需求分析阶段产生的软件需求规格说明书、数据需求规格说明,在软件概要设计阶段产生的软件概要设计说明书进行的评审。 9.程序质量评审通常是从开发者的角度进行评审,直接与开发技术有关。它是着眼于软件本身的结构与运行环境的接口变更带来的影响而进行的评审活动。 10. 软件是不可见的复杂的逻辑实体,它不同于任何其他制造业的产品。使得软件质量难于把握的一个因素是软件配置。
11.McCabe复杂性度量又称环路度量.
12.当程序的分支数目或循环数目增加时其复杂度也增加,因此环路的复杂度取决于程序控制结构的复杂度。
13.提高软件质量和可靠性的技术大致可分为两大类,一类是避开错误技术,另一类是容错技术。 14.质量保证策略大致分为三个阶段:以检测为重、以过程管理为重和以新产品开发为重。 15.软件产品制成后才进行检测,这种检测只能判断产品的质量,不能提高产品质量。 16.把质量保证工作重点放在过程管理上,对制造过程的每一环节都进行质量控制。 17.软件复杂性主要表现在程序复杂性。程序的复杂性主要指模块内程序的复制性。
18.为了减少软件开发费用,缩短软件开发周期,减少软件内部潜在错误,可以减少程序复杂性,以提高软件的简单性和可理解性。
19.在软件的设计中占有极其重要的地位的是软件功能结构,它是联系用户跟开发者的规格说明。 20.影响软件质量的因素有可直接度量的因素和只能间接度量的因素两大类。。
21.ISO的软件质量评价模型分为三个层次,其中第一层称为质量特性层;第二层称为质量子特性层;第三层称为度量层。
22. 在软件开发和维护的过程中,为了定量地评价软件质量,必须对软件质量特性进行度量。 23. 对白盒测试和黑盒测试补充的一种有效的方法是加强阶段评审工作。 24.软件质量必须在整个开发期间加以保证。
25. 系统因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为软件容错。 26. .许多产品的质量问题源于新产品的开发设计阶段,因此在产品开发设计阶段就应采取有力措施来消灭由于设计原因而产生的质量隐患。
27.程序能够按要求的精确度实现与其功能的程度,称作正确性。
28.对软件产品,一般有4个方面影响着产品的质量,除了过程质量、人员素质及成本、时间和进度等条件外,其中很重要的是开发技术。
29.质量保证,它是为保证产品和服务充分满足(消费者)要求而进行的有计划、有组织的活动。 30.软件可靠性是最重要的软件特性,通常用它来衡量在规定的条件和时间内,软件完成规定功能的能力。
31.软件可靠性的定量指标,常借用硬件可靠性的定量度量方法来度量软件的可靠性,其中MTBF是平均失效间隔时间。 MTTF是平均时效等待时间。 二、名词解释
1. 软件质量:与确定的功能和性能需求一致性、与成文的开发标准相一致性、与所有专业开发的软件所期望的隐含特性的一致性。
2. 软件质量保证:软件的质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量的活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。
3. 可测试性:测试软件以确保其能够执行预定功能所需工作量的程度。
4. 可移植性:将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需的工作量。
5. 可重用性:一个软件(或软件部件)能再次用于其他相关应用的程度。
6. 容错软件:规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件为具有容错功能的软件,即容错软件。
7. 冗余:是指实现系统规定功能是多余的那部分资源,包括硬件、软件、信息和时间。 8. 软件可靠性:软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度。 9. 正确性:软件特性中,程序能够满足规格说明和完成用户业务目标的程度,称作正确性。 15. 完整性:软件或数据不受未授权人控制的程度,称作完整性。
第 42 页(共 52 页)
软件工程串讲材料
16. 可用性:用户熟悉、使用及准备输入和解释输出所需工作量的大小。 17. 可维护性:找到并改正程序中的一个错误所需代价的程度。 18. 适应性:修改或改进一个已投入运行的软件所需工作量的程度。 19. 可互操作性:将一个系统耦合到另一个系统所需的工作量。 三、简答题
1.软件质量的含义是什么?
答:软件质量:与确定的功能和性能需求一致性、与成文的开发标准相一致性、与所有专业开发的软件所期望的隐含特性的一致性。 2.影响软件质量的因素分为哪两大类?
答:影响软件质量的因素可以分为两大类:
(1) 可以直接度量的因素,如单位时间内千行代码(KLOC)中产生的错误数。 (2) 只能间接度量的因素,如可用性或可维护性。 4.ISO提出的关于软件质量度量模型由哪三个层次组成?
答:软件质量需求评价准则、软件质量设计评价准则和软件质量度量评价准则三层。 5.软件质量保证的策略可以分为哪几个阶段?各有什么特征? 答:质量保证策略的发展大致可以分为以下三个阶段:
(1) 以检测为重。产品制成后才进行检测,这种检测只能判断产品的质量,不能提高产品质量。 (2) 以过程管理为重。把质量保证工作重点放在过程管理上,对制造过程的每一道工序都进行质量控制。
(3) 以新产品开发为重。
6.软件质量保证的主要任务是什么? 答:质量保证的主要任务是:
(1) 正确定义用户要求。 (2) 技术方法的应用。 (3) 提高软件开发的工程能力。 (4) 软件的复用。 (5) 发挥每个开发者的能力。 (6) 组织外部力量协作。
(7) 排除无效劳动。最大的无效劳动是因需求规格说明有误、设计有误而造成的返工。 7.质量度量模型主要有哪几种?各有什么特征?有什么不同?
8.软件复杂度量主要包含哪几方面内容? 答:软件复杂性度量的参数很多,主要有: (1) 规模,即总共的指令数,或源程序行数。
(2) 难度,通常由程序中出现的操作数的数目所决定的量来表示。 (3) 结构,通常用于程序结构有关的度量来表示。 (4) 智能度,即算法的难易程度。 9.程序复杂性的度量方法有哪些?
答:代码行度量法、McCabe度量法。 10.软件可靠性度量模型可以分为哪几类?
11.为什么要进行软件评审?软件设计质量评审与程序质量评审都包括哪些内容?
答:软件评审是一个过滤器,它使用在软件开发的各个阶段,通过软件评审可以及时的发现软件中存在的问题然后加以改正。设计质量评审:评审可靠性、评审可移植性、评审可测试性、评审规格说明是否符合用户的要求、评审保密情况的实施、评审是否有可复用性。 12.如何实现容错软件?通常采用哪些方法?
答:定义:规定功能的软件在出现错误是仍然可以在一定程度上完成要求的功能、规定功能的软件可以屏蔽错误、规定功能的软件可以在出错的时候自动恢复到正常的状态、规定功能的软件在一定的程度上有容错的能力。 容错技术的四种主要手段:
(1)结构冗余:是通常用的冗余技术。按其工作方式,它分为静态、动态和混合冗余三种。 (2)信息冗余:为检测或纠正信息在运算或传输中的错误须外加一部分信息,这种现象称为信息冗余。
(3)时间冗余:是指以重复执行指令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。
(4)冗余附加技术:是指为实现上述冗余技术所需的资源和技术。包括程序、指令、数据、存放和调用它们的空间和通道等。
13. 从开发者角度进行程序质量的评审时,软件的结构包括哪些主要内容?
答:软件的结构包括:(1) 功能结构; (2) 功能的通用性;(3) 模块的层次;(4) 模块结构;(5) 处理过程的结构。
第 43 页(共 52 页)
软件工程串讲材料
20. 软件复杂性主要体现在哪些方面?减少软件复杂性有哪些优点?
答:软件复杂性主要表现在程序的复杂性。程序的复杂性主要指模块内程序的复杂性。它直接关联到软件开发费用的多少、开发周期长短和软件内部潜伏错误的多少。 减少程序的复杂性,可提高软件的简单性和可理解性,并使软件开发费用减少,开发周期缩短,软件内部潜藏错误减少。
▓历年考题
全国2010年1月自考软件工程试题
16.McCall质量度量模型中,与“软件系统对非授权人访问软件或数据行为的控制程度”所对应
的软件质量特性是( B ) A.正确性 B.完整性 C.可维护性 D.可用性
20.软件复杂性度量的参数中,能反映“软件总共的指令数,或源程序行数”的是( A ) A.规模 B.难度 C.结构 D.智能度 34.软件可靠性
全国2009年10月自考软件工程试题
16.McCall质量度量模型中,与“用户熟悉、使用及准备输入和解释输出所需的工作量的大小”所对应的软件质量特性是( D ) A.正确性 B.完整性 C.可靠性 D.可用性
20.“与程序结构有关的度量”对应的软件复杂性度量参数是( C ) A.规模 B.难度 C.结构 D.智能度 34.软件质量保证:
全国2009年1月自考软件工程试题
16.软件质量特性中,“软件系统按照设计要求,在规定时间和条件下不出故障,持续运行的程度”对应的特性是( C ) A.正确性 B.完整性 C.可靠性 D.可用性
20.软件复杂性度量的参数中,由程序中出现的操作数数目所决定的量表示的参数是 ( B ) A.规模 B.难度 C.结构 D.智能度 34.软件质量:
全国2008年10月自考软件工程试题
16.下列不属于通常冗余技术的是( D )
A.结构冗余 B.信息冗余 C.时间冗余 D.代码冗余
27.软件复杂性度量的参数很多,主要有规模、_难度__、结构、智能度。 全国2008年1月自考软件工程试题
15.在McCall软件质量度量模型中,面向软件产品修改的质量因素为( C )。 A.可用性 B.完整性 C.适应性 D.互操作性 18.对McCabe度量法,叙述错误的是( C )。
A.McCabe度量法是一种基于程序控制流的复杂性度量法
B.McCabe度量法以图论为工具,用图的环路作为程序复杂性的度量值 C.McCabe度量法将简单IF语句和赋值语句的复杂性同等看待 D.McCabe复杂性度量也称为环路度量 34.软件质量保证:
全国2007年10月自考软件工程试题
16.在McCall软件质量度量模型中,面向软件产品操作的质量因素是( A ) A.正确性 B.可维护性 C.适应性 D.互操作性 17.对度量法,叙述错误的是( D )
A.度量法是一种基于程序控制流的复杂性度量法
B.度量法以图论为工具,用图的环路数作为程序复杂性的度量值
第 44 页(共 52 页)
软件工程串讲材料
C.度量法不能区分简单IF语句和循环语句的复杂性 D.度量法对模块间的接口和简单IF语句区分对待 全国2007年1月自考软件工程试题
19.在McCall软件质量度量模型中,以下哪一项是面向软件产品适应的质量因素( D ) A.可用性 B.可维护性 C.适应性 D.可重用性 20.下面说法错误的是( D ) A.软件可靠性能够定量计算。
B.MTBF是指两次相继失效之间的平均时间。
C.MTTF是一个描述失效模型或一组失效特性的指标量。 D.MTTF与失效率λ成正比
28.实现容错技术的主要手段是__冗余__。 全国2006年10月自考软件工程试题
2.为了提高软件产品的质量和可靠性,对某些无法避开的差错,使其影响减至最小程度所采用的技术是( A )
A.容错技术 B.避开错误技术 C.检测技术 D.排错技术 3.软件复杂性的常用度量方法包括( D )
A.BOEHM度量法 B.可扩充度量法 C.线性度量法 D.代码行度量法
24.软件复杂性主要表现在程序的复杂性。程序的复杂性主要指____模块内____程序的复杂性。
34.软件质量保证:
全国2006年1月自考软件工程试题
3.在McCall软件质量度量模型中,属于面向软件产品适应的是( D ) A.可用性 B.可维护性 C.适应性 D.可互操作性
4.在实现系统功能时,为了增加系统的可靠性,在规定功能之外,多加入了一些资源,这种技术称为( A )
A.冗余技术 B.可靠性技术 C.可重用技术 D.检测技术 31.软件可靠性: 【其它】
3.在McCall软件质量度量模型中,( C )属于面向软件产品修改。
A.可靠性 B.可重用性 C.适应性 D.可移植性 4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是( D ) A.SQIC B.SQMC C.SQRC D.SQDC 5.软件复杂性度量的参数包括( B )
A.效率 B.规模 C.完整性 D.容错性
22.规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件
具有 容错功能 的软件。
23.McCall提出的软件质量模型包括 11 个软件质量特性。 36.简述容错技术的四种主要手段,并解释。
2.软件复杂性主要体现在( B ) A.数据的复杂性 B.程序的复杂性C.控制的复杂性 D.问题的复杂性 3.在McCall软件质量度量模型中,( A )属于面向软件产品操作。 A.可靠性 B.可重用性 C.适应性 D.互操作性 31.软件质量保证
2.在McCall软件质量度量模型中,_________属于面向软件产品操作。( A ) A.正确性 B.可维护性 C.适应性 D.互操作性 3.软件复杂性度量的参数包括( A ) A.结构 B.问题背景 C.可重用性 D.容错性 4.在McCall软件质量度量模型中,( B )属于面向软件产品操作。 A.可维护性 B.效率 C.适应性 D.可互操作性 15. McCall 质量度量模型中,不属于面向软件产品操作的特性是( C )。 A. 正确性 B. 完整性 C. 可重用性 D. 效率
第 45 页(共 52 页)
软件工程串讲材料
第12章 软件工程管理
▓主要内容
一、填空题、选择题
1.要成功地完成软件开发工作的一个主要决定性因素是软件管理。
2.参照以前完成的项目所耗费的总成本,来推算将要开发的软件的总成本,然后把它们按阶段、步骤和工作单元进行分配,这种方法称为自顶向下估算方法。
3.能协调软件开发,使得混乱减少到最小的方法是使用软件配置管理。
4.软件开发过程中,严格控制变更,保留变更的有关信息,这种管理是由变更管理来完成的。 5.在软件的生产过程中,总是有大量各种信息要记录,因此软件文档产品的开发过程中起着重要的作用。
6.主程序员组织机构的制度突出了主程序员的领导,责任集中在少数人身上,有利于提高软件质量。
7.在一个大系统的开发过程中,由于管理失误造成的后果要比程序错误造成的后果更为严重。 8.软件开发人员一般分为:项目负责人、系统分析员、高级程序员、初级程序员、资料员和其他辅助人员。
9. 在软件项目管理过程中,一个关键的活动是(制定项目计划),它是软件开发工作的第一步。 10.目前软件工程规范可分为三级:国家标准与国际标准、行业标准与工业标准和企业标准与开发小组标准。
11.成本估算方法中,有自顶向下估算方法、自底向上估算方法和差别估算方法。
12.差别估算的缺点是不容易明确“差别”的界限,但它的优点是可以提高估算的准确度。
13.基线的作用是把各阶段的开发工作划分得更加明确,便于检查与确认阶段成果。因此,基线可以作为项目的一个检查点。
14.在软件开发和维护过程中,一个软件往往有许多版本,版本控制工具用来存储、更新、恢复和管理一个软件的多个版本。
15.自顶向下估算方法的主要优点是对系统级工作的重视,所以估算中不会遗漏系统级的成本估算,估算工作量小、速度快。它的缺点是往往不清楚低级别上的技术性困难问题,而往往这些困难将会使成本上升。
16.自底向上估算的优点是对每一部分的估算工作交给负责该部分工作的人来做,所以估算较为准确。
17.COCOMO估算模型是结构性成本模型。Putnam成本估算经验模型是动态多变量模型。
19.基线是软件生存期中各开发阶段的一个特定点,它可作为一个检查点,当采用的基线发生错误时,我们可以返回到最近和最恰当的基线上。
20.为使得开发人员对软件产品的各阶段工作都进行周密的思考,从而减少返工,所以.软件文档的编制是很重要的。
21.只有高水平的软件工程能力才能生产出高质量的软件产品。因此,须在软件开发环境或软件工具箱的支持下,运用先进的开发技术、工具和管理方法来提高开发软件的能力。 22.软件开发规范的体现和指南是文档。
23.一个项目是否开发,从经济上来说是否可行,归根结底是取决于对成本的估算。 24.软件管理比其他工程管理更为困难。
25.软件工程包括软件开发技术和软件工程管理两大部分内容。
26.软件工程管理不同于其他工程管理,它对保证高质量的软件产品更具有极为重要的意义。 27. 软件版本控制是属于软件配置管理的活动内容
28.在一个软件项目的开发过程中要自始至终得到用户的密切合作与支持。 29.软件项目计划的第一项活动是确定软件范围。
30.软件工程管理是对软件项目的开发管理,即对整个软件生存期的一切活动的管理。
31.单元测试是发现编码错误,集成错误是发现接口错误,确认错误是发现功能错误,系统测试是发现性能、质量不合要求错误。
32.为使软件项目开发获得成功,必须对软件开发项目的工作范围、可能遇到的风险、需要的资源(人、硬件/软件)、要实现的任务、经历的里程碑、花费的工作量(成本),以及进度的安排等做到心中有数。
第 46 页(共 52 页)
软件工程串讲材料
33.版本管理是对系统不同的版本进行标识与跟踪的过程。
34. 软件工程管理中的控制包括进度控制、人员控制、经费控制和质量控制。 二、名词解释
1. 软件项目计划:它是软件开发工作的第一步。 项目计划的目标是为项目负责人提供一个框架,
使之能合理地估算软件项目开发所需的资源 、经费和开发进度,并控制软件项目开发过程按此计划进行。 在做计划时,必须就需要的人力、项目持续时间及成本作出估算。
2. 人力资源:要求的人员数(系统分析员、高级程序员、程序员、操作员、资料员和测试员);
各类人员工作的时间阶段。
3. 硬件资源:指项目开发所需的硬件支持和测试设备。 4. 软件资源:指软件项目开发所需的支持软件和应用软件。 5. 专家估算:依靠一个或多个专家对要求的项目做出估算,其精确性取决于专家对估算项目的定
性参数了解和他们的经验。 6. 类推估算:自顶向下的方法中,它是将估算项目的总体参数与类似项目进行直接比较相比得到
结果。自底向上方法中,类推是在两个具有相似条件的工作单元之间进行。
7. 算式估算:算式估算法是企图避免主观因素的影响的算法。用于估算的方法有两种基本类型:
由理论导出或由经验得出。
8. COCOMO估算:结构性成本模型COCOMO(Constructive Cost Mode)是最精确、最易于使
用的成本估算方法之一。
9. 工程网络图:工程网络图是一种有向图,该图中用圆表示事件,有向弧或箭头表示子任务的进
行,箭头上的数字称为权,该权表示此子任务的持续时间,箭头下面括号中的数字表示该任务的机动时间,图中的圆表示与某个子任务开始或结束事件的时间点。
10. 软件配置管理:简称SCM,它用于整个软件工程过程。其主要目标是:标识变更;控制变更;
确保变更正确地实现;报告有关变更。SCM是一组管理整个软件生存期各个阶段中变更的活动。
11. 软件配置项:软件配置项(SCI)是软件工程中生产的信息想,它是配置管理的基本单位,对
已成为基线的SCI,虽然可以修改,但必须按照一个特殊的、正式的过程进行评估,确认每一处的修改。 12. 基线:基线是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更
加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。
13. 版本控制:软件配置实际上是一动态的概念,它一方面随着软件生存期向前推进,SCI的数量
在不断增多,一些文档经过转换生成另一些文档,并生产一些信息。另一方面又随时会有新的变量出现,形成新的版本。
14. 变更控制:软件工程过程中某一阶段的变更,均要引起软件配置的变更,这种变更必须严格加
以控制和管理,保持修改信息,并把精确、清晰的信息传递到软件工程的下一步。包括建立控制点和建立报告与审查制度。 三、简答题
1. 软件工程管理包括哪些内容?
答:软件工程管理包括对开发人员、组织机构、用户、控制和文档资料等方面的管理。 2.软件项目计划中包括哪些内容?
答:软件项目计划中包括:范围、资源、成本估算、进度安排、计划培训。 3.软件开发成本估算方法有哪几种? 答:软件开发成本估算的方法主要有:
(1)自顶向下估算方法 (2)自底向上估算方法(3)差别估算方法 以及专家估算法、类推估算法、算式估算法等几类方法。 4.软件工程标准化的意义是什么?都有哪些软件工程标准?
答:软件工程标准化可以为软件工程各个阶段的活动提供统一的行动规范和衡量准则,使得各种工作都能有章可循。
软件工程标准根据其制定机构与适用范围,可分为:
国际标准 ;国家标准 ;行业标准;企业规范;项目(课题)规范。 5.什么是软件配置管理?什么是基线? 答:软件配置管理,简称SCM(Software Configuration Management),是指一组管理整个软件生存期各阶段中变更的活动。软件配置管理技术可以使软件变更所产生的错误达到最小并最有效地提高生产率。
基线:是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。
第 47 页(共 52 页)
软件工程串讲材料
6.请说明软件文档的作用?软件开发项目生存期各阶段都包括哪些文档?
答:软件文档的作用是:提高软件开发过程的能见度;提高开发效率;作为开发人员阶段工作成果和结束标志;记录开发过程的有关信息便于使用与维护;提供软件运行、维护和培训有关资料;便于用户了解软件功能、性能。
软件开发项目生存期各阶段应包括的文档包括如下:
可行性研究报告,项目开发计划;软件需求说明书,数据要求说明书,测试计划;概要设计说明书,详细设计说明书;用户手册,操作手册;测试分析报告;开发进度月报,项目开发总结,程序维护手册。
7. 简述主程序员组织的构成和作用。
答:主程序员组织机构由一位高级工程师(主程序员)主持计划、协调和复审全部技术活动;一位辅助工程师协助主程序员工作,并在必要时代替主程序员工作;若干名技术人员负责分析和开发活动;可以有一位或几位专家和一位资料员协助软件开发机构的工作。资料员非常重要,负责保管和维护所有的软件文档资料,帮助手机软件数据,并在研究、分析、评价文档资料的准备方面进行协助工作。
8. 软件配置管理的作用及其主要目标是什么?
答:软件配置管理用于整个软件工程过程。其目的是协调整个软件的开发,使得混乱减少至最小程度,使得变更所产生的错误达到最小并最有效地提高生产率。
它的主要目标是:标识变更;控制变更;确保变更正确地实现;报告有关变更。SCM是一组管理整个软件生存期各个阶段中变更的活动。
▓历年考题
全国2010年1月自考软件工程试题
17.软件工程标准中,JIS属于( B ) A.国际标准 B.国家标准 C.行业标准 D.企业规范 18.与“程序维护手册”文档有关的人员是( B ) A.管理人员和开发人员 B.管理人员和维护人员 C.维护人员和用户 D.管理人员和用户 全国2009年10月自考软件工程试题
17.软件工程标准中,GIB属于( C ) A.国际标准 B.国家标准 C.行业标准 D.企业规范 18.与“可行性研究报告”文档有关的人员是( A ) A.管理人员和开发人员 B.开发人员和维护人员 C.开发人员和用户 D.管理人员和用户 全国2009年1月自考软件工程试题
17.软件工程标准中,IEEE属于( C ) A.国际标准 B.国家标准 C.行业标准 D.企业规范 18.与“项目开发计划”文档有关的人员是( A )
A.管理人员和开发人员 B.开发人员和维护人员 C.开发人员和用户 D.管理人员和用户
全国2008年10月自考软件工程试题
15.下列不属于项目进度安排主要方法的是( C ) A.工程网络图 B.Gantt图 C.进度结构图 D.任务资源表
29.软件工程管理的具体内容包括对开发人员、组织机构、用户和__文档资料、控制__等方面的管理。
全国2008年1月自考软件工程试题
30.软件项目管理过程一个关键的活动是__制定项目计划___,它是软件开发工作的第一步。
全国2007年10月自考软件工程试题
15.下面关于文档的叙述,错误的是( A )
A.文档是仅用于说明使用软件的操作命令,不包括软件设计和实现细节 B.文档是软件产品的一部分,没有文档的软件就不成为软件
第 48 页(共 52 页)
软件工程串讲材料
C.高质量文档对于转让、变更、修改、扩充和使用有重要的意义 D.软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量 30.软件版本控制是属于_软件配置管理_的活动内容。 35.基线:
全国2007年1月自考软件工程试题
l5.有关软件项目进度安排的叙述,错误的是( C )
A.Gantt图常用水平线段来描述把任务分解成子任务,以及每个子任务的进度安排。 B.Gantt图中线段的长度表示完成子任务所需要的时间。
C.工程网络图是一种有向图,用圆表示事件,用有向弧或箭头表示任务,有向弧或箭头 的长度表示子任务持续的时间。
D.工程网络图只有一个开始点和一个终止点,开始点没有流入箭头,终止点没有流出箭 头。
全国2006年10月自考软件工程试题
19.把软件生产的全过程人为地划分为若干阶段使得软件人员能根据每一阶段的不同特点更好地组织和管理软件项目的开发,这种概念就是( D )
A.软件项目管理 B.软件工程 C.软件项目计划 D.软件生存期
22.软件工程管理中的控制包括进度控制、人员控制、经费控制和__质量控制___。
全国2006年1月自考软件工程试题
22.确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动称为__软件工程管理__。 【其它】
2.Putnam成本估算模型是一个( D )模型。
A.静态单变量 B.动态单变量 C.静态多变量 D.动态多变量
21.在软件开发过程中要产生大量的信息,要进行大量的修改, 配置管理技术 能协调软件开发,并使混乱减到最低程度。
21.差别估算的优点是可以提高 估算准确度 ,缺点是不容易明确“差别”的界限。
22.软件开发过程来自用户方面的干扰和阻力主要有:不积极配合,求快求全和 功能变化 。 1.软件工程管理的具体内容不包括对_________管理。( D ) A.开发人员 B.组织机构 C.控制 D.设备 2.软件开发过程来自用户方面的主要干扰是( A ) A.功能变化 B.经费减少 C.设备损坏 D.人员变化 16. 控制作为软件工程管理的内容,包括( D )。
A. 文档资料的控制 B. 组织结构控制 C. 对软件功能的控制 D. 进度控制
17. 进度安排的好坏往往会影响整个项目的按期完成,下列属于软件进度安排的方法有( C )。 A. 程序结构图 B. 流程图 C. 工程网络图 D. E-R 图 18.项目开发计划是什么类型的文档?( D )
A.设计性 B.进度表示 C.需求分析 D.管理性 37.软件配置管理的作用及其主要目标是什么?
第13章 软件开发环境
▓主要内容
一、填空题、选择题
1.环境集成机制主要有数据集成、表示集成、控制集成、过程集成,还有平台集成。 2.软件开发环境是与软件生存期、软件开发方法和软件处理模型紧密相关的。 3.软件工具通常由工具、工具接口和工具用户接口三部分构成。
4.开发软件工具的主要目的是为了提高软件生产率和改善软件质量。 5.软件开发环境是相关的一组相关软件工具的集合。
6.基于方法的环境可分为两大类:支持软件开发周期特定阶段的管理与开发过程管理。 7.产品管理包括版本管理和配置管理。
8.开发过程管理包括项目计划、控制和任务管理等。
第 49 页(共 52 页)
软件工程串讲材料
9.软件开发环境的主要目标是提高软件开发的生产率、改善软件质量和降低软件成本。
10.CASE这一术语的英文为:Computer-Aided Software Engineering,计算机辅助软件工程。 11.早期的软件工具只能完成一件特定的任务。后来出现了工作台,它将一组工具组合在一起,对软件开发过程的某些方面提供支持。
12.以语言为中心的程序设计环境是支持软件生存期后期活动,特别强调对编程、调试和测试活动的支持。
13.软件开发环境中最主要的组成部分是软件工具。
14. CASE是多年来在软件开发管理、软件开发方法、软件开发环境和软件工具等方面研究和发展的产物。
15. 软件开发环境是由软件开发工具集和环境集成机制构成的。前者用于支持软件开发的相关过程、活动和任务;后者为工具集成软件开发、维护和管理提供统一的支持。
16.CASE系统所涉及到的技术有两类:一类是支持软件开发过程本身的技术;另一类是支持软件开发过程管理的技术。
17.平台集成是指工具运行在相同的硬件/操作系统平台上。 18.表示集成是指工具提供相同的用户界面。
19.控制集成是指工具激活后能控制其他工具的操作。
20.支持像设计、实现或测试等特定的软件开发阶段的CASE工作台是一组工具集。 21.用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件工具。
22. 在软件的开发与维护过程中,用来存储、更新、恢复和管理一个软件的多版本,它是版本控制工具。
二、名词解释 1.软件开发环境:是指在计算机的基本软件的基础上,为支持软件的开发而提供的一组工具软件系统。
2.软件工具:是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统。所以软件工具是一个程序系统。
3.程序设计环境:解决如何将规范说明转换成可工作的程序问题,它包括两个重要部件:方法与工具。
4.项目管理环境:解决由于软件产品的规模大、生存期长、人们的交往多而造成的问题。 5.CASE:是一组工具和方法集合,可以辅助软件开发生命周期个阶段进行软件开发。 6.数据集成:是指不同软件工程能相互交换数据。
7.CASE工作台:是一组工具集,支持像设计、实现或测试等特定的软件开发阶段。 三、简答题
1.什么是软件开发环境?
答:软件开发环境是指在计算机的基本软件的基础上,为支持软件的开发而提供的一组工具软件系统。具体地说,软件开发环境是一组相关工具的集合。这些相关工具按一定的开发方法或一定开发处理模型组织起来的,这些相关工具支持整个软件生存期的各阶段或部分阶段。 2对软件开发环境都有哪些要求? 答:对软件开发环境的要求有:
(1)软件开发环境应是高度集成的一体化的系统。 (2)软件开发环境应具有高度的通用性。
(3)软件开发环境应易于定制、裁剪或扩充以符合用户要求,即软件开发环境应具有高度的适应性和灵活性。
(4)软件开发环境不但可应用性要好,而且是易使用的、经济高效的系统。 (5)软件开发环境应有辅助开发向半自动开发和自动开发逐步过渡的系统。 3.请叙述软件开发环境的分类?
答:软件开发环境可按解决的问题、软件开发环境的演变趋向和集成化程度进行分类: (1)按解决的问题可分为:程序设计环境、系统合成环境、项目管理环境三类。 (2)按软件开发环境的演变趋向可分为:以语言为中心的环境、工具箱环境和基于方法的环境三类。 (3)按集成化程度有第一代、第二代、第三代的开发环境。 4. CASE工作台有哪些分类? 答:CASE工作台包括:
(1)程序设计工作台。由支持程序设计的一组工具组成。 (2)分析和设计工作台。支持软件过程的分析和设计阶段。 (3)测试工作台。
(4)交叉开发工作台。这些工作台支持在一种机器上开发软件,而在其他的系统上运行所开发的软
第 50 页(共 52 页)
软件工程串讲材料
件。
(5)配置管理(CM)工作台。这些工作台支持配置管理。 (6)文档工作台。这些工具支持高质量文档的制作。 (7)项目管理工作台。支持项目管理活动。 5.当今软件工具发展有何特点? 答:软件工具的发展有以下特点:
(1)软件工具由单个工具向多个工具集成化方向发展。 (2)重视用户界面设计。
(3)不断地采用新理论和新技术。
(4)软件工具的商品化与软件产业的发展形成良性互动。 6.什么是CASE?CASE工具有哪些分类?
答:CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。CASE把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸收了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。因而,CASE领域是一个应用、集成和综合的领域。
根据CASE系统对软件过程的支持范围,CASE可分为三类: (1)支持单个过程任务的工具。
(2)支持某一过程所有活动或某些活动的工作台。。
(3)环境支持软件过程大部分乃至所有活动,一般包括几个不同工作台的集合。 7.请叙述集成化CASE的五级模型。 答:集成化CASE的五级模型包括
(1)平台集成:工具运行在相同的硬件/操作系统平台上 (2)数据集成:工具使用共享数据模型来操作 (3)表示集成:工具使用相同的用户界面 (4)控制集成:工具激活后能控制其他操作
(5)过程集成:工具在一个过程模型和\"过程机\"的指导下使用 8. 简述CASE生存期的各个步骤。 答:CASE生存周期各步骤如下:
(1)CASE需求:根据开发的软件类型选择一个合适的CASE系统。
(2)CASE剪裁:调整一个CASE系统,使之适应一特定组织机构或一类项目。 (3)CASE引入:试用该CASE系统。
(4)CASE操作:每天都使用CASE进行软件开发。
(5)CASE演化:演化是一个在CASE系统生命周期中的一个持续的活动。要修改硬件或软件,调整系统适应新需求。
(6)CASE废弃:使该CASE系统在这一阶段不再起作用,必须保证使用该系统开发的软件仍被所在组织机构所支持
▓历年考题
全国2010年1月自考软件工程试题
19.软件工具“代码生成程序”属于( C ) A.需求追踪工具 B.质量保证工具 C.设计工具 D.文档工具
21.软件工具一般是指为了支持软件人员_软件开发和维护__活动而使用的软件。 22.CASE技术是_软件工具__和软件开发方法的结合。 全国2009年10月自考软件工程试题
19.软件工具中,“编辑程序”属于( B ) A.需求分析工具 B.需求追踪工具 C.设计工具 D.文档工具 全国2009年1月自考软件工程试题
19.软件工具的三个组成部分不包括( D ) A.工具 B.工具接口 C.工具用户接口 D.编译系统 全国2008年10月自考软件工程试题
17.下列工具中,属于需求追踪工具的是( A ) A.在DBMS上的应用运行工具 B.追踪和状态报告
第 51 页(共 52 页)
软件工程串讲材料
C.访问和版本控制机构 D.文件和修改管理
28.软件开发环境中最主要的组成部分是_软件工具__。 全国2008年1月自考软件工程试题
l7.Westinghouse公司于1992年公布了l3类软件工具分类标准和该类的范例工具以及例子,下面说法错误的是( A )。
A.代码生成程序属于编码和单元测试工具 B.桌面出版系统属于文档工具 C.数据库管理系统属于需求追踪工具 D.计划和进度属于项目管理工具 全国2007年1月自考软件工程试题
l6.以下哪一项是软件开发环境中的主要组成部分( C )
A.软件模型 B.软件工程 C.软件工具 D.硬件环境 29.软件开发环境的目标是提高软件开发的生产率和_改善软件质量__。 35.软件工具:
全国2006年10月自考软件工程试题
1.软件开发环境按解决的问题分类包含( A )
A.程序设计环境 B.工具箱环境 C.基于方法的环境 D.以语言为中心的环境 21.软件工具通常由工具、工具接口和__工具用户接口___三部分构成。 31.软件开发环境:
全国2006年1月自考软件工程试题
1.Wasserman提出的软件工程环境的五级模型中,支持工作台或环境中一个工具对系统中其它工具的访问称为( C )
A.平台集成 B.表示集成 C.控制集成 D.过程集成
21.开发软件工具的主要目的是为了提高软件生产率和_改善软件质量__ 【其它】
1.在下列工具与环境中( C )属于较早期的CASE。
A.基于信息工程CASE B.人工智能CASE C.结构的基于图形CASE D.集成的CASE环境 23.CASE系统所涉及到的技术有两类:一类是支持软件开发过程本身的技术;另一类是 软件开发过程管理的技术 。
21.第二代CASE工具的特点是支持图形表示的__数据结构方法的图形___。如数据流图与结构图。 21.基于方法的软件开发环境可分为两大类:支持软件开发周期特定阶段的管理和__开发过程____。 21. 开发软件工具的主要目的是为了_提高软件生产率__和改善软件的质量。 20.软件工具一般是为软件人员开发和维护活动而使用的( D )
A.硬件环境 B.说明书 C.软件 D.程序
18. 以语言为中心的软件开发环境是支持软件生存期( B )活动,特别强调对编程、调试和测试活动的支持。
A. 前期 B. 后期 C. 中期 D. 初期
第 52 页(共 52 页)
因篇幅问题不能全部显示,请点此查看更多更全内容