当前位置:文档之家› 软件工程导论知识点总结(整理)

软件工程导论知识点总结(整理)

软件工程导论知识点总结(整理)

1.什么是软件危机?

软件危机指在计算机软件的开发和维护过程中所遇到的一系列严重问题,包括用户难以满意、软件产品质量不可靠、维护困难、生产效率低下、开发成本增加、难以预估成本与进度、技术发展不能满足需求等方面。

2.为什么会产生软件危机?

软件危机的产生原因包括开发人员对软件缺乏正确认识、软件开发过程缺乏统一的方法论和规范指导、软件规模和复杂程度增加等。为了克服软件危机,需要充分吸收和借鉴人类长期以来从事各种工程项目中积累的有效原理、概念、技术与方法,并推广在实践中总结出来的成功的技术和方法,根据不同的应用领域开发更好的软件工具并使用这些工具,并且需要有必要的组织管理措施。

3.怎样克服软件危机?

为了解决软件危机,需要采取技术措施和组织管理措施。技术措施包括吸收有效原理、推广成功的技术和方法、开发更

好的软件工具等;组织管理措施包括良好的组织、严格的管理、相互友好的协作等。

4.构成软件项目的最终产品

软件项目的最终产品包括应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。

5.什么是软件生存周期?

软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。

6.软件生存周期为什么划分成阶段?

将软件生存周期划分成阶段可以降低每个阶段任务的复杂程度,简化不同阶段的联系,有利于工程的组织管理,也便于采用良好的技术方法。同时,每个阶段的具体任务独立而简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。

2)分析需求,确定系统的功能和性能要求;

3)制定问题定义报告,明确系统的范围和边界,为后续的

可行性研究提供基础。

2.可行性研究的目的是什么?

可行性研究的目的是确定研制系统的可行性,包括技术可行性、经济可行性和操作可行性。通过对这三个方面的评估,确定是否继续进行系统的研制。

3.可行性研究的内容有哪些?

可行性研究的内容主要包括以下三个方面:

1)技术可行性研究,包括对技术方案的评估和选择;

2)经济可行性研究,包括成本效益分析和投资回报分析;

3)操作可行性研究,包括用户需求的评估和系统的可用性评估。

4.技术可行性研究的方法有哪些?

技术可行性研究的方法主要包括以下几个方面:

1)对现有技术进行评估和选择;

2)进行技术可行性试验和验证;

3)开展技术风险评估和管理;

4)确定技术实现的关键问题和难点。

5.经济可行性研究的内容有哪些?

经济可行性研究的内容主要包括以下几个方面:

1)成本估算,包括直接成本和间接成本;

2)收益估算,包括直接收益和间接收益;

3)成本效益分析,通过比较成本和收益来评估系统的经济

可行性;

4)投资回报分析,通过计算投资回报率和回收期来评估系

统的经济可行性。

6.操作可行性研究的内容有哪些?

操作可行性研究的内容主要包括以下几个方面:

1)用户需求的评估,包括用户对系统的需求和期望;

2)系统的可用性评估,包括系统的易用性、可靠性、安全

性等;

3)操作风险评估和管理,包括对系统操作过程中可能出现

的风险进行评估和管理。

需求分析的基本任务是识别和确定系统用户的需求和期望,以及系统必须满足的功能和性能要求,为后续的设计、开发和测试提供指导和依据。同时,还需要对需求进行整理、分类、验证和确认,以确保需求的准确性、完整性、一致性和可行性。

总体设计的主要任务是确定软件结构,并且确定系统中各个模块之间的关系。模块是指由数据说明、可执行语句等程序对象组成的集合,可以通过名字来访问。模块具有输入和输出、功能、内部数据结构和程序代码四个特性。概要设计主要考虑输入、输出和功能两个特性。模块化是将一个大型软件按照规

定的原则划分为一个个较小的、相对独立但又相关的模块。模块设计的准则包括改进软件结构、提高模块独立性、适当控制模块大小和调用个数、降低模块接口的复杂程度、设计单入口、单出口的模块以及控制模块的作用域。

变换型数据流由传入路径、变换中心和传出路径三部分组成。变换分析设计的步骤包括区分传入、传出和变换中心三部分,完成第一级分解,完成第二级分解以及对初始结构图进行精化和改进。事务型数据流由至少一条接受路径、一个事务中心和若干条动作路径组成。事务分析设计的步骤包括在DFD

图中确定事务中心、接收部分和发送部分,画出SC图框架,

分解和细化接收分支和动作分支,以及对初始结构图进行精化和改进。层次方框图和结构图的异同在于,层次方框图描绘数据的层次结构,而结构图描绘的是软件结构。

详细设计的描述工具应该具备以下功能:

1)能够清晰地表达模块的算法和数据结构;

2)能够注明模块的名称和主要功能;

3)能够表示模块之间的调用关系;

4)能够表示模块调用过程中传递的信息;

5)能够设计测试用例,以便在编码阶段对模块代码进行预

定的测试。

不要出现冗余、混乱或不必要的代码。

2)标识符:应该具有描述性,能够清楚地表达对象的用途

和含义;变量名、函数名、常量名等应该有一致的命名规则。

3)注解:应该清晰、简明地表达代码的目的和功能,不应

该出现拼写错误或语法错误。

4)程序清单:应该按照逻辑顺序编排,易于阅读和理解,

避免出现重复的代码或逻辑错误。

5)代码规范:应该遵循一定的代码规范,如缩进、代码对齐、代码注释等,以便于其他程序员能够轻松阅读和理解代码。

6)可读性:代码应该易于阅读和理解,避免出现过于复杂

的代码结构和嵌套语句。

7)可维护性:代码应该易于维护和修改,避免出现过于复

