统一建模语言:第2讲 软件开发过程

上传人:努力****83 文档编号:76251954 上传时间:2022-04-18 格式:PPT 页数:49 大小:3.23MB
返回 下载 相关 举报
统一建模语言:第2讲 软件开发过程_第1页
第1页 / 共49页
统一建模语言:第2讲 软件开发过程_第2页
第2页 / 共49页
统一建模语言:第2讲 软件开发过程_第3页
第3页 / 共49页
点击查看更多>>
资源描述
第第2讲讲: 软件开发过程软件开发过程2.1 面向对象的软件开发面向对象的软件开发软件开发过程第第2讲讲: 软件开发过程软件开发过程2.1 面向对象的软件开发面向对象的软件开发传统软件开发方法存在的问题第第2讲讲: 软件开发过程软件开发过程2.1 面向对象的软件开发面向对象的软件开发l 面向对象的软件开发(Object-Oriented Software Development)法:一种把面向对象的思想应用于软件开发过程,指导开发活动的系统方法。面向对象的面向对象的思想最初出现于挪威奥斯陆大学和挪威计思想最初出现于挪威奥斯陆大学和挪威计算机中心共同研制的算机中心共同研制的Simula 67语言中语言中随着的随着的Smalltalk76和和80语言推出,面向对象的的程序语言推出,面向对象的的程序设计方法得到了比较完善的实现设计方法得到了比较完善的实现。第第2讲讲: 软件开发过程软件开发过程2.1 面向对象的软件开发面向对象的软件开发l 面向对象的基本概念 类类(ClassClass)对象对象(Object)(Object)消息消息(Information)(Information)(Polymorphism)(Polymorphism)继承继承(InheritanceInheritance)第第2讲讲: 软件开发过程软件开发过程2.1 面向对象的软件开发面向对象的软件开发l 面向对象的软件分析第第2讲讲: 软件开发过程软件开发过程2.1 面向对象的软件开发面向对象的软件开发l 面向对象的软件分析模型对象层对象层特征层特征层关系层关系层交交互互图图主主题题图图详详 细细 说说 明明基本模型基本模型 (类图)(类图)第第2讲讲: 软件开发过程软件开发过程2.1 面向对象的软件开发面向对象的软件开发l 面向对象的软件分析模型(OOA)对象层对象层特征层特征层关系层关系层交交互互图图主主题题图图详详 细细 说说 明明基本模型基本模型 (类图)(类图)基本模型基本模型是一个类图是一个类图(class diagram),是以直观的方式表达系统是以直观的方式表达系统最重要的信息。最重要的信息。OOA基本模型的三个层次分别描述了:系统中基本模型的三个层次分别描述了:系统中应设哪几类对象,每类对象的内部构成,对象与外部的关系。应设哪几类对象,每类对象的内部构成,对象与外部的关系。第第2讲讲: 软件开发过程软件开发过程2.1 面向对象的软件开发面向对象的软件开发l 面向对象的软件分析模型对象层对象层特征层特征层关系层关系层交交互互图图主主题题图图详详 细细 说说 明明基本模型基本模型 (类图)(类图)主题主题( (subject)又称为子系统又称为子系统( (subsystem) )是将一些联是将一些联系密切的类组织在一起的类的集合。按照粒度控制系密切的类组织在一起的类的集合。按照粒度控制原则,将系统组成几个主题,便于理解。原则,将系统组成几个主题,便于理解。第第2讲讲: 软件开发过程软件开发过程2.1 面向对象的软件开发面向对象的软件开发l 面向对象的软件分析模型对象层对象层特征层特征层关系层关系层交交互互图图主主题题图图详详 细细 说说 明明基本模型基本模型 (类图)(类图)交互图(交互图(interaction diagram)是)是Use case(用例)与系(用例)与系统成分之间的对照图。统成分之间的对照图。第第2讲讲: 软件开发过程软件开发过程2.1 面向对象的软件开发面向对象的软件开发l 面向对象的软件分析模型对象层对象层特征层特征层关系层关系层交交互互图图主主题题图图详详 细细 说说 明明基本模型基本模型 (类图)(类图)详细说明详细说明按照分析方法所要求的格式,对分析模型进行说按照分析方法所要求的格式,对分析模型进行说明和解释。主要以文字为主。明和解释。主要以文字为主。第第2讲讲: 软件开发过程软件开发过程2.1 面向对象的软件开发面向对象的软件开发l 面向对象的软件设计(OOD)第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程当前流行的软件过程第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程传统开发模型瀑布模型由瀑布模型由B.M.Boehm于于1970年首先提出。年首先提出。瀑布模型将软件生存周期瀑布模型将软件生存周期划分为划分为6个阶段,是一种线个阶段,是一种线性模型。性模型。各阶段活动为:需求分析、各阶段活动为:需求分析、设计、实现、测试、运行设计、实现、测试、运行和维护。和维护。第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程传统开发模型 每个开发阶段具有以下特征:每个开发阶段具有以下特征: 将上一阶段的结果作为本阶段工将上一阶段的结果作为本阶段工作的输入;作的输入; 对上述输入实施本阶段的活动对上述输入实施本阶段的活动; 给出本阶段的工作成果作为输出给出本阶段的工作成果作为输出传入下一阶段;传入下一阶段; 对本阶段工作进行评审,若本阶对本阶段工作进行评审,若本阶段工作得到确认,则继续下阶段段工作得到确认,则继续下阶段工作,否则返回前一阶段。工作,否则返回前一阶段。第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程传统开发模型Boehm首先提出首先提出螺旋模型。螺旋模型。螺旋模型使用原螺旋模型使用原型作为降低风险型作为降低风险的机制,开发者的机制,开发者在产品演化任意在产品演化任意阶段均可使用原阶段均可使用原型方法型方法第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程传统开发模型它保持了传统生它保持了传统生命周期模型中系命周期模型中系统的、阶段的方统的、阶段的方法,但将其并入法,但将其并入了迭代框架,更了迭代框架,更加真实地反映了加真实地反映了现实世界。现实世界。第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)在在RUP中,软件开发生命周期根据时间和中,软件开发生命周期根据时间和RUP的核心的核心工作流划分为二维空间。工作流划分为二维空间。第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)在在RUP中,工作流横轴表示项目的时间维,是过程展中,工作流横轴表示项目的时间维,是过程展开的生命周期特征,体现开发过程的动态结构。开的生命周期特征,体现开发过程的动态结构。 第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)9个核心工作流,分为个核心工作流,分为6个核心过程工作流(个核心过程工作流(Core Process Workflows)和)和3个核心支持工作流(个核心支持工作流(Core Supporting Workflows)。)。 第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)四个阶段四个阶段:软件产品生命周期被分成单独的开发周期:软件产品生命周期被分成单独的开发周期:初始(先启)、细化(精化)、构造、发布(产品化)初始(先启)、细化(精化)、构造、发布(产品化)第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)四个阶段四个阶段初始(先启):定义整个项目的范围初始(先启):定义整个项目的范围细化(精化):制定项目计划、描述功能、建立架构框架细化(精化):制定项目计划、描述功能、建立架构框架构造(构建):构造软件产品构造(构建):构造软件产品发布(产品化):将软件产品移交到最终用户手中发布(产品化):将软件产品移交到最终用户手中第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)四个阶段四个阶段:阶段结束标志着重要的里程碑:阶段结束标志着重要的里程碑初始(先启):定义整个项目的范围初始(先启):定义整个项目的范围细化(精化):制定项目计划、描述功能、建立架构框架细化(精化):制定项目计划、描述功能、建立架构框架构造(构建):构造软件产品构造(构建):构造软件产品发布(产品化):将软件产品移交到最终用户手中发布(产品化):将软件产品移交到最终用户手中生命周期生命周期目标里程碑目标里程碑生命周期生命周期 体系架构体系架构 里程碑里程碑 初始可运行初始可运行 能力里程碑能力里程碑 产品发布产品发布时间时间先启先启精化精化构建构建产品化产品化第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)迭代开发模型:每阶段可进一步分解为迭代。一个迭代迭代开发模型:每阶段可进一步分解为迭代。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。过程到另一个迭代过程到成为最终的系统。第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)软件过程的定义软件过程的定义第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)角色执行活动并产生制品角色执行活动并产生制品角色角色活动活动制品制品描述一个用例用例包用例包用例用例负责负责需求阐释者需求阐释者角色被要求执行角色被要求执行的工作单元的工作单元角色可由单个人角色可由单个人或一个团队扮演或一个团队扮演由过程生成,修改由过程生成,修改或使用的一段信息或使用的一段信息第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)工作流描述有意义的活动序列工作流描述有意义的活动序列 第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)需求捕获工作流:需求捕获就是通过对应问题的理解和需求捕获工作流:需求捕获就是通过对应问题的理解和分析,确立问题涉及的信息、功能和系统行为、将用户分析,确立问题涉及的信息、功能和系统行为、将用户需求精确化、完全化需求精确化、完全化第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)分析工作流:分析的主要工作开始于初始阶段结尾,和分析工作流:分析的主要工作开始于初始阶段结尾,和需求一样是细化阶段的主要焦点。细化阶段的大部分活需求一样是细化阶段的主要焦点。细化阶段的大部分活动是捕获需求,分析工作与需求捕获在很大程度上重叠。动是捕获需求,分析工作与需求捕获在很大程度上重叠。第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)设计工作流:主要工作位于细化阶段的最后部分和构造设计工作流:主要工作位于细化阶段的最后部分和构造阶段的开始部分。系统建模最初的焦点是需求和分析,阶段的开始部分。系统建模最初的焦点是需求和分析,在分析活动逐步完善后,建模的焦点开始转向设计。在分析活动逐步完善后,建模的焦点开始转向设计。第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)实现工作流实现工作流:实现是把设计模型转换成可执行代码的过实现是把设计模型转换成可执行代码的过程。从系统分析师或系统设计师的角度看,实现工作流程。从系统分析师或系统设计师的角度看,实现工作流的重点就是完成软件系统的可执行代码。的重点就是完成软件系统的可执行代码。第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)测试工作流:在完成需求捕获、分析、设计、实现等阶测试工作流:在完成需求捕获、分析、设计、实现等阶段的开发后,得到了源代码,这时就必须开始寻找软件段的开发后,得到了源代码,这时就必须开始寻找软件产品中可能存在的错误与缺陷。产品中可能存在的错误与缺陷。第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)测试工作流:在完成需求捕获、分析、设计、实现等阶测试工作流:在完成需求捕获、分析、设计、实现等阶段的开发后,得到了源代码,这时就必须开始寻找软件段的开发后,得到了源代码,这时就必须开始寻找软件产品中可能存在的错误与缺陷。产品中可能存在的错误与缺陷。第第2讲讲: 软件开发过程软件开发过程2.2 Rational统一过程统一过程RUP(Rational Unified Process)所有的过程元素(角色,活动,制品等)被划分至不同所有的过程元素(角色,活动,制品等)被划分至不同的逻辑容器,称为规程的逻辑容器,称为规程 规程产生模型规程产生模型OKOKFail被实现被实施被验证实施模型测试模型设计模型用例模型 模型模型规程规程测试实施分析和设计需求业务用例模型业务建模业务对象模型 BBBB被实现被自动化第第2讲讲: 软件开发过程软件开发过程2.3 敏捷开发敏捷开发敏捷宣言敏捷宣言第第2讲讲: 软件开发过程软件开发过程2.3 敏捷开发敏捷开发敏捷核心价值观敏捷核心价值观第第2讲讲: 软件开发过程软件开发过程2.3 敏捷开发敏捷开发敏捷特点敏捷特点短周期开发,提供及早的、具体的、持短周期开发,提供及早的、具体的、持续的反馈。续的反馈。增量开发。迅速地提出总体计划,并在增量开发。迅速地提出总体计划,并在项目生命周期中不断演化。项目生命周期中不断演化。灵活安排功能地实现,以对变化的业务灵活安排功能地实现,以对变化的业务需求作出反应。需求作出反应。使用由程序员和测试人员编写的自动化使用由程序员和测试人员编写的自动化测试来监控开发进度,支持系统演化,测试来监控开发进度,支持系统演化,并尽早发现缺陷。并尽早发现缺陷。第第2讲讲: 软件开发过程软件开发过程2.3 敏捷开发敏捷开发敏捷特点敏捷特点通过口头沟通、测试和源代码来交流系通过口头沟通、测试和源代码来交流系统的结构和意图。统的结构和意图。渐进式的设计过程贯穿整个系统生命周渐进式的设计过程贯穿整个系统生命周期。期。依赖于能力普通但能积极参与的程序员依赖于能力普通但能积极参与的程序员之间的紧密协作。之间的紧密协作。各种实践兼顾项目成员的短期直觉和项各种实践兼顾项目成员的短期直觉和项目的长期利益。目的长期利益。第第2讲讲: 软件开发过程软件开发过程2.3 敏捷开发敏捷开发敏捷功能敏捷功能- 提倡短周期发布,这样任何延迟的范围都是有限的。提倡短周期发布,这样任何延迟的范围都是有限的。- 一个发布周期内,计划许多小任务以保证团队可以在该周期内解决问题一个发布周期内,计划许多小任务以保证团队可以在该周期内解决问题。- 提倡优先实现高优先级的功能。提倡优先实现高优先级的功能。- 最小发布必须是满足最大商业意义的,选择团队中面向业务的最小发布必须是满足最大商业意义的,选择团队中面向业务的成员来承担。成员来承担。-自动化测试,每次代码改动后运行,确保质量底线。自动化测试,每次代码改动后运行,确保质量底线。-保证系统处于可部署状态,不允许出现问题的积累。保证系统处于可部署状态,不允许出现问题的积累。进度延迟进度延迟项目取消项目取消系统恶化系统恶化- 既包含每个函数的单元测试,也包含专门测试人员的功能测试。既包含每个函数的单元测试,也包含专门测试人员的功能测试。缺陷率缺陷率第第2讲讲: 软件开发过程软件开发过程2.3 敏捷开发敏捷开发敏捷功能敏捷功能- 业务人员成为团队人员,项目规格说明在开发过程中不断改进业务人员成为团队人员,项目规格说明在开发过程中不断改进。- 由于缩短了发布周期,因此极大减少变更带来的影响。由于缩短了发布周期,因此极大减少变更带来的影响。- 拥抱变化,利用重构解决变更带来的技术问题。拥抱变化,利用重构解决变更带来的技术问题。- 坚持只解决最高优先级的任务。坚持只解决最高优先级的任务。业务误解业务误解业务变更业务变更错误特性太多错误特性太多- 团队开发模式,鼓励新成员承担越来越多的责任,互相帮助。团队开发模式,鼓励新成员承担越来越多的责任,互相帮助。- 要求程序员自己估算自己的工作时间并完成。要求程序员自己估算自己的工作时间并完成。人员流动人员流动第第2讲讲: 软件开发过程软件开发过程2.3 敏捷开发敏捷开发敏捷敏捷基本实践基本实践第第2讲讲: 软件开发过程软件开发过程2.3 敏捷开发敏捷开发敏捷敏捷扩展实践扩展实践第第2讲讲: 软件开发过程软件开发过程2.3 敏捷开发敏捷开发敏捷:敏捷:精益思维精益思维第第2讲讲: 软件开发过程软件开发过程2.3 敏捷开发敏捷开发敏捷与传统的比较敏捷与传统的比较传统思维传统思维 是员工的问题是员工的问题 尽量优化各部门的工作尽量优化各部门的工作 快速交付和高质量意味着多花快速交付和高质量意味着多花钱钱 流程应流程应”强壮强壮“一些,把所有一些,把所有的保险都打开,的保险都打开,“小小”问题会问题会被吸收被吸收 针对个人进行考核针对个人进行考核 激励并管理员工激励并管理员工 谁犯的这个错谁犯的这个错 了解并做好你的工作了解并做好你的工作 为了更好的预测,做个全面的为了更好的预测,做个全面的分析分析 大而集中能提高效率大而集中能提高效率精益思维精益思维 是流程的问题是流程的问题 系统思考,优化整体系统思考,优化整体 快速交付和高质量互为手段目快速交付和高质量互为手段目的的 流程应流程应”脆弱脆弱“一些,任何小一些,任何小问题都可以迫使它终止问题都可以迫使它终止 针对流程进行考核针对流程进行考核 清除员工面临的障碍,开发员清除员工面临的障碍,开发员工工 是甚么让错误发生了是甚么让错误发生了 我的工作如何配合其它部分我的工作如何配合其它部分 只有频繁的预测才是可依赖的只有频繁的预测才是可依赖的方法方法 小而灵活才是美小而灵活才是美第第2讲讲: 软件开发过程软件开发过程实验工具:实验工具:IBM Rational Software Architect (RSA)lRSA是一个基于是一个基于UML 2.1的可视化建模和架构设计工具的可视化建模和架构设计工具构建在Eclipse开源框架之上,它具备了可视化建模和模型驱动开发(Model-Driven Development)的能力。支持普通的分布式应用、Web Services等。采用UML 2.1规范,将UML规范更新为最新的2.1版本。搜索功能的改进模型可用性的改进第第2讲讲: 软件开发过程软件开发过程实验工具:实验工具:IBM Rational Software Architect (RSA)lRSA主界面主界面第第2讲讲: 软件开发过程软件开发过程实验工具:实验工具:IBM Rational Software Architect (RSA)lRSA支持十种图支持十种图名称用途类图是使用得最为广泛的类图是使用得最为广泛的UML图之一。它使用类和接口来描述组成系统的实体以及它们之图之一。它使用类和接口来描述组成系统的实体以及它们之间的静态关系。利用类图可以生成源代码作为搭建系统的框架。间的静态关系。利用类图可以生成源代码作为搭建系统的框架。组件图描述了系统实现的组成和相互依赖。它能够将小的事物(例如类)组装成更大的、组件图描述了系统实现的组成和相互依赖。它能够将小的事物(例如类)组装成更大的、可以部署的部件。组件图的详细程度取决于你想展现什么。可以部署的部件。组件图的详细程度取决于你想展现什么。组合结构图是组合结构图是UML2.0中新出现的图。随着系统变得越来越复杂,事物之间的关系也变得复中新出现的图。随着系统变得越来越复杂,事物之间的关系也变得复杂了。从概念上讲,组合结构图将类图和组件图连接了起来。它并不强调类的详细设计和杂了。从概念上讲,组合结构图将类图和组件图连接了起来。它并不强调类的详细设计和系统如何实现。它描述了系统中的事物如何联合起来实现某一个复杂的模式。系统如何实现。它描述了系统中的事物如何联合起来实现某一个复杂的模式。部署图描述了你的系统是如何实际运行的,同时还描述了系统是如何应用到硬件上的。一部署图描述了你的系统是如何实际运行的,同时还描述了系统是如何应用到硬件上的。一般情况下,使用部署图说明组件是如何在运行时进行配置的。般情况下,使用部署图说明组件是如何在运行时进行配置的。对象图使用了和类图一样的语法,同时还展示了在一个特定的时间类的实例。对象图使用了和类图一样的语法,同时还展示了在一个特定的时间类的实例。活动图记录了从一个行为或活动到下一个的转化。活动图记录了从一个行为或活动到下一个的转化。通信图是一种交互图,它关注的是一个行为中涉及到的事物以及它们之间反复传递的消息。通信图是一种交互图,它关注的是一个行为中涉及到的事物以及它们之间反复传递的消息。序列图是一种交互图。它关注的是在执行的时候,在事物之间传递的消息的类型和顺序。序列图是一种交互图。它关注的是在执行的时候,在事物之间传递的消息的类型和顺序。状态机图描述的是事物内部状态的转化。这个事物可能是一个单独的类,也可以是整个系状态机图描述的是事物内部状态的转化。这个事物可能是一个单独的类,也可以是整个系统。统。用例图描述了系统的功能性需求。用例图描述了系统的功能性需求。第第2讲讲: 软件开发过程软件开发过程实验工具:实验工具:IBM Rational Software Architect (RSA)lRSA分析模型元素分析模型元素第第2讲讲: 软件开发过程软件开发过程实验工具:实验工具:IBM Rational Software Architect (RSA)lRSA设计设计模型元素模型元素第第2讲讲: 软件开发过程软件开发过程实验工具:实验工具:IBM Rational Software Architect (RSA)lRSA实现模型元素实现模型元素
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!