软件工程技术与应用

上传人:陈** 文档编号:206305428 上传时间:2023-05-03 格式:PPTX 页数:72 大小:484.13KB
收藏 版权申诉 举报 下载
软件工程技术与应用_第1页
第1页 / 共72页
软件工程技术与应用_第2页
第2页 / 共72页
软件工程技术与应用_第3页
第3页 / 共72页
资源描述:

《软件工程技术与应用》由会员分享,可在线阅读,更多相关《软件工程技术与应用(72页珍藏版)》请在装配图网上搜索。

1、softwareEngineeringComputer CenterEast China University of Science and Technology Edit by 胡庆春胡庆春软件工程技术与应用软件工程技术与应用第第3章章 面向对象方法面向对象方法 第第4章章 统一建模语言统一建模语言UML 第第5章章 面向对象分析和设计面向对象分析和设计 第第6章章 面向对象的测试面向对象的测试 第第7章章 软件项目管理软件项目管理 第第1章章 绪绪 论论第第2章章 软件开发概述软件开发概述 软件工程技术与应用软件工程技术与应用第章绪第章绪 论论1.1 软件与软件工程软件与软件工程 1.2

2、软件工程的研究内容软件工程的研究内容1.3 软件开发模型软件开发模型 软件工程技术与应用软件工程技术与应用第章绪第章绪 论论由于软件的发展,使计算机应用逐步渗透到社会生由于软件的发展,使计算机应用逐步渗透到社会生活的各个角落,使各行各业都发生很大的变化。活的各个角落,使各行各业都发生很大的变化。对软件的品种、数量、功能和质量等提出了越来越对软件的品种、数量、功能和质量等提出了越来越高的要求。高的要求。软件开发过程、方法、工具和环境的研究,软件工软件开发过程、方法、工具和环境的研究,软件工程应运而生。程应运而生。本章介绍软件和软件工程的基本概念,包括软件、本章介绍软件和软件工程的基本概念,包括软

3、件、软件危机、软件工程学以及软件开发模型等内容。软件危机、软件工程学以及软件开发模型等内容。软件工程技术与应用软件工程技术与应用1.1 软件与软件工程软件与软件工程从从20世纪世纪60年代以来,软件也从规模、年代以来,软件也从规模、功能等方面得到了很大的发展,人们对功能等方面得到了很大的发展,人们对软件质量的要求也越来越高。软件质量的要求也越来越高。什么是软件,软件有哪些特征呢?什么是软件,软件有哪些特征呢?软件工程技术与应用软件工程技术与应用1.1.1 软件软件1.软件的定义软件的定义有些初学者认为软件就是程序,这个理解是不完全有些初学者认为软件就是程序,这个理解是不完全的。的。美国著名的软

4、件工程专家美国著名的软件工程专家R.S.Pressman的定义:的定义:“软件是能够完成预定功能和性能的可执行的计算软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述机程序和使程序正常执行所需要的数据,加上描述程序的操作和使用的文档。程序的操作和使用的文档。”可以简明地表述,可以简明地表述,“软件软件=程序程序+数据数据+文档文档”。软件被划分为系统软件、应用软件和介于这两者之软件被划分为系统软件、应用软件和介于这两者之间的中间件。间的中间件。软件工程技术与应用软件工程技术与应用2.软件的特征软件的特征软件开发不同于硬件设计软件开发不同于硬件设计软件生产不同

5、于硬件制造软件生产不同于硬件制造软件维护不同于硬件维修软件维护不同于硬件维修软件工程技术与应用软件工程技术与应用3.软件危机软件危机出现软件危机的原因。出现软件危机的原因。软件危机,使许多产业界人士认识到必软件危机,使许多产业界人士认识到必须把软件生产从个人化方式改变为工程须把软件生产从个人化方式改变为工程化方式,从而导致了软件工程的诞生。化方式,从而导致了软件工程的诞生。软件工程技术与应用软件工程技术与应用1.1.2 软件工程软件工程1软件工程的概念软件工程的概念软件工程的基本理念是软件工程的基本理念是“按工程的概念、原理、技按工程的概念、原理、技术和方法开发与维护计算机软件术和方法开发与维

