第7章 面向对象软件设计与实现
面向对象的软件设计与开发

面向对象的软件设计与开发第一章:介绍面向对象的软件设计与开发是一种基于对象的编程方法,它将软件系统看作是一组相互协作的对象的集合。
本章将介绍面向对象的软件设计与开发的基本概念和原则。
1.1 面向对象的基本概念面向对象的软件设计与开发是一种将问题领域的概念和实体映射到计算机中的方法。
它将问题领域中的对象抽象为类,通过封装数据和方法实现对象的行为。
面向对象的设计与开发是以类为中心的,通过定义类之间的关系和交互实现软件系统的功能。
1.2 面向对象的基本原则面向对象的设计与开发有一些基本原则,包括封装、继承和多态性。
封装是指将数据和方法封装在一个类中,使其成为一个独立的实体。
继承是指通过继承和派生实现对象之间的共享和复用。
多态性是指允许不同类型的对象对同一个消息作出不同的响应。
第二章:面向对象的软件设计过程面向对象的软件设计与开发需要经历一系列的过程,本章将介绍面向对象的软件设计过程的主要步骤和方法。
2.1 需求分析和设计面向对象的软件设计与开发的第一步是需求分析和设计。
在这个阶段,开发人员需要理解用户的需求,并根据需求设计软件系统的结构和功能。
这包括定义类和类之间的关系,以及确定类的属性和方法。
2.2 架构设计架构设计是面向对象的软件设计与开发中的关键步骤之一。
在这个阶段,开发人员需要设计系统的整体结构和组织方式。
这包括定义系统的分层结构、模块划分和接口设计。
2.3 细化设计细化设计是面向对象的软件设计与开发的下一步。
在这个阶段,开发人员需要进一步细化系统的设计,包括定义每个类的属性和方法的详细实现。
这也包括对类之间的关系和交互进行详细设计。
第三章:面向对象的软件开发方法面向对象的软件设计与开发有一些常用的方法和技术,本章将介绍一些常用的面向对象的软件开发方法。
3.1 UML(统一建模语言)UML是一种广泛使用的面向对象的建模语言,它提供了一组图形符号和语法规则,用于描述软件系统的结构和行为。
UML可以用于需求分析、设计和实现过程中的各个阶段。
面向对象的软件设计与开发

面向对象的软件设计与开发引言在当今的信息时代中,软件已经成为了现代生产生活中不可或缺的一部分,我们的大部分工作、娱乐、日常生活都与软件有关。
面向对象的软件设计与开发是现代软件开发的一种基本方法,它能使软件的开发更加高效、稳定、可靠。
本文将从面向对象的软件设计与开发的基本概念、特点入手,介绍面向对象的软件设计与开发的方法和流程,并结合实例进行详细阐述。
一、面向对象的软件设计与开发概述1.1 什么是面向对象的软件设计与开发?面向对象的软件设计与开发是指基于面向对象的思想,采用一系列特定的方法和流程,通过对软件的需求分析、设计、编码、测试、维护等环节的整合,最终实现高质量、稳定、易维护、易扩展的软件系统。
面向对象的软件设计与开发是一种基于对象的编程语言及其开发工具,它不仅仅是一种编程方法,还是一种解决问题的思维方式。
面向对象的编程语言可以是Java、C++、C#等,他们都有着面向对象的特性。
1.2 面向对象的软件设计与开发的特点1、易维护性:面向对象的软件设计与开发把系统分解成一个个独立的对象,每个对象都有自己的属性和行为,使得系统易于维护。
2、可重用性:面向对象的软件设计与开发中,每个对象都可以在不同的程序模块中重用,这样不仅节省了开发时间,还可以提高程序的可靠性。
3、可扩展性:对象可以被继承和扩展,也可以被增加、删除和修改,面向对象的软件设计与开发使得软件系统的扩展变得更加简单。
4、可靠性:面向对象的软件设计与开发中每个对象都独立于其他对象,使得软件系统更加灵活和健壮,可靠性更高。
二、面向对象的软件设计与开发方法面向对象的软件设计与开发由许多方法和流程组成,以下是其中几个方法:2.1 面向对象的分析方法面向对象的分析方法是指将一个问题域描述成对象、属性和类的一个体系结构,并以这种体系结构为基础来确定系统的功能需求和约束,使用场景建模、用例建模、类图建模等来分析、抽象、描述问题。
通过分析建模,面向对象的分析方法可以帮助开发人员更好地理解问题域并准确地描述对象的行为和交互。
第7章 面向对象软件设计与实现

