讲义文稿教程_第1页
讲义文稿教程_第2页
讲义文稿教程_第3页
讲义文稿教程_第4页
讲义文稿教程_第5页
免费预览已结束,剩余167页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6

冰 引引OOP

什么是结构

OOPProcess (JeanPiaget, 年月 结构是由种种转换规律组成的体系.结构就是由具有整体性的若干转换规律组成的一个有自身调整性质的体系。 结构的三个特整体性:一个结构有若干成分组成,并且整体有部分不具有的特代数结类的类属面向对象系统的转换具有转换规律和法则,如运结构的守恒和封闭性,一个结构所固有的各种转换不会越出结构的边界之外

母结

OOPProcess。 。数学结构 而对对象本身究竟是数、是形、是函数还是运算并不关 代数结 序结格 拓扑结图oe提提OOP

.5对象与

OOP

1.11.2 1.41.5 1.6概念与表示

OOPProcess公理体

OOPProcess在类的公理体系中,有一些基本的概念是不加定义的,我们只能从其客观含义上给数学中研究的任何一个客体(对象)都称为一个类。类的概念是没有任何限制。类 为AB。另一个不加定义的概念就是:类总是具有一定的性质,我们常以P(x)表示类x具有性类的外延公

OOPProcess 公理Ⅰ(外延公理 以定义: 类的内

OOPProcess一般地说,类中的元素总是具有某种共同的性质的,这就一个类的所有元素所共同具有的、而且是这个类的元素所独有的性质(也就是说不是该类的元素就不具有该性质)称为类的内涵与外延之间存在着直观的“反比关系”:类的内悖悖OOP

设性质P(x)表示 ;其次, Accordingto ysisandDesignwith

OOP

OOP

setColor(String

+size:Area=(100,100)#visibility: +size:Area=(100,100)#visibility:Boolean=true+default-size: um-size:+display+hide+create-cancel()change(newDate:matchtoavailableinvalidcreditsize:Areadisplay()hide()

oe识别对象与类的方

OOP

研究用户需求,明确系统责 研究问题 考虑系统边 考虑系统责 名词技 卡 Peter的四色类研究用户需求,明确系统责

OOP

记录、整理:产生需求文档(补充用况图如果建立了用况图,那么跳过研究问题

OOP

考虑系统边界(参与者

OOP

考虑系统责

OOPProcess名词技

OOP

设备、事件(如索赔、、交易)、表格、日志、报告、优缺

OOP

优 缺软件CRC卡片(类/责任/协作

OOP

RebeccaWirfs-Brock发方法举例 软件系统的CRC

OOPProcess 的管理员来操作。每条供电线路安装一个线路检测仪,每30 1次该线路的信 小时的数据,系统接受后,保存在系统中 管理员登陆系统后,可进行如下几项工作 ①线路基本信息录入:录入每条线路的基本信息,包括线路号、位置等等 印出来 OOOOP

登线路基本登线路基本信息录管理搜集采样信CRC卡线路信

CRC

CRCCRC…

CRC 信

优缺

OOP

Booch对识别类的方法总

OOP

经典方Ross:人地点物组织概念事Coad&Yourdon:结构外部系统设备事件用户角色位置组织机构单 行为分责功 Usecase role,place,role,place,thing,party,catolog,与筛

OOP

1与筛

OOP

2.精简对象

OOOOP

3.与实现条件有关的对象, 段考虑专门为它们增加一些对象,既把它们推设计与图形用户界面(GUI)系统、数据管理系统、硬 OOOOP

4.在问题域中名词不总是类或对象对讨论需求是重要通常用几个不同的名词或名词短语描述同样的事

OOP

从需求考虑系统的执行情(唯一考虑系统边如果一个交互是由参与者发起的第一个处理该交互的对象是主动对

OOP

适合该类及其特殊类的全部对象实反 而不是群书-书籍;船-船使用名词,避免无意义的符使用问题域通用、规范的建立类图的对象

OOP

填写类描述模若发现新的属性与服务、关系,可以随时加到类符号中例题:习题管理系

OOP

题库中选择的题目练习.教师可以通过系统检查作业,学生班班OOPProcess习习题解学 习题答习题答oe识别属

OOP

2.42.5属 2.6概念与表示

OOP

–类属性:是描述类的所有对象共同特征的一个数属性的表示

OOP

类范围的属性与实例范围的属性通过在类范围属性名和类型表达式画下划线的方式表示类范围的属 属性可具有初始值和可见可见性的值可为中描述它们。可见性的值可为+(公有的)、(公有的)#(受保护的)或(受保护的) (私有的

+size:Area=(100,100)#visibility:Boolean=true+default-size:#um-size:+display+hide+create-displaydisplay()hide()size:visibility:属性的特

OOP

ShlaerMellor(1992)提出,RichardC.Lee增特征0:属性必须捕获与其对象所在的语义域相一致的特??特征1:任何时间一个实例为其每一个属性都精确地给出一特征2:不能包含内部的结构

OOOOP

特征3:属性必须是整个实体的特征特征4:对象的属性必须与该对象相关特征5:对象的属性值不能是与其有关的对象的值以其关系的oe识别服

OOP

3.13.2 3.43.5服 3.6概念与表示

OOPProcess操作:是类的行为特征,用于描述为 相关行为的名称、类型、参数与约束作集合(算法、过程) OOOOP

对象行为分例:创建、删除 、转例:读、写属性计算表示

OOP

display()hide()size:Areadisplay()hide()size:Area +size:Area=#visibility:Boolean=+default-size: um-size:+display+hide+create-识别服

OOP

OOA不考虑算法简单服 考虑算法复杂的服 操作)定义服务的策略与启

OOP

有哪些功能要求对象在问题域对应的事物有哪些行在每种状态下对象可能发生什么行为?对象状态的转换,是由哪些服务引起的模拟服务的执行,并在整个系统 与调

OOP

对象的每个服是否直接提供系统责任所要求的某项功能响应其它服务的请求间接地完成这种功能的某些局部一个服务只完成一项单一的、完整的功认识对象的主动行 与参与者交互的对象服 完成最外层功能的对象服务外层与内层是请求与被请求的 服务执行路线逆向追踪找到了主动服务就等于找到了主动对

OOP

服 名和定

OOP

命名:动词或动宾结构;外向 定位描述服

OOP

把每个对象的服务都填写到相应的类符号中 •班oe定义关

OOP

4.44.5泛一般只要有这些特特殊一般只要有这些特特殊特殊类的特必须有这些特

OOP

OOOOPProcess OOOOP

称,但并不是所有的人都是雇 b.传递如果对象A“是一个”对象B,对象B“是一个”对象C, 在A模型中建立泛化,是为了使系统模型更清晰地映射问题域中事物的分类关系。它把具有泛化关系的类组织在一起,可以简化我们对复杂系统的认识,从而增加了软件的可性和适应变化的灵活性基本表

OOPProcess 深入表示

OOP

SeparateTarget

..

Discriminator(区分器SharedTarget..

ct-Oriented泛化集泛化集名

泛化集名 泛化集名

泛化集名 泛化集名化集名化集名泛化集名人人人人人人泛化集

OOP

AA

a1a1b1c1a2b2c2a3b3c3 A2

泛化集的约

OOP

{complete, plete, {complete, plete, 默认 plete,OOP

人人 人 plete,

OOOOP

metaOMGUnifiedModelingLanguageTM(OMGUML),识别泛

OOP

OOP

IsAA是一个B,B是一个思考

OOP

学博士博博士在站博士出站博士教人人学教博博士博士在站士出站士人—有时有时有时有时有时有时有时—教总有时—有时有时有时有时有时博总有时有时—从不有时有时有时博士总总有时从不—从不从不从不博士总有时有时总从不—有时有时在站士总总总总从不总—从不出站士总从有时总从不总从不— OOOOP

公公司人工

OOPProcess OOOOPProcess公司人职战斗战斗飞行速飞战飞飞行飞 飞行速飞行速战斗

OOOOPProcess 飞飞战4 与调 问题域与系统责任是否需要这样的分类 是否符合分类学 是否构成了继承关系?(确实继承了一些属性或服务

OOOOP

一般-特殊结构的简

OOP

(2)(2)增加属性简化一般-特殊结OOPProcess(3)取消用途单一的一般类,减少继层

有两个或两个上需要用它创建对象实有助于软件复

OOPProcess5、调整对象层和特征

OOPProcessoe识别关

OOP

OOP

关联描述 类的实例的元组的集合 OOOOPProcessTom:Tom:Jack:Marry:

OOP

AB

OOOOP

的非负正整数的范围,也即它等价于0..*OOPProcess OO

OOP

人人 0..10..10.. 1..*0.. OOOOP

如果使用角色名,就可以省略关联与其他类的一个实例相关联的实例的数量 OO举 OOP 球 人

思考鸡生蛋,蛋生

▲孵▲孵OOP

鸡鸡1▲ ▲ 产生孵1鸡▲▲A▲

下列哪幅图最能精确描

OOP

人 人人人

▲ ▲ OOOOP

双向的导航不必画箭

UML2.0中对导航性的表

OOPProcessoe关联的类

OOP

关联

OOPProcess 如果一个类的一个属性可以同时有多个值,就考虑使用关联类例如,一个人的薪水OOPProcess关联类到二元关联的转

OOP

限定关联

** 人 人人人

限定关联

OOP

OOOOP

棋棋坐演 格票格票异或关

OOP

公帐个有序关

OOPProcess客 保险合建立关联的策

OOP

考虑问题域和系统责任——哪些类的对象实例之间的关系需要在系统中表达 多对多关联的问

OOP

多对多的表的信息是冗余两个多对多关系转化为不符合第四范式的降低多对多关联的多重

OOP

用关系数据库实现为先筛选后连切断多对多从问题域中寻找新的中间类,它与双方都构成1对多关若问题域中找不到相应的类,可构想一降低多对多关联的多重

OOPProcess OOOOPProcess 单

OOPProcess

OOPProcessoe分析模

OOP

MartinAccountability责任(partyOrganizationHierarchiesOrganizationstructure…)ObservationandMeasurementsRederringtoObjects…分析模

OOP

**11 11**1 1*分析模

OrganizationHierarchies(组织层次

OOP

11111*****结构

OOP

ty

OOP

BloodglucoseBloodglucoselevel:Number+-Conversion

OOPProcess Compound

OOP

UnitCompoudUnitCompoudAtomic1

1

Measurement测

OOP

11

1Observation

OOP

1

1

oe聚

概念与表示

OOPProcess 聚合(aggregation)是关联的一种特殊形式,表示整体和部分之间的“整体-部分”关系 (aggregate)是聚合关系中作为“整体”的类,而把作为“部分”的类称为成分或部 类与类之间的聚合关系指的是,一个类的对象实例,以另一个类的对象实例作为其组成部分,是种“apartof”或“has”;也可理解为,一个类定义 另一个类定义。 组合对象是组合类的实例表示

OOPProcess性性OOP

部分必须与它们所构建的整体有某些结构上或功能上的关 称b.传递人灵游人灵游

OOP

游人人 A人人 MartinFowler:AggregationAnd

OOP

FewthingsintheUMLcausemoreconsternationthanaggregationandcomposition,inparticularhowtheyvaryfromregularassociation. Thefullstoryismuddiedbyhistory.Inthepre-UMLmethodstherewasacommonnotionofdefiningsomeformofpart-wholerelationships.Thetroublewasthateachmethoddefineddifferentsemanticsfortheserelationships(althoughtobefair,someofthesewereprettysemanticsfree). Sowhenthetimecametostandardize,lotsofpeoplewantedpart-wholerelationships,buttheycouldn'tagreeonwhattheymeant.SotheUMLdefinersintroducedtwo aggregation(whitediamond)hasnosemanticsbeyondthatofaregularassociation.Itis,asJimRumbaughputsit,amodelingplacebo.Peoplecan,anddo,useit-buttherearenostandardmeaningsforit.Soifyouseeit,youshouldinquireastowhattheauthormeansbyit.Iwouldadvisenotusingityourselfwithoutsomeformofexplanation. composition(blackdiamond)doescarrysemantics.Themostparticularisthatanobjectcanonlybethepartofonecompositionrelationship.Soevenifbothwindowsandpanelscanhold -bars,anyinstanceof -barmustbeonlyheldbyonewhole.Thisisn'taconstraintthatyoucaneasilyexpresswiththeregularmultiplicitymarkers.分分OOP

MortonWinston构造性:整体部分之间存是否存在功能或结构上的关同质性:整体部分之间的类型是否相不变性:整体部分之间的是否不可分离 根据性质的不同可将整体部分关系分为以下几类名不变定举组装-部∨××材料-对××∨部分失去它们的标划分-对×∨×整体与同质部分的组地点-地×∨∨集合-成×∨有成员间有序排本-人名,月计划表-日划×××成员-合∨×∨具有不变性的容器-容舞伴,相声搭档识别策

OOP

与筛

OOP

例:汽车与轮胎(规格例:学生与课程,谁是整体?部分oe依

OOPProcess access ;derive--派生;import--移入;refine精 include–包含;extend—扩表示

OOP

不同类型的依

OOP

ClassCcombinestwologicalClassCcombinestwologicalclasses不同类型的依

OOPProcess Dependencyrelationshipisusedtoshowthatsomeelementorasetofelementsdependsonothermodelelement(s),andonclassdiagramsisusuallyrepresentedbyusagedependencyor Ausageisadependencyrelationshipinwhichoneelement(client)requiresanotherelement(orsetofelements)( r)foritsfullimplementationoroperation. Theusagedependencydoesnotspecifyhowtheclientusesthe rotherthanthefactthattherisusedbythedefinitionorimplementationoftheclient.Forexample,itcouldmeanthatsomemethod(s)withina(client)classusesobjects(e.g.parameters)oftheanother r) Ausagedependencyisshownasadependencywitha«use»keywordattachedto Createisausagedependencydenotingthattheclientclassifiercreatesinstancesof classifier.Itisdenotedwiththestandardstereotype Callisausagedependencythatspecifiesthatthesourceoperationinvokesthetargetoperation.Thisdependencymayconnectasourceoperationtoanytargetoperationthatiswithinthescopeincluding,notlimitedto,operationsoftheenclosingclassifierandoperationsofothervisible Sendisausagedependencywhosesourceisanoperationandwhosetargetissignal,specifyingthatthesourcesendsthetarget不同类型的依

OOPProcess ionisadependencyrelationshipwhichrelatestwoelementsorsetsofelements(calledclientand r)representingthesameconceptbutatdifferentlevelsof ionorfromdifferentviewpoints. Realizationisaspecialized ionrelationshipbetweentwosetsofmodelelements,onerepresentingaspecification(the r)andtheotherrepresentsanimplementationofthelatter(theclient). InterfacerealizationisaspecializedrealizationrelationshipbetweenaClassifierandanInterface.Thisrelationshipsignifiesthattherealizingclassifierconformstothecontractspecifiedbythe接口与实

OOPProcess Aninterfaceisaclassifierthatdeclaresofasetofcoherentpublicfeaturesand Aninterfacespecifiesa Anyinstanceofaclassifierthatrealizes(implements)theinterfacemustfulfillthatcontractandthusprovidesservicesdescribedbycontract.Theobligationsthatmaybeassociatedwithaninterfaceareintheformofvariouskindsofconstraints(suchaspre-andpostconditions)orprotocolspecifications,whichmayimposeorderingrestrictionsoninteractionsthroughtheinterface.oe OOOOP

是面向对象的一实现多继 接口与

OOP

InUML1.4interfacewasformallyequivalenttoanclasswithnoattributesandnomethodsandonly Sinceinterfacesaredeclarations,theyarenotinstantiable.Instead,aninterfacespecificationisimplementedbyaninstanceofaninstantiableclassifier,whichmeansthattheinstantiableclassifierpresentsapublicfacadethatconformstotheinterface Anygivenclassifiermayimplementmorethanoneinterface.Interfacemaybeimplementedbyanumberofdifferentclassifiers.-storeId:-POSlist:+login(UserName,-storeId:-POSlist:+login(UserName,

OOP

接口的表示(完全

OOP

-storeId:-POSlist:+login(UserName,

OOPProcessMacMacMacUML2.0需接口与供接

OOPProcess例题:题库管理系

11

*认课教师

班 1

*

* *

模板类与绑

OOP

UMLclassescouldbetemplatedor Theexamplebelowshowstemplatecla

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论