6、护计算机软件”。“软件工程软件工程”一词,首先是一词,首先是1968年北大西洋公约组年北大西洋公约组织(织(NATO)在联邦德国召开的一次会议上提出的。)在联邦德国召开的一次会议上提出的。人们从不同的角度,给软件工程下过各种定义。但人们从不同的角度,给软件工程下过各种定义。但是不论有多少种说法,它的中心思想,是把软件当是不论有多少种说法,它的中心思想,是把软件当作一种工业产品,要求作一种工业产品,要求“采用工程化的原理与方法采用工程化的原理与方法对软件进行计划、开发和维护对软件进行计划、开发和维护”。软件工程技术与应用软件工程技术与应用质量焦点质量焦点过程过程方法方法软件工程三个要素:软件工程

7、三个要素:方法、工具、过程方法、工具、过程 -R.S.Pressman工具工具软件工程技术与应用软件工程技术与应用2软件工程的基本原则软件工程的基本原则1983年,年,BWBoehm提出了著名的软件提出了著名的软件工程七条基本原理。工程七条基本原理。软件工程围绕工程设计、工程支持以及工程软件工程围绕工程设计、工程支持以及工程管理,提出了以下四项基本原则:管理,提出了以下四项基本原则:第一,选取适宜开发范型。第一,选取适宜开发范型。第二,采用合适的设计方法。第二,采用合适的设计方法。第三,提供高质量的工程支持。第三,提供高质量的工程支持。第四,重视开发过程的管理。第四,重视开发过程的管理。软件工

8、程技术与应用软件工程技术与应用1.2 软件工程的研究内容软件工程的研究内容软件工程学主要有两个分支:软件开发技术软件工程学主要有两个分支:软件开发技术和软件工程管理。和软件工程管理。本节主要介绍软件开发技术的相关内容。本节主要介绍软件开发技术的相关内容。软件工程技术与应用软件工程技术与应用1.2.1 软件开发过程软件开发过程软件开发过程是指开发一个最终能满足需软件开发过程是指开发一个最终能满足需求且达到目标的软件产品所需要的步骤。求且达到目标的软件产品所需要的步骤。软件工程技术与应用软件工程技术与应用1.2.2 软件开发方法 早期的程序设计基本上属于个人活动性质,早期的程序设计基本上属于个人活

9、动性质,程序员各行其是,并无统一的方法可循;程序员各行其是,并无统一的方法可循;这时的软件开发方法称为个性化软件开发这时的软件开发方法称为个性化软件开发(Individualized Software Development)。)。软件工程技术与应用软件工程技术与应用1.2.2 软件开发方法20世纪世纪 60年代后期兴起的结构化开发方法。年代后期兴起的结构化开发方法。随后,人们又认识到编写程序仅是软件开发过程随后,人们又认识到编写程序仅是软件开发过程中的一个环节。中的一个环节。有效的开发应该包括有效的开发应该包括“需求分析需求分析”、“软件设计软件设计”、“编码编码”等多个阶段。等多个阶段。结

10、构化的思想扩展到分析阶段和设计阶段,于是结构化的思想扩展到分析阶段和设计阶段,于是形成了形成了“结构化分析结构化分析”与与“结构化设计结构化设计”等结构等结构化软件开发(化软件开发(Structured Software Development)。)。软件工程技术与应用软件工程技术与应用1.2.2 软件开发方法软件开发方法80年代以后出现的年代以后出现的C+、Java等语言,促进了面等语言,促进了面向对象程序设计的广泛流行。向对象程序设计的广泛流行。仅仅使用面向对象程序设计不会产生最好的效果。仅仅使用面向对象程序设计不会产生最好的效果。只有在软件开发的早期乃至全过程都采用面向对只有在软件开发的

11、早期乃至全过程都采用面向对象技术,才能更好地发挥该技术的固有优势。象技术,才能更好地发挥该技术的固有优势。于是,形成了包括于是,形成了包括“面向对象需求分析面向对象需求分析面向对面向对象设计象设计面向对象编码面向对象编码”在内的面向对象软件开在内的面向对象软件开发(发(Object Oriented Software Development)方法。)方法。软件工程技术与应用软件工程技术与应用1.2.3 软件开发工具软件开发工具1.软件工具软件工具编译程序、编辑程序、连接程序以及支持它们编译程序、编辑程序、连接程序以及支持它们的计算机操作系统,都属于软件工具。的计算机操作系统,都属于软件工具。例

