相州教育-软件工程基础

上传人:豆浆 文档编号:47404723 上传时间:2018-07-02 格式:PPTX 页数:47 大小:2.56MB
返回 下载 相关 举报
相州教育-软件工程基础_第1页
第1页 / 共47页
相州教育-软件工程基础_第2页
第2页 / 共47页
相州教育-软件工程基础_第3页
第3页 / 共47页
相州教育-软件工程基础_第4页
第4页 / 共47页
相州教育-软件工程基础_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《相州教育-软件工程基础》由会员分享,可在线阅读,更多相关《相州教育-软件工程基础(47页珍藏版)》请在金锄头文库上搜索。

1、第1页第3章 软件工程基础选择相州你没有错第2页3.1 基本概念u软件程序数据相关文档机器可执行的程序和数据机器不能执行的,与软件开发、运行、维护、使用等有关的文档选择相州你没有错第3页软件的特点包括: (1)软件是一种逻辑实体; (2)软件的生产与硬件不同,它没有明显的制作过程 ; (3)软件在运行、使用期间不存在磨损、老化问题; (4)软件的开发、运行对计算机系统具有依赖性,受 计算机系统的限制,这导致了软件移植的问题; (5)软件复杂性高,成本昂贵; (6)软件开发涉及诸多的社会因素。 软件按功能分为:应用软件、系统软件、支撑软件(或工具软件)。选择相州你没有错第4页u 1. 软件危机n

2、软件危机:泛指在计算机软件的开发和维护中所遇到 的一系列严重问题。n软件危机主要表现在成本、质量、生产率等问题。n软件危机主要表现在:n1、软件需求增长得不到满足n2、软件开发成本和进度无法控制n3、软件不可维护和维护程度非常低n4、软件质量难以保证n5、软件的成本不断提高n6、软件开发生主率的提高跟不上硬件的发展和应用需 求的增长。选择相州你没有错u 2. 软件工程n软件工程是应用于计算机软件的定义、开发和维 护的一整套方法、工具、文档、实践标准和工 序。n其目的是提高软件生产率、提高软件质量、降低 软件成本。n它所包含的内容有以下两方面:n 软件开发技术 主要有软件开发方法学、软件工 具、

3、软件工程环境。n软件工程管理 主要有软件管理、软件工程经济 学。第5页选择相州你没有错软件工程三要素n方法:完成软件工程项目的技术手段n工具:支持软件的开发、管理、文档生成n过程:支持软件开发的各个环节的控制、管理; 将方法和工具综合起来,以达到合理、及时地进行 计算机软件开发的目的。n过程是把输入转化为输出的一组彼此相关的资源 的活动。第6页选择相州你没有错第7页3. 软件生命周期n将软件产品从提出、实现、使用、维护到停止使 用退役的过程称为软件生命周期n分为软件定义、软件开发及软件运行维护3个阶 段。n维护是持续时间最长,花费代价最大的一个阶段 ,软件工程学的一个目的就是提高软件的可维护

4、性,降低维护代价。选择相州你没有错n6个活动阶段n制定计划:确定系统的总体目标。 参加人员有用户、项目负责人和系统分析员,产生文档有可行 性分析报告、项目计划书等n需求分析:对开发软件提出的需求进行分并给出详细定 义。 确定系统的逻辑模型。参加人员有用户、项目负责人和系统分 析员。产生文档为需求规格说明书,其作用: (1)便于用户、开发人员进行理解交流; (2)反映用户问题的结构,可以作为软件开发工作的基础和 依据; (3)作为确认测试和验收的依据第8页选择相州你没有错第9页u 软件设计:分为概要设计和详细设计。包括软件结构设计、数据设计、接口设计和过程设计。结构设计是定义软件系统各部件之间的

5、关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与 人之 间如何通信;过程设计是把系统结构部件转换成软件的过程性描述。软件设计分概要设计和详细设计。参加人员有系统分析员和高级程序员。产生的文档有设计规格说 明书。 u 软件实现:编程。高级程序员和程序员产生源程序清单 u 软件测试:在设计测试用例的基础上,检验软件的各个组成部 分。产生软件测试计划和软件测试报告 u 运行与维护选择相州你没有错第10页制定计划需求分析软件设计实现测试运行和维护确定系统的总体目标需求规格说明书概要设计说明书 详细设计说明书 测试计划初稿完成程序代码 用户手册

