2022年软件工程导论复习重点总结很全 2.pdf
《2022年软件工程导论复习重点总结很全 2.pdf》由会员分享,可在线阅读,更多相关《2022年软件工程导论复习重点总结很全 2.pdf(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 1章软件工程学概述1.1 软件危机1.1.1 软件危机的介绍软件危机 (软件萧条、软件困扰 :是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机包含下述两方面的问题: 如何开发软件 ,满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。软件危机的典型表现 : (1对软件开发成本和进度的估计常常很不准确; (2用户对 “ 已完成的 ” 软件系统不满意的现象经常发生; (3软件产品的质量往往靠不住; (4软件常常是不可维护的 ; (5软件通常没有适当的文档资料; (6软件成本在计算机系统总成本中所占的比例逐年上升; (7软件开发生产率提高的速度,远远跟不上计算机应用迅速
2、普及深入的趋势。1.1.2 产生软件危机的原因(1与软件本身的特点有关(2与软件开发与维护的方法不正确有关精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 48 页1.1.3 消除软件危机的途径对计算机软件有正确的认识。认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。应该开发和使用更好的软件工具。总之,为了解决软件危机 ,既要有技术措施 (方法和工具 ,又要有必要的组织管理措施。1.2 1.2.1 软件工程的介绍软件工程 :是指导计算机软
3、件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 (期中考软件工程的本质特性 : 软件工程关注于大型程序的构造软件工程的中心课题是控制复杂性软件经常变化开发软件的效率非常重要和谐地合作是开发软件的关键软件必须有效地支持它的用户精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 48 页在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品1.2.2 软件工程的基本
4、原理用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性1.2.3 软件工程方法学软件工程包括技术和管理两方面的内容。软件工程方法学 3 要素:方法、工具、过程1.传统方法学 (生命周期方法学或结构化范型强调自顶向下2.面向对象方法学 强调主动地多次反复迭代面向对象方法学 4 个要点 :对象、类、继承、消息1.3 软件生命周期 (必考三个时期八个阶段 :软件生命周期由软件定义、软件开发和运行维护(也称为软件维护三个时期组成 ,每个时期又进一步划分成若干个阶段。精选学习资料 - - - -
5、- - - - - 名师归纳总结 - - - - - - -第 3 页,共 48 页三个时期 :八个阶段 : 软件生命周期软件定义软件开发软件维护问题定义可行性研究需求分析概要设计详细设计编码和单元测试综合测试运行维护系统设计系统实现1.4 软件过程1.4.1 瀑布模型精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 48 页1.4.2 快速原型模型1.4.3 增量模型1.4.4 螺旋模型1.4.5 喷泉模型第 2章可行性研究2.1可行性研究的任务可行性研究的目的 : 不是解决问题 ,而是确定问题是否值得去解决。可行性研究的实质 : 进行
6、一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。可行性研究的内容 : 首先进一步分析和澄清问题定义,导出系统的逻辑模型 ; 然后从系统逻辑模型出发 ,探索若干种可供选择的主要解法(即系统实现方案 ; 对每种解法都研究它的可行性,至少应该从三方面研究每种解法的可行性。主要方面 : 技术可行性 ,经济可行性 ,操作可行性 , 其他方面 : 运行可行性 ,法律可行性 , 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 48 页2.2 可行性研究过程1.复查系统规模和目标2. 研究目前正在使
7、用的系统3. 导出新系统的高层逻辑模型4. 进一步定义问题5. 导出和评价供选择的解法6. 推荐行动方针7. 草拟开发计划8. 书写文档提交审查2.3 系统流程图系统流程图 :是概括地描绘物理系统的传统工具。表达的是数据在系统各部件之间流动的情况 ,而不是对数据进行加工处理的控制过程。2.4数据流图2.4.1符号基本符号 : 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 48 页数据存储 :数据存储是处于静止状态的数据; 数据流 :数据流是处于运动中的数据。附加符号 : 星号(*:表示“ 与” 关系加号(+:表示“ 或” 关系异或(:
8、表示互斥关系2.5数据字典数据流图和数据字典共同构成系统的逻辑模型。2.5.1 数据字典的内容数据字典的组成 :数据流数据流分量 (即数据元素 数据存储处理2.5.2定义数据的方法方法:对数据自顶向下分解。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 48 页数据组成方式 (三种基本类型 :顺序选择重复附加类型 :可选符号: =意思是等价于 (或定义为 ; +意思是和 (即,连接两个分量 ; 意思是或 (即,从方括弧内列出的若干个分量中选择一个,通常用 “| ”号隔开供选择的分量 ; 意思是重复 (即,重复花括弧内的分量 ;常常使用上
9、限和下限进一步注释表示重复的花括弧。( 意思是可选 (即,圆括弧里的分量可有可无。2.5.3数据字典的实现计算机实现人工实现2.6成本/效益分析2.6.1 成本估计 :1. 代码行技术 2. 任务分解技术3. 自动估计成本技术2.6.2 成本/效益分析的方法成本/效益分析涉及的 4 个概念 : 1. 货币的时间价值2. 投资回收期3. 纯收入精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 48 页4. 投资回收率 :P = F1/( 1 + j + F2/( 1 + j 2 + + Fn( 1 + j n第 3章需求分析需求分析的任务
10、: 需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“ 系统必须做什么 ?” 这个问题。确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。系统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求3.1需求分析的任务确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统开发计划3.1.1确定对系统的综合要求1.功能需求2. 性能需求3. 可靠性和可用性需求4. 出错处理需求5. 接口需求精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 48 页6. 约束7. 逆向需求8. 将来可能
11、提出的要求3.1.2 分析系统的数据要求建立数据模型 ER图描绘数据结构 层次方框图和 Warnier 图数据结构规范化3.2 与用户沟通获取需求的方法访谈:1. 正式访谈 2. 非正式访谈 3. 调查表 4. 情景分析技术面向数据流自顶向下求精简易的应用规格说明技术快速建立软件原型 :(1 第四代技术 (4GL(2 可重用的软件构件 (3 形式化规格说明和原型环境3.3分析建模与规格说明3.3.1 分析建模需求分析过程应该建立3 种模型 :数据模型功能模型行为模型数据字典是分析模型的核心实体-联系图用于建立数据模型的图形数据流图是建立功能模型的基础精选学习资料 - - - - - - - -
12、 - 名师归纳总结 - - - - - - -第 10 页,共 48 页状态转换图是行为建模的基础3.4实体-联系图数据模型中包含 3 种相互关联的信息 :数据对象、数据对象的属性、数据对象彼此间相互连接的关系3.4状态转换图3.6.1状态状态图分类 : 表示系统循环运行过程 ,通常不关心循环是怎样启动的。表示系统单程生命期 ,需要标明初始状态和最终状态。3.6.2事件事件就是引起系统做动作或(和转换状态的控制信息。3.6.3符号3.7其他图形工具3.7.1 层次方框图3.7.2Warnier图3.7.3IPO图精选学习资料 - - - - - - - - - 名师归纳总结 - - - - -
13、 - -第 11 页,共 48 页3.8验证软件需求 (重点3.8.1 从哪些方面验证软件需求的正确性一致性完整性现实性有效性第五章总体设计5.1设计过程由两个主要阶段组成 : 系统设计阶段 ,确定系统的具体实现方案:设想供选择的方案选取合理的方案推荐最佳方案结构设计阶段 ,确定软件结构 :功能分解设计软件结构设计数据库制定测试文档书写文档审查和复查5.2设计原理5.2.1 模块化模块化的作用 : 采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。模块化使软件容易测试和调试,因而有助于提高软件的可靠性。模块化能够提高软件的可修改性。模块化也有助于软件开发工程的组织管理。5.2.2
14、抽象5.2.3逐步求精精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 48 页5.2.4信息隐藏和局部化5.2.5 模块独立尽量使用数据耦合 , 少用控制耦合和特征耦合 , 限制公共环境耦合的范围 , 完全不用内容耦合。七种内聚的优劣评分结果 : 高内聚 :功能内聚顺序内聚中内聚 :通信内聚过程内聚低内聚 :时间内聚逻辑内聚偶然内聚5.3启发规则1.改进软件结构提高模块独立性2.模块规模应该适中3.深度、宽度、扇出和扇入都应适当精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共
15、48 页4.模块的作用域应该在控制域之内5.力争降低模块接口的复杂程度6. 设计单入口单出口的模块7. 模块功能应该可以预测5.4 描绘软件结构的图形工具5.4.1 层次图和 HIPO 图1. 层次图 (H 图精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 48 页层次图用来描绘软件的层次结构。很适于在自顶向下设计软件的过程中使用。2.HIPO图5.4.2结构图5.5面向数据流的设计方法结构化设计方法 (简称 SD 方法,也就是基于数据流的设计方法。5.5.1概念面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法
16、。信息流有两种类型:变换流事务流第 6章详细设计6.1 结构程序设计经典的结构程序设计 : 只允许使用顺序、 IF-THEN-ELSE 型分支和 DO-WHILE 型循环这 3种基本控制结构 ; 扩展的结构程序设计 : 如果除了上述 3 种基本控制结构之外 ,还允许使用 DO-CASE 型多分支结构和DO-UNTIL 型循环结构 ; 修正的结构程序设计 : 再加上允许使用 LEAVE( 或 BREAK 结构。6.2人机界面设计6.2.1设计问题精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 48 页设计人机界面过程中会遇到的4 个问题
17、 : 系统响应时间 :长度易变性用户帮助设施 :集成的帮助设施附加的帮助设施出错信息处理命令交互6.2.3 人机界面设计指南一般交互指南信息显示指南数据输入指南6.3过程设计的工具6.3.1 程序流程图 (程序框图程序流程图的主要缺点 : 程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程 ,而不去考虑程序的全局结构。程序流程图中用箭头代表控制流,因此程序员不受任何约束 ,可以完全不顾结构程序设计的精神 ,随意转移控制。程序流程图不易表示数据结构。6.3.2盒图(N-S 图盒图具有下述特点 : 精选学习资料 - - - - - - - - - 名师归纳总结 - - -
18、- - - -第 16 页,共 48 页功能域明确。不可能任意转移控制。很容易确定局部和全程数据的作用域。很容易表现嵌套关系 ,也可以表示模块的层次结构。6.3.3 PAD 图它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。PAD 图的主要优点如下 : 使用表示结构化控制结构的PAD 符号设计出来的程序必然是结构化程序。PAD 图所描绘的程序结构十分清晰。PAD 图表现程序逻辑易读、易懂、易记。容易将 PAD 图转换成高级语言源程序 ,这种转换可用软件工具自动完成。即可表示程序逻辑 ,也可描绘数据结构。精选学习资料 - - - - - - - - - 名师归纳总结 -
19、- - - - - -第 17 页,共 48 页PAD 图的符号支持自顶向下、逐步求精方法的使用。6.3.4 判定表判定表却能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。判定表的缺点 : 判定表的含义不是一眼就能看出来的,初次接触这种工具的人理解它需要有一个简短的学习过程。当数据元素的值多于两个时,判定表的简洁程度也将下降。6.3.5 判定树判定树的优点 : 它的形式简单 ,一眼就可以看出其含义 ,因此易于掌握和使用。判定树的缺点 : 简洁性不如判定表 ,数据元素的同一个值往往要重复写多遍,而且越接近树的叶端重复次数越多。画判定树时分枝的次序可能对最终画出的判定树的简洁程度有较大影响
20、。6.3.6 过程设计语言 (伪码伪代码的基本控制结构 : 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 18 页,共 48 页简单陈述句结构 :避免复合语句。判定结构 :IF_THEN_ELSE 或 CASE_OF结构。选择结构 :WHILE_DO 或 REPEAT_UNTIL 结构。PDL 的优点 : 可以作为注释直接插在源程序中间。有助于保持文档和程序的一致性,提高了文档的质量。可以使用普通的正文编辑程序或文字处理系统,很方便地完成 PDL 的书写和编辑工作。已经有自动处理程序存在 ,而且可以自动由 PDL 生成程序代码。PDL 的缺点 :
21、 不如图形工具形象直观 ,描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单。6.4 面向数据结构的设计方法面向数据结构的设计方法的最终目标是得出对程序处理过程的描述。6.4.1Jackson 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 19 页,共 48 页精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 20 页,共 48 页精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 21 页,共 48 页A 由 B、C、D 3 个元素顺序组成根据条件A
22、是 B 或 C 或 D 中的某一个 A 由 B出现 N 次(N 0 组成6.4.2 改进的 Jackson图6.4.3 Jackson方法6.5 程序复杂程度的定量度量6.5.1 McCabe方法1. 流图(程序图2. 计算环形复杂度的方法V(G=流图中的区域数V(G=E-N+2 其中 E 是流图中的边数 ,N 是结点数V(G=P+1 其中 P是流图中判定结点的数目6.5.2 Halstead方法精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 22 页,共 48 页令 N1 为程序中运算符出现的总次数,N2 为操作数出现的总次数 ,程序长度 N 定
23、义为: N=N1+N2 程序中使用的不同运算符 (包括关键字的个数n1,以及不同操作数 (变量和常数的个数 n2。预测程序长度的公式如下: H = n1 log2n1 + n2 log2n2 预测程序中包含错误的个数的公式如下: E = N log2 (n1+n2/3000 第 7章实现编码和测试统称为实现。7.1编码7.1.1 选择程序设计语言主要的实用标准 : 系统用户的要求可以使用的编译程序可以得到的软件工具工程规模程序员的知识软件可移植性要求精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 23 页,共 48 页软件的应用领域7.1.2 编码
24、风格1. 程序内部的文档 :恰当的标识符适当的注解程序的视觉组织2. 数据说明3. 语句构造4. 输入输出5. 效率:程序运行时间存储器效率输入输出的效率7.2软件测试基础7.2.1 软件测试的目标测试是为了发现程序中的错误而执行程序的过程; 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; 成功的测试是发现了至今为止尚未发现的错误的测试。7.2.3 测试方法黑盒测试 (功能测试 : 把程序看作一个黑盒子 ; 完全不考虑程序的内部结构和处理过程; 是在程序接口进行的测试。白盒测试 (结构测试 : 把程序看成装在一个透明的盒子里; 精选学习资料 - - - - - - - - - 名师
25、归纳总结 - - - - - - -第 24 页,共 48 页测试者完全知道程序的结构和处理算法; 按照程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。7.2.4 测试步骤1. 模块测试 (单元测试保证每个模块作为一个单元能正确运行; 发现的往往是编码和详细设计的错误。2. 子系统测试把经过单元测试的模块放在一起形成一个子系统来测试; 着重测试模块的接口。3. 系统测试把经过测试的子系统装配成一个完整的系统来测试; 发现的往往是软件设计中的错误,也可能发现需求说明中的错误; 不论是子系统测试还是系统测试,都兼有检测和组装两重含义,通常称为集成测试。4. 验收测试 (
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年软件工程导论复习重点总结很全 2022 软件工程 导论 复习 重点 总结
限制150内