12、如:编码阶段常用的和。例如:编码阶段常用的和。2.软件工程环境软件工程环境方法与工具相结合,再加上配套的软、硬件支方法与工具相结合,再加上配套的软、硬件支持就形成环境。持就形成环境。软件工程环境软件工程环境(software engineering environment,简称简称SE)软件工程技术与应用软件工程技术与应用开发工具的作用与功能开发工具的作用与功能计算机辅助软件工程计算机辅助软件工程 CASE作用作用认识与描述系统需求认识与描述系统需求 保存与管理开发过程中的信息保存与管理开发过程中的信息 代码的生成代码的生成 文档的编制与生成文档的编制与生成 软件项目的管理软件项目的管理 软件

13、工程技术与应用软件工程技术与应用开发工具的分类开发工具的分类分类分类方法方法按应用阶段划分按应用阶段划分 按功能划分按功能划分设计工具设计工具分析工具分析工具项目管理项目管理软件配置软件配置质量保证质量保证分析设计分析设计计划工具计划工具界面开发界面开发客户服务器客户服务器Web开发开发软件工程技术与应用软件工程技术与应用IBM RationalIBM Rational工具工具RationalRational公司是专门从事公司是专门从事CASECASE工具研制与开发的软件公工具研制与开发的软件公司,司,20032003年被年被IBMIBM公司收购。该公司所研发的公司收购。该公司所研发的Rati

14、onalRational系系列软件是完整的列软件是完整的CASECASE集成工具,贯穿从需求分析到软件集成工具,贯穿从需求分析到软件维护的整个软件生存周期。维护的整个软件生存周期。需求分需求分析与设析与设计工具计工具产品主要构成测试测试工具工具软件配软件配置管理置管理工具工具Rose PurifyPlus Robot ClearCase 软件工程技术与应用软件工程技术与应用北大青鸟工具北大青鸟工具北大青鸟系列北大青鸟系列CASECASE工具北京北大青鸟软件有限公司开工具北京北大青鸟软件有限公司开发研制的,在国内有较高的知名度,北京大学软件工程发研制的,在国内有较高的知名度,北京大学软件工程国家

15、工程研究中心就设在该公司。国家工程研究中心就设在该公司。产品主要构成面向对面向对象软件象软件开发工开发工具集具集 JBOO 构件库构件库管理系管理系统统 JBCLMS 项目管项目管理与质理与质量保证量保证 JBCM JBPM JBCCM 软件测软件测试系统试系统 Safepro 软件工程技术与应用软件工程技术与应用微软版本管理器微软版本管理器VSSVSS版本管理是软件配置管理中的核心工作,由版本管理是软件配置管理中的核心工作,由MicrosoftMicrosoft公司开发的公司开发的Visual SourceSafe 6.0Visual SourceSafe 6.0使用非常广泛。使用非常广泛。

16、产品主要功能产品主要功能文件文件检入检入与检与检出出 版本版本控制控制 文件文件的拆的拆分与分与共享共享 权限权限管理管理 软件工程技术与应用软件工程技术与应用1.3 软件开发模型软件开发模型 1.3.1 线性模型线性模型1.3.2 原型模型原型模型1.3.3 演化模型演化模型增量模型增量模型螺旋模型螺旋模型1.3.4 基于构件的模型基于构件的模型1.3.5 形式化模型形式化模型转换模型转换模型净室模型净室模型软件工程技术与应用软件工程技术与应用一个软件从开始计划起,到废弃不用止,称为软件的生存周期。一个软件从开始计划起,到废弃不用止,称为软件的生存周期。一般来说,软件生存周期包括一般来说,软

17、件生存周期包括计划、开发与运行计划、开发与运行三个时期,每一时期又三个时期,每一时期又可细分为若干更小的阶段。可细分为若干更小的阶段。人的生存周期人的生存周期婴儿婴儿幼儿幼儿儿童儿童少年少年青年青年中年中年老年老年死亡死亡 软件的生存周期软件的生存周期软件计划软件计划软件开发软件开发软件运行软件运行问题定义问题定义可行性研究可行性研究需求分析需求分析概要设计概要设计详细设计详细设计编编 码码测测 试试维护或退役维护或退役软件生存周期软件生存周期软件工程技术与应用软件工程技术与应用软件定义阶段软件定义阶段v问题定义问题定义v可行性分析可行性分析v立项或签订合同立项或签订合同软件开发阶段软件开发阶

