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

下载本文档

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

文档简介

全国计算机等级考试二级教程公共基础知识2010年3月1第3章软件工程基础软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。结构化分析方法,数据流图,数据字典,软件需求规格说明书。结构化设计方法,总体设计与详细设计。软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。程序的调试,静态调试与动态调试。23.1软件工程基本概念考点1:软件的定义与软件特点1、软件的组成2、软件的特点3、软件的分类4、软件的作用31、软件的组成软件由两部分组成:1)机器可执行的程序和数据2)机器不可执行的,与软件开发、运行、维护、使用等有关的文档。常有以下说法:软件=程序+文档42、软件的特点软件是一种逻辑实体,具有抽象性软件没有明显的制作过程软件不存在磨损和消耗问题软件开发、运行受计算机系统的限制软件开发和维护成本高软件开发涉及诸多的社会因素53、软件的分类软件可分为应用软件、系统软件和支撑软件三类。4、软件的作用软件是用户与硬件之间的接口,是计算机系统的指挥者。6考点2:

软件危机与软件工程软件生产的发展经历了程序设计时代、程序系统时代和软件工程时代。1.软件危机早期的软件主要指程序,采用个体工作方式,缺少相关文档,质量低,维护困难,这些问题称为“软件危机”,可以将软件危机归结为成本、质量、生产率等问题。72、软件工程软件工程概念的出现源自于软件危机。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程。其目的是提高软件生产率、提高软件质量、降低软件成本。8软件工程三要素方法:完成软件工程项目的技术手段工具:支持软件的开发、管理、文档生成过程:支持软件开发的各个环节的控制、管理9考点3:软件工程过程软件工程过程是把输入转化为输出的一组彼此相关的资源和活动。它包含4种基本活动:软件规格说明、软件开发、软件确认、软件演进通常也把用户的要求转变成软件产品的过程叫做软件开发过程。10考点4:软件生命周期将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期分为软件定义、软件开发及软件运行维护3个阶段。维护是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护代价11软件生命周期的

6个活动阶段1)可行性研究与计划制定:确定系统的总体目标。参加人员有用户、项目负责人和系统分析员,产生文档有可行性分析报告、项目计划书等122)需求分析:确定系统的逻辑模型。参加人员有用户、项目负责人和系统分析员。产生文档为需求规格说明书,其作用:(1)便于用户、开发人员进行理解交流(2)反映用户问题的结构,可以作为软件开发工作的基础和依据(3)作为确认测试和验收的依据。133)软件设计:软件设计分概要设计和详细设计。参加人员有系统分析员和高级程序员。产生的文档有设计规格说明书。144)软件实现:编码,编程。高级程序员和程序员产生源程序清单155)软件测试:由另一部门的高级程序员或系统分析员产生软件测试计划和软件测试报告166)运行和维护:软件投入运行,在使用中不断的维护,根据新的提出的要求进行必要且可能的扩充和修改17考点5:软件工程的目标与原则1、软件工程的目标:在给定的成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品软件工程鼓励研制和采用各种先进的软件开发方法、工具和环境18软件工程研究的主要内容:软件开发技术和软件工程管理2、软件工程的原则: 抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性、可验证性19考点6:软件开发工具与软件开发环境软件工具:用来辅助软件开、运行、维护、管理、支持等过程中的活动的软件,它包括需求分析工具、设计工具、编码工具、测试工具等。20软件开发环境:支持软件产品开发的软件系统,它由软件工具集和环境集成机制构成213.2结构化分析方法基本思想:将系统分析看成工程项目,有计划、有步骤地进行工作。开发策略:自顶向下,逐层分解22可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。它涉及到经济、技术、法律等方面。考点7:可行性研究23考点8:需求分析方法软件需求是指用户对目标软件系统在功能、行为、性能、涉及约束等方面的期望。需求分析的任务是发现需求、定义需求的过程。需求分析将创建所需的数据模型、功能模型和控制模型。24需求分析的工作可以分为4个方面: 需求获取、需求分析、编写需求规格说明书、需求评审。需求分析的方法有:结构化分析方法、面向对象分析方法。25考点9:结构化分析方法结构化分析方法是面向数据流进行需求分析的方法。结果化分析方法以数据流图(DFD)和数据字典(DD)为主要工具。此外有判定树和判定表26考点10:

结构化分析常用工具1、数据流图(DFD)2、数据字典(DD)3、判定树4、判定表271、数据流图的基本符号

加工存储文件数据流数据的源点或终点,源,潭含义符号28建立数据流图的步骤:由外向里,自顶向下,逐层分解。29工资计算系统的数据流图

水电扣款表

出勤表

业绩表

人事部门

后勤部门

职工工资

工资

计算302、数据字典(DD)数据字典是结构化分析方法的核心,它的作用是对数据流图中出现的被命名的图形元素的确切解释。31考点11:

结构化方法开发过程结构化方法将软件生命周期分为计划、开发、运行3个时期计划期包括可行性研究开发期包括需求分析、总体设计、详细设计、编码、测试运行期主要任务是软件维护32考点12:软件需求规格说明书需求规格说明书应包括如下主要内容。 ①概述

②数据描述

③功能描述

