当前位置:首页 > 软件工程复习提纲
第一章
1、软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 2、软件危机主要包括的问题(两方面):① 如何开发软件 :以满足对软件日益增长的需求; ② 如何维护软件:如何维护数量不断膨胀的已有软件。 3、软件是程序、数据及相关文档的完整集合。(软件产品=程序+文档+数据)
4、按工程化的原则和方法组织软件开发工作是有效的,是摆脱软件危机的一个主要出路。 5、软件工程学:主要是应用工程的方法和技术研究软件开发与维护的方法、工具和管理的一门交叉学科。
6、软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。
7、软件工程:采用工程的概念、原理、技术和方法来开发与维护软件, 把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
8、软件工程方法学的3要素:方法、工具和过程
9、目前使用的最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。 10、软件生命周期由软件定义、软件开发和软件维护3个时期组成。
11、在软件定义时期中,这个时期的工作通常又称为系统分析,由系统分析员负责完成。 12、软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。 13、软件开发时期通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。
14、瀑布模型的特点:1. 阶段间具有顺序性和依赖性2.推迟实现的观点3.质量保证的观点 (注:结合PPT了解和掌握传统瀑布模型的图解和实际瀑布模型的图解)
第二章
1、可行性研究任务:就是要回答“所定义的问题有可行的解决办法吗?”。
2、可行性研究的目的:用最小的代价在尽可能短的时间内确定问题是否有解,以及是否值得去解。
3、可行性研究的内容:技术可行性、经济可行性、操作可行性、社会可行性。
4、系统流程图的特点:系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程。
5、不需要掌握符号怎么画,但是要求掌握名称和说明。
6、数据流图(DFD):是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
7、* 数据流之间是“与”关系(同时存在) + 数据流之间是“或”关系
⊕ 只能从几个数据流中选一个(互斥关系)
8、数据字典:对数据流图中包含的所有元素的定义的集合。
9、可行性研究阶段,数据流图与数据字典共同构成系统的逻辑模型。 10、数据字典应该由下列4类元素的定义组成: 1)数据流;
2)数据元素(数据流分量); 3)数据存储; 4)处理。
第三章
1、 需求分析的基本任务还不是确定怎样完成他的工作,而仅仅是确定系统必须完成哪些工
作,也就是对目标系统提出完整、准确、清晰、具体的要求。 2、 确定对系统的综合要求:
1) 功能需求 2)性能需求 3)可靠性和可用性需求 4)出错处理需求 5)接口需求 6)约束 7)逆向需求 8)将来可能提出的要求
3、分析系统的数据要求通常采用建立数据模型的方法。
4、导出系统的详细的逻辑模型,通常用 数据流图、 实体-联系图、 状态转换图、 数据字典和 主要的处理算法来描述这个逻辑模型。
5、数据决定了需要的处理和算法,数据显然是需求分析的出发点。
6、结构化分析方法(SA)就是面向数据流自顶向下逐步求精进行需求分析的方法。 (SA主要工具:数据流图、数据字典、IPO图)
7、所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。
8、需求分析过程应该建立3种模型,他们分别是数据模型、功能模型和行为模型。 9、数据对象:对软件必须理解的复合信息的抽象。 属性:定义了数据对象的性质。
数据对象彼此之间相互连接的方式称为关系,也称为联系。 (1) 一对一联系(1∶1) (2) 一对多联系(1∶N) (3) 多对多联系(M∶N)
10、状态转换图的作用:通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。
11、(理解和掌握Warnier图)
第五章
1、总体设计的基本目的就是回答“概括地说,系统应该如何实现?”这个问题,总体设计又称为概要设计。
2、总体设计过程通常由两个主要阶段组成:系统设计阶段: 确定系统的具体实现方案;结构设计阶段:确定软件结构。
3、结构设计:确定程序由哪些模块组成,以及这些模块之间的关系 4、结构设计是总体设计阶段的任务,过程设计是详细设计阶段的任务。 5、软件结构可以用层次图或结构图来描绘。
6、设计原理的4个基本原则:模块化 ;抽象、逐步求精;信息隐藏 ;模块独立性。 7、模块:是由边界元素限定的相邻程序元素的序列。 8、逐步求精:“为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。”
9、信息隐藏:使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。
10、信息隐藏的目的:提高模块的独立性,减少修改或维护时的影响面。 11、模块的独立程度可以由两个定性标准度量:内聚和耦合。 12、耦合:是对一个软件结构内不同模块之间互连程度的度量。
模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。
13、因此建议:尽量使用数据耦合,少用控制耦合,限制公用耦合,完全不用内容偶合。 (PPT去了解耦合的种类)
14、内聚:一个模块内部各个元素彼此结合的紧密程度。
(设计原则:力求做到高内聚,尽量少用中内聚,不用低内聚) 15、层次图:用来描绘软件的层次结构。
16、信息流有下述两种类型:交换流和事务流。
第六章
1、详细设计目标:确定如何具体实现所要求的系统。详细设计阶段的任务不是具体编写程序,而是设计程序的“蓝图”。
2、设计的结果基本上决定了最终的程序代码的质量。
3、三种基本的控制结构:顺序结构、选择结构(又称IF-THEN-ELSE 结构)和循环结构(又称DO-WHILE 结构)。
4、人机界面设计是接口设计的一个组成部分。
5、人机界面设计的问题: 1)系统响应时间 2)用户帮助设施 3)出错信息处理 4)命令交互
6、描述程序处理过程的工具称为过程设计的工具,它们可以分为图形、表格和语言3类。 7、程序流程图和盒图(要求能看懂PPT上的图)。
8、判定表由4部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。
9、面向数据结构的设计方法的最终目标是得出对程序处理过程的描述。
第七章
1、通常把编码和测试统称为实现。
2、软件测试方法:黑盒测试和白盒测试。(具体内容看PPT) 3、测试步骤:
1)模块测试 2)子系统测试 3)系统测试 4)验收测试 5) 平行运行
4、单元测试期间的测试重点: 1) 模块接口 2) 局部数据结构 3) 重要的执行通路 4) 出错处理通路 5) 边界条件
5、集成测试的方法:非渐增式测试和渐增式测试。 6、逻辑覆盖:
1)语句覆盖:选择足够多的测试数据,使被测程序中每个语句至少执行一次。
2)判定覆盖:又叫分支覆盖,它的含义是,不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次。
3)条件覆盖:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。
第八章
1、所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
2、软件维护的种类:改正性维护、适应性维护、完善性维护和预防性维护。 3、维护的代价:有形的代价和无形的代价 4、决定软件可维护性的因素: 1 )可理解性 2 )可测试性 3 )可修改性 4 )可移植性 5 )可重用性
5、文档:用户文档和系统文档。
第九章
1、面向对象 = 对象 + 类 + 继承 + 消息通信 2、面向对象方法学的优点: 1) 与人类习惯的思维方式一致 2) 稳定性好 3) 可重用性好
4) 较易开发大型软件产品 5) 可维护性好 3、 对象的定义:(汉语字典中的定义)被呈现的或被感官识别的物体。
共分享92篇相关文档