18、段v需求分析需求分析v软件设计软件设计v编码与测试编码与测试v发布或安装验收发布或安装验收软件运行阶段软件运行阶段v软件的使用、运行软件的使用、运行v软件维护软件维护软件工程技术与应用软件工程技术与应用软件开发模型软件开发模型v软件开发过程概括,是软件工程思想的具体化;软件开发过程概括,是软件工程思想的具体化;v它是跨越整个软件生存周期的各个阶段所需要的全部它是跨越整个软件生存周期的各个阶段所需要的全部工作与任务的结构框架。工作与任务的结构框架。软件工程技术与应用软件工程技术与应用1.3.1 线性模型线性模型瀑布模型瀑布模型可行性分析可行性分析需求分析需求分析设设 计计编编 码码测测 试试维护

19、维护定义阶段定义阶段开发阶段开发阶段运行阶段运行阶段软件工程技术与应用软件工程技术与应用瀑布模型的特点:瀑布模型的特点:瀑布模型的适用范围瀑布模型的适用范围阶段间具有顺序性和依赖性阶段间具有顺序性和依赖性每个阶段必须完成规定的文档每个阶段必须完成规定的文档;每个阶段结束前完成文每个阶段结束前完成文档审查档审查,及早改正错误及早改正错误,但:但:实际的项目开发很难严格按该模型进行。实际的项目开发很难严格按该模型进行。客户往往很难清楚地给出所有的需求,而该模型却要求如此。客户往往很难清楚地给出所有的需求,而该模型却要求如此。软件的实际情况必须到项目开发的后期客户才能看到,这要求软件的实际情况必须到

20、项目开发的后期客户才能看到,这要求客户有足够的耐心客户有足够的耐心。用户的需求非常清楚全面,且在开发过程中没有或很少变化用户的需求非常清楚全面,且在开发过程中没有或很少变化 开发人员对软件的应用领域很熟悉。开发人员对软件的应用领域很熟悉。用户的使用环境非常稳定。用户的使用环境非常稳定。开发工作对用户参与的要求很低。开发工作对用户参与的要求很低。软件工程技术与应用软件工程技术与应用1.3.2 原型模型原型模型用户测试用户测试运行原型运行原型建造建造/修改修改 原型原型 听取用听取用 户意见户意见需求分析需求分析原型开发原型开发最终系统设计最终系统设计原型评价原型评价最终系统实现最终系统实现用户用

21、户反馈反馈软件工程技术与应用软件工程技术与应用原型模型的特点:原型模型的特点:原型模型的适用范围原型模型的适用范围可以得到比较良好的需求定义,容易适应需求的变化。可以得到比较良好的需求定义,容易适应需求的变化。开发费用低、开发周期短、维护容易且对用户更友好。开发费用低、开发周期短、维护容易且对用户更友好。客户与开发者对原型理解不同客户与开发者对原型理解不同准确的原型设计比较困难准确的原型设计比较困难不利于开发人员的创新不利于开发人员的创新对所开发的领域比较熟悉而且有快速的原型开发工具对所开发的领域比较熟悉而且有快速的原型开发工具进行产品移植或升级时,原型模型是非常适合的。进行产品移植或升级时,

22、原型模型是非常适合的。软件工程技术与应用软件工程技术与应用1.3.3 演化模型演化模型1增量模型增量模型规格说明规格说明设计设计实现和集成实现和集成交付客户交付客户增量增量1规格说明规格说明设计设计实现和集成实现和集成交付客户交付客户增量增量2规格说明规格说明设计设计实现和集成实现和集成交付客户交付客户增量增量n软件工程技术与应用软件工程技术与应用2.螺旋模型螺旋模型集成测试软件工程技术与应用软件工程技术与应用螺旋模型螺旋模型螺旋模型将瀑布模型与演化模型结合起来,并螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的且加入两种模型均忽略了的风险分析风险分析。螺旋模型沿着螺线旋转,自

