软件工程重要知识点1

时间:2024.4.21

1. 软件工程的定义:将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程

及上述方法的研究。软件工程包括3个要素,即方法、工具和过程。

2. 软件工程原则:抽象、信息隐藏、模块化、局部化、一致性、完整性和可验证性。

3. 软件工程开发模型:瀑布型(结构化)、原型(面向对象)、螺旋型。

4. 计算机系统工程是指与构造基于计算机系统有关的过程、方法和技术。它是一种问题求解活动。它

们分别通过硬件工程、软件工程、人机工程和数据库工程等予项目予以实现。

5. 软件工程模型虽然种类有很多,但它们都有共同特点。即都包括软件项目的定义阶段、软件开发阶

段、软件的验证、提交和维护阶段。(简答)

6. 可行性研究应包括:经济可行性研究、技术可行性研究、法律可行性研究和开发方案的选择性研究。

7. 面向对象方法学包含哪些核心概念:面向对象=对象+类+继承+聚集+消息

8. 复杂的数据流图既有变换型又有事务型

9. 软件详细设计阶段的任务是算法设计

10. 可行性分析的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得

去开发。

11. 需求规格说明书的作用应该包括软件设计的依据 、用户与开发人员对软件要做什么的共同理解和软

件验收的依据。

12. 瀑布模型的关键不足在于不能适应需求的动态变更

13. 瀑布模型的关键不足在于不能适应需求的动态变更

14. 在对数据流的分析中,主要是找到中心变换,这是从数据流图导出结构图的关键。

15. 结构分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法

16. 结构图的深度指结构图层数,结构图宽度指跨度

17. 软件测试包括哪些步骤?说明这些步骤的测试对象是什么?

步骤包括:单元测试、综合测试、确认测试和系统测试

测试对象:单元测试—编码 综合测试—设计

确认测试—需求分析 系统测试—系统工程

18. 请列举启发式设计策略的至少5条对程序结构雏形优化的策略。

(1)改造程序结构,降低耦合度,提高内聚度

(2)改造程序结构,减少扇出,在增加程序深度的前提下追求扇人

(3)使任一模块的作用域在其控制域之内

(4)降低界面的复杂性和冗余程度,提高协调性

(5)模块功能应该可预言,避免对模块施加过多限制

(6)追求单人入口出口的模块 (7)把某些软件用包的形式封装起来

19. 面向对象设计方法中,设计用例实现方案包括:提取边界类、实体类和控制类、构造交互图和根据

交互图精化类图

20. 学会使用盒图描述伪码程序

21. 模块耦合度越低则说明模块的独立性越强

22. PDL称为伪码

23. 软件测试的目的是什么?

软件测试是为了发现程序中的错误

24. 白盒测试包含哪些技术,黑盒测试有哪些技术

白盒测试包含:基本路径测试、控制结构测试(条件测试法、数据流测试法、循环测试)

黑盒测试包含:等价分类法、边界值分析和对比测试

25. 内聚性有七种类型,最强的是什么,最弱的是什么。

最强的是功能内聚,最弱的是偶然性内聚


第二篇:知识点1软件工程基本概念


知识点1软件工程基本概念

软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。

知识点2软件生命周期

将软件产品从开始计划起,到废弃不用止,称为软件生命周期。

软件生命周期一般划分为计划、开发和运行3个时期,每一时期又区分为若干个阶段。计划时期有问题定义和可行性研究两个阶段;开发时期有需求分析、设计、编码和测试4个阶段;运行时期主要是系统维护阶段。

知识点3软件设计基本概念

软件设计分为总体设计和详细设计

目的:确定软件的总体结构、数据结构、用户界面和算法细节

任务:将需求阶段产生的软件需求说明转换为用适当手段表示的软件设计文档

总体设计

目的:要解决的问题是“怎样实现目标系统”

任务:确定软件的总体结构,进行模块划分,确定每个模块的功能、接口及模块之间的调用关系,并对全局数据结构进行设计,同时产生概要设计说明书。 详细设计

目的:要解决的问题是“应该怎样具体实现目标系统”

任务:在概要设计的基础上,设计每个模块实现的细节及对局部数据进行设计(包括模块的数据结构和所需的算法),同时产生详细设计说明书。

知识点4软件设计的基本原理

抽象是一种思维方法。忽略细节,把握本质。软件工程每一步都是对软件解法的抽象层次的一次细化。

自顶向下逐步求精:首先对设计的系统要有一个全面的理解,然后从顶层开始,连续地逐层向下分解,直至所有的模块都小到便于掌握为止。

模块化:层次结构为树状结构。

信息隐蔽与局部化:有利于软件的可维护性可以防止误操作和误修改。 模块独立性:模块化、抽象、信息隐蔽和局部化直接结果。好处是使软件开发更容易、适合分工合作,使软件测试和维护更容易。

启发性原则:改进软件结构提高模块独立性。