7.3 建立动态模型
7.3.2 设想用户界面
大多数交互行为都可以分为应用逻辑和用户界面两部分,
应用逻辑是内在的、本质的内容,用户界面是外在的表现 形式
用户界面的美观程度、方便程度、易学程度一印象”往往从界面得来,用户界面的
好坏往往对用户是否喜欢、是否接受一个系统起很重要的 作用
状态应该着重审查,如果这个状态既不是交互序列的起点
也不是终点,则发现了一个错误。应该审查每个事件,跟 踪它对系统中各个对象所产生的效果,以保证它们与每个 脚本都匹配。
7.4 建立功能模型
功能模型表明了系统中数据之间的依赖关系,以及有关
的数据处理功能,它由一组数据流图组成。其中的处理 功能可以用IPO图(或表)和伪码等多种方式进一步描 述。
7.3 建立动态模型
7.3.4 画状态图 根据一张事件跟踪图画出状态图之后,再把其他脚本的事件跟踪图
合并到已画出的状态图中。为此需在事件跟踪图中找出以前考虑过 的脚本的分支点(例如“验证账户”就是一个分支点,因为验证的 结果可能是“账户有效”,也可能是“无效账户”),然后把其他 脚本中的事件序列并入已有的状态图中,作为一条可选的路径。 考虑完正常事件之后再考虑边界情况和特殊情况,其中包括在不适 当时候发生的事件(如系统正在处理某个事务时,用户要求取消该 事务)。有时用户(或外部设备)不能做出快速响应,然而某些资 源又必须及时收回,于是在一定间隔后就产生了“超时”事件。对 用户出错情况往往需要花费很多精力处理,并且会使原来清晰、紧 凑的程序结构变得复杂、烦琐,但是,出错处理是不能省略的。 当状态图覆盖了所有脚本,包含了影响某类对象状态的全部事件时, 该类的状态图就构造出来了。利用这张状态图可能会发现一些遗漏 的情况。测试完整性和出错处理能力的最好方法,是设想各种可能 出现的情况,多问几个“如果……,则……”的问题。
第7章面向对象软件开发过程-UP介绍

§7a.2 UP的阶段(细化阶段,elaboration)
细化阶段的产出:
–用例模型(完成至少80%)……所有用例均 被识别,大多数用例描述被开发; –补充捕获非功能性要求和未关联于特定用例 要求的需求(补充规范) –软件体系结构描述 –可执行的软件原型 –经修订过的技术风险清单和商业案例 –总体项目的开发计划,包括粗粒度的项目计 划,显示迭代过程和对应的审核标准; –用户手册的初始版本(可选)
–进行β测试以期达到最终用户的需要; –β测试版本和旧系统的并轨; –转换功能数据库; –对最终用户和产品支持人员的培训; –提交给市场和产品销售部门; –和具体部署相关的工程活动; –协调bug修订、改进性能和可用性(usability)等工 作; –基于完整的构想和产品验收标准对最终部署做出评估; –达到用户要求的满意度; –达成各风险承担人对产品部署基线已经完成的共识; –达成各风险承担人对产品部署符合构想中标准的共识
23
§7a.4 核心工作流 –工作流是产生具有可观察结果的活动序列
24
§7a.4 核心工作流
25
§7a.4 核心工作流(商业建模)
商业建模
–大多数商业工程化的主要问题是软件工程人 员和商业工程人员之间不能正确地交流,这 导致了商业工程的产出没有作为软件开发输 入而正确地被使用,反之亦然。 –在商业建模中使用商业用例来文档化商业过 程,从而确保了组织中所有商业过程人员达 到共识。 –商业用例被分析以理解商业过程如何被业务 支持,而这些在商业对象模型中被核实。 –许多项目可能不进行商业建模。
26
§7a.4 核心工作流(需求)
需求
–是描述系统应“做什么”,并允许开发人员 和用户就该描述达成共识。
创建构想 建立用例模型
软件工程面向对象的分析与设计