23、内向外每旋转一圈螺旋模型沿着螺线旋转,自内向外每旋转一圈便开发出更完善的一个新版本。便开发出更完善的一个新版本。制定计划制定计划 确定软件目标,选定实施方案,确定软件目标,选定实施方案,弄清项目开发的限制条件;弄清项目开发的限制条件;风险分析风险分析 分析所选方案,考虑如何识别和分析所选方案,考虑如何识别和消除风险;消除风险;实施工程实施工程 实施软件开发;实施软件开发;客户评估客户评估 评价开发,提出修正建议。评价开发,提出修正建议。软件工程技术与应用软件工程技术与应用1.3.4 基于构件的模型基于构件的模型确定候选构件确定候选构件查找构件库查找构件库复用所查到构件复用所查到构件开发候选构件

24、开发候选构件开始下一轮迭代开始下一轮迭代集成构件集成构件融合了螺旋模型的特征融合了螺旋模型的特征支持软件开发的迭代方法支持软件开发的迭代方法软件工程技术与应用软件工程技术与应用基于构件的开发模型特点基于构件的开发模型特点采用了先进的面向对象技术。采用了先进的面向对象技术。基于构件库的开发,这是软件复用的基础,开发速基于构件库的开发,这是软件复用的基础,开发速度快。度快。融合了螺旋模型特征融合了螺旋模型特征支持软件开发的迭代方法。支持软件开发的迭代方法。软件工程技术与应用软件工程技术与应用1.3.5 形式化模型形式化模型1.转换模型转换模型形式化形式化规格说明规格说明与与需需求求比比较后修正较后

25、修正变换变换2变换变换1变换变换n测试测试形式化开发记录形式化开发记录系统需求系统需求目标系统目标系统软件工程技术与应用软件工程技术与应用.净室模型净室模型 需求需求收集收集盒结构盒结构规约规约形式化形式化设计设计统计性使统计性使用测试用测试正确性正确性证明证明代码生成代码生成与检查与检查测试计划测试计划认证认证增量增量1增量增量2增量增量n需求需求收集收集盒结构盒结构规约规约形式化形式化设计设计统计性使统计性使用测试用测试正确性正确性证明证明代码生成代码生成与检查与检查测试计划测试计划认证认证需求需求收集收集盒结构盒结构规约规约形式化形式化设计设计统计性使统计性使用测试用测试正确性正确性证明

26、证明代码生成代码生成与检查与检查测试计划测试计划认证认证软件工程技术与应用软件工程技术与应用软件开发模型小结:软件开发模型小结:每一种模型都适用于软件开发的某类问题,每一种模型都适用于软件开发的某类问题,它们它们各有优缺点各有优缺点。软件开发组织应该软件开发组织应该选择选择适合于本组织及其管适合于本组织及其管理、人员的软件开发模型,而且随着当前正理、人员的软件开发模型,而且随着当前正在开发的特定产品的特性而变化。在开发的特定产品的特性而变化。在实际开发中,有时也可以把几种模型在实际开发中,有时也可以把几种模型组合组合在一起使用,以便取长补短。在一起使用,以便取长补短。软件工程技术与应用软件工程

27、技术与应用第第2章章 软件开发概述软件开发概述2.1 软件开发的基本活动软件开发的基本活动2.2 软件开发方法的变迁软件开发方法的变迁2.3 面向对象开发方法面向对象开发方法2.4模型驱动的软件开发模型驱动的软件开发软件工程技术与应用软件工程技术与应用第第2章章 软件开发概述软件开发概述2.1 软件开发的基本活动软件开发的基本活动软软件件开开发发时时期期主主要要包包括括需需求求分分析析、软软件件设设计、编码和测试四个阶段。计、编码和测试四个阶段。本本节节介介绍绍这这四四个个阶阶段段的的主主要要任任务务、主主要要活活动以及一些相关的概念。动以及一些相关的概念。软件工程技术与应用软件工程技术与应用

