软件工程导论知识点.docx
《软件工程导论知识点.docx》由会员分享,可在线阅读,更多相关《软件工程导论知识点.docx(9页珍藏版)》请在冰豆网上搜索。
软件工程导论知识点
软件工程导论知识点
软件工程导论
一、各章知识点
1、统一建模语言(UML):
是一种面向对象的建模语言,它是运用统一的,标准化的标记
和定义实现对软件系统进行面向对象的描述和建模
2、封装
从字面上理解,所谓封装就是把某个事物包起来,使外界不知道该事物的具体内容。
封装也就是信息隐藏,通过封装对外界隐藏了对象的实现细节。
3、软件维护性的过程
分为四类:
改正性维护;适应性维护;完善性维护;预防性维护
4、白盒、黑盒测试的概念
如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。
这种测试叫做白盒测试,也叫结构测试。
如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用,这种测试叫做黑盒测试,也叫功能测试。
5、继承:
继承是指能够直接获得已有的性质和特征,而不必重复定义它们
继承分单继承(树型结构)和多重继承(网状结构)
6、软件生命周期以及各阶段的任务(3个时期,9个阶段)
概括的说,软件生命周期由软件定义,软件开发和运行维护3个时期组成,通常把前两个时期再一步划分成若干个阶段。
软件定义时期:
问题定义;可行性研究;需求分析三个阶段
软件开发时期:
总体设计;详细设计;编码和单元测试;综合测试五个阶段
软件定义时期的任务是:
确定软件开发工程的总目标;
研究该项目的可行性;
分析确定客户对软件产品的需求
估算完成该项目所需的资源和成本,并且制定工程进度表
软件开发时期的任务是:
具体设计和实现在前一个时期定义的软件
运行维护时期的任务是:
通过对已交付使用的软件做必要的修改,使软件持久地满足客户的需求
7、需求/概要/详细设计阶段是干什么的?
需求分析阶段的基本任务是确定软件必须”做什么”,使用的概念主题是”功能”
概要设计阶段的任务是确定“怎样做“,使用的概念是”模块“
详细设计阶段的任务就是把解法具体化,即回答“应该怎样具体地实现这个系统”使用的概念是“数据结构“和”算法“
8、软件生命周期中时间花费做多的是维护阶段
软件生命周期中最重要的是系统分析
9、软件的开发模型。
瀑布模型;快速原型模型;增量模型;螺旋模型;喷泉模型等
10、边界值:
程序最容易在处理边界情况时发生错误。
边界值分析方法也是黑盒测试方法。
使用边界值分析方法设计测试方案首先应该确定边界情况。
通常设计测试方案时总是联合使用等价划分和边界值分析两种技术。
11、什么是软件危机?
以及表现形式?
通常把在计算机软件的开发与维护过程中所遇到的一系列严重问题笼统地称为软件危
机
表现形式:
对软件开发成本和进度的估计常常不准确。
用户对“已完成”系统不满意的现象经常发生。
软件产品的质量往往靠不住。
软件的可维护程度非常之低。
软件通常没有适当的文档资料。
软件的成本不断提高。
软件开发生产率的提高赶不上硬件的发展和人们需求的增长。
12、
13、软件的性质:
有收费和免费两种类型软件的测试分类:
单元测试;集成测试;确认测试;白盒测试;黑盒测试
14、软件复杂性包含哪些?
规模;难度;结构;智能度
15、类聚和耦合的分类
耦合是对一个软件结构内不同模块之间互连程度的度量。
分为:
数据耦合;控制耦合;特征耦合;公共环境耦合;内容耦合。
内聚度量一个模块内的各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的
自然扩展。
(很可能会考,重点记)
在这里可能会出“模块的内聚性包含哪些?
”(以简答题的形式)
分为⑴低内聚:
偶然内聚,逻辑内聚,时间内聚
⑵中内聚:
过程内聚,通信内聚
⑶高内聚:
顺序内聚,功能内聚
模块的独立程度可以由两个定性标准度量:
内聚和耦合
要保持高内聚和低耦合
16、软件是一种逻辑产品,容易出现软件危机
17、什么最容易出现重用的构建
重用也称为再用或复用,是指同一事物不经修改或稍加改动就多次重复使用。
面向对象中的“类构建”最容易出现重用。
18、简述容错技术的四种主要手段,并解释。
(可能考简答,重点记)
四种手段:
结构冗余;信息冗余;时间冗余;冗余附加技术
结构冗余:
包括静态冗余、动态冗余和混合冗余。
信息冗余:
为检测或纠正信息在运算或传输中的错误,须外加一部分信息。
时间冗余:
指重复执行指令或程序来消除瞬时错误带来的影响。
冗余附加技术:
指为实现上述冗余技术所需的资源和技术。
19、就程序设计的工程特性而言,对编代码的要求。
(可能考简答,重点记)
(1)可移植性
(2)开发工具的可利用性
(3)软件的可重用性
(4)可维护性
20、程序的三种结构:
顺序;选择;循环
21、软件危机产生的原因:
一方面与软件本身的特点有关;另一方面也和软件开发与维护的方法不正确有关
22、提高软件可维护性的方法。
可理解性;可测试性;可修改性;可移植性;可重用性
23、掌握软件设计过程中的原理有哪些?
模块化与模块独立;抽象;逐步求精;信息影藏;局部化
24、软件文档在整个软件的开发过程中是非常重要的,它的重要性/作用?
文档是影响软件可维护性的决定因素。
软件系统的文档可以分为用户文档和系统文档两类。
用户文档主要描述系统功能和使用方法
系统文档描述系统设计,实现和测试等各面的内容
25、弄清楚各种测试能发现的错误种类
26、判定树
27、流程图
28、结构图
29、软件工程的目标和要面临的主要问题(可能简答题)
目标:
生产出能按期交付的,在预算范围内的,满足用户需求的,质量合格的软件产品。
即:
建造出高质量的软件。
问题:
对软件开发成本和进度的估计常常很不准确。
用户常对“已完成的”软件系统不满意。
软件产品的质量往往靠不住。
软件常常很难维护。
软件常常缺乏适当的文档资料。
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
软件成本在计算机系统总成本中所占的比例逐年上升。
30、软件测试的目的
为了“破坏”已经建造好的软件系统――竭力证明程序中有错误,不能按照预定要求正确工作。
或解释为:
软件测试是
(1)为了发现错误而执行程序的过程;
(2)一个好的用例能够发现至今尚未发现的错误的测试。
(3)一个成功的测试是发现至今尚未发现的错误的测试。
31、三种面向对象的模型以及每种模型的功能
对象模型;动态模型;功能模型
通常,使用统一建模语言UML提供的类图来建立对象模型。
对象模型表示静态的,结构化的系统的“数据”性质。
它为建立动态模型和功能模型提供了实质性的框架。
对象模型定义了做事情的实体。
动态模型表示瞬时的,行为化的系统的“控制”性质,它规定了对象模型中对象的合法变化序列。
动态模型规定了什么时候做。
功能模型表示软件系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。
32、jackson方法的三种基本结构
顺序结构;选择结构;重复结构
33、黑盒测试的方法,包括:
等价划分;边界值分析;错误推测。
34、数据字典
35、盒图
36、测试用例
二、各章可能会考的题
1、银行计算机储蓄系统的工作过程大致如下:
储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并打印出存款单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款是未留密码,则系统计算利息并打印出利息清单给储户。
请用数据流图描绘本系统的功能,并用实体―联系图描绘系统中的数据对象。
答:
⑴描绘本系统功能的数据流图如下图。
⑵本问题中共有两类实体,分别是“储户”和“储蓄所”,它们之间存在“存取款”关系。
因为一位储户可以在多家储蓄所存取款,一家储蓄所拥有多为储户,所以“存取款”是多对多关系。
储户的属性主要有姓名、住址、电话号码、和身份证号码,储蓄所的属性主要是名词、地址和电话号码,而数额、类型、到期日期、利率和密码则是联系类型存款的属性。
下图是描绘计算机储蓄系统中数据对象的实体―联系图。
2、目前住院病人主要由护士护理,这样做不进需要大量护士,而且由于不能随时观察危重病人的病情变化,还会延误抢救时机。
某医院打算开发一个以计算机为中心的患者监护系统,请分层次地画出描述本系统功能的数据流图。
医院对患者监护系统的基本要求是随时接受每一个病人的生理信号(脉搏、体温、血压、心电图等),定时记录病人情况以形成患者日志,当某个病人的生理信号超出医生规定的安
全范围时向值班护士发出警告信息,此外,护士在需要时还可以要求系统输出某个指定病人的病情报告。
答:
从问题陈述可知,本系统的数据源点是“病人”和“护士”,他们分别提供生理信号和要求病情报告的信息。
进一步分析问题陈述,从系统应该“定时记录病人情况以形成患者日志”这项要求可以想到,还应该有一个提供日期和时间信息的“时钟”作为数据源点。
从问题陈述容易看出,本系统的数据终点是接受警告信息和病情报告的护士。
系统对病人生理信号的处理功能主要是“接受信号”、“分析信号”和“产生警告信息”。
此外,系统还应该具有“定时取样生理信号”、“更新日志”和“产生病情报告”的功能。
为了分析病人生理信号是否超出了医生规定的安全范围,应该存储“患者安全范围”信息。
此外,定时记录病人生理信号所形成的“患者日志”显然也是一个数据存储。
本系统的基本系统模型如下图。
本系统的功能级数据流图
3、北京某高校可用的电话号码有以下几类:
校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。
请用定义数据字典的方法,定义上述的电话号码。
答:
电话号码=[校内电话号码|校外电话号码]
校内电话号码=非零数字+3位数字//后面继续定义
校外电话号码=[本市号码|外地号码]
本市号码=数字零+8位数字
外地号码=数字零+3位数字+8位数字
非零数字=[1|2|3|4|5|6|7|8|9]
数字零=0
3位数字=3{数字}3
8位数字=非零数字+7位数字
7位数字=7{数字}7
数字=[0|1|2|3|4|5|6|7|8|9]
4、复印机的工作过程大致如下:
未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现没纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令;如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排除故障,故障排除后回到闲置状态。
请用状态转换图描绘复印机的行为
答:
从问题陈述可知,复印机的状态主要有“闲置”、“复印”、“缺纸”和“卡纸”。
引起状态转换的事件主要是“复印命令”、“完成复印命令”、“发现缺纸”、“装满纸”、“发生卡纸故障”和“排除了卡纸故障”。
下面所示状态转换图描绘了复印机的行为。
5、画出下列伪码程序的程序流程图和盒图
START
IFpTHEN
WHILEqDO
f
ENDDO
ELSE
BLOCK
g
n
ENDBLOCK
ENDIF
STOP
答:
6、下图给出的程序流程图代表一个非结构化的程序,请问:
(1)为什么说它是非结构化的?
(2)设计一个等价的结构化程序。
(3)在
(2)题的设计中你使用附加的标志变量flag吗?
若没用,请再设计一个使用flag的程序;若用了,再设计一个不用flag的程序
答:
(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。
图示的程序的循环控制结构有两个出口,显然不符合狭义的结构程序的定义,因此是非结构化的程序。
(2)使用附加的标志变量flag,至少有两种方法可以把该程序改造为等价的结构化程序,图示盒图描绘了等价的结构化程序。
1.软件复杂性度量的参数包括(B)
A.效率B.规模C.完整性D.容错性
2.对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。
A.结合B.隐藏C.封装D.抽象
3.软件调试技术包括(B)
A.边界值分析B.演绎法C.循环覆盖D.集成测试
4.瀑布模型的存在问题是(B)
A.用户容易参与开发B.缺乏灵活性
C.用户与开发者易沟通D.适用可变需求
5.软件测试方法中的静态测试方法之一为(A)
A.计算机辅助静态分析B.黑盒法
C.路径覆盖D.边界值分析
6.软件生命周期中所花费用最多的阶段是(D)
A.详细设计B.软件编码C.软件测试D.软件维护
7.程序的三种基本控制结构是(B)
A.过程、子程序和分程序B.顺序、选择和重复
C.递归、堆栈和队列D.调用、返回和转移
8.详细设计的结果基本决定了最终程序的(C)
A.代码的规模B.运行速度C.质量D.可维护性
9.需求分析中开发人员要从用户那里了解(A)
A.软件做什么B.用户使用界面C.输入的信息D.软件的规模
10.结构化程序设计主要强调的是(D)
A.程序的规模B.程序的效率
C.程序设计语言的先进性D.程序易读性
11.需求分析阶段的任务是确定(D)
A.软件开发方法B.软件开发工具
C.软件开发费D.软件系统的功能
12、使用程序设计的控制结构导出测试用例的测试方法是(B)
A、黑盒测试B、白盒测试C、边界测试D、系统测试
13、需求分析最终结果是产生(B)
A、项目开发计划B、需求规格说明书C、设计说明书D、可行性分析报告
14、快速原型模型的主要特点之一是(D)
A、开发完毕才见到产品B、及早提供全部完整的软件产品
C、开发完毕后才见到工作软件D、及早提供工作软件
15、为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工,所以(C)的编制是很重要的。