④性能描述⑤参考文献⑥附录33需求规格说明书的特点:正确性、无歧义性、完整性等。其中最重要的是无歧义性。该说明书必须要让用户看懂,尽量少包含计算机专业术语。343.3结构化设计方法考点13:软件设计的基本概念1、软件设计的基础软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务。软件设计是确定系统的物理模型。软件设计是开发阶段最重要的步骤,是将需求准确地转化为完整的软件产品或系统的唯一途径.35从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。结构设计:定义软件系统各主要部件之间的关系。数据设计:将分析时创建的模型转化为数据结构的定义。接口设计:描述软件内部,软件和协作系统之间以及软件与人之间如何通信。过程设计:把系统结构部件转换成软件的过程描述。36从工程管理角度来看:概要设计和详细设计。软件设计是一个迭代的过程,先进行高层次的结构设计,后进行低层次的过程设计,穿插进行数据设计和接口设计。372、软件设计的基本原理抽象、模块化、信息隐藏、模块独立性衡量软件模块独立性使用耦合性和内聚性两个定性的度量标准。耦合:模块间相互连接的紧密程度内聚:模块内部各元素间结合的紧密程度在程序结构中各模块的内聚性越强,则耦合性越弱。优秀软件应高内聚,低耦合。

38考点14:概要设计任务1、软件概要设计的基本任务是:

(1)设计软件系统结构;(2)数据结构及数据库设计;

39(3)编写概要设计文档;

概要设计说明书,数据库设计说明书,集成测试计划等。(4)概要设计文档评审.402、软件设计工具:程序结构图(SC)P76结构图的基本图符有三种:一般模块,数据信息,控制信息结构图的基本形式:基本形式,顺序形式,重复形式,选择形式.结构图有四种模块类型:传入模块,传出模块,变换模块和协调模块41考点15:面向数据流的设计方法典型的数据流类型有两种:变换型和事务型。变换型系统结构图由输入、中心变换、输出三部分组成。事务型数据流的特点是:接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。

42考点16:设计准则设计准则包括以下几点:分解—协调原则自顶向下的原则信息屏蔽、抽象的原则一致性原则明确性原则模块间的耦合度尽可能小,模块内部组合尽可能紧凑(内聚性高)模块的扇入和扇出系数合理模块的规模适当43考点17:详细设计详细设计:是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节。常见的过程设计工具有:图形工具(程序流程图(PFD),N-S,PAD,HIPO)表格工具(判定表)语言工具(PDL)。

44程序流程图的基本图标:控制流加工步骤逻辑条件453.4软件的测试定义:使用人工或自动手段来运行或测定某个系统的过程。软件测试通常占软件开发总成本的40%左右。46考点18:软件测试的目的和准则1、软件测试的目的:1)发现错误

2)检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别

472、软件测试的准则:所有测试都应追溯到需求严格执行测试计划,排除测试的随意性充分注意测试中的群集现象程序员应避免检查自己的程序穷举测试不可能妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便48从被测软件是否要被执行来看分为静态测试和动态测试按照功能划分分为白盒测试和黑盒测试考点19:软件测试技术与方法491、静态测试和动态测试静态测试:人工评审软件文档或程序,包括代码检查,静态结构分析,代码质量度量。不实际运行软件,主要通过人工进行。动态测试:上机测试。测试能否发现错误取决于测试实例的设计。设计高效、合理的测试用例是动态测试的关键,测试用例由测试输入数据和预期输出结果两部分组成。50动态设计主要包括白盒测试方法和黑盒测试方法.2、白盒测试和黑盒测试1)白盒测试:在程序内部进行,主要用于完成软件内部操作的验证。白盒测试是穷举路径测试,验证所有内部数据结构的有效性。51此方法是将测试对象比作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构和相关信息来设计或选择测试用例,对穿过软件的逻辑路径进行测试,可以在不同点检查程序的状态,以确定实际状态与预期状态是否一致。52主要方法有逻辑覆盖,基本基路径测试。逻辑覆盖包括语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断-条件覆盖。

532)黑盒测试:主要诊断功能错误或遗漏,界面错误,数据结构或外部数据库访问错误,性能错误,初始化和终止条件错,用于软件确认。黑盒测试又称功能测试和数据驱动测试;它在软件接口处进行,进行功能验证。

543、黑盒测试方法与测试用例设计主要方法有等价类划分法,边界值分析法,错误推测法,因果图等。等价分类法是一种黑盒测试技术。它的基本思想是把输入数据划分成若干个等价类,在每个等价类中选取一组作为该等价类的测试用例。55考点20:软件测试的实施软件测试过程一般按4个步骤进行:单元测试,集成测试,验收测试(确认测试)和系统测试。561、单元测试:对软件中模块进行正确性检验的测试;它的目的是发现模块内部可能存在的各种错误。单元测试的依据是详细设计说明书和源程序572、集成测试:是测试和组装软件的过程,目的是发现与接口有关的错误;它的依据是概要设计说明书。集成测试涉及的内容有:单元接口测试,全局数据结构测试,边界条件和非法输入测试583、确认测试:验证软件的功能和性能是否满足需求,以及软件配置是否正确。确认测试首先运用黑盒测试方法。594、系统测试:在真实的系统工作环境下检验软件是否能与系统正确连接、发现软件与系统需求不一致的地方。系统测试的措施包括:功能测试,性能测试,操作测试,配置测试,外部接口测试,安全测试等。603.5程序的调试考点21:程序调试的概念:程序调试的任务是诊断和改正程序中的错误,主要在开发阶段进行。

程序调试的基本步骤有:

(1)错误定位;(2)修改设计和代码,以排除错误;(3)进行回归测试,防止引进新的错误.

61程序调试的原则:见教材97~98页62考点22:程序调试的方法软件调试可分表静态调试和动态调试.静态调试主要是指通过人的思维来分析源程序代码和排错,是主要的设计手段,而动态调试是辅助静态调试.程序调试的主要方法有:

(1)强行排错法;(2)回溯法;(3)原因排除法.63习题讲解64数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是

A)控制流B)加工

C)数据存储D)源和潭A65在数据流图(DFD)中,带有名字的箭头表示

A)模块之间的调用

温馨提示

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

评论

0/150

提交评论