软件工程复习.docx
- 文档编号:29858819
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:37
- 大小:205.88KB
软件工程复习.docx
《软件工程复习.docx》由会员分享,可在线阅读,更多相关《软件工程复习.docx(37页珍藏版)》请在冰豆网上搜索。
软件工程复习
第一章软件工程概念
一、名词解释
软件
软件危机
软件工程
软件的生存期:
软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。
通常,把软件从开始研制(形成概念)到最终软件被废弃不用这整个阶段称为软件的生存期
二、选择题
1、软件是一种(B)产品
A.有形B.逻辑C.物质D.消耗
2、软件工程与计算机科学性质不同,软件工程着重于(C)
A.原理探讨B.理论研究C.建造软件系统D.原理的理论
3、软件工程方法学的目的是使软件生产规范化和工程化,而软件工程方法学得以实施的主要保证是(C)
A.硬件环境B.开发人员的素质
C.软件开发工具和软件开发环境D.软件开发环境
4、软件工程学科出现的主要原因是(C)
A.计算机的发展B.其他工程学科影响
C.软件危机的出现D.程序设计方法学的影响
5、下面不属于软件开发技术的是(D)
A.软件开发方法学B.软件工具C.软件工程开发环境D.软件管理学
6、下面软件工程目标之间的为互次关系的是(A)。
A.低成本开发与按时交付B。
高可靠性与高性能
C.高性能与低成本开发D.高性能与按时交付
7、下列哪一项属于软件工程原则。
()
A重视开发过程的管理B.重视软件病毒的防治
C.提供较高的费用支持D.重视软件的使用方法
8、软件工程是计算机科学中的一个分支,其主要思想是在软件生产中用下列哪种方法代替传统手工方法。
()
A.工程化B.现代化C.科学D.智能化
9、软件工程是一类求解软件的工程。
它涉及计算机科学、数学、管理科学和()。
A心理学B.工程科学C.方法学D.现代科学
10、在软件开发模型中,提出最早、应用最广泛的模型是()。
A.瀑布模型B.喷泉模型C.增量模型D.螺旋模型
11、在软件开发模型中,下列哪一个模型主要用于支持面向对象开发过程。
()
A.喷泉模型B.瀑布模型C.增量模型D.螺旋模型
12、在软件开发模型中,下列哪一个模型这样开发组织的:
在设计了软件系统整体结构之后,首先完整地开发系统的一个初始子集;根据这一子集,建造一个更加精细的版本。
如此不断地进行增量开发。
()
A.喷泉模型B.瀑布模型C.增量模型D.演化模型
13、在软件开发模型中,下列哪一个模型将软件生存周期的各项活动规定为依固定顺序连接的若干阶段的模型。
()
A.喷泉模型B.瀑布模型C.增量模型D.演化模型
14、螺旋模型在笛卡儿坐标的四个象限上分别表达四个方面的活动。
制定计划、风险分析、实施工程和()。
A.客户培训B.客户测试C.客户评估D.客户理解
15、软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。
A.50年代末B.60年代初C.60年代末D.70年代初
A.运筹学B.工程学C.软件学D.软件学E.数字
16、开发软件需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作____。
A.软件投机B.软件危机C.软件工程D.软件产生
1、软件工程过程定义了:
方法使用的顺序、要求交付的文档资料、为保证质量和适应变化所需要的管理、软件开发各个阶段完成的里程碑。
2、软件工程过程包含四种基本的过程活动:
软件规格说明、软件开发、软件确认、软件演进。
3、常用的软件生存周期模型有瀑布模型,演化模型,螺旋模型,增量模型,喷泉模型,快速应用开发(RAD)模型。
作业解答:
1、名词解释:
软件、软件工程、软件危机
软件工程:
应用计算机科学理论和技术以及工程管理原则和方法,按预算进度,实现满足用户要求的软件产品的定义、开发、发布和维护的工程或进行研究的学科。
软件危机:
是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
概括来说,软件危机包含两方面问题:
如何开发软件,以满足不断增长,日趋复杂的需求;如何维护数量不断膨胀的软件产品。
3、什么是软件工程过程?
软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。
软件工程过程定义了:
方法使用的顺序、要求交付的文档资料、为保证质量和适应变化所需要的管理、软件开发各个阶段完成的里程碑。
从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产品)。
4、什么软件生存周期?
每个周期主要完成哪些任务?
通常,把软件从开始研制(形成概念)到最终软件被废弃不用这整个阶段称为软件的生存期。
软件生存周期:
为了能对软件进行有条不紊、有步骤的开发和管理,将软件生存期划分为若干阶段,称为软件生存周期
软件生存周期可分为软件定义、软件开发及软件运行维护三个时期。
软件定义时期的任务是:
确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并制定工程进度表。
该时期通常进一步划分为三个阶段,即问题定义、可行性研究和需求分析。
软件开发时期具体设计和实现在前一个时期定义的软件,它通常由四个阶段组成:
总体设计、详细设计、编码和测试(包括单元测试、综合测试)。
确定程序由哪些模块组成以及模块间的关系;详细的设计每个模块,确定实现模块功能所需要的算法和数据结构;写出正确的容易理解、容易维护的程序模块,并仔细测试每个编写出的模块;通过各种类型的测试(及相应的调试)使软件达到预定的要求。
软件运行维护时期主要任务是使软件持久地满足用户需要。
6、软件工程目标主要有哪些?
⏹软件工程项目的基本目标有:
1)付出较低的开发成本
2)达到要求的软件功能
3)取得较好的软件性能
4)开发的软件易于移植
5)需要较低的维护费用
6)能按时完成开发工作,及时交付使用
第二章需求分析
一、名词解释
3、数据流图是描述数据处理过程的工具。
数据流图从数据传递和加工的角度,以图形方式刻画数据流从输入到输出的移动变换过程
4、数据字典是关于对数据流图中包含的所有元素的定义的集合。
其作用是为系统人员在系统分析、系统设计和系统维护过程中提供关于数据的描述信息
二、选择填空
1、进行需求分析可使用多种工具,但下列哪一个是不适用的。
()
A.数据流图B.判定表C.结构图D.数据词典
2、需求分析阶段研究的对象是软件项目的()。
A.用户要求B.合理要求C.模糊要求D.程序员要求
3、数据字典的任务是对于数据流图中出现的所有被命名的图形元素,在数据字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的()。
A.对象B.解释C.符号D.描述
4、通过下列哪一项,可以完成数据流图的细化。
()
A.结构分解B.功能分解C.数据分解D.系统分解
5、结构化分析方法最为常见的图形工具是()。
A.程序流程图B.实体联系图C:
数据流图D.结构图
6、分层数据流图是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的()。
A.细节B.输入与输出C.软件的作者D.绘制的时间
7、需求分析最终结果是产生()。
A.项目开发计划B.可行性分析报告C.需求规格说明书D.设计说明书
8、需求分析中,开发人员要从用户那里解决的最重要的问题是()。
A.要让软件做什B.要给该软件提供哪些信息
C.要求软件工作效率怎样D.要让该软件具有何种结构
9、用户系统描述在哪一阶段编写。
()
A.可行性研究B.需求分析C.软件概要设计D.软件详细设计
10、结构化分析方法的基本思想是()。
A.自底向上逐步抽象B.自底向上逐步分解
C.自顶向下逐步分解D.自顶向下逐步抽象
11、从软件功能可行性的角度进行可行性研究考虑的是系统的(A)
A.技术可行性B.经济可行性C.法律可行性D.操作的可行性
12、研究软硬件资源的有效性是进行(A)研究的一方面
A.技术可行性B.经济可行性C.法律可行性D.操作的可行性
13、研究开发的项目是否存在任何侵犯、妨碍等责任问题考虑的是系统的(C)
A.技术可行性B.经济可行性C.法律可行性D.操作的可行性
1、基于计算机的系统的系统元素包括硬件、软件、人、数据库、文档和过程。
2、可行性研究主要从以下四个方面考察其可行性:
技术可行性、经济可行性、操作可行性、法律可行性。
3、需求分析的任务包括需求获取、需求建模、需求规格说明、需求评审
4、结构化分析方法最初只是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
1、请根据以下描述画出实例考务处理系统的DFD图
(1)对考生送来的报名单进行检查;
(2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站;
(3)对阅卷站送来的成绩单进行检查,并根据考试中心制定的合格标准审定合格者;
(4)制作考生通知单(含成绩及合格/不合格标志)送给考生;
(5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。
2、请根据以下描述画出某简化的工资管理系统的数据流图。
该子系统共有三个加工,其数据处理过程是:
(1)首先是“填制工资档案”:
根据人事变动单、考勤表两个输入单据,经过处理输出形成工资文件;
(2)然后是“汇总工资”:
从工资文件输入数据,按部门汇总后形成工资汇总表文件,(3)最后“发放工资”加工单元从工资卡片文件打印出工资条。
3、请根据以下描述画出简化的库存管理子系统的DFD图:
(1)根据到货通知单,进行收料处理后形成收料单文件:
(2)根据领料申请单,进行领料处理后形成领料单文件:
(3)对收、发料情况进行统计,产生库存收支统计表,归入统计文件;
3、数据流图的作用是什么?
它有哪些基本成分?
数据流图:
是描述数据处理过程的工具。
数据流图从数据传递和加工的角度,以图形方式刻画数据流从输入到输出的移动变换过程。
数据流:
用箭头表示数据流,箭头方向表示数据流向,数据流名标在数据流线上面。
加工:
加工也称为数据处理,或称为变换,是对数据进行处理的单元。
数据存储:
数据存储是由若干数据元素组成的,它为数据处理提供数据处理所需要的输入流或为数据处理的输出数据流提供储存“仓库”。
4、数据词典的作用是什么?
它的基本词条描述包括哪些方面?
它有哪些基本词条?
数据字典:
就是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。
数据流词条描述
✓数据流名:
✓说明:
简要介绍它产生的原因和结果
✓数据流来源:
来自何方
✓数据流去向:
去向何处
✓数据流组成:
数据结构
✓数据量流通量:
数据量,流通量
数据元素词条描述
✓类型:
数字(离散值,连续值),文字(编码类型)长度
✓取值范围:
✓相关的数据元素及数据结构:
数据文件词条描述
✓数据文件名:
✓简述:
存放的是什么数据
✓输入/输出数据:
✓数据文件组成:
数据结构
✓存储方式:
顺序,直接,关键码
✓存取频率:
加工逻辑词条描述
✓加工名:
✓加工编号:
反映该加工的层次
✓简要描述:
加工逻辑及功能简述
✓输入/输出数据流:
✓加工逻辑:
简述加工程序,加工顺序
数据源及数据池词条描述
Ø名称:
外部实体名
Ø简要描述:
什么外部实体
Ø有关数据流:
Ø数目:
5、人们往往根据天气情况决定出门时的行装;天气可能下雨,也可能不下雨;天气可能变冷,也可能不变冷。
如果天气要下雨,出门时带上雨伞;如果天气变冷,出门时要穿上大衣。
请用判定表和判定树表示。
下雨
Y
Y
N
N
变冷
Y
N
Y
N
带伞
×
×
穿衣
×
×
8、某网站发帖子系统有如下功能:
①记录发帖内容:
访客在表单中输入文字,系统进行检查存入文件。
②显示帖子内容:
读出文件,按一定格式显示在屏幕上。
9、请根据要求画出该系统的数据流程图。
某仓库管理系统按以下步骤进行信息处理,画数据流图
(1)保管员根据当日的出库单和入库单,通过入库处理修改库存台帐
(2)根据库存台帐,制作各种日报表
(3)根据库存台帐可查询所需结果
第三章软件设计
一、名词解释
1、自顶向下、逐步细化:
将软件体系结构自顶向下,对过程细节和数据细节从抽象到具体,逐层细化,直到用编程语言的语句能够实现为止
3、数据抽象:
是指采用抽象数据类型表示数据,实现数据封装,使得使用者可通过接口使用数据而不必关心数据结构的实现。
4、内聚性:
内聚是一个模块内部各个元素彼此结合的紧密程度的度量。
5、耦合性:
耦合是模块间互相连接的紧密程度的度量,它取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。
二、选择填空
1、软件设计的任务是在需求的基础上,给出被建系统的软件设计方案。
一般来说,软件设计包括总体设计和()。
A编码设计B.阶段设计C.详细设计D.算法设计
2、确认工作贯穿软件开发的整个过程,主要包括需求复审、设计复审以及()。
A编码设计B.阶段设计C.算法设计D.程序测试
3、结构化设计的方法中使用的图形工具是()。
A.软件结构图B.数据流程图
C.程序流程图D.实体联系图
4、下列哪一项说明模块的独立性越强。
()
A.耦合越强B.扇入数越高
C.耦合越弱D.扇入数越低
5、下列哪一项数据处理问题的工作过程大致分为三步,即取得数据、变换数据和给出数据。
()
A.变换型B.事务型
C.结构化D.非结构化
6、程序内部的各个部分之间存在的联系,用结构图表达时,最关心的是模块的耦合性和()。
A.一致性B.作用域
C.嵌套限制D.内聚性
7、程序内部的各个部分之间存在的联系,用结构图表达时,下列哪一项是在模块之间的联系。
()
A.内聚性B.耦合性
C.独立性D.有效性
8、在多层的结构图中,其模块的层数称为结构图的()。
A.深度B.跨度C.控制域D.粒度
9、一个模块把一个数值量作为参数传送给另一模块。
这两个模块之间的耦合是()。
A.逻辑耦合B.数据耦合
C.控制耦合D.内容耦合
10、一个模块直接操作另一模块中的数据,这两个模块之间的耦合是()。
A.公共耦合B.数据耦合
C.控制耦合D.内容耦合
11、定义软件系统各主要成份之间的关系。
属于软件设计的(B)
A.数据设计B.体系结构设计C.接口设计D.过程设计
12、模块之间最差的块间耦合形式是(D)。
A.公共耦合B.数据耦合C.控制耦合D.内容耦合
13、最好的内聚形式是(B)
A.偶然内聚B.功能内聚
C.时间内聚D.逻辑内聚
14、模块间的调用关系不包括(C)。
A.直接调用B.选择调用
C.交换调用D.循环调用
15、最差的内聚形式是(A)。
A.偶然内聚B.逻辑内聚
C.时间内聚D.功能内聚
16、以变换为中心的分析首先应(A)。
A.确定系统的物理输入和输出
B.找出变换中心,确定主加上
C.确定模块结构的顶层
D.确定系统的逻辑输入和逻辑输出
1、从技术观点来看,软件设计包括数据设计、体系结构设计、接口设计、过程设计。
2、软件设计是一个把软件需求转换为软件表达的过程。
从软件工程的角度讲是分为总体设计和详细设计。
3、模块独立性比较强的模块应是高内聚低耦合的模块。
4、一个模块的作用范围应在其控制范围之内,且条件判定所在的模块应与受影响的模块在层次上尽量靠近。
5、变换型的数据流是由输入、变换(或称处理)和输出三部分组成。
6、在事务流型系统结构图中,事务中心模块按所接受的事务的类型,选择某一事务(活动流)处理模块执行。
各事务处理模块并列。
7、在过程设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。
对每个模块规定的功能以及算法的设计,给出适当的算法描述:
三、简述题
2、结构化方法详细设计的任务及目标;
答:
(1)为每个模块进行详细的算法设计;
(2)为模块内的数据结构进行设计;
(3)编写详细设计文档
3、变换设计与事务设计之间的区别;
答:
区别是:
变换设计要确定输入、变换、输出这三部分之间的边界。
而事务设计要确定事务处理中心。
4、把一个系统的数据流图,将其转换为软件结构图的基本步骤。
答:
(1)复查基本系统模型。
(2)复查并精化数据流图。
(3)变换型数据流图:
确定输入、变换、输出这三部分之间的边界。
事务型数据流图:
确定事务处理中心。
(4)系统模块结构图顶层和第一层的设计。
(5)自顶向下,逐步求精
(6)初始模块图的精化
5、详细设计使用哪几个工具
(1)程序流程图
(2)N-S图(或盒图)
(3)PAD图
(4)类程序设计语言(或伪码或PDL)
6、按从强到弱的顺序写出常见的模块间耦合的类型
答:
内容耦合、公共耦合、控制耦合、标记耦合、数据耦合
7、从低到高写出常见的内聚类型
偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚
作业解答:
1、过程抽象:
是指在软件设计中将处理过程的实现细节隐藏在数据抽象中,可以直接通过模块接口使用这些处理操作。
数据抽象:
是指采用抽象数据类型表示数据,实现数据封装,使得使用者可通过接口使用数据而不必关心数据结构的实现。
2、变换分析的主要步骤?
重画数据流图;
区分有效(逻辑)输入、有效(逻辑)输出和变换中心部分;
进行一级分解,设计模块结构的顶层和第一层模块;
进行二级分解,设计输入、输出和中心变换部分的中、下层模块。
3、什么是模块的独立性?
简述在系统设计中重视模块独立性的原因
模块独立性, 是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。
例如,若一个模块只具有单一的功能且与其它模块没有太多的联系,则称此模块具有模块独立性
重视模块独立性的原因是:
①具有独立性的系统比较容易开发。
②模块独立性越好,模块间的影响就越少。
③独立模块比较容易测试和维护。
第四章面向对象技术
理解并掌握面向对象的概念;包括类、对象、消息、继承、多继承和动态绑定。
理解什么是Rational统一开发过程,并掌握该过程有哪些阶段及核心工作流
理解并掌握UML统一建模语言,并掌握UML统一建模语言所用到的符号、图及规则。
一、名词解释
1、消息:
是一个对象向另一个对象传递的信息。
有四类消息:
发送对象请求接收对象提供服务、发送对象激活接收对象、发送对象询问接收对象、发送对象仅传送信息给接收对象。
2、继承:
是使用已有的类定义做为基础建立新类的定义技术。
3、多态性:
指同名的函数或操作可在不同类型的对象中有各自相应的实现。
二、选择填空
1、下面(B)不是面向对象方法具有的特性
A.封装B。
顺序C。
多态性D。
继承
2、一个(C)能用不同方法表示它的特征。
A.事件B.抽象C.状态D.脚本
3、下面哪一项不属于UML事物的结构事物(D)
A.接口B.用例C.协作D.交互
1、面向对象系统中的对象是数据抽象与过程抽象的综合体。
2、面向对象系统的状态分别保存在各个对象的数据存储中,而不是保存在一些全局变量中。
3、面向对象系统解决问题的控制流包含在各个对象中的操作内。
并通过消息传递,控制流从一个对象转移到另一个对象
4、把具有相同属性(数据结构)和服务(操作)的对象归在一起就形成了类。
5、RUP采用二维的过程结构:
横轴表明过程的生存周期,它反映了过程被激活时的动态情况,用周期、阶段、迭代和里程碑表示。
纵轴表明过程的静态状况,通过过程构件、活动、工作流、制品和工作人员描述过程。
6、在RUP中共有9个核心过程工作流,包括6个核心工程工作流和3个核心支持工作流。
1)业务建模工作流:
描述业务过程的本质和执行情形。
2)需求工作流:
定义系统构想,使用用例模型和补充规格说明定义系统软件需求,管理系统范围和需求变更。
3)分析和设计工作流:
研究实现环境和系统构件的效用,定义软件的组织结构,把需求获取结果转化为实现规格。
4)实现工作流:
建立代码的分层结构,实现类和对象,进行单元测试和系统集成。
5)测试工作流:
根据事先定义的度量和准则检查产品,确认产品是否满足或者超出事先定义并被一致接受的需求。
6)实施工作流:
在实际使用环境中测试软件、包装要交付的软件、发布软件产品、培训最终用户及销售人员。
核心支持工作流有
1)项目管理工作流
2)配置和变更管理工作流
3)环境工作流
7、在RUP中共有4个阶段构成开发周期,周期结束时产生一代新的软件产品。
1)初始阶段:
确定最终产品的构想及其用例,定义项目范围。
2)细化阶段:
计划需完成活动和资源,详细说明产品特性并设计软件体系结构。
3)构造阶段:
构造整个产品,逐步完善软件体系结构和计划,直到产品(完整的构想)已完全准备好交付给用户。
4)移交阶段:
移交产品给用户,包括制造,交付,培训,支持及维护产品。
8、Rational统一过程的特点:
用例驱动的、以体系结构(架构)为中心的、迭代和增量的过程。
作业解答:
1、什么是面向对象
PeterCoad和EdwardYourdon提出面向对象方法的概念:
面向对象=对象+分类+继承+消息通信
采用这四个概念开发的软件系统就是面向对象的软件系统。
一个面向对象的程序的每一成份应是对象,计算是通过新的对象的建立和对象之间的通信来执行的。
2、简述面向对象的特点
抽象性:
对象包含数据抽象和行为抽象;封装性:
信息隐蔽(使用与实现分开);
共享性:
同一个类中所有对象共享相同的数据结构和行为;同一应用中的对象通过继承关系,共享共同的数据结构和行为;不同应用中的对象通过复用,共享数据结构和行为。
3、什么是消息(message)
消息是一个对象向另一个对象传递的信息。
有四类消息:
发送对象请求接收对象提供服务、发送对象激活接收对象、发送对象询问接收对象、发送对象仅传送信息给接收对象。
4、在RUP中共有哪几个核心过程工作流
在RUP中共有9个核心过程工作流,包括6个核心工程工作流和3个核心支持工作流。
a)业务建模工作流:
描述业务过程的本质和执行情形。
b)需求工作流:
定义系统构想,使用用例模型和补充规格说明定义系统软件需求,管理系统范围和需求变更。
c)分析和设计工作流:
研究实现环境和系统构件的效用,定义软件的组织结构,把需求获取结果转化为实现规格。
d)实现工作流:
建立代码的分层结构,实现类和对象,进行单元测试和系统集成。
e)测试工作流:
根据事先定义的度量和准则检查产品,确认产品是否满足或者超出事先定义并被一致接受的需求。
f)实施工作流:
在实
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 复习