01_软件流程实施方案选择

更新时间:2023-08-16 00:05:01 阅读量: 教学研究 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

软件流程实施方案选择

软件流程实施方案选择

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 1

RUP简介

什么是软件工程过程?任何工业化生产都离不开过程 大规模,有组织,有序的合理使用软件生产制造技术,定义谁(Who)什么时候 (When)做什么(What),以及如何(How)达到确定目标将用户需求转化为软件系统的所有活动的集合开发一个新的产品增强已开发产品的功能(修复bug,或者添加功能)新建和改变的需求新建和改变的系统

软件工程过程

软件工程过程中国科学院软件所 2006 Software Engineering, 7th edition. Chapter 1 Slide 2

软件流程实施方案选择

RUP简介

什么是有效的过程?保证产品质量迅速减少项目风险(需求,技术,政治风险等)保证项目的可预测性(进度,成本,功能等)能够捕捉和提供最佳实践方法(Best Practice)促进领域内(软件开发)的共识和相互理解

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 3

议题RUP,EUP与XP微软MSF与MOF Agile与CMMI

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 4

软件流程实施方案选择

成功的软件开发

成功的软件开发

开发技术 -面向对象分析与设计 -结构化设计方法 -基于构件的开发方法

开发过程 -RUP,CMM,XP -瀑布模型 -螺旋模型...

CASE Tool -Rational ROSE -RUP Builder -青鸟支撑系统

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 5

开发方法=建模语言+开发过程建模语言 (Modeling Language) 表述设计方法的表示法主要是图形化的对开发中所采取步骤的指导将建模语言置于特定语境(开发环境)之中

开发过程 (Development Process)

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 6

软件流程实施方案选择

广义的开发过程虽然我们这里说过程(Process),实际上它涵盖了软件项目管理技术的各个方面,包括: 软件度量项目估算进度控制人员组织配置管理项目计划等

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 7

UML+RUP=最佳软件开发方法

交响乐演奏

基于团队的开发

乐器中国科学院软件所 2006

乐谱

统一建模语言

统一过程Slide 8

Software Engineering, 7th edition. Chapter 1

软件流程实施方案选择

RUP囊括了6项最佳实践方法被证明可解决软件开发过程中的根本问题

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 9

RUP是一个通用过程框架RUP是可定制的(Customizable)通用过程框架 开发软件的种类开发软件的规模开发软件的应用领域开发团队的组织形式

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 10

软件流程实施方案选择

RUP Version 2002.05.00

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 11

统一过程中的迭代时间核心工作流

需求分析设计实现测试细化阶段的一次迭代

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 12

软件流程实施方案选择

RUP的3大核心技术特点用例(Use Case)/需求驱动的以构架(Architecture)为中心的迭代(Iterative)和增量的(Incremental)开发方式

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 13

用例驱动的RUP

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 14

软件流程实施方案选择

什么是用例(Use Case)软件系统的特征 服务于特定用户用户:与所开发系统交互的人或其他系统所有用例构成系统的全部功能和边界用例:在不展现系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述.

用例描述用户(User)需求

UML规范说明中的定义

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 15

Use Case基本模型元素符号Actor(参与者)

Actor

表示与系统交互的任何事物

Use Case(用例)Use Case

定义了系统的一系列动作,并向参与者提供有价值的结果Slide 16

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

软件流程实施方案选择

Use Case举例银行个人自动交易系统的Use Case图

取钱

银行客户

存钱

转帐

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 17

RUP是用例驱动的需求分析阶段用户需求用Use Case来表达设计初期很多类根据Use Case来发现构造阶段开发的管理和任务的分配按照Use Case来组织测试阶段的实例根据Use Case来生成需求分析设计实现测试

通过Use Cases将所有RUP工作流有机地结合起来

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 18

软件流程实施方案选择

用例在RUP中的其他功能是有序(planned)迭代开发的基础为编写最终用户手册提供索引(index)抽取可单独出售的系统单元(Business Component)

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 19

以构架为中心的 RUP

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 20

软件流程实施方案选择

什么是构架与建筑施工图的作用相似 从各个角度刻画系统的总体设计(结构,服务设施,供暖,供水,供电…)去掉细节,突出系统的重要特征系统的重要元素,如子系统,类,构件和节点,以及它们之间通过接口实现的协作软件系统的组织(结构与行为)构架风格(数据流风格,调用/返回风格等…)功能,性能,适应性,重用性,技术约束,美学考虑

软件构架(UML用户指南中的定义)

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 21

构架模型+构架视图=构架描述模型是概念和知识视图是表达模型的方式构架描述

构架模型可视化中国科学院软件所 2006

构架视图

Software Engineering, 7th edition. Chapter 1

Slide 22

软件流程实施方案选择

构架视图

对照 Kruchten提出的 4+1 view of software architecture中国科学院软件所 2006 Software Engineering, 7th edition. Chapter 1 Slide 23

统一过程以构架为中心构架为用户和开发人员提供系统的整体视图构架是系统实现的基础为项目管理提供基本指导构架描述是软件系统的主要制品

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 24

软件流程实施方案选择