28、2.1.1 需求分析需求分析软件项目中软件项目中4060%的问题都是在需求阶段的问题都是在需求阶段埋下的。埋下的。需求分析要完成什么任务,如何来进行需需求分析要完成什么任务,如何来进行需求分析呢?求分析呢?软件工程技术与应用软件工程技术与应用1.需求分析的任务需求分析的任务第一是通过对问题及其环境的理解、分析和第一是通过对问题及其环境的理解、分析和综合,建立分析模型(综合,建立分析模型(analysis model););第二是在完全地弄清用户对软件系统的确切第二是在完全地弄清用户对软件系统的确切要求的基础上,用要求的基础上,用“软件需求规格说明书软件需求规格说明书”(Software Req

29、uirements Specification,SRS)表达出来。)表达出来。软件工程技术与应用软件工程技术与应用2.需求分析的步骤需求分析的步骤(1)需求获取)需求获取(2)需求提炼:分析建模)需求提炼:分析建模(3)需求描述:编写)需求描述:编写SRS(4)需求验证)需求验证软件工程技术与应用软件工程技术与应用3.快速原型法在需求分析中的应用快速原型法在需求分析中的应用利用各种分析技术和方法,生成一个简化的需求利用各种分析技术和方法,生成一个简化的需求规格说明;规格说明;对需求规格说明进行必要的检查和修改后,确定对需求规格说明进行必要的检查和修改后,确定原型的软件结构、用户界面和数据结构等

30、;原型的软件结构、用户界面和数据结构等;在现有的工具和环境的帮助下快速生成可运行的在现有的工具和环境的帮助下快速生成可运行的软件原型并进行测试、改进;软件原型并进行测试、改进;将原型提交给用户评估并征求用户的修改意见;将原型提交给用户评估并征求用户的修改意见;重复上述过程,直到原型得到用户的认可。重复上述过程,直到原型得到用户的认可。在实际的软件开发中,快速原型法常常被用作一种在实际的软件开发中,快速原型法常常被用作一种有效的需求定义方法。有效的需求定义方法。软件工程技术与应用软件工程技术与应用2.1.2 软件设计软件设计“设计先于设计先于(design before coding)编码编码”

31、,是软件工程方法的一条基本原则。,是软件工程方法的一条基本原则。软件设计一般都包括:软件设计一般都包括:数据设计数据设计体系结构设计体系结构设计接口设计接口设计过程设计等内容。过程设计等内容。软件工程技术与应用软件工程技术与应用1模块与构件模块与构件模块是一个拥有明确定义的输入、输出和模块是一个拥有明确定义的输入、输出和特性的程序实体。特性的程序实体。广义地说,对象也是一种模块。广义地说,对象也是一种模块。在模块设计中要求的在模块设计中要求的高内聚、低耦合高内聚、低耦合等性等性质,在对象设计中仍然适用。质,在对象设计中仍然适用。软件工程技术与应用软件工程技术与应用2.抽象与细化抽象与细化随着软

32、件规模的不断增大,设计的复随着软件规模的不断增大,设计的复杂性也不断增大,抽象杂性也不断增大,抽象(abstraction)便成了控制复杂性的)便成了控制复杂性的基本策略之一。基本策略之一。软件设计其实就是在不同抽象级别考软件设计其实就是在不同抽象级别考虑和处理问题的过程。虑和处理问题的过程。细化是与抽象相反而又互补的一个概细化是与抽象相反而又互补的一个概念。细化的实质就是分解。念。细化的实质就是分解。软件工程技术与应用软件工程技术与应用3.信息隐藏信息隐藏1972年,年,D.L.Parnas提出了把系统分解为提出了把系统分解为模块时应遵守的指导思想,称为信息隐藏模块时应遵守的指导思想,称为信

33、息隐藏(information hiding)。)。在模块内部的数据与过程,把不需要了解在模块内部的数据与过程,把不需要了解这些数据与过程的模块隐藏起来。这些数据与过程的模块隐藏起来。目的是为了目的是为了提高模块的独立性。提高模块的独立性。软件工程技术与应用软件工程技术与应用4.软件复用软件复用OO技术的流行加快了软件复用的实现。技术的流行加快了软件复用的实现。软件工程技术与应用软件工程技术与应用5.分解分解分解(分解(decomposition)是人们处理复杂问)是人们处理复杂问题常用的方法。题常用的方法。在传统的软件工程中,在分析阶段靠分解来在传统的软件工程中,在分析阶段靠分解来画分层画分

