软件工程导论复习笔记

合集下载

软件工程导论复习重点总结很全第六版

软件工程导论复习重点总结很全第六版

第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..软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。

2.软件与硬件的区别:软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。

3.软件:程序、数据及相关文档的完整集合。

4.软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到最好的技术方法结合起来,以经济地开发出高质量的软件并有校地维护它。

5.软件工程方法学三要素:方法、工具和过程。

6.传统方法学也称为生命周期方法学或结构化范型。

它采用结构化技术来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。

7.面向对象方法学把数据和行为看成同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。

8.软件生命周期划分为三个时期:1软件定义(问题定义、可行性研究、需求分析),2软件开发(总体设计、详细设计、编码和单元测试、综合测试),3运行维护(软件维护)。

9.4类软件维护活动:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件,为将来的维护活动预先做准备。

10.“瀑布模型”的缺点:它是由文档驱动的,仅仅通过写在纸上的静态的规格说明,很难全面正确地认识动态的软件产品;瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的产品不能真正的满足用户的需要。

11.快速原型模型的优点:原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求;开发人员通过建立原型系统已经学到了很多东西,因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。

第二章1.可行性研究的三个方面:技术可行性:使用现有的技术能实现这个系统经济可行性:这个系统的经济效益能超过它的开发成本操作可行性:系统的操作方式在这个用户组织内行得通2.数据流图的4个基本符号及画法P413.数据字典:是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

软件工程导论章节知识要点

软件工程导论章节知识要点

第一章一、名称解释1.软件2.文档3.软件工程4.软件生存周期5.软件工程过程6.软件生存周期模型7.软件开发方法8.软件工具二、填空题1.构成一个完整计算机系统的两部分是硬件与________。

2.程序设计时代的生产方式是________。

3.软件工程涉及到几个学科,它是一门_____学科。

4.软件开发划分的各阶段任务尽可能独立,同一阶段任务性质尽可能________。

5.将软件生存周期各个活动规定为依线性顺序联接的若干阶段的模型是________模型。

6.喷泉模型是一种以用户需求为动力,以_______为驱动的模型。

7.结构化方法是一种面向数据流的开发方法。

由结构化分析、_______、结构化程序设计构成。

8.软件工程研究的主要内容是软件开发管理和_______两个方面。

9.软件工具是支持软件开发人员的开发和维护活动而使用的________。

10.一个软件项目的开发中,要采用一种生存周期模型,要按照某种________,使用相应的工具来进行。

三、选择题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.1/2B.1/3C.1/4D.2/37.软件开发中大约要付出( )%的工作量进行测试和排错。

A.20B.30C.40D.508.准确地解决“软件系统必须做什么”是( )阶段的任务。

A.可行性研究B.需求分析C.详细设计D.编码9.软件生存周期中最长的是( )阶段。

A.需求分析B.概要设计C.测试D.维护四、简答题1.软件产品的特性是什么?2.软件生产有几个阶段?各有何特征?3.什么是软件危机?产生的原因是什么?4.软件工程的性质、目标和内容是什么?5.软件工程面临的问题是什么?6.软件工程过程有哪些过程?7.软件生存周期有哪几个阶段?8.软件生存周期模型有哪些主要模型?9.有哪些主要软件开发方法?参考答案二填空题1.软件2.个体手工劳动3.综合性交叉4.相同5.瀑布6.对象7.结构化设计8.软件开发技术9.软件10.开发方法三、选择题1.B2.D3.A4.C5.A6.B7.C8.B9.D第二章一、名称解释1.可行性研究2.技术可行性3.经济可行性4.社会可行性5.货币时间价值6.投资回收期7.纯收入8.系统流程图二、填空题1.可行性研究的目的是用最小的代价,在尽可能短的时间内,确定________。

软件工程导论复习知识点

软件工程导论复习知识点