杂的代码结构和嵌套语句,同时应该遵循一定的代码规范。

8)效率:代码应该具有高效性,避免出现不必要的循环和

重复计算,同时应该遵循一定的代码规范。

黑盒测试是一种测试方法,测试人员只关注输入和输出,不考虑程序内部的实现细节。主要采用的技术有等价类划分法、边界值分析法、决策表测试法、因果图测试法等。这些技术都

是基于输入和输出的特征进行设计测试用例的。黑盒测试可以帮助测试人员发现系统的功能缺陷和逻辑错误。

软件测试的策略包括:功能测试、性能测试、安全测试、可靠性测试、易用性测试、兼容性测试、可维护性测试等。其中,功能测试是最基本的测试策略,主要是验证系统是否符合规格说明书的要求。性能测试是验证系统在各种负载下的性能表现,包括响应时间、吞吐量、并发用户数等。安全测试是验证系统对各种攻击的抵抗能力。可靠性测试是验证系统的稳定性和可靠性,包括系统的容错性、可恢复性等。易用性测试是验证系统的易用性和用户体验。兼容性测试是验证系统在不同平台、不同浏览器、不同操作系统等环境下的兼容性。可维护性测试是验证系统的可维护性和可扩展性,包括代码的可读性、可维护性、可扩展性等。根据系统的特点和需求,选择不同的测试策略进行测试。

1.在所有情况下都应该采用边界值分析的方法来进行测试。

2.如果需要,可以使用等价类划分法来补充测试方案。

3.如果需要,可以使用错误推测法来补充测试方案。

4.对照程序逻辑,检查已设计出的测试方案是否合理。

5.根据程序可靠性的要求,采用不同的逻辑覆盖标准来补

充测试方案。

第八章软件维护

1.为什么说软件维护是不可避免的?

在软件开发过程中,很难检测到所有错误。另外,软件需要根据用户的新要求或运行环境的变化进行修改或完善功能,为了提高软件的应用水平和使用寿命,软件维护是不可避免的。

2.软件的维护一般分为哪几类?

软件的维护一般分为改正性维护、适应性维护、完善性维护和预防性维护。

3.影响软件维护的因素有哪些?

影响软件维护的因素包括开发方法、开发条件和测试用例的有效性。采用模块化详细设计文档、严格的管理规划和清晰可靠的文档资料可以提高软件的可维护性。使用标准的程序设计语言和操作系统接口可以提高软件的可维护性。有效的测试用例可以减少软件存在的错误。

4.软件维护困难主要表现在什么方面?

软件维护困难主要表现在维护人员对程序和文档的理解困难、维护时间较长以及设计时未考虑软件修改的问题。

5.决定软件可维护性的因素是什么?

决定软件可维护性的因素包括软件的可理解性、可测试性和可修改性,以及文档描述的符合要求、用户文档的简洁明确和系统文档的完整性和标准化。

6.软件价格应该计入维护成本吗?为什么?

软件价格应该计入维护成本中,因为软件价格反映了软件开发的成本和价值。维护软件需要花费时间和资源,这些成本应该计入软件的总成本中。

在软件生命周期中,软件维护的工作量非常大,不同应用领域的维护成本差别也很大。一般情况下,大型软件的维护成本远远高于开发成本。因此,在软件价格中应该计入维护成本。

软件工程管理包括费用管理、质量管理、配置管理和项目管理。费用管理涉及成本核算和管理开发费用的有效使用。质量管理确保软件产品按照软件工程规范进行开发和维护,以保证产品质量。配置管理保证资料的完整性与一致性。项目管理

则制定项目实施计划,按照计划组织和实施软件的工程化生产,以合理的费用和进度完成软件项目。

软件项目具有算法、思想、概念、组织、流程、效率、优化等的融合体的特点。在开发过程中,用户往往无法给出明确的想法和要求。程序及其相关的文档资料常常需要修改,且这些问题要在很久以后才会发现。文档资料工作量巨大,人员流动对工作的影响很大。

软件成本估算的一般方法包括自顶向下估计和自底向上估计。自顶向下估计首先估算项目总的开发成本,然后在项目内部进行成本分配;自底向上估计将开发任务分成若干子任务,把各个任务单元的成本估计出来,汇合成项目的总成本。

在软件开发中,不能用简单增加人员的方法来缩短开发时间。大量软件开发实践表明,向一个已经延迟的项目追加开发人员可能使它完成得更晚,因为人员之间的通信将以几何级数增长。

影响软件质量的主要因素包括需求不明确、设计不合理、编码错误、测试不充分、维护不到位等。为确保软件质量,应该从需求分析开始,按照软件工程规范进行开发和维护。

在产品运行方面,我们需要确保正确性、风险性、效率、完整性、健壮性和可用性。这意味着我们需要确保产品能够按照预期的方式运行,同时尽可能地减少潜在的风险和错误。我们还需要确保产品具有高效性、完整性和健壮性,以便能够处理各种情况。最后,我们需要确保产品易于使用,以便用户能够方便地使用它。

在产品修改方面,我们需要考虑可理解性、可维护性、灵活性和可测试性。这些方面可以帮助我们更好地理解产品的结构和功能,并使其更易于维护和修改。我们还需要确保产品具有足够的灵活性,以便能够适应各种不同的需求。最后,我们需要确保产品易于测试,以便我们能够及时发现和解决任何问题。

《软件工程导论》考试重点

