軟件需求分析英文課件:Chap 6-Design Model_第1頁
軟件需求分析英文課件:Chap 6-Design Model_第2頁
軟件需求分析英文課件:Chap 6-Design Model_第3頁
軟件需求分析英文課件:Chap 6-Design Model_第4頁
軟件需求分析英文課件:Chap 6-Design Model_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Elaboration Iteration 1-Design ModelpCh15. UML Interaction DiagramspCh16. UML Class Diagrams 1Chapter 15. UML Interaction Diagramso Objectiveso Provide a reference for frequently used UML interaction diagram notation(sequence and communication diagrams).2Sequence and Communication Diagrams oThe UML

2、includes interaction diagrams to illustrate how objects interact via messages. They are used for dynamic object modeling.3: AmyB : BdoTwodoOnedoThree: AmyB : B1: doTwo2: doThreedoOneStrengths and Weaknesses of Sequence vs. Communication Diagrams4Example Sequence Diagram: makePayment5: Register: Sale

3、makePayment(cashTendered)makePayment(cashTendered) : Paymentcreate(cashTendered)Example Communication Diagram: makePayment61: makePayment(cashTendered)1.1: create(cashTendered):Register:Sale:PaymentmakePayment(cashTendered) direction of messageNovice UML Modelers Dont Pay Enough Attention to Interac

4、tion Diagrams !oMost UML novices are aware of class diagrams and usually think they are the only important diagram in OO design. Not true! oAlthough the static-view class diagram are indeed useful, the dynamic-view interaction diagrams are incredibly valuable. oSpend time doing dynamic object modeli

5、ng with interaction diagrams, not just static object modeling with class diagrams.7Common UML Interaction Diagram NotationoIllustrating Participants with Lifeline Boxes8oBasic Message Expression SyntaxoSingleton Objects9Basic Sequence Diagram NotationoMessages and focus of control with execution spe

6、cification bar10: Register: SaledoAdoBdoXdoCdoDtypical sychronous message shown with a filled-arrow linea found message whose sender will not be specifiedexecution specification bar indicates focus of controloIllustrating Reply or Returns11: Register: Saled1 = getDategetDatedoXaDateoMessages to self

7、 or this“oCreation of Instances12: RegisterdoXclear: Register: SalemakePayment(cashTendered): Paymentcreate(cashTendered)authorizenote that newly created objects are placed at their creation heightoObject Lifelines and Object Destruction13oDiagram Frames in UML Sequence Diagrams14enterItem(itemID, q

8、uantity): BendSalea UML loop frame, with a boolean guard expressiondescription, totalmakeNewSale more items loop: Aocommon frame operators15oConditional Messages16calculate: Baryyxx color = red opt: Foo color = red calculate: Baryyxx: FooUML 1.x notational simple styleoMutually Exclusive Conditional

9、 Messages17: B: AcalculatedoX: Ccalculate x 10 alt else oIteration Over a Collection18Iteration over a collection using relatively explicit notationoIteration Over a Collection19Iteration over a collection leaving things more implicitoIteration Over a Collection20oNesting of Frames21calculate: Barxx

10、 color = red opt: Fooloop(n)oHow to Relate Interaction Diagrams?22interaction occurrencenote it covers a set of lifelinesnote that the sd frame it relates to has the same lifelines: B and CdoA: A: B: CdoBsd AuthenticateUserrefAuthenticateUserauthenticate(id)doXdoM1: B: Cauthenticate(id)doM2refDoFoos

11、d DoFoodoX: B: CdoYdoZoMessages to Classes to Invoke Static (or Class) Methods23oPolymorphic Messages and Cases24oAsynchronous and Synchronous Calls25oAsynchronous and Synchronous Calls26Basic Communication Diagram NotationoLinksoMessages271: makePayment(cashTendered)2: foo2.1: bar: Register:Salelin

12、k line1: msg22: msg33: msg43.1: msg5: Register:Saleall messages flow on the same linkmsg1oMessages to self or this28: Registermsg11: clearoCreation of Instances29oMessage Number Sequencing30: Amsg1: B1: msg2: C1.1: msg3not numberedlegal numbering31: Amsg1: B1: msg2: C1.1: msg32.1: msg52: msg4: D2.2:

