ImageVerifierCode 换一换
格式:PPT , 页数:51 ,大小:701KB ,
资源ID:383985      下载积分:12 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-383985.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件开发.ppt)为本站会员(ga****84)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

软件开发.ppt

1、软件工程基础,软件工程概述刘 驰,2,讲授内容,软件工程的基本概念基于计算机的系统工程软件过程,3,1. 什么是软件?,Software=program+data+documentCustom softwareGeneric software, Shrink-wrapped softwareEmbedded softwareSafety-critical softwareCOTS(Commercial Off-the-Shelf)I will create a software to update the database.(a piece of software, or a software

2、 system)可以按功能、规模、工作方式、可靠性高低等进行划分,4,2. 什么是软件工程?,1968年秋季,NATO(北约)的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。Fritz Bauer在会议上首次提出“软件工程”概念。The establishment and use of soundengineering principles in order to obtain economically software that is reliable and works efficiently on real machines.” -

3、Fritz Bauer, 1968,5,IEEE:软件工程是(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化思想应用于软件开发过程中(2)上述方法的研究。软件工程的目标: 低成本, 高质量, 按时交付,6,软件工程的本质特性,关注大型程序的构造如何控制复杂性软件需求不断变化旨在提高软件开发的效率团队合作是软件工程顺利实施的关键软件必须有效支持它的用户由一种文化背景的人替另一种文化背景的人创造产品(设计者、使用者),7,3. SW and CS,计算机科学研究的是构成计算机和软件系统基础的有关理论和方法,而软件工程则研究软件制作中的实际问题。理论上,所有软件工

4、程都应该以计算机科学理论作为坚实的基础,但对付实际的、复杂的问题时需要用软件工程的方法来解决。,8,4. SW and Systems Engineering,系统工程的产生比软件工程早。基于计算机的系统工程,研究由软件起主导作用的、有关负责系统的开发和进化的方方面面,包括硬件开发、系统决策、过程设计、系统实施和软件过程等。,9,5. 什么是软件过程?,软件过程是指开发软件产品的一组活动及其结果。所有的软件过程都包含4项基本的活动:软件描述、软件开发、软件有效性验证和软件进化。不同的软件过程以不同的方式组织这4项活动,活动的结果会影响活动的进度。不同的机构可能用不同的过程来制作同一类产品。,1

5、0,为什么要定义软件过程?,一个过程定义了为达到确定的目标,需要什么人在什么时间以何种方式做何种工作(Goal,Who,When,How,What)对于 Customer, User, Developer, Manager,一个广泛适用的过程使得所有涉众更好地理解自己所扮演的角色、更清楚地知道自己及他人在什么时间做什么。促使过程的有机结合和改善,以获得“最好过程”可以使公司内部的培训标准化。由于过程的可重复性,利于开发进度的安排,利于成本估算。,11,6. 什么是软件过程模型?,模型与建模软件过程模型是从一特定的角度对软件过程的本质描述。软件过程模型包括构成软件过程的各种活动、软件产品以及所有

6、涉众(stakeholder),12,从不同的角度对软件过程的描述,就得到不同的过程模型种类。如:工作流模型:描述软件过程中各种活动的序列及其输入、输出和相互依赖型。其中的活动皆为人的活动。数据流或活动模型:把软件过程描述成一组活动,其中每个活动都完成一定的数据转换。该模型中的活动层次低于工作流模型。角色/动作模型:描述参与软件过程的不同角色及其所负责的活动。,13,通用模型或范型(Paradigm, Methodology),Waterfall ModelWaterfall Model with Maintenance CircleWaterfall Model with Prototypi

7、ngSpiral Model(瀑布模型原型模型)V ModelPhased Development ModelIncremental and Iterative ModelRUP,14,7. 软件工程的成本及成本分布,软件成本分布取决于所采用的软件过程和所开发的软件类型。一般的成本分布:描述:设计:开发:集成与测试(15:25:20:40)需求极高的软件系统的集成与测试成本50%软件进化的成本软件维护的成本基于Web的电子商务系统的成本模型,15,8. 软件工程方法 (Method),结构化分析方法(Structured Method, DeMarco,1978, Yourdon E.和Con

8、stantine L. 等)JSD方法(Jackson System Development,1983)OO方法(Object-Oriented Method, Booch, 1994;Rumbaugh等, 1991) 设计模式,16,Tendency for Change when Using OO Paradigm (Jacobson et al. 1995),17,UML (Unified Modeling Language),1994,OO思想已经贯穿整个软件生存期,具有影响的OOA&D方法达50余种。UML是一种对软件密集型系统进行可视化、详述、构造和文档化的建模语言,主要用于分析和

9、设计阶段的系统建模。,18,UML 2.0,1994Booch方法Rumbaugh OMT Coad/YourdonFire Smith 方法 Jacobson OOSE,1995.10发布Unified Method 0.8,1996.6发布UML 0.9不包含过程指导,Rational联合12家公司成立UML组织,形成UML 1.0,1997.1提交给OMG,1997.11.4, OMG采纳UML 1.1,2002发布UML 2.0,19,10. 优良软件的属性,功能属性 (Functional)非功能属性 (Non-Functional),20,11. 软件工程所面临的主要问题,遗留系统

10、的挑战 (Legacy systems)交付上的挑战复杂性与大量的细节(火星探测器的失败)技术的不确定性(技术的发展与开发人员对技术的理解程度都不同)由于交流障碍而引起的需求不确定性需求是持续变化的不断的修改所带来的错误使得软件退化人为和市场的风险软件费用、可靠性、生产率、重用问题难以解决,21,讲授内容,软件工程的基本概念基于计算机的系统工程软件过程,22,1. 系统总体特性,功能特性非功能特性,如可靠性、安全性、保密性等。与系统总体可靠性紧密关联的3个方面:硬件可靠性软件可靠性操作可靠性,23,2. 系统及其环境,系统都是在一定的环境中存在的。系统环境必将影响系统的功能和性能。环境包含一系

11、列相互作用的其它系统,有时,环境可能被看作是一个独立的系统。系统工程师一定要了解系统环境在许多情况下,系统的目的就是要改变环境。一个系统的功能要受到环境变化的影响,这种影响可能很难估计。,24,3. 系统建模,系统建模作为系统需求和设计活动的一部分,描述组成系统的组件以及组件之间的关系(系统体系结构)系统体系结构通常以方块图来描述。一个系统体系结构可以以功能为单位划分成子系统或功能组件,而不必关心由硬件还是软件实现。,25,功能组件可以分为六类:传感器组件:收集来自系统环境的信息。执行机构组件:引起一些系统环境的变化。计算组件:给定输入,执行计算并产生输出。通信组件:实现系统组件之间的彼此通信

12、。调度组件:协调组件间的操作。接口组件:将一个组件中的表示转换成另一个组件中的表示。,26,4. 系统工程过程,需求定义,系统设计,组件开发,系统集成,系统安装,系统进化,系统退役,27,系统需求定义注重三种类型的需求:抽象的功能需求系统特性系统一定不能具有的性质系统设计所包括的活动有:分割需求(通常有多种分割方法,可以产生不同的方案)识别子系统为子系统分配需求(通常由于外购COTS子系统带来的限制而需要修改需求)描述子系统的功能定义子系统的接口,28,子系统开发所常见的问题:通常可以并行开发不同的子系统一些超出子系统范围的修改经常发生,但是对已经实现的硬件工程的修改往往带来非常昂贵的代价,这

13、时修改往往落在软件上(软件的固有柔性,flexible),说明软件需求的变化更大更频繁。系统集成最好采取增量式过程,其理由是:子系统的开发时间通常无法预计增量式集成可以减少错误定位的成本(错误定位可能引起不同子系统的承包商之间的争论,解决问题的谈判须花费时日),29,讲授内容,软件工程的基本概念基于计算机的系统工程软件过程,30,1. 软件过程模型,一个软件过程模型是软件过程的一个抽象表示。一般使用过程模型区分或解释不同的软件开发方法。在实际的软件开发中,很少单独使用单一的过程模型,4类软件过程模型生命周期模型(瀑布模型)进化式开发模型形式化系统开发模型面向复用的开发模型,31,瀑布模型,瀑布

14、模型(Waterfall)软件生存周期模型(Classic Life Cycle Model)线性顺序模型(Linear Sequential Model),32,瀑布模型的三个特点,阶段间具有顺序性和依赖性推迟实现的观点质量保证的观点,33,瀑布模型的优点,开发过程基本上是线性顺序的,便于管理基于“明确、完备的需求”,可以获得好的开发效果,34,Cost of changes,After release,The Impact of Changes,Definition,Development,1.56x,1x,60100x,35,Waterfall Model with Maintenanc

15、e Circle,36,进化式开发模型,进化式开发的思想:基于最初的需求,先开发一个原型系统给用户使用,然后,根据用户的反馈意见不断地修改这个系统,直到形成最后成熟的软件产品。所强调的是,需求可以不断地被补充和完善。进化式开发有种方式探索式开发:其目标是与用户一起工作,共同探索需求,直到最后交付系统。抛弃式原型:开发原型的目标是理解用户需求。,37,从工程学和管理学角度看,进化式开发有三方面的问题:过程不可见系统结构通常较差快速原型工具和技术往往与主流的工具和技术不相容实际使用的过程模型通常是混合模型Waterfall Model with PrototypingV ModelPhased D

16、evelopment ModelIncremental and Iterative ModelSpiral Model,38,Waterfall Model with Prototyping,39,V-Model,40,Phased Development Model,41,The Incremental and Iterative Model,Incremental Development,Iterative Development,42,Examples in Agile,43,增量开发的优点,能在较短的时间内向用户提交可以完成主要功能的产品逐步增加产品的功能,使用户有充裕的时间学习和适应

17、新产品,减少一个全新的产品给客户组织带来的冲击,44,Spiral Model,45,螺旋模型的优点,有利于已有软件的重用有助于把软件质量作为软件开发的一个重要目标减少了过多测试或测试不足所带来的风险软件维护与软件开发没有本质区别,46,统一过程(RUP),Rational Unified Process是 Rational 公司开发和维护的过程产品。 RUP的突出特点用例驱动(系统功能)以体系结构/架构为中心(表现形式)迭代和增量开发(过程实施)由UML方法和工具支持,47,Iterative and incremental developmentUse-case driven,Projec

18、t Management,Environment,Business Modeling,Implementation,Test,Analysis & Design,Preliminary Iteration(s),Iter.#1,Phases,Process Workflows,Iterations,Supporting Workflows,Iter.#2,Iter.#n,Iter.#n+1,Iter.#n+2,Iter.#m,Iter.#m+1,Deployment,Configuration & Change Mgmt,Requirements,Elaboration,Transition,Inception,Construction,48,2. 软件描述,可行性研究需求导出和分析需求描述需求有效性验证,49,3. 软件设计与实现,体系结构设计子系统的抽象描述(如包图)接口设计组件设计数据结构设计算法设计,50,4. 软件有效性验证,单元测试功能模块测试子系统测试系统测试验收测试(如、 ),51,5. 软件进化,软件进化,即软件在其生命周期内不断地随着需求的变更而变更的过程。软件系统的柔性决定了软件进化的现实避免昂贵的硬件修改软件进化亦存在一些问题软件进化可以看作是软件开发过程和软件维护过程的统一。,

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。