1 / 31

Object Oriented Development with UML

Object Oriented Development with UML. 11-12, 18-19 November 2006 At Sipa Chiangmai Introduction to UML 2.0. โดย รศ. รังสิต ศิริรังษี อ. สายัณห์ อุ่นนันกาศ. 3 basic building blocks of UML - Diagrams. UML 1.x: 9 diagram types. UML 2.0: 12 diagram types. Structural Diagrams

Download Presentation

Object Oriented Development with UML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Object Oriented Development with UML 11-12, 18-19 November 2006At Sipa ChiangmaiIntroduction to UML 2.0 โดย รศ. รังสิต ศิริรังษี อ. สายัณห์ อุ่นนันกาศ

  2. 3 basic building blocks of UML - Diagrams UML 1.x: 9 diagram types. UML 2.0: 12 diagram types Structural Diagrams • Class; Object • Component • Deployment • Composite Structure • Package Structural Diagrams Represent the static aspects of a system. • Class; Object • Component • Deployment Behavioral Diagrams Represent the dynamic aspects. • Use case • Sequence; Collaboration • Statechart • Activity Behavioral Diagrams • Use case • Statechart • Activity Interaction Diagrams • Sequence; Communication • Interaction Overview • Timing

  3. UML 2.0 Highlight of Changeslist is not comprehensive • แนะนำแนวคิดใหม่เรื่องPorts • แนะนำไดอาแกรมComposite Structure Classes& Diagrams • Class Diagrams – มีการเปลี่ยนแปลงเล็กน้อย • Collaboration Diagram – เปลี่ยนชื่อเป็นCommunication Diagram • Sequence Diagram – มีลักษณะเป็นnesting options • เพิ่มไดอาแกรมใหม่เข้ามาเรียกว่า – Timing Diagram • Activity Diagramsมีการเปลี่ยนแปลงมากที่สุดในทุก ๆ ไดอาแกรม UML • Use Case Diagrams – เพิ่ม multiplicity และเปลี่ยนแปลงส่วนที่เป็น extension points. • Package Diagramถือเป็น official UML diagram

  4. UML 2.0 New Terms • Part:แนวคิดของ parts ทำให้เกิดความเป็นไปได้ที่กำหนดรายละเอียดของโครงสร้างภายในของคลาส • Port * • ใช้สำหรับเชื่อมต่อกับกลไกภายในคลาสกับสภาพแวดล้อมในการทำงาน • ทำหน้าที่เป็นกลไกในการเปิด class’s encapsulation โดยผ่าน messages ที่ถูกส่งเข้าไปหรือออกมาจากคลาส โดยขึ้นอยู่กับการจัดเตรียม port ไว้ • Connector:ใช้สำหรับระบุ link ( ความสัมพันธ์ของ instance) ที่ยอมให้มีการติดต่อสื่อสารกันระหว่างสอง parts ขึ้นไป * Quoted from Morgan Bjorkander & Chis Kobryn’s article “Architecting Systems with UML 2.0 in IEEE Software, July/August 2003 http://www.uml-forum.com/out/pubs/IEEE_SW_Jul03_p57.pdf

  5. Interface-based design ต้องการและจัดเตรียม interfaces เพื่อยอมให้แต่ละคลาสมีการกำหนดให้อยู่ในรูปของ entity เดี่ยว Encapsulation คลาสจะถูกมองในรูปของ ”black box” จำเป็นต้องทราบถึงhowที่ interfaces นำไปใช้ Component-Based Development Class «interface» Display VendingMachine Display() NoChange() OutOfOrder() InsertCoin Provided interface Display Required interface

  6. มีเพียงคลาสที่ matching กับ interfaces เท่านั้นที่ยอมให้มีการติดต่อสื่อสารกับส่วนอื่น ๆ สนับสนุนการทำงานแบบ contracts port ทำหน้าที่ได้หลาย ๆ roles: ทำหน้าที่เป็น unique interaction point ของคลาส ให้มุมมองแก่คลาส Specifying Communicating Classes Controller composite port CoinControl port Display Detector pCtrl Maintenance Counter InsertCoin CoinControl,Counter Counter

  7. class สามารถใช้เป็นส่วนหนึ่งของโครงสร้างภายในของคลาสอื่น hierarchical decomposition Connectors ถูกใช้ในรูปของ contextual associations นำเสนอเส้นทางการติดต่อสื่อสาร Assembling Classes Class Part VendingMachine :Counter :Detector pCtrl Counter InsertCoin InsertCoin :Controller CoinControl Display Display Connector

  8. What’s new in UML 2.0 • Composite Structure Diagram (Class Diagram ชนิดใหม่) ไดอาแกรมนี้ยอมให้ผู้ใช้สามารถกำหนดวิธีการติดต่อผ่านเส้นทางระหว่างส่วนต่าง ๆ ในระบบ • Structured Classes –เป็นคลาสที่ประกอบไปด้วย parts ต่าง ๆ ที่มีสัญลักษณ์ “nested” notation ที่ใช้สำหรับแสดง model containment hierarchies

  9. Overview of New Features • การปฏิสัมพันธ์จะเน้นไปที่การติดต่อสื่อสารกันระหว่างการมีส่วนร่วมกันระหว่าง instances ที่มีการติดต่อสื่อสารกันระหว่าง messages • สนับสนุนทั้งโมเดลแบบ synchronous (operation invocation) และ asynchronous (signal sending)

  10. What’s new in UML 2.0 continued……. • Package Diagram. Packages เป็นไดอาแกรมใน UML ที่ยอมให้ผู้ใช้สามารถจัดรวบรวมส่วนประกอบต่าง ๆ ให้อยู่ในรูปของกลุ่มของไดอาแกรมที่ง่ายต่อการทำความเข้าใจ • Interaction Overview diagramยอมให้ผู้ใช้สามารถกำหนดวิธีการติดต่อกัน (กำหนดรายละเอียดของ sequence diagrams) ถูกนำมารวมกันตาม sequentially, parallel หรือ alternatives • Communication Diagramคือ Collaboration Diagram ใน UML 1.x เดิมนั่นเอง

  11. ServiceTerminal sd sd GoHome Authorization GoHomeServiceContext ServiceUser :ServiceUser :ServiceTerminal ServiceBase :ServiceBase Example: Interaction Context • ทุก ๆ การปฏิสัมพันธ์ที่เกิดขึ้นภายในโครงสร้างของcollaborating parts • เป็นโครงสร้าง context สำหรับการติดต่อสื่อสารระหว่างกัน Interaction Context:Structured Class or Collaboration Interactions Internal Structure Part

  12. UML 2.0 Changes • Sequence diagrams can be “nested” using operators: sd – named sequence diagram ref – reference to “interaction fragment” loop – repeat interaction fragment alt – selection par – concurrent (parallel) regions seq – partial ordering (default) (aka “weak”) strict – strict ordering assert – required (i.e. causal) opt – optional “exemplar” neg – “can’t happen” or a negative specification • The message entry and exit points are called “gates” and allow tools to ensure that the diagrams are compatible and consistent with each other. * Quoted from I-Logix white paper http://www.ilogix.com/whitepaper_PDFs

  13. วัตถุประสงค์ : กำหนดความต้องการของระบบ ตรวจสอบติดตามการติดต่อสื่อสาร สร้าง test cases และ test suites Interactions (Sequences) sd Trace :User :VendingMachine Display(1) Insert(.10) Display(.90) Insert(.50) Display(.40) Insert(.50)

  14. แสดงการทำงานได้หลายลักษณะแสดงการทำงานได้หลายลักษณะ parallelism และ alternatives iterations และทางเลือกต่าง ๆ exceptions ใช้สำหรับการลดจำนวนของ sequence diagrams ที่ต้องการในการแสดงฟังก์ชันการทำงานของระบบ Variations in Sequence Diagrams sd ValidateCoin :User :VendingMachine Insert(coin) alt Display(price) else RejectCoin()

  15. ปกปิดข้อมูลโดยการแบ่ง lifeline ออกเป็น sequences ในระดับรายละเอียดต่อไป Decomposition sd Decomposition :Detector create :Controller sd Overview Insert(coin) :User :VendingMachine ref Decomposition ValidateCoin() RejectCoin() Insert(coin) RejectCoin()

  16. เพื่อป้องกันการซ้ำซ้อนโดยไม่จำเป็น จึงมีความเป็นไปได้ที่จะอ้างถึง sequence diagrams ที่ได้สร้างไว้แล้ว Referencing Sequences sd BuyScenario :User :VendingMachine ref ChooseProduct Display(price) ref ValidateCoin

  17. เป็นไปได้ที่จะจัดการ sequence diagrams ให้อยู่ในรูปของ flows เพื่อระบุการทำงานร่วมกัน Interaction Overview diagram = interaction diagram + activity diagram รวม interactions ให้มีลักษณะแตกต่างออกไปเพื่อสร้าง scenarios ใหม่ Organizing Sequences sd Overview ref Initiate ref ValidateCoin [else] [price=0] ref DispenseProduct

  18. Interaction Occurrences Interaction Frame Lifeline is one object or a part Interaction Occurrence Combined (in-line) Fragment Asynchronous message (signal)

  19. Combined Fragments and Data loop Choice Operand Separator Guarding Data Constraint

  20. Activities: New Semantic Foundation Pre- and post-conditions • สนับสนุนสัญลักษณ์การทำงานของ Petri Net foundation (vs. statecharts) • Un-structured graphs (graphs with “go-to’s”) • มีโมเดลแบบ concurrency มากขึ้น Input pin

  21. B C A Z Y X Extended Concurrency Model • สนับสนุน concurrent streams (“tokens”) Concurrency fork Concurrency join Trace: A, {(B,C) || (X,Y)} , Z “Tokens” represent individual execution threads (executions of activities)

  22. UML 2.0 New Terms • Use Case Diagrams * • มีการกำหนดจำนวน Use Case Multiplicities ที่เส้นแสดงความสัมพันธ์ระหว่าง actors และ use cases • คำจำกัดความของ multiplicities ที่ใช้ภายใน use case diagram จะเหมือนกับที่ใช้ใน class diagram • Extension Points - เป็นเงื่อนไขจาก UML 2.0 เพื่อแสดงลอจิกการทำงานที่จำเป็นจาก use case หนึ่งไปยัง use case อื่น ๆ ซึ่งโดยปกติจะเป็น extension point ที่ใช้ระหว่างสอง use cases * What’s New in UML 2? The Use Case Diagram–by Randy Miller June 30, 2003http://community.borland.com/article/0,1410,30166,00.html

  23. เครื่องหมาย use cases จะไม่แตกต่างไปจาก UML 1.4 เท่าใดนัก Use Cases VendingMachine BuyItem «include» User ValidateCoin Refill ServiceMan

  24. State Machine Improvements • เพิ่มโครงสร้างใหม่ : • Modularized submachines • State machine specialization/redefinition • State machine termination • “Protocol” state machines • transitions pre/post conditions • protocol conformance • Notational enhancements • action blocks • state lists

  25. ReadAmountSM abort otherAmount selectAmount amount abort EnterAmount aborted ok again Modular Submachines: Definition Submachine definition EXIT point ENTRY point

  26. ATM VerifyCard acceptCard outOfService ReadAmount: ReadAmountSM aborted OutOfService again rejectTransaction releaseCard VerifyTransaction ReleaseCard Modular Submachines: Usage invoked submachine usage of exit point usage of entry point

  27. ATM Behaviour Statemachine acceptCard() outOfService() amount() <<Redefine>> Behaviour FlexibleATM Statemachine otherAmount() rejectTransaction() Specialization • ใช้งานเป็นส่วนหนึ่งของการแสดงรายละเอียดการทำงานของคลาส

  28. พฤติกรรมการทำงานสามารถใช้ร่วมกับโครงสร้างภายในพฤติกรรมการทำงานสามารถใช้ร่วมกับโครงสร้างภายใน เช่น state machine Internal Structure and Behavior Behavioral ports Behavior (of Sensor) Sensor Maintenance SensorInitiation Input pS pM :Monitor[*] Regulator

  29. Note alt ref Symbols for drawing UML 2.0 Client «sut» ATM «testComponent» Client CardInserted User AuthorizeCard pass fail sig1 sd ValidPIN +role Class * Attribute Operation «stereotype» Class Attribute Operation

  30. Tools supporting UML 2.0 • Altova UModel 2005 • ARTiSAN's Real-time Studio • Borland Together 2006 for Eclipse • Computas' Metis with UML 2.0 Template • Embarcadero Describe • IBM Rational Software Architect and Modeler • I-Logix Rhapsody • MetaMatrix MetaBase Modeler • Mia Software (Sodifrance) Model-in-Action • No Magic's MagicDraw UML

  31. Tools supporting UML 2.0 continued…….. • OMONDO EclipseUML Studio • Pathfinder Solutions' PathMATE 5.2 • Open Source StarUML sponsored by Plastic Software • Sparx Systems Enterprise Architect • Sun Microsystems' Java Studio Enterprise • Pattern Weaver Ver. 2.0 Technologic Arts Inc. (Japanese) • Telelogic's TAU Developer and TAU Architect • Gentleware's Poseidon for UML • Visual Paradigm's Smart Development Environment tool series List of tool obtained from: http://www.uml.org/#Links-UML2Tools By OMG

More Related