《软件测试基础课件1-软件工程要点.pptx》由会员分享,可在线阅读,更多相关《软件测试基础课件1-软件工程要点.pptx(88页珍藏版)》请在三一办公上搜索。
1、第一章 软件工程要点,本章教学目标及重点,教学目标掌握软件、软件危机、软件工程概念了解软件开发技术了解项目管理、配置管理相关知识了解应用生命周期概念和应用生命周期管理方法了解惠普应用生命周期管理方案重点软件工程技术,本章安排,1.1 软件1.2 软件危机1.3 软件工程1.4 软件开发主流技术1.5 软件开发过程中的项目管理1.6 软件开发过程中的配置管理1.7 应用生命周期管理,1.1 软件,1.1.1 软件的概念,1.1.2 软件的类型:按应用范围划分,1.1.3 软件及其产业的重要意义,金融领域,金融服务系统在线支付消费卡服务,制造领域,生产管理采购管理销售管理,医疗领域,仪器设备病历管
2、理血库管理,通信领域,计费管理积分管理客户管理,软件,金融,制造,通信,医疗,政务,1.2 软件危机,1.2.1 软件危机的产生,20世纪40年代,20世纪80年代-至今,无序的,崇尚个人编程技巧,使用ENIAC编程,软件工程取得了可喜成就,但还未从根本上解决软件危机,20世纪60年代,软件系统规模越来越大,复杂程度越来越高,软件危机开始爆发,1968 年,北大西洋公约组织在联邦德国召开国际会议,第一次讨论软件危机问题,软件工程兴起与发展,1.2.2 软件危机的影响,1.2.3 消除软件危机的方法,解决途径组织管理工程项目管理方法技术措施软件开发技术、方法与软件工具具体办法对计算机软件有一个正
3、确的认识(软件程序)充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目推广使用在实践中总结出来的开发软件成功技术和方法开发和使用更好的软件工具,1.2.3 消除软件危机的方法,软件开发工作量分配比例,10% 20%,40% 50%,引入同一变化付出的代价随时间变化的趋势,越早开始写代码的人,就是越迟完成代码的人!,40% 50%,1.3 软件工程,1.3.1 软件工程的概念,Text,方法,工具,过程,软件工程,将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件:项目计划与估算需求分析数据结构总
4、体设计编码、测试与维护等,软件工具为工程方法提供了自动或半自动的软件支撑环境:软件工具软件支撑环境计算机辅助软件工程(CASE)等,将软件工程方法和工具综合起来,以达到合理、及时第进行计算机软件开发的目的。方法使用的顺序需交付的文档变更管理里程碑管理等,1.3.1 软件工程的框架,目标+过程+原则,1.3.1 软件工程的框架,目标+过程+原则,1.3.1 软件工程的框架,目标+过程+原则,1.3.1 软件工程的本质特征,关注:软件工程关注于大型程序的构造中心课题:软件工程的中心课题是控制复杂性控制和管理:软件经常变化工具与环境:开发软件的效率非常重要团队精神:和谐地合作是开发软件的关键有效支持
5、:软件必须有效地支持它的用户创造产品:在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品,1.3.1 常用的软件开发方法,1.3.2 软件生命周期,便于不同人员分工协从,降低软件工程实行难度在每个阶段采用科学的管理技术和方法,并在每阶段结束之前从管理和技术角度进行严格审查,1.3.2 软件生命周期模型:瀑布模型,1970年温斯顿罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。,1.3.2 软件生命周期模型:瀑布模型特点及应用场景,1.3.2 软件生命周期模型:V模型,V模型是在瀑布模型基础上演变而来,由
6、于将整个开发过程构造成一个V字形而得名。V模型强调软件开发的协作和速度,将软件实现和验证有机地结合起来,在保证较高的软件质量情况下缩短开发周期。,软件生命周期模型,迭代模型,1.3.2 软件工程生命周期,敏捷开发,1.3.3 敏捷开发过程,敏捷开发是一种以用户的需求进化为核心、迭代、循序渐进的开发方法。 软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。,敏捷开发,1.3.3 敏捷开发过程,变,早,快,敏捷开发,1.3.3 敏捷开发过程,敏捷开发的12条原则:最优先要做的是通过尽早、持续交付有价值的软件来使客户满意;即使在开发的后期,需求变更也是允许的;经常
7、交付可工作软件;在整个项目开发期间,业务人员和开发人员最好在一起工作;强化激励机制,为受激励的个人单独构建项目;在团队内部,最富有效果和效率的信息传递方法是面对面交谈;可工作软件是进度的首要度量标准;敏捷过程提倡可持续的开发速度;不断地关注优秀的技能和好的设计,增强敏捷能力;简化:尽量简化你所要做的工作;好的架构、需求和设计出自于组织团队自身;团队要定期的反省如何更有效地工作,并相应地调整自己的行为。,1.3.3 敏捷开发过程,敏捷开发的方法,1.3.3 敏捷开发过程,敏捷开发的过程,1.3.3 敏捷开发过程,1.4 软件开发主流技术,软件系统体系结构应用模式大体上分为,主机终端模式文件服务器
8、模式C/S模式B/S模式,1.4.1 C/S与B/S结构,C/S结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,克服了终端/主机结构中主机负担过重,用户界面不友好等缺点,因而得到了广泛的应用。,C/S结构,1.4.1 C/S与B/S结构,主要有两层C/S结构和三层C/S结构,C/S结构,两层结构的C/S前端是客户机(通常是PC);后端是服务器,运行数据库管理系统,提供数据库的查询和管理。三层结构的C/S模式是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次,即客户机、服务器和中间件。,1.4.1 C/S与B/S结构,C/S模式体系结构示意图,三层C/
9、S结构,1.4.1 C/S与B/S结构,通常,一个典型的C/S应用程序由4个部分组成:用户界面的显示逻辑,主要是各种图形用户界面GUI;应用逻辑(是根据输入数据来完成业务处理和规则的应用代码;事务逻辑(这是应用程序中用DML语句编写的代码);数据管理(这是应用程序中由DBMS完成访问实际数据库的程序)。,C/S环境下应用成份的分布,1.4.1 C/S与B/S结构,C/S环境下应用成份的分布,C/S环境下组成应用程序的4个组成部分,1.4.1 C/S与B/S结构,C/S体系结构的技术特点,1.4.1 C/S与B/S结构,客户端主要开发工具和常用技术,1.4.1 C/S与B/S结构,B/S(Bro
10、wser/Server,浏览器/服务器)模式又称B/S结构B/S模式是指在TCP/IP的支持下,以HTTP为传输协议,客户端通过Browser访问Web服务器以及与之相连的后台数据库的技术及体系结构。,B/S结构,1.4.1 C/S与B/S结构,B/S的优势,1.4.1 C/S与B/S结构,简化客户端简化系统的开发和维护用户操作变得简单适用于网上信息的发布,B/S结构,B/S模式下的开发技术,1.4.1 C/S与B/S结构,Web应用三层架构模式客户端技术服务端技术,客户端,HTML语言Java Applets 脚本程序CSS DHTML 插件技术VRML技术,服务端,服务器技术 公共网关借口
11、技术 PHP技术ASP技术ASP.NET技术Servlet/JSP技术JavaBeans技术Ajax技术,1.4.1 C/S与B/S结构,提供应用程序的用户界面,用于显示数据和接收用户输入的数据,为用户提供交互式操作的界面。,针对表现层的具体业务功能,调用数据访问层的方法来实现,是数据访问层与表现层之间进行数据转换的桥梁,实现对数据的保存和读取操作,如数据的增添、删除、修改、更新、查找等,为业务逻辑层提供数据服务,Web应用三层架构模式,1.4.1 C/S与B/S结构,目前,在软件开发过程中用的较多的是MVC应用架构模式使用MVC的目的是将创建和操作数据的代码分离即模型、试图、控制器的分离。,
12、用户界面表现层,业务逻辑层,数据访问层,Web应用三层架构模式,1.4.1 C/S与B/S结构,软件构件化概念,1.4.2 软件构件技术,软件的构件化和集成技术的目标软件系统可以由不同厂商提供的,用不同语言开发的,在不同硬件平台上实现的软件构件,方便地、动态地集成。这些构件要求能互操作,它们可以放在本地的计算机上,也可以分布式地放置在网上异构环境下的不同结点上。,1.4.2 软件构件技术,1.4.2 软件构件技术,三种代表性的构件技术流派,COMJavaBeanCORBA,三种构件模型的特点,1.4.2 软件构件技术,软件重用,1.4.3 软件重用技术,将已有的软件成分用于构造新的软件系统。可
13、以被重用的软件成分一般称作可重用构件,无论对可重用构件原封不动地使用还是作适当的修改后再使用,只要是用来构造新软件,则都可称做重用。,软件重用方式分类,1.4.3 软件重用技术,软件重用级别,1.4.3 软件重用技术,代码的重用设计的重用分析的重用测试信息的重用,1.4.3 软件重用技术,重用的重用件建立重用途径的一些建议软件重用的困难面向对象方法对软件重用的支持,重用技术对面向对象方法的支持,1.4.3 软件重用技术,SOA(Service-Oriented Architecture,也叫面向服务的体系结构或面向服务架构)是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定
14、任务的独立功能实体实现的一种软件系统架构。,1.4.4 SOA技术,SOA具有的特性,1.4.4 SOA技术,SOA服务具有平台独立的自我描述XML文档。SOA服务用消息进行通信,该消息通常使用XML Schema来定义。SOA服务通过一个扮演目录列表角色的登记处来进行维护。每项SOA服务都有一个与之相关的服务品质。,SOA三大基本特征,1.4.4 SOA技术,面向服务架构的原则,1.4.4 SOA技术,实施SOA可带来如下好处,1.4.4 SOA技术,SOA可通过互联网服务器发布,从而突破企业内网的限制,实现与供应链上下游伙伴业务的紧密结合。SOA与平台无关,减少了业务应用实现的限制。SOA
15、具有低耦合性特点,增加和减少业务伙伴对整个业务系统的影响较低。SOA具有可按模块分阶段进行实施的优势。SOA的实施并不会带来投资成本。虚拟化技术将成为SOA应用推动因素。,1.5 软件开发过程中的项目管理,项目管理就是在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求。实施软件项目管理的根本目的通过对成本、人员、进度、质量、风险等进行分析和管理,使软件项目的整个生命周期都能在有效的控制下,按照预定的成本、进度、质量顺利完成。,1.5.1 项目管理的重要性,软件项目管理的内容主要包括软件项目需求管理、软件项目估算与进度管理、软件项目配置管理、软件项目风险管理、软件
16、项目质量管理、软件项目资源管理。,1.5.2 软件项目管理的内容,软件项目需求管理需求管理是一种获取、组织并记录系统需求的系统化方案,它使用户和实现用户需求的软件项目之间达成共识。需求管理的目标控制系统软件需求,为软件工程和管理建立基准线,使软件计划、产品和活动与软件需求保持一致。需求管理包括需求评审、需求变更控制和需求跟踪等内容,其中需求变更控制管理,是软件项目管理的核心和关键。,1.5.2 软件项目管理的内容,软件项目估算与进度管理,1.5.2 软件项目管理的内容,确定项目范围和目标工作量的估算活动计划的编制资源分配管理风险管理监督和控制,1.5.3 软件项目管理中存在的误区及对策,软件项
17、目管理中存在的误区,项目经理不够专业项目计划缺乏纲领性缺乏有效的管理意识缺乏有效的沟通制度和机制风险管理意识淡泊项目干系人的不确定性缺乏项目团队的合理分工,解决软件项目管理中存在的误区的有效策略,1.5.3 软件项目管理中存在的误区及对策,项目经理接受系统的项目管理知识培训室非常必要的计划的制定需要在一定条件的限制和假设之下不断完善加强项目管理方面的培训并考核制定有效的沟通制度和沟通机制掌握项目风险管理所必备的知识实现干系人的需求和愿望项目经理应对项目成员的责任进行合理的分配和明示,1.6 软件开发过程中的配置管理,1.6.1 软件配置管理的概念,软件配置管理(以下简称SCM,Software
18、 Configuration Management)定义是指在开发过程中各阶段,管理计算机程序演变的学科。即配置管理是对产品进行标识、存储和控制,以维护其完整性、可追溯性以及正确性的学科。,软件配置管理是指一套管理软件开发和软件维护以及其中各种中间软件产品的方法和规则,通过在特定时刻选择软件配置(一组中间软件产品及描述),系统地控制对配置的修改,并在整个软件生存周期中维护配置的完整性和可追踪性。配置管理是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理过程是对处于不断演化、完善过程中的软件产品的管理过程。,软件配置管理定义的理解,1.6.1 软件配置管理的
19、概念,配置管理对软件开发的重要意义,1.6.1 软件配置管理的概念,软件配置项,1.6.1 软件配置管理的概念,1.6.2 软件配置管理的任务,一个完整的SCM系统要具有五个核心功能,1.6.2 软件配置管理的任务,4. 定义软件配置库基线技术将项目实施配置管理的存储库分为3类开发库受控库 产品库,1.6.2 软件配置管理的任务,5.配置控制为了明确配置管理在具体实现时所执行的配置规程,主要包括入库控制和变更控制。6.配置审计审查整个配置管理过程是否符合规范,配置项是否与需求一致,记录正确,配置的组成是否具有一致性等等。,1.6.2 软件配置管理的任务,7. 配置状态报告提供软件开发过程的历史
20、记录,包括配置管理项的现行状态及何时因何故发生了何事(入库、更动) ,包含了整个软件生命周期中对基线所有变更的可追踪性。,1.6.2 软件配置管理的任务,8. 变更管理,1.6.2 软件配置管理的任务,1.6.3 软件配置管理实施的流程,1.6.4 软件配置管理工具,配置管理工具的主要功能如下,版本控制,变更控制,审计控制,报告/查询,其它功能,配置支持,创建支持,过程支持,团队支持,1.7 应用生命周期管理,1.7.1 应用生命周期概念,应用软件生命周期管理解决方案要求的作用如下,1.7.2 应用生命周期管理,提高质量降低费用缩短维护时间资源利用率最大化增加业务的灵活性,1.7.3 惠普应用生命周期管理,1.7.3 惠普应用生命周期管理,1.7.3 惠普应用生命周期管理,HP ALM实现全面的端到端追踪,1.7.3 惠普应用生命周期管理,惠普应用生命周期管理(ALM)主要用于整个应用生命周期中管理跨项目的应用发布:,1.7.3 惠普应用生命周期管理,本章小节,掌握软件、软件危机、软件工程概念了解软件开发技术了解项目管理、配置管理相关知识了解应用生命周期概念和应用生命周期管理方法了解惠普应用生命周期管理方案,