2022年软件工程导论复习重点总结很全 .docx
精品_精品资料_第 1 章软件工程学概述1.1 软件危机1.1.1 软件危机的介绍软件危机 软件萧条、软件困扰 :是指在运算机软件的开发和爱护过程中所遇到的一系列严峻问题.软件危机包含下述两方面的问题:如何开发软件 ,满意对软件日益增长的需求 ;如何爱护数量不断膨胀的已有软件.软件危机的典型表现 :1 对软件开发成本和进度的估量常常很不精确;2 用户对 “已完成的 ”软件系统不中意的现象常常发生; 3 软件产品的质量往往靠不住 ;4 软件常常是不行爱护的 ;5 软件通常没有适当的文档资料 ;6 软件成本在运算机系统总成本中所占的比例逐年上升;7 软件开发生产率提高的速度 ,远远跟不上运算机应用快速普及深化的趋势.1.1.2 产生软件危机的缘由1 与软件本身的特点有关2 与软件开发与爱护的方法不正确有关可编辑资料 - - - 欢迎下载精品_精品资料_1.1.3 排除软件危机的途径 对运算机软件有正确的熟悉.熟悉到软件开发是一种组织良好、治理严密、各类人员协同协作、共同完成的工程项目.应当推广使用在实践中总结出来的开发软件的胜利技术和方法,并连续讨论探究.应当开发和使用更好的软件工具.总之,为明白决软件危机 ,既要有技术措施 方法和工具 ,又要有必要的组织治理措施.1.21.2.1 软件工程的介绍软件工程 :是指导运算机软件开发和爱护的一门工程学科.采纳工程的概念、原理、技术和方法来开发与爱护软件 ,把经过时间考查而证明正确的治理技术和当前能够得到的最好的技术方法结合起来,以经济的开发出高质量的软件并有效的爱护它,这就是软件工程. 期中考软件工程的本质特性 :软件工程关注于大型程序的构造 软件工程的中心课题是掌握复杂性软件常常变化开发软件的效率特别重要和谐的合作是开发软件的关键软件必需有效的支持它的用户可编辑资料 - - - 欢迎下载精品_精品资料_在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人制造产品1.2.2 软件工程的基本原理用分阶段的生命周期方案严格治理坚持进行阶段评审实行严格的产品掌握 采纳现代程序设计技术结果应能清晰的审查开发小组的人员应当少而精承认不断改进软件工程实践的必要性1.2.3 软件工程方法学软件工程包括技术和治理两方面的内容.软件工程方法学 3 要素:方法、工具、过程1. 传统方法学 生命周期方法学或结构化范型 强调自顶向下2. 面对对象方法学 强调主动的多次反复迭代面对对象方法学 4 个要点:对象、类、继承、消息1.3 软件生命周期 必考三个时期八个阶段 :软件生命周期由软件定义、软件开发和运行爱护也称为软件爱护三个时期组成 ,每个时期又进一步划分成如干个阶段.可编辑资料 - - - 欢迎下载精品_精品资料_三个时期 :八个阶段 : 软件生命周期软件定义软件开发软件爱护 问题定义 可行性讨论需求分析 概要设计 具体设计编码和单元测试综合测试运行爱护系统设计系统实现1.4 软件过程1.4.1 瀑布模型可编辑资料 - - - 欢迎下载精品_精品资料_1.4.2 快速原型模型1.4.3 增量模型1.4.4 螺旋模型1.4.5 喷泉模型 第 2 章可行性讨论2.1 可行性讨论的任务可行性讨论的目的 :不是解决问题 ,而是确定问题是否值得去解决.可行性讨论的实质 :进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程.可行性讨论的内容 :第一进一步分析和澄清问题定义,导出系统的规律模型 ;然后从系统规律模型动身 ,探究如干种可供挑选的主要解法 即系统实现方案 ;对每种解法都讨论它的可行性 ,至少应当从三方面讨论每种解法的可行性.主要方面 :技术可行性 ,经济可行性 ,操作可行性 ,其他方面 :运行可行性 ,法律可行性 ,可编辑资料 - - - 欢迎下载精品_精品资料_2.2 可行性讨论过程 1.复查系统规模和目标2. 讨论目前正在使用的系统3. 导出新系统的高层规律模型4. 进一步定义问题5. 导出和评判供挑选的解法6. 举荐行动方针7. 草拟开发方案8. 书写文档提交审查2.3 系统流程图系统流程图 :是概括的描画物理系统的传统工具.表达的是数据在系统各部件之间流淌的情形 ,而不是对数据进行加工处理的掌握过程.2.4 数据流图2.4.1 符号基本符号 :可编辑资料 - - - 欢迎下载精品_精品资料_数据储备 :数据储备是处于静止状态的数据;数据流:数据流是处于运动中的数据.附加符号 :星号*: 表示“与”关系加号+:表示“或”关系异或: 表示互斥关系2.5 数据字典数据流图和数据字典共同构成系统的规律模型.2.5.1 数据字典的内容数据字典的组成 :数据流数据流重量 即数据元素 数据储备处理2.5.2 定义数据的方法方法:对数据自顶向下分解.可编辑资料 - - - 欢迎下载精品_精品资料_数据组成方式 三种基本类型 :次序挑选重复附加类型 :可选符号:=意思是等价于 或定义为 ;+意思是和 即,连接两个重量 ; 意思是或 即,从方括弧内列出的如干个重量中挑选一个,通常用“ 号| ”隔开供挑选的重量 ; 意思是重复 即,重复花括弧内的重量 ;常常使用上限和下限进一步注释表示重复的花括弧. 意思是可选 即,圆括弧里的重量可有可无.2.5.3 数据字典的实现运算机实现人工实现2.6 成本/效益分析2.6.1 成本估量 :1. 代码行技术 2. 任务分解技术3. 自动估量成本技术2.6.2 成本/效益分析的方法成本/效益分析涉及的 4 个概念:1. 货币的时间价值2. 投资回收期3. 纯收入可编辑资料 - - - 欢迎下载精品_精品资料_4. 投资回收率 :P = F1/ 1 + j + F2/ 1 + j 2 + Fn 1 + j n第 3 章需求分析需求分析的任务 :需求分析是软件定义时期的最终一个阶段,它的基本任务是精确的回答 “系统必需做什么 .”这个问题.确定系统必需完成哪些工作 ,也就是对目标系统提出完整、精确、清晰、具体的要求.系统分析员应当写出软件需求规格说明书,以书面形式精确的描述软件需求3.1 需求分析的任务 确定对系统的综合要求分析系统的数据要求 导出系统的规律模型 修正系统开发方案3.1.1 确定对系统的综合要求1.功能需求2. 性能需求3. 牢靠性和可用性需求4. 出错处理需求5. 接口需求可编辑资料 - - - 欢迎下载精品_精品资料_6. 约束7. 逆向需求8. 将来可能提出的要求3.1.2 分析系统的数据要求建立数据模型 ER 图描画数据结构 层次方框图和 Warnier 图数据结构规范化3.2 与用户沟通猎取需求的方法访谈:1. 正式访谈 2. 非正式访谈 3. 调查表 4. 情形分析技术面对数据流自顶向下求精简易的应用规格说明技术快速建立软件原型 :1 第四代技术 4GL2 可重用的软件构件 3 形式化规格说明和原型环境3.3 分析建模与规格说明3.3.1 分析建模需求分析过程应当建立 3 种模型:数据模型功能模型行为模型数据字典是分析模型的核心实体-联系图用于建立数据模型的图形数据流图是建立功能模型的基础可编辑资料 - - - 欢迎下载精品_精品资料_状态转换图是行为建模的基础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 图可编辑资料 - - - 欢迎下载精品_精品资料_3.8 验证软件需求 重点3.8.1 从哪些方面验证软件需求的正确性一样性完整性现实性有效性第五章总体设计5.1 设计过程由两个主要阶段组成 :系统设计阶段 ,确定系统的具体实现方案 :设想供挑选的方案选取合理的方案举荐正确方案结构设计阶段 ,确定软件结构 :功能分解设计软件结构设计数据库制定测试文档书写文档审查和复查5.2 设计原理5.2.1 模块化 模块化的作用 :采纳模块化原理可以使软件结构清晰 ,不仅简洁设计也简洁阅读和懂得.模块化使软件简洁测试和调试 ,因而有助于提高软件的牢靠性.模块化能够提高软件的可修改性.模块化也有助于软件开发工程的组织治理.5.2.2 抽象5.2.3 逐步求精可编辑资料 - - - 欢迎下载精品_精品资料_5.2.4 信息隐匿和局部化5.2.5 模块独立尽量使用数据耦合 ,少用掌握耦合和特点耦合 , 限制公共环境耦合的范畴 , 完全不用内容耦合.七种内聚的优劣评分结果 :高内聚:功能内聚次序内聚中内聚:通信内聚过程内聚低内聚:时间内聚规律内聚偶然内聚5.3 启示规章1. 改进软件结构提高模块独立性2. 模块规模应当适中3. 深度、宽度、扇出和扇入都应适当可编辑资料 - - - 欢迎下载精品_精品资料_4.模块的作用域应当在掌握域之内5. 力争降低模块接口的复杂程度6. 设计单入口单出口的模块7. 模块功能应当可以猜测5.4 描画软件结构的图形工具5.4.1 层次图和 HIPO 图1. 层次图 H 图可编辑资料 - - - 欢迎下载精品_精品资料_层次图用来描画软件的层次结构.很适于在自顶向下设计软件的过程中使用.2. HIPO 图5.4.2 结构图5.5 面对数据流的设计方法结构化设计方法 简称 SD 方法,也就是基于数据流的设计方法.5.5.1 概念面对数据流的设计方法把信息流映射成软件结构,信息流的类型打算了映射的方法.信息流有两种类型 :变换流事务流第 6 章具体设计6.1 结构程序设计经典的结构程序设计 :只答应使用次序、 IF-THEN-ELSE 型分支和 DO-WHILE 型循环这 3 种基本掌握结构;扩展的结构程序设计 :假如除了上述 3 种基本掌握结构之外 ,仍答应使用 DO-CASE 型多分支结构和DO-UNTIL 型循环结构 ;修正的结构程序设计 :再加上答应使用 LEAVE 或 BREAK 结构.6.2 人机界面设计6.2.1 设计问题可编辑资料 - - - 欢迎下载精品_精品资料_设计人机界面过程中会遇到的 4 个问题:系统响应时间 :长度易变性用户帮忙设施 :集成的帮忙设施附加的帮忙设施出错信息处理命令交互6.2.3 人机界面设计指南一般交互指南信息显示指南数据输入指南6.3 过程设计的工具6.3.1 程序流程图 程序框图程序流程图的主要缺点 :程序流程图本质上不是逐步求精的好工具,它诱使程序员过早的考虑程序的控制流程,而不去考虑程序的全局结构.程序流程图中用箭头代表掌握流,因此程序员不受任何约束 ,可以完全不顾结构程序设计的精神 ,随便转移掌握.程序流程图不易表示数据结构.6.3.2 盒图N-S 图盒图具有下述特点 :可编辑资料 - - - 欢迎下载精品_精品资料_功能域明确.不行能任意转移掌握.很简洁确定局部和全程数据的作用域.很简洁表现嵌套关系 ,也可以表示模块的层次结构.6.3.3 PAD 图它用二维树形结构的图来表示程序的掌握流,将这种图翻译成程序代码比较容易.PAD 图的主要优点如下 :使用表示结构化掌握结构的 PAD 符号设计出来的程序必定是结构化程序.PAD 图所描画的程序结构特别清晰.PAD 图表现程序规律易读、易懂、易记.简洁将 PAD 图转换成高级语言源程序 ,这种转换可用软件工具自动完成.即可表示程序规律 ,也可描画数据结构.可编辑资料 - - - 欢迎下载精品_精品资料_PAD 图的符号支持自顶向下、逐步求精方法的使用.6.3.4 判定表判定表却能够清晰的表示复杂的条件组合与应做的动作之间的对应关系.判定表的缺点 :判定表的含义不是一眼就能看出来的 ,初次接触这种工具的人懂得它需要有一个简短的学习过程.当数据元素的值多于两个时 ,判定表的简洁程度也将下降.6.3.5 判定树 判定树的优点 :它的形式简洁 ,一眼就可以看出其含义 ,因此易于把握和使用.判定树的缺点 :简洁性不如判定表 ,数据元素的同一个值往往要重复写多遍 ,而且越接近树的叶端重复次数越多.画判定树时分枝的次序可能对最终画出的判定树的简洁程度有较大影响.6.3.6 过程设计语言 伪码伪代码的基本掌握结构 :可编辑资料 - - - 欢迎下载精品_精品资料_简洁陈述句结构 :防止复合语句.判定结构 :IF_THEN_ELSE 或 CASE_OF 结构. 挑选结构 :WHILE_DO 或 REPEAT_UNTIL 结构.PDL 的优点:可以作为注释直接插在源程序中间.有助于保持文档和程序的一样性,提高了文档的质量.可以使用一般的正文编辑程序或文字处理系统,很便利的完成 PDL 的书写和编辑工作.已经有自动处理程序存在 ,而且可以自动由 PDL 生成程序代码.PDL 的缺点:不如图形工具形象直观 ,描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简洁.6.4 面对数据结构的设计方法面对数据结构的设计方法的最终目标是得出对程序处理过程的描述.6.4.1Jackson可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎下载精品_精品资料_A 由 B、C、D 3 个元素次序组成依据条件 A 是 B 或 C 或 D 中的某一个 A 由 B显现 N 次N 0组成6.4.2 改进的 Jackson图6.4.3 Jackson方法6.5 程序复杂程度的定量度量6.5.1 McCabe方法1. 流图程序图2. 运算环形复杂度的方法VG=流图中的区域数VG=E-N+2其中 E 是流图中的边数 ,N 是结点数VG=P+1其中 P 是流图中判定结点的数目6.5.2 Halstead方法可编辑资料 - - - 欢迎下载精品_精品资料_令 N1 为程序中运算符显现的总次数 ,N2 为操作数显现的总次数 ,程序长度 N 定义为:N=N1+N2程序中使用的不同运算符 包括关键字的个数 n1,以及不同操作数 变量和常数的个数 n2.猜测程序长度的公式如下 :H = n1 log2n1 + n2 log2n2猜测程序中包含错误的个数的公式如下 :E = N log2 n1+n2/3000第 7 章实现编码和测试统称为实现.7.1 编码7.1.1 挑选程序设计语言主要的有用标准 :系统用户的要求可以使用的编译程序可以得到的软件工具工程规模程序员的学问软件可移植性要求可编辑资料 - - - 欢迎下载精品_精品资料_软件的应用领域7.1.2 编码风格1. 程序内部的文档 :恰当的标识符适当的注解程序的视觉组织2. 数据说明3. 语句构造4. 输入输出5. 效率:程序运行时间储备器效率输入输出的效率7.2 软件测试基础7.2.1 软件测试的目标测试是为了发觉程序中的错误而执行程序的过程;好的测试方案是极可能发觉迄今为止尚未发觉的错误的测试方案;胜利的测试是发觉了至今为止尚未发觉的错误的测试.7.2.3 测试方法黑盒测试 功能测试 :把程序看作一个黑盒子 ;完全不考虑程序的内部结构和处理过程 ;是在程序接口进行的测试.白盒测试 结构测试 :把程序看成装在一个透亮的盒子里 ;可编辑资料 - - - 欢迎下载精品_精品资料_测试者完全知道程序的结构和处理算法 ;依据程序内部的规律测试程序 ,检测程序中的主要执行通路是否都能按预定要求正确工作.7.2.4 测试步骤1. 模块测试 单元测试保证每个模块作为一个单元能正确运行 ;发觉的往往是编码和具体设计的错误.2. 子系统测试把经过单元测试的模块放在一起形成一个子系统来测试;着重测试模块的接口.3. 系统测试把经过测试的子系统装配成一个完整的系统来测试;发觉的往往是软件设计中的错误,也可能发觉需求说明中的错误 ;不论是子系统测试仍是系统测试,都兼有检测和组装两重含义 ,通常称为集成测试.4. 验收测试 确认测试把软件系统作为单一的实体进行测试 ;它是在用户积极参加下进行的 ,而且可能主要使用实际数据 系统将来要处理的信息进行测试 ;发觉的往往是系统需求说明书中的错误.可编辑资料 - - - 欢迎下载精品_精品资料_5. 平行运行7.2.5 测试阶段的信息流输入信息有两类 :软件配置 ,包括需求说明书、设计说明书和源程序清单等;测试配置 ,包括测试方案和测试方案.7.3 单元测试单元测试集中检测模块 ;单元测试和编码属于软件过程的同一个阶段;可以应用人工测试和运算机测试这样两种不同类型的测试方法;单元测试主要使用白盒测试技术,对多个模块的测试可以并行的进行.7.3.1 测试重点模块接口局部数据结构重要的执行通路出错处理通路 边界条件7.3.2 代码审查由审查小组正式进行测试称为代码审查 ;一次审查会上可以发觉很多错误,可以削减系统验证的总工作量.可编辑资料 - - - 欢迎下载精品_精品资料_7.3.3 运算机测试驱动程序是一个 “主程序 ”它,接收测试数据 ,传送给被测试的模块 ,并且印出有关的结果.存根程序代替被测试的模块所调用的模块.它使用被它代替的模块的接口, 可能做最少量的数据操作 ,印出对入口的检验或操作结果 ,并且把掌握归仍给调用它的模块.7.4 集成测试集成测试是测试和组装软件的系统化技术,主要目标是发觉与接口有关的问题.由模块组装成程序时有两种方法:7.4.3 不同集成测试策略的比较混合策略 :改进的自顶向下测试方法混合法7.4.4 回来测试7.5 确认测试确认测试也称为验收测试 ,它的目标是验证软件的有效性.7.5.3 Alpha 和 Beta 测试可编辑资料 - - - 欢迎下载精品_精品资料_Alpha 测试是在受控的环境中进行的.Beta测试是软件在开发者不能掌握的环境中的“真实”应用.1. 接口测试2. 路径测试3. 功能测试4. 健壮性测试5. 性能测试6. 用户界面测试7. 信息安全测试8. 压力测试9. 牢靠性测试10. 安装/反安装测试确认测试也称为验收测试 ,它的目标是验证软件的有效性.Alpha 测试是在受控的环境中进行的.Beta测试是软件在开发者不能掌握的环境中的“真实”应用.4. 接口测试5. 路径测试6. 功能测试4. 健壮性测试5. 性能测试可编辑资料 - - - 欢迎下载精品_精品资料_6. 用户界面测试7. 信息安全测试8. 压力测试9. 牢靠性测试10. 安装/反安装测试7.6 白盒测试技术7.6.1 规律掩盖语句掩盖判定掩盖 :比语句掩盖强 ,但对程序规律的掩盖程度仍不高.条件掩盖 :判定掩盖不肯定包含条件掩盖 ,条件掩盖也不肯定包含判定掩盖.判定/条件掩盖 :有时判定 /条件掩盖也并不比条件掩盖更强.条件组合掩盖 :条件组合掩盖标准的测试数据并不肯定能使程序中的每条路径都执行到.6. 点掩盖语句掩盖标准相同7. 边掩盖判定掩盖一样8. 路径掩盖可编辑资料 - - - 欢迎下载精品_精品资料_7.6.2 掌握结构测试掩盖1. 基本路径测试基本路径测试是 Tom McCabe 提出的一种白盒测试技术.第一运算程序的环形复杂度 ;以该复杂度为指南定义执行路径的基本集合;2. 条件测试从该基本集合导出的测试用例可保证程序中的每条语句至少执行一次,而且每个条件在执行时都将分别取真、假两种值.3. 循环测试循环测试是一种白盒测试技术 ,它专心于测试循环结构的有效性.在结构化的程序中通常只有 3 种循环 ,即简洁循环、串接循环和嵌套循环.7.7 黑盒测试技术7.7.1 等价划分7.7.2 边界值分析7.7.3 错误估量7.9 软降牢靠性7.9.1 基本概念软件牢靠性 :程序在给定的时间间隔内 ,依据规格说明书的规定胜利的运行的概率.可编辑资料 - - - 欢迎下载精品_精品资料_软件的可用性 :程序在给定的时间点 ,依据规格说明书的规定 ,胜利的运行的概率.第 8 章爱护软件工程的目的是要提高软件的可爱护性,削减软件爱护所需要的工作量 ,降低软件系统的总成本.8.1 软件爱护的定义软件爱护 :在软件已经交付使用之后 ,为了改正错误或满意新的需要而修改软件的过程.可分为 4 项活动:改正性爱护适应性爱护完善性爱护预防性爱护8.2 软件爱护的特点8.2.1 结构化爱护与非结构化爱护差别庞大8.2.2 爱护的代价昂扬8.2.3 爱护的问题很多8.3 软件爱护过程1.爱护组织2. 爱护报告可编辑资料 - - - 欢迎下载精品_精品资料_3. 爱护的大事流4. 储存爱护记录5. 评判爱护活动8.4 软件的可爱护性打算软件可爱护性的因素主要有7 个:可懂得性可测试性可修改性牢靠性 可移植性可使用性效率第 9 章面对对象方法学引论9.1 面对对象方法学概述9.1.1 面对对象方法学要点1 认为客观世界是由各种对象组成的 ,任何事物都是对象2 把全部对象都划分成各种类对象 ,每个对象类都定义了一组数据和一组方法3 依据子类和父类的关系 ,把如干个对象类组成一个层次结构的系统4 对象彼此之间仅能通过传递消息相互联系可编辑资料 - - - 欢迎下载精品_精品资料_9.1.2 面对对象开发方法面对对象 =对象+类 +继承+通信9.1.4 面对对象方法组成面对对象的分析面对对象的设计面对对象的程序设计9.1.6 面对对象方法的优点1.与人类习惯的思维方式一样2.稳固性好3. 可重用性好4. 可爱护性好5. 较易开发大型软件产品9.2 面对对象的概念9.2.1 对象是客观事物或概念的抽象表述 ,即对客观存在的事物的描述统称为对象,对象可以是事、物、或抽象概念 ,是将一组数据和使用该数据的一组基本操作或过程封装在一起的实体.对象的特点1 以数据为中心.可编辑资料 - - - 欢迎下载精品_精品资料_2 对象是主动的.3 实现了数据封装.4 本质上具有并行性.5 模块独立性好.9.2.2 类是一组具有相同属性和相同操作的对象的集合.9.2.3 实例由某个特定的类所描述的一个具体的对象.9.2.4 消息向对象发出的服务恳求 相互联系、协同工作等.一个消息包含3 个部分:接收消息的对象 ,消息名 ,消息变元9.2.5 方法方法就是对象所能执行的操作 ,也就是类中所定义的服务.9.2.6 属性属性就是类中所定义的数据 ,它是对客观世界实体所具有的性质的抽象.9.2.7 封装对象封装了对象的数据以及对这些数据的操作.9.2.8 继承I继承是子类自动的共享基类中定义的数据和方法的机制.可编辑资料 - - - 欢迎下载精品_精品资料_单重继承 :子类仅从一个父类继承属性和方法多重继承 :子类可从多个父类继承属性和方法9.2.9 多态性9.2.10 重载9.3 面对对象建模 II面对对象开发软件 ,需要建立 3 种形式的模型.对象模型.描述系统数据结构 数据结构.动态模型.描述系统掌握结构 执行操作.功能模型.描述系统功能 数值变化.9.4 对象模型9.4.1 类图的基本符号 I1. 定义类可编辑资料 - - - 欢迎下载精品_精品资料_2. 定义属性可见性属性名 :类型 = 缺省值 性质串可见性 visibility 表示该属性对类外的元素是否可见.分为:public+公有的 ,即模型中的任何类都可以拜访该属性.private-私有的 ,表示不能被别的类拜访.protected#受爱护的 ,表示该属性只能被该类及其子类拜访.假如可见性未申明,表示其可见性不确定.3. 定义操作可见性操作名 参数表 :返回类型 性质串可编辑资料 - - - 欢迎下载精品_精品资料_9.4.2 表示关系的符号 I9.4.2.1 关联I关联表示两个类的对象之间存在某种语义上的联系.1 一般关联递归关联 :一个类与本身有关联关系3 限定关联可编辑资料 - - - 欢迎下载精品_精品资料_4 关联类可编辑资料 - - - 欢迎下载精品_精品资料_9.4.2.2 集合I 1 共享集合假如在集合关系中处于部分方的对象可同时参加多个处于整体方对象的构成,就该集合称为共享集合.2 组合集合假如部分类完全隶属于整体类 ,部分与整体共存 ,整体不存在了部分也会随之消失,就该集合称为组合集合.9.4.2.3 泛化I可编辑资料 - - - 欢迎下载精品_精品资料_1 一般泛化2 受限泛化预定义的约束有 4 种:多重、不相交、完全和不完全.9.4.2.4 依靠可编辑资料 - - - 欢迎下载精品_精品资料_9.4.2.5 细化9.5 动态模型9.6 功能模型9.6.1 用例图模型元素 :系统、行为者、用例及用例之间的关系 扩展关系、使用关系用例的实例是脚本第 10 章面对对象分析10.1 面对对象分析的基本过程面对对象分析 :抽取和整理用户需求并建立问题域精确模型的过程.懂得用户、分析员和领域专家表达-需求规格说明书 对象模型、动态模型、功能模型可编辑资料 - - - 欢迎下载精品_精品资料_验证二义性,完善性对象模型最基本、最重要、最核心.静态结构 对象模型3 个子模型交互次序 动态模型数据变换 功能模型复杂问题的对象模型的 5 个层次面对对象分析的过程查找类与对象识别结构识别主题定义属性建立动态模型可编辑资料 - - - 欢迎下载精品_精品资料_建立功能模型定义服务10.2 需求陈述需求陈述是阐明 “做什么 ”而,不是“怎样做 ” 问题范畴功能需求性能需求应用环境假设条件第 11 章面对对象设计11.1 面对对象设计的准就1.模块化2. 抽象3. 信息隐匿4.弱耦合耦合指不同对象之间相互关联的紧密程度.对象之间的耦合分两类 :交互耦合可编辑资料 - - - 欢迎下载精品_精品资料_假如对象之间的耦合通过消息连接来实现,就这种耦合就是交互耦合.交互耦合应尽可能松散.继承耦合与交互耦合相反 ,应当提高继承耦合程度.5. 强内聚在面对对象设计中存在下述 3 种内聚:服务内聚 :一个服务应当完成一个且仅完成一个功能.类内聚:一个类应当只有一个用途 ,它的属性和服务应当是高内聚的.一般-特别内聚 : 设计出的一般 -特别结构 ,应当符合多数人的概念6. 可重用11.2 启示规章1. 设计结果应当清晰易懂2. 一般-特别结构的深度应适当3. 设计简洁的类4. 使用简洁的协议5. 使用简洁的服务6. 把设计变动减至最小第 13 章软件项目治理软件工程方案可编辑资料 - - - 欢迎下载精品_精品资料_掌握度量软件规模估算工作量进度方案风险治理质量保证配置治理组织明确软件开发的目标供应组织机构和资源配置方面的保证保证开发目标的实现技术治理13.1 估算软件规模13.1.1 代码行技术 估算方法: 由多名有体会的软件工程师分别做出估量.每个人都估量程序的最小规模 a、最大规模 b 和最可能的规模 m, 分别算出这 3 种规模的平均值之后,再用下式运算程序规模的估量值:单位: LOC 或 KLOC . 代可编辑资料 - - - 欢迎下载精品_精品资料_码行技术的优点: 代码是全部软件开发项目都有的“产品”,而且很简洁运算代码 行数. 有大量参考文献和数据. 代码行技术的缺点: 源程序仅是软件配置的一个成分,由源程序度量软件规模不太合理.用不同语言实现同一个软件所需要的代 码行数并不相同. 不适用于非过程性语言. 13.1.2 功能点技术 功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模.这种方法用功能点 FP 为单位度量软件规模. 1. 信息域特性 输入项数 Inp、输出项数 Out、查询数 Inq、主文件数 Maf、外部接口数 Inf 每个特点依据其复杂程度安排一个功能点数,即信息域特点系数 a1,a2, a3,a4, a5 2. 估算功能点的步骤 1 运算未调整的功能点数UFP UFP=a1×Inp+a2 ×Out+a3×Inq+a4 ×Maf+a5×Inf 2 运算技术复杂性因子 TCF 技术因素对软件规模的综合影响程度DI: 技术复杂性因子 TCF 由下式运算: TCF =0.65 + 0.01DI×由于 DI 的值在 070 之间,所以 TCF 的值在 0.651.35 之间. 3运算功能点数 FP FP = UFP ×TCF 功能点技术优点:与所用的编程语言无关,比代码行技术更合理. 功能点技术缺点: 在判定信息域特性复杂级别和技术因素的影响程度时主观因素较大, 对经 验依靠性较强. 13.2 工作量估算13.2.1 静态单变量模型 E ev 是估算变量( KLOC 或 FP). 13.2.2 动态多变量模型aKLOCbf i i1 E = A + B×ev C 17 动态多变量模型也称为软件方程式, 该模型把工作量看作是软件规模和开发时间这两个变量的函数.E=LOC×B0.333/P3 ×1/t4 13.2.3 COCOMO2 模型(构造性成本模型) 3 个层次的估算模型: 应用系统组成模型: 这个模型主要用于估算构建原型的工作量,模型名字示意在构建原型时 大量使用已有的构件. 早期设计模型:这个模型适用于体系结构设计阶段. 后体系结构模型:这个模型适用于完成体系结构设计之后的软件开发阶段. COCOMO2 使用的 5 个分级因素:项目先例性、开发敏捷性、风险排除度、项目组凝结力、过 程成熟度