精品PPT课件--第一章软件建模概论.ppt

上传人:本田雅阁 文档编号:3167402 上传时间:2019-07-19 格式:PPT 页数:130 大小:6.37MB
返回 下载 相关 举报
精品PPT课件--第一章软件建模概论.ppt_第1页
第1页 / 共130页
精品PPT课件--第一章软件建模概论.ppt_第2页
第2页 / 共130页
精品PPT课件--第一章软件建模概论.ppt_第3页
第3页 / 共130页
精品PPT课件--第一章软件建模概论.ppt_第4页
第4页 / 共130页
精品PPT课件--第一章软件建模概论.ppt_第5页
第5页 / 共130页
点击查看更多>>
资源描述

《精品PPT课件--第一章软件建模概论.ppt》由会员分享,可在线阅读,更多相关《精品PPT课件--第一章软件建模概论.ppt(130页珍藏版)》请在三一文库上搜索。

1、1/336,软件建模技术,东北大学信息科学与工程学院 杨雷 E-Mail: ,2,第0章 Introduction,0.1 课程名称 0.2 教学目的 0.3 教学内容 0.4 参考书目,3,0.1 课程名称,UML语言设计 面向对象技术与UML教程 软件建模技术,4,0.2 教学目的,在掌握面向对象技术的基础上,学习如何采用统一建模语言(UML)来对系统进行分析、设计和开发。 掌握Rose工具。(实践能力),5,0.3 教学内容,软件建模概述 UML概述 用例图 类图和对象图 顺序和协作图 状态图和活动图 构件图和部署图 UML与统一开发过程RUP 使用UML分析设计应用系统,6,0.4 参

2、考书目(1/2),UML与软件建模 徐宝文 清华大学出版社,面向对象技术UML教程 王少锋 清华大学出版社,7,0.4 参考书目(2/2),UML 用户指南 Grady Booch,.Rational Rose 2003教程,考核方式,课程资源、课时安排,课件: http:/ 本课程相关网站: http:/ 课时安排: 授课+上机:24+16 学时+n自学,如何学好,11/336,第1章 软件建模概论,东北大学信息科学与工程学院 杨雷 E-Mail: ,12,主要内容,1.1 模型 1.2 软件过程 1.3 软件模型 1.4 面向对象方法基础 1.5 面向对象的软件建模方法,1.1 模型,地图

3、模型,1.1 模型,建筑模型,1.1 模型,规划模型,绘画模型,1.1 模型,定积分的含义:,欧姆定律:,数学、物理模型,1.1 模型,软件生存周期的瀑布模型,1.1 模型,1.1 模型,模型定义:模型是对某一系统完整的抽象,是对现实的简化。 模型是对现实系统的简化或模拟,是对现实系统本质特征的一种简化、直观、类比和抽象的描述。 建模的目的是为了解决客观世界中存在的问题,而不仅仅是为了描述客观事物 模型的表示包括文字或图形。,1.1 模型 (模型的作用),便于理解和交流模型可以促进项目的有关人员对系统的理解和交流。 优选方案通过模型帮助人们从多个方案中挑选出优选的方案。 缩短开发周期通过建模形

4、象化系统开发内容和开发过程,提高开发效率,缩短开发周期。,1.1 模型 (建模的原因),人对复杂问题的理解能力有限,通过建模对现实世界进行一定程度的抽象,可以简化所研究问题的难度。 对大型复杂系统建模时,可以采用“各个击破”的手段,将要解决的问题分解为一系列小问题,即在建模过程中一次只注重研究它的一个方面,这样通过对小问题的解决从而得到整个问题的解。,1.1 模型 (模型的特征),反映性模型用来反映客观实体 简化性以简化的方式来反映客观事物 直观性方便、直观的方式反映客观 抽象性以抽象的方式描述客观事物及其规律。,1. 从学科分:,可以从不同方面对模型进行分类:,思维模型,社会模型,工程模型,

