软件工程导论复习重点总结很全

上传人:新** 文档编号:509999730 上传时间:2023-12-04 格式:DOCX 页数:25 大小:220.28KB
返回 下载 相关 举报
软件工程导论复习重点总结很全_第1页
第1页 / 共25页
软件工程导论复习重点总结很全_第2页
第2页 / 共25页
软件工程导论复习重点总结很全_第3页
第3页 / 共25页
软件工程导论复习重点总结很全_第4页
第4页 / 共25页
软件工程导论复习重点总结很全_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《软件工程导论复习重点总结很全》由会员分享,可在线阅读,更多相关《软件工程导论复习重点总结很全(25页珍藏版)》请在金锄头文库上搜索。

1、第 1章 软件工程学概述1.1 软件危机1.1.1 软件危机的介绍软件危机 (软件萧条、 软件困扰 ) :是指在计算机软件的开发和维护过程中所遇到的一系列严 重问题。软件危机包含下述两方面的问题: 如何开发软件,满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。软件危机的典型表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及

2、深入的趋势。1.1.2 产生软件危机的原因(1)与软件本身的特点有关 (2)与软件开发与维护的方法不正确有关1.1.3 消除软件危机的途径对计算机软件有正确的认识。认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。 应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。 应该开发和使用更好的软件工具。总之,为了解决软件危机,既要有技术措施 ( 方法和工具 ) ,又要有必要的组织管理措施。1.21.2.1 软件工程的介绍期中软件工程: 是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和 方法来开发与维护软件, 把经过时间考验而证明

3、正确的管理技术和当前能够得到的最好的技 术方法结合起来,以经济地开发出高质量的软件并有效地维护它, 这就是软件工程。 ( 考)软件工程的本质特性: 软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效地支持它的用户 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品1.2.2 软件工程的基本原理用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性123 软件工程方法学软件工程包括技术

4、和管理两方面的内容。软件工程方法学3要素:方法、工具、过程1传统方法学(生命周期方法学或结构化范型 )一一强调自顶向下2. 面向对象方法学强调主动地多次反复迭代面向对象方法学 4个要点:对象、类、继承、消息1.3 软件生命周期(必考)三个时期八个阶段:软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)三个时期组成,每个时期又进一步划分成若干个阶段。三个时期:八个阶段:软件定义问题定义-可行性研究需求分析软件生命周期软件开发编码和单元测试综合测试系统实现软件维护运行维护1.4 软件过程1.4.1 瀑布模型1.4.2 快速原型模型1.4.3 增量模型1.4.4 螺旋模型1.4.5 喷泉模

5、型可行性研究2.1可行性研究的任务可行性研究的目的:不是解决问题,而是确定问题是否值得去解决。可行性研究的实质:进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。(即系统实现方案);可行性研究的内容: 首先进一步分析和澄清问题定义,导出系统的逻辑模型; 然后从系统逻辑模型出发,探索若干种可供选择的主要解法对每种解法都研究它的可行性,至少应该从三方面研究每种解法的可行性 主要方面:技术可行性,经济可行性,操作可行性,其他方面:运行可行性,法律可行性,2.2 可行性研究过程1. 复查系统规模和目标2. 研究目前正在使用的系统3. 导出新系统的

6、高层逻辑模型4. 进一步定义问题5. 导出和评价供选择的解法6. 推荐行动方针7. 草拟开发计划8. 书写文档提交审查2.3 系统流程图系统流程图:是概括地描绘物理系统的传统工具。表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程。2.4数据流图2.4.1 符号基本符号:数据的源点/终点变揽数摇的处理数掘存储数据涼数据存储:数据存储是处于静止状态的数据; 数据流:数据流是处于运动中的数据。附加符号:星号(*):表示“与”关系加号(+):表示“或”关系异或():表示互斥关系2.5数据字典数据流图和数据字典共同构成系统的逻辑模型。2.5.1 数据字典的内容数据字典的组成:数

7、据流数据流分量(即数据元素)数据存储 处理2.5.2定义数据的方法方法:对数据自顶向下分解。数据组成方式(三种基本类型):顺序 选择 重复 附加类型:可选符号:=意思是等价于 ( 或定义为 ) ;+意思是和 ( 即,连接两个分量 ) ; 意思是或 (即,从方括弧内列出的若干个分量中选择一个 ) ,通常用“ | ”号隔开供选择 的分量; 意思是重复 ( 即,重复花括弧内的分量 ) ;常常使用上限和下限进一步注释表示重复的花 括弧。( ) 意思是可选 ( 即,圆括弧里的分量可有可无 ) 。2.5.3 数据字典的实现计算机实现 人工实现2.6 成本 / 效益分析2.6.1成本估计 : 1. 代码行技