软件工程导论复习知识点一、软件:软件定义:软件=程序+文档+数据软件特点:1、具有抽象性2、没有明显的制造过程3、软件的维护比硬件的维护要复杂得多4、对计算机系统有着不同程度的依赖性5、尚未完全摆脱手工艺的开发方式6、软件本身是复杂的7、软件成本相当昂贵8、相当多的软件工作涉及到社会因素软件的发展:程序设计、程序系统、软件工程软件危机:软件危机指的是软件开发和维护过程中遇到的一系列严重问题。

软件危机的问题:如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。

软件危机表现:1.开发成本难以控制,进度不可预计;2.软件系统的质量和可靠性很差,难以满意;3.软件文档相当缺乏,软件系统不可维护;4.软件开发生产率很低,软件产品供不应求。

5.软件产品成本十分昂贵。

管理科学中的方法和原理进行软件生产的管理。

用数学的方法建立软件开发中的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型等。

软件工程三要素:方法、工具和过程。

软件方法:是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

包括:传统方法学面向对象方法学需要解决的问题:软件成本、软件可靠性、软件维护、软件生产率和软件复用。

基本内容:包括理论、结构、方法、工具、环境与规范等目标:以较少的投资获得易维护、易理解、可靠和高效率的软件产品。

原则:即分解、抽象和信息隐蔽、一致性和确定性原理:工程化和系统化。

