软件工程基础_第1页
软件工程基础_第2页
软件工程基础_第3页
软件工程基础_第4页
软件工程基础_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程基础考核知识点软件工程的基本概念。软件生命周期的概念。软件工具与软件开发环境。结构化分析方法。软件需求规格说明。结构化设计方法。总体设计与详细设计。模块的独立性。软件测试的方法,软件测试的目的和准则,软件测试的实施。程序的调试、静态调试与动态调试。重点考点提示软件定义与软件特点,软件危机与软件工程。软件生命周期定义,软件工程的目标与原则,软件开发工具和环境。需求分析工作与需求分析方法。结构化分析步骤、常用工具(数据流图、数据字典、判断树、判定表),软件需求规格说明书。白盒测试与黑盒测试,测试用例设计,软件测试的实施。单元测试、集成测试、确认测试、系统测试。程序调试的基本步骤、原则。程序

2、调试方法。3.1 软件工程基本概念考点1 软件的定义与软件的特点1、软件的组成:程序、数据和有关文档。2、软件的特点:逻辑产品、成本在开发和研制上、不存在磨损和消耗、软件依赖计算机系统、开发维护成本高、软件开发涉及到诸多社会因素。3.1 软件工程基本概念考点2:软件危机与软件工程1、软件的产生和发展:软件的生产的发展经历了程序设计时代、程序系统时代和软件工程时代。2、软件危机: (成本、质量、生产率)软件需求的增长的不到满足;软件开发成本和进度无法控制软件质量难以保证软件不可维护或维护程度非常低软件成本不断提高软件开发生产效率的提高赶不上硬件的发展和应用需求的增长。3.1 软件工程基本概念考点

3、2:软件危机与软件工程3、软件工程的产生1968年和1969年北大西洋公约组织。3个要素:方法、工程和过程。软件工程包括:软件开发技术;软件工程管理。3.1 软件工程基本概念考点3:软件工程过程ISO9000定义:把输入转化为输出的一组彼此相关的资源和活动。4种基本活动“PDCA四个活动”:软件规格说明;软件开发;软件确认;软件演进。3.1 软件工程基本概念考点4:软件生命周期软件产品从提出、实现、使用维护到停止使用退役的过程称为软件的生命周期。可行性研究初步项目计划需求分析概要设计维护详细设计实现测试使用退役软件生命周期软件生命周期的瀑布模型计划需求分析设计实现测试运行-维护定义阶段开发阶段

4、维护阶段需求规格说明书概要设计文档详细设计文档测试报告3.1 软件工程基本概念考点5:软件工程的目标与原则1、软件工程的目标软件开发技术软件工程管理2、软件工程的原则抽象;信息屏蔽;模块化;局部化;确定性;一致性;完备性;可验证性。3.1 软件工程基本概念考点6:软件开发工具与软件开发环境软件开发工具软件开发工具是协助开发人员进行软件开发活动所使用的软件或环境,它包括需求分析工具、设计工具、排错工具、测试工具等。软件开发环境软件开发环境是指支持软件产品的软件系统,它由软件工具集和环境集成机制构成。3.2 结构化分析方法考点7 可行性分析经济可行性分析;技术可行性分析;法律可行性分析;开发方案的

5、选择性研究;3.2 结构化分析方法考点8 需求分析方法1、需求分析:用户对目标软件系统功能、行为、性能、设计约束等方面的期望。2、需求分析方法:结构化分析方法(JSD):Jackson方法,面向数据结构的结构的结构化数据系统开发方法。面向对象的分析方法(OOA):从需求分析建立的模型特性来分,静态/动态分析方法。3.2 结构化分析方法考点9 :结构化分析方法 着眼于数据流、自顶向下、逐层分解,建立系统流程。步骤:获得集体模型;抽象逻辑模型;建立模型;写出说明;评审。考点10 :结构化分析常用工具(1)数据流图(DFD)数据流加工存储文件源考点10 :结构化分析常用工具银行取款业务数据流图(DF

6、D图)考点10 :结构化分析常用工具(2)数据字典(DD) 数据字典是对所有与系统相关的数据元素的一个有组织的列表,以精确的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。考点10 :结构化分析常用工具数据字典定义中出现的符号(图)实例:“存折”的DD定义如下考点10 :结构化分析常用工具(3)判定树 依据判定条件之间关系(从属、并列、选择),构造判定树。考点10 :结构化分析常用工具“检查发货单”判定树(图) 考点10 :结构化分析常用工具(4)判定表 判定表与判定树相似,是树的表的表现形式有四个部分组成。 1234基本条件基本动作条件项动作项考点10 :结构化