第一章 1.软件危机的概念: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。 2.产生软件危机的原因: (1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3)尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 3.软件配置的主要包括程序、文文件和数据等成分。配置管理工具:commit,分支,合并。 4.软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。(ppt上定义)、、、、、 //6.通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型//7.软件工程方法学包含三个要素:方法、工具和过程。 //8.目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学 //9.传统方法学也称为生命周期方法学或结构化范型 //10.面向对象方法学的四个要点: //1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件 //2.把所有对象都划分成类 //3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。 //4.对象彼此间仅能通过发送消息互相联系。 11.软件生命周期:软件定义(问题定义,可行性研究,需求分析)、软件开发(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要) 12.最基本的测试是集成测试和验收测试。 13.瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。 14.所谓构件就是功能清晰的模块或子系统 15.RUP(Rational统一过程)软件开发的生命周期是一个二维的生命周期模型

软件工程导论复习知识点

软件工程导论复习知识点

一、软件: 软件定义: 软件=程序+文档+数据 软件特点: 1、具有抽象性 2、没有明显的制造过程 3、软件的维护比硬件的维护要复杂得多 4、对计算机系统有着不同程度的依赖性 5、尚未完全摆脱手工艺的开发方式 6、软件本身是复杂的 7、软件成本相当昂贵 8、相当多的软件工作涉及到社会因素软件的发展: 程序设计、程序系统、软件工程 软件危机: 软件危机指的是软件开发和维护过程中遇到的一系列严重问题。 软件危机的问题: 如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。 软件危机表现: 1.开发成本难以控制,进度不可预计; 2.软件系统的质量和可靠性很差,难以满意; 3.软件文档相当缺乏,软件系统不可维护; 4.软件开发生产率很低,软件产品供不应求。 5.软件产品成本十分昂贵。

管理科学中的方法和原理进行软件生产的管理。用数学的方法建立软件开发中的各种模型和各种算法,如可靠性模型,说明用户需求的形式化模型等。 软件工程三要素: 方法、工具和过程。 软件方法: 是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。包括:传统方法学面向对象方法学需要解决的问题: 软件成本、软件可靠性、软件维护、软件生产率和软件复用。 基本内容: 包括理论、结构、方法、工具、环境与规范等 目标: 以较少的投资获得易维护、易理解、可靠和高效率的软件产品。 原则: 即分解、抽象和信息隐蔽、一致性和确定性 原理: 工程化和系统化。 软件过程: 软件过程是把输入转化为输出的一组彼此相关的资源和活动

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

软件工程导论期末复习重点 选择、判断略 一、名词解释 1、软件危机 2、软件工程 3、数据字典 4、模块化 5、黑盒测试 6、软件维护 7、软件过程 8、快速原型 9、白盒测试 二、简答题 1、可行性研究目的和任务? 2、可行性研究包括哪几方面的内容? 3、简述需求分析的描述工具和基本任务? 4、什么是模块化?模块设计的准则? 5、详细设计阶段的根本目标和任务? 6、比较面向数据流和面向数据结构两类设计方法的异同? 7、测试与调试的主要区别? 8、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。 9、比较层次方框图与结构图的异同? 10、结构化程序设计的基本原则? 11、提高软件编码效率的3条原则?

一、名词解释 1、软件危机 答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。 2、软件工程 答:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。 3、数据字典 答:数据字典是描述数据流图中数据的信息的集合。它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。 4、模块化 答:模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。 5、黑盒测试 答:黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。测试者把被测程序看成一个黑盒,不用关心程序的内部结构。黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。 6、软件维护 软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。 7、软件过程 答:软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 8、快速原型 答:快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。 9、白盒测试

软件工程导论知识点

软件生存期的阶段划分:(1)可行性研究与计划;(2)需求分析;(3)总体设计;(4)详细设计(5)实现(6)集成测试(7)确认测试(8)使用和维护 软件=程序+文档+数据 产生软件危机的原因:软件本身特点(客观):逻辑部件:管理和控制软件开发过程相当困难,较难维护;规模庞大:代码长度不正比程序复杂程度;软件开发与维护的方法不正确(主观):没有认识到软件的生命周期;软件开发不同阶段进行修改需要付出的代价差别很大;软件产品=程序+每个阶段的文档资料。 消除软件危机的途径:对计算机软件有一个正确的认识(软件≠程序);技术措施:推广使用在实践中总结出来的开发软件的成功技术和方法;开发和使用更好的软件工具等;管理措施:必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。 软件发展的4大趋势:流水线生产、网络化、服务化与全球化。 软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。” 软件工程具有下述的本质特性:1.软件工程关注于大型程序的构造2. 软件工程的中心课题是控制复杂性3. 软件经常变化4. 开发软件的效率非常重要5. 和谐地合作是开发软件的关键6. 软件必须有效地支持它的用户7. 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人。 软件工程的基本原理;1用分阶段的生命周期计划严格管理:2坚持进行阶段评审3实行严格的产品控制4采用现代程序设计技术5结果应能清楚地审查6开发小组的人员应少而精7承认不断改进软件工程实践的必要性 软件工程三个要素:方法、工具、过程 软件工程方法学,分别是传统方法学和面向对象方法学。 传统方法学:把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务 面向对象方法:是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法 面向对象方法学具有下述4个要点:(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。(2) 把所有对象都划分成类(class)。(3) 继承:按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。 (4) 对象彼此间仅能通过发送消息互相联系。 软件定义:即问题定义、可行性研究和需求分析 软件开发:总体设计、详细设计、编码和单元测试、综合测试。 瀑布模型特点:是一个理想化过程。会掩饰项目中真正的风险,当你太晚发现它们时已无济于事;过程逆转性很差,因为上游的错误会在下游进行发散性传播。所以逆转会造成很大损失;缺乏灵活性;特别是无法解决软件需求不明确或不准确的问题后期错误,修正代价高;适用于:功能和性能明确、完整、无重大变化的软件开发,并且分析设计人员对应用领域很熟悉,项目风险低,用户很少参与开发工作的项目。 原型模型的评价:可及早为用户提供有用的产品;可及早发现问题,随时纠正错误;减少技术、应用风险,缩短开发时间,减少费用;促使用户主动参与开发活动,促进各类人员的协调,减少误解,适应需求的变化,能有效提高系统质量。 增量模型;遵循递增方式进行软件开发。开发一部分,向用户展示一部分;增量模型是一种非整体开发的模型;适用条件:1)使用面向对象语言或第四代语言;2)需求可能发生变化,客户接受分阶段交付;3)分析设计人员对应用领域不熟悉,难以一步到位; 4)项目风险高;

