第2章 面向对象技术和建模基础
(完整版)软件工程 判断题
![(完整版)软件工程 判断题](https://img.taocdn.com/s3/m/4004c82f50e2524de4187e0a.png)
判断题:第1章概述1。
由于今天个人计算机不断发展壮大,人们不再采用软件团队的开发方式。
(×)2。
由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。
(×)3. 购买大多数计算机系统所需的硬件比软件更昂贵.(×)4。
大多数软件产品在其生命周期中不需要增强功能。
(×)5。
大多数软件系统是不容易变化的,除非它们在设计时考虑了变化。
(√)6. 一般来说,软件只有在其行为与设计者的目标一致的情况下才能成功。
(×)第4章需求工程1. 在需求分析过程中,分析员要从用户那里解决的最重要的问题是明确软件做什么。
(√)2. 软件需求规格说明书在软件开发中具有重要的作用,它是软件可行性分析的依据。
(×)第5章面向对象基础1. 模型是对现实的简化,建模是为了更好地理解所开发的系统。
(√)2。
UML语言支持面向对象的主要概念,并与具体的开发过程相关。
(×)第6章面向对象分析1. 面向对象分析的核心在于建立一个描述软件系统的模型。
(×)第7章软件体系结构设计1. 系统体系结构的最佳表示形式是一个可执行的软件原型。
(×)2. 软件体系结构描述是不同项目相关人员之间进行沟通的使能器.(√)3. 良好的分层体系结构有利于系统的扩展与维护。
(√)4。
消除两个包之间出现的循环依赖在技术上是不可行的.(×)5. 设计模式是从大量成功实践中总结出来且被广泛公认的实践和知识。
(√)第8章面向对象设计1。
面向对象设计是在分析模型的基础上,运用面向对象技术生成软件实现环境下的设计模型.(√)2。
系统设计的主要任务是细化分析模型,最终形成系统的设计模型.(×)3。
关系数据库可以完全支持面向对象的概念,面向对象设计中的类可以直接对应到关系数据库中的表。
(×)4。
用户界面设计对于一个系统的成功是至关重要的,一个设计得很差的用户界面可能导致用户拒绝使用该系统。
第2章 信息系统集成专业技术知识知识点(2024系统集成项目管理工程师考试)
![第2章 信息系统集成专业技术知识知识点(2024系统集成项目管理工程师考试)](https://img.taocdn.com/s3/m/71bf3310e418964bcf84b9d528ea81c758f52eeb.png)
第2章信息系统集成专业技术知识1考情分析1.1本章重点2考点精讲2.1信息系统1、信息系统的概念信息系统的组成部分包括硬件、软件、数据库、网络、存储设备、感知设备、外设、人员以及把数据处理成信息的规程等。
2、信息系统设计包括总体设计和各部分的详细设计(物理设计)两个方面。
3、信息系统生命周期信息系统的生命周期可以分为立项、开发、运维及消亡四个阶段。
2.2软件工程1、信息系统开发方法(1)结构化方法(2)原型法(3)面向对象方法。
2、软件开发模型对于开发模型知识点,要掌握软件生命周期的概念、各种开发模型的特点和应用场合。
主要考查的开发模型有瀑布模型、螺旋模型、迭代模型(RUP)、V模型、敏捷方法等。
各种软件开发模型的特点比较3、方案设计系统方案设计包括总体设计和各部分的详细设计(物理设计)两个方面。
4、软件需求分析与定义软件需求是针对待解决问题的特性的描述。
所定义的需求必须可以被验证。
在资源有限时,可以通过优先级对需求进行权衡。
5、软件设计从工程管理角度来看,软件设计可分为概要设计和详细设计两个阶段。
6、软件测试软件测试是软件质量保证的主要手段之一,也是在将软件交付给客户之前所必须完成的步骤。
7、软件维护软件维护占整个软件生命周期的60%~80%,维护的类型主要有以下4种:改正性维护---改正交付后发现的错误;适应性维护---为适用环境变化;完善性维护---优化性能和维护性;预防性维护---预防潜在的错误。
8、软件配置管理软件配置管理通过标识产品的组成元素、管理和控制变更、验证、记录和报告配置信息,来控制产品的进化和完整性。
9、软件质量保证及质量评价软件质量指的是软件特性的总和,是软件满足用户需求的能力,即遵从用户需求,达到用户满意。
软件质量包括“内部质量”“外部质量”和“使用质量”三部分。
软件需求定义了软件质量特性,及确认这些特性的方法和原则。
2.3面向对象方法在面向对象方法方面,主要考查面向对象的基本概念和UML。
UML2面向对象分析与设计(第2版)
![UML2面向对象分析与设计(第2版)](https://img.taocdn.com/s3/m/76c0761fe3bd960590c69ec3d5bbfd0a7956d50f.png)
5.3架构分析 5.4构造用例实现
5.5定义分析类
5.6练习题
6.1设计需要原则
6.2 Liskov替换原 则
6.3开放—封闭原则 6.4单一职责原则
6.6依赖倒置原则
6.5接口隔离原则
6.7练习题
01
7.1模式与 设计模式
02
7.2 GoF模 式
03
7.3更多的 设计模式
04
7.4职责分 配模式
UML2面向对象分析与设计(第2 版)
读书笔记模板
01 思维导图
03 读书笔记 05 目录分析
目录
02 内容摘要 04 精彩摘录 06 作者介绍
思维导图
本书关键字分析思维导图
设计
软件开发
例
方法
基础
设计
问题
面向对 象分析
分析
书
面向对象
业务
版
模型
类
建模
结构
架构
原则
内容摘要
内容摘要
分析和设计是软件开发中至关重要的一环,面向对象的方法是主流的软件开发方法,UML是用于面向对象分 析设计的标准化建模语言。本书围绕这3个方面展开,以论述分析设计建模过程为最终目标,以面向对象方法作为 建模的理论基础,以UML作为建模支撑语言。全书从面向对象和UML的基本概念入手,循序渐进地讲解业务建模、 需求建模、需求分析、设计原则和模式、架构设计、构件设计和代码生成等分析设计中的各个知识点,并通过多 个贯穿全书的案例将各个知识点串联起来,形成一套完整的面向对象分析设计方法论。本书是作者多年从事软件 工程教学和软件项目开发实践的总结,书中并没有太多抽象的概念,主要**实际软件开发中所需要的知识和实践 技能,力求做到通俗易懂。
面向对象技术与UML
![面向对象技术与UML](https://img.taocdn.com/s3/m/a9807411b90d6c85ec3ac6b4.png)
继承性举例
继承传递:大学生可以继承“人”和“学生”的特
征 父类 多重继承: 在职研究生既可以继承“学生”的特 征,又可以继承“教师”的特征 人
工人 学生 教师 农民
中学生 大学生 研究生 派生类
助教
讲师
具有继承关系的对象的特性
对象类间具有共享特征(包括数据和程序代
码的共享) 对象类间具有细微的差别或新增部分(包括 非共享的程序代码和数据) 对象类间具有层次结构。 继承所具有的作用有两个方面:
第二节 面向对象分析
本节要求了解面向对象分析的基本过程和基本原则 OOA: Object-oriented Analysis . 指利用面向对象的概念和方法构建软 件模型。 面向对象分析的基本过程 理解 表达
验证
对理解和表达进 行校验,以达到 理想效果。
需求
建立模型
在面向对象分析中,主要建立对象模型,动态模型和功能模型。 对象模型是最基本最重要的模型。
3) 可重用性好 有两种方法可以重复使用一个对象类:一种方法是创 建该类的实例,从而直接使用它;另一种方法是从它 派生出一个满足当前需要的新类。 4)较易开发大型软件产品 5)可维护性好
2.1.2 喷泉模型
“喷泉”这个词体现了面向对象软 件开发过程迭代和无缝的特性。 图中代表不同阶段的圆圈相互重 叠,这明确表示两个活动之间存 在交迭;而面向对象方法在概念 和表示方法上的一致性,保证了 在各项开发活动之间的无缝过渡, 事实上,用面向对象方法开发软 件时,在分析、设计和编码等项 开发活动之间并不存在明显的边 界。图中在一个阶段内的向下箭 头代表该阶段内的迭代(或求 精)。图中较小的圆圈代表维护, 圆圈较小象征着采用了面向对象 范型之后维护时间缩短了。
面向对象技术
![面向对象技术](https://img.taocdn.com/s3/m/901ff02a0722192e4536f613.png)
面向对象的软件过程
传统的和面向对象的软件生命周期模型 面向对象软件生命周期中的主要活动 完全面向对象的软件生命周期的概念
传统的软件生命周期模型
内部视图
把系统当作一个黑盒子, 从外部来描述系统,这 种模型就是外部模型 由于这是从外部来观察 系统得到的结果,又称 之为外部视图。 外部视图说明了系统是 什么,用来定义需求
外部视图
作用
作用
建模技术的表示法和语义学
建模技术两组成部分 表示方法,它能使分析人员、设计人员、编程人员、管理 人员以及用户彼此沟通,用得最多的,也是最直观的表示 方法是图形表示法 语义学。语义学可用自然语言来描述,也可用形式语言来 描述,或者两者相结合,这要根据建模技术的严格程度而 定。 模型元素 通过建模技术中的表示方法能使我们从要被建模的系统中 抽象出各种元素,这些元素称为模型元素,其目的是提供 人们可以理解的表示。 建模元素 在说明各种建模技术的语义学时,还将用到一些概念和符 号,它们在最后组成的软件系统模型中不直接表现出来, 这些元素称为建模元素。
面向对象技术的组成部分
明确给出面向对象的基本概念
对象、类、继承、消息和封装等基本概念 定义面向对象技术中用到的扩展的概念如建模、系统行为 等。 表示方法,使分析人员、设计人员、编程人员、管理人员 以及用户彼此沟通。 这种技术的语义学。语义学可用自然语言来描述,也可用 形式语言来描述。 包括对软件生命周期各阶段的描述,对各个阶段的进一步 细化,以及在生命周期各阶段如何运用建模技术和面向对 象语言来完成各阶段的任务。
消息性质和类型
第2章 面向对象技术与UML-郭
![第2章 面向对象技术与UML-郭](https://img.taocdn.com/s3/m/e32c4b29192e45361066f512.png)
在结构化方法中,现实世界被映射为功能(函数)的集合。
结构化方法的特点: 结构化程序设计:程序 = 算法 + 数据结构 从算法的角度进行建模,大量精力都集中在控制流程和 算法的分解上(功能分解)。 缺点:需求变动、维护困难
2.1 面向对象技术概述
面向对象方 法的引入: 软件复杂性 的增长, 使软件开发 越来越困难。 面向对象的 方法按照人 类的自然思 维的方式, 面对客观世 界建立软件 模型。
对象的标识(名字)
每一个对象都有一个唯一的标识, 即使其状态有可 能与其它对象一样。
no1 no2 no3
对象的状态(数据属性)
一个对象的状态是它反映于现实世界的一系列 属性:
基本描述 载客人数 它与其它对象的关系 任一时刻的历史状态
飞机类型 飞机驾驶员 所属的航空公司
可能的状态: 停泊 班机 747 飞行 着陆
继承的描述
子类可以继承父类的全部属性与操作,并 可以添加或重新定义所继承的方法。 如果是重新定义,称为覆盖。
注意:覆盖和重载是不同的。
覆盖的例子
重载的例子
public class A{ String name; public String getValues(){ return “Name is”+name; } } public class B extends A{ String address; public String getValues(){ return “address is”+address; } }
6. 多态性
定义:同一操作作用于不同的对象,可以有 不同的解释,产生不同的执行结果。 例子: 动物叫
面向对象技术
![面向对象技术](https://img.taocdn.com/s3/m/afd9d1d249649b6648d7475b.png)
Before:
i
j
After:
i
j
Before:
After:
c1
c2
c2: Circle
radius = 9
1
2
2
2
c1
c2
c1: Circle
radius = 5
变量赋值
Primitive type assignment i=j
Object type assignment c1 = c2
Before:
类和对象
Circle radius findArea new Circle() circle1: Circle radius = 2 ... new Circle() circlen: Circle radius = 5 Graphical 对象的图形 notation for 符号 objects Graphical 类的图形 notation for 符号 classes
构造计算机能够理 解和处理的类 包括了实体中与需 要解决的问题相关 的数据和属性 抽象数据类型
实例化
抽象
概念世界
数据抽象类型
现实生活 中的对象 计算机中的对象的原型
class Car { int color_number; int door_number; int speed; void brake() { … } void speedUp() {…}; void slowDown() { … } }
Primitive type Object type int i = 1 Circle c i c 1 reference
引用变量
c: Circle Created using new Circle(5) radius = 5
面向对象
![面向对象](https://img.taocdn.com/s3/m/affa261052d380eb62946d97.png)
面向对象技术面向对象技术强调在软件开发过程中面向客观世界或问题域中的事物,采用人类在认识客观世界的过程中普遍运用的思维方法,直观、自然地描述客观世界中的有关事物。
面向对象技术的基本特征主要有抽象性、封装性、继承性和多态性。
1.抽象性把众多的事物进行归纳、分类是人们在认识客观世界时经常采用的思维方法,“物以类聚,人以群分”就是分类的意思,分类所依据的原则是抽象。
抽象(Abstract)就是忽略事物中与当前目标无关的非本质特征,更充分地注意与当前目标有关的本质特征。
从而找出事物的共性,并把具有共性的事物划为一类,得到一个抽象的概念。
例如,在设计一个学生成绩管理系统的过程中,考察学生张华这个对象时,就只关心他的班级、学号、成绩等,而忽略他的身高、体重等信息。
因此,抽象性是对事物的抽象概括描述,实现了客观世界向计算机世界的转化。
将客观事物抽象成对象及类是比较难的过程,也是面向对象方法的第一步。
2.封装性封装(Encapsulation)就是把对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。
封装有两个含义:一是把对象的全部属性和行为结合在一起,形成一个不可分割的独立单位。
对象的属性值(除了公有的属性值)只能由这个对象的行为来读取和修改;二是尽可能隐蔽对象的内部细节,对外形成一道屏障,与外部的联系只能通过外部接口实现。
封装的结果使对象以外的部分不能随意存取对象的内部属性,从而有效地避免了外部错误对它的影响,大大减小了查错和排错的难度。
另一方面,当对象内部进行修改时,由于它只通过少量的外部接口对外提供服务,因此同样减小了内部的修改对外部的影响。
封装机制将对象的使用者与设计者分开,使用者不必知道对象行为实现的细节,只需要用设计者提供的外部接口让对象去做。
封装的结果实际上隐蔽了复杂性,并提供了代码重用性,从而降低了软件开发的难度。
3.继承性继承(Inheritance)是一种联结类与类的层次模型。
面向对象的建模技术
![面向对象的建模技术](https://img.taocdn.com/s3/m/557019b3ddccda38366baf23.png)
面向对象的建模技术(OMT)以前,我们在用Fortran 、C 语言进行编程时实际上使用了一种叫做面向过程的程序设计方法,也就是所说的结构化方法。
这种方法强调对系统功能进行抽象,系统功能的实现是通过对若干个模块的调用来完成的。
历史已经证明这种方法在降低软件开发成本、提高软件生产率方面是一次失败的尝试。
为什么呢?客观世界是一个对象的世界,人类对客观事物的认识又是一个由特殊到一般、一般到特殊的过程。
而面向过程所能提供给我们的解决问题的方法却是“后一步的设计要满足前一步的要求” 。
这种强调系统功能、一环套一环的设计方法使我们设计出来的软件模块仅仅是满足了特定的需求,并且在软件系统后期维护过程中它仅能给程序员提供很小的活动空间。
回首往事,除了仅有的几个数学函数外又有多少个所谓的模块可以真正地重用!又有多少位软件工程师在为自己所做的“遗憾工程”感到惋惜!这些主要是由于计算机求解的问题空间与解题的方法空间不一致,两种空间的映射量太大!当然产生上述问题的最根本的原因还应是冯. 偌伊曼的计算机体系结构。
面向对象的方法正是在上述背景下产生的。
面向对象的方法认为:客观世界的问题都是由客观世界的实体及其相互之间的联系构成的。
我们把客观世界的实体称为问题对象,那么对象都有自己的运动状态及运动规律,不同对象之间的相互作用和相互通信就构成了完整的客观世界。
使用面向对象的方法人们可以逐步去解决问题,而在问题逐步深入过程中不必去重新修改前面已完成的设计工作。
由于采用了数据抽象和封装技术,面向对象的程序设计降低了各模块间的关联程度,这就相对减少了程序员之间的相互影响。
这项技术是在设计初期只由有很少的程序员介入的情况下,通过在对象系统中建立一个高层次的通讯环境来实现的,它使得今后更改引起的成本大大降低。
使用面向对象的方法详细定义用户的数据类型,将它们封装在一起又可实现较高的代码利用率。
当今,计算机产业正朝着分布式处理、并行处理、网络化和软件生产工程化发展,而面向对象的方法是作为实施这些目标的关键技术之一。
《UML系统建模基础教程(第3版)》课后习题
![《UML系统建模基础教程(第3版)》课后习题](https://img.taocdn.com/s3/m/f0a63793cf2f0066f5335a8102d276a2002960be.png)
《UML系统建模基础教程(第3版)》课后习题习题 1填空题:(1)______是⾯向对象技术领域内占主导地位的标准建模语⾔,它统⼀了过去相互独⽴的数⼗种⾯向对象的建模语⾔共同存在的局⾯,形成了⼀个统⼀的、公共的、具有⼴泛适⽤性的建模语⾔。
(2)类的定义要包含_____、_____、_____要素。
(3)⾯向对象程序的三⼤要素是_____、_____和_____。
(4)⾯向对象⽅法中的_____机制使⼦类可以⾃动地拥有(复制)⽗类全部属性和操作。
(5)⾯向对象⽅法中系统分析要确定地3个系统模型是_____、_____和_____。
选择题:(1)如果想对⼀个类的意义进⾏描述,那么应该采⽤_____。
A. 标记值B. 规格描述C. 注释D. 构造型(2)建⽴对象的动态模型的步骤有_____。
A. 准备脚本B. 确定事件C. 构造状态图D. 准备事件跟踪表(3)软件的开发模式有_____。
A. 瀑布模型B. XP开发模型C. 喷泉模型D. 构建开发模型(4)下列关于类与对象的关系说法正确的是_____。
A. 有些对象是不能被抽象成类的B. 类给出了属于该类的全部对象的抽象定义C. 类是对象集合的再抽象D. 类是⽤来在内存中开辟⼀个数据区,存储新对象的属性(5)_____模型的缺点是缺乏灵活性,特别是⽆法解决软件需求不明确或不准确的问题。
A. 瀑布模型B. 增量模型C. 原型模型D. 螺旋模型(1)UML(2)名字 属性 操作(3)封装 继承 多态(4)继承(5)对象模型 功能模型 动态模型选择题:(1)C(2)ABCD(3)ABCD(4)BCD(5)A习题 2填空题:(1)UML中主要包含4种关系,分别是_____、_____、_____、_____。
(2)从可视化的⾓度来对UML的概念和模型进⾏划分,可将UML的概念和模型划分为_____、_____、_____。
(3)物理视图包含两种视图,分别是_____、_____。
面向对象技术概述
![面向对象技术概述](https://img.taocdn.com/s3/m/dbef1dea770bf78a652954d9.png)
常用软件开发方法
面向过程的方法: 面向过程的方法主要考虑事务流和 要完成的功能,数据被当作系统整体的一个部分来处 理,常常是分析过程的一个副产品。其代表方法是结 构化分析与设计方法.
面向数据的方法: 面向数据的方法将数据作为一种 独立的资源对待,数据是支持所有应用项目的基 础,处理过程也是重要的,但是它们必须存取数 据库中的数据。其代表方法是数据库设计方法。 信息工程的方法:信息工程是在软件工程和数据库 基础上形成和发展起来的,其方法采用的前提是 数据位于现代数据处理系统的中心,数据类型不 会发生很大的变化,因此这种方法是面向数据的 方法。
消息一般由三个部分组成:(接受消息的对象,接受 对象应采用的方法,方法所需要的参数)。计算任务 通常先由某一对象受理(该对象接收到某种消息),然 后,通过对象间的通信,计算任务就分散到各个有关 对象中,最后,再由某些对象给出结果(通过发送消 息)。 对象可以动态地创建,创建后即可以活动。对象在不 同时刻可处于不同状态,对象的活动是指对象状态的 改变,它是由对象所接收的消息引发的。对象一经创 建,就能接收消息,并向其他对象发送消息。对象接 收到消息后,可能出现:(1)自身状态改变(2)创建新 对象(3)向其他对象发送消息。
面向对象分析
对象模型。对象模型表示静态的、结构化的系统的“数据”性 质。它是对模拟客观世界实体的对象以及对象彼此间的关系的 映射,描述了系统的静态结构。面向对象方法强调围绕对象而 不是围绕功能来构造系统。对象模型为建立动态模型和功能模 型,提供了实质性的框架。在建立对象模型时,人们的目标是 从客观世界中提炼出对具体应用有价值的概念。 动态模型。动态模型表示瞬时的、行为化的系统的“控制”性 质,它规定了对象模型中的对象的合法变化序列。 功能模型。功能模型表示变化的系统的“功能”性质,它指明 了系统应该“做什么”,因此更直接地反映了用户对目标系统 的需求。
软件工程面向对象分析技术
![软件工程面向对象分析技术](https://img.taocdn.com/s3/m/dc888e4411a6f524ccbff121dd36a32d7375c7ee.png)
的 个问题,才能最终把模型建立进来。
基
本
过
程
前一页
需求陈述
主
要
▪ 书写要点
内 容
▪ 例子
前一页
书写要点
需求陈述的内容包括:
需 求
• 问题范围
陈
• 功能范围
述
• 性能需求
• 应用环境
• 假设条件等
前一页
书写要点
需
求
书写需求陈述时,应该慎重选用名 词、动词、形容词和同义词;不可将实
陈 际需求和设计混为一谈。
软件工程学系列
软件工程面向对象分析技术
面向对象分析
分析的过程都是通过理解、表达和验证,提 取系统需求的过程。
首先,系统分析员通过与用户及领域专家的 充分交流,力求完全理解用户需求和该应用领域 的背景知识,并用某种无二义性的方式把这种理
解表达成文档资料。分析过程得出的最重要的文 档资料是软件需求规格说明(在面向对象分析中, 主要由对象模型、动态模型和功能模型组成)。
型,取款额,账单,访问。
前一页
建 立 对 象 模 型
前一页
筛选的标准
冗余:
如果两个类表达了同样的信息,则保留 在此问题域中最富于描述力的名称。
例如:用非正式分析法得出了34个候选 的类,其中储户与用户,现金兑换卡与磁卡 及副本分别描述了相同的二类信息,因此, 应该去掉“用户”、“磁卡”、“副本”等 冗余的类,仅保留“储户”和“现金兑换卡” 这两个类 。
对 能促使分析员考虑问题域的边缘情况,有
象 助于发现那些尚未被发现的类—&—对象。
模
在分析确定关联的过程中,不必花过
型
多的精力去区分关联和聚集。事实上,聚 集不过是一组特殊的关联,是关联的一个
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.4 面向对象设计
OOD阶段主要工作 (1)对象定义规格的求精 在软件系统内设设计各个对象、对象间的关系(如层次关系、继 承关系等)、对象间的通信方式(如消息模式)等 。 (2)数据模型和数据库设计 数据模型的设计需要确定类和对象属性的内容、消息连接的方式、
系统访问、数据模型的方法等。最后每个对象实例的数据都必须落实
系 统 分 析 与 建 模
2.2.2 面向对象主要特征
封装性 封装是一种信息隐蔽技术,它体现于类的说明。封装使数据和加工该 数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使 得用户只能见到对象的外特性,而对象的内特性对用户是隐蔽的。
继承性 继承性是子类自动共享父类数据和方法的机制,它由类的派生功能体 现。一个类直接继承其它类的全部描述,同时可修改和扩充。 继承具有传递性,继承分为单继承(一个子类只有一父类)和多重继 承(一个类有多个父类)。
系 统 分 析 与 建 模
2.2.1 面向对象方法的基本概念
对象 对象是要研究的任何事物。从一本书、一个人、一件商品、一家 图书馆、一家极其复杂的自动化工厂、一架航天飞机都可看作对象, 它不仅能表示有形的实体,也能表示无形的(抽象的)规则、计划或 事件。 类 类是对象的模板。即类是 对一组有相同数据和相同操作 的对象的定义,一个类所包含 的方法和数据描述一组对象的 共同属性和行为。 消息 消息是对象之间进行通信 的一种规格说明。一般它由三 部分组成:接收消息的对象、 消息名及实际变元。
面向对象技术 一般指的是解决信息领域内所遇到问题的方法,特别是应用软件 技术来解决问题的方法。 面向对象的分析(Object-Oriented Analysis) 面向对象的设计(Object-Oriented Design) 面向对象的编程(Object-Oriented Programming)
系 统 分 析 与 建 模
2.3.1 处理复杂问题的原则
继承 继承是指能直接获得已有的性质和特征而不必重复定义它们。OOA可 以一次性地指定对象的公共属性和方法,然后再特化和扩展这些属性 及方法为特殊情况,继承者也可以定义自己独有的特性。 相关 相关是指把某一时刻或相同环境下发生的事物联系在一起 。
任务1
任务目标
了解面向对象软件工程的基本思想和OOA、
OOD和OOP的基本内容。
教学方法
分组教学法
资料查询法
系 统 分 析 与 建 模
2.1.1 面向对象方法基本思想
对象的含义 胡塞尔认为对象是世界中的物体在人脑中的映象,是人的意识之 所以为意识的反映,是作为一种概念而存在的先念的东西,它还包括 了人的意愿。
第2章 面向对象技术和建模基础
王卫红 wangwhs@ 2013.9
本章学习导航
本章学习导航
系 统 分 析 与 建 模
本章学习要点
面向对象方法
面向对象的基本概念与特征
面向对象分析 面向对象设计 面向对象实现 面向对象方法的内涵
软件建模概述
系 统 分 析 与 建 模
系 统 分 析 与 建 模
2.1.1 面向对象方法基本思想
面向对象方法 是一种把面向对象的思想应用于软件开发过程中,指导开发活动 的系统方法,简称OO(Object-Oriented)方法。 面向对象方法是建立在“对象”概念基础上的方法学。 对象是由数据和允许在数据上执行的操作组成的封装体,与客观实 体有直接对应关系,一个类定义了具有相似性质的一组对象。 而继承性是对具有层次关系的类的属性和操作进行共享的一种方式。 所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构
行为范畴 行为范畴是针对被分析对象而言的,它们主要包括: 基于直接原因的行为 时变性行为 功能查询性行为
系 统 分 析 与 建 模
2.3.2 OOA方法的基本步骤
5个基本步骤 (1)确定对象和类 这里所说的对象是对数据及其处理方式的抽象,它反映了系统保 存和处理现实世界中某些事物的信息的能力。类是多个对象的共同属 性和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。 (2)确定结构 结构是指问题域的复杂性和连接关系。类成员结构反映了泛化特化关系,整体-部分结构反映整体和局部之间的关系。 (3)确定主题 主题是指事物的总体概貌和总体分析模型。 (4)确定属性 属性就是数据元素,可用来描述对象或分类结构的实例,可在图 中给出,并在对象的存储中指定。 (5)确定方法 方法是在收说,那些用来增加、修改、删除和选择一个方法本身都是隐含 的,而有些则是显示的。
到面向对象的库结构模型中 。 (3)优化设计
从另一个角度对分析结果和处理业务过程的整理归纳,优化包括
对象和结构的优化、抽象、集成。
系 统 分 析 与 建 模
2.5 面向对象实现
面向对象编程的基本步骤 (1) 分析确定在问题空间和解空间出现的全部对象及其属性。 (2) 确定应施加于每个对象的操作,即对象固有的处理能力。 (3) 分析对象间的联系,确定对象彼此间传递的消息。 (4) 设计对象的消息模式,消息模式和处理能力共同构成对象的 外部特性。 (5) 分析各个对象的外部特性,将具有相同外部特性的对象归为 一类,从而确定所需要的类。 (6) 确定类间的继承关系,将各对象的公共性质放在较上层的类 中描述,通过继承来共享对公共性质的描述。 (7) 设计每个类关于对象外部特性的描述。 (8) 设计每个类的内部实现(数据结构和方法)。 (9) 创建所需的对象(类的实例),实现对象间应有的联系(发 消息)。
过程的算法。
面向对象程设范型是在以上范型之上发展起来的,它的关键在于 加入了类及其继承性,用类表示通用特性,子类继承父类的特性,并
可加入新的特性。
系 统 分 析 与 建 模
2.6 面向对象方法的内涵
面向对象方法学
面向对象方法学要点之一:认为客观世界是由各种“对象”所组 成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状 态,每一个对象都属于某个对象“类”,都是该对象类的一个元素。 面向对象方法学要点之二:是通过类比,发现对象间的相似性,
系 统 分 析 与 建 模
2.6 面向对象方法的内涵
面向对象程序设计范型
程序设计范型(以下简称程设范型)具体指的是程序设计的体裁。 过程式程设范型是流行最广泛的程序设计范型(人们平常所使用 的程序设计语言大多属于此类型),这一程设范型的中心点是设计过 程,所以程序设计时首先要决定的是问题解所需要的过程,然后设计
系 统 分 析 与 建 模
2.2.2 面向对象主要特征
多态性 对象根据所接收的消息会产生行动,同一消息为不同的对象接受时可 产生完全不同的行动,这种现象称为多态性。 面向对象方法的优越性 (1) 强调从现实世界中客观存在的事物(对象)出发来认识问题域 和构造系统。 (2) 运用人类日常的思维方法和原则进行系统开发。 (3) 对象的概念贯穿于开发过程的始终。 (4) 对象概念的一致性。 (5) 对象的相对稳定性和对易变因素隔离,增强了系统的应变能力。 (6) 对象类之间的继承关系和对象的相对独立性,对软件复用提供 了强有力的支持。
系 统 分 析 与 建 模
2.3.1 处理复杂问题的原则
抽象 抽象是指为了某一分析目的而集中精力研究对象的某一性质,它 可以忽略其它与此目的无关的部分。抽象机制被用在数据分析方面, 称之为数据抽象。数据抽象是OOA的核心。抽象机制有时也被用在对 过程的分解方面,被称之为过程抽象。
封装
封装即信息隐蔽。是指在确定系统的某一部分内容时,应考虑到 其它部分的信息及联系都在这一部分的内部进行,外部各部分之间的 信息联系应尽可能的少。
操作提示
(1)以学习小组为单位分组讨论进行讨论,每小组推荐一名成员 进行汇报。 (2)通过上网查阅面向对象方法相关资料进行更为详细的了解。 (3)结合自己的编程实践,进一步理解面向对象的基本思想。
系 统 分 析 与 建 模
任务2
任务目标 了解软件模型在开发一个软件系统时的重要作用, 理解软件建模的优点。
造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。
系 统 分 析 与 建 模
2.1.2 面向对象方法的发展
面向对象方法的发展 (1)50年代后期,ALGOL语言中首次提供封装(保护)的尝试。 (2)60年代中后期,Simula语言提出了对象的概念,并使用了类, 也支持类继承。 (3)70年代,Smalltalk语言诞生,它取Simula的类为核心概念。 (4)1980年,Xerox公司推出商品化的Smalltalk 80,它在系统设计 中强调对象概念的统一,引入对象、对象类、方法、实例等概念和术 语,采用动态联编和单继承机制。 (5)80年代以来,人们将面向对象的基本概念和运行机制运用到其 它领域,获得了一系列相应领域的面向对象的技术。 (6)1986年在美国举行了首届“面向对象编程、系统、语言和应用 (OOPSLA'86)”国际会议,使面向对象受到世人瞩目
系 统 分 析 与 建 模
2.7.1 软件建模的概念
建模的必要性
模型是软件开发之根本,无论软件之大小、涉及的范围,还是建 模的本身都是系统化认识所开发软件的一个初步的途径。 现在软件开发的过程必须经历的几个过程是需求分析、系统设计、 初步实现、系统实现、系统运行、系统维护。在这几个阶段,迭代式
的开发模式让我们每个阶段都经历一次系统建模的洗礼。
80年代后期形成的并发工程,其概念要点是在产品开发初期(即
方案设计阶段)就把结构、工艺、加工、装配、测试、使用、市场等 问题同期并行地启动运行,其实现必须有两个基本条件:一是专家群
体,二是共享并管理产品信息(将CAD、CAE、CIN紧密结合在一
起)。显然,这需要面向对象技术的支持。
系 统 分 析 与 建 模
即对象间的共同属性,这就是构成对象类的依据。