第2章 统一软件开发过程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第2章统一软件开发过程与面向对象的方法2如何盖一座大楼?1.1.2软件工程的5个阶段3•上节内容补充:•软件工程的五个阶段4如何盖一座大楼?软件工程的5个阶段5盖楼的五个阶段•立项阶段——建设单位•系统分析与设计——设计单位•实现——施工单位•测试——单位合作•运行维护——维护人员6软件工程的5个阶段(一)软件工程共有5个阶段:需求分析阶段、系统分析与设计阶段、实现阶段、测试阶段、维护阶段。(1)需求分析阶段基本任务:选择合适的项目——立项阶段。结束标准:需求分析报告。参与人员:领域专家。(2)系统分析与设计阶段系统分析阶段基本任务:设计逻辑模型,弄清新系统是“干什么”的这个问题,明确我这个系统能做哪些事情。系统分析阶段结束标准:系统分析报告。系统分析阶段参与人员:系统分析员。系统设计阶段基本任务:根据分析阶段设计出来的逻辑模型进行物理模型的设计,解决的是“怎么干”这个问题,也就是要设计一个能由计算机技术具体实现的物理模型。系统设计阶段结束标准:系统设计说明书。系统设计阶段参与人员:系统分析员。7软件工程的5个阶段(二)(3)实现阶段基本任务:计算机软硬件设备的安装和调试工作、编程、用户及操作人员进行培训、编制操作手册、使用手册和有关说明等。结束标准:软件、用户手册。参与人员:程序员。(4)测试阶段基本任务:单元测试、集成测试、系统测试和接受测试四个级别。结束标准:测试报告。参与人员:程序员、测试员和用户。(5)维护阶段基本任务:包括系统的日常运行管理、评价和审计三部分工作。结束标准:维护修改建议。维护阶段参与人员:维护人员。81、什么是RUP?2、RUP过程概览:统一软件过程分为四个阶段:初始阶段、细化阶段、构造阶段、移交阶段五个核心工作流:需求捕获、分析、设计、实现、测试。3、生命周期4、特点:5、采用的语言本节学习目标9软件工程概述软件工程基础Rose建模基础Rose建模技术统一软件开发过程UML简介RationalRose简介双向工程静态建模需求建模物理建模动态建模本章内容在本课程知识体系中的位置10本章主要内容一、软件建模的目的二、统一软件开发过程RUP三、面向对象的软件工程概述11第一讲1、建模的目的2、统一软件开发过程12二、软件建模的目的软件业真理:满足用户+项目的需要:必须要有稳固的结构、精干的开发人员、健全的开发步骤13建模的重要性举例说明:盖房14为什么要建模?模型帮助我们按照实际情况对系统进行可视化模型可以让我们描述系统的结构和行为,并且利用它和同事沟通模型提供了指导我们创建系统的模板,我们还可以利用它为使用系统的人提供帮助模型对我们所做的决策进行文档化151、认真选择模型。选择建立什么样的模型对如何发展和解决问题具有重要的影响。2、每个模型可以有多种表达方式。3、最好的模型总是切合实际。让模型与现实紧密联系。4、孤立的模型是不完整的。任何好的系统都是由一些几乎独立的模型拼凑出来的。建模四原则16面向对象的模型•软件业中建立模型的方法多种多样。两种常用的方法是:基于算法方法建模和面向对象的建模。•缺点:基于算法的建模不易维护;面向对象的方法是现在软件开发的主流。不但能很好的建模,而且大多数的编程语言、操作系统、编程工具都是不同的面向对象的体现。17一个项目需3方面支持:符号(Notation)过程(Process)工具(Tool)二、统一软件开发过程181、什么是RUP?统一软件开发过程(RationalUnifiedProcess,RUP)是一个软件工程化过程。它提供了在开发机构中分派任务的方法。它的目标是在可预见的日程和预算前提下确保产满足最终用户需求的高质量的软件产生。是由Rational软件公司开发和维护的产品。统一过程用UML语言制订系统的所有蓝图,来进行思考和沟通。二、统一软件开发过程19按时间轴分为四个阶段1、初始阶段(Inception)2、细化阶段(Elaboration)3、构造阶段(Construction)4、移交阶段(Transition)软件生命周期工作过程:每个阶段都要重用需求捕获、分析、设计、实现、测试五个核心工作流。并对每阶段的进展情况进行裁剪、组合,以便得到预期的效果。二、统一软件开发过程20二、统一软件开发过程可以认为它是一种综合了瀑布模型,增量模型,演化模型,快速原型模型优点的混合模型。一种重量级的开发方法,又是文档化的软件工程产品。统一软件开发过程统一软件开发过程初始细化构造移交核心工作流需求分析设计实现测试第1次迭代第2次迭代第n-1次迭代第n次迭代21三、每个阶段的任定目标确定核心功能、最主要的风险、架构雏形、以及整个项目的粗略估计。该阶段的主要目标:(1)确定基本功能(初始的用例模型,完成10-20%)。区分优先级。(2)确定项目软件范围和边界条件。包括验收标准、产品包括的内容、与其他系统的接口。(3)确定系统的架构。至少演示一个候选的架构。尤其有风险的难实现的部优分。(4)能识别重大风险。(5)估计整个项目的成本及大致进度。1、初始阶段:评价是否成功22主要分析问题域。这个阶段结束后,项目就要实施,资源就要投入,低成本高成本。确保架构、需求和计划稳定。该阶段的主要目标:(1)用例模型(至少完成80%)(2)迅速地定出实用的架构(其中所有的变更能被合理地处理、跟踪和维护)(3)规划完成项目的活动,估算完成项目的资源。(4)为构造阶段定出高精度的计划(5)细化初始阶段的模型。(6)更新的开发案例(7)初步的用户手册三、每个阶段的任定目标2、细化阶段评价是否成功23实现剩余案例。所有特征已得到彻底的测试。交付给最终用户的产品该阶段的主要目标:(1)实现管理层和用户达成的产品的所有用例。(2)一个移交阶段的高精度计划。(3)关键特性和核心功能得到实现。(4)产品发布的验收标准。(5)用户手册。(6)对产品质量的详细分析。三、每个阶段的任定目标3、构造阶段:评价是否成功24向用户提交软件产品该产品由几次迭代组成,包括β版的发布,以及修实版和增强版。该阶段的主要目标:(1)试用产品并改正试用中的缺陷。(2)制作安装版并培训用户。(3)提供在线支持。三、每个阶段的任定目标4、移交阶段:用户是否满意?25主要工作是建立待开发系统的用例模型,并通过多次迭代完善它。——(需求说明书)——用例图四、统一过程的五个核心工作流1、需求捕获RUP每个循环阶段都经过以下五个核心工作流的多次迭代:需求捕获、分析、设计、实现、测试。26对需求捕获所描述的用例模型进行精细化和组织。为了得到一个易于维护且有助于确定系统结构的需求描述。——确定类四、统一过程的五个核心工作流2、分析27四、统一过程的五个核心工作流3、设计(1)结构设计(高层设计):定义包或子系统。(2)详细设计:细化包的内容——精确的类图、状态图、活动图28四、统一过程的五个核心工作流目的:定义代码的组织结构;以组件的形式实现类和对象;对开发的组件进行单元测试;将开发人员或小组开发的软件部分集成为可执行的系统。即对类进行编程的过程4、实现29四、统一过程的五个核心工作流目的:验证对象间的交互作用验证软件组件的正确集成验证所有需求都得到了正确的实现识别缺陷并确保其在软件发布之前被处理包括集成测试和系统测试。包括单元测试、集成测试、系统测试5、测试30五、RUP开发过程的特点1、用例驱动2、架构优先3、统一过程是增量和迭代的4、特别适合现代软件开发。5、统一过程采用UML语言作为开发过程中的建模语言31作业:1、RUP有四个阶段,区别四个阶段的依据是什么?2、结合自己进行程序设计的经验,谈谈在RUP的四个阶段中,五个核心工作流的迭代次数相同吗?在各个阶段五个核心工作流的重要性相同吗?作业:画图并说明(WORD完成)•预习:面向对象的主要思想、基本概念与原则32再见!33第二讲面向对象的软件工程概述34•面向对象基本概念•面向对象的开发工具、设计工作具•面向对象的分析与设计35面向对象的方法的形成起源于面向对象的编程语言。70年代中期Smalltalk语言,采用了典型的面向象的思想。80年代早期,C→C++,面向对象的编程;90年代,从面向对象的分析、设计阶段采用面向对象的方法。36一、面向对象的基本概念软件工程学家Coad和Yourdon定义:面向对象=对象+类+继承+通信客观世界由对象组成对象可以归纳成类,对象是类的一个实例类可以派生出子类,子类可以继承父类的全部特性对象之间通过传递消息来联系37一、面向对象技术的基本概念对象(Object)封装(Encapsulation)类(Class)继承(Inheritance)多态(Polymorphism)消息(Messessage)381、对象的概念什么是对象——是“物体”或“概念”:物体(看得到的东西):我的电脑、手机,他的房子、汽车概念(看不到的东西):一个合同、我的银行账号、那个游戏方法、某个规则、这个基准39对象的概念描述对象描述对象的过程,就是对现实世界中的对象进行抽象的过程。在抽象的过程中,可以为对象赋予对象本身所不具有的特性。在面向对象软件中,使用编程语言对现实世界中的对象进行描述,可以把真实世界中的对象转化为代码。在编程术语中,对象是独立的程序模块,有自己的属性和行为(也可以说有自己的数据和进程)。在描述对象时,不需要描述对象的所有特性,只要描述与问题域相关的特性即可。40aCoffeeMachinedrinkPricesavailableDrinksdrinkRecipesdisplayDrinks()selectDrink()dispenseDrink()acceptMoney()anObjectattribute1attribute2operation1()operation2()operation3()41对象的概念对象的特征属性※具有表示状态或者特性的值操作(行为)※提供某种服务,或更改对象内部的属性※一般用动词表示关系识别性42对象具有属性值43对象具有行为对象会对其他对象发来的要求做出反应其他对象发来的要求——消息消息的接受窗口——接口对消息的反应——操作(行为)44关联是一种弱连接:对象之间不完全相互依赖。对象具有关系关联和聚合aCaraPassengeranotherPassengeraDriver45聚合表示把对象放在一起,组成一个更大的对象。聚合形成“部分-整体”层次结构,它隐含了较大的依赖性,至少是整体对部分的依赖。对象具有关系关联和聚合diningRoomlivingRoomkitchenmainBedroomkidsBedroombathroomsecondFloorfirstFlooraHouse46对象可唯一识别即使对象有相同属性,还是能唯一识别47aCoffeeMachinedrinkPricesavailableDrinksdrinkRecipesdisplayDrinks()selectDrink()dispenseDrink()acceptMoney()2、封装封装封装是面向对象的一个重要原则。是指把属性和操作封装进一个对象里,它的内部信息对外界隐藏,不允许外界直接存取对象的属性,只能通过对象提供的有限的接口对对象的属性数据进行操作。48封装封装封装的基本单位是对象,具有两层含义:⑴结合性:即把对象的全部属性和方法结合起来,形成一个独立的不可分割的单位。⑵信息隐蔽性:即尽可能隐蔽对象的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系。49一台收音机对象的例子503、类着眼于对象的属性和行为的共同性,并进行分类后形成的把这个工作称作类化,是抽象化的基本方法之一反之,把通过类来创建对象的工作称作实例化类是具有相同属性和操作的对象集合的总称类封装了客观世界中对象实体的特征与行为,即属性与方法51类的例子52找一下类找到几个类?53分类状况不同,结果也不同54类和对象的关系55每

1 / 69
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功