34、层DFD图;在设计阶段用分解来实现模图;在设计阶段用分解来实现模块化设计。块化设计。在在OO软件工程中,靠分解来划分类和对象。软件工程中,靠分解来划分类和对象。软件工程技术与应用软件工程技术与应用补充:数据流图补充:数据流图数据流图简称数据流图简称DFDDFD,表示法很简单,只有四种图符,表示法很简单,只有四种图符软件工程技术与应用软件工程技术与应用示例:复印机的图软件工程技术与应用软件工程技术与应用2.1.3 编码编码编码阶段也称为实现编码阶段也称为实现(implementation)阶段。阶段。软件工程技术与应用软件工程技术与应用1编码的任务编码的任务编码的目的,是使用选定的程序设计语编码

35、的目的,是使用选定的程序设计语言,把模块的过程性描述翻译为用该语言,把模块的过程性描述翻译为用该语言书写的源程序(或源代码)。言书写的源程序(或源代码)。软件工程技术与应用软件工程技术与应用2编码的风格编码的风格编码风格(编码风格(coding style)又称程序设计风格。)又称程序设计风格。()使用标准的控制结构()使用标准的控制结构()源程序的文档化()源程序的文档化软件工程技术与应用软件工程技术与应用2.1.4 软件测试软件测试GJMyers在他的名著在他的名著软件测试技巧软件测试技巧一书中,给出了测试的定义:一书中,给出了测试的定义:“软件测试是为了发现错误而执行程序的过程软件测试是

36、为了发现错误而执行程序的过程”。软件工程技术与应用软件工程技术与应用2.2 软件开发方法的变迁软件开发方法的变迁个性化软件开发个性化软件开发结构化软件开发结构化软件开发面向对象软件开发面向对象软件开发软件工程技术与应用软件工程技术与应用2.2.1 程序设计方法的变迁程序设计方法的变迁1从面向过程到面向对象从面向过程到面向对象2.面向对象的程序设计的优势面向对象的程序设计的优势软件工程技术与应用软件工程技术与应用2.2.2 软件开发实践软件开发实践1软件开发中的常见问题软件开发中的常见问题对用户的需求理解不准确对用户的需求理解不准确对需求的改变束手无策对需求的改变束手无策模块不兼容模块不兼容软件

37、维护困难软件维护困难项目的严重缺陷发现较晚项目的严重缺陷发现较晚软件质量低劣或用户使用不方便软件质量低劣或用户使用不方便高负荷下性能低高负荷下性能低不配合的团队力量不配合的团队力量不可靠创建和发布过程不可靠创建和发布过程2原因分析原因分析软件工程技术与应用软件工程技术与应用3软件开发的最佳实践软件开发的最佳实践(1)迭代化开发)迭代化开发软件工程技术与应用软件工程技术与应用(1)迭代化开发)迭代化开发迭代化开发具有以下特点:迭代化开发具有以下特点:允许变更需求允许变更需求逐步集成元素逐步集成元素尽早降低风险尽早降低风险有助于提高团队的士气有助于提高团队的士气生成更高质量的产品生成更高质量的产品

38、保证项目开发进度保证项目开发进度容许产品进行战术改变容许产品进行战术改变迭代流程自身可在进行过程中得到改进和精炼迭代流程自身可在进行过程中得到改进和精炼软件工程技术与应用软件工程技术与应用(2)需求管理)需求管理软件工程技术与应用软件工程技术与应用(3)基于构件的体系结构)基于构件的体系结构构件是实现清晰功能的模块、子系统。构件是实现清晰功能的模块、子系统。构件技术可以为软件系统提供最大的灵活性。构件技术可以为软件系统提供最大的灵活性。构件的特点是:构件的特点是:构件内部的元素之间高内聚、构件之间低耦合;构件内部的元素之间高内聚、构件之间低耦合;整个系统的功能由一组构件相互协作而完成;整个系统

39、的功能由一组构件相互协作而完成;构件之间通过定义明确的接口来使用相互的服务。构件之间通过定义明确的接口来使用相互的服务。构件体现了面向对象技术封装和模块化的思想,既构件体现了面向对象技术封装和模块化的思想,既能够适当隐藏不需要关心的细节,又可以在需要的能够适当隐藏不需要关心的细节,又可以在需要的时候随时展现设计的详细结构,从而有效管理系统时候随时展现设计的详细结构,从而有效管理系统的复杂度。的复杂度。软件工程技术与应用软件工程技术与应用(4)可视化建模)可视化建模可视化建模是指使用语义丰富的图形和文本设计表可视化建模是指使用语义丰富的图形和文本设计表示法来捕获软件设计。示法来捕获软件设计。表示

