您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件测试基础课件1-软件工程要点
第一章软件工程要点2本章教学目标及重点教学目标掌握软件、软件危机、软件工程概念了解软件开发技术了解项目管理、配置管理相关知识了解应用生命周期概念和应用生命周期管理方法了解惠普应用生命周期管理方案重点软件工程技术3本章安排1.1软件1.2软件危机1.3软件工程1.4软件开发主流技术1.5软件开发过程中的项目管理1.6软件开发过程中的配置管理1.7应用生命周期管理1.1软件51.1.1软件的概念文档数据程序什么是软件?软件61.1.2软件的类型:按应用范围划分支撑软件支撑各种软件的开发与维护的软件,软件开发环境。•语言编译器•驱动程序•文件系统管理•网络连接系统软件管理计算机硬件与软件资源的程序,同时也是计算机系统的内核与基石。•操作系统•数据库管理系统中间件中间件位于客户机/服务器的操作系统之上,连接多个独立应用程序或独立系统,通过中间件交换信息。•终端仿真中间件•消息中间件•数据访问中间件•交易中间件•过程调用中间件•对象中间件应用软件应用软件是为了某种特定的用途而被开发的软件。•图像浏览器•SAPERP•MSOffice•证券集中交易系统71.1.3软件及其产业的重要意义金融领域•金融服务系统•在线支付•消费卡服务制造领域•生产管理•采购管理•销售管理医疗领域•仪器设备•病历管理•血库管理通信领域•计费管理•积分管理•客户管理软件制造软件是信息化的核心软件产业是增长最快的朝阳产业软件产业是高投入/高产出、无污染、低能耗的绿色产业1.2软件危机91.2.1软件危机的产生20世纪40年代20世纪80年代-至今无序的,崇尚个人编程技巧使用ENIAC编程软件工程取得了可喜成就,但还未从根本上解决软件危机20世纪60年代软件系统规模越来越大,复杂程度越来越高,软件危机开始爆发1968年,北大西洋公约组织在联邦德国召开国际会议,第一次讨论软件危机问题软件工程兴起与发展101.2.2软件危机的影响成本与进度•对软件开发的成本和进度估计不准可维护性•软件难以维护,基本无法重用用户满意度•用户对“已完成”的系统软件不满意文档支持•缺乏必要的文档或文档资料不合格,给开发和维护都带来困难质量•缺少完善的质量评审体系和科学的软件测试规程与时俱进•软件开发的速度跟不上硬件的发展和计算机应用和趋势111.2.3消除软件危机的方法解决途径•组织管理–工程项目管理方法•技术措施–软件开发技术、方法与软件工具具体办法•对计算机软件有一个正确的认识(软件≠程序)•充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目•推广使用在实践中总结出来的开发软件成功技术和方法•开发和使用更好的软件工具121.2.3消除软件危机的方法软件开发工作量分配比例10%~20%其他开发测试40%~50%引入同一变化付出的代价随时间变化的趋势越早开始写代码的人,就是越迟完成代码的人!40%~50%1.3软件工程141.3.1软件工程的概念Text方法工具过程软件工程将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件:•项目计划与估算•需求分析•数据结构•总体设计•编码、测试与维护等软件工具为工程方法提供了自动或半自动的软件支撑环境:•软件工具•软件支撑环境•计算机辅助软件工程(CASE)等将软件工程方法和工具综合起来,以达到合理、及时第进行计算机软件开发的目的。•方法使用的顺序•需交付的文档•变更管理•里程碑管理等151.3.1软件工程的框架•软件产品达到预期功能及性能程度正确性•软件基本结构、实现及文档为用户可用程度可用性•软件开发、运行的整个开销(包括资金开销、时间开销)满足用户要求的程度开销适宜•在有限的时间内完成项目要求进度保证•开发成本低、功能与性能满足需求、易于移植、维护方便以及按时完成开发任务并及时交付软件产品项目成功目标+过程+原则161.3.1软件工程的框架需求•问题分析需求分析设计•概要设计•详细设计实现•把设计结果转换为可执行的程序代码确认•贯穿整个开发过程,对完成的结果进行确认,保证产品满足用户的要求支持•修改和完善活动目标+过程+原则171.3.1软件工程的框架软件工程原则采取适宜的开发模型采用合适的设计方法提供高质量的工程支持重视开发过程的管理控制需求高效率工具和环境的支持满足软件特性目标+过程+原则181.3.1软件工程的本质特征•关注:软件工程关注于大型程序的构造•中心课题:软件工程的中心课题是控制复杂性•控制和管理:软件经常变化•工具与环境:开发软件的效率非常重要•团队精神:和谐地合作是开发软件的关键•有效支持:软件必须有效地支持它的用户•创造产品:在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品201.3.2软件生命周期定义设计部署运行维护测试实施•便于不同人员分工协从,降低软件工程实行难度•在每个阶段采用科学的管理技术和方法,并在每阶段结束之前从管理和技术角度进行严格审查211.3.2软件生命周期模型:瀑布模型1970年温斯顿•罗伊斯(WinstonRoyce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。231.3.2软件生命周期模型:V模型V模型是在瀑布模型基础上演变而来,由于将整个开发过程构造成一个V字形而得名。V模型强调软件开发的协作和速度,将软件实现和验证有机地结合起来,在保证较高的软件质量情况下缩短开发周期。25敏捷开发1.3.3敏捷开发过程敏捷开发是一种以用户的需求进化为核心、迭代、循序渐进的开发方法。软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。26敏捷开发强调软件开发对未来可能出现的变化和不确定性做出全面反应总体目标是尽可能早地、持续地对有价值软件的交付主要是用于需求模糊或快速变化的前提下,小型开发团队的软件开发活动1.3.3敏捷开发过程变早快28敏捷开发的12条原则:•最优先要做的是通过尽早、持续交付有价值的软件来使客户满意;•即使在开发的后期,需求变更也是允许的;•经常交付可工作软件;•在整个项目开发期间,业务人员和开发人员最好在一起工作;•强化激励机制,为受激励的个人单独构建项目;•在团队内部,最富有效果和效率的信息传递方法是面对面交谈;•可工作软件是进度的首要度量标准;•敏捷过程提倡可持续的开发速度;•不断地关注优秀的技能和好的设计,增强敏捷能力;•简化:尽量简化你所要做的工作;•好的架构、需求和设计出自于组织团队自身;•团队要定期的反省如何更有效地工作,并相应地调整自己的行为。1.3.3敏捷开发过程30敏捷开发的过程允许项目团队调整并合理安排任务理解敏捷开发方法的易变性并制定计划精简并维持最基本的工作产品强调增量交付策略快速向客户提供适应产品类型和运行环境的可运行软件1.3.3敏捷开发过程1.4软件开发主流技术32软件系统体系结构应用模式大体上分为•主机终端模式•文件服务器模式•C/S模式•B/S模式1.4.1C/S与B/S结构33•C/S结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,克服了终端/主机结构中主机负担过重,用户界面不友好等缺点,因而得到了广泛的应用。C/S结构1.4.1C/S与B/S结构34主要有两层C/S结构和三层C/S结构C/S结构•两层结构的C/S前端是客户机(通常是PC);后端是服务器,运行数据库管理系统,提供数据库的查询和管理。•三层结构的C/S模式是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次,即客户机、服务器和中间件。1.4.1C/S与B/S结构35C/S模式体系结构示意图三层C/S结构1.4.1C/S与B/S结构36通常,一个典型的C/S应用程序由4个部分组成:•用户界面的显示逻辑,主要是各种图形用户界面GUI;•应用逻辑(是根据输入数据来完成业务处理和规则的应用代码;•事务逻辑(这是应用程序中用DML语句编写的代码);•数据管理(这是应用程序中由DBMS完成访问实际数据库的程序)。C/S环境下应用成份的分布1.4.1C/S与B/S结构37C/S环境下应用成份的分布C/S环境下组成应用程序的4个组成部分1.4.1C/S与B/S结构38特点功能划分清晰共享资源不对称协议定位透明性基于消息的交换可扩展性C/S体系结构的技术特点1.4.1C/S与B/S结构40B/S(Browser/Server,浏览器/服务器)模式又称B/S结构•B/S模式是指在TCP/IP的支持下,以HTTP为传输协议,客户端通过Browser访问Web服务器以及与之相连的后台数据库的技术及体系结构。B/S结构1.4.1C/S与B/S结构41B/S的优势1.4.1C/S与B/S结构•简化客户端•简化系统的开发和维护•用户操作变得简单•适用于网上信息的发布42B/S结构B/S模式下的开发技术1.4.1C/S与B/S结构•Web应用三层架构模式•客户端技术•服务端技术46让软件开发像机械制造工业一样,可以用各种标准和非标准的零件来进行组装。软件构件化概念1.4.2软件构件技术47软件的构件化和集成技术的目标•软件系统可以由不同厂商提供的,用不同语言开发的,在不同硬件平台上实现的软件构件,方便地、动态地集成。•这些构件要求能互操作,它们可以放在本地的计算机上,也可以分布式地放置在网上异构环境下的不同结点上。1.4.2软件构件技术50软件重用1.4.3软件重用技术将已有的软件成分用于构造新的软件系统。可以被重用的软件成分一般称作可重用构件,无论对可重用构件原封不动地使用还是作适当的修改后再使用,只要是用来构造新软件,则都可称做重用。55•SOA(Service-OrientedArchitecture,也叫面向服务的体系结构或面向服务架构)是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。1.4.4SOA技术57SOA三大基本特征独立的功能实体大数据量低频率访问基于文本的消息传递1.4.4SOA技术58面向服务架构的原则SOA的实践必须遵循以下原则业务驱动服务,服务驱动技术业务敏捷是基本的业务需求一个成功的SOA总在变化之中1.4.4SOA技术59实施SOA可带来如下好处1.4.4SOA技术•SOA可通过互联网服务器发布,从而突破企业内网的限制,实现与供应链上下游伙伴业务的紧密结合。•SOA与平台无关,减少了业务应用实现的限制。•SOA具有低耦合性特点,增加和减少业务伙伴对整个业务系统的影响较低。•SOA具有可按模块分阶段进行实施的优势。•SOA的实施并不会带来投资成本。•虚拟化技术将成为SOA应用推动因素。1.5软件开发过程中的项目管理61项目管理•就是在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求。实施软件项目管理的根本目的•通过对成本、人员、进度、质量、风险等进行分析和管理,使软件项目的整个生命周期都能在有效的控制下,按照预定的成本、进度、质量顺利完成。1.5.1项目管理的重要性62•软件项目管理的内容主要包括软件项目需求管理、软件项目估算与进度管理、软件项目配置管理、软件项目风险管理、软件项目质量管理、软件项目资源管理。1.5.2软件项目管理的内容63软件项目需求管理•需求管理是一种获取、组织并记录系统需求的系统化方案,它使用户和实现用户需求的软件项目之间达成共识。需求管理的目标•控制系统软件需求,为软件工程和管理建立基准线,使软件计划、产品和活动与软件需求保持一致。需求管理包括•需求评审、需求变更控制和需求跟踪等内容,其中需求变更控制管理,是软件项目管理的核心和关键。1.5.2软件项目管理的内容64软件项目估算与进度管理1.5.2软件项目管理的内容•确定项目范围和目标•工作量的估算•活动计划的编制•资源分配管理•风险管理•监督和控制651.5.3软件项目管理中存在的误区及对策软件项目管理中存在的误区•项目经理不够专业•项目计划缺乏纲领性•缺乏有效的管理意识•缺乏有效
本文标题:软件测试基础课件1-软件工程要点
链接地址:https://www.777doc.com/doc-6854884 .html