-
THANKS!
XX生活即将结束,在此,我要感谢所有教导我的老师和陪 伴我一齐成长的同学,他们在我的大学生涯给予了很大的帮助。本论 文能够顺利完成,要特别感谢我的导师XXX老师,XXX老师对该论文从选题,构
思到最后定稿的各个环节给予细心指引与教导,使我得以最终完成毕业论文设计! 最后,我要向百忙之中抽时间对本文进行审阅,评议和参与本人论文答辩的各位
识别类和继承
通过类和继承,我们可以组织具有相似属性和行为的对象。类 定义了一组对象的通用属性和行为,而继承则允许我们从一个 类派生出另一个类,从而共享和扩展其属性和行为
定义接口
接口定义了类或对象之间的交互方式。它描述了对象需要提供 的方法和需要遵守的协议
面向对象的分析
通过面向对象的分析, 我们可以更准确地理 解和描述软件系统的 需求,为后续的设计 和实现打下坚实的基 础
2
面向对象的 设计
面向对象的设计
面向对象的设计(Object-Oriented Design,OOD)是软件工程过程中的一个关键阶段 ,其目标是基于面向对象的分析结果,设计出满足系统需求的软件结构
识别类和对象:根据面向对象的分析结果,识别出系统中的主要类和对象。这些类和 对象应该能够准确地反映问题域的特征和需求
和操作方式
设计数据库:根据系统的数 据需求,设计出合适的数据 库结构。数据库应该能够有 效地存储和管理系统的数据
设计系统架构:根据系统的 功能需求和性能要求,设计 出合适的系统架构。系统架 构应该能够支持系统的可扩 展性、可维护性和可重用性
面向对象的设计
通过面向对象的设计,我们可 以设计出结构清晰、易于理解 和实现的软件系统,从而提高
面向对象的分析
面向对象软件开发模式的设计与实现

面向对象软件开发模式的设计与实现面向对象编程是一种软件开发模式,它将现实世界中的事物抽象成对象,通过对象之间的相互作用来实现系统的功能。
本文将介绍面向对象软件开发模式的设计与实现,包括类的设计,继承、多态的实现以及设计模式的应用等方面。
一、面向对象编程的类设计在面向对象编程中,类是最基本的设计单元,用于描述一类对象的属性和行为。
在设计类时,需要考虑以下几个方面:1. 属性定义类的属性是描述对象的特征,用于存储对象的状态信息。
属性可以是基本类型,也可以是其他类的对象。
在定义属性时,需要考虑属性的访问权限、数据类型、初始化值等。
例如,定义一个人类的类:public class Person {private String name;private int age;public Person(String name, int age) { = name;this.age = age;}public String getName() {return name;}public int getAge() {return age;}}在这个类中,使用 private 修饰符定义了两个属性 name 和 age,它们只能在类的内部访问。
通过公开的 getter 方法提供了对属性的访问,避免了属性被直接访问的风险。
2. 方法定义类的方法是描述对象的行为,用于实现对象的功能。
方法可以是静态的或实例方法,在定义方法时需要考虑方法的访问权限、返回值类型、参数列表等。
例如,为 Person 类增加一个 sayHello() 方法:public void sayHello() {System.out.println("Hello, my name is " + name + ", I'm " + age + " years old.");}在这个方法中,使用 public 访问修饰符定义了一个公开的方法,没有返回值和参数。
第1-7章C++面向对象程序设计 作业参考答案