(完整)软件工程导论(第6版)知识点总结、复习课,推荐文档

复习课 --------酷爱YC 第一章 1、什么是软件危机,什么是软件工程 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。 软件工程:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件,并有效地维护它。 2、完整的软件配置由哪些内容组成 软件配置主要包括程序,文档和数据等成分。 3、软件生命周期分为哪3个时期和8个阶段,每个阶段的任务(工作)分别是什么,重要性如何 概括地说,软件生命周期由软件定义、软件开发和运行维护3个时期组成

1、软件定义(系统分析)。 软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。这个时期的工作通常又称为系统分析,由系统分析员负责完成。软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。 (1) 问题定义,确定系统要解决的问题是什么。成果:关于问题性质、工程目标和工程规模的报告。 (2) 可行性研究,确定问题是否有可用的、能行得通的解(包括:技术、经济、操作、社会等方面的可行性)。这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。成果:可行性研究报告。 (3) 需求分析,确定软件系统的必须实现的功能、必须达到的性能、必须满足的运行环境要求。系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。成果:软件需求规格说明书(SRS),内容包括:系统的逻辑模型;系统(子系统)的名称、功能描述、接口、基本数据结构、性能、设计需求、开发标准、验收原则等。 2、软件开发。 开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。

软件工程导论知识点总结(整理)