6、单元测试计划检验软件 测试分析报告制定计划需求分析概要设计实现测试退役详细设计使用维护定义阶段开发阶段维护阶段第11页3.2 需求分析与结构化分析方法u需求分析的方法结构化分析方法面向对象的分析方法面向数据流的结构化方法(SA)面向数据结构Jackson方法(JSD)面向数据结构的结构化数据系统开发方 法(DSSD)选择相州你没有错需求分析的任务:导出目标系统的逻辑模型,解决“做什么”的问 题。需求分析一般分为: 四个步骤进行需求获取需求分析编写需求规格说明书需求评审第12页选择相州你没有错第13页结构化分析常用工具:(1)数据流图(2)数据字典(3)判定树(4)判定表结构化分析方法的实质:着

7、眼于数据流,自顶向下,逐层分解,建立系统的处 理流程,以数据流图和数据字典为主要工具,建立系统的 逻辑模型。选择相州你没有错第14页数据流图(DFD): 描述数据处理过程的工具,是需求理解的逻辑模型的 图形表示,它直接支持系统功能建模。选择相州你没有错第15页建立数据流图的步骤:(1)由外向里;(2)自顶向下:顶层、中间层、低层数据流图;(3)逐层分解;选择相州你没有错第16页选择相州你没有错第17页数据字典(DD):对所有与系统相关的数据元素的一个有组织的列表,以及精 确的、严格的定义,使得用户和系统分析员对于输入、输 出、存储成分和中间计算结果有共同的理解。数据字典是各类数据描述的集合,它

8、通常包括5个部分:即数据项、数据结构、数据流、数据存储、和处理过程。数据字典是结构化分析的核心。数据字典的作用是对数据流图中出现的被命名的图形元素的 确切解释。选择相州你没有错第18页存储文件”存折”的DD定义:选择相州你没有错第19页判定树:当数据流图中的加工依赖于多个逻辑时,可以使用判定树来 描述。从问题定义的文字描述中分清哪些是判定的条件,哪些 是判定的结论,根据描述材料中的连接词找出判定条件之间的 从属关系、并列关系、选择关系,根据它们构造判定树。选择相州你没有错第20页判定表:与判定树相似,当数据流图中的加工要依赖于多个逻辑条 件的取值,即完成该加工的一组动作是由于某一组条件取值 的

9、组合而引发的,使用判定表描述比较适宜。选择相州你没有错第21页软件需求规格说明书,其作用: (1)便于用户、开发人员进行理解交流; (2)反映用户问题的结构,可以作为软件开发工作的基础和依据; (3)作为确认测试和验收的依据。需求分析结束时产生:(1)DFD、DD、判定树、判定表(2)软件需求规格说明书选择相州你没有错第22页软件需求规格说明书的特点: (1)正确性; (2)无岐义性; (3)完整性; (4)可验证性; (5)一致性; (6)可理解性; (7)可追踪性。选择相州你没有错第23页3.3 结构化设计方法、概要设计和详细设计u 软件设计软件设计的基本目标是用比较抽象概括的方式确定目标

10、系统如何完成 预定的任务,软件设计是确定系统的物理模型。软件设计是开发阶段最重要的步骤,是将需求准确地转化为完整的软 件产品或系统的唯一途径。需求分析解决做什么的问题,软件设计主要解决怎么做的问题。 u 从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、 过程设计。结构设计:定义软件系统各主要部件之间的关系。数据设计:将分析时创建的模型转化为数据结构的定义。接口设计:描述软件内部、软件和协作系统之间以及软件与人之间如何 通信。过程设计:把系统结构部件转换成软件的过程描述。 u 从工程管理角度来看:概要设计和详细设计。选择相州你没有错第24页软件设计的基本原理:(1)抽象(2)模块化

11、(3)信息隐蔽(4)模块独立化内聚性:耦合性:在程序结构中各模块的内聚性越强,则耦合性越弱。 优秀软件应高内聚,低耦合。选择相州你没有错第25页内聚性:是一个模块内部各元素间彼此结合的紧密程度的度量。内聚由弱到强排列:偶然内聚 逻辑内聚时间内聚过程内聚通信内聚顺序 内聚功能内聚耦合性:模块间互相连接的紧密程度的度量。耦合性从高到低排列:内容耦合公共耦合外部耦合控制耦合标记耦合数据 耦合非直接耦合选择相州你没有错第26页3.3.2 概要设计n设计的基本任务n软件的系统结构n数据结构和数据库设计n编写概要设计文档n概要设计文档评审选择相州你没有错第27页结构图(SC):概要设计(软件结构设计)的工

