河南大学软件工程课程期末重点
软件工程期末考试复习题大全解析
一、填空题
1.软件生存周期一般可分为问题定义、可行性研究、需求分析、软件设计、程序编写、软件测试、运阶
段。
2.软件生存期分计划、开发、运行三大阶段
3.可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否有可行的解、_是否值
得去解决_。
4.系统流程图是描述_物理系统__的传统工具。
5.数据流图和数据字典共同构成系统的逻辑模型。
6.结构化分析方法是面向数据流进行需求分析的方法。
7.一个模块的作用范围应该在其控制范围之内,且判定所在模块应与受其影响的模块在层次上尽量靠近8.模块之间联系越紧密,其耦合性就越强,模块的独立性就越弱。
9.PAD图清晰地反映了程序的层次结构,图中的竖线为程序的层次线。
10.JSP方法定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构,而不是软件的体系结构,因此该方法适用于详细设计阶段。11.任何程序都可由顺序、选择、重复三种基本结构组成,这三种基本结构的共同点是单入口、单出口。12.源程序中加注释是帮助理解程序的重要手段,注释分为序言性注释和功能性注释。
13.为了提高程序的易读性,同时减少错误,提高软件开发效率,编码时注意养成良好的程序设计风格。14.效率是一个性能要求,目标应在需求分析阶段给出。
15.可移植性是指程序从一个计算机环境移植到另一个计算机环境的容易程度。
16.用黑盒技术设计测试用例的方法有等价划分类、边值分析、因果图和错误推测。
17.集成测试是在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行测试,故也称组装测试。
软件工程知识点
软件工程知识点
1. 软件工程概述
软件工程是一门研究和应用工程原则、方法和工具来开发和维护高质量软件系统的学科。它涵盖了软件开发的整个生命周期,包括需求分析、设计、编码、测试、部署和维护。
2. 软件生命周期
软件生命周期定义了软件开发过程中的各个阶段,包括需求定义、系统设计、详细设计、编码、测试、部署和维护等。每个阶段都有特定的任务和交付物,通过严格遵循软件生命周期来管理项目,可以提高软件开发的质量和效率。
3. 软件需求分析
软件需求分析是确定软件系统所需功能和性能的过程。它包括对用户需求进行调查、分析和规范化,以便从中获得详细的系统需求。
4. 软件设计
软件设计是根据需求分析的结果,确定软件系统的结构和组成部分的过程。它包括软件架构设计、模块设计、数据结构设计等。
5. 软件编码
软件编码是将设计好的软件系统转化为可执行的计算机程序的过程。在编码过程中,开发人员需要遵循相应的编程规范和标准,以确保代码的可读性和可维护性。
6. 软件测试
软件测试是为了发现和修复软件中的错误和缺陷。测试可以分为单元测试、集成测试、系统测试和验收测试等不同的层级和类型,旨在确保软件功能的正确性和稳定性。
7. 软件部署
软件部署是将软件安装和配置到用户的计算机系统中的过程。在部署过程中,需要注意安装环境、配置文件和用户权限等问题,确保软件能够正常运行。
8. 软件维护
软件维护是为了修复软件中的错误、改进功能以及适应新的需求而进行的修改和更新。维护过程中包括问题分析、修改设计、修改代码、测试和发布等环节。
9. 软件质量保证
河南大学软件工程专业大二《Java程序设计》期末考试
河南大学软件工程专业大二《Java程序设计》期末考试
一、单项选择题
1. 用来导入已经定义好的类或包的语句是() [单选题] *
A.interface
B.import(正确答案)
C.main
D.class
2. 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值可以不相同。这种面向对象程序设计的特性称为() [单选题] *
A.隐藏
B.覆盖
C.重载(正确答案)
D.Java不支持此特性
3. java的前身是() [单选题] *
A.Oak(正确答案)
B.C
C.python
D.basic
4. 以下代码输出从19到1之间的所有奇数,for语句的条件判断是()
for ( i=19; ▲ ; i-=2) [单选题] *
System.out.print(i);
A.i>1
B.i<1
C.i<=1(正确答案)
D.i>=1
5. 表达式46+7.8f的类型是() [单选题] *
A.int
B.double(正确答案)
C.long
D.float
6. 若下列所用变量均已正确定义,以下表达式中合法的是() [单选题] * A.d=a>h>c
B.b=c=a+5(正确答案)
C.a+7=5+c=5
D. i+++j
7. 在Java语言中不能注释多行内容的符号是() [单选题] *
A.以/*开始,*/结束的注释
B.以//开始的注释
C.以/**开始,*/结束的注释(正确答案)
D. 以//开始,*/结束的注释
8. 下列说法中正确的是() [单选题] *
河南大学软件工程课程期末重点
河南大学软件工程课程期末重点
1..软件的特点:软件是一种逻辑实体,具有抽象性。
2.软件危机表现:成本高、计算机软件和硬件费用比上升、软件质量得不到保证、由于软件质量问题导致失败的软件项目非常多、进度难以控制、维护非常困难
3.产生软件危机的原因:1.与软件本身的特点有关(难于维护,逻辑复杂)
2.与软件开发与维护的方法不正确有关:软件≠程序;急于成=
拔苗助长;各自为阵无方法/学
4.软件工程的定义:软件开发、运行、维护和引退的系统方法
5.软件工程三要素:方法、工具和过程。
6.方法:面向对象、面向过程、面向数据,为软件开发提供如何做的技术
7.生命周期的定义:从功能确定、设计到开发成功投入使用,并在使用中不断地修改、增补和完善,直到被新的需要所代替而停止使用该软件的全过程。
8. 软件制造的八个阶段:可行性分、需求分析、概要设计、详细设计、编码、测试、交付
9. 需求分析阶段要明确做什么
10.过程模型:
(1)瀑布模型:特点:时间上具有顺序性和依赖性;推迟实现的观点;质量保证的观点
优点:适合于用户需求明确、完整、无重大变化的软件项目开发。
缺点:实际项目很少按照该模型给出的顺序进行;
用户常常难以清楚地给出所有需求;
用户必须有耐心,等到系统开发完成
(2)原型模型—快速原型模型:在用户不能给出完整、准确的需求说明,或者开发者不能确定算法的有效性、操作系统的适应性或人机交互的形式等许多情况下,可以根据用户的一组基本需求,快速建
造一个原型(可运行的软件)
(3)增量模型:是一种渐进地开发逐步完善的软件版本的模型
软件工程期末复习重点
1、什么是软件工程
在《计算机科学技术百科全书》中软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。
2、软件生存周期分哪几个阶段分别简述各个阶段的任务。
答:软件生存周期有计算机系统工程、需求分析、设计、编码、测试、运行和维护6个阶段。
A 计算机系统工程的任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机
系统元素之间的关系,进行成本估算,做出进度安排,并进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中做出选择。
B 需求分析主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界
面等要求,生成软件需求规约。
C 软件设计只要解决待开发软件“怎么做”的问题。软件设计通常可分为系统设计和详细
设计。系统设计的任务是设计软件系统的体系结构,包括软件系统的组成成分、各成分的功能和接口、成分间的连接和通信,同时设计全局数据结构。详细设计的任务是设计各个组成成分的实现细节,包括局部数据结构和算法等。
D 编码阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。
E测试阶段的任务是发现并纠正软件中的错误和缺陷。测试主要包括单元测试、集成测试、确认测试和系统测试。
F软件完成各种测试后就可交付使用,在软件运行期间,需对投入运行的软件进行维护,即可发现了软件中潜藏的错误或需要增加新的功能或使软件适应外界环境的变化等情况出现时,对软件进行修改。
3、简述各类软件过程模型的特点。
答:典型的软件过程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、喷泉模型、基于构件的开发模型和形式方法模型等。
软件工程期末复习重点
1.软件危机的介绍
在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2.产生软件危机的原因
与软件本身特点有关:
软件开发与维护的方法不正确有关:
3.消除软件危机的途径
4.软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
5.软件定义时期的任务是:
确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。这个时期的工作通常又称为系统分析,由系统分析员负责完成。
软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。
6.开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。
7.维护时期的主要任务是使软件持久地满足用户的需要。
8.软件生命周期每个阶段的基本任务:问题定义、可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试。
9.常用软件模型区别原理:
(1)瀑布模型:
按照传统的瀑布模型开发软件,有下述的几个特点。
a)阶段间具有顺序性和依赖性:
两重含义:段的输出文档正确,后一阶段的工作才能获得正确的结果。①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶
b) 推迟实现的观点
瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。
软件工程期末考试重点
《软件工程》期末复习重点
第一章软件工程
1.什么是软件工程。
A.把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;b.研究a中提到的途径。
2. 软件工程的三要素:方法、工具和过程。
第二章软件过程
1.软件生命周期分为哪几个阶段?每个阶段的基本任务是什么?
a.软件定义:确定软件开发工程必须完成的总目标
问题定义:要解决的问题是什么
可行性研究:上阶段所确定的问题是否有可行的解决办法?
需求分析:目标系统必须做什么
b.软件开发:具体设计和实现在前一个时期定义的软件。
概要设计:怎样宏观地解决问题
详细设计:应如何具体地实现这个系统
编码和单元测试:写出正确的、易理解、易维护的程序
综合测试:通过各类型测试使达到预定要求。
c.运行维护:修正错误,使软件持久地满足用户需要。
改正性维护:诊断和改正使用中的错误
适应性维护:修改以适应环境变化
完善性维护:根据用户的要求改进和扩充以完善
预防性维护:修改以为将来的维护作准备
2.常用的过程模型有哪些?各自的特点及不足。如:瀑布模型的不足是不能适应需求的动态变更。
A.瀑布模型
特点:
可强迫开发人员采用规范化的方法。
严格地规定了每个阶段必须提交的文档。
要求每个阶段交出的所有产品都必须是经过验证(评审)的。
缺点:太理想化,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。如果需求规格与用户需求之间有差异,就会发生这种情况。只适用于项目开始时需求已确定的情况。
B.快速原型模型
特点:快速
软件产品开发基本上是线性顺序进行。
软件工程复习提纲
软件工程复习提纲
第一篇:软件工程复习提纲
《软件工程》课程要点
λ每章教学课件中的“本章小结”列出了需要掌握的内容λ教学过程中的例题和习题也是课程重点
一、软件工程与软件过程概述
1.概念:
(1)软件的概念(组成成分、作用);
(2)软件危机的含义、表现、产生原因(客观、主观)(3)软件工程学科包括的内容、解决的主要问题
(4)软件生命周期的含义、组成阶段及各阶段主要任务2.需理解的问题:
(1)软件与程序的区别和联系?
(2)开发一个软件项目包括哪些基本的步骤?每一步骤完成哪些工作?
(3)主要的软件过程模型(生命周期模型)有哪些?各自有什么特点?
二、结构化分析-面向数据流的分析方法
1.什么是软件需求?需求分析过程(步骤)?
2.需求分析模型:
(1)功能模型(数据流图DFD)的含义、描述符号、画法步骤及规则(2)数据模型(E-R图)的作用
(3)行为模型(状态转换图)的作用(4)数据字典的作用
三、结构化设计
1.软件设计的任务?结构化设计与结构化分析的区别和联系?2.软件设计遵循的基本原理及规则:
(1)模块化的含义、如何划分模块(降低成本、提高独立性)?(2)抽象与逐步求精的含义、二者间关系如何?(3)信息隐藏的含义
(4)如何完善软件结构(深度、宽度、扇入、扇出、作用域、控
制域)? 3.模块独立性:
(1)模块独立性含义?
(2)模块独立性的度量标准:耦合的分类、含义及应用;内聚的分类、含义及应用。4.概要设计(面向数据流的设计方法)(1)概要设计的任务?
(2)数据流图的类型及特征(变换型、事务型)(3)变换分析设计方法的应用(步骤)(4)事务分析设计方法的应用(步骤)4.详细设计(过程设计)
软件工程期末考试复习重点
第一章
软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。
软件危机的主要表现:
1、对软件开发成本和进度的估计常常很不准确。
2、用户对“已完成的”软件系统不满意的现象经常发生。
3、软件产品的质量往往靠不住。
4、软件常常是不可维护的
5、软件通常没有适当的文档资料
6、软件成本在计算机系统总成本中所占的比例逐年上升
7、软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势
软件工程:
定义一:是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。
定义二:1.把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;2.研究1.中提到的途径。
软件工程方法学的三个要素:方法、工具和过程。
目前使用的最广泛的软件工程方法学:传统方法学、面向对象方法学。
软件的生命周期:
软件生命周期有软件定义、软件开发和运行维护3个时期组成;
定义时期分为:问题定义、可行性研究和需求分析阶段;
开发时期分为:总体设计、详细设计、编码和单元测试、综合测试;
维护时期的任务:是软件持久的满足用户的需求;
瀑布模型:最广泛的过程模型;
瀑布模型的特点:
1、阶段间具有顺序性和依耐性;
2、推迟实现的观点;
3、质量保证的观点;
Rational统一过程(RUP)四个阶段的工作目标:
初始阶段:建立业务模型,定义最终产品视图,并且确定项目的范围;
精化阶段:设计并确定系统的体系结构,制定项目计划,确定资源需求;
构建阶段:开发出所有构件和应用程序,把他们集成为客户需要的产品,并且详尽地测试所有功能;
软件工程期末考点重点
软件工程主要知识点串讲
第一讲概述
1 如何理解软件工程及其研究内容:
软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件;(2)研究(1)中的方法。
软件工程是一门旨在指导生产无缺陷软件的学科,既指导如何生产能够及时交付、成本不超预算并且满足用户需求的软件产品。
软件工程研究内容包括两个方面:(1)要考虑专业软件开发所需要的理论、方法和工具----工程技术问题;(2)软件工程要考虑如何有效的在软件开发中利用有限的成本资源----工程管理的问题
2软件的内涵:
软件包括:
①能够提供客户所需功能与性能的计算机程序;
②能够使程序得以处理信息的数据结构;
③用以描述程序开发过程及使用的文档。
3 软件产品的两种类型包括:
通用软件和定制软件(多数),前者是为某一类通用的市场设计开发的,后者是为一个特定的用户设计开发。
4 一个成功软件项目的三个要素包括:按时交付,不超预算和满足用户要求。
5软件过程与软件生命周期的相关概念:
软件过程是指开发或制作软件产品的一系列活动及其成果.
所有的软件过程中都包括四个基本活动:
1.描述(Specification)- 系统应该提供的功能及其开发约束;
2.开发(Development)- 软件产品的生产过程;
3.有效性验证(Validation )- 检验软件产品是否满足了客户的需要;
4.进化(Evolution )- 按照用户的变更要求不断的改进软件。
软件生命周期是软件过程的另一种形象描述,通常包括需求定义、分析与描述、软件设计、实现、测试、维护与退役等活动。
软件工程复习知识点
1.软件危机的概念,内容,原因及消除的途径;
软件危机的概念:
软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。
概括地说,软件危机包含两方面问题:
如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机产生的原因:
软件本身的复杂性、难衡量的特点;2.软件开发与维护的方法不正确。
消除软件危机的途径:
(1)对计算机软件应当有一个正确的认识;
(2)应当有组织、有计划、通过严格的管理手段进行软件的开发;
(3)及时总结软件开发的成功技术和方法并加以推广;
(4)开发和使用更好的软件工具;
总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施。
2.软件工程的定义,基本原理;
定义:软件工程是指导计算机软件开发和维护的一门工程学科。
基本原理:软件工程的7条基本原理:
(1)用分阶段的生命周期计划严格管理
(2)坚持进行阶段评审
(3)实行严格的产品控制
(4)采用现代程序设计技术
(5)结果应能清楚地审查
(6)开发小组的人员应该少而精
(7)承认不断改进软件工程实践的必要性
3.软件工程方法学的基本概念、内容;
基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。软件工程方法学包含3个要素:方法、工具和过程。
内容:目前使用得最广泛地软件工程方法学,分别是传统方法学和面向对象方法学。传统方法学也称为生命周期方法学或结构化范型。
4.软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子来理解做软件项目
主要分那几个个阶段。
软件工程考试重点
2.软件过程:是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
6.模块化:是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性
8.逐步求精:将现实问题经过几次抽象(细化)处理,最后到求解域中只是一些简单的算法描述和算法实现问题
9.信息隐藏:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的10.局部化:所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近。
11.模块独立性:是指模块内部各部分及模块间的关系的一种衡量标准,由内聚和耦合来度量。
14.模块的作用域:为受该模块内一个判定影响的所有模块的集合。
15.模块的控制域:模块本身以及所有直接或间接从属于它的模块的集合。16.结构化程序设计:是进行以模块功能和处理过程设计为主的详细设计的基本原则
17.改正性维护:诊断和改正错误的过程.
18.适应性维护:为了和变化了的环境适当地配合而进行的修改软件的活动,是即必要又经常的维护活动。
19.完善性维护:是指增加新功能或修改已有的功能。通常占软件维护工作的大部分。
20.预防性维护:为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改,这项维护活动相对比较小。
21.可移植性:把程序从一种计算环境转移到另一种计算环境的难易程度.
22.可重用性:是指同一事物不做修改或稍加改动就不同环境中多次重复使用。23.继承:子类自动地共享
基类中定义的数据和方法
的机制。
软件工程期末复习要点归纳总结
第一章软件工程学概论
1、软件危机产生的原因
软件本身的特点:难于维护、逻辑复杂
软件开发与维护的方法不正确:忽略需求分析重要性、轻视软件维护
课本表述:
1、软件不同于硬件,它是计算机中的逻辑部件而不是物理部件
2、软件不同于一般程序,它的一个显著特点是规模庞大,而且程序的复杂性将规模的
增加而呈现指数上升。
3、软件本身特有的特点确实给开发和维护带了一些客观困难
4、软件开发与维护有关的许多错误认识与做法有关(忽略需求分析,轻视软件维护)
5、对用户要求没有完整准确的认识就匆忙开始着手编写程序
6、在软件不同阶段进行修改需要付出的代价是很不相同的
2、软件危机的表现(什么是软件危机)
(1)、成本高:
(2)、软件质量得不到保证:软件质量问题导致失败的软件项目非常多
(3)、进度难以控制:
●项目延期比比皆是
●由于进度问题而取消的软件项目较常见
●只有一小部分的项目能够按期完成
(4)、维护十分困难:
▼软件维护的多样性
▼软件维护的复杂性
▼软件维护的副作用
3、克服软件危机
(1)、管理的角度:
软件开发过程的研究、文档的标准化以及人员的交流方式等
(2)、软件开发方法的研究
结构化软件开发方法, 面向对象的开发
4、软件工程的定义
概括的说,软件工程师指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得
到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
(1)、软件工程就是建立和使用一套合理的工程原理,从而经济地获得可靠的、可以在实际机器上高效运行的软件。
软件工程复习知识要点
1 软件和软件工程概念
软件的组成部分之一;在软件开发中,编程只是软件开发过程的一个阶段。
2.在结构化程序设计时代,程序最小的单位是函数及子程序,程序和数据是分别的。程序的最小单位是类。
3.软件的特性:形态特性、智能特性、开发特性、质量特性、生产特性、管理特性、环境特性、维护特性、废弃特性、应用特性。
4.软件的分类:系统软件;应用软件;支撑软件;可复用软件。
5.什么是软件工程?(课后题)
软件工程是指导计算机软件开发和维护的工程学科。接受工程的概念、原理、技术和方法来开发和维护软件,
把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软
件并有效地维护它。
6.可以用功能性、牢靠性、易用性、效率、可维护性和可移植性六个特性衡量软件的质量。
功能性是指软件所实现的功能达到它的设计规范和满意用户需求的程度。
可移植性是指软件从某一环境转移到另一环境时所作努力得程度。
7.软件生存期由软件定义、软件开发和运行维护三个时期组成。
开发时期通常由概要设计、详细设计、编码和测试四个阶段组成。
开发过程中的典型文档包括:项目支配、软件测试支配、软件设计说明书、用户手册。
8.需求分析的基本任务?
(1)建立分析模型,了解系统的各种需求微小环节。
(2)基于分析结果,编写出软件需求规格说明或系统功能规格说明,确认测试支配和初步的系统用户手册,并提
交管理机构进行分析评审。
2 软件工程方法和工具
1.面对对象方法的动身点和基本原则,是尽量模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近
软件工程课程考试重点知识汇总
概论
1.软件的定义
软件是计算机系统中与硬件相互依存的一个部分,它是包括程序、数据及其相关文档的完整集合.其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。
2.软件工程的定义和三要素
IEEE:软件工程是开发、运行、维护和修复软件的系统方法。
Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法.
三个要素:方法、工具和过程。
方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。
工具为软件工程方法提供了自动的或半自动的软件支撑环境。目前,已经推出了许多软件工具,这些软件工具集成起来,建立起称之为计算机辅助软件工程(CASE)的软件开发支撑系统。CASE将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。
过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的.过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。3.软件工程和软件危机的关系
现有软件危机后有软件工程
为了解决软件危机,既要有技术支持措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好的开发和维护计算机软件的一门新兴学科。
4.软件生命周期的概念,划分的三个时期和八个阶段
软件工程考试必备知识点
软件工程考试必备知识点
软件工程是一门涉及软件开发、测试、维护和管理的学科,对于软件工程师来说,掌握必备知识点是非常重要的。本文将介绍一些软件工程考试中必备的知识点,以帮助考生更全面地准备。
一、软件开发过程
1. 瀑布模型
瀑布模型是软件开发中最早被提出的模型之一,它包括需求分析、系统设计、编码、测试和维护等阶段。考生需了解各个阶段的目标、特点和实施过程。
2. 敏捷开发
敏捷开发是一种迭代、协作和增量的开发方法,能够快速响应需求变化。了解敏捷开发的原则、价值观和实施方式对软件工程考试非常有帮助。
3. DevOps
DevOps是一种软件开发流程和文化的理念,旨在实现开发和运维部门之间的协作和整合。了解DevOps的核心概念、原则和实践对软件工程考试也是必备的知识点。
二、软件开发方法
1. 结构化程序设计
结构化程序设计是一种以模块化和分层思想为基础的软件开发方法。了解结构化程序设计的基本原则、流程和常用的控制结构对于软件工
程考试至关重要。
2. 面向对象程序设计
面向对象程序设计是一种以数据和操作封装为基础的软件开发方法。了解面向对象的基本概念、特点和常用的面向对象语言对于软件工程
考试非常重要。
3. 声明式编程
声明式编程是一种以声明关系为基础的软件开发方法。了解声明式
编程的原理、特点和常用的声明式语言对软件工程考试也是必备知识点。
三、软件需求工程
1. 需求获取和分析
需求获取和分析是软件需求工程的基础环节,包括需求获取方法、
需求分析技术和需求表示等内容。了解这些知识点对于软件工程考试
至关重要。
2. 需求验证和确认
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1..软件的特点:软件是一种逻辑实体,具有抽象性。
2.软件危机表现:成本高、计算机软件和硬件费用比上升、软件质量得不到保证、由于软件质量问题导致失败的软件项目非常多、进度难以控制、维护非常困难
3.产生软件危机的原因: 1.与软件本身的特点有关(难于维护,逻辑复杂)
2.与软件开发与维护的方法不正确有关:软件≠程序;急于成=
拔苗助长;各自为阵无方法/学
4.软件工程的定义:软件开发、运行、维护和引退的系统方法
5.软件工程三要素:方法、工具和过程。
6.方法:面向对象、面向过程、面向数据,为软件开发提供如何做的技术
7.生命周期的定义:从功能确定、设计到开发成功投入使用,并在使用中不断地修改、增补和完善,直到被新的需要所代替而停止使用该软件的全过程。
8. 软件制造的八个阶段:可行性分、需求分析、概要设计、详细设计、编码、测试、交付
9. 需求分析阶段要明确做什么
10.过程模型:
(1)瀑布模型:特点:时间上具有顺序性和依赖性;推迟实现的观点;质量保证的观点
优点:适合于用户需求明确、完整、无重大变化的软件项目开发。
缺点:实际项目很少按照该模型给出的顺序进行;
用户常常难以清楚地给出所有需求;
用户必须有耐心,等到系统开发完成
(2)原型模型—快速原型模型:在用户不能给出完整、准确的需求说明,或者开发者不能确定算法的有效性、操作系统的适应性或人机交互的形式等许多情况下,可以根据用户的一组基本需求,快速建造一个原型(可运行的软件)
(3)增量模型:是一种渐进地开发逐步完善的软件版本的模型
(4)螺旋模型:螺旋模型的基本思想是降低风险
(5)喷泉模型:是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。
(6)演化模型:是一种全局的软件(或产品)生存周期模型。属于迭代开发方法
(7)智能模型:智能模型也称为基于知识的软件开发模型,它综合了上述若干模型,并把专家系统结合在一起。该模型应用基于规则的系统,采用归纳和推理机制,帮助软件人员完成开发工作。
11.面向对象三要素:方法、属性、标识符。
12.RUP:统一软件开发工程,RUP重复一系列周期,每个周期由一个交付给用户的产品结束。每个周期划分为初始、细化、构造和移交四个阶段,每个阶段围绕着五个核心工作流(需求、分析、设计、实现、测试)分别迭代。
13.UML定义:适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。
14.OOA:面向对象的分析。OOD:面向对象的设计。
15.UML由以下5类图来定义:第1类:用例图
第2类:静态图(包括类图、对象图和包图)
第3类:行为图(包括状态图和活动图)
第4类:交互图(包括时序图和协作图)
第5类:实现图(包括组件图和配置图)
16.需求分析定义:确定系统必须完成哪些工作,明确做什么。
17.获取需求的5W1H方法:why 定律:为什么要引入系统
What 定律:明确系统要做什么,
Who 定律、When 定律、Where定律:需求细化阶段,用来产生系统需求的用例图
How 定律:如何实现这个系统
18.面向对象设计原则:模块化、封装、抽象、信息传递局部化、模块独立化
19.模块化:不是越多越好
20.模块独立性:耦合度与内聚度,最好的情况是高内聚、低耦合。
耦合度最高是内容耦合,最低是非直接耦合。
内聚最高是偶然内聚,最低是功能内聚
21.数据库:表来源于类图。
22.界面的设计原则最重要在功能。
例如:用于很多功能,每个功能拥有一个界面,这样的功能应该保持一致,因为功能都是类似的。
23.编码:依照详细设计来进行。
风格:(1)注释分为:序言性注释;功能性注释;
(2)数据说明:数据说明的次序应该标准化;当多个变量名在一个语句中说明时,应该按字母顺序排列这些变量。如果设计时使用了一个复杂的数据结构,则应该用注解说明用程序设计语言实现这个数据结构的方法和特点。
(3)注意视觉组织
24.软件测试的定义:为了发现错误而执行程序的过程。测试只能找出程序中的错误,但在未发现错误时,并不能证明程序中没有错误。
25.软件测试的目标:尽可能多的发现软件中潜藏的错误,一个成功的测试是发现了至今未发现的错误的测试
26.测试的分类:静态测试、动态测试。动态测试又分为黑盒测试(主要是软件的功能)和白盒测试(主要是软件的结构)。
27.基于不同阶段的测试:单元测试、集成测试、系统测试、验收测试
28.Alpha测试:在开发环境中、Beta测试:在真实环境中
29.维护定义:就是在软件已经交付使用之后,为了保证软件在相当长的时期能够征程运作所进行的软件活动
30:维护时开发过程中耗时最长的。
31.维护类型:改正性维护(因开发时测试不完成,遗留下来的错误);
适应性维护(环境改变时进行的维护);
扩充与完善性维护(用户提出新要求)(这种维护占比最大);
预防性维护(提高软件的可靠性)(占比最小);
32.错误发现越早越好,因为这样花费的代价小。
33.软件系统的文档分为用户文档和系统文档。
34.调试:发现错误并改正的过程。
35.维护软件最重要的就是文档。