5、建筑模型,软件模型,1.1 模型 (模型的类型),逻辑模型,实体模型,2. 从形物化角度分:,3. 从抽象程度分:,概念模型系统的雏形,对系统的概括性描述。 逻辑模型原理上合理可行的系统,是对现实系统的逻辑化、设计性描述。 物理模型逻辑模型的基础上,考虑设计细节, 实现的实在系统。,建立模型的过程被称为建模。 建立模型的过程是一个抽象、反复和逐步求精的过程。,现实系统,1.1 模型 (建模),建模的原则,选择建立什么样的模型对如何发现和解决问题具有重要的影响。,每个模型可以有多种表达方式。 使用者的身份和使用的原因是评判模型好坏的关键 最好的模型总是能够切合实际。 模型是现实的简化,必须保证简

6、化过程不会掩盖任何重要的细节。 4. 孤立的模型是不完整的。,建模的原则,建模的原则,过程,表示法,工具,1.1 模型 (模型的三要素),过程 建立模型的过程,只有确切知道建模的过程才能够成功建立一个模型。 表示法 模型的表示,也就是建模语言,是建立模型的关键,例如UML就是软件的建模语言。 工具 通过建模工具来方便建立模型。,30,主要内容,1.1 模型 1.2 软件过程 1.3 软件模型 1.4 面向对象方法基础 1.5 面向对象的软件建模方法,1. 生命周期与过程 生命周期:指事物衍生存在的时间历程。 人的生命周期,1.2 软件过程,过程:是事物在其生命周期中,按照某种特征,一系列相关活

7、动按照确定的次序演绎变化的进程。,人的生命周期,身体发育过程,心理成熟过程,性格形成过程,接受教育过程,2. 软件过程的概念 软件过程(software process)是指软件在其生命周期中,一系列相关活动按照确定的次序演绎变化的进程。象获取过程、管理过程、开发过程、维护过程等。,3. 软件过程的提出 软件年代中期以前,软件过程没有受到重视,软件过程分含在不同的软件开发方法之中,软件过程十分混乱; 年代软件过程开始受到重视,年国际正式颁布软件过程标准; 年正式接受Rational提出的:统一软件开发过程。,4. 软件工程过程的基本内容,按照国标GB-8566-1995(信息技术软件生存期过程

8、)规定,软件过程共包括 获取过程 运作过程 供应过程 维护过程 管理过程 支持过程 开发过程 裁剪过程,美国Rational公司,于1998年6月公布了统一软件开发过程RUP(Rational Unified Process)。 结束软件开发过程的混乱局面,使软件开发过程得到了统一。,5.统一软件开发过程RUP,1) RUP的提出,时间维: 初始、细化、构建、移交4个阶段。 工作维:领域分析、需求分析、系统设计、实现和测试等核心工作。,2) RUP的结构,图2 统一软件开发过程的二维结构,图3 软件各开发阶段工作的比例,领域分析(Business Analysis) 对软件所服务的业务领域进行

9、深入分析。对管理型软件来说,领域分析的工作有: 现行企业系统调查; 企业目标分析; 机构和职能分析; 业务流程分析; 企业实体分析; 建立领域模型等。,3) 软件的主要开发工作,需求分析(Requirements Analysis) 需求分析是对所开发的软件系统应该具有的功能、性能和作用的分析。需求分析主要工作: 需求调查; 需求分析; 需求建模; 需求审核。,系统设计(System Design) 系统设计的任务是确定软件系统的设计方案。系统设计包括: 1)软件结构设计 系统平台设计 软件体系结构设计 软件结构设计 2)详细设计 子系统设计 数据库设计 界面设计,系统实现(System Im

10、plemention) 系统实现的任务是把软件系统的设计方案转变成为可以交付测试的软件系统实物。系统实现的工作包括 编程; 单元测试; 系统集成。,.测试(Test) 测试是对所实现的软件系统进行的测试。测试的工作包括: 编制测试计划 构造测试用例 实施测试,46,主要内容,1.1 模型 1.2 软件过程 1.3 软件模型 1.3 面向对象方法基础 1.4 面向对象的软件建模方法,软件模型:对软件系统在各个开发阶段本质特性的描述,它要反映软件系统的形成过程。,软件模型的概念,1.3 软件模型,1) 软件模型是软件的中间形态,软件模型的作用,2) 软件模型是对业务领域、用户需求、设计意图、实现环