知识点5 结构化分析方法

软件开发方法主要有结构化开发方法和面向对象开发方法。结构化分析(简称SA)方法是面向数据流进行需求分析的方法。该方法使用简单易读的符号,运用抽象的概念模型,根据软件内部数据传递、变换的关系,自顶向下逐层分解,

描绘出满足功能要求的软件模型。

知识点6软件测试的目的和准则

软件测试是为了发现程序中的错误而执行程序的过程

目的:通过在计算机上执行程序检验软件是否满足规定的需求或是弄清预期结果与实际结果之间的差别,并改正程序中的错误,以保证程序的可靠运行。 原则:

1、确定期望输出结果

2、测试者应避免测试自己的程序

3、对非法和非期望的输入数据要像合法的和期望的输入数据一样编写测试用例

4、程序模块经测试后,残存的错误数目与已发现的错误数目成正比

5、严格按测试计划执行,避免测试的随意性

6、对每一个测试结果应当做全面检查

7、妥善保存测试计划、测试用例、出错统计和最终分析报告,为软件维护提供方便

知识点7软件测试的方法和实施

软件测试分为静态分析和动态测试。动态测试又分为白盒测试和黑盒测试。 白盒测试常用以下几种技术:语句覆盖;判定覆盖;条件覆盖;判定/条件覆盖;条件组合覆盖;路径覆盖。黑盒测试常使用的技术如下:等价类划分法;边界值分析法;错误推测法;因果图法。

软件测试的实施:单元测试;集成测试;确认测试;系统测试

知识点8程序的调试

程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。

步骤:用编辑程序把编制的源程序按照一定的书写格式送到计算机中。把源程序翻译成机器语言。使用计算机中的连接程序,把翻译好的计算机语言程序连接起来,并扶植成一个计算机能真正运行的程序。将修改后的程序进行试算,接着仍要编译、连接和执行,直至无逻辑错误为止。也可以在完成后再进行编译。

按照如下知识点顺序:

知识点1算法的复杂度

算法的复杂度:时间复杂度与空间复杂度。

知识点2逻辑结构和存储结构

逻辑结构(数据结构):数据元素之间逻辑上的关系,是数据的组织形式。

分为:线性结构和非线性结构(具体为集合;线性结构;树型结构;图状结构)。 存储结构:数据元素以及数据元素之间的逻辑关系在计算机内存中的表示。一般地,一个存储结构包括以下两个主要部分:存储结点(简称结点),每个结点存放一个数据元素;数据元素之间关系的表示,也就是逻辑结构的计算机内部表示。常用的数据存储结构:顺序存储方法;链式存储方法;索引存储方法;散列存储方法。

知识点3线性结构和非线性结构

数据的逻辑结构分为线性结构和非线性结构。

线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后驱。

常用的线性结构有:线性表,栈,队列,双队列,数组,串。

广义表,是一种非线性的数据结构。

常见的非线性结构有:树(二叉树等),图(网等)。

知识点4栈

栈的逻辑结构和线性表相同,但是,栈(Stack)是仅限在表的一端进行插入和删除运算的线性表,通常称插入、删除这一端为栈顶,另一端称为栈底,表中无元素时为空栈

栈的运算原则是“先进后出” 。插入运算称为进栈(或入栈)。删除运算称为退栈(或出栈)。

基本运算为:入栈、出栈、取栈顶元素

知识点5队列

队列(Queue),两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

操作原则是先进先出

队列的顺序存储一般采用循环队列。把队列设想成一个循环表,即设想数组首尾相连。这种存储结构称为循环队。

知识点6链表

线性表的链式存储结构:单链表、循环链表等其他链表。

知识点7二叉树及其基本性质

二叉树:是结点的有穷集合,它或者是空集,或者同时满足下述两个条件:有且仅有一个称为根的结点;其余结点分为两个互不相交的集合T1、T2,T1与T2都是二叉树,并且Tl与T2有顺序关系(T1在T2之前),它们分别称为根的左子树和右子树。

基本性质:二叉树第i(i≥1)层上至多有2i-1个结点;深度为k(k≥1)的二叉树至多有2k-1个结点;对任何一棵二叉树,如果其终端结点数为n0,度为2的结点数为n2,则n0 = n2+1。

知识点8二叉树的遍历

二叉树的遍历:就是按某种次序“访问”二叉树上的所有结点,使得每个结点被访问一次,而且仅被访问一次。

二叉树是由三个基本单元组成:根结点、左子树和右子树。因此,若能依次遍历这三部分,便是遍历了整个二叉树。假如以L、D、R分别表示遍历左子树、访问根结点和遍历右子树,则可有DLR、DRL、LDR、LRD、RDL、RLD 6种遍历二叉树方案。若限定先左后右,则只有DLR、LDR、LRD三种情况,分别称之为先根(序)、中根(序)和后根(序)遍历。

