软件工程技术与应用_第1页
软件工程技术与应用_第2页
软件工程技术与应用_第3页
软件工程技术与应用_第4页
软件工程技术与应用_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

软件工程技术与应用softwareEngineeringComputerCenterEastChinaUniversityofScienceandTechnologyEditby胡庆春第3章面向对象方法

第4章统一建模语言UML

第5章面向对象分析和设计

第6章面向对象的测试

第7章软件项目管理

第1章绪论第2章软件开发概述

第1章绪论1.1软件与软件工程1.2软件工程的研究内容1.3软件开发模型第1章绪论由于软件的发展,使计算机应用逐步渗透到社会生活的各个角落,使各行各业都发生很大的变化。对软件的品种、数量、功能和质量等提出了越来越高的要求。软件开发过程、方法、工具和环境的研究,软件工程应运而生。本章介绍软件和软件工程的基本概念,包括软件、软件危机、软件工程学以及软件开发模型等内容。1.1软件与软件工程从20世纪60年代以来,软件也从规模、功能等方面得到了很大的发展,人们对软件质量的要求也越来越高。什么是软件,软件有哪些特征呢?1.1.1软件1.软件的定义有些初学者认为软件就是程序,这个理解是不完全的。美国著名的软件工程专家R.S.Pressman的定义:“软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述程序的操作和使用的文档。”可以简明地表述,“软件=程序

+数据