11、境的反映,软件模型,3) 软件模型是人员交流的媒介,用户,开发人员,中介机构,软件模型,4) 软件模型是软件升级、维护的依据,软件建模的要素,软件开发之喻 建造房子(旅行、指挥作战) 学习软件建模:如何从建筑工人成长为建筑师 音乐建模的表示载体:五线谱 建筑建模的表示载体:图纸 软件建模的表示载体:?,教学进程,1.2 软件建模(内容),教学进程,1.2 软件建模(内容),教学进程,软件建模(内容),教学进程,软件建模(内容),教学进程,软件的实现方案。 包括软件的实现结构,构件, 文件等。,软件建模(内容),教学进程,软件建模(内容),60,主要内容,1.1 模型 1.2 软件过程 1.3

12、软件模型 1.4 面向对象方法基础 1.5 面向对象的软件建模方法,61,1.4 面向对象方法基础,软件危机及软件工程 对软件开发的认识 复杂性及控制复杂性的基本方法 面向对象技术 面向对象领域中的基本概念,62,软件危机及软件工程,软件危机 软件危机:落后的软件生产方式无法满足迅速增长的软件需求,从而导致软件(大型)开发与维护过程中出现一系列严重问题的现象。 主要表现: 软件开发费用和进度失控 软件的可靠性差 生产出来的软件难以维护 软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升 软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的需要,Crisis!,63,软件危机例证,

13、IBM公司的 OS/360,共约100万条指令,花费了5000个人年;经费达数亿美圆,而结果却令人沮丧,错误多达2000个以上,系统根本无法正常运行。 OS/360系统的负责人Brooks这样描述开发过程的困难和混乱:“像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。” 1963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是FORTRAN程序: DO 5 I=1,3 误写为:DO 5 I=1 . 3 1967年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁。,64,硬件/软件成本变化