软件过程:软件过程是把输入转化为输出的一组彼此相关的资源和活动从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等,为开发软件进行的一组开发活动,在过程结束时将输入(用户要求转化为输出(软件产品。

软件工程过程包含四种基本的过程活动:Plan 软件规格说明:规定软件的功能及其运行的限制Do 软件开发:产生满足规格说明的软件Check 软件确认:确认软件能够完成客户提出的要求Action 软件演进:为满足客户的变更要求,软件必须在使用的过程中演进软件工程的基本原理:强调使用生存周期方法学、强调使用结构分析与结构设计任务软件工程的目标:生产具有正确性、可用性以及开销合宜的产品1、付出较低的开发成本2、达到要求的软件功能3、取得较好的软件性能4、开发的软件易于移植5、需要较低的维护费用6、能按时完成开发7、及时交付使用三、软件生命周期:生命周期基本流程:问题定义→可行性研究→需求分析→总体设计(概要设计→详细设计→编码和单元测试→综合测试→软件维护。

软件工程导论 复习资料

软件工程导论 复习资料

名词解释:1.软件生命周期模型软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。

软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等2. 模块独立性模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。

模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。

3.软件的可维护性软件可维护性指软件能够被理解、校正、适应及增强功能的容易程度。

4. 软件工程软件工程指用科学知识和技术原理来定义、开发、维护软件的一门学科。

或者说,软件工程就是运用工程学的基本原理和方法来组织管理软件的生产、研究、开发、管理、维护的过程、方法和技术。

5.数据字典字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述。

6、静态测试静态测试是采用人工检测和计算机辅助静态分析的方法对程序进行检测。

7、面向对象:面向对象OO=类+对象+继承+通信8、需求分析需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。

9、软件危机软件危机(Software Crisis) 是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。

概括地说,主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

10、软件生存周期软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。

软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等。

简答:1.软件生存周期有哪几个阶段?①可行性研究②需求分析③总体设计④详细设计⑤编码⑥测试⑦维护2.白盒测试法有哪些逻辑覆盖标准?①语句覆盖②判定覆盖③条件覆盖④判定/条件覆盖⑤条件组合覆盖⑥点覆盖、边覆盖、路径覆盖3.软件的维护有哪4种类型?①校正性维护②适应性维护③完善性维护④预防性维护。

软件工程导论(朱少民版)复习资料

软件工程导论(朱少民版)复习资料

第一章:软件工程概述1.软件及软件开发的特点是什么?(ppt)●抽象性:逻辑实体,而非具体的物理实体●无明显制造过程●无磨损性:不会老化●对硬件的依赖性:开发和运行受计算机系统限制●软件的手工开发方式●本身的复杂性:实际问题的复杂性,程序逻辑结构的复杂性●高成本●相当多的软件工作涉及到社会因素2.软件危机是什么?(P1)软件危机有哪些表现?(P2)产生软件危机的主要原因是什么?(Ppt)●软件危机定义:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

●软件危机的本质是:软件开发的高成本,低质量,低效率●软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

●软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。

(2) 用户对“已完成的”软件系统不满意的现象经常发生。

(3) 软件产品的质量往往靠不住。

(4) 软件常常是不可维护的。

(5) 软件通常没有适当的文档资料。

(6) 软件成本在计算机系统总成本中所占的比例逐年上升。

(7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

●产生软件危机的主要原因:⏹客观原因:软件本身特点决定的。

逻辑部件、规模庞大软件是逻辑产品、产品的需求描述的不完整、不准确,开发人员对它的理解上有偏差等等;⏹主观原因:不正确的开发方法:缺乏高质量的人才;经验、合作、交流、管理;缺乏一种有效的、系统的、科学的原理、原则、方法和工具来指导软件的开发和维护;A忽视需求分析B错误认为:软件开发=程序编写C轻视软件维护3.软件工程的定义(P5)软件工程是指导计算机软件开发和维护的一门工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地、高效的开发出高质量的软件并有效地维护它,这就是软件工程。

第1 页4.软件包含些什么?程序、数据、文档(P5)5.软件工程的三要素:过程、方法、工具(P9)6.什么是软件的生命周期?(ppt)软件的生命周期分哪几个时期?哪几个阶段?每一个阶段的任务和阶段性成果分别是什么?(P11~14三个时期、八个阶段)(Ppt)●软件生命周期是指从提出软件产品的开发开始,经过开发、使用和维护,及至该软件产品被最终淘汰的全过程。

软件工程导论最全复习总结

软件工程导论最全复习总结

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章第2章第11章软件工程学概述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.软件危机的概念2.产生软件危机的原因(了解)3.消除软件危机的途径4.软件工程的概念5.软件工程的本质特性(7个)6.软件工程的基本原理(7个)7.传统方法学和面向对象的比较(各自的优缺点)8.软件生命周期的8个阶段以及各阶段的基本任务9.软件过程中使用的5个模型以及各自的特点瀑布模型:1)瀑布模型具有顺序性和依赖性。

2)推迟实现的观点:把逻辑设计与物理设计清楚地划分开,尽可能推迟物理模型的实现。

3)质量保证的观点:每一步都循序渐进,及早消除隐患,从而保证软件质量。

缺点:只有做出精确的需求分析,才能取得预期的结果。

由于各种客观、主观的原因,需求分析往往不很精确,常常给日后的开发带来隐患。

快速原型模型:1)开发人员和用户在“原型”上达成一致。

2)缩短开发周期,加快工程进度。

3)降低成本。

缺点:当告诉用户,还必须重新生产该产品时,用户是很难接受的。

这往往给工程继续开展带来不利因素。

增量模型:1)增量模型是一种非整体开发的模型。

2)该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。

缺点:要求软件具有开放的结构是这种模型固有的困难,可能会导致设计差、效率低、维护难。

螺旋模型:1)风险驱动,有利于软件重用。

2)建立在风险分析的基础上,绝对依赖人的素质。

3)开发中的每一层都很有弹性,并不是很明确的界限;每一层的目标和计划都是由小组本身来制定。

缺点:很难让用户确信这种演化方法的结果是可以控制的。

喷泉模型:1)充分体现了面向对象软件开发过程迭代和平滑过渡的特性。

2)各个阶段没有明显的界限,开发人员可以同步进行开发。

3)适应于面向对象的软件开发过程。

缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。

此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。