cout<<"long"<<max(a2,b2)<<endl;
cout<<"double"<<max(a3,b3)<<endl;//使用相同的函数名求不同类型数据的绝对值
return 0;
}
int max(int a,int b)
{int c;
一个类的内部数据结构和其所有成员函数的定义部分称为类的实现。
2.3公用public成员和私有private成员有何区别?
【解答】
私有private成员只能被该类中的其他成员访问,而程序中的其它代码是不能直接访问这些变量的。
公用public成员既可以被该类的其他成员访问,也可以被程序中的其它代码访问。类中的公用成员对外部代码是开放的,通常情况下,程序中的其它代码通过类的公用成员函数来访问类的私有成员。
方法:面向对象程序设计中的术语“方法”对应于对象的行为(能力),即它是实现对象所具有的功能操作的代码段。在C++程序中,方法即是类中定义的成员函数,它是该类对象所能执行的操作的算法实现。
消息:在面向对象的程序中,一个对象向另一个对象发出的请求称为消息。消息是要求某个对象执行其中某个功能操作的规格说明。程序中的所有对象通过消息传递实现相互协作,完成一些特定的任务。
{ Rectangle Rect(10,15);
cout<<"Area is:"<<Rect.area()<<endl;
}
第
3.1解释下列名词:
面向对象的软件设计实践

面向对象的软件设计实践随着现代信息技术的高速发展,软件开发已经成为了人们生活和工作中不可或缺的一部分。
而面向对象的软件设计方法已经成为了一种被广泛采用的设计方法,它可以有效地提高软件的可维护性、可扩展性和可重用性。
面向对象的软件设计方法以对象为中心,将实体的抽象化作为核心思想,利用类、继承、多态等概念,来描述系统中的各种实体对象及其相互关系。
采用这些概念,可以将系统中的复杂对象进行有效地分解,并将它们之间的关系以及行为特性进行描述,然后将这些描述用软件工具来实现。
面向对象的软件设计方法是一个非常重要的概念,也是软件开发工程学科中的基础概念。
下面,本文将从各个方面来介绍面向对象的软件设计实践。
一、面向对象的设计原则在进行面向对象的软件设计时,我们需要尊重一些基本原则。
这些原则可以提高我们软件设计的质量和效率。
以下是一些重要的面向对象的设计原则:1、单一职责原则(SRP)这一原则也叫“单一功能原则”。
它指出一个类应该只有一个单一的职责。
也就是说,一个类只应该有一个引起它变化的原因。
SRP原则可以帮助我们提高代码的可重用性和可维护性。
2、开闭原则(OCP)这一原则指出“开放-封闭”原则。
软件的设计应该是开放扩展的但是封闭修改的。
换句话说,对于那些高度可变的需求,我们应该保持系统的灵活性以使之适应这些变化,但是我们不应该去打破那些已经运作良好的模块。
3、接口隔离原则(ISP)这一原则指出,应该为每一个客户端定制一个接口,而不是为一个类定制一个庞大而臃肿的接口。
这个原则可以帮助我们提高系统的可扩展性和可维护性。
4、依赖倒置原则(DIP)这一原则指出,应该依赖于抽象而不是具体的实现。
通过DIP原则,我们可以减小不同模块之间的关联度,从而提高系统的模块化程度。
二、面向对象的设计模式面向对象的设计方法是建立在设计模式之上的,设计模式可以视为软件设计界的调配图谱。
在面向对象软件设计中,有很多模式可以提高我们的设计效率和质量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.6 面向对象设计
7.6.4 对象设计
对象描述
对象是类或子类的一个实例,对象设计描述可选择以下两种形
通常在建立了对象模型和动态模型之后再建立功能模型。
7.4 建立功能模型
有关数据流图的概念和画法。
画出基本系统模型图 画出功能级数据流图 描述处理框功能
7.5 定义服务
“对象”是由描述其属性的数据,以及可以对这些数据
施加的操作(即服务),封装在一起构成的独立单元。 因此,为建立完整的对象模型,既要确定类中应该定义 的属性,又要确定类中应该定义的服务。
7.3 建立动态模型
7.3.2 设想用户界面
大多数交互行为都可以分为应用逻辑和用户界面两部分,
应用逻辑是内在的、本质的内容,用户界面是外在的表现 形式
用户界面的美观程度、方便程度、易学程度以及效率等,
是用户使用系统时最先感受到的
用户对系统的“第一印象”往往从界面得来,用户界面的
好坏往往对用户是否喜欢、是否接受一个系统起很重要的 作用
状态图中发往对象的事件也就是该对象接收到的消息,因此该对
象必须有由消息选择符指定的操作,这个操作修改对象状态(即 属性值)并启动相应的服务。例如,在ATM系统中,发往ATM 对象的事件“中止”,启动该对象的服务“打印账单”;发往分 行的事件“请分行验卡”,启动该对象的服务“验证卡号”;而 事件“处理分行事务”,启动分行对象的服务“更新账户”。可 以看出,所启动的这些服务通常就是接受事件的对象在相应状态 的行为。
4.利用继承减少冗余操作
应该尽量利用继承机制以减少所需定义的服务数目。只要不违背
领域知识和常识,就尽量抽取出相似类的公共属性和操作,以建 立这些类的新父类,并在类等级的不同层次中正确地定义各个服 务。
7.6 面向对象设计
分析是提取和整理用户需求,并建立问题域精确模型的
过程。设计则是把分析阶段得到的需求转变成符合成本 和质量要求的、抽象的系统实现方案的过程。从面向对 象分析到面向对象设计(通常缩写为OOD),是一个逐 渐扩充模型的过程。或者说,面向对象设计就是用面向 对象观点建立求解域模型的过程。
7.3 建立动态模型
7.3.5 审查动态模型
各个类的状态图通过共享事件合并起来,构成了系统的动
态模型。在完成了每个具有重要交互行为的类的状态图之 后,应该检查系统级的完整性和一致性。一般来说,每个 事件都应该既有发送对象又有接受对象。当然,有时发送 者和接受者是同一个对象。对于没有前驱或没有后继的
分析
通常,在需求陈述中用名词词组表示属性 往往用形容词表示可枚举的具体属性 分析员还必须借助于领域知识和常识才能分析得出需要的属性 应该仅考虑与具体应用直接相关的属性 应该首先找出最重要的属性 分析阶段不要考虑那些纯粹用于实现的属性
7.2 建立对象模型
选择 通常有以下几种常见情况
已删去的类之间的关联 与问题无关的或应在实现阶段考虑的关联 瞬时事件 三元关联 派生关联应该去掉那些可以用其他关联定义的冗余关联
7.2 建立对象模型
进一步完善 通常从下述方面进行改进
正名 分解 补充发现了遗漏的关联就应该及时补上 标明重数
7.2 建立对象模型
7.2 建立对象模型
2. 筛选出正确的类与对象 筛选时主要依据下列标准,删除不正确或不必要的类与对
象 冗余 无关 笼统 属性 操作 实现
7.2 建立对象模型
7.2.2 确定关联 两个或多个对象之间的相互依赖、相互作用的关系就是
关联,分析确定关联,能促使分析员考虑问题域的边缘 情况,有助于发现那些尚未被发现的类与对象
7.2 建立对象模型
7.2.1 确定类与对象
1. 找出候选的类与对象 对象是对问题域中有意义的事物的抽象,它们既可能是物
理实体,也可能是抽象概念 大多数客观事物可分为下述5类 可感知的物理实体 人或组织的角色 应该记忆的事件 两个或多个对象的相互作用,通常具有交易或接触的性质 需要说明的概念
7.2.复杂程度,
人们习惯于把系统再进一步划分成几个不同的主题
应该按问题领域而不是用功能分解方法来确定主题 应该按照使不同主题内的对象相互间依赖和交互最少的
原则来确定主题
7.2 建立对象模型
7.2.4 确定属性 确定属性的过程包括分析和选择两个步骤
确定关联有以下步骤
初步确定关联
需求陈述中使用的描述性动词或动词词组,通常表示关联关系 通过分析需求陈述,还能发现一些在陈述中隐含的关联 分析员还应该与用户及领域专家讨论问题域实体间的相互依赖、
相互作用关系,根据领域知识再进一步补充一些关联
7.2 建立对象模型
筛选 筛选时主要根据下述标准删除候选的关联
7.6 面向对象设计
7.6.1 面向对象设计的准则
1.模块化 2.抽象 3.信息隐藏 4.弱耦合 5.强内聚 6.可重用
7.6 面向对象设计
7.6.2 面向对象设计的启发原则
1.设计结果应该清晰易懂 2.一般/特殊结构的深度应适当 3.设计简单的类 4.使用简单的协议 5.使用简单的服务 6.把设计变动减至最小
7.3 建立动态模型
7.3.4 画状态图 根据一张事件跟踪图画出状态图之后,再把其他脚本的事件跟踪图
合并到已画出的状态图中。为此需在事件跟踪图中找出以前考虑过 的脚本的分支点(例如“验证账户”就是一个分支点,因为验证的 结果可能是“账户有效”,也可能是“无效账户”),然后把其他 脚本中的事件序列并入已有的状态图中,作为一条可选的路径。 考虑完正常事件之后再考虑边界情况和特殊情况,其中包括在不适 当时候发生的事件(如系统正在处理某个事务时,用户要求取消该 事务)。有时用户(或外部设备)不能做出快速响应,然而某些资 源又必须及时收回,于是在一定间隔后就产生了“超时”事件。对 用户出错情况往往需要花费很多精力处理,并且会使原来清晰、紧 凑的程序结构变得复杂、烦琐,但是,出错处理是不能省略的。 当状态图覆盖了所有脚本,包含了影响某类对象状态的全部事件时, 该类的状态图就构造出来了。利用这张状态图可能会发现一些遗漏 的情况。测试完整性和出错处理能力的最好方法,是设想各种可能 出现的情况,多问几个“如果……,则……”的问题。
通常,用一张状态图描绘一类对象的行为,它确定了由事件
序列引出的状态序列。但是,也不是任何一个类都需要有一 张状态图描绘它的行为。很多对象仅响应与过去历史无关的 那些输入事件,或者把历史作为不影响控制流的参数。对于 这类对象来说,状态图是不必要的。系统分析员应该集中精 力仅考虑具有重要交互行为的那些类。
程实质上模拟了人类归纳思维过程
自顶向下:把现有类细化成更具体的子类,这模拟了人类
的演绎思维过程
7.2 建立对象模型
7.2.6 反复修改 仅仅经过一次建模过程很难得到完全正确的对象模型,
软件开发过程就是一个多次反复修改、逐步完善的过程
在建模的任何一个步骤中,如果发现了模型的缺陷,都
必须返回到前期阶段进行修改
等,传递信息的对象的动作也是事件 应该把对控制流产生相同效果的那些事件组合在一起作为一类事 件,并给它们取一个唯一的名字 应该区分出每类事件的发送对象和接受对象
7.3 建立动态模型
画出事件跟踪图
一条竖线代表一个对象,每个事件用一条水平的箭头线表
示,箭头方向从事件的发送对象指向接受对象 时间从上向下递增
在分析阶段用户界面的细节并不太重要,重要的是在这种
界面下的信息交换方式
7.3 建立动态模型
7.3.3 画事件跟踪图
用自然语言书写的脚本往往不够简明,而且有时在阅读时会
有二义性。为了有助于建立动态模型,通常在画状态图之前 先画出事件跟踪图
确定事件
仔细分析每个脚本,以便从中提取出所有外部事件 事件包括系统与用户交互的所有信号、输入、输出、中断、动作
误把对象当作属性 误把关联类的属性当作一般对象的属性 把限定误当成属性 误把内部状态当成了属性
过于细化在分析阶段应该忽略那些对大多数操作都没有影响的 属性 存在不一致的属性
7.2 建立对象模型
7.2.5 识别继承关系 一般说来,可以使用两种方式建立继承(即泛化)关系
自底向上:抽象出现有类的共同性质泛化出父类,这个过
第7章 面向对象软件设 计与实现
7.1 面向对象分析
7.1.1 面向对象分析过程 面向对象分析大体上按照下列顺序进行
寻找类与对象,识别结构,识别主题,定义属性,建立动
态模型,建立功能模型,定义服务
7.1.2 面向对象分析原则
定义有实际意义的对象 模型的描述要规范、准确 共享性 封装性
箭头线之间的间距并没有具体含义,图中仅用箭头线在垂
直方向上的相对位置表示事件发生的先后,并不表示两个 事件之间的精确时间差
7.3 建立动态模型
7.3.4 画状态图 状态图描绘事件与对象状态的关系。当对象接受了一个事件
以后,它的下一个状态取决于当前状态及所接受的事件。由 事件引起的状态改变称为“转换”。如果一个事件并不引起 当前状态发生转换,则可忽略这个事件。
事实上,在确定类中应有的服务时,既要考虑该类实体
的常规行为,又要考虑在本系统中特殊需要的服务。
7.5 定义服务
1.常规行为
在分析阶段可以认为,类中定义的每个属性都是可以访问的,也
就是说,假设在每个类中都定义了读、写该类每个属性的操作。 但是,通常无须在对象图中显式表示这些常规操作。
2.从事件导出的操作
7.5 定义服务
3.与数据流图中处理框对应的操作