13、 msg6firstsecondfourthsixthfifththirdoMessage Number SequencingoConditional Messages321 color = red : calculate: Foo: Barmessage1conditional message, with testoMutually Exclusive Conditional Paths331a test1 : msg2: A: B: C1a.1: msg3msg1: D1b not test1 : msg41b.1: msg5: E2: msg6unconditional after ei

14、ther msg2 or msg41a and 1b are mutually exclusive conditional pathsoIteration or Looping341 * i = 1.n : num = nextInt: SimulatorrunSimulation: Randomiteration is indicated with a * and an optional iteration clause following the sequence numberoIteration Over a Collection35oMessages to a Classes to I

15、nvoke Static (Class) Methods36oPolymorphic Messages and Cases37oAsynchronous and Synchronous Calls383: runFinalization:ClockStarterSystem : ClassstartClock:Clock1: create2: runasynchronous messageactive objectChapter 16. UML Class Diagramso Objectiveso Provide a reference for frequently used UML cla

16、ss diagram notation.39Applying UML: Common Class Diagram Notation40java.awt:Fontorjava.awt.Fontplain : Int = 0 readOnly bold : Int = 1 readOnly name : Stringstyle : Int = 0.getFont(name : String) : FontgetName() : SerfaceRunnablerun()- ellipsis “” means there may be elements, but not shown-

17、 a blank compartment officially means “unknown” but as a convention will be used to mean “no members”SubclassFoo.run().SuperclassFooorSuperClassFoo abstract - classOrStaticAttribute : Int+ publicAttribute : String- privateAttributeassumedPrivateAttributeisInitializedAttribute : Bool = trueaCollectio

18、n : VeggieBurger * attributeMayLegallyBeNull : String 0.1 finalConstantAttribute : Int = 5 readOnly /derivedAttribute + classOrStaticMethod()+ publicMethod()assumedPublicMethod()- privateMethod()# protectedMethod() packageVisibleMethod()constructor SuperclassFoo( Long )methodWithParms(parm1 : String

19、, parm2 : Float)methodReturnsSomething() : VeggieBurgermethodThrowsException() exception IOExceptionabstractMethod()abstractMethod2() abstract / alternatefinalMethod() leaf / no override in subclasssynchronizedMethod() guarded 3 common compartments1. classifier name2. attributes3. operationsinterfac

20、e implementation andsubclassingFruit.PurchaseOrder.1association with multiplicitiesdependency officially in UML, the top format is used to distinguish the package name from the class nameunofficially, the second alternative is commonorderan interface shown with a keywordDefinition: Design Class Diag

21、ram41Register.endSale()enterItem(.)makePayment(.)SaletimeisComplete : Boolean/totalmakeLineItem(.)Register.SaletimeisComplete : Boolean/totalCaptures111Domain Modelconceptual perspectiveDesign ModelDCD; software perspectivecurrentSale1. Definition: ClassifieroA UML classifier is “a model element tha

22、t describes behavioral and structure feature”. oClassifier can also be specialized. They are a generalization of many of the elements of the UMLnClasses nInterfaces nUse cases nActors oIn class diagram, the two most common classifier are regular classes and interfaces422. Ways to Show UML Attributes

23、: Attribute Text and Association Lines43Register.Sale.1RegistercurrentSale : Sale.Sale.using the attribute text notation to indicate Register has a reference to one Sale instanceusing the association notation to indicate Register has a reference to one Sale instanceOBSERVE: this style visually empha

24、sizes the connection between these classescurrentSaleRegistercurrentSale : Sale.Sale.1thorough and unambiguous, but some people dislike the possible redundancycurrentSaleoIdioms in association notation usage in different perspectives44the association name, common when drawing a domain model, is ofte

25、n excluded (though still legal) when using class diagrams for a software perspective in a DCDRegisterid: Int.Saletime: DateTime.1currentSaleRegisterid : IntSaletime : DateTimeCaptures-current-sale11UP Domain Modelconceptual perspectiveUP Design ModelDCDsoftware perspectiveoGuideline: When to Use Att