14、趋势,100%,0%,1955,1970,1985,65,软件技术进步落后于需求增长,66,软件危机,原因 客观:软件本身特点 逻辑部件 规模庞大 主观:不正确的开发方法 忽视需求分析 错误认为:软件开发=程序编写 轻视软件维护,67,软件危机及软件工程,软件工程 提出:1968年北大西洋公约 软件可靠性会议(NATO) 定义 软件工程 (Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。 目的 就是在规定的时间、规定的开发费用内开发出满足用户需求

15、的高质量的软件系统。 (高质量不只是指错误率低,还包括好用、易用、可移植、易维护等。),68,软件工程的发展,软件工程的发展已经历了三个重要阶段:,3、第三代软件工程 构件工程(软件复用),2、第二代软件工程 对象工程,1、第一代软件工程 传统的软件工程,注:软件工程发展阶段论没有统一定论,60年代末到70年代为了克服“软件危机” (Software crisis)提出“软件工程”的名词, 将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、技术和方法。称为传统的软件工程。,69,软件工程的发展,软件工程的发展已经历了三个重要阶段:,3、第三代软件工程 构件工程(软件复用),2、第二代软

16、件工程 对象工程,1、第一代软件工程 传统的软件工程,注:软件工程发展阶段论没有统一定论,80年代中到90年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。,70,软件工程的发展,软件工程的发展已经历了三个重要阶段:,3、第三代软件工程 构件工程(软件复用),2、第二代软件工程 对象工程,1、第一代软件工程 传统的软件工程,注:软件工程发展阶段论没有统一定论,90起年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构造,以此达到提高效率和

17、质量,降低成本的目的。称为构件工程。,71,软件,软件就是程序?,一定要纠正软件就是程序,开发软件就是编写程序的错误观念!,软件定义:软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述软件开发过程及其管理、程序的操作和使用的有关文档。,程序的构成: 面向过程的程序=算法+数据结构 面向对象的程序=对象+消息 面向构件的程序=构件+框架,72,软件,软件的简要定义: 软件=程序+数据+文档 程序:按事先设计的功能和性能需求执行的指令序列 数据:是程序能正常操纵信息的数据结构 文档:与程序开发及过程管理、维护和使用有关的图 文材料,程序、软件与软件产品: 独唱小

18、合唱合唱万人大合唱 | | | 简单程序 较复杂程序 软件,73,软件规模越来越大,Windows95有1000万行代码 Windows2000有5000万行代码,Exchange2000和 Windows2000开发人员结构,74,复杂性及控制复杂性的基本方法,软件的固有复杂性: 著名的计算机专家、被称之为IBM 360系列计算机之父的F. Brooks认为软件的复杂性是固有的,软件可能是人类所能制造出来的最复杂的实体。 (F. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering, Computer,

19、 April 1987, pp.10-19 ) 导致软件复杂性的原因 与计算机的体系结构有关 软件开发是人的一种智力活动 各元素之间的相互作用关系的不确定性 随硬件变化而变化,75,复杂性及控制复杂性的基本方法,软件固有复杂性使得开发成员之间的通讯变得困难,开发费用超支、开发时间延期等;也导致产品有缺陷、不易理解、不可靠、难以使用、功能难以扩充等。 软件的复杂性是固有的,即不能采用某种方法彻底消除软件的复杂性,因此软件危机只能是通过控制复杂性的方法解决。,76,复杂性及控制复杂性的基本方法,控制软件复杂性的基本方法 分解 对复杂系统采用“各个击破”的策略 抽象 抽取系统中的基本特性而忽略非基本

20、的部分 模块化 高内聚(cohesion),低耦合(coupling) 高内聚指的是在一个模块中应尽量多地汇集逻辑上相关的计算资源;低耦合指的是模块之间的相互作用应尽量少。 信息隐蔽 也称封装。 模块内部的实现细节与外界隔离,提高了软件的可维护性。,结构化开发方法,何谓“结构化”? 结构化程序设计 设计过程 程序组织 语句构造 结构化 结构化分析设计 数据流图 数据字典 模块结构图 结构化的好处 科学化 可读性 模块化 信息隐蔽.,结构化开发方法,(1)结构化模型设计方法的实现 传统的面向过程的软件开发是从-算法的角度和业务流程进行建模。 (2)模型的核心是数据词典 它描述了所有的在目标系统中

21、使用的和生成的数据对象。围绕着这个核心的有三种图: 实体-关系图(ERD) 描述数据对象及数据对象之间的关系,用于数据建模; 数据流图(DFD) 描述数据在系统中如何被传送或变换,以及描述如何对数据流进行变换的功能(子功能),用于功能建模; 使用系统结构图来表达功能间的关系,(3)使用系统结构图来表达功能间的关系,(4)使用数据流图表达功能与数据间关系,同时使用ER图表达数据间关系,传统的结构化模型的设计所建立的模型(数据)不能反应源代码(操作),忽略了模型与代码之间不可分割的内在联系 模型与代码几乎没什么关系。同时根据模型不能生成代码,反之根据代码更不能生成模型。 不能保证软件的质量,更不易

22、软件的维护-没什么约束力也没有检测的标准。,结构化模型设计方法主要的缺点,传统的软件开发是从算法的角度进行建模-所有的软件都用函数作为构造块,这种建模方法使设计人员把精力放在控制流程和对应的算法进行分析上,这种方法建立的模型是脆弱的,因为当需求发生变化的时候,将难以维护。 没有体现出数据所表示的业务含义,并且对客观世界的描述不够准确 过程式设计对于比较复杂的问题,或是在开发中需求变化比较多的时候,往往显得力不从心,结构化模型设计方法主要的缺点,82,面向对象技术,什么是面向对象 英文:Object-oriented, OO OO是控制软件复杂性的有效途径,充分体现了分解、抽象、模块化、信息隐蔽

23、 传统结构化方法 以过程为中心,对问题进行功能分解 面向对象方法 对问题域进行自然分割,尽可能直接地描述现实世界,面向对象基本思想,在软件开发中,采用与人的思维过程相一致的,直接面向客观事物,面向所要解决的需求问题,并用一套对象、类、继承、消息等机制开发软件的系统性方法。 要点1:任何事物都是对象,对象有属性和方法。复杂对象可以由相对简单的对象以某种方式构成。 要点2:通过类比发现对象间的相似性,即对象间的共同属性,是构成对象类的依据。 要点3:对象间的相互联系是通过传递“消息”来完成的。通过对象之间的消息通信驱动对象执行一系列的操作从而完成某一任务。,2、面向对象方法的特点 1)直接面向客观

24、事物与人类思维方法一致,客观对象,2)采用一致连贯的软件模型,3)提高软件可重用性和效率,老软件:,新软件:,框架 方案 程序 类 文档,继 承,87,面向对象技术,面向对象技术充分体现了分解,抽象,模块化,信息隐蔽等思想,可以有效地 提高软件生产率 缩短软件开发时间 提高质量,历史,PL发展 机器语言 汇编语言 高级语言 表达式(Fortran) 控制(COBOL) 过程和函数(Pascal) 模块和数据(Modula) 对象(Smalltalk),抽象层次 二进制串 变量、运算、表达式、语句 面向过程(PO) 面向对象(OO) 面向?(XO),低,高,软件工程发展的历史就是人们不断追求更高