8、术 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 需求分析的任务确定对系统的综合要求分析

9、系统的数据要求导出系统的逻辑模型 修正系统开发计划3.1.1 确定对系统的综合要求1. 功能需求2. 性能需求3. 可靠性和可用性需求4. 出错处理需求5. 接口需求6. 约束7. 逆向需求8. 将来可能提出的要求3.1.2 分析系统的数据要求建立数据模型一一ER图 描绘数据结构层次方框图和 Warnier 图数据结构规范化3.2 与用户沟通获取需求的方法访谈:1.正式访谈2.非正式访谈3.调查表4. 情景分析技术面向数据流自顶向下求精简易的应用规格说明技术快速建立软件原型:(1)第四代技术(4GL)(2)可重用的软件构件(3)形式化规格说明和 原型环境3.3分析建模与规格说明3.3.1 分析

10、建模需求分析过程应该建立 3种模型:数据模型功能模型行为模型数据字典是分析模型的核心实体-联系图用于建立数据模型的图形数据流图是建立功能模型的基础状态转换图是行为建模的基础3.4实体-联系图数据模型中包含3种相互关联的信息:数据对象、数据对象的属性、数据对象彼此间相互连 接的关系3.4状态转换图3.6.1 状态状态图分类:表示系统循环运行过程,通常不关心循环是怎样启动的。表示系统单程生命期,需要标明初始状态和最终状态。3.6.2事件事件就是引起系统做动作或(和)转换状态的控制信息。3.6.3 符号初件狀离14K卜凰迖式结滾44件狀盍0胡1橋切表1活功我2S/3.7其他图形工具3.7.1层次方框

11、图3.7.2Warnier 图3.7.3IPO图3.8验证软件需求(重点)3.8.1 从哪些方面验证软件需求的正确性一致性 完整性 现实性 有效性第五章 总体设计5.1 设计过程由两个主要阶段组成:系统设计阶段, 确定系统的具体实现方案: 设想供选择的方案 选取合理的方案 推荐最佳 结构设计阶段,确定软件结构 : 功能分解 设计软件结构 设计数据库 制定测试文档 书写文档 审查和复查5.2 设计原理5.2.1 模块化模块化的作用: 采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。 模块化使软件容易测试和调试,因而有助于提高软件的可靠性。 模块化能够提高软件的可修改性。模块化也有

12、助于软件开发工程的组织管理。5.2.2 抽象5.2.3 逐步求精5.2.4 信息隐藏和局部化5.2. 5 模块独立尽量使用数据耦合, 少用控制耦合和特征耦合, 限制公共环境耦合的范围,完全不用内容耦合。七种内聚的优劣评分结果: 高内聚:功能内聚顺序内聚中内聚:通信内聚过程内聚低内聚:时间内聚逻辑内聚偶然内聚5.3 启发规则1. 改进软件结构提高模块独立性2. 模块规模应该适中3. 深度、宽度、扇出和扇入都应适当4.6.7.6.7.5.力争降低模块接口的复杂程度 设计单入口单出口的模块 模块功能应该可以预测5.4描绘软件结构的图形工具5.4.1 层次图和HIP0图1. 层次图(H图)层次图用来描

13、绘软件的层次结构。很适于在自顶向下设计软件的过程中使用。2. HIPO 图7.4.2结构图7.5面向数据流的设计方法结构化设计方法(简称SD方法),也就是基于数据流的设计方法。5.5.1 概念面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法。 信息流有两种类型:变换流事务流第6章详细设计6.1 结构程序设计经典的结构程序设计:只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILES循环这3种基本控制结构;扩展的结构程序设计:如果除了上述3种基本控制结构之外,还允许使用 DO-CASE型多分支结构和DO-UNTIL型循 环结构;修正的结构程序设计 :再加上允许使

14、用 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 图它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。(1.1IhiPAD图的主要优点如下:使用表示结构化控制结构的PAD符号设计出来的程序必然是结构化程序。PAD图所描绘的程序结构十分清晰。PAD图表现程序逻辑易读、易懂、易记。容易将PAD图转

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号