26、ribute Text versus Association Lines for Attributes?45Registerid: Int.Saletime: DateTime.1applying the guideline to show attributes as attribute text versus as association linesStoreaddress: Addressphone: PhoneNumber.1Register has THREE attributes:1. id2. currentSale3. locationcurrentSalelocationoHo

27、w to Show Collection Attributes with Attribute Text and Association Lines?46notice that an association end can optionally also have a property string such as ordered, ListSaletime: DateTime.SalesLineItem.1.*lineItemsordered, ListSaletime: DateTimelineItems : SalesLineItem 1.* orlineItems : SalesLine

28、Item 1.* ordered.SalesLineItem.Two ways to show a collection attribute3. Note Symbols: Notes, Comments, Constraints, and Method BodiesoNote symbols can be used on any UML diagram, but are especially common on class diagrams oA UML note symbol is displayed as a dog-eared rectangle with a dashed line

29、to be annotated element; oA note symbol may represent several things na UML note or comment, having no semantic impact na UML constraint, must be encased in braces na method body474. Operations and MethodsoOne of the compartments of the UML class box shows the signature of operationsoOperations are

30、usually assumed public if no visibility is shown oAn operation is not a method. It is a declaration. Method are implementations48oHow to Show Methods in Class Diagrams?49o Operation Issues in DCDsn The create operation oThe create message in an interaction diagram is normally interpreted as the invo

31、cation of the new operator and a constructor call oIn a DCD this create message will usually be mapped to a constructor definition, using the rules of the language n Operations to Access Attributes oOften excluded (or filtered) from the class diagram505. KeywordsoA UML keyword is a textual adornment

32、 to categorize a model element oMost keywords are shown in guillemet ( ) but some are shown in curly braces abstract osample predefined UML keywords include:51Stereotypes, Profiles, and Tags526. Generalization, Abstract Classes, Abstract OperationsoGeneralization is a taxonomic relationship between

33、a more general classifier and more specific classifier nEach instance of the specific classifier is also an indirect instance of the general classifier. nThe specific classifier indirectly has features of the more general classifier nIs shown in UML with a solid line and fat triangular arrows from t

34、he subclasses to supper classes53DependencyoIn UML, a dependency relationship indicates that a client element has knowledge of another supplier element and that a change in the supplier could affect the clientoThere are many kinds of dependency, here are some common types in terms of objects and cla

35、ss diagramsnHaving an attribute of the supplier type nSending a message to a supplier,the visibility to the supplier nReceiving a parameter of the supplier type nThe supplier is a superclass or interface oIn class diagrams use the dependency line to depict the following dependency between objects ng

36、lobal, parameter variablenlocal variablenstatic-method call5455SalesLineItem.ProductDescription.1.*lineItemsSale.updatePriceFor( ProductDescription ).the Sale has parameter visibility to a ProductDescription, and thus some kind of dependencyoExample56oAnother ExampleSystem.runFinalization().Foo.doX(

37、).the doX method invokes the runFinalization static method, and thus has a dependency on the System classoOptional dependency labels577. Interfaces58interfaceTimergetTime()Clock1.getTime().lollipop notation indicates Clock3 implements and provides the Timer interface to clientsTimer is a provided in

38、terfaceTimerClock3.getTime().Window2Window3dependency line notationWindow2 has a dependency on the Timer interface when it collaborates with a Clock2 objectsocket line notationWindow3 has a dependency on the Timer interface when it collaborates with a Clock3 objectWindow1Timersocket line notationWin

39、dow1 uses the Timer interface it has a required interfaceClock2.getTime().Clock1 implements and provides the Timer interfaceTimer8. Composition Over AggregationoAggregation is a kind of association that loosely suggests whole-part relationship oComposition is a strong kind of whole-part aggregation

40、and is useful to show in some models oA composition relationship implies that nAn instance of the part belongs to only one composite instance at a time nThe part will be always belong to the composite nThe composite is responsible for the creation and deletion of its parts either by itself creating/

41、deleting the parts, or by collaborating with other objects59oComposition in the UML60Finger0.7Handcomposition1Square40Board1SalesLineItem1.*Sale1composition means -a part instance (Square) can only be part of one composite (Board) at a time -the composite has sole responsibility for management of its parts, especially creation and deletion9. Constraints6110. Qualified association

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論