25、的抽象、封装和模块化的历史。,面向对象技术新进展,面向对象数据库 分布组件技术 DCOM CORBA EJB和J2EE 面向对象操作系统 面向对象软件工程 UML Design Pattern 基于构件的软件工程 并行面向对象技术,90,面向对象技术,面向对象技术充分体现了分解,抽象,模块化,信息隐蔽等思想,可以有效地 提高软件生产率 缩短软件开发时间 提高质量,91,面向对象技术的优势,稳定: 较小的需求变化不会导致系统结构大的改变。 易于理解:面向对象的模型更加贴切地反映了现实世界,尤其对于使用者。,面向对象的方法,Functions,功能分解法,92,面向对象的方法有助于开发大型软件系统

26、。 具有更高的可靠性和灵活性。 符合人们通常的思维方式;从分析到设计再到编码采用一致的模型表示具有高度连续性;软件重用性好。 ,面向对象技术的优势,93,面向对象领域中的一些常用术语,Object 对象 ( Instance 实例) Class 类 Attribute 属性 Operation 操作 (Method 方法),Encapsulation 封装 Inheritance 继承 Polymorphism 多态 Message 消息 OOA 面向对象分析 OOD 面向对象设计,一、对象 1、对象的概念 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。 对象既可以描述客

27、观存在的事物,也可以表示由人主观构造的抽象观念。对象可以是具体的、有形的物,也可以是无形的事物或概念。,2、对象在三个世界中的含义,软件空间,主观空间,事物,概念,对象,软件中对象由一组属性和操作组成。,3、软件中的对象及性质,例如:,3、软件中的对象及性质,Public class Employee private String name; private EmployeeDate birthDate; private EmployeeDate hireDate; public Employee(Sting name,int bYYYY, int bMM, int bDD, int hYYY

28、Y, int hMM,int hDD) this.name = name; birthDate = new EmployeeDate(bYYYY,bMM,bDD); hireDate = new EmployeeDate(hYYYY,hMM,hDD); public String to String() return name+” birthday:”+ birthDate.toString()+ “hired:”+hireDate.toString(); ,雇员对象,Java编写的 “雇员对象”程序,收音机,一个对象的实例图解,内部状态,Turn on,Turn off,Adjust vol

29、ume,Change channel,other,101,类(Class),类是具有相同属性和方法的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和方法两个主要部分。,2、类的表示 简化表示: 例: 规范表示: 例: 缩略表示:,103,说明 同类对象具有相同的属性和方法,是指它们的定义形式相同,而不是说每个对象的属性值都相同。 类是静态的;类的存在、语义和关系在程序执行前就已经定义好了。 对象是动态的; 对象在程序执行时可以被创建和删除。,类(Class),104,类的示例,类: Employee,类名,属性,方法,105,封装(Encapsulation),封装

30、就是把对象的属性和方法结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。 封装就是使一个对象形成两个部分: 接口和实现,对于用户来说,接口是可见的,实现是不可见的。 封装提供两种保护 1. 保护对象:防止被用户误用。 2. 保护客户端:封装能减小实现过程改变的副作用,即实现过程的的改变不会影响到相应客户端的改变。,一辆银灰色的汽车,一辆银灰色的汽车,属性:颜色、型号、重量、排气量、 服务:启动、停、加速、 接口:方向盘、车钥匙,108,继承(Inheritance),特殊类的对象拥有其一般类的全部属性与方法,称作特殊类对一般类的继承。 (一般类/特殊类;父类/子类;超类/子类;基类/派生类

31、等是相同的概念。),109,说明: 继承保证类之间的一致性 父类可以为所有子类定制规则; (许多OOP语言提供了这种实现机制,如C+中的虚函数,Java中的接口等)。 利用继承可以开发更贴近现实的模型 继承增加软件重用的机会 降低开发和维护费用,继承(Inheritance),110,子类可以继承父类的属性,也可以增加或重新定义继承的属性。 子类可以继承父类的操作,也可以增加或重新定义继承的操作。(重新定义称为override) override(覆盖)和overload(重载)的区别。,继承(Inheritance),111,覆盖override的例子,public class A Stri

