《软件工程基础知识点总结.docx》由会员分享,可在线阅读,更多相关《软件工程基础知识点总结.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结软件工程基础部分学问点总结学问点一软件工程的基本概念1、软件定义 :是运算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档 的完整集合。1) 程序是软件开发人员依据用户需求开发的、用程序设计语言描述的、适合运算机执行的指令(语句)序列。2) 数据是使程序能够正常操作信息的数据结构。3) 文档是与程序开发、保护和使用有关的图文资料。国标( GB)运算机软件的定义:与运算机系统的操作相关的运算机程序、规程、规章以及可能有的文件、文档及数据。2、软件特点 :1) 软件是一种规律实体,而不是物理实体,具有抽象性,是运算机的无形部分。2) 软件的生产与硬件不同,它没有明显的
2、制作过程。3) 软件在运行、使用期间不存在磨损、老化问题。4) 软件的开发、运行对运算机系统具有依靠性,受运算机系统的限制,这导致了软件移植的问题。5) 软件复杂性高,成本昂贵。6) 软件开发涉及诸多的社会因素3、软件的分类 :依据功能可以分为:应用软件、系统软件、支撑软件(或工具软件)可编辑资料 - - - 欢迎下载精品名师归纳总结2) 系统软件是运算机治理自身资源,提高运算机使用效率并为运算机用户供应各种服务的软件。 3)支撑软件是介于系统软件和应用软件之间,帮助用户开发软件的工具软件。4、软件危机 :是指在软件的开发和保护过程中所遇到的一系列严峻问题。 软件危机主要表达在以下几个方面:
3、软件开发的实际成本和进度估量不精确 开发出来的软件常常不能使用户中意 软件产品的质量不高,存在漏洞,需要常常打补丁 大量已有的软件难以保护 软件缺少有关的文档资料 开发和保护成本不断提高,直接威逼运算机应用的扩大 软件生产技术进步缓慢,跟不上硬件的进展和人们需求增长5、软件工程 :此概念的显现源自软件危机。软件工程是指应用运算机科学、数学及治理科学等原理, 以工程化的原就和方法来开发与保护软件的学科。 1)讨论软件工程的主要目的就是在规定的时间、规定的开发费用内 开发出满意用户需求的高质量的软件系统高质量是指错误率低、好用、易用、可移植、易保护等 。2)软件工程的三个要素:方法、工具和过程。方
4、法:完成软件工程项目的技术手段。可编辑资料 - - - 欢迎下载精品名师归纳总结过程:支持软件开发的各个环节的掌握、治理。3) 软件工程的核心思想:把软件产品看作是一个工程产品来处理。学问点二软件的生命周期1、软件生命周期概念 :将软件产品从提出、实现、使用保护到停止使用退役的过程称为软件生命周期。2、软件生命周期一般划分为 定义、开发和保护 3 个阶段:1) 定义阶段 : 可行性讨论、需求分析2 个阶段。 软件定义阶段:包括制定方案和需求分析。制定方案:确定总目标。可行性讨论。探讨解决方案。制定开发方案。需求分析:对待开发软件提出的需求进行分析并给出具体的定义。方法: 1)结构化需求分析方法
5、。 2)面对对象的分析方法。任务:导出目标系统的规律模型,解决“做什么”的问题。步骤:需求分析一般分为需求猎取、需求分析、编写需求规格说明书和需求评审四个步骤进行。2) 开发阶段 : 概要设计、具体设计、编码实现和测试4 个阶段。软件设计:分为概要设计和具体设计两个部分。软件实现:把软件设计转换成运算机可以接受的程序代码。软件测试:在设计测试用例的基础上检验软件的各个组成部分。可编辑资料 - - - 欢迎下载精品名师归纳总结软件运行保护阶段:软件投入运行,并在使用中不断的保护,进行必要的扩充和删改。软件生命周期中所花费最多的阶段是软件运保护阶段。4) 软件工程原就 :抽象、信息隐藏、模块化、局
6、部化、确定性、一样性、完备性和可验证性。5) 软件工具 就是帮忙开发软件的软件。它们对提高软件生产率,促进软件生产的自动化都有重要的作用。6) 软件开发环境 或称软件工程环境 是全面支持软件开发全过程的软件工具的集合, 这些软件工具依据肯定的方法和模式组合起来,共同支持软件生命周期内的各个阶段和各项任务的完成。学问点三 软件设计基本概念1、软件工程过程 : 问题定义可行性讨论需求分析 软件设计软件编码软件测试软件保护2、软件设计分为总体设计和具体设计1) 总体设计目的:要解决的问题是 “怎样实现目标系统 ”任务:确定软件的总体结构, 进行模块划分, 确定每个模块的功能、接口及模块之间的调用关系
7、, 并对全局数据结构进行设计, 同时产生可编辑资料 - - - 欢迎下载精品名师归纳总结2) 具体设计目的:要解决的问题是 “应当怎样具体实现目标系统 ”任务:在概要设计的基础上, 设计每个模块实现的细节及对局部数据进行设计 包括模块的数据结构和所需的算法 ,同时产生具体设计说明书3、软件编码目的:产生能在运算机上执行的程序任务:依据系统的要求和开发环境,选用合适的程序设计语言,把具体设计的结果翻译成用该程序设计语言编写的程序代码 源程序 4、软件测试 是为了发觉程序中的错误而执行程序的过程目的和任务: 通过在运算机上执行程序来尽可能多的发觉软件产品中的错误和缺陷,并改正程序中的错误,以保证程
8、序的牢靠运行5、软件保护阶段 是长期的过程,由于, 经过测试的软件仍可能有错, 用户的要求仍会发生变化,软件运行的环境也可能变化等等。因此, 交付使用的软件仍旧需要连续排错、修改和扩充,这就是软件保护。 软件保护的 目的是满意用户对已开发产品的性能与运行环境不断提高的需要,进而达到延长软件的寿命软件保护就是在软件交付使用之后, 为了改正错误或满意新的需要而修改软件的过程。软件保护的 类型有如下几种:1)改正性保护:诊断和改进错误的过程。可编辑资料 - - - 欢迎下载精品名师归纳总结3)完善性保护:为了满意用户提出的增加新功能或修改已有功能的建议而进行保护。 4)预防性保护:为了改进将来的可保
9、护性和牢靠性。软件开发时期要完成设计和实现两大任务, 其中设计任务用需求分析和软件设计两个阶段完成,实现任务用编码和测试两个阶段完成。开发任务完成的好与坏, 关系到软件产品的质量, 完成开发任务的关键是挑选好的软件开发方法。目前,软件开发方法主要有结构化开发方法和面对对象开发方法学问点 4 软件设计的基本原理软件设计的基本原理包括:抽象、模块化、信息隐藏和模块独立性。1、模块化: 指解决问题时自顶向下的方法逐层把软件系统划分成如干个模块的过程2、抽象: 熟悉复杂过程中使用的思维工具,即抽出事务的本质的共同的特性而暂不考虑它的细节和其他因素。3、信息隐藏: 旨在设计和确定模块式的时候,是的一个模
10、块内包含的信息,对于不需要这些信息的其他模块来说不行拜访4、模块独立性: 指每个模块只完成系统要求的独立的功能,并且与其他模块联系最少且接口简洁模块的耦合性和内聚性是衡量软件的模块独立性的两个定性指标。可编辑资料 - - - 欢迎下载精品名师归纳总结(语句之间、程序段)间彼此结合的紧密程度的度量。 2)耦合性:是模块间相互连接的紧密程度的度量。模块之间联系越紧密,其耦合性就越强,模块的独立性就越差。一个设计良好的软件系统应具有 高内聚、低耦合 的特点。在结构化程序设计中, 模块划分的原就是: 模块内具有高内聚度, 模块间具有低耦合度。软件设计有两个步骤:(1) )概要设计(又称结构设计)是将软
11、件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。(2) )具体设计是确定每个模块的实现算法和局部数据结构,通过对结构表示进行细化,得到软件的具体数据结构和算法。学问点 5 结构化分析方法结构化方法的软件开发过程可编辑资料 - - - 欢迎下载精品名师归纳总结软件方案后结构化分析结构化设计结构化程序设计编码并测试可编辑资料 - - - 欢迎下载精品名师归纳总结面对对象方法的软件开发过程可编辑资料 - - - 欢迎下载精品名师归纳总结软件方案后面对对象分析面对对象设计面对对象编程软件测试可编辑资料 - - - 欢迎下载精品名师归纳总结1、结构化分析 简称 SA方法是面对数据流进
12、行需求分析的方法。可编辑资料 - - - 欢迎下载精品名师归纳总结判定树、判定表3、SA的基本步骤 如下: 自顶向下对系统进行功能分解,画出分层的数据流图 由后向前定义系统的数据和加工,编制数据字典和加工说明 写出需求规格说明书 SRS4、数据流图 是以图形的方式描画数据在软件系统中流淌和处理的过程,由于它只反映系统必需完成的规律功能, 所以它是一种功能模型。数据流图由数据流、加工 又称数据处理 、数据储备 又称文件 、数据源点或终点四种基本成分组成。数据流图 简称 DFD图形元素: 数据流 :是数据在系统内传播的路径。 使用箭头代表数据的流向,数据名称标在箭头的边上 加工:输入数据经过加工变
13、换产生输出。使用圆框代表加工 数据储备: 指处理过程中存放各种数据。使用双杠 或单杠 表示数据文件或数据库。文件与加工之间用箭头线连接,单向表 示只读或只写,双向表示可读可写可编辑资料 - - - 欢迎下载精品名师归纳总结组织或其他软件系统, 统称为外部实体 。使用方框表示数据的源点和终点5、建立数据流图的步骤:第一步:由外向里:先画系统的输入输出,然后画系统的内部。其次步:自顶向下:次序完成顶层、中间层、底层数据流图。 第三步:逐层分解。6、DFD图的数据流可分为两种类型:变换流和事务流变换流:信息沿着输入通路进入系统,同时将信息的外部形式转换成内部形式,通过变换中心处理之后,再沿着输出通路
14、转换成外部形式输出事务流:信息沿着输入通路到达一个事务中心,事务中心依据输入信息的类型在如干个动作序列中挑选一个来执行,这种信息流称为事务流7、数据字典 就是用来定义数据流图中的各个成分的具体含义和具体的描述。它和数据流图共同构成了系统的规律模型, 是需求规格说明书的主要组成部分。是结构化分析方法的核心。 数据字典是为分析人员查找数据流图中有关名字的具体定义而服务的。数据字典有四类条目:数据流、数据项、数据储备和基本加工。 8、SD方法的中心任务 就是把用 DFD图表示的系统分析模型便利的转换为软件结构的设计模型。可编辑资料 - - - 欢迎下载精品名师归纳总结识点 6 软件测试的目的和准就1
15、、软件测试是保证软件质量的重要手段,其主要过程涵盖了整个软 件生命周期的过程, 包括需求定义阶段的需求测试、 编码阶段的单元测试、集成测试以及后期的确认测试、 系统测试、验证软件是否合格、能否交付给用户使用。 软件测试就是使用人工或自动手段来运行或测定某个系统的过程, 其目的在于检验它是否满意规定的需求或是弄清预期结果与实际结果之间的差别。2、软件测试的 原就:1) 全部测试都应追溯到需求2) 严格执行测试方案,排除测试的随便性3) 防止由软件开发人员测试自己的程序4) 充分留意测试中的群集性现象5) 除了很小的程序外,“完全”的穷举测试是不行能的6) 妥当储存测试方案、测试用例、出错统计和最
16、终的分析报告, 为保护供应便利软件测试的每一次测试都需要预备好一些测试数据,与被测程序一起输入到运算机中执行。学问点 7 软件测试的方法和实施可编辑资料 - - - 欢迎下载精品名师归纳总结试贯穿在整个软件开发期的全过程。 对于软件测试方法和技术, 可以从不同的角度加以分类。从是否需要执行被测软件的角度, 软件测试分为静态分析和动态测试依据功能划分,动态测试又分为白盒测试和黑盒测试2、静态测试 一般是指人工评审软件文档或程序,借以发觉其中的错误,由于被评审的文档或程序不必运行,所以称为静态的。静态测试包括代码检查、静态结构分析、代码质量度量等。3、动态测试 是指通过运行软件来检查软件中的动态行
17、为和运行结果的正确性,也就是常说的上机测试。动态测试一般包括两个基本要素:被测程序和测试数据4、测试能否发觉错误取决于测试用例的设计。动态测试的设计测试用例的方法一般分为黑盒测试和白盒测试。白盒测试也称结构测试, 它与程序内部结构相关, 要利用程序结构的实现细节设计测试用例,它涉及程序风格、掌握方法、源程序、数 据库设计和编码细节。黑盒测试是测试者已经知道被测程序的功能, 而对程序内部的规律结构和处理过程完全不用考虑, 只是对它的每一个功能进行测试, 将测试后的结果与期望的结果进行分析比较, 检查程序的功能是否符合规格说明书的要求。黑盒测试是在程序接口进行的测试可编辑资料 - - - 欢迎下载
18、精品名师归纳总结是用完可能少的测试数据, 达到尽可能大的程序掩盖面, 发觉尽可能多的软件错误和问题6、用白盒法设计测试用例常用以下几种技术: 语句掩盖 判定掩盖 条件掩盖 判定条件掩盖 条件组合掩盖 路径掩盖7、用黑盒法设计测试用例常用以下几种技术:等价类划分法 边界值分析法错误估量法 因果图法8、软件测试的 实施 单元测试: 是对每一个编制好的模块进行测试, 其目的在于发觉和排除各模块内部可能存在的差错及具体设计中产生的错误。 进行单元测试时,依据程序的内部结构设计测试用例,主要采纳 白盒测试法集成测试。是在单元测试的基础上,将全部模块依据设计要求组装成为系统而进行的测试,它的任务是检查模块
19、间的接口和通信、各子功能的组合能否达到预期要求的功能、全程数据结构是否有问题等。集成测试主要发觉设计阶段产生的错误,通常采纳黑盒测试法 。集成测试时,将各个模块组装成系统的方法有:非增量组装方式是先分别对每个模块进行单元测试,再把全部模块按设计要求组装在一起进行测试,最终得到所要求的软件增量组装方式是把下一个要测试的模块同已经测试好的那些模块结合起可编辑资料 - - - 欢迎下载精品名师归纳总结试 确认测试。确认测试是在集成测试通过后, 在用户的参加下进行确认测试。这时通常使用实际数据进行测试,以验证系统是否 能满意用户的实际需要。它的任务就是以需求规格说明书作为依 据来验证软件的性能、功能及
20、其他特点是否与用户的要求一样, 通常采纳黑盒测试 系统测试。系统测试是在更大范畴内进行的测试。 系统测试是把通过确认测试后的软件与运算机硬件、外设、某些支持软件、数据和人员等结合在一起,在实际运行环境下,对运算机系统进行的一系列集成测试和确认测试学问点八 程序的调试1、调试也称排错或纠错。2、程序调试的任务 :诊断和改正程序中错误。软件测试贯穿整个生命周期,调试主要在开发阶段。3、程序调试的基本步骤:1)错误定位。2)订正错误。 3 )回来测试。4、对软件 主要的调试方法 可以采纳:1) 强行排错法。 2 )回溯法。 3)缘由排除法。5、软件调试可分为静态调试和动态调试。可编辑资料 - - - 欢迎下载精品名师归纳总结并进行排错。2) 动态调试是指对程序的运行进行跟踪并观看其出错点,然后进行排错。可编辑资料 - - - 欢迎下载