7、分析常用工具“检查发货单”判定表(图) 3.2.3 软件需求规格说明书软件需求规格说明书(SRS)是需求分析阶段的最后成果。(见开发文档)软件需求规格说明书的作用便于用户、开发人员进行理解和交流反映出用户问题的结构,可以作为软件开发工作的基础和依据。作为确认测试和验收的依据软件需求规格说明书的特点: (1)正确性;(2)无岐义性;(3)完整性; (4)可验证性;(5)一致性;(6)可理解性; (7)可追踪性。 3.3 结构化设计方法3.3.1:软件设计的基本概念软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,软件设计是确定系统的物理模型。软件设计是开发阶段最重要的步骤,

8、是将需求准确地转化为完整的软件产品或系统的唯一途径。简单讲:确定“如何做”的问题。从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。 软件设计包括结构设计:定义软件系统各主要部件之间的关系。数据设计:将分析时创建的模型转化为数据结构的定义。接口设计:描述软件内部、软件和协作系统之间以及软件与人之间如何通信。过程设计:把系统结构部件转换成软件的过程描述。软件设计的一般过程从工程管理角度来看:概要设计和详细设计。软件设计的一般过程:软件设计是一个迭代的过程;先进行高层次的结构设计;后进行低层次的过程设计;穿插进行数据设计和接口设计。*重要性和地位包括:开发阶段是质量的关键;设

9、计阶段是最重要的步骤;设计最终影响成败;设计是软件工程和维护的基础。3.3. 2 软件设计的基本原理抽象:提取特征模块化:分解信息隐蔽:信息对于其他模块不能访问模块独立性: 联系少且功能简单。(详解见下一页)模块独立性:衡量软件模块独立性使用耦合性和内聚性两个定性的度量标准。内聚性:一个模块内部各个元素之间彼此结合的紧密程度的度量。(偶然内聚最弱、功能内聚最强)耦合性:模块之间互相连接的紧密程度的度量。(非直接耦合最弱、内容耦合最强)在程序结构中各模块的内聚性越强,则耦合性越弱。优秀软件应高内聚,低耦合。 3.3.3结构化设计方法*概要设计任务软件概要设计的基本任务是: (1)设计软件系统结构

10、; (2)数据结构及数据库设计; (3)编写概要设计文档; (4)概要设计文档评审。 常用结构设计工具结构图(SC),也叫程序结构图。 模块用一个矩形表示,箭头表示模块间的调用关系。在结构图中还可以用带注释的箭头表示模块调用过程中来回传递的信息。还可用带实心圆的箭头表示传递的是控制信息,空心圆箭心表示传递的是数据。 一般模块数据信息控制信息结构图的基本形式一般模块数据信息控制信息基本图符ABABABCDABD基本形式重复形式顺序形式选择形式结构图有四种模块类型结构图有四种模块类型:传入模块、传出模块、变换模块和协调模块。下至上上至下上至上下至下3.3.2-2 面向数据流的设计方法典型的数据流类

11、型有两种:变换型和事务型。 变换型系统结构图由输入、中心变换、输出三部分组成。 事务型数据流的特点是:接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。变换型映射成程序结构图,称为变换分析。图3.14将事务型映射成程序结构图,又称为事务分析。图3.16提高模块独立性模块规模适中深度、宽度、扇出(管理)、扇入(共享)适度。使模块的作用域在管理域之内减少模块接口和界面的复杂性设计单入口、单出口模块设计功能可预测模块软件结构设计的优化准则(设计准则)3.3.3 详细设计1) 详细设计的基本任务是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具