+文档”。软件被划分为系统软件、应用软件和介于这两者之间的中间件。2.软件的特征软件开发不同于硬件设计软件生产不同于硬件制造软件维护不同于硬件维修3.软件危机出现软件危机的原因。软件危机,使许多产业界人士认识到必须把软件生产从个人化方式改变为工程化方式,从而导致了软件工程的诞生。1.1.2软件工程1.软件工程的概念软件工程的基本理念是“按工程的概念、原理、技术和方法开发与维护计算机软件”。“软件工程”一词,首先是1968年北大西洋公约组织(NATO)在联邦德国召开的一次会议上提出的。人们从不同的角度,给软件工程下过各种定义。但是不论有多少种说法,它的中心思想,是把软件当作一种工业产品,要求“采用工程化的原理与方法对软件进行计划、开发和维护”。质量焦点过程方法软件工程三个要素:方法、工具、过程---R.S.Pressman工具2.软件件工程程的基基本原原则1983年,B.W.Boehm提出了了著名名的软软件工工程七七条基基本原原理。。软件工工程围围绕工工程设设计、、工程程支持持以及及工程程管理理,提提出了了以下下四项项基本本原则则:第一,选选取适宜宜开发范范型。第二,采采用合适适的设计计方法。。第三,提提供高质质量的工工程支持持。第四,重重视开发发过程的的管理。。1.2软件工程程的研究究内容软件工程程学主要要有两个个分支::软件开开发技术术和软件件工程管管理。本节主要要介绍软软件开发发技术的的相关内内容。1.2.1软件开发发过程软件开发发过程是是指开发发一个最最终能满满足需求求且达到到目标的的软件产产品所需需要的步步骤。1.2.2软件开发发方法早期的程程序设计计基本上上属于个个人活动动性质,,程序员员各行其其是,并并无统一一的方法法可循;;这时的软软件开发发方法称称为个性性化软件件开发((IndividualizedSoftwareDevelopment)。1.2.2软件开发发方法20世纪60年代后期期兴起的的结构化化开发方方法。随后,人人们又认认识到编编写程序序仅是软软件开发发过程中中的一个个环节。。有效的开开发应该该包括““需求分分析”、、“软件件设计””、“编编码”等等多个阶阶段。结构化的的思想扩扩展到分分析阶段段和设计计阶段,,于是形形成了““结构构化分析析”与与“结构构化设计计”等结结构化软软件开发发(StructuredSoftwareDevelopment)。1.2.2软件开发发方法80年代以后后出现的的C++、Java等语言,,促进了了面向对对象程序序设计的的广泛流流行。仅仅使用用面向对对象程序序设计不不会产生生最好的的效果。。只有在在软件开开发的早早期乃至至全过程程都采用用面向对对象技术术,才能能更好地地发挥该该技术的的固有优优势。于是,形成成了包括““面向对象象需求分析析—面向对象设设计—面向对象编编码”在内内的面向对对象软件开开发(ObjectOrientedSoftwareDevelopment)方法。1.2.3软件开发工工具1.软件工具编译程序、、编辑程序序、连接程程序以及支支持它们的的计算机操操作系统,,都属于软软件工具。。例如:编码码阶段常用用的C和VVB。2.软件工程环环境方法与工具具相结合,,再加上配配套的软、、硬件支持持就形成环环境。软件工程环环境(softwareengineeringenvironment,简称SE2)开发工具的的作用与功功能计算机辅助助软件工程程CASE作用认识与描述述系统需求求保存与管理理开发过程程中的信息息代码的生成成文档的编制制与生成软件项目的的管理开发工具的的分类分类方法按应用阶段段划分按功能划分分设计工具分析工具项目管理软件配置质量保证分析设计计划工具界面开发客户服务器器Web开发IBMRational工具Rational公司是专门门从事CASE工具研制与与开发的软软件公司,,2003年被IBM公司收购。。该公司所所研发的Rational系列软件是是完整的CASE集成工具,,贯穿从需需求分析到到软件维护护的整个软软件生存周周期。需求分析与与设计工具具产品主要构构成测试工具软件配置管管理工具RosePurifyPlusRobotClearCase北大青鸟工工具北大青鸟系系列CASE工具北京北北大青鸟软软件有限公公司开发研研制的,在在国内有较较高的知名名度,北京京大学软件件工程国家家工程研究究中心就设设在该公司司。产品主要构构成面向对象软件开发工具集

JBOO构件库管理系统

JBCLMS项目管理与质量保证

JBCMJBPMJBCCM软件测试系统Safepro微软版本管管理器—VSS版本管理是是软件配置置管理中的的核心工作作,由Microsoft公司开发的的VisualSourceSafe6.0使用用非非常常广广泛泛。。产品品主主要要功功能能文件检入与检出版本控制

文件的拆分与共享权限管理1.3软件件开开发发模模型型1.3.1线性性模模型型1.3.2原型型模模型型1.3.3演化化模模型型增量量模模型型螺旋旋模模型型1.3.4基于于构构件件的的模模型型1.3.5形式式化化模模型型转换换模模型型净室室模模型型一个个软软件件从从开开始始计计划划起起,,到到废废弃弃不不用用止止,,称称为为软软件件的的生生存存周周期期。。一般般来来说说,,软软件件生生存存周周期期包包括括计划划、、开开发发与与运运行行三个个时时期期,,每每一一时时期期又又可可细细分分为为若若干干更更小小的的阶阶段段。。人的的生生存存周周期期婴儿儿———幼儿儿———儿童童———少年年———青年年———中年年———老年年———死亡亡软件件的的生生存存周周期期软件件计计划划软件件开开发发软件件运运行行问题题定定义义可行行性性研研究究需求求分分析析概要要设设计计详细细设设计计编码码测试试维护护或或退退役役软件件生生存存周周期期软件件定定义义阶阶段段问题定义可行性分析立项或签订合合同软件开发阶段段需求分析软件设计编码与测试发布或安装验验收软件运行阶段段软件的使用、、运行软件维护软件开发模型型软件开发过程程概括,是软软件工程思想想的具体化;;它是跨越整个个软件生存周周期的各个阶阶段所需要的的全部工作与与任务的结构构框架。1.3.1线性模型----瀑布模型可行性分析需求分析设计计编码码测试试维护定义阶段开发阶段运行阶段瀑布模型的特特点:瀑布模型的适适用范围阶段间具有顺顺序性和依赖赖性每个阶段必须须完成规定的的文档;每个阶段结束束前完成文档档审查,及早改正错误误,但:实际的项目开开发很难严格格按该模型进进行。客户往往很难难清楚地给出出所有的需求求,而该模型型却要求如此此。软件的实际情情况必须到项项目开发的后后期客户才能能看到,这要要求客户有足足够的耐心。用户的需求非非常清楚全面面,且在开发发过程中没有有或很少变化化开发人员对软软件的应用领领域很熟悉。。用户的使用环环境非常稳定定。开发工作对用用户参与的要要求很低。1.3.2原型模型用户测试运行原型建造/修改原型听取用户意见需求分析原型开发最终系统设计计原型评价最终系统实现现用户反馈原型模型的特特点:原型模型的适适用范围可以得到比较较良好的需求求定义,容易易适应需求的的变化。开发费用低、、开发周期短短、维护容易易且对用户更更友好。客户与开发者者对原型理解解不同准确的原型设设计比较困难难不利于开发人人员的创新对所开发的领领域比较熟悉悉而且有快速速的原型开发发工具进行产品移植植或升级时,,原型模型是是非常适合的的。1.3.3演化模型1.增量模型规格说明设计实现和集成交付客户增量1规格说明设计实现和集成交付客户增量2规格说明设计实现和集成交付客户增量n2.螺旋模型集成测试螺旋模型螺旋模型将瀑瀑布模型与演演化模型结合合起来,并且且加入两种模模型均忽略了了的风险分析。螺旋模型沿着着螺线旋转,,自内向外每每旋转一圈便便开发出更完完善的一个新新版本。制定计划确定软件目标标,选定实施施方案,弄清清项目开发的的限制条件;;风险分析分析所选方案案,考虑如何何识别和消除除风险;实施工程实施软件开发发;客户评估评价开发,提提出修正建议议。1.3.4基于构件的模模型确定候选构件查找构件库复用所查到构件开发候选构件开始下一轮迭代集成构件融合了螺旋模模型的特征支持软件开发发的迭代方法法基于构件的开开发模型特点点采用了先进的的面向对象技技术。基于构件库的的开发,这是是软件复用的的基础,开发发速度快。融合了螺旋模模型特征支持软件开发发的迭代方法法。1.3.5形式化模型1.转换模型形式化规格说明与需求比较后修正变换2变换1变换n测试形式化开发记录系统需求目标系统2.净室模型需求收集盒结构规约形式化设计统计性使用测试正确性证明代码生成与检查测试计划认证增量1增量2增量n需求收集盒结构规约形式化设计统计性使用测试正确性证明代码生成与检查测试计划认证需求收集盒结构规约形式化设计统计性使用测试正确性证明代码生成与检查测试计划认证软件开发模型型小结:每一种模型都都适用于软件件开发的某类类问题,它们们各有优缺点。软件开发组织织应该选择适合于本组织织及其管理、、人员的软件件开发模型,,而且随着当当前正在开发发的特定产品品的特性而变变化。在实际开发中中,有时也可可以把几种模模型组合在一起使用,,以便取长补补短。第2章软件开发发概述2.1软件开发的基基本活动2.2软件开发方法法的变迁2.3面向对象开发发方法2.4模型驱动的软软件开发第2章软件开发发概述2.1软件开发的基基本活动软件开发时期期主要包括需需求分析、软软件设计、编编码和测试四四个阶段。本节介绍这四四个阶段的主主要任务、主主要活动以及及一些相关的的概念。2.1.1需求分析软件项目中40~60%的问题都是在在需求阶段埋埋下的。需求分析要完完成什么任务务,如何来进进行需求分析析呢?1.需求分析的任任务第一是通过对对问题及其环环境的理解、、分析和综合合,建立分析析模型(analysismodel);第二是在完全全地弄清用户户对软件系统统的确切要求求的基础上,,用“软件需需求规格说明明书”(SoftwareRequirementsSpecification,SRS)表达出来。。2.需求分析的步步骤(1)需求获取(2)需求提炼::分析建模(3)需求描述::编写SRS(4)需求验证3.快速原型法在在需求分析中中的应用利用各种分析析技术和方法法,生成一个个简化的需求求规格说明;;对需求规格说说明进行必要要的检查和修修改后,确定定原型的软件件结构、用户户界面和数据据结构等;在现有的工具具和环境的帮帮助下快速生生成可运行的的软件原型并并进行测试、、改进;将原型提交给给用户评估并并征求用户的的修改意见;;重复上述过程程,直到原型型得到用户的的认可。在实际的软件件开发中,快快速原型法常常常被用作一一种有效的需需求定义方法法。2.1.2软件设计“设计先于(designbeforecoding)编码”,是软软件工程方法法的一条基本本原则。软件设计一般般都包括:数据设计体系结构设计计接口设计过程设计等内内容。1.模块与构件件模块是一个拥拥有明确定义义的输入、输输出和特性的的程序实体。。广义地说,对对象也是一种种模块。在模块设计中中要求的高内聚、低耦耦合等性质,在对对象设计中仍仍然适用。2.抽象与细化随着软件规模模的不断增大大,设计的复复杂性也不断断增大,抽象象(abstraction)便成了控制制复杂性的基基本策略之一一。软件设计其实实就是在不同同抽象级别考考虑和处理问问题的过程。。细化是与抽象象相反而又互互补的一个概概念。细化的的实质就是分分解。3.信息隐隐藏1972年,D.L.Parnas提出了了把系系统分分解为为模块块时应应遵守守的指指导思思想,,称为为信息息隐藏藏(informationhiding)。在模块块内部部的数数据与与过程程,把把不需需要了了解这这些数数据与与过程程的模模块隐隐藏起起来。。目的是是为了了提高模模块的的独立立性。。4.软件复复用OO技术的的流行行加快快了软软件复复用的的实现现。5.分解分解((decomposition)是人人们处处理复复杂问问题常常用的的方法法。在传统统的软软件工工程中中,在在分析析阶段段靠分分解来来画分分层DFD图;在在设计计阶段段用分分解来来实现现模块块化设设计。。在OO软件工工程中中,靠靠分解解来划划分类类和对对象。。补充充::数数据据流流图图数据据流流图图简简称称DFD,表表示示法法很很简简单单,,只只有有四四种种图图符符示例例::复复印印机机的的DDFFDD图图2.1.3编码码编码码阶阶段段也也称称为为实实现现(implementation)阶段段。。1.编编码码的的任任务务编码码的的目目的的,,是是使使用用选选定定的的程程序序设设计计语语言言,,把把模模块块的的过过程程性性描描述述翻翻译译为为用用该该语语言言书书写写的的源源程程序序((或或源源代代码码))。。2.编编码码的的风风格格编码码风风格格((codingstyle)又又称称程程序序设设计计风风格格。。(11))使使用用标标准准的的控控制制结结构构(22))源源程程序序的的文文档档化化2.1.4软件件测测试试G.J.Myers在他他的的名名著著《软件件测测试试技技巧巧》一书书中中,,给给出出了了测测试试的的定定义义::“软软件件测测试试是是为为了了发发现现错错误误而而执执行行程程序序的的过过程程””。。2.2软件件开开发发方方法法的的变变迁迁个性性化化软软件件开开发发结构构化化软软件件开开发发面向向对对象象软软件件开开发发2.2.1程序序设设计计方方法法的的变变迁迁1.从从面面向向过过程程到到面面向向对对象象2.面向向对对象象的的程程序序设设计计的的优优势势2.2.2软件件开开发发实实践践1.软软件件开开发发中中的的常常见见问问题题对用用户户的的需需求求理理解解不不准准确确对需需求求的的改改变变束束手手无无策策模块块不不兼兼容容软件件维维护护困困难难项目目的的严严重重缺缺陷陷发发现现较较晚晚软件件质质量量低低劣劣或或用用户户使使用用不不方方便便高负负荷荷下下性性能能低低不配配合合的的团团队队力力量量不可可靠靠创创建建和和发发布布过过程程2.原原因因分分析析3.软软件件开开发发的的最最佳佳实实践践(1)迭迭代代化化开开发发(1)迭代化化开发迭代化开开发具有有以下特特点:允许变更更需求逐步集成成元素尽早降低低风险有助于提提高团队队的士气气生成更高高质量的的产品保证项目目开发进进度容许产品品进行战战术改变变迭代流程程自身可可在进行行过程中中得到改改进和精精炼(2)需求管管理(3)基于构构件的体体系结构构构件是实实现清晰晰功能的的模块、、子系统统。构件技术术可以为为软件系系统提供供最大的的灵活性性。构件的特特点是::构件内部部的元素素之间高高内聚、、构件之之间低耦耦合;整个系统统的功能能由一组组构件相相互协作作而完成成;构件之间间通过定定义明确确的接口口来使用用相互的的服务。。构件体现现了面向向对象技技术封装装和模块块化的思思想,既既能够适适当隐藏藏不需要要关心的的细节,,又可以以在需要要的时候候随时展展现设计计的详细细结构,,从而有有效管理理系统的的复杂度度。(4)可视化建模模可视化建模是是指使用语义义丰富的图形形和文本设计计表示法来捕捕获软件设计计。表示法(例如如UML)允许提高抽抽象的程度,,同时保持严严格的语法和和语义。可视化建模具具有以下优点点:有效管理系统统复杂度增强团队的沟沟通保证模型和代代码之间的一一致性统一软件开发发生命周期(5)验证软件质质量在整个软件开开发周期中,,错误发现的的越晚,单位位错误修复成成本越高,错错误的延迟解解决必然导致致整个项目成成本的急剧增增加。软件自动化测测试技术核

温馨提示

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

评论

0/150

提交评论