10.Rational统一过程(简称RUP,了解)11.敏捷过程的宣言(4个)12.极限编程&微软过程(了解)第2章1.可行性研究的任务(4个)2.系统流程图(了解)3.数据流图&数据字典(会画)4.单元练习题51.需求分析的目的2.获取需求的方法3.需求分析的图形工具(5个,重点掌握前2个)第5章1.总体设计的目的和原理原理:模块化;抽象;逐步求精;信息隐藏和局部化;模块独立2.耦合&内聚(从强到弱的顺序,各7个)耦合:1)内容耦合:当一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块时,就发生了内容耦合。

软件工程导论期末复习重点

软件工程导论期末复习重点

软件工程导论期末复习重点软件工程期末复习一、软件工程学概述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.系统流程图:是概括的描绘物理系统的传统工具。

软件工程导论笔记

软件工程导论笔记

软件工程导论笔记:一、软件工程概述软件工程是一门研究计算机软件开发、维护和管理的科学。

它致力于通过系统方法、工具和技术来提高软件开发的效率和质量。

二、软件工程的目标软件工程的目标是提高软件的质量和效率,同时降低软件开发和维护的成本。

为了实现这些目标,软件工程师需要关注以下几个方面:1.需求分析:了解用户需求,确保软件满足用户期望。

2.设计:将需求转化为可实现的设计方案,包括数据结构、算法和界面设计等。

3.编码:将设计转化为代码,实现软件的功能。

4.测试:发现并纠正软件中的错误和缺陷,确保软件的质量。

5.维护:在软件发布后,修复错误、更新功能和优化性能,以延长软件的生命周期。

三、软件工程的原则软件工程的原则包括:1.模块化:将软件划分为独立的模块,降低复杂度,提高可维护性。

2.抽象化:隐藏细节,只暴露必要的接口,简化问题。

3.信息化隐藏:将实现细节隐藏起来,只暴露必要的接口。

4.局部化:将相关的数据和操作组织在一起,便于维护和管理。

5.最大化冗余:利用现有的软件和硬件资源,最大程度地减少软件开发中的错误。

四、软件工程的工具和技术软件工程的工具和技术包括:1.需求分析工具:用于收集、分析和表达用户需求。

2.设计工具:用于生成数据结构、算法和界面设计等。

3.编码工具:用于编写和维护代码。

4.测试工具:用于发现和纠正软件中的错误和缺陷。

5.维护工具:用于跟踪和管理软件的变更。

五、软件工程的应用软件工程的应用广泛,包括但不限于以下几个方面:1.操作系统:操作系统的开发需要用到软件工程的思想和方法。

2.数据库系统:数据库系统的设计和实现需要用到软件工程的思想和方法。

3.网络应用:网络应用的发展需要用到软件工程的思想和方法。

软件工程导论复习资料

软件工程导论复习资料

软件工程导论复习资料第一章软件工程导论一、软件工程是指导计算机软件开发和维护的一门工程学科二、件工程的七条基本原则:1. 用分阶段的生命周期计划严格管理2. 坚持进行阶段评审3. 实行严格的产品控制4. 采用现代程序设计技术5. 结果应能清楚地审查6. 开发小组的人员应该少而精7. 承认不断改进软件工程实践的必要性三、软件工程方法学包含3个要素:方法、工具和过程。

方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

四、软件一程方法学:传统方法学、面向对象方法学五、软件生命周期:软件定义、软件开发和运行维护(也称为软件维护)3个时期组成1软件定义主要任务:问题定义、可行性研究和需求分析2开发时期主要任务:总体设计,详细设计,编码和单元测试,综合测试3维护时期主要任务:通过各种维护性活动使系统持久地满足用户的需求,通常有四类维护:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的需求改进若扩充软件使它更完善;预防性维护,即修改软件,为将来的维护活动预先做准备//①问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”②可行性研究~:对于上一个阶段所确定的问题有行得能的解决办法吗?③需求分析:确定目标系统必须具备哪些工能④总体设计:概括地说,应该怎样实现目标系统?⑤详细设计:应该怎样具体地实现这个系统呢?⑥编码和单元测试:写出正确的容易理解、容易维护的程序模块⑦综合测试:通过各种类型测(及相应的调试)使软件达到预定的要求,最基本的测试是集成测试和验收测试,集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试;验收测试则是按照规格说明的规定,由用户对目标系统验收六、软件过程的各种模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型第二章可行性研究一、可行性研究的任务分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度二、可行性(1) 技术可行性使用现有的技术能实现这个系统吗?(2) 经济可行性这个系统的经济效益能超过它的开发成本吗?(3) 操作可行性系统的操作方式在这个用户组织内行得通吗?三、可行性研究过程1. 复查系统规模和目标、2. 研究目前正在使用的系统3. 导出新系统的高层逻辑模型、4. 进一步定义问题5. 导出和评价供选择的解法、6. 推荐行动方针7. 草拟开发计划、8. 书写文档提交审查四、系统流程图:是概括地描绘物理系统的传统工具。