12、表示算法和数据结构的细节。P672) 常见设计工具:程序流程图(PFD)、方框图(N-S)、问题分析图(PAD)、PDL(结构化英语和伪码)程序流程图(PFD)(控制流,加工步骤,逻辑条件)程序流程图(PFD)(实例)(控制流,加工步骤,逻辑条件)方框图N-S任务1任务2任务3条件ELSETHEN条件=1 =2 =nA1 A2 An循环体循环条件循环条件循环体顺序型选择型多分支型UNTIL重复型WHILE重复型方框图(N-S)(实例)问题分析图PAD(5种基本控制结构)ABAB条件A1条件A2A3AnWHILEAUNTILA顺序型选择型多分支型UNTIL重复型WHILE重复型问题分析图(PAD

13、):实例PDL(结构化英语和伪码) PDL表示基本控制结构的常用词汇顺序:条件:IF/THEN/ELSE/ENDIF循环:DO WHILE/ENDDO循环:REPEAT UNTIL/ENDREPEAT分支:CASE_OF/WHEN/SELECT/WHEN /SELECT/ENDCASE3.4 软件的测试软件测试定义:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。 测试的目的:尽可能多地发现软件产品中的错误和缺陷。测试的准则:(详见后)测试技术与方法按是否执行:静态测试和动态测试。 (详见后) 按功能划分:白盒测试和黑盒测试

14、: (详见后)测试的准则所有测试都应回溯到需求严格执行计划,排除随意性充分注意测试中的群集现象程序员应避免检查自己的程序穷举测试不可能保存测试资料静态测试和动态测试静态测试包括代码检查、静态结构分析、代码质量度量。不实际运行软件,主要通过人工进行。动态测试:是基于计算机的测试,主要包括白盒测试方法和黑盒测试方法。P72测试用例是为了进行动态测试而设计的数据,由测试用的输入数据和对应的输出结果组成。白盒测试和黑盒测试白盒测试:在程序内部进行,主要用于完成软件内部操作的验证。主要方法有逻辑覆盖、基本路径测试。P72白盒测试的局限性:书P72 是穷举路径测试,不能查出:程序违反设计规范;程序中遗漏的

15、路径;与数据相关错误。白盒测试之逻辑覆盖测试语句覆盖:使被测试程序的每个语句至少执行一次。路径覆盖:程序中的每个可能执行到的路径至少经过一次。判定覆盖:测试用例使得每个判定的所有可能结果至少出现一次。条件覆盖:测试用例使得判定中的每一个条件的所有可能结果至少出现一次。判定/条件覆盖:测试用例使得判定中的每个条件和每个判定本身的所有可能结果至少出现一次。1、语句覆盖2、路径覆盖3、判定覆盖每个条件至少执行一次4、条件附盖5、判断-条件覆盖白盒测试之基本路径测试基本路径测试:测试用例对每一条独立执行路径进行测试。2.黑盒测试:主要诊断功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误

16、、初始化和终止条件错,用于软件确认。 主要方法有: 等价类划分法、 边界值分析法、 错误推测法、 因果图等。.黑盒测试3.4.4 软件测试的实施步骤任务和目的测试对象方法依据单元测试发现模块错误模块静态和白盒动态详细设计说明书及程序集成测试发现接口错误接口、全局数据结构、边界输入黑盒测试概要设计说明书确认测试验证性能与功能整个软件黑盒测试需求规格说明书系统测试真实环境性能功能整个系统包括软硬多种需求规格说明书单元测试/集成测试单元测试需要驱动模块和桩模块。集成测试中如果采用自顶向下则需要桩模块、采用自底向上则需要驱动模块。单元测试集成测试集成测试3.5 调试1、任务 诊断和改正程序中的错误,主

17、要在开发阶段进行。2、基本步骤错误定位。即确定程序中可疑错误的确切性质和位置修改设计和代码,排除错误进行回归测试,防止引进新的错误。3.5 调试软件调试可分为:静态调试和动态调试。3、静态调试指通过人的思维来分析源程序代码和排错,是主要的调试手段。4、动态调试动态调试是辅助静态调试,主要调试方法有: 强行排错法 / 回溯法 / 原因排除法调试中采用“补丁程序”和再次测试调试的成果是排错,为了修改程序中的错误,往往会采用“补丁程序”来实现,但这么做会降低整个程序的质量。调试修改后的程序必须进行再次测试。总结: (1)软件工程概述1、软件由程序数据、文档两部分组成。2、软件规模做大之后,出现了成本、质量、生产率等问题,这就是软件危机。3、软件工程就是采用工程、数学等方法来解决软件危机的问题。4、软件工程三要素:方法、工具、过程。5、软件工程的目标:低成本、高效率地开发出高质量的软件产品。6、软件工程学由软件开发技术、软件工程管理组成。(2)软件工程过程软件工程过程:把输入转换为输出的一组资源和活动。分为:PDCA四个活动(p52)。从软件生命的角度来讲,它由可行性研究与计划制定、需求分析、软件设计、软件实现、软件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论