32、ng name; public String getValues () return “Value is: ” + name; ,public class B extends A String address; public String getValues () return “Value is: ” + address; ,112,重载overload的例子,public class A int age; String name; public void setValue (int i) age = i; public void setValue (String s) name = s;

33、,指一个类中有多个同名的方法,但在操作数个数或类型上有区别。,113,继承可分为单继承和多继承 单继承:子类只从一个父类继承 多继承:子类从多于一个的父类继承,继承(Inheritance),114,单继承例子,例:交通工具是一个父类,地面交通工具和空中交通工具是子类,115,多继承例子,一个两栖交通工具同时继承地面交通工具和水上交通工具。,116,多继承可能引起的问题:“命名冲突”问题 C+中采用成员名限定解决 Eiffel中采用方法再命名机制 Java中不支持多继承,117,多态(Polymorphism),多态是指在一般类中定义的属性或方法被特殊类继承之后,可以具有不同的数据类型或表现出

34、不同的行为。,118,多态,119,多态,Case of animaltype: If animaltype=elephant then EatGrass(data); if animaltype=cat then EatMouse (data); if animaltype=mouse then EatCheese (data); end case; animaltype.eat(data); myAnimal.eat(data);,deer lion .,120,说明: 跟多态相关的概念: 覆盖(override),动态绑定(dynamic binding) 多态属于运行时问题,而重载(o

35、verload)是编译时问题。,121,消息(Message),消息就是向对象发出的服务请求,对象直接用消息的方式交互,而不是参数。它包含下述信息:提供服务的对象标识、服务(方法)标识、输入信息和回答信息。 通过消息进行对象之间的通信,是OO方法的一个原则。 采用消息这个术语的好处(而不是函数调用): 第一,更接近人们日常思维所采用的术语; 第二,其涵义更具有一般性,不限制采用何种实现技术。 如在分布式环境中,对象可以在不同的网络结点上实现并且相互提供服务,在这种情况下,消息术语具有更强的适应性。,122,消息的格式,message: destination, operation, param

36、eters,message: receiver, operation, parameters,message: sender, return value(s) ,123,消息传递的例子,message: D,op10, message: C,op08, ,message,return value,124,面向对象分析OOA,简单地说,OOA (Object-Oriented Analysis) 面向对象的分析,就是运用面向对象的方法进行需求分析。 用面向对象方法分析问题域,建立基于对象、消息的业务模型,形成对客观世界和业务本身的正确认识。 结果是:生成业务模型和分析类,125,面向对象设计OO

37、D,定义:OOD (Object-Oriented Design)面向对象的设计,就是在OOA 模型的基础上运用面向对象方法进行系统设计,目标是产生一个符合具体实现条件的OOD 模型。 针对OOA给出的问题域模型,用面向对象方法设计出软件基础架构(概要设计)和完整的类结构(详细设计),以实现业务功能。,126,主要内容,1.1 模型 1.2 软件过程 1.3 软件模型 1.4 面向对象方法基础 1.5 面向对象的软件建模方法,1.5面向对象的软件建模,含义:在软件开发中,采用与人的思维方式相一致的,直接面向客观事物,面向所要解决的需求问题,并用一套对象、类、继承、消息等机制开发软件的系统化 软

38、件建模方法。 特点 对象是软件建模的重心; 包括需求、设计、实现等多种模型; 属一类建模方法,而非一种方法。,1.5面向对象的软件建模,最大的优点在于创建更具模块化的方法 - 帮助传递信息并降低复杂性 提供单个统一的方法 在生命周期的每个阶段使用相同的对象模块,1.5 面向对象的软件建模,面向对象建模方法是通过应用面向对象的模式,分析、设计和实现规划中的系统的方法,分析,系统设计,对象设计,实现,130,小结,模型是对某一系统完整的抽象,是对现实的简化 人对复杂问题的理解能力有限,通过建模对现实世界进行一定程度的抽象,可以简化所研究问题的难度。 软件危机依旧存在-软件危机的根源在于软件固有的复杂性 控制复杂性-分解、抽象、模块化、信息隐蔽 OO技术充分体现了控制复杂性的思想,与结构化方法相比,OO方法更具优势,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1