软件工程导论复习重点总结很全(第六版)
- 格式:docx
- 大小:37.20 KB
- 文档页数:3
第1章软件工程学概述1.1 软件危机1.1.1 软件危机旳简介软件危机(软件萧条、软件困扰): 是指在计算机软件旳开发和维护过程中所碰到旳一系列严重问题。
软件危机包括下述两方面旳问题:怎样开发软件, 满足对软件日益增长旳需求;怎样维护数量不停膨胀旳已经有软件。
软件危机旳经典体现:(1)对软件开发成本和进度旳估计常常很不精确;(2)顾客对“已完毕旳”软件系统不满意旳现象常常发生;(3)软件产品旳质量往往靠不住;(4)软件常常是不可维护旳;(5)软件一般没有合适旳文档资料;(6)软件成本在计算机系统总成本中所占旳比例逐年上升;(7)软件开发生产率提高旳速度, 远远跟不上计算机应用迅速普及深入旳趋势。
1.1.2 产生软件危机旳原因(1)与软件自身旳特点有关(2)与软件开发与维护旳措施不对旳有关1.1.3 消除软件危机旳途径对计算机软件有对旳旳认识。
认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完毕旳工程项目。
应当推广使用在实践中总结出来旳开发软件旳成功技术和措施, 并继续研究探索。
应当开发和使用更好旳软件工具。
总之, 为了处理软件危机, 既要有技术措施(措施和工具), 又要有必要旳组织管理措施。
1.21.2.1 软件工程旳简介软件工程: 是指导计算机软件开发和维护旳一门工程学科。
采用工程旳概念、原理、技术和措施来开发与维护软件, 把通过时间考验而证明对旳旳管理技术和目前可以得到旳最佳旳技术措施结合起来, 以经济地开发出高质量旳软件并有效地维护它, 这就是软件工程。
(期中考)软件工程旳本质特性:软件工程关注于大型程序旳构造软件工程旳中心课题是控制复杂性软件常常变化开发软件旳效率非常重要友好地合作是开发软件旳关键软件必须有效地支持它旳顾客在软件工程领域中是由具有一种文化背景旳人替具有另一种文化背景旳人发明产品1.2.2 软件工程旳基本原理用分阶段旳生命周期计划严格管理坚持进行阶段评审实行严格旳产品控制采用现代程序设计技术成果应能清晰地审查开发小组旳人员应当少而精承认不停改善软件工程实践旳必要性1.2.3 软件工程措施学软件工程包括技术和管理两方面旳内容。
《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。
(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。
总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
软件工程导论(第6版)知识点总结、复习课-图文复习课--------酷爱YC第一章1、什么是软件危机,什么是软件工程软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。
它包括两方面:(1如何开发软件,以满足对软件日益增长的需求;(2如何维护数量不断膨胀的已有软件。
软件工程:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件,并有效地维护它。
2、完整的软件配置由哪些内容组成软件配置主要包括程序,文档和数据等成分。
3、软件生命周期分为哪3个时期和8个阶段,每个阶段的任务(工作分别是什么,重要性如何开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。
其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。
(1 总体设计(概要设计,回答“怎样实现目标系统”。
建立系统的总体结构,划分子系统;确定系统由哪些模块组成,各子系统间、各模块间的关系(包括定义各子系统接口界面和各功能模块的接口,设计全局数据库或数据结构,规定设计约束,制定组装测试计划。
成果:概要设计说明书、数据库或数据结构说明书、系统的组装(集成测试计划等文档。
(2详细设计任务就是把解法具体化,也就是回答:“应该怎样具体地实现这个系统呢?”,设计每个程序模块的内部细节,包括数据结构、算法以及各程序模块间的接口信息,并设计模块的单元测试计划。
成果:详细设计规格说明和单元测试计划等详细设计文档。
以上(1、(2又合称为软件设计。
(3编码和单元测试这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。
根据详细设计规格说明,选用某种程序设计语言把详细设计的结果转化为机器可运行的源程序模块;运行和调试每一个程序模块;每编写出一个程序模块的源程序,调试通过后,即对该模块进行单元测试。
第一章、软件工程学概述软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
软件危机包含下述两个方面的问题:1.如何开发软件,以满足对软件日益增长的需求。
2.如何维护数量不断膨胀的已有软件。
具体的说,软件危机主要有以下一些典型表现:1.对软件开发成本的进度的估计常常很不准确。
2.用户对“已完成的”软件系统不满意的现象经常发生3.软件产品的质量往往靠不住。
4.软件常常是不可维护的。
5.软件通常没有适当的文档材料。
6.软件成本在计算机系统总成本中所占的比例逐年上升。
7.软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
软件生命周期:一个软件从定义、开发、使用和维护,知道最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生命周期。
软件配置:程序、文档和数据。
软件工程学的一个重要的目标:就是提高软件的可维护性,减少软件维护的代价。
软件:是程序、数据及相关文档的集合。
程序:是能够完成预定功能和性能的可执行的指令序列。
数据:是使程序能够适当地处理信息的数据结构。
文档:是开发、使用和维护程序所需要的图文资料。
软件工程:指导计算机软件开发和维护的一门工程学科。
软件工程具有下属的本质特性:1.软件工程关注于大型程序的构造。
2.软件工程的中心课题是控制复杂性。
3.软件经常变化。
4.开发软件的效率非常重要。
5.和谐地合作是开发软件的关键。
6.软件必须有效地支持它的用户。
7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程的7条基本原理:1.用分阶段的生命周期计划严格管理。
2.坚持进行阶段评审。
3.实行严格的产品控制4.采用现代程序设计技术。
5.结构应能清楚的审查。
6.开发小组的人员应该少而精。
7.承认不断改进软件工程实践的必要性。
软件工程:包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型。
软件⼯程导论知识点总结(整理)《软件⼯程导论》课后习题答案第⼀章软件⼯程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的⼀系列严重问题。
这些问题表现在以下⼏个⽅⾯:(1)⽤户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)⼀般软件很难维护。
(4)软件⽣产效率很低。
(5)软件开发成本越来越⼤。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满⾜不了计算机应⽤的普及与深⼊的需要。
2.为什么会产⽣软件危机?(1) 开发⼈员⽅⾯,对软件产品缺乏正确认识,没有真正理解软件产品是⼀个完整的配置组成。
造成开发中制定计划盲⽬、编程草率,不考虑维护⼯作的必要性。
(2) 软件本⾝⽅⾯,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统⼀的、公认的⽅法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越⼤,复杂程度越来越⾼,原有软件开发⽅式效率不⾼、质量不能保证、成本过⾼、研制周期不易估计、维护困难等⼀系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1) 充分吸收和借鉴⼈类长期以来从事各种⼯程项⽬中积累的⾏之有效的有效原理、概念、技术与⽅法,特别是吸取⼏⼗年来⼈类从事计算机硬件研究和开发的经验教训。
在开发软件的过程中努⼒作到良好的组织,严格的管理,相互友好的协作。
(2) 推⼴在实践中总结出来的开发软件的成功的技术和⽅法,并研究更好、更有效的技术和⽅法,尽快克服在计算机系统早期发展阶段形成的⼀些错误概念和作法。
(3) 根据不同的应⽤领域,开发更好的软件⼯具并使⽤这些⼯具。
将软件开发各个阶段使⽤的软件⼯具集合成⼀个整体,形成⼀个很好的软件开发⽀环环境。
总之为了解决软件危机,既要有技术措施(⽅法和⼯具),⼜要有必要的组织管理措施。
4.构成软件项⽬的最终产品:应⽤程序、系统程序、⾯向⽤户的⽂档资料和⾯向开发者的⽂档资料。
5.什么是软件⽣存周期?软件⽣存周期是指从软件定义、开发、使⽤、维护到淘汰的全过程。
软件工程导论知识点总结(整理)1.什么是软件危机?软件危机指在计算机软件的开发和维护过程中所遇到的一系列严重问题,包括用户难以满意、软件产品质量不可靠、维护困难、生产效率低下、开发成本增加、难以预估成本与进度、技术发展不能满足需求等方面。
2.为什么会产生软件危机?软件危机的产生原因包括开发人员对软件缺乏正确认识、软件开发过程缺乏统一的方法论和规范指导、软件规模和复杂程度增加等。
为了克服软件危机,需要充分吸收和借鉴人类长期以来从事各种工程项目中积累的有效原理、概念、技术与方法,并推广在实践中总结出来的成功的技术和方法,根据不同的应用领域开发更好的软件工具并使用这些工具,并且需要有必要的组织管理措施。
3.怎样克服软件危机?为了解决软件危机,需要采取技术措施和组织管理措施。
技术措施包括吸收有效原理、推广成功的技术和方法、开发更好的软件工具等;组织管理措施包括良好的组织、严格的管理、相互友好的协作等。
4.构成软件项目的最终产品软件项目的最终产品包括应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。
5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
6.软件生存周期为什么划分成阶段?将软件生存周期划分成阶段可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。
同时,每个阶段的具体任务独立而简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。
2)分析需求,确定系统的功能和性能要求;3)制定问题定义报告,明确系统的范围和边界,为后续的可行性研究提供基础。
2.可行性研究的目的是什么?可行性研究的目的是确定研制系统的可行性,包括技术可行性、经济可行性和操作可行性。
通过对这三个方面的评估,确定是否继续进行系统的研制。
3.可行性研究的内容有哪些?可行性研究的内容主要包括以下三个方面:1)技术可行性研究,包括对技术方案的评估和选择;2)经济可行性研究,包括成本效益分析和投资回报分析;3)操作可行性研究,包括用户需求的评估和系统的可用性评估。
1、软件危机是指在计算机开发过程中旳开发和维护过程中所碰到旳一系列旳严重问题。
2、软件是程序、数据及有关文档旳完整集合,程序是可以完毕预定功能和性能旳可执行旳程序序列;数据是是使程序可以合适旳处理信息旳数据构造;文档是开发、使用和维护程序所需要旳图文资料。
3、软件工程学包括3个要素:措施、工具、过程。
4、目前使用最广泛旳软件工程措施学是老式措施学和面向对象措施学。
5、软件工程措施学旳软件过程基本上可以用瀑布模型来描述。
6、瀑布模型、迅速原型模型、增量模型、螺旋模型、喷泉模型。
7、Rup把软件生命周期划为:初始、精化、构建、移交阶段。
8、可行性研究旳三方面:技术可行性、经济可行性、操作可行性。
9、数据流图(DFD是一种图形化技术,他描绘信息流和数据从输入移动到输出旳过程中所经受旳变化。
10、数据字典是有关数据信息旳集合,也就是对数据流程图中所包括旳所有元素旳定义旳集合。
11、数据流图和数据字典共同构成系统旳逻辑模型,没有数据字典,数据如就不严格,没有流程图,数据字典也难以发挥作用。
12、需求分析阶段结束之前,系统分析员应当写出软件需求规格阐明书,以书面形式准确旳描述软件需求。
13、9、构造化分析措施就是面向数据流自顶向下逐渐求精进行需求分析旳措施。
14、ER图中包括了实体、关系和属性,矩形代表实体,菱形表达关系,椭圆或圆角矩形表达属性,用直线把实体和其属性连接。
15、验证软件需求旳对旳性:一致性、完整性、现实性、有效性。
16、总体设计旳基本目旳是回答“概括地说,系统应当怎样实现?”,总体设计又称为概要设或初步设计。
17、模块旳独立程度可以有两个定性标量度量:内聚和耦合。
18、软件测试旳目旳:(1测试是为了发现程序中旳错误而执行程序旳过程;(2好旳测试方案是极也许发现迄今为止尚未发现旳错误旳测试方案;(3成功旳测试是发现可至今为止尚未发现旳错误旳测试。
19、软件测试环节:模块测试、子系统测试、系统测试、验收测试、平行运行。
软件工程导论期末复习重点软件工程期末复习一、软件工程学概述1.软件危机:计算机开发和维护的过程中所遇到的一系列问题名词解释(需要加上软件危机产生的原因)对用户的要求没有完整准确的认识就匆忙着手编写程序论述题(需要加上软件危机的典型表现)01.对软件开发成本和嫉妒的估计常常不准确02.用户对已完成软件系统的不满意情况经常发生03.软件的质量靠不住2.软件工程:指导计算机开发和维护的一门工程学科?名词解释3.软件工程方法学的三要素:方法、工具、过程4.软件生命周期的三个时期:软件定义、软件开发、运行维护01.软件定义时期的三个阶段:问题定义、可行性研究、需求分析02.软件开发时期的四个阶段:总体设计、详细设计、编码、单元测试,综合测试,前两个称系统设计,后两个称系统实现03.软件维护时期:只要任务是使软件持久的满足用户的需要,具体的说,当软件在使用过程中发现错误时应该加以纠正,当环境改变时应修改软件以适应新的环境,当用户有新的需要时,应该及时改进软件以满足用户新的需求,本时期不在划分阶段,但是每一次维护活动本质上都是一次压缩和简化了的定义和开发过程5.可行性研究的结果是客户做出是否继续这项工程的决定的重要依据,只有投资取得较大收益的的那些工程项目才是值得继续进行下去的6.需求分析的目标是:确定出系统必须具备哪些功能,和用户密切配合,充分交流信息,以得出经过系统确认的系统逻辑模型7.软件维护的四类维护活动:01.改正性维护:改正和诊断在使用过程中发生的软件错误02.适应性维护:修改软件以适应新的环境变化03.完善性维护:根据用户的需求改善和扩充软件使它更完善04.预防性维护:为将来的维护活动事先做准备8.瀑布模型: ?论述题01.传统的瀑布模型开发软件的特点A.阶段间具有顺序性和依赖性B.推迟实现的观点C.质量保证的观点02.软件配置:程序、文档、数据03.注释有什么用:提高代码的可读性(有待补充)二、可行性研究1.可行性研究的目的:就是用最小的代价在尽可能短的时间内确定问题是否能够解决2.从三个方面研究每种解法的可读性;01.技术可行性:使用现在的技术能实现这个系统吗?02.经济可行性:这个系统的经济效益能超过它的开发成本吗?03.操作可行性:系统的操作方式在这个用户组织内能行得通吗?3.系统流程图:是概括的描绘物理系统的传统工具。
复习课-------- 热爱 YC第一章1、什么是软件危机 ,什么是软件工程软件危机是指在计算机软件开发、使用与保护过程中碰到的一系列严重问题和难题。
它包含双方面 :(1 如何开发软件 ,以知足对软件日趋增添的需求 ;(2 如何保护数目不停膨胀的已有软件。
软件工程 :采纳工程的观点、原理、技术和方法来开发与保护软件,把经过时间考验而证明正确的管理技术和目前能够获取的最好的技术方法联合起来 ,以经济地开发出高质量的软件 ,并有效地保护它。
2、完好的软件配置由哪些内容构成软件配置主要包含程序 ,文档和数据等成分。
3、软件生命周期分为哪 3 个期间和 8 个阶段 ,每个阶段的任务 (工作分别是什么 ,重要性如何归纳地说 ,软件生命周期由软件定义、软件开发和运转保护 3 个期间构成1、软件定义 (系统剖析。
软件定义期间的任务是 :确立软件开发工程一定达成的总目标 ;确立工程的可行性 ;导出实现工程目标应当采纳的策略及系统一定达成的功能 ;预计达成该项工程需要的资源和成本 ,并且拟订工程进度表。
这个期间的工作往常又称为系统剖析 ,由系统剖析员负责达成。
软件定义期间往常进一步区分红 3 个阶段 ,即问题定义、可行性研究和需求剖析。
(1 问题定义 ,确立系统要解决的问题是什么。
成就:对于问题性质、工程目标和工程规模的报告。
(2 可行性研究 ,确立问题能否有可用的、能行得通的解(包含 :技术、经济、操作、社会等方面的可行性。
这个阶段的任务不是详细解决问题,而是研究问题的范围 ,探究这个问题能否值得去解,能否有可行的解决方法。
成就:可行性研究报告。
(3 需求剖析 ,确立软件系统的一定实现的功能、一定达到的性能、一定知足的运转环境要求。
系统剖析员在需求剖析阶段一定和用户亲密配合 ,充足沟通讯息 ,以得出经过用户确认的系统逻辑模型。
往常用数据流图、数据词典和简要的算法表示系统的逻辑模型。
在需求剖析阶段确立的系统逻辑模型是此后设计和实现目标系统的基础 ,所以一定正确完好地表现用户的要求。
软件工程一、名词解释与问答1、SA——结构化分析方法2、画数据流图应注意什么事项?(1)数据流名称只能是名词或是名词短语;(2)每个加工至少有一个输入数据和一个输出数据流,反映出此加工数据的来源与加工的结果;(3)编号:某个加工分解成一张数据流图时,上层图为父类,下层图为子类;父图与子图的平衡:子图的输入输出数据流同父类相应的输入输出数据流必须一致;(4)注意数据流图的易理解性;3、什么是软件生存周期?它有那几个活动?一个软件从提出开发要求开始直到该软件报废为止的整个时期。
包括:可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试,维护。
4、什么是数据流图?作用是什么?其中的基本符号表示什么含义?以图的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,是一种功能模型。
箭头,表示数据流数据流是数据在系统内传播的路径,由一组成分固定的数据项组成;圆或椭圆,表示加工对数据进行某些操作或变换,每个加工要有名字,通常是动词短语,描述完成的加工;双杆,表示数据存储指暂时保存的数据;方框,数据源点或终点软件系统外部环境的实体,为帮助理解系统接口界面引入,只出现在顶层图中;什么是数据字典简述数据字典与数据流图的关系.答案:数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具.(2分)数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用. 数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明.(3分) 简述编码风格的重要性. 答案:阅读程序是软件开发和维护过程中的一个重要组成部分,程序实际上也是一种供人阅读的文章.应当在编写程序时讲求程序的风格,这将大量地减少人们读程序的时间.良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量.简述软件测试的任务、目的与类型。
软件工程导论期末复习重点选择、判断略一、名词解释1、软件危机2、软件工程3、数据字典4、模块化5、黑盒测试6、软件维护7、软件过程8、快速原型9、白盒测试二、简答题1、可行性研究目的和任务?2、可行性研究包括哪几方面的内容?3、简述需求分析的描述工具和基本任务?4、什么是模块化?模块设计的准则?5、详细设计阶段的根本目标和任务?6、比较面向数据流和面向数据结构两类设计方法的异同?7、测试与调试的主要区别?8、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用X围.9、比较层次方框图与结构图的异同?10、结构化程序设计的基本原则?11、提高软件编码效率的3条原则?一、名词解释1、软件危机答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题.概括地说,包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件.2、软件工程答:①把系统的、规X的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径.3、数据字典答:数据字典是描述数据流图中数据的信息的集合.它对数据流图上每一个成分:数据项、文件<数据结构>、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成.4、模块化答:模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求.5、黑盒测试答:黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构.测试者把被测程序看成一个黑盒,不用关心程序的内部结构.黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息<如数据库或文件>的完整性.6、软件维护软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程.7、软件过程答:软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤.8、快速原型答:快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集.9、白盒测试答:白盒测试是指测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致.二、简答题1、可行性研究目的和任务?目的:确定在问题定义中所提出的问题是否值得去解,在限制条件下问题能否解决.可行性研究的任务:<1> 进一步分析和澄清问题的定义,在澄清问题的基础上,导出系统的逻辑模型;<2> 从系统逻辑模型中,选择问题的若干种主要解法,研究每一种解法的可行性,为以后的行动提出建议;<3> 如果问题没有可行的解,建议停止系统开发;如果问题有可行的解,应该推荐一个较好的解决方案,并为工程制定一个初步的计划.2、可行性研究包括哪几方面的内容?答:<1>技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;<2>经济可行性:经济效益是否超出开发成本;<3>操作可行性:系统操作在用户内部行得通吗?<4>法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律. 3、简述需求分析的描述工具和基本任务?答:需求分析的描述工具有数据流图、数据字典、判定表、判定树、结构化自然语言、层次方框图、Warnier图、IPO图和需求描述语言等.需求分析的基本任务是:准确定义未来系统的目标,确定为满足用户的需要系统必须做什么.4、什么是模块化?模块设计的准则?答:模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求.模块设计的准则:<1> 改进软件结构, 提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合.<2> 模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中.<3> 软件结构图的深度、宽度、扇入和扇出要适当.一般模块的调用个数不要超过5个.<4> 尽量降低模块接口的复杂程度;<5> 设计单入口、单出口的模块.<6> 模块的作用域应在控制域之内.5、详细设计阶段的根本目标和任务?答:详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统;详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的"蓝图〞.6、比较面向数据流和面向数据结构两类设计方法的异同?答:相同点:<1> 遵守结构程序设计"由顶向下〞逐步细化的原则,并以其为共同的基础;<2> 均服从"程序结构必须适应问题结构〞的基本原则,各自拥有从问题结构<包括数据结构>导出程序结构的一组映射规则.不同点:<1> 面向数据流的设计以数据流图为基础,在分析阶段用DFD表示软件的逻辑模型,在设计阶段按数据流类型,将数据流图转换为软件结构.面向数据结构的设计以数据结构为基础,从问题的数据结构出发导出它的程序结构.<2> 面向数据流的设计的最终目标是软件的最终结构图,面向数据结构的设计的最终目标是程序的过程性描述.7、测试与调试的主要区别?答: <1> 测试从一个侧面证明程序员的失败;调试证明程序员的正确;<2> 测试从已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试从不可知内部条件开始,除统计性调试外,结果是不可预见的;<3> 测试有计划并且要进行测试设计;调试不受时间约束;<4> 测试是发现错误、改正错误、重新测试的过程;调试是一个推理的过程;<5> 测试执行是有规程的;调试执行要求程序员进行必要的推理;<6> 测试由独立的测试组在不了解软件设计的件下完成;调试由了解详细设计的程序员完成;<7> 大多数测试的执行和设计可由工具支持;调试用的工具主要是调试器.8、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用X围.答:软件生命周期模型可以简洁地描述软件过程,它规定了把生命周期划分成哪些阶段与各个阶段的执行顺序.包括瀑布模型、快速原型模型、增量模型和螺旋模型等.瀑布模型优点:可强迫开发人员采用规X的方法〔例如,结构化技术〕;严格地规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证.缺点:模型过于理想化,是由文档驱动的.快速原型模型优点:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的方法,获取用户真正的需要.增量模型优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可以使用户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击.螺旋模型优点:对可选方案和约束条件的强调有利于已有软件的重用;减少过多测试.瀑布模型适用于文档驱动的产品研发;快速原型模型适用于软件交付时间紧急,且需获知用户真实需求的情况;增量模型适用于能在较短时间内向用户提交可完成部分工作的产品;螺旋模型适用于内部开发的大规模软件项目.9、比较层次方框图与结构图的异同?答: <1> 层次方框图描绘数据的层次结构, 结构图描绘的是软件结构.<2> 二者都采用多层次矩形框树形结构.层次方框图的顶层矩形框代表完整的数据结构, 下面各层矩形框依次代表上个框数据的子集;结构图是在层次图的每一个方框内注明模块的名字或主要功能,方框之间的直线表示模块的调用关系,用带注解的箭头表示模块调用过程中传递的信息.10、结构化程序设计的基本原则?答:结构化程序设计的基本原则是:在详细设计中所有模块都使用单入口、单出口的顺序、选择、循环三种基本控制结构.11、提高软件编码效率的3条原则?答:3条原则为:1〕效率是性能要求,因此应该在需求分析阶段确定效率方面的要求.2〕效率是靠好设计来提高的.3〕程序的效率和程序的简单程度是一致的,不要牺牲程序的清晰性和可读性来不必要地提高效率.。
软件工程导论 (第6版) 学习辅导
《软件工程导论》是一本经典的软件工程教材,现已出版第6版。
该书系统地介绍了软件工程理论、方法和实践,旨在培养软件工程师的综合能力,使他们能够设计、开发、测试、维护和管理高质量的软件系统。
本书涵盖了软件生命周期、需求工程、软件设计、软件测试、软件维护、软件项目管理等方面的知识,为读者提供了深入理解软件工程领域的基础。
在学习本书时,读者可以通过辅导材料来提高学习效果。
以下是一些常见的学习辅导:
1. 课后习题解答:本书的每章都有大量的习题,通过解答这些习题可以帮助读者巩固知识点和理解概念。
2. 实例分析:通过实例分析,读者可以了解到软件工程的实际项目开发过程,从而更好地理解理论知识。
3. 课堂讨论:在课堂上进行讨论,可以帮助读者与其他同学交流经验和观点,从而拓展自己的思维方式和视野。
4. 课程设计:通过课程设计,读者可以深入实践软件工程的各个环节,从而更好地掌握软件工程的理论和方法。
总之,《软件工程导论》是一本值得深入学习的经典教材,学习者可以通过各种辅导材料来提高学习效果,提高自己的软件工程实践能力。
- 1 -。
软件工程导论复习重点总结很全(第六版)
软件工程导论复习重点总结很全(第六版)
软件工程是一门研究如何以系统化的、可管理的和可维护的方式来
构建高质量的软件的学科。
在软件工程导论中,我们学习了软件开发
的基本概念、原理和方法。
本文将对软件工程导论的重点内容进行总结,帮助读者巩固所学知识,为学习和工作提供帮助。
1. 软件工程概述
软件工程的定义、目标和原则;软件生命周期和过程模型;软件开
发的重要性和挑战;软件工程中的质量保证和风险管理。
2. 软件需求工程
软件需求的定义和分类;需求获取、分析和建模;需求验证和确认;需求变更和配置管理。
3. 软件设计
软件设计原则和方法;面向对象设计和结构化设计;软件架构设计;设计模式的应用。
4. 软件测试与调试
软件测试的概念和目的;测试策略和技术;测试用例的设计和执行;测试评估和管理;软件错误调试和修复。
5. 软件项目管理
软件项目管理的基本概念和流程;项目计划和进度管理;团队组织
和沟通;风险管理和变更管理;质量管理和配置管理;软件工程伦理
与法规。
6. 软件开发过程
软件开发过程模型的选择和应用;瀑布模型、迭代模型和敏捷开发
等常用模型的特点和比较;敏捷开发方法的原理和实践。
7. 软件工具与环境
软件开发工具的选择和使用;集成开发环境、版本控制工具、测试
工具和调试工具等的功能和特点;软件工程中的自动化工具和技术。
8. 软件工程的前沿技术
软件工程的新兴技术和趋势;人工智能、大数据、云计算等技术在
软件开发中的应用;软件工程的创新与创业。
通过对上述主要内容的学习和理解,我们可以全面掌握软件工程导
论的核心知识和方法。
在今后的学习和实践中,我们应该注重理论与
实际的结合,不断提高自己在软件开发和项目管理方面的能力。
只有
不断学习和实践,我们才能成为优秀的软件工程师,为社会和企业创
造更大的价值。
总结:软件工程导论是软件工程领域中的重要基础课程,通过对软
件开发过程和管理原理的学习,我们可以掌握软件工程的基本概念、
原则和方法。
在软件工程导论的学习中,我们应该注重理论与实践的
结合,不断提高自己的实际操作能力。
相信通过对本文的阅读和理解,
读者会对软件工程导论有更全面的认识,为今后的学习和工作打下坚实的基础。