12、具:模块用一个矩形表示,箭头表示模块间的调用关系。 在结构图中还可以用带注释的箭头表示模块调用过程中来 回传递的信息。 还可用带实心圆的箭头表示传递的是控制信息,空心圆箭 心表示传递的是数据。选择相州你没有错第28页结构图的基本形式:基本形式、顺序形式、重复形式、选择形式。 结构图有四种模块类型:传入模块、传出模块、变换模块和协调模块。选择相州你没有错第29页需求分析逻辑模型数据流图概要设计系统结构图物理模型概要设计的方法:典型的数据流类型有两种:变换型和事务型。变换型数据流系统结构图事务型数据流系统结构图选择相州你没有错第30页3.3.3 详细设计n根本目标n确定应用怎样具体的实现所要求的系

13、统,不是具体的编写程序, 而是要设计程序的“蓝图”n是为软件结构图中的每一个模块确定实现算法和局部数据结构 ,用某种选定的表达工具表示算法和数据结构的细节。n此阶段的结果基本上决定了最终的程序代码的质量n包括内容:n代码设计n输入设计n输出设计n处理过程设计n用户界面设计n安全控制设计选择相州你没有错第31页过程设计工具:图形工具: 程序流程图、NS图、 表格工具:判定表 语言工具:(伪码) 程序流程图:选择相州你没有错第32页u程序流程图N-S图PAD图选择相州你没有错第33页选择相州你没有错第34页NS图:选择相州你没有错第35页图:(伪码): 选择相州你没有错第36页6.软件工程的目标n

14、在给定的成本、进度的前提下,开发出具有有效 性、可靠性、可理解性、可维护性、可适应性、可 移植性、可追踪性和可互操作性且满足用户需求的 产品n软件工程鼓励研制和采用各种先进的软件开发方 法、工具和环境n软件工程需要达到的基本目标应是:付出较低的成 本,达到要求的软件功能,取得较好的软件性能, 开发的软件易于移植,需要较低的维护费用,能按 时完成开发,及时交付使用。选择相州你没有错8.软件工程的基本原则:抽象、信息隐蔽、模块化、局部化(模块间松散 ,模块内内聚性强)、确定性、一致性、完备 性和可验证性。 9. 软件工具和软件开发环境n软件工具(CASE):用来辅助软件开发、运 行、维护、管理、支

15、持等过程中的活动的软 件n 软件开发工具从单项 集成发展 n软件开发环境:支持软件产品开发全过程的 软件工具的集合。 第37页选择相州你没有错第38页3.4 软件测试软件测试定义:使用人工或自动手段来运行或测定某个系统的过程。意义目的:n尽可能多的发现错误n希望能以最少的人力和时间发现潜在的各种错误和缺陷n保证系统质量和可靠性的关键步骤4.4.2 测试方法n静态测试:包括代码检查、静态结构分析、代码质量度 量。不实际运行软件,主要通过人工进行。n动态测试:是基于计算机的测试。主要包括白盒测试方法和黑盒测试方法。 测试用例:(输入值集), (输出值集)选择相州你没有错第39页3.4.3 白盒测试

16、n结构测试n将软件看成透明的白盒,根据程序的内部结构和逻辑结构 来设计测试例子,对程序的路径和过程进行测试,检查是 否满足设计的要求n主要方法:逻辑覆盖、基本路径测试 3.4.4 黑盒测试n功能测试n将软件看成黑盒子,在完全不考虑软件内部结构和特性的 情况下,测试软件的外部特性n主要方法:等价类划分法、边界值分析法、错误推测法 3.4.5 软件测试的实施n单元测试(模块测试)n集成测试n确认测试n系统测试选择相州你没有错第40页n单元测试:是对模块进行正确性检验的测试。是软件测试的最小单位,主要采用静态和动态测试法,动态测试以 白盒测试法为主,辅助于黑盒测试n集成测试 是测试和组装软件的过程,主要目的是发现与接口有关的错误。n确认测试 验证软件的功能和性能及其他特性是否满足了需求规格说明中确定 的各种要求

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

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