张海藩《软件工程导论》(第6版)笔记和课后习题详解

张海藩《软件工程导论》(第6版)笔记和课后习题详解
第 11 章 面向对象设计................................................................................................................................ 119 11.1 复习笔记...................................................................................................................................... 119 11.2 课后习题详解...............................................................................................................................125
第 3 章 需求分析 ......................................................................................................................................... 28 3.1 复习笔记 ........................................................................................................................................ 28 3.2 课后习题详解 ................................................................................................................................. 32

软件工程导论复习重点总结很全第六版

软件工程导论复习重点总结很全第六版

.第1章软件工程学概述1.1 软件危机1.1.1 软件危机的介绍软件危机(软件萧条、软件困扰):是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

软件危机包含下述两方面的问题:如何开发软件,满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。

软件危机的典型表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

1.1.2 产生软件危机的原因(1)与软件本身的特点有关)与软件开发与维护的方法不正确有关(21.1.3 消除软件危机的途径对计算机软件有正确的认识。

认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。

应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。

应该开发和使用更好的软件工具。

总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。

1.21.2.1 软件工程的介绍软件工程:是指导计算机软件开发和维护的一门工程学科。

采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

(期中考)软件工程的本质特性:软件工程关注于大型程序的构造软件工程的中心课题是控制复杂性软件经常变化开发软件的效率非常重要和谐地合作是开发软件的关键软件必须有效地支持它的用户在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品1.2.2 软件工程的基本原理用分阶段的生命周期计划严格管理优质范文..坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性1.2.3 软件工程方法学软件工程包括技术和管理两方面的内容。

软件工程导论复习笔记

软件工程导论复习笔记

软件工程导论复习笔记软件工程导论复习笔记简答题:1.什么是软件?答:软件是:(1)指令的集合(计算机程序),通过执行这些指令可以满足预期的特征、功能和性能需求。

(2)数据结构,使得程序可以合理利用信息。

(3)软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序操作和使用。

2.How do software characteristics differ from hardwarecharacteristics?软件的特性是如何不同硬件的特性?答:(1)软件是设计开发的,而不是传统意义上生产制造的(2)软件不会磨损,但会退化(3)虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的3.What do people mean by the expression "software crisis"?人们是怎样理解“软件危机”这个短语的?答:软件危机主要表现在两个方面:(1)无法满足日益增长的对软件的需求。

(2)难以满足对已有的软件系统的维护需求。

软件危机出现的原因:(1)由于软件生产本身存在着复杂性(2)与软件开发所使用的方法和技术有关“软件工程”的概念用工程化的思想来克服软件危机。

4.What myths about software still exist ?软件仍然存在着什么神话?答:管理者的神话;用户的神话;开发者的神话。

简答题:1.What are the three generic phases of software engineering?软件工程的三个一般的阶段是?答:定义阶段、开发阶段、维护阶段(软件生存周期的三个阶段:软件定义、软件开发、软件维护)2.What are the names of the five levels of the SEI CapabilityMaturity Model?CMM把企业控制软件过程的能力分为5级(5个级别的名字):①1级——initial or ad hoc level (初始级)②2级——repeatable level (可重复级)③3级——defined level (可定义级)④4级——managed level (可管理级)⑤5级——optimizing level (可优化级)3.Describe the phases of the prototyping model for software development.描述原型开发模型阶段对于软件开发?答:(1)开发人员和客户会面并且对于软件定义总体目标,确认需求(2)开发人员对原型进行快速的构造设计(3)用户对原型的评估从而改进需求(4)开发人员调整原型以满足客户的需求4.Why are evolutionary models considered by many to be thebest approach to software development?对于软件开发为什么演化模型被认为是最好的方法?答:由于现代软件开发的时间线越来越短,客户正变得越来越多样化,需求的变化也变得更加常见,我们需要一种方法来提供增量或进化的过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简答题:1.什么是软件?答:软件是:(1)指令的集合(计算机程序),通过执行这些指令可以满足预期的特征、功能和性能需求。

(2)数据结构,使得程序可以合理利用信息。

(3)软件描述信息,它以硬拷贝和虚拟形式存在,用来描述程序操作和使用。

2.How do software characteristics differ from hardwarecharacteristics?软件的特性是如何不同硬件的特性?答:(1)软件是设计开发的,而不是传统意义上生产制造的(2)软件不会磨损,但会退化(3)虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求定制的3.What do people mean by the expression "software crisis"?人们是怎样理解“软件危机”这个短语的?答:软件危机主要表现在两个方面:(1)无法满足日益增长的对软件的需求。

(2)难以满足对已有的软件系统的维护需求。

软件危机出现的原因:(1)由于软件生产本身存在着复杂性(2)与软件开发所使用的方法和技术有关“软件工程”的概念用工程化的思想来克服软件危机。

4.What myths about software still exist ?软件仍然存在着什么神话?答:管理者的神话;用户的神话;开发者的神话。

简答题:1.What are the three generic phases of software engineering?软件工程的三个一般的阶段是?答:定义阶段、开发阶段、维护阶段(软件生存周期的三个阶段:软件定义、软件开发、软件维护)2.What are the names of the five levels of the SEI CapabilityMaturity Model?CMM把企业控制软件过程的能力分为5级(5个级别的名字):①1级——initial or ad hoc level(初始级)②2级——repeatable level(可重复级)③3级——defined level(可定义级)④4级——managed level(可管理级)⑤5级——optimizing level(可优化级)3.Describe the phases of the prototyping model for software development.描述原型开发模型阶段对于软件开发?答:(1)开发人员和客户会面并且对于软件定义总体目标,确认需求(2)开发人员对原型进行快速的构造设计(3)用户对原型的评估从而改进需求(4)开发人员调整原型以满足客户的需求4.Why are evolutionary models considered by many to be thebest approach to software development?对于软件开发为什么演化模型被认为是最好的方法?答:由于现代软件开发的时间线越来越短,客户正变得越来越多样化,需求的变化也变得更加常见,我们需要一种方法来提供增量或进化的过程。

相比大多数过程这个演化的过程能提供更好的过程模型,最重要的是该模型反映了在建立复杂系统时到底发生了什么。

第三章(Exercise 3):简答题:1.可行性分析的任务是什么?答:可行性研究的任务是用最小的代价、在尽可能短的时间内确定问题是否能够解决。

分析员首先应该导出系统的逻辑模型,然后从系统逻辑模型出发,探索出若干种可供选择的主要解法(即系统实现方案)。

最后仔细研究每种解法的可行性。

2. 简述可行性分析的步骤是什么?答: (1)复查系统规模和目标(2)研究目前正在使用的系统(3)导出新系统的高层逻辑模型(4)重新定义问题(5)导出和评价供选择的方案(6)推荐方案和行动方针(7)草拟开发计划(8)书写文档、提交审查Rapid Application Development Model包含五个开发阶段Business modeling(业务建模)Data modelingProcess modelingApplication generationTesting and turnover第四章(Exercise 4):(软件需求分析)简答题:1.What are the five phases of software requirements analysis?软件需求分析的5个阶段是什么?(1)问题分析(2)问题评估和方案综合(3)建模(4)规约(5)复审2.Describe the facilitated application specification technique(FAST).描述FAST(facilitated application specification technique)便利的应用规约技术?答:(1)确定地点出席会议,会议由开发者和客户出席(2)建立准备和参与会议的规则(3)建立一个足够正式的议程以便可以进行所有重要的而又足够非正式的、鼓励思维的自由交流(4)一个“协调者“控制会议(5)使用一种定义机制第五章(Exercise 5):简答题:1.What are three primary objectives of the analysismodel?分析模型中的三个主要对象是什么?(1)描述顾客的需求(2)创建软件设计的基础(3)定义在软件完成后可以被确认的一组需求1. What are the data modeling elements represented inthe entity relationship diagram (ERD)?在实体关系图(ERD)中代表数据模型的元素是什么?答:(1)数据对象——一些实体的产生或消耗的信息(2)属性——数据特征与数据对象实例相关联(3)联系——指示数据对象连接的形式2. List the elements of the analysis model and explainthe role of each element?列出分析模型的元素并且解释每个元素的角色?答:(1)数据字典——包含所有数据对象产生或消耗的信息(2)实体关系图——描述数据对象的关系(3)数据流图——提供数据通过系统被改变移动数据流功能的指示(4)状态转换图——指示系统对于外部事件的答复第六章(Exercise 6)(设计、模型、设计模型)简答题:1. List the four design models required for a completespecification of a design and explain how each is created.列出四个设计模型需求对于一个设计的完整说明书并且解释每一个是怎样产生的?答:(1)数据设计——为了软件的实现而使ERD和数据字典变为数据结构需求(2)体系结构设计——来源于系统规范和子系统交互(3)接口设计——来源于DFD和CFD集中于怎样进行人机交互(4)构件级设计——结构化的元素被转变为过程化的描述2. List three characteristics that can serve as a guide toevaluate design quality.列出能够作为评估设计质量向导的三个特征?答:(1)设计必须实现所有包含在分析模型中的明显需求(2)设计必须是可读的、可理解的(3)设计应该提供软件的完整面貌3. What is a good design?solution:1. The design process should not suffer from …tunnel vision‟2. The design should be traceable to the analysis model.3. The design should not reinvent the wheel.4. The design should “minimize the intellectual distance”5. The design should exhibit uniformity and integration.6. The design should be structured to accommodate change.7. The design should be structured to degrade gently.8. Design is not coding, coding is not design.9. The design should be assessed for quality as it is being created, not after the fact.10.The design should be reviewed to minimize conceptual (semantic) errors.4.内聚(cohesion)是什么?凝聚力是衡量一个模块的功能相对实力5.耦合(coupling)是什么?耦合是模块之间的相互依存的方法第七章(Exercise 7)简答题1. What is Architecture?(体系结构是什么?)答:程序或计算机系统的软件体系结构是指系统的一个或者多个结构,它包括软件构件、构件的外部可见属性以及它们之间的相互关系。

2. How is a transaction center different from a transformcenter in a data flow diagram?在一个数据流图中交易中心是如何不同于变换中心?答:交易中心转换成系统内部许多行动路径之一的外部信息流。

第八章:(界面设计)简答题:1 . What is three “golden rules” ?三个“黄金法则”是什么?答:(1)将用户控制。

(2)减少用户的记忆负荷。

·(3)接口一致。

2.What framework activities are completed during user interface development process?在用户界面的发展过程期间完成的是什么框架内的活动?答:用户,任务和环境分析界面设计界面结构接口验证3.List four interface design issues present in the development of most user interfaces在大多数的用户界面的发展当中列出四个接口设计问题答:系统响应时间用户帮助设施错误信息处理命令标签4.用户界面的基本类型有几种?答:从用户角度出发,用户界面设计的类型主要有问题描述语言,数据表格、图形与图标、菜单、对话框及窗口等。

相关文档
最新文档