40、法(例如表示法(例如 UML)允许提高抽象的程度,同时)允许提高抽象的程度,同时保持严格的语法和语义。保持严格的语法和语义。可视化建模具有以下优点:可视化建模具有以下优点:有效管理系统复杂度有效管理系统复杂度增强团队的沟通增强团队的沟通保证模型和代码之间的一致性保证模型和代码之间的一致性统一软件开发生命周期统一软件开发生命周期软件工程技术与应用软件工程技术与应用(5)验证软件质量)验证软件质量在整个软件开发周期中,错误发现的在整个软件开发周期中,错误发现的越晚,单位错误修复成本越高,错误越晚,单位错误修复成本越高,错误的延迟解决必然导致整个项目成本的的延迟解决必然导致整个项目成本的急剧增加。急

41、剧增加。软件自动化测试技术核心的三个最佳软件自动化测试技术核心的三个最佳成功经验是:尽早测试、连续测试、成功经验是:尽早测试、连续测试、自动化测试。自动化测试。软件工程技术与应用软件工程技术与应用2.3 面向对象开发方法面向对象开发方法第一,减少沟通障碍。基于面向对象技术,第一,减少沟通障碍。基于面向对象技术,求解空间中的要素直接而紧密地反映问题空求解空间中的要素直接而紧密地反映问题空间中的要素,参与问题求解的人员可以基于间中的要素,参与问题求解的人员可以基于这条核心线索理解其它人员的工作,从而打这条核心线索理解其它人员的工作,从而打破大量沟通壁垒。破大量沟通壁垒。第二,提高开发生产率。面向对

42、象技术用于第二,提高开发生产率。面向对象技术用于提高开发生产率的途径是提高开发生产率的途径是“复用复用”。第三,增强对变化的适应能力。第三,增强对变化的适应能力。2.3.1面向对象的优势面向对象的优势软件工程技术与应用软件工程技术与应用2.3.2面向对象的核心概念面向对象的核心概念(1)对象(对象(object)(2)类(类(class)(3)继承(继承(inheritance)(4)消息消息(message)软件工程技术与应用软件工程技术与应用2.3.3面向对象的主要技术面向对象的主要技术抽象化抽象化封装性封装性继承性继承性模块化模块化多态性多态性 软件工程技术与应用软件工程技术与应用2.4

43、模型驱动的软件开发模型驱动的软件开发软件开发新方法不断涌现。软件开发新方法不断涌现。本节介绍一种逐渐为人们所接受的软本节介绍一种逐渐为人们所接受的软件开发型方法:模型驱动的软件开发件开发型方法:模型驱动的软件开发(Model Driven Development,MDD)。)。软件工程技术与应用软件工程技术与应用2.4.1 模型驱动架构模型驱动架构MDA2002年初,对象管理组织(年初,对象管理组织(OMG)宣布一)宣布一个新的战略方向:模型驱动架构(个新的战略方向:模型驱动架构(Model Driven Architecture,MDA)。)。模型驱动架构模型驱动架构(MDA)是是OMG提出

44、的新的方法提出的新的方法学,是一种新的系统开发方法学,是一种新的系统开发方法它强调整个系统开发过程由对软件系统的建它强调整个系统开发过程由对软件系统的建模行为驱动,完成系统需求分析、架构设计、模行为驱动,完成系统需求分析、架构设计、构建、测试、部署和运维工作。构建、测试、部署和运维工作。软件工程技术与应用软件工程技术与应用2.4.2 MDA中的软件开发流程中的软件开发流程首先使用平台无关的建模语言如首先使用平台无关的建模语言如UML来搭建来搭建平台无关的模型平台无关的模型PIM;然后根据特定平台和实现语言的转换规则,然后根据特定平台和实现语言的转换规则,将将PIM转换以生成平台相关的模型转换以生成平台相关的模型PSM;最终生成应用程序代码和测试框架。最终生成应用程序代码和测试框架。软件工程技术与应用软件工程技术与应用演讲完毕,谢谢观看!

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!