《软件工程概述》PPT课件.ppt
《《软件工程概述》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《软件工程概述》PPT课件.ppt(100页珍藏版)》请在三一办公上搜索。
1、0,软件工程,基本概述,1,本讲核心,一、软件工程过程二、软件生存期模型三、软件开发方法四、软件工具与软件开发环境五、路线图,2,软件项目过程,顾客,顾客,需求,满意,产品,输入,输出,产品实现,?,3,软件工程三段论,软件开发,项目管理,过程改进,4,软件开发,开发过程是软件人员生产软件的过程,例如需求分析、设计、编码、测试等,相当于生产线上的生产过程。,5,软件开发路线图,6,软件项目管理,管理过程是项目管理者规划软件开发、控制软件开发的过程,相当于生产线上的管理过程,管理过程是伴随开发过程进行的过程。,7,软件项目管理路线图,8,软件过程改进,过程改进相当于对软件开发过程和软件管理过程的
2、“工艺流程”进行管理和改进,如果没有好的工艺生产不出好的产品,它包括对开发过程和管理过程的定义和改进。,9,软件过程改进路线图,10,软件工程过程(Software engineering process):指在软件工具的支持下,所进行的一系列软件工程活动。,通常包括以下四类基本过程:1.软件规格说明:规定软件的功能及其运行环境。2.软件开发:产生满足规格说明的软件。3.软件确认:确认软件能够完成客户提出的要求。4.软件演进:为满足客户的变更要求,软件必须在使用的过程中演进。,11,本讲核心,一、软件工程过程二、软件生存期模型三、软件开发方法四、软件工具与软件开发环境五、路线图,12,软件生命
3、周期(Software life cycle)是指从软件开始开发到报废的全过程,亦称软件生存期。,软件生命周期可分为7个阶段:1.可行性研究和项目开发计划2.需求分析3.概要设计4.详细设计5.编码6.测试7.维护,软件生存期,一般用经典的瀑布模型来描述。,13,瀑布模型(waterfall model),14,在大部分文献中将生存周期划分为5个阶段,即需求定义、设计、编码、测试及维护。其中需求定义阶段包括可行性研究和项目开发计划、需求分析,设计阶段包括概要设计和详细设计。为了描述软件生存期的活动,提出了多种生存期模型(也叫软件过程模型),例如:瀑布模型、V模型、原型化模型、螺旋模型等。,15
4、,常用生存期模型,瀑布WaterfallV模型V-shaped原型Prototyping增量Incremental螺旋式Spiral.,16,Figure 2.1 The waterfall model.,17,瀑布模型,是研究人员提出的第一个模型,它将开发阶段从一个阶段瀑布般转换到另一个阶段。该图暗示,一个开发阶段必须在另一个开发阶段开始之前完成。问题:并不能反映实际的代码开发方式,实际上软件是通过大量的迭代进行开发的。若不对实际的软件开发过程加以控制,开发过程可能看起来会像图2.2。,18,19,瀑布模型的主要缺点是没有把软件看做一个问题求解的过程。通过引入加强理解的活动和子活动,软件开发
5、过程有助于控制活动之间的反反复复。原型(prototype)就是这样的一个子过程,它使客户和开发人员能够对计划开发的系统的相关方面进行检查,以决定它对最终产品是否合适或恰当。确认(validation)确保系统实现了所有的需求。验证(verification)确保每项功能都是正确的。,20,Figure 2.3 The waterfall model with prototyping,21,WaterFall model适合的项目,在项目开始前,项目的需求很明确在项目开始前,解决方案也很明确类似的项目如:公司的财务系统库存管理系统短期项目,22,Figure 2.4 The V model.,
6、23,V模型,接收测试,集成测试,系统测试,项目规化,需求分析,总体设计,详细设计,编码和调试,集成测试,单元测试,24,V模型,V模型使得隐藏在瀑布模型中的迭代和重做更加明确瀑布模型关注的通常是文档和制品V模型关注的是活动和正确性大家误认为测试是开发周期的最后一个阶段,其实早期的测试对提高产品的质量,缩短开发周期起着重要作用。V模型正好说明的测试的重要性,它与开发是并行的。V模型体现了全过程的质量意识。,25,V模型适合的项目,在项目开始前,项目的需求很明确在项目开始前,解决方案也很明确对系统的性能安全很严格的项目类似的项目如:航天飞机等公司的财务系统 实例,26,Figure 2.5 Th
7、e prototyping model,27,Prototype,28,Prototype 模型适合的项目,在项目开始前,项目的需求不明确需要减少项目需求的不确定性类似的项目如:确定显示界面第一次开发的产品,验证可行性,29,Figure 2.9 the incremental and iterative models.,30,阶段性开发,增量开发(incremental development)在增量开发中,需求文档中指定的系统按功能划分为子系统。定义发布时首先定义一个小的功能子系统,然后在每个新的发布中增加新功能。迭代开发(iterative development)迭代开发是在一开始就提
8、交一个完整的系统,然后在每个新的发布中改变每个子系统的功能。,31,Incremental Model,32,Incremental Model适合的项目,项目开始,明确了需求的大部分,但是需求可能会发生变化对于市场和用户把握不是很准,需要逐步了解对于有庞大和复杂功能的系统进行功能改进,就需要一步一步实施的。增量模型实例,33,Figure 2.10 the spiral model.,34,螺旋模型(Spiral Model),对于大型软件,只开发一个原型往往达不到要求。螺旋模型将瀑布模型和增量模型结合起来,并加入了风险分析。第一次迭代的产品是操作概念第二次迭代的主要产品是需求在第三次迭代中
9、,系统开发产生设计第四次迭代能够进行测试,35,Spiral Model,36,Spiral Model,螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:制定计划确定软件目标,需求和选定实施方案,弄清项目开发的限制条件风险分析评估所选方案,考虑如何识别和消除风险实施工程实施软件开发,编码,测试等客户评估评价开发工作,提出修正建议,规划下期任务,37,螺旋模型的每次迭代都根据需求和约束进行风险分析,以权衡不同的选择,并且在确定某一特定选择之前,通过原型化验证可行性或期望度。当风险确认之后,项目经理必须决定如何消除或最小化风险。,38,Spiral Model适合的项目,风险是主要
10、的制约因素不确定因素和风险限制了项目进度用户对自己的需求也不是很明确需要对一些基本的概念进行验证可能发生一些重大的变更项目规模很大项目中采用了新技术 实例,39,敏捷方法(Agile Software Development),目的:通过过程和工具理解个人和交流的作用;通过全面的文档理解运行的软件;通过合同和谈判得到客户的协作;在计划的执行中做出对变更的响应。极限编程(XP)水晶法(Crystal)并列争球法(Scrum)自适应软件开发(ASD),40,敏捷方法的4个特性,交流简单性勇气反馈,41,XP的12个实践操作,计划游戏小的发布隐喻简单设计测试驱动重构结对编程集体所有权持续集成在现场的
11、客户代码标准,42,本讲核心,一、软件工程过程二、软件生存期模型三、软件开发方法四、软件工具与软件开发环境五、路线图,43,软件开发方法,软件开发的目标是要在规定的投资和时间内,开发出符合用户的需求,高质量的软件,为此需要有成功的开发方法。为了克服软件危机,从20世纪60年代末开始,一直在进行软件方法的研究与实践,提出了多种软件开发方法和技术,对软件产业的发展起着不可估量的作用。,44,软件开发方法可分为几大类:面向过程的开发方法(传统的)面向对象的开发方法 基于构件的开发方法,特别要注意:由于软件与程序是不同的概念,软件开发方法与程序设计方法是两个不同的概念。软件开发方法可以是针对局部的,也
12、可以是针对全局的。软件工程方法,更加强调和重点研究的是需求分析与软件设计的开发方法。,45,面向过程的开发方法结构化开发方法、JACKSON方法、原型化开发方法、IDEF法等。面向对象的开发方法Coad/Yourdon方法、Booch方法、OMT方法以及UML等。,软件开发方法分类,46,结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。结构化开发方法是一种面向数据流的开发方法,它的基本原则是功能的分解与抽象。结构化开发方法总的指导思想是自顶向下、逐步求精。,结构化开发方法,47,20世纪70年
13、代初 结构化程序设计方法(Structured Program,SP)20世纪70年代中 结构化设计方法(Structured Design,SD)20世纪70年代末 结构化分析方法(Structured Analysis,SA)SA,SD,SP 法相互衔接,形成了一整套开发方法。若将SA,SD 法结合起来,又称为结构化分析与设计技术(SADT 技术)。,一、结构化开发方法的组成,48,二、结构化方法的工作模型,瀑布模型,49,但从20世纪80年代开始,逐渐发现其不足,软件开发过程是个充满回朔的过程。而瀑布模型将其分割为独立的几个阶段,不能从本质上反映软件开发过程本身的规律。此外,过分强调复审
14、,并不能完全避免较为频繁的变动。尽管如此,瀑布模型仍然是开发软件产品的一个行之有效的工程模型。,50,JACKSON开发方法,结构化开发方法是面向数据流、数据封闭性的开发方法,JACKSON系统开发方法则是面向数据结构的开发方法。其基本思想是先建立输入输出的数据结构,再将其转换为软件结构。,51,JACKSON方法由JSP(Jackson structured Programming)和JSD(Jackson System Development)方法构成。,JSP法主要体现程序结构的设计,不严格区分软件概要设计和详细设计。JSD法是对JSP法的扩充,针对JSP法的缺陷而提出的解决方案。其主要
15、特点是:用“分而治之”的策略控制系统的复杂性,解决I/O结构的冲突问题。,1JACKSON方法的构成,52,2JACKSON方法的设计过程,建立数据结构 JACKSON方法中数据结构通常表示为树型结构,有顺序、选择和循环三种基本结构。如图(a)所示,按照三种基本结构建立的文件数据结构。,以数据结构为基础,建立相应的程序结构图 如图(b),也称为JACKSON 图。当没有结构冲突时,转换过程是简单的。一般情况,数据结构与模块结构是相对应的,因此不难从数据结构导出程序结构。,数据结构转换为程序结构,53,一、原型化方法(Prototyping Method)原型是软件开发过程中软件的一个早期可运行
16、的版本,它反映了最终系统的部分重要特性。,原型化开发方法,54,原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会,原型化方法又称速成原型法(Rapid Prototyping)。强调的是软件开发人员与用户的不断交互,通过原型的演进不断适应用户任务改变的需求,将维护和修改阶段的工作尽早进行,使用户验收提前,从而使软件产品更加适用。,原型化方法的基本思想,55,1)快速建立需求规格原型(RSP 法)RSP(Rapid Specification Prototyping)法所建立的原型反映了系统的某些特征,让用户学习,有利于获得更加精确的需求说明书,待需求说明书一旦确
17、定原型被废弃,后阶段的工作仍按照瀑布模型开发。,原型法分类,56,2)快速建立渐进原型(RCP 法)RCP(Rapid Cyclic Prototyping)法采用循环渐进的开发方式,对系统模型作连续精化,将系统需要具备的性质逐步添加上去,直至所有性质全部满足,此时的原型模型也就是最终的产品。速成原型法适合于开发“探索型”,“实验型”与“进化型”一类的软件系统。,原型法分类,57,快速原型法按以下步骤循环执行:1.快速分析 快速确定软件系统的基本要求,确定原型所要体现的特征(界面,总体结构,功能,性能)。2.构造原型 在快速分析的基础上,根据基本规格说明,忽略细节,只考虑主要特征,快速构造一个
18、可运行的系统。有三类原型:用户界面原型、功能原型和性能原型。3.运行和评价原型 用户试用原型并与开发者之间频繁交流,发现问题,目的是验证原型的正确性。4.修改与改进 对原型进行修改、增删。,原型的工作模型,原型法工作模型,评价,构造,快速分析或修改,运 行,速成原型的工作模型是一个循环的模型。,58,构造原型,运行/评价原型,原型完成否,要细部说明否,严格说明细部,效果满意否,整理原型提供文档,修正改进原型,Y,Y,N,N,快速分析,确定初步规格说明,Y,N,细化的快速原型模型,细化的快速原型模型,59,OOSD(Object-Oriented Software Development)法是2
19、0世纪80年代推出的一种全新的软件开发方法。非常实用而强有力,被誉为20世纪90年代软件的核心技术之一。,面向对象的开发方法,其基本思想是:对问题领域进行自然分割,以更接近人类通常思维的方式建立问题领域的模型,以便对客观的信息实体进行结构和行为的模拟,从而使设计的软件更直接地表现问题的求解过程。面向对象的开发方法以对象作为最基本的元素,是分析和解决问题的核心。,60,一、面向对象开发方法的组成,OOSD由三部分组成:OOA(Object-Oriented Analysis)面向对象的分析 OOD(Object-Oriented Design)面向对象的设计 OOP(Object-Oriente
20、d Program)面向对象的程序设计,61,OOA,OOA,强调的是对一个系统中的对象特征和行为的定义。建立系统的三类模型。,OOD,OOD,OOD,与OOA密切配合,顺序实现对现实世界的进一步建模。,OOP,OOP,OOP,是面向对象的技术中发展最快的,使用面向对象的程序设计语言,进行编码。,62,二、OOA法 就是要解决“做什么”的问题。OOA 法的基本任务就是要建立三种模型:,状态模型(动态模型)描述任何时刻对象的联系及其联系的改变,即时序。常用状态图,事件追踪图描述。处理模型(函数模型)描述系统内部数据的传送处理。,显然,在三大模型中,最重要的是对象模型。如何建立三大模型。,对象模型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程概述 软件工程 概述 PPT 课件
链接地址:https://www.31ppt.com/p-5610140.html