软件工程期末复习
基本知识点
1、软件=程序+文档+数据。
2、软件工程三要素:过程、工具、方法。==(过攻防)==研究内容:方法与技术、工具与环境、管理与技术、标准与规范。软件工程 = 工程原理 + 技术方法 + 管理技术
3、软件开发方法:结构化方法(自顶向下、由外向内、逐层分解)、形式化方法、面向数据结构方法、面向对象方法。
4、产生软件危机的主要原因是软件自身的特点及开发方法。软件工程方法的提出起源于软件危机,其目的应该是最终解决软件的生产工程化问题。
5、软件过程(软件生命周期过程,是软件开发活动的集合):可行性分析、需求分析、软件设计(概要设计、详细设计)、编码、软件测试、产品交付、软件维护。(可行、需求、设计(概要、详细)、编码、测试、交付、维护),维护阶段是软件生存周期中时间最长的阶段【一个软件项目大约30%的工作量在开发阶段,70%的工作量在测试维护阶段。】 ;一般认为可能占用人员最多的阶段是编码阶段。
6、软件质量三因素包括人员、技术、过程。
7、需求分析的步骤:需求获取、分析建模、需求描述、需求验证。在需求分析前有必要进行可行性分析工作。需求分析是一个过程,他应该贯穿于系统的整个生命周期中,而不是仅仅属于软件生命周期早期的一项工作。需求阶段会产生3个文档:系统定义文档(用户需求报告)、系统需求文档(系统需求规格说明书)、软件需求文档(软件需求规格说明书)【最重要的技术文档】。
8、验收测试对应的是用户需求。业务需求描述的是软件的目标、规模和范围。
9、结构化分析常用的建模方法:实体-关系图(E-R)、数据流图(DFD)、状态转换图(STD)、数据字典(DD)。
10、性能测试对应的是非功能需求(比如:允许10万个用户同时登录),非功能需求又叫做质量需求。
11、结构化需求分析方法:一种面向数据流的需求分析方法,其中数据作为独立实体转换,数据建模定义了数据的属性和关系,操作数据的处理建模表明当数据在系统流动时处理如何转换数据。
12、E-R图用于描述应用系统的概念结构数据模型,他是进行需求分析,并归纳、整体、表达和优化现实世界中数据以及其联系的重要工具。包括实体、关系、属性。
13、数据流图是描述系统中数据流的图形工具,是一种用来表示信息流和信息变换过程的图解方法可以标识一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。
14、状态转换图是一种描述系统对内部或外部事件响应的行为模型。他描述系统状态和事件,事件引发系统在状态间的转换,而不是描述系统中数据的流动。(适合描述实时系统)
15、数据字典用于对数据流图补充和完善,用于定义数据流图中各个图元的具体内容,为数据流图中出现的图形元素做出确切的解释。 数据字典包括数据流、数据项、数据储存和基本加工。 数据字典和数据流图共同构成系统的逻辑模型。
16、动态模型着重系统的控制逻辑,它包括两个图,一个是事件追踪图,另一个是状态图(壮士)。
17、软件开发中实现映射的基本手段是建模, 软件过程模型:瀑布模型(不可回溯)【在最初阶段就要明确和完整】、快速原型模型(难以表达全面、准确的需求,双方的知识领域差异很大)、增量模型(模块化、非整体开发模型)、螺旋模型(风险分析控制、用于风险大的大型软件,是瀑布模型与快速原型模型的结合,操作性不强)、喷泉模型(迭代、无间隙性)。软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为瀑布模型。
18、软件设计模块化的目的是降低复杂度,模块的独立性是由内聚性和耦合性来度量的,内聚性是模块的功能强度,耦合性越弱模块越独立,最好采用数据耦合。
19、Jackson方法根据数据结构导出程序结构,其是一种面向数据结构的方法,是进行详细设计的形式化方法。详细设计的主要任务是确定每个模块的 算法和数据结构。 用于详细设计的工具有 顺序流程图、PAD图 (一种二维树形结构并可自动生成程序代码的描述工具 )、N-S图和伪代码。
20、面向数据流的软件设计方法可以将数据流映射成软件结构。面向数据流的软件设计方法中,将信息流分为事务流和变换流。(事变)变换是指把输入的数据处理后转变成另外的输出数据,事务是指非数据变换的处理,他将输入的数据分散成许多数据流,形成若干个加工,然后选择其中一个路径来执行。
21、结构化设计的工具:流程图、盒图(N-S图)、PAD图(问题分析图)、判定表、判定树(并不适合作为一种通用的工具、没有简单的方法可以处理)、过程设计语言(PDL、伪代码、程序描述语言)。 结构化详细设计过程将需求阶段的DFD【语言形式描述模块算法】,转换为结构化模型。
22、面向数据的设计方法包括,确定数据结合特征,用顺序、选择和重复3种基本形式表示数据。
23、面向对象技术中,对象是类的实例,对象有3种成分,封装、属性和方法(或操作)。面向对象分析中,分析类一般分为边界、控制、和实体。
24、通过执行对象的操作可以改变对象的属性,但他必须通过消息的传递。(注意是消息而不是信息)
25、UML是软件开发中的一个重要工具,他只有应用于基于对象的面向对象的方法。UML的主要内容可以用用例图、静态图(行为图、交叉图、实现图)来定义。UML中交互图有:顺序图、时序图、序列图。
26、静态建模机制包括用例图、类图、对象图、包图。(对内不好用)其中可视化地表达系统的静态结构结构模型的是类图。
27、用例图从用户角度描述系统的功能,由用例、参与者以及他们的关系连线组成。用例是从用户角度描述系统的行为,参与者是与系统交互的外部实体。用例是一个类,他代表一类功能。
28、用例之间存在4大关系:包含(使用带箭头的虚线表示,虚线上标有==《include》,方向由包含实例指向被包含实例,存在共同行为==)、扩展(使用带箭头的虚线表示,虚线上标有==《extend》,方向由包含实例指向被扩展实例,存在异常行为==)、泛化(使用带三角形实线表示,方向由子用例指向父用例,一般特殊关系),关联关系。
29、用例图三大基本元素用例、角色、关系。
30、类图和对象图:类图使用类和对象描述系统的结构,展示了系统中类的静态结构,即类与类之间的相互关系。对象图是类图的实例,他展示了系统在某一时刻的快照。对象图使用和类图形同的符号,只是在对象名下面加上下划线。类与类之间有关联、依赖、泛化、实现关系。类图中包含5种关系:关联、泛化、聚合、组合、依赖。
31、动态建模机制包括顺序图、协作图、状态图、活动图。(舜装和谐)
32、顺序图描述一组对象的交互方式,他完成某项行为的对象和这些对象之间传递消息的时间顺序。由对象、生命线、控制焦点、消息组成。
33、协作图(通信图、合作图)用于显示系统的动作协作。
34、状态图用来描述对象对外部对象响应的历史状态序列,描述对象所有可能的状态,以及哪些事件将导致状态的改变。初态用实心圆、终态实心圆外围一个圆。
35、活动图用于对计算流程和工作建模。
36、面向对象模型主要包括对象模型(核心模型)、动态模型、功能模型。(对象动功)
37、面向对象分析的首页工作是建立问题的对象模型。
38、动态模型着重于系统的控制逻辑,包括事件追踪图、状态图。
39、面向对象设计阶段的主要任务是系统设计和对象设计。
40、软件测试的目的是发现软件中的错误。成功的测试试着运行测试用例后发现了程序错误。
41、黑盒测试主要关注软件功能的实现,而不是内部逻辑,包括等价类划分法、边界值分析法、错误推断法、因果图法、决策表法、场景法。其中因果图法能够有效地检测输入条件的各种组合可能引起的错误。
42、白盒测试关注软件产品的内部细节和逻辑结构,包括代码检查法、逻辑覆盖法( 包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖等)、