软件工程复习提纲0615Word文件下载.docx
- 文档编号:17682419
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:14
- 大小:36.44KB
软件工程复习提纲0615Word文件下载.docx
《软件工程复习提纲0615Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件工程复习提纲0615Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
你喜欢哪一种,为什么?
Chapter5
1.简述软件策划的步骤。
2.简述软件策划的方法。
3.简述对软件工作产品规模进行量化估计的方法。
4.软件工作产品和软件产品有何异同?
5.名称解释:
直接人工、直接费用、间接成本、制造费用、管理费用、不可预见费用。
6.怎样理解软件中的度量,它有何作用?
Chapter6
1.概要设计说明书和详细设计说明书有何区别?
2.怎么理解“软件概要设计是系统总体结构设计或系统架构设计”?
3.模块实现设计包括哪些内容?
4.为什么软件设计要遵守“抽象、分解与模块化、低耦合高内聚、封装、接口和实现分离”的设计原理?
Chapter7
1.简述UML的优缺点。
2.信息系统的业务模型、功能模型、数据模型各是什么?
3.请说明“三个模型”的定义以及三者之间的关系。
Chapter8
1.软件实现要做的工作包括哪几项?
2.界面设计应遵从哪些原则?
3.软件实现管理哪些内容?
Chapter9
9.1软件测试的目的和目标是什么?
9.4试阐述软件测试V模型的思想及不足之处和改进办法。
9.6试说出黑盒测试和白盒的区别和联系。
9.9软件测试工作中要验证哪些文档?
试举例。
Chapter10
10.3软件项目与软件产品有什么不同?
10.4软件产品发布的方式有哪几种?
10.5三类软件产品的发布策略有何差异?
Chapter11
11.6传统软件维护分哪几大类?
11.8什么叫结构化维护和非结构化维护?
11.10软件维护的副作用表现在哪4个方面?
11.13两层结构和三层结构的软件维护方法有什么不同?
11.15软件维护与软件产品版本升级有什么关系?
Chapter12
12.1怎样理解“软件组织、工作产品、软件过程、软件过程源、软件过程财富”的概念?
12.4SW-CMM的5个级别各有哪些特征?
12.5CMMI的实施步骤是什么?
Chapter13
13.1人们为什么越来越重视软件配置管理?
13.4软件配置管理的目的是什么?
13.6什么是配置项?
什么是配置管理?
13.9基线、里程碑与检查点各是什么含义?
它们之间有什么关系?
13.13软件配置管理员的职责有哪些?
Chapter14
14.2针对软件质量保证问题,最有效的办法是什么?
14.5对软件质量进行“全面综合治理”有哪5种方法,哪一种方法最好,为什么?
Chapter15
15.2为什么说“规范是对过程的约束,标准是对产品的约束,制度是对行为的约束”?
15.3培训与企业文化有什么关系?
15.4培训文档与培训管理文档有什么差别?
Chapter16
16.6“项目管理提供给人们一种解决问题的思路和方法”。
请论述其中的思路和方法。
16.16请说明软件企业的工作流。
第一部分软件工程内容与方法、生存周期及开发模型、立项与合同
(参见补充资料)
本章学习目标:
1.对软件的定义及其特点有比较全面、客观的认识。
2.认真分析计算机软件发展的三个时期的演进过程,提高对软件工程化的认识。
3.简述软件危机产生的原因。
4.阐释软件生存期的六个步骤。
5.针对软件生存期的瀑布模型、演化模型、螺旋模型、喷泉模型、智能模型、线性顺序模型、原型模型、RAD模型、增量模型的改进过程,指出各个模型的特点与不足,并预测软件工程开发模型的发展趋势。
6.用自己的语言叙述“螺旋模型”、“RAD模型”的实施过程。
7.比较“软件工程”的各种不同的定义,简述软件工程观念的变化。
8.论述软件工程项目的基本目标及其相互之间的关系。
9.阐释组成“基于计算机系统(Computer-basedSystems)”的系统各元素及其相互之间的关系,能用这种组成原则来分析具体问题。
10.理解“计算机系统工程”的实质,认真分析其“分配方案”的评价准则,试在更广泛的学科范围应用这些准则。
11.比较用“事件流”方式描述的硬件工程过程与软件工程过程的异同,用自己的语言描述出这种异同。
12.人作为“基于计算机系统”的组成元素,其自己的构成涉及到哪些成分?
通过人类工程过程的描述,加深对“用户友好性”的认识。
13.可行性研究需要考虑的范围有哪些(即可行性研究的方法及可行性研究报告的主要内容),详细论述这些范围所涉及的情况。
14.用自己的语言综合论述“系统分析”的任务、步骤和方法。
15.通用软件产品开发和定制软件开发之间有什么不同?
这在实际应用中对通用软件产品用户意味着什么?
16.解释为什么软件工程的基本思想适用于所有的软件系统?
一、基本概念
软件,软件的特点,软件生存期,
软件生存期模型,瀑布模型,增量模型,迭代模型,原型模型,软件工程的基本目标,基于计算机的系统的基本内容,
可行性研究,软件立项,软件策划,
二、简答和练习题
⒈回答下列问题
⑴什么是软件危机?
为什么会产生软件危机?
怎样消除软件危机?
⑵软件开发与写程序有什么不同?
为什么应该有所不同?
⑶软件生存周期为什么要划分成阶段?
应该怎样来划分阶段?
2.为方便储户,某银行拟开发计算机储蓄系统。
储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;
如果是取款,系统计算机利息并印出利息清单给储户。
请写出问题定义并分析此系统的可行性。
3.为方便旅客,某航空公司拟开发一个机票预定系统。
旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和帐单,旅客在飞机起飞的前一天凭取票通知和帐单交款取票,系统校对无误即印出机票给旅客。
请写出问题定义并分析此系统的可行性。
三、基本术语翻译
四、简述题
1.谈谈你对软件工程化开发的认识。
2.软件工程过程有哪几种基本活动?
试加以说明。
3.试说明“软件生存周期”的概念。
4.试论述瀑布模型、增量模型、迭代模型、原型模型等软件开发方法的基本过程及优缺点。
5.简述软件工程3种开发方法、4项研究内容以及5个面向理论。
6.软件工程是开发、运行、维护和修复软件的系统化方法,它包括哪些要素?
7.软件工程的基本原则有哪些?
8.有人认为软件开发时,一个错误发现得越晚,为改正它所付出的代价就越大。
请提出你的观点并解释。
9.比较ISO9000、CMM/CMMI以及微软管理体系的差异。
10.信息系统工程的层次有哪些?
阐述软件工程与信息系统工程之间的关系。
11.比较顾客、客户、用户之间的异同。
12.一个系统分析员可以是三个来源之一;
系统开发者;
系统需求者;
或某些外部机构。
讨论使用每一来源的正反两方面的特点。
描述一个“理想的”分析员(即分析员的职责及其应具备的条件)。
13.人作为“基于计算机系统”的组成元素,其自己的构成涉及到哪些成分?
14.解释为什么增量式开发是开发商务软件系统的最有效技术?
为什么这种模型不适用于实时系统工程?
15.说明为什么在需求工程过程中区分用户需求开发和系统需求开发是重要的。
16.描述在软件设计过程中的主要活动以及这些活动的输出。
使用图来说明在这些活动输出之间可能存在的关系?
17.让一名用户紧密参与到软件开发团队中的一个问题是“本地化”,也就是,团队成员采纳开发团队的观点而忽视用户队员的需求。
请写出3个解决建议,并讨论每一个的优点和缺点。
第二部分软件需求分析(参见补充资料)
本章学习目标:
1.简述需求分析的任务、过程以及常用的方法,并用自己的语言叙述图3.3(P41)软件需求分析工作的流程。
2.掌握软件需求分析的原则。
结合图3.2和图3.6阐述对用户、分析员、程序员的素质要求,他们彼此之间的关系以及各自对需求分析阶段工作的贡献。
3.理解不同需求分析方法的共性。
结合图3.9(P50)阐述快速原型方法的细化过程,并分析在软件开发周期不同阶段引入快速原型方法后的开发过程。
4.阐述软件复用的概念、范围以及复用技术。
5.掌握结构化分析方法及其所使用的工具以及这些工具的各自特点;
并简述进行系统动态分析的几种方法。
6.理解不同方式的软件需求分析工具的特色,阐述自己对软件需求分析自动化的看法。
7.了解需求规格说明和需求评审的主要内容,并用自己的语言综合论述“软件需求分析”的全部过程。
原型化方法,软件复用及软件复用的范围,结构化分析方法,
数据流图,数据词典,Warnier图,数据库的基本概念
二、简述题
1.在软件需求分析时,首先建立当前系统的物理模型,再根据物理模型建立当前系统的逻辑模型。
请问什么是当前系统?
当前系统的物理模型与逻辑模型有什么差别?
2.软件需求分析是软件工程过程中交换意见最频繁的步骤。
为什么交换意见的途径会经常阻塞?
3.你认为一个系统分析员的理想训练和基础知识是什么?
请说明理由。
4.信息和信息结构有什么区别?
有没有不存在信息流的系统?
有没有不存在信息结构的系统?
5.软件需求分析的操作性原则和需求工程的指导性原则是什么?
6.描述加工逻辑说明的工具有哪些?
各自的特点,试分别举例说明之。
7.数据流图和数据字典的作用是什么?
数据流图的基本成分有哪些?
数据字典有哪些词条?
8.传统的软件开发模型的缺陷是什么?
原型化方法的类型有哪些?
原型开发模型的主要优点是什么?
9.软件需求分析说明书主要包括哪些内容?
10.状态迁移图、时序图和Petri网的用途何在?
11.利用你关于自动取款机的使用知识,设计一组用例,用来作为理解自动取款机系统需求的基础。
第三部分软件设计、界面设计以及UML建模
1.区别设计、程序设计和软件设计等概念,阐述软件设计在软件工程中的地位和作用,并结合图4.1、4.2和4.3从管理和技术两种角度来理解软件设计。
2.概述软件设计应具备的基础,或从哪些方面来理解和进行软件设计。
3.掌握模块划分的评价准则——模块独立性的判别。
4.结合图(参见RJGC(第6章软件设计)P25页图)阐述模块大小、模块数与成本之间的关系。
5.试从整个软件生存期角度来理解抽象化的作用,并结合过程抽象、数据抽象和控制抽象来理解软件设计的抽象过程。
6.阐述模块的属性、特性及独立性。
根据模块独立性的度量准则)来理解耦合性和内聚性的分类以及每种类别的特点。
7.比较变换型分析方法与事物型分析方法的异同,简述设计后处理需要考虑的问题)。
8.理解过程设计的任务、过程,阐述三类详细设计工具的异同及其相互关系。
9.了解软件设计规格说明和设计评审的主要内容
10.综述系统结构设计、数据设计(文件设计)及过程设计的原则、方法和具体实施步骤。
模块(基本属性、外部特性及内部特性),耦合、内聚及其种类,界面设计,UML
阐述分析模型与设计模型之间的关系。
(参见附件PPT)
1.逐步求精、分层过程与抽象等概念之间的相互关系如何?
2.完成良好的软件设计应遵循哪些原则?
3.如何理解模块独立性?
用什么指标来衡量模块独立性?
4.模块独立性与信息隐蔽(反映模块化有效程度的属性)有何关系?
5.简述变换型问题的分析方法
6.举例说明你对概要设计与详细设计的理解。
有不需要概要设计的情况吗?
7.进行详细设计的工具有哪些?
分别说明之
8.界面设计遵循的认知原则有哪些?
9.TheoMandel的三条黄金原则是什么?
10.界面设计的需要考虑的四种模型有哪些?
试比较其差异?
11.用户界面设计过程包括哪四种不同的框架?
12.简述采用增量迭代开发模型时,UML实际建模步骤。
13.基于你使用银行ATM机的经历,请画一个活动图,当客户从机器中提取现金时,为可能涉及的数据处理过程建模。
四、练习题
⒈试为每种类型的模块耦合举一个具体例子;
⒉试为每种类型的模块内聚举一个具体例子;
⒊用面向数据流的方法设计下列系统的软件结构:
⑴储蓄系统
⑵机票预定系统
⒋假设只有SEQUENCE(顺序)和DOWHILE两种控制结构,怎样利用它们完成IFTHENELSE操作?
⒌假设只允许使用SEQUENCE和IFTHENELSE两种控制结构,怎样利用它们完成DOWHILE操作?
⒍画出下列伪码程序的流程图和N-S图:
START
IFqTHEN
WHILEqDO
f
ENDDO
ELSE
BLOCK
q
n
ENDBLOCK
ENDIF
STOP
⒎某交易所规定给经纪人的手续费计算方法如下:
总手续费等于基本手续费加上与交易中的每股价格和股数有关的附加手续费。
如果交易总金额少于1,000元,则基本手续费为交易金额的8.4%;
如果交易总金额超过1,000元到10,000元之间,则基本手续费为交易金额的5%,再加34元;
如果交易总金额超过10,000元,则基本手续费为交易金额的4%加上134元。
当每股售价低于14元时,附加手续费为基本手续费的5%,除非买进、卖出的股数不是100的倍数,在这种情况下附加手续费为基本手续费的9%。
当每股售价在14元到25元之间时,附加手续费为基本手续费的2%,除非交易的股数不是100的倍数,在这种情况下附加手续费为基本手续费的6%。
当每股售价超过25元,如果交易的股数零散(即不是100的倍数),则附加手续费为基本手续费的4%。
要求:
⑴用判定表表示手续费的计算方法;
⑵用判定树表示手续费的计算方法。
第四部分程序编码(参见补充资料)
1.结合“对源程序的质量要求”和“关于GOTO语句的争论”,正确理解和认识结构化程序设计的原则和实施步骤。
2.综合结构化程序设计方法和面向对象实现技术,阐述程序设计风格的考虑范围以及你对程序设计风格的认识。
3.概述影响程序效率的因素和准则。
4.以你自己的观点,对目前流行的程序设计语言进行比较、分类,并给出选择建议。
5.比较几种程序复杂性度量方法,阐述各自特点和不足。
6.掌握度量程序复杂性的McCabe方法和Halstead方法。
程序效率,代码行度量法,McCabe度量法,Halstead的软件科学
1.结构化程序设计有时被错误地称为“无GOTO语句”的程序设计。
请说明为什么会出现这样的说法,并讨论环绕着这个问题的一些争论。
2.从下面关于程序编制的叙述中,选出3条正确的叙述。
①在编制程序之前,首先必须仔细阅读给定的程序说明书。
然后,必须如实地依照说明书编写程序。
说明书中常会有含糊不清或难以理解的地方。
程序员在作业时应该对这些地方做出适当的解释。
②在着手编写程序时,重要的是采用既能使程序正确地按设计说明书进行处理,又易于出错的编写方法。
③在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要像写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排,等等。
④考虑到以后的程序变更,为程序编写完整的说明书是一项很重要的工作。
只要有了完整的程序说明书,即使程序的编写形式难以让他人看懂也没有什么关系。
⑤编制程序时不可缺少的条件是,程序的输入和输出数据格式都应确定。
其他各项规定都是附带的,无足轻重。
⑥作为一个好的程序,不仅处理速度要快,而且易读易修改等也都是重要的条件。
为了能得到这样的程序,不仅要熟悉程序设计语言的语法,还要注意采用适当的规程和单纯的表现方法,注意使整个程序的结构简洁。
3.用某种软件复杂性度量算法来度量不同类型的程序时,得出的度量值是否真正反映了它们的复杂性?
如果对同类型的程序进行度量,其结果是否就比较有价值?
4.软件复杂性有哪几类?
软件复杂性度量模型应遵循哪些基本原则?
第五部分软件测试、维护和发布与实施
1.简述什么是软件测试?
软件测试的目的和原则是什么?
(从用户的角度出发,从软件开发者的角度出发)
2.了解软件测试与软件开发过程的关系。
3.了解软件错误的分类。
4.简述软件测试的过程与策略。
5.了解软件测试用例设计的方法,掌握逻辑覆盖、基本路径测试、因果图等测试用例设计方法。
6.简述白盒测试与黑盒测试的区别及其适用的范围。
7.了解程序静态测试的方法。
软件测试,测试用例,白盒测试,驱动模块,桩模块,黑盒测试,等价类,边界值,因果图,α测试,β测试,软件维护,软件发布
1.从下列关于软件测试的叙述中,选出5条正确的叙述。
①用黑盒法测试时,测试用例是根据程序内部逻辑设计的。
②尽量用公共过程或子程序去代替重复的代码段。
③测试是为了验证该软件已正确地实现了用户的要求。
④对于连锁型分支结构,若有n个判定结构,则有2n条路径。
⑤尽量采用复合的条件测试,以避免嵌套的分支结构。
⑥GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。
⑦发现错误多的程序模块,残留在模块中的错误也多。
⑧黑盒测试方法中最有效的是因果图法。
⑨在做程序的单元测试时,桩(存根)模块比驱动模块容易编写。
⑩程序下率的提高主要应通过选择高效的算法来实现。
2.对小的程序进行穷举测试是可能的,用穷举测试能否保证程序是百分之百正确呢?
3.在任何情况下单元测试都是可能的吗?
都是需要的吗?
4.应该由谁来进行确认测试?
是软件开发者还是软件用户?
为什么?
5.传统软件维护的种类、工作程序以及副作用?
6.比较UML、CMM对软件维护的重大影响?
7.解释在系统交付给用户致歉,为什么对于程序来说没有一点缺陷是没有必要的。
8.解释回归测试和压力测试。
第六部分软件管理及能力成熟度模型
1.了解软件过程的概念、软件过程框架和软件过程模型。
2.了解软件项目管理的过程
3.了解软件度量的种类、面向规模和面向功能的度量以及质量度量的种类。
4.掌握LOC估算和FP估算的方法方法、分解技术和工作量估算方法。
5.了解软件成本估算的概念,掌握COCOMO成本估算方法。
6.了解软件成本-效益估计方法。
7.了解软件进度安排方法及图形工具。
8.了解软件项目划分的方式、项目组织的模式、人员配备的原则和条件。
9.简述软件配置管理的概念,包括配置项和基线的概念、配置管理的主要工作。
10.了解软件工程标准化的概念,包括软件工程标准化的意义、软件工程标准的制定与推行、软件工程标准的层次、软件工程的国家标准。
11.了解软件文档的概念,包括文档编制的要求、文档的作用、文档的分类、文档的工作。
12.简述软件过程能力评估的CMM模型,包括过程成熟度的概念、软件机构的能力成熟度模型、关键过程区域、关键实践的概念。
13.了解ISO9000国际标准,包括质量管理、质量认证和质量审核的概念,ISO9000系列标准的特点、科学依据、主要内容,以及ISO9000-3标准。
软件过程,软件项目管理,软件度量,LOC估算,FP估算,IBM估算模型,Putnam估算模型,COCOMO估算模型
软件配置项,基线,CMM模型,关键过程区域,ISO9000
二、填空题
1.由于软件工程有如下的特点,使软件管理比其他工程的管理更为困难。
软件产品是A。
B标准的过程。
大型软件项目往往是C项目。
D的作用是为有效地、定量地进行管理,把握软件工程过程的实际情况和它所产生的产品质量。
在制定计划时,应当对人力、项目持续时间、成本做出E;
风险分析实际上就是贯穿于软件工程过程中的一系列风险管理步骤。
最后,每个软件项目都要制定一个F,一旦G制定出来,就可以开始着手H。
A~C:
①可见的②不可见的③“一次性”④“多次”⑤存在⑥不存在
D~H:
①进度安排②度量③风险分析④估算⑤追踪和控制⑥开发计划
答案:
A:
②B:
⑥C:
③D:
②E:
④F:
①G:
⑥H:
⑤
2.在软件项目估算时,将代码行LOC和功能点FP数据在两个方面使用:
一是作为一个估算变量,度量软件每个A的大小;
一是联合使用过去的项目中收集到的B和其他估算变量,进行成本和C估算。
LOC和FP是两种不同的估算技术,但两者有许多共同的特征,只是LOC和FP技术对于分解所需要的D不同。
当用E作为估算变量时,功能分解是绝对必要的且应达到很详细的程度;
而用F作为估算变量时,分解程度可以不很详细。
E是直接估算,F是间接估算。
若计划人员对每个功能分别按最佳的、可能的、悲观的3种情况给出LCO或FP估计值,记作a,m,b,则LCO或FP的期望值E的公式为G,m是加权的最可能的估计值,遵循H。
①模块②软件项目③分量④持续时间⑤工作量⑥进度
⑦基线数据⑧改进数据
D:
①详细程度②分解要求③改进过程④使用方法
E~F:
①FP②LOC
G:
①E=(a+m+b)/3②E=(a+4m+b)/6③E=(2a+3m+4b)/3④E=(a·
4m·
b)2/3
H:
①χ概率②γ概率③β概率④泊松
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 复习 提纲 0615