《软件工程讲义.pptx》由会员分享,可在线阅读,更多相关《软件工程讲义.pptx(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1提示:设计与建模要提示:设计与建模要点点1.结构化分析建模:数据流图、实体关系图、状结构化分析建模:数据流图、实体关系图、状态迁移图、数据字典态迁移图、数据字典2.结构化设计建模:数据流图转换为系统结构图结构化设计建模:数据流图转换为系统结构图3.结构化程序设计:程序流程图、结构化程序设计:程序流程图、N-S图、图、PAD4.程序环路复杂性计算程序环路复杂性计算5.测试用例设计:逻辑覆盖、循环测试、基本路测试用例设计:逻辑覆盖、循环测试、基本路径覆盖、因果图径覆盖、因果图6.可靠性分析:估算测试前程序中潜在错误可靠性分析:估算测试前程序中潜在错误7.OMT建模:对象模型、动态模型(状态图、建
2、模:对象模型、动态模型(状态图、事件追踪图)事件追踪图)8.UML建模:用例图、类图、顺序图、活动图建模:用例图、类图、顺序图、活动图第1页/共34页2软件的概念软件的概念软件的定义软件由计算机程序、数据及文档软件的定义软件由计算机程序、数据及文档组成。组成。软件与硬件、数据库、人、过程等共同构成软件与硬件、数据库、人、过程等共同构成计算机系统。计算机系统。软件按功能分类:应用软件、系统软件、支软件按功能分类:应用软件、系统软件、支撑软件。撑软件。n软件的发展经历了三个阶段:程序设计阶段、软件的发展经历了三个阶段:程序设计阶段、程序系统阶段、软件工程阶段。程序系统阶段、软件工程阶段。第2页/共
3、34页软件工程概念的出现源自软件危机。软件工程概念的出现源自软件危机。软件危机的主要特征软件危机的主要特征v 软件开发周期大大超过规定日期软件开发周期大大超过规定日期;v 软件开发成本严重超标软件开发成本严重超标;v 软件质量难于保证;软件质量难于保证;v 失败的根本原因在于:开发人员写出的东西达不到用户要求失败的根本原因在于:开发人员写出的东西达不到用户要求(人的问人的问题、技术问题题、技术问题)第3页/共34页41968 年德国人年德国人 Bauer 在北大西洋公约组织会在北大西洋公约组织会议上的定义:议上的定义:建立并使用完善的工程化原建立并使用完善的工程化原则则,以较经济的手段获得能在
4、实际机器上有以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法效运行的可靠软件的一系列方法。1983 年年 IEEE 的软件工程定义:的软件工程定义:软件工程软件工程是开发,运行是开发,运行,维护和修复软件的系统方法维护和修复软件的系统方法。1993 年年 IEEE 的一个更加综合的定义:的一个更加综合的定义:将将系统化的,规范的,可度量的方法应用于软系统化的,规范的,可度量的方法应用于软件的开发件的开发,运行和维护的过程,即将工程化运行和维护的过程,即将工程化应用于软件中应用于软件中。软件工程定义软件工程定义第4页/共34页5软件工程框架软件工程框架可可用用性性性性性性确确正正合
5、合算算选取适宜的开发模型选取适宜的开发模型采用合适的设计方法采用合适的设计方法提供高质量的工程支持提供高质量的工程支持重视软件工程的管理重视软件工程的管理基基本本过过程程支支持持过过程程组组织织过过程程目标目标过程过程原原则则第5页/共34页6软件工程框架给出了软件工程三个主要方面。软件工程框架给出了软件工程三个主要方面。1)软件工程目标软件工程目标包括可用性、正确性和合算性,包括可用性、正确性和合算性,规定了软件工程实践的结果(即软件)应具有规定了软件工程实践的结果(即软件)应具有的基本性质;的基本性质;2)软件工程过程软件工程过程包含的基本活动有需求、分析包含的基本活动有需求、分析与设计、
6、实现、确认与测试、维护与支持;与设计、实现、确认与测试、维护与支持;3)软件工程的四条原则软件工程的四条原则-采用适宜的开发模型,采用适宜的开发模型,使用恰当的开发方法,提供高质量的工程支持,使用恰当的开发方法,提供高质量的工程支持,实施有效的工程管理,从四个方面指导每一项实施有效的工程管理,从四个方面指导每一项工程的活动,以实现软件工程目标。工程的活动,以实现软件工程目标。第6页/共34页7软件工程的知识结构软件工程的知识结构2001年年5月月ISO/IEC JTC 1发布了发布了SWEBOK 指南指南 V0.95(试用版)(试用版),即,即 Guide to the Software En
7、gineering Body of Knowledge。SWEBOK 把软件工程学科的主体知识分为把软件工程学科的主体知识分为 10 个知识领域这个知识领域这 10 个领域包括:软件需求,个领域包括:软件需求,软件设计,软件构造,软件测试,软件维护,软件设计,软件构造,软件测试,软件维护,软件配置管理,软件工程管理,软件工程过软件配置管理,软件工程管理,软件工程过程,软件工程工具和方法,软件质量。程,软件工程工具和方法,软件质量。第7页/共34页8nISO 9000定义:定义:软件工程过程是把输入转化软件工程过程是把输入转化为输出的一组彼此相关的资源和活动为输出的一组彼此相关的资源和活动。n从
8、软件开发的观点看,它就是使用适当的资从软件开发的观点看,它就是使用适当的资源(包括人员、硬软件工具、时间等),为源(包括人员、硬软件工具、时间等),为开发软件进行的一组开发活动,在过程结束开发软件进行的一组开发活动,在过程结束时将输入(用户要求)转化为输出(软件产时将输入(用户要求)转化为输出(软件产品)。品)。软件工程过程与软件生存周期软件工程过程与软件生存周期第8页/共34页9n软件工程过程定义了软件工程过程定义了:方法使用的顺序、要求方法使用的顺序、要求交付的文档资料、为保证质量和适应变化所交付的文档资料、为保证质量和适应变化所需要的管理、软件开发各个阶段完成的里程需要的管理、软件开发各
9、个阶段完成的里程碑。碑。n软件工程过程包含四种基本的过程活动:软件工程过程包含四种基本的过程活动:v plan:软件规格说明软件规格说明v do:软件开发软件开发v check:软件确认软件确认v action:软件演进软件演进第9页/共34页10n软件生存周期包含三个阶段:软件定义、软软件生存周期包含三个阶段:软件定义、软件开发及软件运行维护。件开发及软件运行维护。n软件生存周期模型是软件工程思想的具体化,软件生存周期模型是软件工程思想的具体化,是跨越软件生存周期的系统开发、运行、维是跨越软件生存周期的系统开发、运行、维护所实施的全部活动和任务的过程框架。护所实施的全部活动和任务的过程框架。
10、n常用的软件生存周期模型有瀑布模型,演化常用的软件生存周期模型有瀑布模型,演化模型,螺旋模型,增量模型,喷泉模型,快模型,螺旋模型,增量模型,喷泉模型,快速应用开发(速应用开发(RAD)模型。)模型。第10页/共34页11瀑布模型瀑布模型1.各项活动按自上而下,相互衔接的固定次序,各项活动按自上而下,相互衔接的固定次序,如同瀑布逐级下落,每项活动均处于一个质如同瀑布逐级下落,每项活动均处于一个质量环(输入量环(输入-处理处理-输出输出-评审)中。评审)中。2.阶段间具有阶段间具有顺序性顺序性和和依赖性依赖性。3.推迟实现的观点。推迟实现的观点。4.每个阶段必须完成规定的文档;每个阶段结每个阶段
11、必须完成规定的文档;每个阶段结束前完成文档审查。束前完成文档审查。第11页/共34页12需求定义需求定义系统与软件设计系统与软件设计集成与系统测试集成与系统测试实现与单元测试实现与单元测试运行与维护运行与维护第12页/共34页13演化模型演化模型n演化模型是演化模型是迭代的迭代的,软件必须经过,软件必须经过不断演不断演化化才能完善。才能完善。n演化模型先开发一个演化模型先开发一个“原型原型”软件,完成软件,完成部分主要功能,展示给用户并征求意见,然部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。后逐步完善,最终获得满意的软件产品。n业务和产品需求在变化中,采用线性开发
12、业务和产品需求在变化中,采用线性开发方式是不实际的。方式是不实际的。n快速实现和提交一个有限的版本,可以应快速实现和提交一个有限的版本,可以应付市场竞争的压力。付市场竞争的压力。第13页/共34页14需求的采集需求的采集需求的采集需求的采集与细化与细化与细化与细化客户评价原型客户评价原型快速设计快速设计建造原型建造原型建造原型建造原型加工原型加工原型加工原型加工原型产生样品产生样品产生样品产生样品停止停止开始开始第14页/共34页15螺旋模型螺旋模型n螺旋模型将瀑布模型与演化模型结合起来,螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的并且加入两种模型均忽略了的风险分析风险分析
13、。n螺旋模型沿着螺线旋转,自内向外每旋转一螺旋模型沿着螺线旋转,自内向外每旋转一圈便开发出更完善的一个新版本。圈便开发出更完善的一个新版本。v 制定计划制定计划v 风险分析风险分析v 实施工程实施工程v 客户评估客户评估第15页/共34页16决定目标、决定目标、方案和限制方案和限制评价方案评价方案识别风险识别风险弱化风险弱化风险开发、验证、开发、验证、下一级产品下一级产品计划下一阶段计划下一阶段集成测试第16页/共34页17增量模型增量模型n增量模型是增量模型是迭代迭代和和演进演进的过程。的过程。n增量模型把软件产品分解成一系列的增量构增量模型把软件产品分解成一系列的增量构件,在增量开发迭代中
14、逐步加入。件,在增量开发迭代中逐步加入。n每个构件由多个相互作用的模块构成,并且每个构件由多个相互作用的模块构成,并且能够完成特定的功能。能够完成特定的功能。n早先完成的增量可以为后期的增量提供服务。早先完成的增量可以为后期的增量提供服务。n增量开发方法的新演进版本叫做增量开发方法的新演进版本叫做 极限程序极限程序设计(设计(eXtreme Programming)。第17页/共34页18定义基定义基本需求本需求将需求对将需求对应到各增应到各增量量设计系统设计系统架构架构开发其中开发其中一个增量一个增量检验和确检验和确认该认该增量增量将增量集将增量集成到系统成到系统中中确认集成确认集成后的系统
15、后的系统第18页/共34页19日历时间日历时间分析分析 增量增量1 增量增量1交付交付设计设计 编码编码 测试测试 分析分析 增量增量2 增量增量2交付交付设计设计 编码编码 测试测试 分析分析 增量增量3 增量增量3交付交付设计设计 编码编码 测试测试 分析分析 增量增量4 增量增量4交付交付设计设计 编码编码 测试测试 系统和信息工程系统和信息工程第19页/共34页20喷泉模型喷泉模型n体现了体现了迭代迭代和和无间隙无间隙的特性。的特性。n系统某个部分常常重复工作多次,相关对象系统某个部分常常重复工作多次,相关对象在每次迭代中随之加入演进的软件成分。在每次迭代中随之加入演进的软件成分。n无
16、间隙是指在各项开发活动,即分析、设计无间隙是指在各项开发活动,即分析、设计和编码之间不存在明显的边界。和编码之间不存在明显的边界。n喷泉模型是对象驱动的过程。喷泉模型是对象驱动的过程。第20页/共34页21需求阶段需求阶段分析阶段分析阶段设计阶段设计阶段编程阶段编程阶段集成与测试阶段集成与测试阶段维护与演进阶段维护与演进阶段第21页/共34页22变换模型变换模型变换模型是一种基于形式化规格说明语言及变换模型是一种基于形式化规格说明语言及变换模型是一种基于形式化规格说明语言及变换模型是一种基于形式化规格说明语言及程序变换的软件开发模型。程序变换的软件开发模型。程序变换的软件开发模型。程序变换的软
17、件开发模型。它采用形式化的软件开发方法,对形式化的它采用形式化的软件开发方法,对形式化的它采用形式化的软件开发方法,对形式化的它采用形式化的软件开发方法,对形式化的软件规格说明进行一系列自动的或半自动的软件规格说明进行一系列自动的或半自动的软件规格说明进行一系列自动的或半自动的软件规格说明进行一系列自动的或半自动的程序变换,最终映射成为计算机系统能够接程序变换,最终映射成为计算机系统能够接程序变换,最终映射成为计算机系统能够接程序变换,最终映射成为计算机系统能够接受的程序系统。受的程序系统。受的程序系统。受的程序系统。多步程序变换过程的重要性质是:每一步程多步程序变换过程的重要性质是:每一步程
18、多步程序变换过程的重要性质是:每一步程多步程序变换过程的重要性质是:每一步程序变换的正确性仅与该步变换所依据的规范序变换的正确性仅与该步变换所依据的规范序变换的正确性仅与该步变换所依据的规范序变换的正确性仅与该步变换所依据的规范 MMi i 以及对变换后的假设以及对变换后的假设以及对变换后的假设以及对变换后的假设 MMi+1 i+1 有关。有关。有关。有关。第22页/共34页23软件需求软件需求形式化说形式化说明明(M0)软件设计软件设计形式化说形式化说明明(M1)(M2)(Mn)模型检查模型检查程序变换程序变换程序变换程序变换程序变换程序变换在此意义上,变换步骤独立于其他变换步骤。在此意义上
19、,变换步骤独立于其他变换步骤。在此意义上,变换步骤独立于其他变换步骤。在此意义上,变换步骤独立于其他变换步骤。这称为变换的独立性。这称为变换的独立性。这称为变换的独立性。这称为变换的独立性。该模型只适合于软件的形式化开发方法;需该模型只适合于软件的形式化开发方法;需该模型只适合于软件的形式化开发方法;需该模型只适合于软件的形式化开发方法;需要严格的数学理论和形式化技术支持;需要要严格的数学理论和形式化技术支持;需要要严格的数学理论和形式化技术支持;需要要严格的数学理论和形式化技术支持;需要一整套开发环境(如程序变换工具、定理证一整套开发环境(如程序变换工具、定理证一整套开发环境(如程序变换工具
20、、定理证一整套开发环境(如程序变换工具、定理证明工具等)的支持明工具等)的支持明工具等)的支持明工具等)的支持。第23页/共34页24基于第四代技术的模型基于第四代技术的模型第四代语言第四代语言(4GL)是在大型数据库管理系统是在大型数据库管理系统的基础上发展起来的,是一种面向结果的非的基础上发展起来的,是一种面向结果的非过程性语言。它独立于具体的处理机,有丰过程性语言。它独立于具体的处理机,有丰富的软件工具支持,能统一利用和管理各种富的软件工具支持,能统一利用和管理各种数据资源并能适应不同水平用户的需要。数据资源并能适应不同水平用户的需要。以以4GL为核心的软件开发技术成为第四代技为核心的软
21、件开发技术成为第四代技术术(4GT),采用,采用4GT的软件开发模型如图。的软件开发模型如图。软件开发人员在定义软件需求,给出需求规软件开发人员在定义软件需求,给出需求规格说明之后,格说明之后,4GT工具可将该需求规格说明工具可将该需求规格说明自动自动第24页/共34页25转换为程序代码。这大大减少了分析、设计、转换为程序代码。这大大减少了分析、设计、编码和测试的时间。编码和测试的时间。以以4GL为核心的软件开发技术成为第四代技为核心的软件开发技术成为第四代技术术(4GT),采用,采用4GT的软件开发模型如图。的软件开发模型如图。收集需求收集需求“设计设计”策略策略用用“4GL”实现实现测试测
22、试第25页/共34页26快速应用开发快速应用开发(RAD)模型模型快速应用开发模型是一种增量开发模型,该快速应用开发模型是一种增量开发模型,该模型开发软件大量使用了可复用的构件。模型开发软件大量使用了可复用的构件。每一个增量的开发经历五个阶段:每一个增量的开发经历五个阶段:v 业务建模业务建模 对业务功能的信息流建模。对业务功能的信息流建模。v 数据建模数据建模 对业务的数据对象和关系建模。对业务的数据对象和关系建模。v 过程建模过程建模 描述完成业务功能的数据变换。描述完成业务功能的数据变换。v 应用生成应用生成 应用构件和自动化工具建造。应用构件和自动化工具建造。v 测试与反复测试与反复
23、对新构件和接口进行测试。对新构件和接口进行测试。第26页/共34页27业务建模业务建模数据建模数据建模过程建模过程建模应用生成应用生成测试及反复测试及反复小组小组1#业务建模业务建模数据建模数据建模过程建模过程建模应用生成应用生成测试及反复测试及反复小组小组2#业务建模业务建模数据建模数据建模过程建模过程建模应用生成应用生成测试及反复测试及反复小组小组3#6090天天天天第27页/共34页28软件开发范型软件开发范型(Paradigm)n范范型型又又称称为为风风范范。通通常常认认为为范范型型就就是是开开发发模模型型(Model)或或开开发发模模式式(Pattern),实实际际上上它它与与方方法
24、法(Methodology)一一样样,都都被被视视为为一一种种开开发发技技术术。范范型型支支配配了了设设计计方方法法、编编码码语语言言、测试和检验技术的选择。测试和检验技术的选择。n过过程程性性范范型型把把软软件件视视为为处处理理流流,定定义义成成由由一一系系列列步步骤骤构构成成的的算算法法。每每一一步步骤骤都都是是带带有有输输入入和和输输出出的的一一个个过过程程,把把这这些些步步骤骤串串联联在在一一起可产生贯通于整个程序的控制流。起可产生贯通于整个程序的控制流。第28页/共34页29n面面向向对对象象范范型型把把标标识识和和模模型型化化问问题题领领域域中中的的实实体体做做为为系系统统开开发发
25、的的起起点点,面面向向对对象象系系统统中中的对象是数据抽象与过程抽象的综合。的对象是数据抽象与过程抽象的综合。n逻逻辑辑性性范范型型是是基基于于规规则则的的,它它把把有有关关问问题题的的知识分解成一组具体规则知识分解成一组具体规则(如如prolog语言语言)。n面面向向进进程程范范型型把把一一个个问问题题分分解解成成独独立立执执行行的的模模块块。让让不不只只一一个个程程序序同同时时运运行行。这这些些进进程程互相配合,解决问题。互相配合,解决问题。n面面向向存存取取范范型型是是一一种种在在构构造造用用户户界界面面方方面面很很有用的技术。有用的技术。第29页/共34页30n函函数数型型范范型型是是
26、基基于于规规则则的的,它它把把有有关关问问题题的的知知 识识 分分 解解 成成 一一 组组 具具 体体 规规 则则,用用 语语 言言 的的“if_then”等结构来表示这些规则。等结构来表示这些规则。n说明性范型说明性范型。n每种开发范型都有它的支持者和用户:每种开发范型都有它的支持者和用户:v 每种开发范型都特别适合于某种类型的问题或子问题;每种开发范型都特别适合于某种类型的问题或子问题;v 每种开发范型都用不同的方式考虑问题;每种开发范型都用不同的方式考虑问题;v 每种开发范型都使用不同的方法来分解问题每种开发范型都使用不同的方法来分解问题第30页/共34页31v 每种开发范型都导致不同种
27、类的块、过程、产生规则。每种开发范型都导致不同种类的块、过程、产生规则。系统开发时通常把大型问题分解成一组子问系统开发时通常把大型问题分解成一组子问题。对于每个子问题采用适当的软件开发范题。对于每个子问题采用适当的软件开发范型。型。第31页/共34页32n软件工程原则有:软件工程原则有:v 抽象与自顶向下、逐层细化抽象与自顶向下、逐层细化v 信息隐蔽和数据封装信息隐蔽和数据封装v 模块化模块化v 局部化局部化v 确定性确定性v 一致性和标准化一致性和标准化v 完备性和可验证性完备性和可验证性软件工程原则软件工程原则第32页/共34页33n软件工程的基本原理有:软件工程的基本原理有:v 按软件生存周期分阶段制定计划并认真实施;按软件生存周期分阶段制定计划并认真实施;v 坚持进行阶段评审;坚持进行阶段评审;v 坚持严格的产品控制;坚持严格的产品控制;v 使用现代程序设计技术;使用现代程序设计技术;v 明确责任,使得工作结果能够得到清楚的审查;明确责任,使得工作结果能够得到清楚的审查;v 用人少而精;用人少而精;v 不断改进开发过程。不断改进开发过程。第33页/共34页34感谢您的观看!第34页/共34页
限制150内