以构架为中心的优点创建可重用的框架,使构架级的重用成为可能从构架可以方便地得到其他制品 设计指南(包括使用模式和术语)形成产品结构系列(企业版,家用版…)开发队伍结构

简化基于构件的开发(Component-Based Development)

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 25

迭代和增量的 RUP

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 26

软件流程实施方案选择

统一过程是迭代和增量的过程迭代是统一过程中最小的开发时间单位,但它却包括了软件开发的所有工作流,因此也可以被看作是"袖珍瀑布模型"是每次迭代所产生的,可增加系统功能的构造块迭代是开发方式,增量是开发结果

增量

迭代&增量

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 27

迭代工作流

需求

分析

设计

实现

测试

一次迭代

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 28

软件流程实施方案选择

迭代是什么是一组明确活动(activities)的集合是有序的,受控的开发方式是能够产生内部版本的袖珍项目是项目开发过程中具体执行的工作流

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 29

迭代不是什么不是任意的探路不是重复设计同样的东西不是只影响开发人员不是项目失败的理由

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 30

软件流程实施方案选择

为什么采用迭代和增量的开发方法降低风险尽早处理关键风险和重要风险,同时将项目开发的总风险分散到每次的迭代中允许系统灵活改变,更易于处理不断变化的需求避免回头式开发,允许连续的系统集成使用户和开发人员都可以看到系统中不断增加的可运行功能,对项目进度充满信心Software Engineering, 7th edition. Chapter 1 Slide 31

小步前进

受控增长增强信心

中国科学院软件所 2006

迭代开发对风险的处理瀑布方法瀑布方法的集成和测试阶段初始细化迭代和增量

风险的严重性

构造

移交第1次迭代第2次迭代 ... ...时间中国科学院软件所 2006 Software Engineering, 7th edition. Chapter 1 Slide 32

...

第n-1次迭代

第n次迭代

软件流程实施方案选择

迭代开发实现持续的构造集成

中国科学院软件所 2006

Sof

tware Engineering, 7th edition. Chapter 1

Slide 33

用例驱动,构架中心和迭代与增量用例驱动系统构架的设计系统构架影响用例的实现用例体现了系统的功能(function)构架反映了系统的表现形式(form)用例设定了目标,构架建立了模式,开发人员根据目标和模式规划产品迭代开发的顺序

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 34

软件流程实施方案选择

概述Agile方法的产生针对上述问题,产生了一系列轻载(Lightweight)方法,如XP,SCRUM等. 2001年2月,新方法的一些创始人在美国犹他州成立Agile联盟(/ )

Lightweight中国科学院软件所 2006

AgileSlide 35

Software Engineering, 7th edition. Chapter 1

概述Agile方法的含义

Agile方法是在保证软件开发有成功产出的前提下,尽量减少开发过程中的活动和制品的方法.笼统的讲就是,"刚刚好"( Just enough),即开发中的活动及制品既不要太多也不要太少.

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 36

软件流程实施方案选择

概述Agile方法的实践效果我预言XP对当今时代的作用可与CMM在八十年代和九十年代初的作用相媲美 -- Tom DeMarco, Cutter Trends Report

新方法在实践中取得了巨大的成功IONA公司的Obix技术支持小组在采用了XP方法后,软件生产率提高了67% SPG( software productivity group)的Capers Jones则称, SCRUM方法可提高生产率6倍中国科学院软件所 2006 Software Engineering, 7th edition. Chapter 1 Slide 37

Agile方法的核心理念

基于适应而非预测以人为导向而非过程导向

--Martin Fowler"New Methodology"

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 38

软件流程实施方案选择

Agile方法的核心理念及特点适应而非预测需求不可预测--Peter Wegner用数学的方法给出了严格的证明按计划的过程开始计划的结果

基于适应的过程实际需要的结果理论上来说,软件开发应是一个自适应的跟踪过程中国科学院软件所 2006 Software Engineering, 7th edition. Chapter 1 Slide 39

Agile方法的核心理念及特点适应而非预测自适应系统是一个强反馈系统在软件开发中,需求的获取和分析,软件设计,编码等实质上均为前馈环节,真正的反馈环节应该是用户对可运行软件的使用,使用中的判断及判断后与开发人员的信息交流.反馈和前馈这一回路的响应速度应大于被跟踪(或被适应)的系统的变化速度,这就要求软件开发有快速的产出能力 .

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 40

软件流程实施方案选择

Agile方法的核心理念及特点适应而非预测特点 Agile方法通过快速,短迭代式的开发,不断产出和演化可运行软件,根据用户的反馈信息作适应性调整,然后进入下一轮快速短迭代式开发 .

中国

科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 41

Agile方法的核心理念及特点以人为导向而非过程导向

软件开发中,人的因素是第一位的

人是过程的主体,而人的工作承受力是有限的软件开发中的大部分是需要创造力的设计工作,软件人员是创造性的工作者软件人员有主观上做好工作的意愿软件开发的目的是为人提供方便,应首先着眼于有用的可执行的软件,也就是首先考虑商务目标,而不是为过程而过程

中国科学院软件所 2006

Software Engineering, 7th edition. Chapter 1

Slide 42

本文来源:https://www.bwwdw.com/article/bdoj.html

Top