考点9 顺序查找

以顺序表作为存储结构查找过程:从表中最后一个(或第一个)记录开始,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比较相等,则查找成功;反之,若直至第一个记录,其关键字和给定值比较都不等,则表明表中没有所查记录,查找失败。

考点10 二分法查找

使用二分查找的线性表满足两个条件:用顺序存储结构;线性表是有序表。 “有序”是特指元素按非递减排列,即从小到大排列,但允许相邻元素相等。 二分查找法的基本思想是:每次将处于查找区间中间位置上的数据元素的键值x与给定值K比较,若不等则缩小查找区间(若K比中间值大则舍弃下半部分,若K比中间值小则舍弃上半部分)并在新的区间内重复上述过程,直到查找成功或查找区间长度为0(即查找不成功)为止。

考点11 排序

1、交换类排序法:借助数据元素的“交换” 来进行的一种方法。冒泡排序法;快速排序法。

2、插入类排序方法:每次将一个待排序的元素,按其元素值的大小插入到前面已经排好序的子表中的适当位置,直到全部元素插入完成为止。简单插入排序法;希尔排序法。

3、选择类排序法:通过每一趟从排序序列中选出值最小的元素,顺序放在已排好序的有序子表的后面,直到全部序列满足排序要求为止。简单选择排序法;堆排序法

更多相关推荐:
软件工程知识点总结(科大)

1.计算机软件是一种特殊的逻辑产品,其为在计算机上运行的各种程序、数据及其说明程序的各种文档。2.软件承担着双重角色,软件是一个产品,同时又是产品交付使用的载体。3.软件测试目的,就是在系统交付客户之前能够发现…

软件工程知识点总结

第二章软件生命周期和过程模型2.1软件生命周期是什么?分为哪几个阶段?每个阶段干什么?2.2.1瀑布模型1、软件生命周期是指软件产品从考虑其概念开始到交付使用,直至最终退役为止的整个过程。软件生命周期可以划分为…

软件工程知识点总结

软件工程知识点总结1.软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重问题。2.软件危机产生的原因:1.软件本身的复杂性、难衡量的特点;2.软件开发与维护的方法不正确。3.软件的定义:计算机程序、方…

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

软件工程导论课后习题答案第一章软件工程概论1什么是软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题这些问题表现在以下几个方面1用户对开发出的软件很难满意2软件产品的质量往往靠不住3一般软...

软件工程知识总结

1软件是能够完成预定功能和性能的可执行指令使得程序能够适当的操作信息的数据结构描述程序的操作和使用的文档软件的特点是逻辑产品非物理产品由开发或工程化而形成无明显的制造过程存在退化问题必须维护软件2软件发展历史程...

软件工程知识点总结

一软件工程概述1软件特点软件计算机程序方法规则相关的文档资料以及计算机程序运行时所需要的数据软件是计算机系统中的逻辑成分具有无形性其主要内容包括程序配置文件系统文档用户文档等2软件分类1按功能划分系统软件支撑软...

软件工程基础知识点整理

软件工程基础知识点整理1109070211朱染晅土建112一软件工程基本概念1软件定义是计算机系统中与硬件相互依存的另一部分是包括程序数据以及相关文档的完整集合1程序是软件开发人员根据用户需求开发的用程序设计语...

安徽大学软件工程导论期末复习考点试卷汇总

第1章软件工程概述1什么是软件工程为什么会出现软件工程软件工程是把系统的规范的可度量的途径应用于软件开发运行和维护过程也就是把工程应用于软件研究中提到的途径软件工作者在20世纪60年代后期开始认真研究消除软件危...

武汉大学软件工程复习重点总结

软件工程复习一概论1软件的组成程序文档数据软件的特点更依赖于人开发成本进度难以估计正确性难保证维护困难不磨损老化可长期使用软件开发的三个时期程序设计语言兴起时期结构化程序设计时期软件工程与软件开发环境时期2软件...

软件工程复习知识点

第一章概论1软件的特点1软件是一种逻辑实体而不是有形的系统元件其开发成本和进度难以准确地估算2软件是被开发的或被设计的没有明显的制造过程一旦开发成功只需复制即可但其维护的工作量大3软件的使用没有硬件那样的机械磨...

软件工程知识总结

一关于软件工程1软件工程是一门研究用工程化方法构建和维护有效的实用的和高质量的软件学科软件工程技术管理2软件过程为一个为建造高质量软件所需完成的任务的框架即形成软件产品的一些列步骤包括中间产品资源角色及过程中采...

北京航空航天大学软件工程知识点总结

软件工程简要知识点一软件过程五个模型对比瀑布模型快速原型增量螺旋喷泉模型二可行性研究1任务用最小的代价在尽可能短的时间内确定问题是否能够解决2四个方面技术经济操作可行性法律3数据流图四种成分1源点终点2处理3数...

软件工程知识点总结(30篇)