软件工程复习提纲(附答案)
软件工程第一章软件工程介绍1、软件的特性:P3软件是设计开发的,而不是传统意义上的生产制造;软件不会磨损;大多数软件仍是根据实际的客户需求制定的。
2、计算机软件的七大分类:P5系统软件、应用软件、工程/科学软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
3、遗留系统发生系统演化的原因:P6软件需要修改其适应性,从而可以满足新的计算环境或技术的需求软件必须根据新的业务需求进行升级软件必须扩展以具有与更多现代系统和数据库的协作能力软件架构必须进行改建以适应多样化的网络环境4、软件神话:管理者,用户,从业者P135、软件的定义:P3软件是:指令的集合,通过执行这些指令可以满足预期的特征,功能和性能需求;数据结构,它使得程序可以充分利用信息;描述程序操作和使用的文档。
第二章过程综述1、软件工程的三个要素:工具,过程,方法P8过程:软件过程将各个技术层次结合在一起,并实施合理地,及时地开发计算机软件方法:为建造软件提供技术上的解决方法。
工具:为过程和方法提供自动化或半自动化的支持。
2、通用软件过程框架:沟通,策划,建模,构建,部署P9沟通:这个框架活动包含了与客户之间大量的交流和协作,还包括需求获取以及其他相关活动策划:指为后续的软件工程工作制定计划。
建模:它包括创建模型和设计两方面。
创建模型有助于客户和开发人员更好得理解软件需求;设计可以实现它。
构建:它包括编码和测试。
部署:软件交付到用户,用户对其进行评测并给出意见3、能力成熟度模型:P22 ???第0级:不完全级;第1级:已执行级;第2级:已管理级;第3级:已定义级;第4级:已定量管理级;第5级:优化级;第三章过程模型1、简述惯例框架包含的主要活动:P19沟通、策划、建模、构建、部署2、简述瀑布模型所包含的主要框架活动:P24沟通、策划、建模、构建、部署3、简述瀑布模型在实际运用中所面临的问题(缺点):P24实际的项目很少遵守瀑布模型提出的顺序客户通常难以清楚地描述所有的需求客户必须有耐心,因为只有在项目的后期,他们才能看到可执行的程序。
4、演化过程模型生产的背景:P26在开发工程中,业务和产品需求经常发生变化,直接导致最终的产品难以实现;严格的交付时间使得开发团队不可能圆满完成软件产品,但是必须交付功能有限的版本以应对竞争或商业压力;很好地理解了核心产品和系统需求,但是产品或系统扩展的细节问题却没有定义。
5、简述基于原型开发模型的软件开发过程:P26原型开发范型开始于沟通,定义软件的整体目标,明确已知的需求,迅速策划一个原型开发迭代并进行建模,快速设计产生一个原型,对原型进行部署,然后由客户或者用户进行评价。
根据反馈,进一步细化软件的需求。
6、原型开发的缺点:P27为了尽快完成软件,开发者没有考虑整体软件质量和长期的可维护性。
为了使一个原型尽快运行起来,往往在实现过程采用折衷的手段。
7、统一过程的三个特点:P34用例驱动,以架构为核心,迭代并且增量8、简述统一过程(UP)的5个阶段的主要内容:P34起始,细化,构建,转换和生产UP的起始阶段包括客户沟通和策划活动UP的细化阶段包括用户沟通和通用过程模型的建模活动UP的构建阶段与通用软件过程中的构建活动相同UP的转换阶段包括通用构建活动的后期阶段以及第一部分通用部署活动UP的生产阶段与通用过程的部署活动一致9、螺旋模型强调了其他模型均忽略了的风险分析。
P2910、横切关注点的定义:P33如果某个关注点设计系统多个方面的功能,特性和信息,这些关注点通常称为横切关注点。
第四章敏捷视角下的过程1、软件工程的敏捷理念强调4个关键问题:P57具有控制力的自我组织团队对所开展工作的重要性;团队成员之间、开发参与者与客户之间的交流与合作;对“变更代表机遇”的认识;强调快速软件交付以让客户满意。
2、简述极限编程(XP)过程模型所包含的4个主要框架活动:策划,设计,编码,测试P45 策划:策划活动开始于建立一系列描述待开发软件必要特征与功能的“故事”设计:XP设计严格遵循KIS(Keep It Simple,保持简洁)原则,即使用简单而不是复杂的表述。
编码:XP推荐在故事开发和基本设计完成之后,团队不应该直接开始编码,而是开发一系列用于检测本次发布的包括所有故事的单元测试,一旦建立起单元测试,开发者就可以更集中精力于必须实现的内容以通过单元测试。
测试:在编码之前开始建立单元测试是XP方法关键因素。
第五章系统工程???1、计算机系统的6个系统要素:P73软件、硬件、人员、数据库、文档、规程2、Hatley-Pirbhai建模:用户界面、输入、系统功能和控制、输出、维护和自检P813、系统环境图的表示方法P81第六章需求工程1、需求工程的过程:P63起始、导出、精化、协商、规格说明、确认和管理2、在项目起始阶段,软件工程师会询问一些视乎与项目无直接关系的问题,目的是对问题、方案需求方、期望方案的本质、客户和开发人员之间初步的交流合作的效果建立基本的谅解。
P643、为什么导出需求这么困难:范围问题、理解问题、易变问题P89范围问题:系统的边界不清楚,或客户/用户的说明带有多余的技术细节,这些细节可能会混淆而不是澄清系统的整体目标理解问题:客户/用户并不完全确定需要什么,对其计算环境的能力和限制所知甚少,对问题域没有完整的认识,与系统工程师在要求沟通上有问题,省略那些他们认为是“明显的”信息,确认的需求和其他客户/用户的需求相冲突,需求说明有歧义或不可测试。
易变问题:需求随时间变化。
4、用例的定义:讲述了能表达场景的故事:最终用户如何在一特点环境下和系统交互P735、在需求工程的导出阶段,三个主要的需求收集活动是:主持人会议、QFD和用户场景开发P71、P816、常用的需求工程描述工具:用例图、数据流程图第七章构建分析模型(注:需求模型即分析模型,为同义词,详见P76下面注释)0、分析模型在系统描述和设计模型之间建立桥梁:P851、需求模型必须实现的目标:P85①客户描述需要什么②为软件设计奠定基础③定义在软件完成后可以被确认的一组需求2、分析模型的所有元素都可以直接跟踪到设计模型P853、分析模型必须实现的目标:基于计算机系统提供必要的信息、功能和行为域的说明P764、分析模型的4个元素:基于场景的元素,面向信息流的元素,基于类的元素,行为元素P1275、UML泳道图是活动图的一种变形,可以让建模人员表示用例所描述的活动流,同时指示哪个参与者或分析类对是由活动矩形所描述的活动负责。
P946、UML状态图为每个类表现活动状态和导致这些活动状态变化的事件7、UML顺序图说明事件如何引发一个对象到另一个对象的转移8、简述CRC(类-职责-协作者)建模的内容P103CRC模型实际上表示类的标准索引卡片的集合。
这些卡片被分为三部分,顶部写类名,下面左侧部分列出类的职责,右侧部分列出类的协作关系。
9、使用UML类图来举例说明组合聚合之间的区别10、使用UML类图举例说明关联和依赖之间的区别P102、P10811、系统分析的经验原则P86①模型应关注在问题域或业务域内可见的需求,抽象的级别应该相对高点。
②需求模型的每个元素都应能增加对软件需求的整体理解,并提供对信息域,功能和系统行为的深入理解。
③关于基础结构和其他非功能的模型应推延到设计阶段再考虑。
④最小化整个系统内的关联。
⑤确认需求模型为所有共利益者都带来价值。
⑥尽可能保持模型简洁。
第八章设计工程1、简述良好设计的三个特征:P129①设计必须实现所有包含在需求模型中的明确需求,而且必须满足客户希望的所有隐含需求。
②对于那些生成代码的人和那些进行测试以及随后维护软件的人而言,设计必须是可读的、可以理解的指南。
③设计必须提供软件的全貌,从实现的角度说明数据域、功能域、和行为域。
2、设计模型包含的四种元素是什么:数据、体系结构、构件和接口。
P1273、软件体系结构的定义:软件的整体结构和这种结构为系统提供概念上完整性的方式P1464、模块应该详细说明且精心设计以求在某个模块中包含的信息不被不需要这些信息的其他模块访问P133信息隐蔽:每个模块对其他所有模块都隐蔽自己的设计决策。
P134隐蔽意味着通过定义一系列独立的模块可以得到有效的模块化,独立模块相互之间只交流实现软件功能所必须的那些信息。
隐蔽定义并加强了模块内的过程细节和模块所使用的任何局部数据结构的访问约束。
5、重构的定义:是使用这样一种方式改变软件系统的过程:不改变代码设计的外部行为而是改进其内部结构P1366、举例说明逐步求精P1357、框架和设计模式之间的区别P136 ???8、PDL语言P185第九章进行体系结构设计1、简述软件体系结构的作用:P146分析设计在满足规定需求方面的有效性;在设计变更相对容易的阶段,考虑体系结构可能的选择方案;降低与软件构造相关联的风险2、软件体系结构的典型分类:以数据为中心的体系结构,数据流体系结构,调用和返回体系结构,面向对象体系结构,层次体系结构(以图例来说明)P1513、体系结构环境图所包含的要素,以图例来说明P155第十一章软件测试策略1、简述软件测试策略的螺旋模型:单元测试、集成测试、确认测试、系统测试P258单元测试:侧重于以源代码形式实现的每个单元(例如,构件、类或Web应用内容对象)。
集成测试:测试重点在于软件体系结构的设计和构造。
确认测试:依据已经建立的软件,对需求(作为软件需求建模的一部分而建立)进行确认系统测试:将软件与系统的其他成分作为一个整体来测试。
2、简述单元测试中驱动程序和桩程序的作用P262驱动程序:只是一个“主程序”,它接受测试用例数据,将这些数据传递给构件并打印相关结果。
桩程序的作用:是替换那些从属于将要测试的构建或被其调用的构建。
3、集成测试的两种方式:增量集成与一步到位P2634、试以图例描述自顶向下集成测试的方法过程P264(图)5、简述确认测试的两种主要方法:α测试和β测试P269α测试是由有代表性的最终用户在开发者的场所进行β测试在一个或多个最终用户场所进行6、系统测试的主要方法:恢复测试、安全测试、压力测试、性能测试P2707、三种调试方法:蛮力法,回溯法,原因排除法P274第十二章测试战术1、好的测试所具有的特性P279好的测试具有较高的发现错误的可能性好的测试是不冗余的好的测试应该是“最佳品种”好的测试应该既不太简单也不太复杂2、黑盒测试的定义P278-----采用外部观察黑盒测试,也称行为测试,侧重于软件的功能需求3、白盒测试的定义P271-----需要内部观察白盒测试,有时也成为玻璃盒测试,是一种测试用例设计方法,它利用作为构件层设计的一部分而描述的控制结构来生成测试用例。
《软件工程》复习提纲答案
1.选择正确答案:(1)在软件生存周期中, A 阶段所占的工作量最大;(2)结构化分析方法产生的软件需求说明书由一套分层的 B 、数据字典和补充说明材料组成;(3)软件的 C 一般可用平均无故障时间和故障平均修复时间来度量;(4)采用 D 编写程序可提高程序的可移植性;(5)仅根据规格说明书描述的程序功能来设计测试用例的方法称为 E 。
A ①分析②设计③编码④测试⑤维护B ①因果图②数据流图③ PAD图④流程图C ①易维护性②可靠性③效率④易理解性D ①机器语言②宏指令③汇编语言④高级语言E ①白盒方法②静态分析法③黑盒方法④人工分析法2.需求分析的主要任务是建立新系统的 A ;总体设计的主要任务是设计出新系统的B ;详细设计的主要任务是完成模块的C ;编码的主要任务是写出各模块的D 。
A:①系统结构②逻辑模型③软件结构④系统流程B:①软件结构②模块结构③逻辑模型④数据流程C:①输入输出设计②逻辑功能设计③过程设计④结构设计D:①PAD ②PDL ③源程序④过程性描述3.软件设计将涉及到软件的结构、过程和模块的设计,其中软件过程设计是指描述。
①模块间的关系②模块的操作细节③软件层次结构④软件开发过程4.模块独立是软件模块化所提出的要求,衡量模块独立的度量标准是模块的。
①抽象和信息隐蔽②局部化和封装③高内聚和低耦合④激活机制和控制方法5.在结构化分析和设计技术(SADT)中,数据流图是用于描述系统的 A 的主要工具,数据字典是定义 B 中关于数据的描述工具。
A ①详细设计②需求分析③总体设计④逻辑模型B ①数据流图②系统流程图③程序流程图④软件结构图6.人们在使用高级语言编码时,首先可通过编译程序发现源程序中的全部 A 和部分语法错误,然后可采用 B 来发现程序中的运行错误并采用纠错来确定错误的性质,设计错误是泛指用户在验收中发现的结果与需求不符的错误。
A的选项:①符号错误②逻辑错误③通路错误④语义错误B的选项:①诊断②测试③检验④排错⑤纠错⑥试探7.用面向对象方法开发软件时,人们通常从三个侧面建立三种不同的模型:一是描述系统静态结构的A对象模型;二是描述系统控制结构的B动态模型;三是描述系统计算结构的C功能模型。
《软件工程》复习提纲
《软件⼯程》复习提纲注:下⽂中的例题仅供复习⽤,请不要当成考题来背。
1.软件危机主要体现在哪些⽅⾯?(1.1)P2例题:软件⼯程的出现主要是由于( C )。
A.程序设计⽅法学的影响B.其它⼯程科学的影响C. 软件危机的出现 D.计算机的发展软件危机主要表现在那些⽅⾯?答:软件危机主要表现在:1)对软件开发成本和进度的估算很不准确2)⽤户很不满意3)质量很不可靠4)没有适当的⽂档5)软件成本⽐重上升6)供不应求:软件开发⽣产率跟不上计算机应⽤迅速深⼊的趋势2.什么是瀑布模型,RUP模型,快速原型模型,螺旋模型,喷泉模型?(2.2-2.6,)P14起软件开发中常采⽤的结构化⽣命周期⽅法,由于其特征⽽⼀般称其为( A )A、瀑布模型B、对象模型C、螺旋模型D、层次模型瀑布模型的存在问题是(B)A.⽤户容易参与开发 B.缺乏灵活性C.⽤户与开发者易沟通 D.适⽤可变需求名词解释瀑布模型将软件⽣存周期各个活动规定为依线性顺序连接的若⼲阶段的模型叫瀑布模型。
书P34/2 对⽐瀑布模型、原型模型、增量模型和螺旋模型答:瀑布模型:主要体现了分阶段、有控制的思想。
活动间强调按顺序,⽂档化;存在的问题过于理想化,每⼀步的⼯作必须完整准确,否则⽆法进⾏下⼀步⼯作。
原型模型:需求分析⼊⼿快速、表达直观、容易交流。
重点解决瀑布模型的需求分析⼊⼿难的问题。
增量模型:对于需求复杂的系统,采⽤分块开发、逐步集成的开发策略。
增量体现了演进迭代思想,每⼀块就是⼀个增量。
每个增量是⼀次迭代。
增量模型的新版本叫做“极限编程(XP)”螺旋模型:融合了上述3种模型,融进了循环往复、强化了演进迭代的思想,增加了风险控制环节。
但是,风险分析的正确性是左右软件演进的关键因素。
3.增量模型和ER模型有什么特点?2.4+3.4 P17+P42在E-R 模型中,包含以下基本成分( C )。
A、数据、对象、实体B、控制、联系、对象C、实体、联系、属性D、对象、属性、操作ER模型有什么特点?答:ER模型⽐较接近⼈的思维⽅式。
软件工程复习提纲
1.可行性分析,需求分析,概要设计,详细设计阶段的参与人员有哪些?需求分析用户、管理人员、分析人员、软件开发小组成员2.在软件详细设计过程中采用的工具有哪些?程序流程图、N-S图、PAD图(问题分析图)、判定表&判定树、PDL等、Jackson方法3.白盒技术测试技术有哪些?(5.3-5.4)a)单元测试b)逻辑覆盖i.语句覆盖ii.判定覆盖(分支覆盖)iii.条件覆盖iv.判定/条件覆盖v.条件组合覆盖c)控制结构测试i.基本路径测试ii.条件测试iii.数据流测试iv.循环测试4.黑盒技术测试方法有哪些?(5.5-5.6)a)等价划分b)边界值分析c)错误推测d)验收测试e)集成测试5.软件生存周期的活动中,哪个阶段要进行软件结构设计?(概要设计阶段)软件生命周期由软件定义、软件开发、和运行维护3个时期组成的软件定义:问题定义、可行性分析、务求分析软件开发:系统设计(概要设计、详细设计)、编码、测试6.什么是瀑布模型?瀑布模型是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈。
如果有信息未被覆盖或者发现了问题,可以“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,7.什么是ER模型?实体联系模型,是概念数据模型的高层描述所使用的数据模型或模式图,它为表述这种实体联系模式图形式的数据模型提供了图形符号。
8.什么是螺旋模型?螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。
螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。
同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。
螺旋模型更适合大型的昂贵的系统级的软件应用。
9. 什么是喷泉模型?喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于采用对象技术的软件开发项目。
软件工程复习提纲
软件工程复习点一、判断题1.在分析用户需求时同时考虑维护问题。
(正确)2.测试完程序后,删去程序中的注解以缩短源程序长度。
(不正确)3.在软件开发过程中尽量保证各阶段文档的正确性。
(正确)4.编码时尽量多用全局变量。
(不正确)5.选用时间效率和空间效率尽可能高的算法。
(不正确)6.尽可能利用硬件特点以提高程序效率。
(不正确)7.尽可能使用高级语言编写程序。
(正确)8.进行总体设计时加强模块间的联系。
(不正确)9.尽量减少程序模块的规模。
(不正确)10.用数据库系统代替文件系统来存储需要长期保存的信息。
(正确)11.用CASE环境或程序自动生成工具来自动生成一部分程序。
(正确)12.尽量用可重用的软件构件来组装程序。
(正确)13.使用先进的软件开发技术。
(正确)14.采用防错程序设计技术,在程序中引入自检能力。
(正确)15.把与硬件及操作系统有关的代码放到某些特定的程序模块中。
(正确)二、简答题1.北京某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨校外电话需先拨0,若是本市电话则再接着拨8位数字(第1位不是0),若是外地电话则拨3位区码再拨8位电话号码(第1位不是0)。
请定义上述的电话号码。
电话号码=[校内电话号码|校外电话号码]校内电话号码=非零数字+3位数字校外电话号码=[本市号码|外地号码]本市号码=数字零+8位数字外地号码=数字零+3位数字+8位数字非零数字=[1|2|3|4|5|6|7|8|9]数字零=03位数字=3{数字}38位数字=非零数字+7位数字7位数字=7{数字}7数字=[0|1|2|3|4|5|6|7|8|9]2.从供选择的答案中选出在下列叙述中括弧内字母应该代表的正确内容,把答案写在答案栏内。
(1)一组语句在程序的多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚度是(A)的。
(2)将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是(B)的。
软件工程复习提纲答案连同实验答案
软件工程复习提纲第1章概述1、什么是软件危机?产生软件危机的主要原因?P3软件危机是指计算机软件的开发和维护过程中所遇见的一系列严重问题出现软件危机的主要原因是人们在开发软件时使用了错误的方法2、软件工程的定义?P5软件工程是指导计算机软件开发与维护的工程学料,它采用工程的概念,原理、技术和方法来开发与维护软件3、软件生命周期定义,八个阶段,及基本任务是什么?P10软件生命周期是指一个软件从定义、开发、使用和维护,直到最终被废弃,经历了一个漫长的时期。
八个阶段为问题定义(关键问题是:“要解决的问题是什么?”);可行性研究(用最小的代价在尽可能短的时间内确定问题是否解决);需求分析(仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么”这个问题);概要设计(概括地回答“怎么实现目标系统?”这个问题);详细设计(还不是编写程序,而是设计出程序的详细规格说明);编码和单元测试(写出正确的容易理解、容易维护的程序模块);综合测试(通过各种类型的测试(及相应的调试)使软件达到预定的要求);软件维护(通过各种必要的维护活动使系统持久地满足用户的需求)4、螺旋模型:综合了瀑布模型和快速原型的优点,并增加了风险分析5、5种模型的特点。
瀑布模型具有三个特点:1阶段间具有顺序性和依赖性2推迟实现的观点3质量保证的重点快速原型模型是不带反馈环的,软件产品的开发基本上是线性顺序进行的增量模型也称为渐增模型,使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。
每一个构件由多个相互作用的模块构成,并且能够完成特定的功能螺旋模型综合了瀑布模型和快速原型的优点,并增加了风险分析喷泉模型第2章结构化分析1、可行性分析主要是进行哪三个方面的分析?P23技术可行性、经济可行性和操作可行性2、结构化分析主要建立什么模型?P32主要建立功能模型(数据流图)、数据模型(ER图)和行为模型(状态图)3、E-R关系图包含什么信息?P40包含着实体(客观世界中存在的且可相互区分的事物)、联系(客观世界中的事物彼此间往往是有联系的)和属性(实体或联系所具有的性质)4、什么是数据流图?P41数据流图(DFD )是一种形象直观的图形,它描绘数据在软件中从输入移动到输出的过程中所经受的变换(即加工处理)5、会画简单的实体联系图、系统流程图、数据流图?P426、什么是数据字典?P47数据字典是描述数据的信息的集合,是对目标系统中使用的所有数据的定义的集合7、结构化分析的策略是自顶向下逐步求精。
软件工程复习提纲
一、选择1.软件需求规格说明书的内容不应包括(D)A.主要功能B软件的性能C.用户界面及运行环境D.算法的详细描述2.数据字典……基本功能是(B)A数据库设计B数据定义C数据通信D数据维护3、面向对象的分析方法主要是建立三类模型即(C)A.系统模型、ER模型、应用模型B.对象模型、动态模型、应用模型C.对象模型、动态模型、功能模型D.ER模型、对象模型、功能模型4.软件概要设计(架构设计)结束后得到(C)。
A.初始化的软件结构图B.模块的接口图和详细算法C.优化后的软件结构图D.程序编码5.软件测试的目标是(B)A.证明软件是正确的B.发现错误,降低错误带来的风险C.删除软件中所有的错误D.与软件调试相同6.系统因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为(D)A.系统软件B.操作系统C.测试软件D.容错软件7.详细设计的基本任务是确定每个模块的(A)设计A.算法B调用关系C输入输出数据D.功能8.面向数据流的设计方法把(B)映射成软件结构A.系统结构B.数据流C.控制结构D.信息9.下面几种白箱测试技术,哪种是最强覆盖准则(D)A.语句覆盖B.条件覆盖C.判定覆盖D.条件组合覆盖10.提高测试的有效性非常重要,成功的测试是指(A)A.发现了至今为止尚未发现的错误。
B.说明了被测试程序符合相应的要求。
C.证明了被测试的程序正确无误。
D.未发现被测试程序的错误。
11.瀑布模型的存在问题是(B)A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求12.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫(D)A.生存期B.面向对象设计C.面向对象程序设计D.面向对象分析13.软件测试方法中的静态测试方法之一为(A)A计算机辅助静态分析B黑盒法C路径覆盖D边界值分析14.在E-R模型中,包含以下基本成分(C)A.数据、对象、实体B控制、联系、对象C.实体、联系、属性D.实体、属性、操作15.在软件测试中,白盒测试方法通过分析程序的(C)来设计测试用例的方法。
软件工程复习提纲(附答案)
软件工程第一章软件工程介绍1、软件的特性:P4软件是设计开发的,而不是传统意义上的生产制造;软件不会磨损;大多数软件仍是根据实际的客户需求制定的。
2、计算机软件的七大分类:P5系统软件、应用软件、工程/科学软件、嵌入式软件、产品线软件、Web应用软件、人工智能软件。
3、遗留系统发生系统演化的原因:P6软件需要修改其适应性,从而可以满足新的计算环境或技术的需求软件必须根据新的业务需求进行升级软件必须扩展以具有与更多现代系统和数据库的协作能力软件架构必须进行改建以适应多样化的网络环境4、软件神话:管理者,用户,从业者P105、软件的定义:P4软件是指令的集合,通过执行这些指令可以满足预期的特征,功能和性能需求;数据结构,它使得程序可以充分利用信息;描述程序操作和使用的文档。
第二章过程综述1、软件工程的三个要素:工具,过程,方法P17过程:软件过程将各个技术层次结合在一起,并实施合理地,及时地开发计算机软件方法:为建造软件提供技术上的解决方法。
工具:为过程和方法提供自动化或半自动化的支持。
2、通用软件过程框架:沟通,策划,建模,构建,部署P8沟通:这个框架活动包含了与客户之间大量的交流和协作,还包括需求获取以及其他相关活动策划:指为后续的软件工程工作制定计划。
建模:它包括创建模型和设计两方面。
创建模型有助于客户和开发人员更好得理解软件需求;设计可以实现它。
构建:它包括编码和测试。
部署:软件交付到用户,用户对其进行评测并给出意见3、能力成熟度模型:P22第0级:不完全级;第1级:已执行级;第2级:已管理级;第3级:已定义级;第4级:已定量管理级;第5级:优化级;第三章过程模型1、简述惯例框架包含的主要活动:P23沟通、策划、建模、构建、部署2、简述瀑布模型所包含的主要框架活动:P24沟通、策划、建模、构建、部署3、简述瀑布模型在实际运用中所面临的问题(缺点):P24实际的项目很少遵守瀑布模型提出的顺序客户通常难以清楚地描述所有的需求客户必须有耐心,因为只有在项目的后期,他们才能看到可执行的程序。
软件工程复习提纲
软件工程复习提纲第一章软件与软件工程1. 什么是软件工程?构成软件工程的要素是什么?2. 什么是软件危机?软件危机有那些表现?3.软件开发的三种最主要方法是什么?4.软件工程实践中的五个面向理论的含义是什么?5.用图表方式说明软件的生存周期6.结合软件生存周期理论,阐述几个重要的软件开发模型的特点及适用条件(如瀑布模型、快速原型模型、增量模型、迭代模型等)第四章需求分析基础1.什么是软件需求?软件需求的属性是什么?2.需求分析阶段的一般工作流程是什么?3.什么是需求分析?需求分析的任务、目的是什么?4.什么是需求定义?5.简述软件需求分析的任务与步骤,并以图书管理系统为例说明6.需求的分析的方法与切入点?(过程分析、对象分析;功能分析、对象分析、数据分析?)7.需求分析的描述工具?8.什么是业务流程图?业务流程图的主要绘图元素有哪几种?9.什么是数据流图?数据流图的绘图元素有哪几种?10.分别画出图书管理系统的业务流程图和数据流图11.画出图书管理系统的用例图12.画出一个网上招聘系统(招聘网站)的用例图第五章面向数据流的分析方法1. 阐述数据流图、数据字典和E-R图的构成2. 阐述基于数据流图进行需求分析的大致过程。
3. 归纳总结CASE工具的核心思想。
4. 如何判断数据流图的一致性和完全性?可否用CASE工具自动或半自动地完成这两类检查?如果可以,请给出相应的软件设施途径。
5. 设计一个简单图书信息系统上网E-R模型第六章面向对象的需求分析1. 基本概念:对象、类、消息、继承、聚集2. 简述利用UML尽心需求分析的主要步骤。
3. 简述面向对象的消息传递机制在程序设计语言中的实现过程。
4. 绘制表示“书籍”的UML类图,“书籍”可以描述为:一本书由许多部分组成,每一部分又由许多章组成,每一张由许多节组成。
部分、章和节都具有标题和序号属性。
第八章软件设计基础1.什么是软件设计?软件设计过程的输入和输出是什么?2.理解软件设计的原理3.什么是软件架构?理解软件的三层架构的内容及特点4软件设计有两大类方法是什么?5.面向过程设计的主要任务和内容和方法是什么?6.面向对象设计的内容和步骤是什么?第九章面向数据流的设计方法1. 简述SD方法将数据流图转换为软件结构的过程与步骤。
软件工程复习资料(提纲+答案)
软件工程复习资料(提纲+答案)第一章软件工程的实质1、什么是软件?由什么组成?软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档组成的完整集合。
可以写作为:软件=程序+数据+文档。
2、什么是软件危机?为什么会产生?(原因)软件危机:指的是在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
原因:用户需求不明确、缺乏正确的理论指导、软件规模越来越大、软件复杂度越来越高3、为什么要进行软件开发?4、软件工程的三段论?三段论:软件项目管理论、软件项目开发论、软件过程改进论5、软件工程生存期模型概念、类型、每种类型的特点?答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。
常见的软件生存周期模型有瀑布模型、V模型、原型模型、增量式模型、螺旋式模型。
6、了解复用的原则第二章软件项目的需求分析1、需求分析的主要任务?(基本任务)答:需求分析阶段的基本任务是要准确的定义新系统的目标,满足用户需要,回答系统必须“做什么”的问题。
本阶段要主要有以下几方面工作:(1)问题识别,双方确定对问题的综合需求,包括:功能需求、性能需求、用户界面需求,以及可靠性、安全性、可维护性等方面的需求。
(2)建立模型,对获取的需求,进行分析细化,划分系统功能,确定系统构成,并建立系统的逻辑模型。
(3)编写文档,也就是完成“需求规格说明书”的编写工作。
2、需求分析分两大块(功能与非功能)功能需求描述系统所预期提供的功能或服务。
非功能需求是对系统提供的服务或功能给出的约束。
包括时间约束、开发过程的约束、标准等。
3、(P27)需求建模的基本方法?答:关联模型、行为模型(数据流模型和状态机模型)、数据模型、面向对象模型、结构化模型(技术:数据流图(DFD)、数据字典(DD)、系统流程图)以及其他方法(如原型法、功能列表等)4、结构化方法的代表?(P29)7状态图活动图8、理解好数据流图为什么要分层?9、UML中常用的9种图?(P32 把包图去掉)静态图:类图、对象图、构件图、实施图和包图。
软件工程复习提纲
软件工程复习提纲I. 软件工程概述A. 定义与目标B. 发展历程C. 软件工程原则与方法论II. 软件开发过程A. 瀑布模型1. 阶段划分与任务2. 优点与缺点B. 增量模型1. 阶段划分与任务2. 优点与缺点C. 喷泉模型1. 阶段划分与任务2. 优点与缺点III. 需求工程A. 需求获取与分析1. 用户需求调研2. 需求规格化B. 需求验证与确认1. 需求评审2. 需求跟踪与控制IV. 软件设计A. 结构设计1. 模块化设计原则2. 模块间接口设计B. 数据设计1. 数据建模2. 数据库设计C. 用户界面设计1. 人机交互原则2. 界面布局与设计规范V. 软件构建A. 编码规范与标准1. 命名规范2. 代码注释B. 单元测试与集成测试1. 测试用例设计2. 测试工具与技术VI. 软件质量保证与控制A. 质量特性及度量1. 功能性2. 可靠性3. 可维护性4. 可测试性B. 缺陷管理1. 缺陷跟踪与报告2. 缺陷分析与修复VII. 软件项目管理A. 项目规划与组织1. 范围管理2. 人力资源管理B. 项目进度与成本控制1. 进度计划与跟踪2. 成本估算与控制VIII. 软件配置管理A. 版本管理1. 版本控制工具2. 分支与合并策略B. 变更管理1. 变更控制流程2. 变更影响分析IX. 软件工程伦理与职业责任A. 代码所有权与知识产权B. 软件开发道德标准X. 结语以上是软件工程复习提纲的架构,通过对各个主题的概要介绍和论述,有助于理解软件工程的基本概念、方法和流程,并为考试或复习提供了一个清晰的框架。
在准备复习时,可以根据这个提纲,进一步深入学习和了解各个主题中的具体知识点和案例。
软件工程是一门重要的学科,对于软件开发和项目管理都有着重要的指导意义,希望通过这个提纲的复习,能够帮助你更好地掌握软件工程领域的核心知识。
