计算机二级软件工程精选文档.ppt
《计算机二级软件工程精选文档.ppt》由会员分享,可在线阅读,更多相关《计算机二级软件工程精选文档.ppt(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机二级软件工程计算机二级软件工程本讲稿第一页,共七十三页第第3章章 软件工程基础软件工程基础l3.1软件工程的基本概念l3.2结构化分析方法l3.3结构化设计方法l3.4软件测试l3.5程序的调试本讲稿第二页,共七十三页3.1 软件工程基本概念软件工程基本概念l软件定义与软件特点l软件危机与软件工程l软件工程过程与软件生命周期l软件工程的目标与原则l软件开发工具与开发环境本讲稿第三页,共七十三页软件定义软件定义软件定义:软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及其相关文档组成的完整集合。软件软件=程序程序+数据数据+文档文档软件按功能分为应用软件应用软件、系统软件系统软
2、件、支撑软件(或工具软件)支撑软件(或工具软件)(1)软件是指A)程序B)程序和文档C)算法加数据结构D)程序、数据和相关文档的集合答案:D本讲稿第四页,共七十三页软件危机软件危机软件危机:泛指在软件的开发和维护过程中所遇到的一系列严重问题。总之,可以将软件危机归结为成本、质量、生产率等问题。本讲稿第五页,共七十三页软件工程软件工程软件工程三要素:方法、工具、过程。方法:完成软件工程项目的技术手段;工具:支持软件的开发、管理、文档生成;过程:支持软件开发的各个环节的控制、管理。3)软件工程三要素方法包括工具、方法和过程,其中支持软件开发的各个环节的控制和管理过程(5)下列描述中正确的是A)软件
3、工程只是解决软件项目的管理问题B)软件工程主要解决软件产品的生产率问题C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D)软件工程只是解决软件开发中的技术问题答案:C软件工程就是试图用工程、科学和数学的大批量与方法研制、维护计算机软件的有关技术及管理方法。软件工程的核心思想:把软件产品看作是一个工程产品来处理。软件工程包括两方面的内容:软件开发技术 软件工程管理本讲稿第六页,共七十三页软件工程过程与软件生命周期软件工程过程与软件生命周期l软件工程过程:把输入转化为输出的一组彼此相关的资源和活动。(通常把用户的要求转变为软件产品的过程也叫做软件开发过程).l软件生命周期:将软件产品
4、从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。l软件生命周期的三个阶段:定义阶段(可行性研究、需求分析)定义阶段(可行性研究、需求分析)开发阶段(概要设计、详细设计、编码、测试)开发阶段(概要设计、详细设计、编码、测试)运行维护阶段(使用、维护、退役)运行维护阶段(使用、维护、退役)3.下列选项中不属于软件生命周期开发阶段任务的是A)软件测试B)概要设计C)软件维护D)详细设计答案:C本讲稿第七页,共七十三页软件工程的目标与原则软件工程的目标与原则l软件工程的目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互
5、操作性且满足用户需求的产品。l软件工程的原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性、可验证性返回返回本讲稿第八页,共七十三页软件开发工具与软件开发环境软件开发工具与软件开发环境l软件开发工具:为软件工程方法提供了自动的或半自动的软件支撑环境。l软件开发环境:是全面支持软件开发全过程的软件工具集合。这些软件工具按照一定的方法或模式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。l l计算机辅助软件工程(计算机辅助软件工程(CASECASEComputerAidedSoftwareComputerAidedSoftwareEngineeringEngineering)是当
6、前软件开发环境中富有特色的研究工作是当前软件开发环境中富有特色的研究工作和发展方向。和发展方向。本讲稿第九页,共七十三页3.2 结构化分析方法结构化分析方法l需求分析与需求分析方法l结构化分析方法l软件需求规格说明书本讲稿第十页,共七十三页需求分析方法需求分析方法l结构化分析方法l面向数据流的结构化分析方法(SA)l面向数据结构的Jackson方法(JSD)l面向数据结构的结构化数据系统开发方法(DSSD)l面向对象的分析方法(OOA)按模型特性分类:l静态分析方法l动态分析方法本讲稿第十一页,共七十三页需求分析需求分析l软件需求:指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。
7、l需求分析任务:发现需求、求精、建模和定义需求的过程。l需求分析阶段的工作:|需求获取|需求分析|编写需求规格说明书|需求评审返回返回本讲稿第十二页,共七十三页结构化分析方法结构化分析方法l含义:是结构化程序设计理论在软件需求分析阶段的运用。l目的:帮助弄清用户对软件的需求。l实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。本讲稿第十三页,共七十三页结构化结构化分析分析的常用工具的常用工具l数据流图(DataFlowDiagram)DFD数据流图是描述数据处理过程的工具,从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过
8、程。加工数据流存储文件源(潭)l数据字典(Data Dictionary,DD)是结构化分析方 法的另一种有力工具,在数据字典中建立的一组严密一 致的定义有助于消除分析员和用户之间的沟通障碍,因 此将消除许多可能的误解。l判定树l判定表本讲稿第十四页,共七十三页表表3-1数据流图的基本符号数据流图的基本符号 符符 号号含含 义义数据的源点或终点数据的源点或终点数据流数据流或或数据存储数据存储加工加工本讲稿第十五页,共七十三页图图3-2 工资计算系统的顶层数据流图工资计算系统的顶层数据流图本讲稿第十六页,共七十三页l5)数据流图中带有箭头的线段表示的是lA)控制流B)事件驱动C)模块调用D)数据
9、流l6)在软件开发中,需求分析阶段可以使用的工具是lA)N-S图B)DFD图C)PAD图D)程序流程图D(5)在结构化分析使用的数据流图(DFD)中,利用_对其中的图形元素进行确切解释。答案:B数据字典本讲稿第十七页,共七十三页软件需求规格说明书软件需求规格说明书l含义(SRS):是需求分析阶段的最后成果,是软件开发中的重要文档之一。l作用:l便于用户、开发人员进行理解和交流;l反映出用户问题的结构,可以作为软件开发工作的基础和依据;l作为确认测试和验收的依据;l特点:正确性、完整性、确定性、一致性、可理解性、可验证性、课修改、可追踪性。本讲稿第十八页,共七十三页3.3 结构化结构化设计设计方
10、法方法l软件设计的基本概念l概要设计l详细设计本讲稿第十九页,共七十三页软件设计的基本概念软件设计的基本概念l软件设计基础l软件设计的基本原理l结构化设计方法本讲稿第二十页,共七十三页软件设计基础软件设计基础l软件设计的目标:用比较抽象概括的方式确定目标系统如何完成预定的任务,即确定系统的物理模型。l分类:概要设计和详细设计返回返回本讲稿第二十一页,共七十三页软件设计的基本原理软件设计的基本原理l抽象:就是提取出事物的本质特征而暂时不考虑它们的细节。l模块化l信息隐蔽:在一个模块内包含的信息,对于不需要这些信息的其他模块来说是不能访问的。l模块独立性:每个模块只完成系统要求的独立的子功能,并且
11、与其他模块的联系最少且接口简单。(模块独立程度是评价设计好坏的重要度量标准)本讲稿第二十二页,共七十三页模块独立性模块独立性l内聚性:一个模块内部各个元素间彼此结合的紧密程度的度量。分类如下:(由弱到强)l偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚l耦合性:模块间相互连接的紧密程度的度量。分类如下(由高到低)l内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合l优秀的设计:尽量做到高内聚、低耦合。(3)软件设计中模块划分应遵循的准则是A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合答案:B本讲稿第二十三页,共七十三页结构化设计方法结
12、构化设计方法l含义:结构化设计方法与结构化分析方法相对应,它是采用最佳的可能方法设计系统的各个组成部分以及各成分之间的内部联系的技术。l基本思想:将软件设计成由相对独立、单一功能的模块组成的结构。本讲稿第二十四页,共七十三页概要设计概要设计l概要设计的任务:l设计软件系统结构l数据结构及数据库设计l编写概要设计文档l概要设计文档评审l常用软件结构设计工具:结构图(SC)一般模块数据信息控制信息本讲稿第二十五页,共七十三页概要设计概要设计l l面向数据流的设计方法1.数据流的类型:l变换型:取得数据、变换数据、输出数据l事务型:接受事务、分析确定其类型、选取活动通路2.设计过程:第一,分析、确认
13、数据流图的类型;第二,说明数据流的边界;第三,把数据流映射为程序结构;第四,根据设计准则对产生的结构进行细化和求精。本讲稿第二十六页,共七十三页概要设计概要设计l设计的准则:提高模块的独立性;模块规模适中;深度、宽度、扇出和扇入适当;顶层高扇出、中间扇出较少、底层高扇入顶层高扇出、中间扇出较少、底层高扇入使模块的作用域在该模块的控制域内;应减少模块的接口和界面的复杂性;设计成单入口、单出口的模块;设计功能可预测的模块返回返回返回返回本讲稿第二十七页,共七十三页详细设计详细设计 详细设计:在概要设计阶段完成了软件系统的总体设计,规定了各个模块的功能及模块之间的联系之后,进一步就要考虑实现各个模块
14、规定的功能,也就是进行软件的详细设计,也称为过程设计。在详细设计阶段,要根据概要设计对每个模块的定义进行设计,以实现指定的功能、算法和外部接口所要求的模块内部的数据结构和程序的逻辑结构。本讲稿第二十八页,共七十三页 详细设计详细设计 模块设计要完成的工作包括:l详细的算法过程设计l内部数据结构设计l程序逻辑结构设计当前流行的表示程序逻辑结构的主要方式有:l图形描述(程序流程图、N-S图及PAD图)l语言描述(PDL)本讲稿第二十九页,共七十三页详细设计详细设计 程序流程图:程序流程图(Program Flow Chart)又称为程序框图,是软件设计中经常使用的一种算法表达工具。它独立于程序设计
15、语言,较为直观、清晰,易于学习掌握。控制流 加工步骤 逻辑条件本讲稿第三十页,共七十三页详细设计详细设计 N-S图(盒图)N-S图也称盒图(Box-Diagram),是一种符合结构化程序设计原则的图形描述工具。如下图所示为选择结构的NS图。条件条件THENELSE本讲稿第三十一页,共七十三页图图3-10 盒图的基本符号盒图的基本符号本讲稿第三十二页,共七十三页详细设计详细设计 PAD图:(Problem Analysis Diagram,问题分析图),是用结构化程序设计思想表现程序逻辑结构的图形工具。用PAD所表达的程序,结构清晰并且结构化程度高。作为一种详细设计的工具,它比流程图更易读,且由
16、于PAD是一种树形结构,比流程图更容易在计算机上处理,容易将PAD图转换成程序。另外,PAD除了可以描述程序的逻辑结构,还可以描述数据结构。程序开始于最左主干程序开始于最左主干线线,结结束于最左主干束于最左主干线线。本讲稿第三十三页,共七十三页PAD图示例图示例A1A2A3An条件多多分分支支选选择择结结构构本讲稿第三十四页,共七十三页图图3-11 PAD图的基本符号图的基本符号本讲稿第三十五页,共七十三页详细设计详细设计PDL(Procedure Design Language)PDL是一种用于描述功能模块的算法设计和加工细节的语言,称为过程设计语言。它是一种混合语言,采用英语的词汇和结构化
17、程序设计语言的语法,类似编程语言。本讲稿第三十六页,共七十三页3.4 软件测试软件测试l软件测试的目的l软件测试的准则l软件测试技术与方法l软件测试的实施本讲稿第三十七页,共七十三页软件测试的目的软件测试的目的l软件测试的定义:软件测试是为了发现错误而执行程序的过程。l软件测试的目的l 测试是程序的执行过程,目的在于发现错误;l 一个好的测试用例在于能发现至今未发现的错误;l 一个成功的测试是发现了至今未发现的错误的测试。返回返回本讲稿第三十八页,共七十三页软件测试的准则软件测试的准则所有测试都应追溯到需求;严格执行测试计划,排除测试的随意性;充分注意测试中的群集现象;程序员应避免检查自己的程
18、序;穷举测试不可能;妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。返回返回本讲稿第三十九页,共七十三页软件测试技术与方法软件测试技术与方法测试技术分类:l按是否需要执行被测软件分:静态测试:代码检查、结构分析等。(人工测试或借助软件工具)动态测试:设计高效、合理的测试用例是关键。l按功能划分:白盒测试和黑盒测试。(注意:白盒测试和黑盒测试均属于动态测试)本讲稿第四十页,共七十三页白盒测试白盒测试 软件的白盒测试是把测试对象看作一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。白盒测试又称为结构测试或逻辑驱动测试
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 软件工程 精选 文档
限制150内