《软件工程导论》课后习题答案 第一章软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这 些问题表现在以下几个方面: (1)用户对开发出的软件很难满意。 (2)软件产品的质量往往靠不住。 (3)一般软件很难维护。 (4)软件生产效率很低。 (5)软件开发成本越来越大。 (6)软件成本与开发进度难以估计。 (7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。 2.为什么会产生软件危机? (1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。 (3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 3.怎样克服软件危机? (1) 充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。 (2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。 (3) 根据不同的应用领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境。 总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。 4.构成软件项目的最终产品: 应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料。 5.什么是软件生存周期? 软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。 6.软件生存周期为什么划分成阶段? (1) 任何一个阶段的具体任务不仅独立,而且简单,便于不同人员分工协作,从而降低整个软件开发工作的困难程度。

(完整版)《软件工程导论》第五版张海藩编著总结

总结重点: ❖∙Unit1 ❖∙软件危机包含两方面的问题:一是如何开发软件,怎样满足人们对软件日益增长的需求?二是如何维护软件,使它们持久地满足人们的要求。 ❖∙软件工程学定义:把软件当作一种工业产品,采用工程学的原理来管理和组织软件的开发和维护,称为软件工程。 ❖∙软件是指程序、数据和文档三者共同构成的配置。 ❖∙包含与数据处理系统操作有关的程序、规程、规则以及相关文档的智力创作称为软件。文档是描述程序开发过程的,是智力创作的真实记录,是创作活动的历史档案和结晶。 ❖∙软件的描述性定义:软件由计算机程序,数据结构和文档组成。 ❖∙软件质量定义为“与软件产品满足规定的和隐含的需求能力有关的特征和特性的全体” 具体来说: 1)软件产品中能满足给定需求的性质和特性的总体; 2)软件具有所期望的各种属性的组合程度。 ❖∙将软件质量属性划分为六个特性(功能性、可靠性、易用性、效率、维护性和可移植性),这六个属性是面向用户的观点——面向管理的观点,且是定性描述的。 ❖∙软件质量度量体系:内部度量可用于开发阶段的非执行软件产品,外部度量只能在生存周期过程中的测试阶段和任何运行阶段使用。 ❖∙软件工程项目的基本目标:(1)低成本;(2)满足功能要求;(3)高性能;(4)易移植;(5)易维护。❖∙软件工程方法学就是要从技术和管理上提供如何去设计和维护软件。 ❖∙软件开发方法:面向数据流(约旦)方法、面向数据结构方法、面向对象方法。 ❖∙结构程序设计是进行以模块功能和处理过程设计为主的详细设计的基本原则。它的主要观点是采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。 ❖∙用来辅助软件开发、运行、维护、管理、支持等过程中活动的软件称为软件工具(CASE)。 ❖∙软件生存周期定义:软件产品从形成概念开始,经过开发、使用和维护,直到最后不再使用的整个过程。各阶段的任务彼此间尽可能的相对独立,同一阶段内各项任务的性质尽可能的相同。软件的开发就是“按软件顺时间发展的过程分阶段进行”的。 ❖∙软件生存周期模型: 瀑布模型(阶段间具有顺序型和依赖性,清楚地区分逻辑设计与物理设计、尽可能推迟程序的物理实现,是文档驱动模型,遵循结构化设计); 原型模型(软件产品的开发是线性顺序进行的,本质是快速,用途是获知用户的真正需求,一旦需求确定,原型将被抛弃)。

软件工程导论张海藩编著考试范围及各章重点

软件工程考试整理 第一章 1、CASE(Computer Aided Software Environment) 2、软件危机的概念P1-2:指在软件开发和维护过程中所遇到的一系列严重问题。(如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件) 3、产生软件危机的原因P3:一方面与软件本身有的特点有关,另一方面也和软件开发与维护的方法不正确有关。 4、消除软件危机的途径P5:既要有技术措施(方法和工具),又要有必要的组织管理措施 5、软件工程支撑环境P5:如果把各个阶段使用的软件工具有机地集合成一个集体,支持软件开发的全过程。 6、软件工程的定义P5:是指导计算机软件开发和维护的一门工程学科。 具体的定义:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用与软件;②研究①中提到的途径。 7、软件工程方法学P9-10:包含三个要素:方法、工具和过程。最广泛的方法学包括传统方法学和面向对象方法学。 传统方法学:也称为生命周期方法学或结构化范型。主要是把软件生命 周期的全过程一次划分为若干个阶段,然后顺序地完成每 个阶段的任务。 面向对象方法学:4个要点(对象、类、继承、封装性)

8、软件生命周期3个时期 P13:软件定义、软件开发、软件维护 软件定义阶段:确定开发过程的总任务;工程的可行性;实现工程目标应采用的策略;系统必须完成的功能;估计资源和成本。 软件开发阶段:总体设计,详细设计(前两个阶段又称系统设计),编码和单元测试,综合测试(后两个阶段又称系统实现)。 9、三个模型的优缺点: 瀑布模型(带反馈环)P15 优点:①可强迫开发人员采用规范的方法;②严格规定了每个阶段必须提交的文档;③要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 缺点:由于是一种文档驱动的模型,最终开发出的软件产品可能并不是用户真正需要的。 快速原型模型(不带反馈环)P17 可以通过快速构建起一个在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的办法,获取用户的真实需求。本质是“快速”。 增量模型P17 具有可在软件开发的早期阶段使投资获得明显回报和较易维护的优点,但是,要求软件具有开放的结构是使用这种模型时的固有的困难。 第二章

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

软件工程导论复习重点总结很全(第六版) 软件工程导论复习重点总结很全(第六版) 软件工程是一门研究如何以系统化的、可管理的和可维护的方式来 构建高质量的软件的学科。在软件工程导论中,我们学习了软件开发 的基本概念、原理和方法。本文将对软件工程导论的重点内容进行总结,帮助读者巩固所学知识,为学习和工作提供帮助。 1. 软件工程概述 软件工程的定义、目标和原则;软件生命周期和过程模型;软件开 发的重要性和挑战;软件工程中的质量保证和风险管理。 2. 软件需求工程 软件需求的定义和分类;需求获取、分析和建模;需求验证和确认;需求变更和配置管理。 3. 软件设计 软件设计原则和方法;面向对象设计和结构化设计;软件架构设计;设计模式的应用。 4. 软件测试与调试 软件测试的概念和目的;测试策略和技术;测试用例的设计和执行;测试评估和管理;软件错误调试和修复。 5. 软件项目管理

软件项目管理的基本概念和流程;项目计划和进度管理;团队组织 和沟通;风险管理和变更管理;质量管理和配置管理;软件工程伦理 与法规。 6. 软件开发过程 软件开发过程模型的选择和应用;瀑布模型、迭代模型和敏捷开发 等常用模型的特点和比较;敏捷开发方法的原理和实践。 7. 软件工具与环境 软件开发工具的选择和使用;集成开发环境、版本控制工具、测试 工具和调试工具等的功能和特点;软件工程中的自动化工具和技术。 8. 软件工程的前沿技术 软件工程的新兴技术和趋势;人工智能、大数据、云计算等技术在 软件开发中的应用;软件工程的创新与创业。 通过对上述主要内容的学习和理解,我们可以全面掌握软件工程导 论的核心知识和方法。在今后的学习和实践中,我们应该注重理论与 实际的结合,不断提高自己在软件开发和项目管理方面的能力。只有 不断学习和实践,我们才能成为优秀的软件工程师,为社会和企业创 造更大的价值。 总结:软件工程导论是软件工程领域中的重要基础课程,通过对软 件开发过程和管理原理的学习,我们可以掌握软件工程的基本概念、 原则和方法。在软件工程导论的学习中,我们应该注重理论与实践的 结合,不断提高自己的实际操作能力。相信通过对本文的阅读和理解,

软件工程导论知识点总结

软件工程导论知识点总结 软件工程导论知识点总结 1. 软件工程概述 1.1 什么是软件工程 软件工程是一门研究如何有效地开发、维护和管理软件系统的学科。它基于工程原理和方法,将系统化的、规范化的方法应用于软件开发 过程中,以提高软件的质量、可靠性和可维护性。 1.2 软件工程的重要性 在当今日益发展的信息技术领域,软件已经成为各个行业和领域中 不可或缺的核心组成部分。软件工程的实践使得软件开发更加可控, 能够满足用户需求,提高软件质量,降低开发和维护成本。 1.3 软件工程的原则 软件工程有一些核心原则,包括适应性、可理解性、一致性、可复 用性和可维护性。这些原则帮助开发人员创建高质量的软件,并确保 软件在不同环境下的可靠性和安全性。 2. 软件开发过程 2.1 软件开发生命周期

软件开发生命周期是指从软件概念形成到软件退役的整个过程。常见的软件开发生命周期模型包括瀑布模型、迭代模型和敏捷模型。 2.2 瀑布模型 瀑布模型是一种线性的软件开发过程模型,包括需求分析、设计、编码、测试和维护五个阶段。每个阶段都有明确的输入和输出,下一个阶段在前一个阶段完成后开始。 2.3 迭代模型 迭代模型是一种循序渐进的软件开发过程模型,将软件开发分为多个迭代周期。每个迭代周期包括需求分析、设计、编码、测试和评审阶段。每个迭代周期都会产生一个可执行的软件版本。 2.4 敏捷模型 敏捷模型强调迭代和反馈,在软件开发过程中更加注重灵活性和适应性。常用的敏捷开发方法包括Scrum和XP(极限编程)等。 3. 软件开发方法与工具 3.1 需求工程 需求工程是软件工程的关键环节,用于确定用户需求并转化为可行的软件规格说明。需求工程包括需求获取、需求分析、需求建模和需求验证等阶段。

计算机基础知识点软件工程导论

计算机基础知识点软件工程导论计算机基础知识点-软件工程导论 计算机科学与技术的迅速发展,为现代社会带来了巨大的变革和崭 新的机遇。软件工程作为计算机科学的重要分支,对于开发高质量软 件以及保证软件项目的成功起着至关重要的作用。本文将为您介绍计 算机基础知识点中的软件工程导论。 一、软件工程导论的概念和重要性 软件工程导论是软件工程学科的入门课程,通过此门课程,我们可 以了解软件工程的定义、发展历程以及相关术语和方法论。软件工程 导论不仅帮助我们建立对软件工程的认知,还能够培养我们的软件开 发思维和实践能力,提升软件开发效率和软件质量。 二、软件生命周期 软件生命周期指的是软件从定义到报废的整个过程。软件生命周期 包括需求分析、软件设计、编码、测试以及维护等阶段。不同的软件 项目可能采用不同的开发方法和模型,如瀑布模型、敏捷开发模型等。了解软件生命周期是软件工程导论的重要内容之一。 三、软件需求工程 软件需求工程是软件工程过程中一个重要的阶段,其目标是明确软 件开发的需求和约束条件,为后续的设计、开发和测试工作奠定基础。

软件需求工程包括需求获取、需求分析、需求建模等步骤,通过需求 工程的实施,可以确保软件产品满足用户需求。 四、软件项目管理 软件项目管理是软件工程导论的核心内容之一,它涉及项目的计划、组织、调度、控制等方面。软件项目管理旨在合理分配资源,合理组 织开发团队,以确保软件项目按时交付、高质量完成。常用的软件项 目管理方法包括甘特图、PERT/CPM等。 五、软件质量保证 软件质量保证是软件工程导论的重要组成部分,它包括质量计划、 质量控制和质量改进等活动。通过软件质量保证,我们可以确保软件 产品符合用户需求,并具备高可用性、可靠性、安全性等特性。常用 的软件质量保证方法包括代码审查、单元测试、集成测试等。 六、软件配置管理 软件配置管理是指在软件开发过程中对软件配置项进行管理的活动,它涉及配置项标识、版本控制、变更管理等方面。合理的软件配置管 理可以帮助开发团队及时发现和解决问题,确保软件版本的一致性和 稳定性。 七、软件工程伦理和职业素养 在软件工程导论中,我们还将学习软件工程伦理和职业素养。软件 工程师在开发软件的过程中需要遵守伦理规范,如保护用户隐私、尊

软件工程导论知识点总结

软件工程导论知识点总结 一、软件工程概述 软件工程是将系统化、规范化、可度量化的方法应用于软件的开发、运行和维护的过程。软件工程包括软件开发过程、软件工具和方法以及软件质量管理等方面。 二、软件生命周期模型 1. 瀑布模型:依次完成需求分析、设计、编码、测试和维护等阶段。 2. 增量模型:将整个项目分为多个增量,逐步完成。 3. 螺旋模型:在瀑布模型基础上增加风险评估环节,不断迭代。 4. 原型模型:快速构建原型,反复修改完善。 5. 敏捷开发:注重快速响应变化,通过迭代交付高质量的软件。 三、需求分析 需求分析是指对用户需求进行详细的调查和分析,并将其转换为可实现的系统规格说明。主要包括功能性需求和非功能性需求两个方面。 四、设计 1. 结构设计:确定系统各个组成部分之间的关系。 2. 数据设计:确定数据结构及其组织方式。 3. 接口设计:定义各个组成部分之间的接口。

4. 过程设计:定义系统中各个过程的执行方式。 五、编码 编码是将设计好的系统规格说明转换为计算机可执行的程序代码,主要包括选择编程语言、编写代码、调试和测试等环节。 六、测试 测试是对软件进行验证和确认,主要包括单元测试、集成测试、系统测试和验收测试等环节。 七、维护 维护是指在软件交付后,对软件进行修改和更新以满足用户需求或修复缺陷。维护包括预防性维护、适应性维护和完善性维护等方面。 八、软件质量管理 软件质量管理是指通过各种手段确保软件产品满足用户需求,并具有可靠性、可用性、安全性等特点。主要包括质量计划制定、质量保证控制和质量评估等环节。 九、常见开发模式 1. 面向对象开发模式:采用面向对象的思想进行开发。 2. 组件化开发模式:将系统划分为多个组件进行开发。 3. 服务化开发模式:将系统划分为多个服务进行开发。

软件工程导论重点内容

软件工程导论重点内容 桃园文印室 第一章软件工程概述 重点掌握的内容:软件和软件工程的基本概念一.什么是软件? 1.满足功能要求和性能的指令或计算机程序集合; 2.处理信息的数据结构; 3.描述程序功能以及程序如何操作和使用所要求的文档;软件的特点: 软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。 软件是通过人们的智力活动,把知识与技术转换成信息的一种产品,是在研制、开发 中被创造出来的 在软件运行和使用的期间,没有硬件那样的机械磨损、老化问题 软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性 软件的开发至今尚未完全摆脱手工的开发方式软件的开发费用越来越高,成本相当昂贵。二.软件危机以及产生软件危机的原因? 1.软件开发生产率提高的速度,远远跟不上计算机迅速普及的趋势。软件产品“供不 应求”。 2.软件成本在计算机系统总成本中所占的比例逐年上升。 3.软件开发人员和用户之间的信息交流往往很不充分,用户对“已完成的”的软件系 统不满足的现象经常发生。 4.软件产品的质量不容易保证。 5.软件产品常常是不可维护的。 6.软件产品的重用性差,同样的软件多次重复开发。 7.软件通常没有适当的文档资料。 产生软件危机的原因可归结为两个重要的方面:软件生产本身存在的复杂性;软件 开发所使用的方法和技术。三、软件危机 1、软件危机定义:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列 严重问题。 2、软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求;如何 维护数量不断膨胀的已有软件。

3、软件危机的典型表现:(1) 对软件开发成本和进度的估计常常很不准确。 (2) 用 户对“已完成的”软件系统不满意的现象经常发生。 (3) 软件产品的质量往往靠不住。(4) 软件常常是不可维护的。 1 计算机科学学院软件工程(二)班软件工程导论复习资料2 星光二班 桃园文印室 (5) 软件通常没有适当的文档资料。 (6) 软件成本在计算机系统总成本中所占的比例逐年上升。 (7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。软 件工程 1、软件工程定义:软件工程是指导计算机软件开发和维护的一门工程学科。采用工 程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术 和当前能够得到的最好的技术方法结合起来,以经济地、高效的开发出高质量的软件并有 效地维护它,这就是软件工程。 软件工程准则可以概括为7条基本原则:用分阶段的生命周期计划严格管理;坚持 进行阶段评审实行严格的产品控制采用现代程序设计技术应能清楚地审查结果合理安 排软件开发小组的人员承认不断改进软件工程实践的必要性 3、软件工程方法学,三要素:方法、工具和过程 4、软件生命周期(概念、三时期,八阶段) 软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成。软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。软件开 发时期分为4阶段:总体设计、详细设计、编码和单元测试、综合测试 五、软件开发模型:软件开发模型是跨越整个软件生存周期的系统开发、运作、维护 实施的全部工作和任务的结构框架。 1)瀑布模型 瀑布模型即生存周期模型,由B.M.Boehm提出,是软件工程的基础模型。其核心思想 是按工序将问题化简,将功能的实现与设计分开,便于分工协作。采用结构化的分析与 设计方法,将逻辑实现与物理实现分开。特点 阶段的顺序性和依赖性(规范化)推迟实现的观点(系统化)质量保证(阶段评审)存在问题

软件工程导论复习知识点

软件工程导论复习知识点 LT

一、软件: 软件定义: 软件=程序+文档+数据 软件特点: 1、具有抽象性 2、没有明显的制造过程 3、软件的维护比硬件的维护要复杂得多 4、对计算机系统有着不同程度的依赖性 5、尚未完全摆脱手工艺的开发方式 6、软件本身是复杂的 7、软件成本相当昂贵 8、相当多的软件工作涉及到社会因素软件的发展: 程序设计、程序系统、软件工程 软件危机: 软件危机指的是软件开发和维护过程中遇到的一系列严重问题。 软件危机的问题: 如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。 软件危机表现: 1.开发成本难以控制,进度不可预计; 2.软件系统的质量和可靠性很差,难以满意; 3.软件文档相当缺乏,软件系统不可维护; 4.软件开发生产率很低,软件产品供不应求。 5.软件产品成本十分昂贵。

软件危机产生原因: 1、软件本身的特点 2、对软件开发与维护存在许多错误认识和做法 3、软件开发与维护的方法不正确 解决软件危机途径: 1、将软件开发看成是一种组织严密、管理严格、各类人员协同配合共同完成的工程项目。 2、研究和推广成功的软件开发技术和方法。 3、开发和使用好的软件工具。 软件生命周期: 软件所经历的定义、开发、使用和维护直到废弃所经历的时期。 程序设计环境: 源程序编辑,编译或解释,链接,调试和运行工具的集合 软件工程环境: 软件定义,设计和实现,测试和维护等各个阶段所使用的软件工具的集合 二、软件工程: 软件工程定义: 研究如何应用一些科学理论和工程上的技术来指导软件的开发,用较少的投资获得高质量的软件的一门学科。 软件工程性质: 涉及计算机科学、工程科学、管理科学、数学等领域,着重于如何建造一个软件系统。用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。用管理

软件工程导论知识点

软件工程导论知识点 软件是程序、数据及相关文档的完整集合。其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。 开发软件时,对于提高软件开发人员工作效率至关重要的是开发程序人员数量。 软件工程中描述软件生存周期的瀑布类型一般包括计划、需求分析、设计、编码、测试、维护等几个阶段。其中,设计阶段在治理上可以依次分成概要设计和详细设计两个步骤。 在结构化的分析方法中,用以表达系统内数据的运行情况的工具有数据流图。 在结构化的分析方法中,用实体关系图表达系统中的对象及其进展,在实体关系图中,表达对象和实体关系之间的关联有三种类型:一对一联系,一对多联系,多对多联系。 软件需求分析的任务,不应包括结构化程序设计,进行需求分析可使用多种工具,但判定表是不适用的,在需求分析中,分析员要从用户那里解决的最重要的问题是要让软件做什么。规格说明书的内容不应当包括对算法详细功能性描述,该文档在开发中具有重要的作用,但其作用不应包括软件可行性分析的依据。 原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于需求不确定性高的系统,它从用户界面的开发入手,

首先形成系统界面原型,用户运行用户界面原型,并就同意什么和不同意什么提出意见。 一个模块的多个下属模块在系统结构图中所处的左右位置是无关紧要的。 一组语句在程序中多处出现,为了节省内存空间,把这些语句放在一个模块中,该模块的内聚性是偶然内聚的。 将几个逻辑上相似的成份,放在同一个模块中,通过模块入口的一个推断决定执行哪一个功能,该模块的内聚性是逻辑内聚的。 模块中所有成份引用共同的数据,该模块的内聚性是通信内聚的。 模块内的某成份的输出是另一些成份的输入,该模块的内聚性是顺序内聚的。 模块中所有成份结合起来完成一项任务,该模块的内聚是功能内聚。 模块化程序设计:1.便于由多人分工编制大型程序。2.软件功能易于扩充。3.易于理解,也便与排错。4.只要模块之间的接口关系不变,模块内部实现细节的修改将不会影响别的模块。 5.模块间的单向调用关系叫做模块的层次结构。 程序设计风格指导原则:1.嵌套的重数应加以限制。2.尽量少使用全局变量。3.使用有意义的变量名。4.把常见的局部优化工作留给编译程序去做。5.程序的格式应有助于读者理解程序。

软件工程导论知识点

软件工程导论知识点 软件工程导论 一、各章知识点 1、统一建模语言(UML):是一种面向对象的建模语言,它是运用统一的,标准化的标记 和定义实现对软件系统进行面向对象的描述和建模 2、封装 从字面上理解,所谓封装就是把某个事物包起来,使外界不知道该事物的具体内容。封装也就是信息隐藏,通过封装对外界隐藏了对象的实现细节。 3、软件维护性的过程 分为四类:改正性维护;适应性维护;完善性维护;预防性维护 4、白盒、黑盒测试的概念 如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。这种测试叫做白盒测试,也叫结构测试。 如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用,这种测试叫做黑盒测试,也叫功能测试。

5、继承:继承是指能够直接获得已有的性质和特征,而不必重复定义它们 继承分单继承(树型结构)和多重继承(网状结构) 6、软件生命周期以及各阶段的任务(3个时期,9个阶段) 概括的说,软件生命周期由软件定义,软件开发和运行维护3个时期组成,通常把前两个时期再一步划分成若干个阶段。 软件定义时期:问题定义;可行性研究;需求分析三个阶段软件开发时期:总体设计;详细设计;编码和单元测试;综合测试五个阶段 软件定义时期的任务是: 确定软件开发工程的总目标; 研究该项目的可行性; 分析确定客户对软件产品的需求 估算完成该项目所需的资源和成本,并且制定工程进度表软件开发时期的任务是:具体设计和实现在前一个时期定义的软件 运行维护时期的任务是:通过对已交付使用的软件做必要的修改,使软件持久地满足客户的需求 7、需求/概要/详细设计阶段是干什么的? 需求分析阶段的基本任务是确定软件必须”做什么”,使用的概念主题是”功能” 概要设计阶段的任务是确定“怎样做“,使用的概念是”模块“

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

软件工程导论复习重点总结很全(第六版)第1章软件工程学概述 1.1软件危机 1.1.1软件危机的介绍 软件危机(软件萧条、软件困扰:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 软件危机包含下述两方面的问题: 如何开发软件,满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。 软件危机的典型表现: 1对软件开发成本和进度的估计常常很不准确; 2用户对“已完成的”软件系统不满意的现象经常发生; 3软件产品的质量往往靠不住; 4软件常常是不可维护的; 5软件通常没有适当的文档资料; 6软件成本在计算机系统总成本中所占的比例逐年上升; 7软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 1.1.2产生软件危机的缘故原由 1与软件本身的特点有关

2与软件开发与维护的方法不正确有关 1.1.3消除软件危机的途径 对计算机软件有正确的认识。 认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。 应该开发和使用更好的软件工具。 总之,为了解决软件危机,既要有技术措施(方法和工具,又要有必要的组织管理措施。 1.2 1.2.1软件工程的介绍 软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。(期中考 软件工程的本质特性: 软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性 软件经常变化

软件工程导论重点内容

第一章软件工程概述 重点掌握的内容:软件和软件工程的基本概念 一.什么是软件? 1.满足功能要求和性能的指令或计算机程序集合; 2.处理信息的数据结构; 3.描述程序功能以及程序如何操作和使用所要求的文档; 软件的特点: 软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。 软件是通过人们的智力活动,把知识与技术转换成信息的一种产品,是在研制、开发中被创造出来的 在软件运行和使用的期间,没有硬件那样的机械磨损、老化问题 软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性 软件的开发至今尚未完全摆脱手工的开发方式 软件的开发费用越来越高,成本相当昂贵。 二.软件危机以及产生软件危机的原因? 1.软件开发生产率提高的速度,远远跟不上计算机迅速普及的趋势。软件产品“供不应求”。 2.软件成本在计算机系统总成本中所占的比例逐年上升。 3.软件开发人员和用户之间的信息交流往往很不充分,用户对“已完成的”的软件系统不满足的现象经常发生。 4.软件产品的质量不容易保证。 5.软件产品常常是不可维护的。 6.软件产品的重用性差,同样的软件多次重复开发。 7.软件通常没有适当的文档资料。 产生软件危机的原因可归结为两个重要的方面: 软件生产本身存在的复杂性; 软件开发所使用的方法和技术。 三、软件危机 1、软件危机定义:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 2、软件危机的两个主要问题:如何开发软件,以满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。 3、软件危机的典型表现:(1)对软件开发成本和进度的估计常常很不准确。 (2)用户对“已完成的”软件系统不满意的现象经常发生。 (3)软件产品的质量往往靠不住。 (4)软件常常是不可维护的。 (5)软件通常没有适当的文档资料。

相关主题
文本预览
相关文档 最新文档