【文档说明】软件工程导论课件之第9章面向对象方法学引论(第五版).ppt,共(118)页,2.425 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-44892.html
以下为本文档部分文字说明:
第9章面向对象方法学引论9.1面向对象方法学概述9.2面向对象的概念9.3面向对象建模9.4对象模型9.5动态模型9.6功能模型9.73种模型之间的关系传统的软件工程方法学应用于大型软件产品的开发时,很少取得成功。自20世纪80
年代中期起,人们开始注重面向对象分析和设计的研究,逐步形成了面向对象方法学。20世纪90年代,面向对象方法学已经成为人们在开发软件时首选的范型。面向对象技术已成为当前最好的软件开发技术。9.1面向对象方法学概述面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发
软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。对象是客观世界中的实体对象不固定行为丰富多彩既有静态属性又有动态行为对象是计算机中的实体
取决于程序设计语言行为简单呆板仅描述静态实体属性,必须从外部施加操作才能模拟行为传统方法学的解空间:公司雇员部门问题空间变量数组文件解空间算法面向对象方法的解空间:面向对象方法学所提供的“对象”概念,是让软件开发者自己定义或选取解空间对象,然后把软件系统作为一系列离散的解空间对象的集合。
这些解空间对象与问题空间对象尽可能一致。这些解空间对象彼此间通过发送消息而相互作用,从而得出问题的解。每个对象就像一个微型程序,有自己的数据、操作、功能和目的。面向对象方法具有4个要点:对象:客观世界是由各
种对象组成,任何事物都是对象,复杂的对象可以由简单的对象以某种方式组合而成。对象分解取代功能分解。类:把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。数据用于表示对象的静态属性,是对象的状态信息。继承:按照子类
(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。消息:对象之间仅能通过传递消息互相联系。对象是进行处理的主体。面向对象方法学的方程:OO=objects+
classes+inheritance+communicationwithmessages基于对象(object-based)=objects+communicationwithmessages基于类(class-based)=o
bjects+classes+communicationwithmessages只有同时使用对象、类、继承和消息的方法,才是真正面向对象的方法。面向对象方法的发展史:(1)雏形阶段1972年PaloAlno研究中心(PARC)发布了Smalltalk-72,正式使用“面向对象”这个术语。
Smalltalk的问世标志着面向对象程序设计方法的正式形成。(2)完善阶段PARC先后发布了Smalltalk-72,76,78等版本,直至1981年推出该语言最完善的版本Smalltalk-80。Smallta
lk-80是第一个完善的、能够实际应用的面向对象语言。(3)繁荣阶段自20世纪80年代中期到90年代,是面向对象语言走向繁荣的阶段。其主要表现是大批比较实用的OOPL的涌现,例如C++、Objective-C等。(4)当前的状况20世纪90年代,面向对象的分
析与设计方法多达数十种,这些方法各有所长,现在趋于统一。统一建模语言UML,其推荐的方法是USDP(UnifiedSoftwareDevelopmentProcess);UML是一种面向对象的建模语言,在软件产业界获得了很大的支持。1.与人类习惯的思维方法一致面向对象的软件技术以对象为核心,软
件系统由对象组成。对象由数据,以及可以对这些数据施加的操作,封装在一起所构成的统一体。对象之间通过传递消息互相联系。面向对象的设计方法强调模拟现实世界中的概念而不强调算法。面向对象方法学的基本原则是按照人类习惯的思维方法建立问题域的模型。9.1.2面向对象方法学的优点2.稳定性好面向对象
的软件系统的结构是根据问题领域的模型建立起来的,而不是基于对系统应完成的功能的分解。当对系统的功能需求变化时并不会引起软件结构的整体变化,往往仅需要作一些局部性的修改。以对象为中心构造的软件系统是比较稳定的。3.可重用性好在面向对象方法所使用的对象中,数据和操作正是作为平
等伙伴出现的。因此,对象具有很强的自含性。对象固有的封装性和信息隐藏机制,使得对象的内部实现与外界隔离,具有较强的独立性。对象是比较理想的模块和可重用的软件成分。4.较易开发大型软件产品用面向对象方法学开发软件时,构成软件系统的每个对象就像一个微型程序,有自己的
数据、操作、功能和用途。可以把一个大型软件产品分解成一系列本质上相互独立的小产品来处理,这就不仅降低了开发的技术难度,而且也使得对开发工作的管理变得容易多了。5.可维护性好面向对象的软件稳定性比较好。面向对象的软件比较容易修改。面向对象的软件比较容易理解。易于测试和调试。
一般说来,使用面向对象方法学开发软件时,工作重点应该放在生命周期中的分析阶段。“喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。9.1.3喷泉模型9.2面向对象的概念9.2.1对象在应用领域中有意义的、与所
要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。面向对象方法学中的对象是由描述该对象属性的数据以及可以对这些数据施加的所有操作
封装在一起构成的统一体。1.对象的形象表示一个对象很像一台录音机。当在软件中使用一个对象的时候,只能通过对象与外界的界面来操作它。使用对象时只需知道它向外界提供的接口形式而无须知道它的内部实现算法。2.对象的定义
定义1:对象是具有相同状态的一组操作的集合。定义2:对象是对问题域中某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或与它交互的能力。定义3:对象∷=〈ID,MS,DS,MI〉。其中,ID是对象的标识或名字,MS是对象中的操作集合,DS是对象的数据结
构,MI是对象受理的消息名集合(即对外接口)。3.对象的特点以数据为中心。操作围绕对其数据所需要做的处理来设置。对象是主动的。必须通过公有接口向对象发消息,请求它执行某个操作,处理私有数据。实现了数据封装。私有数据对外是隐藏的、不可见的,只能通
过公有操作进行。本质上具有并行性。不同对象各自独立处理自身数据,彼此通过发消息传递信息完成通信。模块独立性好。对象内部各种元素彼此结合得很紧密,内聚性相当强。4.表现形式外部实体:产生或消耗一个基于计算机的系
统所用的信息。物:问题信息域的一部分。事件:发生于系统操作的有关时刻。角色:由与系统交互作用的人来扮演。组织单位:与应用相关的机构。场所:使问题和系统的整个运作有固定的位置。结构:定义一类对象或定义对象的相关类。1.类(clas
s):“类”就是对具有相同数据和相同操作的一组相似对象的定义。2.实例(instance):实例就是由某个特定的类所描述的一个具体的对象。3.消息(message):消息就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通常,
一个消息由下述3部分组成:接收消息的对象;消息选择符(也称为消息名);零个或多个变元。9.2.2其他概念4.方法(method):方法就是对象所能执行的操作,也就是类中所定义的服务。5.属性(attribute):属性就是类中所定义
的数据,它是对客观世界实体所具有的性质的抽象。6.封装(encapsulation):在面向对象的程序中,把数据和实现操作的代码集中起来放在对象内部。7.继承(inheritance):在面向对象的软件技术中,继承是子类
自动地共享基类中定义的数据和方法的机制。8.多态性(polymorphism):多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。9.重载(overloading):函数重载是指
在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一个运算符可以施加于不同类型的操作数上面。9.3面向对象建模用面向对象方法开发软件,通常需要建立3种形式的模型:对象模型——描述系统数据结构;动态模型——描述系统控制结构;功能模型——描述系统功能。3种模型都
涉及到数据、控制和操作等共同的概念,只不过每种模型描述的侧重点不同。3种模型各自从不同侧面反映了系统的实质性内容,综合起来则全面地反映了对目标系统的需求。类/对象对象-行为属性、操作、协作者对象-功能使用实例对象模
型功能模型动态模型对任何大系统来说,上述3种模型都是必不可少的。在不同的应用问题中,这3种模型的相对重要程度会有所不同,对象模型始终都是最重要、最基本、最核心的。在整个开发过程中,3种模型一直都在发展、完善。分析过程中,构造完全独立
于实现的应用域模型;设计过程中,把求解域的结构逐渐加入到模型中;实现阶段,把应用域和求解域的结构都编成程序代码并进行严格的测试验证。9.4对象模型对象模型表示静态的、结构化的系统的“数据”性质。它是对模拟客观世界实体
的对象以及对象彼此间的关系的映射,描述了系统的静态结构。面向对象方法强调围绕对象而不是围绕功能来构造系统。对象模型为建立动态模型和功能模型,提供了实质性的框架。1996年6月出现统一建模语言UML0.9。1997年
11月,国际对象管理组织OMG批准把UML1.1作为基于面向对象技术的标准建模语言。UML概述:UnifiedModelingLanguage(统一建模语言)是国际对象管理组织OMG制定的一个通用的、可视化建模语言标准。用于
描述(specify)、可视化(visualize)、构造(construct)和记载(document)软件密集型系统的各种工件。UML提供了一系列建模元素、概念、关系以及规则,应用于软件开发活动。UML历史:199
4年,Booch和Rumbaugh在Rational开始了UML的工作,当时目标是创建一个“统一方法”。他们把Booch93和OMT2统一起来,与95年发布了UM0.8(UnifiedMethod)。19
95年OOSE的创始人Jacobson加入到这个联盟中,开始把工作重点放到创建一种标准建模语言,UML——UnifiedModelingLanguage。他们以Booch方法、OMT方法、OOSE方法为基础,吸收了其他流派的长处,于96年
6月、10月、97年1月、11月分别推出了UML0.9、0.91、1.0和1.1。JamesRumbaughGradyBoochIvarJacobsonUML要素:Method方法告诉使用者做什么、怎么做、什么时候做、为什么做(特定活动的目的),方法包括模型。M
odeling模型用来描述使用某种方法的结果,例如,通过不同角度的简化视图,描述对象系统的设计与实现结果,模型用建模语言来表达。Language建模语言由记号(模型使用的符号)和一组规则(语法、语义等)组成。UML的图表
:模型类图用例图对象图构件图部署图时序图协作图状态图活动图静态视图模型是从详细观察角度的描述动态视图1.用例图(usecasediagram)捕获用户能够看到的系统在开发过程的早期创建目的详细说
明系统的表达含义捕获系统的需求验证系统的体系结构驱动实现和生成测试用例由分析人员和领域专家开发系统名称系统用例行为者关联保险商务系统客户统计销售统计签订保险单客户保险销售员2.类图(classdiagram)
捕获系统的词汇表在开发过程中被创建和精确化目的系统中的名字和模型概念详细描述协作关系详细描述逻辑数据库表由分析人员、设计人员和代码实现人员开发图形形状矩形线圆点正方形3.对象图(objectdiagram)捕获实例和连接在分析和
设计阶段创建目的举例说明数据/对象结构详细描述瞬态图由分析人员、设计人员和代码实现人员开发王平:学生姓名:王平学号:020106英语:书书名:英语价格:26.5数学:书书名:数学价格:21.84.构件图(componentdiagram)捕获实现的物理结构作
为体系结构规范的一部分实现目的组织源代码构造一个可执行的发布版本指定物理数据库由集成人员和程序人员创建5.部署图(deploymentdiagram)捕获系统硬件的拓扑结构作为系统结构规范的一部分被创建目的描述组件的分布标识系统性能瓶颈由集成人员、网络工程师和系统工程师开
发6.时序图(sequencediagram)捕获系统的动态行为(面向时间的)目的模型流程的控制举例说明典型的脚本[打印机就绪]打印文件[打印机忙]保存文件打印文件打印文件计算机打印服务器打印队列计算机7.协作图(
collaborationdiagram)捕获系统的动态行为(面向消息的)目的模型流程控制举例说明对象结构和控制的协调[打印机忙]保存文件[打印机就绪]打印文件打印文件计算机打印队列打印服务器打印机8.状态图(stat
ediagram)捕获系统动态行为(面向事件的)目的对象生命周期模型为起反作用的对象(用户接口、设备等)建模超时到达上楼上楼到达上楼到达在底楼向上移动向底楼移动向下移动空闲9.活动图(activitydi
agram)捕获动态行为(面向活动的)目的给商业工作流建模给操作建模DiskfreeDiskfull显示磁盘满显示在打印删去显示信息建立打印文件Win.printAll()^printer.print()UML工具:(1)Astah6.1
.1曾用名:JUDEJUDE是一个中日合作的软件项目。(2)UMLet10.3轻量级UML建模工具。开放源代码。UMLet能够让你快速建模,并且能够导出各种格式SVG,JPG,PDFandLa
TeX-friendlyEPS。(3)ArgoUMLV0.26.2开源的UML建模工具。支持所有UML1.4的标准图形。它可以运行在任何Java平台上,并且支持10种自然语言。(4)BOUml4.20(法国)一个免费的UML2工具箱。支持C++,Java以及I
dl。(5)VisualparadigmforUML7.2–community(香港)为软件工程师、系统分析员、商业分析员、系统建筑师而设计的一个UMLCASE工具。1.定义类3个区域分别放类的名字、属性和服务。下面两个区域可省略。9.
4.1类图的基本符号类的命名准则:使用标准术语。应该使用在应用领域中人们习惯的标准术语作为类名,不要随意创造名字。使用具有确切含义的名词。尽量使用能表示类的含义的日常用语作名字,不要使用空洞的或含义模糊的词作名字。必要时用名词短语作名字。为使名字的含义更准确,必要时用形容词加名词
或其他形式的名词短语作名字。2.定义属性可见性属性名:类型名=初值{性质串}可见性有3种:公有的(public)、私有的(private)和保护的(protected),分别用+、-和#表示。类型名表示该属性的数据类型,它可以是基本数据类
型,也可以是用户自定义的类型。在创建类的实例时应给其属性赋值,如果给某个属性定义了初值,则该初值可作为创建实例时这个属性的默认值。性质串明确地列出该属性所有可能的取值。枚举类型的属性用性质串列出可选用的枚举值。说明属性的其他性质。例如,约束说明{只读}表明该属性是只读属性。例子
:-管理员:String=―未定”类的属性中可以有一种能被该类所有对象共享的属性,称为类的作用域属性,也称为类变量。类变量在类图中表示为带下划线的属性。-货单数:Integer3.定义服务可见性操作名(参数表):返回值类型{性质串}操作可见性
的定义方法与属性相同。参数表是用逗号分隔的形式参数的序列。参数名:类型名=默认值当操作的调用者未提供实在参数时,该参数就使用默认值。与属性类似,在类中也可定义类作用域操作,在类图中表示为带下划线的操作。这种操作只能存取本类的
类作用域属性。类与类之间的关系有:关联表示两个类的对象之间存在某种语义上的联系。聚集表示类与类之间的关系是整体与部分的关系。泛化(继承)是通用元素和具体元素之间的一种分类关系。依赖和细化依赖关系描述两个模型元素之间的语义连接关
系;细化关系描述不同抽象层次上的同一个事物。9.4.2表示关系的符号1.关联关联表示两个类的对象之间存在某种语义上的联系。(1)普通关联普通关联是最常见的关联关系,只要在类与类之间存在连接关系就可以用普通关联表示。关联是双向的,可在一个方向上为关联起一个名字,在另一个方向上起另一个名
字。在名字前面(或后面)加一个表示关联方向的黑三角。在表示关联的直线两端可以写上重数,表示该类有多少个对象与对方的一个对象连接。重数的表示方法通常有:0..1表示0到1个对象0..*或*表示0到多个对象1+或1..*表示1到多个对象1..15表示1到15个对象3
表示3个对象未标明表示1个对象师傅学徒指导►1*学生姓名:string学号:string书书名:string价格:real购买►◄属于10..*(2)关联的角色在任何关联中都会涉及到参与此关联的对象所扮演的角色,在某些情况下显式标明角色名有助于别人理解类图。如果没有显式标出角色名
,则意味着用类名作为角色名。公司员工雇佣►◄工作10..*老板0..*工人0..*管理▼(3)限定关联限定关联通常用在一对多或多对多的关联关系中,可以把模型中的重数从一对多变成一对一,或从多对多简化成多对一。在类
图中把限定词放在关联关系末端的一个小方框内。限定提高了语义精确性,增强查询能力。(4)关联类为了说明关联的性质可能需要一些附加信息,可以引入一个关联类来记录这些信息。关联中的每个连接与关联类的一个对象相联系。关联类通过一条虚线与关联连接。关联类与一般类一样,也有属性、操作
和关联。2.聚集聚集是关联的特例。聚集表示类与类之间是整体与部分的关系。除了一般聚集之外,还有两种特殊的聚集关系:共享聚集和组合聚集。(1)共享聚集聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成。(2)组合聚集部分类完全隶属于整体类
,部分与整体共存,整体不存在了部分也会随之消失。大学法律顾问学院分校*1..**13.泛化(继承)它是通用元素和具体元素之间的一种分类关系。具体元素完全拥有通用元素的信息,并且还可以附加一些其他信息。泛化针对类而不针对实例,一个类可以继承另一个类,但一个
对象不能继承另一个对象。泛化关系指出在类与类之间存在“一般-特殊”关系。泛化可进一步划分成普通泛化和受限泛化。(1)普通泛化没有具体对象的类称为抽象类。抽象类通常作为父类,用于描述其他类(子类)的公共属性和行为。自底向上泛化公司人员
姓名身份证号„„股东股份职员工资公司人员姓名身份证号股份工资„„自顶向下泛化(2)受限泛化给泛化关系附加约束条件,以进一步说明该泛化关系的使用方法或扩充方法。预定义的约束有4种:多重、不相交、完全和不完全。这些约束都是语义约束。人员姓名研究生学号班级专业教
职工职称专业在职研究生在职单位{多重}多重继承:一个子类可同时多次继承同一个上层基类。不相交继承:与多重继承相反,即一个子类不能多次继承同一个基类。如果图中没有指定{多重}约束,则是不相交继承,一般的继承都是不相交继承。完全继承:父类的所有子类都已在类图中穷举
出来了,图示符号是指定{完全}约束。不完全继承:与完全继承恰好相反,父类的子类并没有都穷举出来,随着对问题理解的深入,可不断补充和维护。不完全继承是一般情况下默认的继承关系。4.依赖和细化(1)依赖关系依赖关系描述两个模型元素(类、用例等)之间的语义连接关系:其中一
个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素。课程计划增加(课程:x)删除(课程:x)更改(课程:x)课程<<使用>>(2)细化关系当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系。
假设两个模型元素A和B描述同一个事物,区别是抽象层次不同,如果B是A的更详细的描述,则称B细化了A,或称A细化成了B。细化用来协调不同阶段模型之间的关系,表示各个开发阶段不同抽象层次的模型之间的相关性,常常用于跟踪模型的演变。聚集继承依赖例题:建立以下
系统的对象模型。在显示器屏幕上坐标为(100,100)的位置画一个半径为40的圆,在坐标为(400,150)的位置画一条弧,弧的起始角度为30度,结束角度为120度,半径为50。圆圆心坐标半径可见性读/写圆心坐标读/写半径读/写可见性显示圆隐藏圆弧圆心坐标半径起始
角度结束角度可见性读/写圆心坐标读/写半径读/写起始角度读/写结束角度读/写可见性显示弧隐藏弧圆圆心坐标半径可见性读/写圆心坐标读/写半径读/写可见性显示圆隐藏圆弧起始角度结束角度读/写起始角度读/写结束角度显示弧隐藏弧圆半径读/写半径显示圆隐藏圆弧起始角度结束角度读/写起始角度读/写结束
角度显示弧隐藏弧点坐标可见性读/写坐标读/写可见性显示点隐藏点圆半径读/写半径显示圆隐藏圆弧起始角度结束角度读/写起始角度读/写结束角度显示弧隐藏弧点可见性读/写可见性显示点隐藏点位置坐标读/写坐标9.5动态模型动态模型表示瞬时、行为化的系统的“控制”性质,它规定对
象模型中对象的合法变化序列。通常,用UML提供的状态图来描绘对象的状态、触发状态转换的事件以及对象的行为。每个类的动态行为用一张状态图来描绘,各个类的状态图通过共享事件合并起来,从而构成系统的动态模型。动态模型是基于事件共享而互相关联的一组状态图的集合。超时到达下楼上楼到达
上楼到达在底楼向上移动向底楼移动向下移动空闲电梯的运行复印do/复印发生卡纸故障发现缺纸闲置复印命令完成复印命令卡纸do/警告缺纸do/警告装满纸排除卡纸故障复印机的工作过程9.6功能模型功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么
”,因此更直接地反映了用户对目标系统的需求。通常,功能模型由一组数据流图组成。在面向对象方法学中,数据流图远不如在结构分析、设计方法中那样重要。UML提供的用例图也是进行需求分析和建立功能模型的强有力工具。
在UML中把用用例图建立起来的系统模型称为用例模型。用例图包含的模型元素有系统、行为者、用例及用例之间的关系。符号表示:9.6.1用例图系统名称系统用例行为者关联1.系统系统被看作是一个提供用例的黑盒子,内部如何工作、用例如何
实现,这些对于建立用例模型来说都是不重要的。系统方框的边线表示系统的边界,用于划定系统的功能范围,定义了系统所具有的功能。自动售货机系统2.用例一个用例是可以被行为者感受到的、系统的一个完整的功能。在UML中把用例定义成系统完成的一系列动作,动作的
结果能被特定的行为者察觉到。这些动作除了完成系统内部的计算与工作外,还包括与一些行为者的通信。用例通过关联与行为者连接,关联指出一个用例与哪些行为者交互,这种交互是双向的。用例具有下述特征:代表某些用户可见的功能,实现一个具体的用户目标;总是被行为者启动的,并向行为者提
供可识别的值;必须是完整的。售货供货取货款自动售货机系统3.行为者行为者是指与系统交互的人或其他系统,它代表外部实体。使用用例并且与系统交互的任何人或物都是行为者。行为者代表一种角色,而不是某个具体的人或物。
事实上,一个具体的人可以充当多种不同角色。售货供货取货款自动售货机系统顾客收银员供货人4.用例之间的关系扩展关系向一个用例中添加一些动作后构成了另一个用例,这两个用例之间的关系就是扩展关系,后者继承前者的一些行为,通常把后者称为扩展用例。使用关系当一个用例使用另一个用例时,这两
个用例之间就构成了使用关系。一般说来,如果在若干个用例中有某些相同的动作,则可以把这些相同的动作提取出来单独构成一个用例(称为抽象用例)。售货供货取货款售散装饮料打开机器关闭机器打开机器关闭机器<<扩展>><<使用>><<使用>><<使用>><<使
用>>自动售货机系统顾客收银员供货人保险商务系统客户统计销售统计签订保险单客户保险销售员一个用例模型由若干幅用例图组成。创建用例模型的工作包括:定义系统寻找行为者和用例描述用例定义用例之间的关系
确认模型其中,寻找行为者和用例是关键。9.6.2用例建模1.寻找行为者获取用例首先要找出系统的行为者,可以通过请系统的用户回答一些问题的办法来发现行为者。下述问题有助于发现行为者:谁将使用系统的主要功能(主行为者)?谁需要借助系统的支持来完
成日常工作?谁来维护和管理系统(副行为者)?系统控制哪些硬件设备?系统需要与哪些其他系统交互?哪些人或系统对本系统产生的结果(值)感兴趣?2.寻找用例一旦找到了行为者,就可以通过请每个行为者回答下述问题来获取用例:行为者需要系统提供哪些
功能?自身需要做什么?行为者是否需要读取、创建、删除、修改或存储系统中的某类信息?系统中发生的事件需要通知行为者吗?行为者需要通知系统某些事情吗?从功能看,这些事件能做什么?行为者的日常工作是否因为系统的新功能而被简化或提高了效率?系统需要哪些输入输出?输入来自何处?输出到哪里
?当前使用的系统(可能是人工系统)存在的主要问题是什么?习题:建立定货系统的用例模型。定货系统处理事务产生报表仓库管理员采购员9.73种模型之间的关系面向对象建模技术所建立的3种模型,分别从3个不同侧面描述了所要开发的系统。这3种模型相互补充、相互配合:功能模型指明了系统应该
“做什么”;动态模型明确规定了什么时候(即在何种状态下接受了什么事件的触发)做;对象模型则定义了做事情的实体。在面向对象方法学中,对象模型是最基本最重要的,它为其他两种模型奠定了基础,依靠对象模型完成3种模型的集成。功
能模型动态模型(针对每个类)对象模型类1属性服务类2属性服务用例处理数据流状态1状态2数据存储行为者习题:交通工具分为空中、陆上、水上交通工具。空中交通工具分为客机、货机、专用轻型机;陆上交通工具分为火车、汽车,火车和汽车又分客车和货车;
水上交通工具有轮船,轮船分为客轮、货轮和客货混和轮。请建立上述交通工具的对象模型。交通工具空中陆上水上客机货机专用机火车汽车客轮客车货车货轮旅客列车货运列车客货混合轮