1 / 79

Object Oriented Analysis

Object Oriented Analysis . Outline. S tructural Modeling Class Diagrams and Object Diagrams Association Generalization และ Classification Aggregation และ Composition Models. Structural Modeling. What is structural modeling?. Structural model

marshall
Download Presentation

Object Oriented Analysis

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 Analysis OOA

  2. Outline • Structural Modeling • Class Diagrams and Object Diagrams • Association • Generalization และ Classification • Aggregation และ Composition • Models OOA

  3. Structural Modeling OOA

  4. What is structural modeling? • Structural model • มุมมองของระบบที่เน้นโครงสร้างของวัตถุ รวมทั้งคลาส (Class) ของวัตถุ ความสัมพันธ์ระหว่างคลาส (Relationship) แอททริบิวต์ (Attribute) และ โอเปอเรชัน (operation) OOA

  5. Structural Modeling: Core Elements OOA

  6. Structural Modeling: Core Elements (cont’d) ¹ An extension mechanism useful for specifying structural elements. OOA

  7. Structural Modeling: Core Relationships OOA

  8. Structural Modeling: Core Relationships (cont’d) OOA

  9. Structural Diagrams • ประเภทของ Structural Diagrams • static structural diagrams • class diagram • object diagram • implementation diagrams • component diagram • deployment diagram OOA

  10. Static Structural Diagrams OOA

  11. Static Structural Diagrams • แสดงกราฟของคลาสที่เชื่อมต่อกันด้วย static relationships • ประเภทของ Static Structural Diagrams • class diagram : classifier view • object instance diagram : instance view OOA

  12. Class Diagrams • Class diagrams • แสดงรายละเอียดของ Class และความสัมพันธ์ระหว่าง Class ในมุมมองแบบ logical view • องค์ประกอบของ UML class diagrams ได้แก่ • Class, โครงสร้างของ Class และพฤติกรรมของ Class • ตัวบ่งชี้ Multiplicity และ navigation • ชื่อของ Role • ความสัมพันธ์แบบ association, aggregation, dependency, และ inheritance OOA

  13. Person - TaxIDNo : String - Name : String + Income : double + TaxPaid : Boolean + calcTax() + calcTaxBal() Classes in UML • เขียนได้ 2 รูปแบบ Class name Person Attributes attribute name : type Operations operation name(parameter : type) : result type OOA

  14. UML Syntax for Attributes • visibilityname : type +id : String • visibility: public (+), protected (#), private (-) • การตีความไม่ขึ้นกับ ภาษาที่ใช้เขียนโปรแกรม • name : เป็น string • type : ประเภทของข้อมูล ไม่ขึ้นกับภาษา OOA

  15. UML syntax for operations • visibilityname (parameter list) : return-type-expression +assignAgent (a : Agent) : Boolean • visibility: public (+), protected (#), private (-) • การตีความไม่ขึ้นกับภาษาที่ใช้เขียนโปรแกรม • name : string • parameter list : arguments • return-type-expression : ประเภทของค่าที่ return ไม่ขึ้นกับภาษา OOA

  16. Attributes – A Rule • การกำหนด attributes ควรทำให้ง่าย (simple) • ค่าที่เก็บอยู่ใน attributes ไม่ควรเป็นวัตถุ (Object) • แต่ควรสร้างคลาส (class) ขึ้น และแสดงความสัมพันธ์ระหว่างวัตถุด้วย association • ไม่ควรสร้างความสัมพันธ์ระหว่าง 2 คลาส โดยใช้ “foreign key” attribute • แต่ใช้ association OOA

  17. Object Instance Diagrams • class diagram • แสดงชื่อ (name), โครงสร้าง (structure) และ พฤติกรรม (behaviour) ของประเภทของวัตถุ (object) • object instance diagram • แสดงวัตถุที่สร้างจากคลาส • ความแตกต่างระหว่างทั้ง 2 diagram เปรียบเทียบได้กับความแตกต่างระหว่างโครงสร้างของตารางใน relational database และค่าที่ถูกเก็บอยู่ภายในตาราง OOA

  18. Objects in UML • เขียนได้ 2 รูปแบบ Object name Tim:Person Tim : Person TaxIDNo=“23003” Name=“TimLim” Income=“30000.00” TaxPaid = FALSE Attributes attribute name : type = value Same Operations for all instances of a class calcTax() calcTaxBal() OOA

  19. Sydney:City London:City Name=Sydney Country=Australia Population= 3,536,000 Name=London Country=UK Population= 2,324,320 New York :City Name=New York Country=USA Population= 5,734,012 An Object Instance Diagram OOA

  20. Classes and Objects City Name : String = default Country : String = default Population : integer = default setName (s : String = deault) setPopulation(p : integer = default) <<instanceOf>> <<instanceOf>> <<instanceOf>> New York : City Sydney : City London : City Name = London Name = New York Name = Sydney Country = USA Country = Australia Country = UK Population =2,324,320 Population =5,734,012 Population =3,536,000 OOA

  21. Class Diagrams • Associations • Generalization • Generalization และ Classification • Aggregation OOA

  22. Association association name name direction • ความสัมพันธ์ (Relationship) ระหว่าง instances ของ classes Order Customer dateReceived issued by isPrepaid name * 1 number : String address price : Money creditRating( ) dispatch( ) Customer may make several orders Order comes from one customer OOA

  23. Associations • คลาสมากกว่า 1 คลาส สัมพันธ์กันด้วย “associations” • Association • เทียบได้กับ ER relationship ที่เชื่อมโยงความสัมพันธ์ระหว่างคลาส และแสดง จุดเชื่อมโยง (“links”) ระหว่าง วัตถุที่สร้างขึ้นจากคลาส OOA

  24. Naming associations • การตั้งชื่อ association • หลีกเลี่ยงชื่อที่ไม่สื่อความหมาย • associated_with, has, is_related_to • มักขึ้นต้นด้วยคำกิริยา เช่น • works_for, owns , issued by • มักตั้งชื่อในกรณีที่มอง Association จากซ้ายไปขวา หรือ จากบนลงล่างของ diagram OOA

  25. Person Car Name Address Telephone Manufacturer Model Registration Associations on Class Diagrams Owns OOA

  26. Links • วัตถุแต่ละวัตถุ สามารถเชื่อมโยงกันได้ โดยใช้ “links” • A link • เป็น instance ของ association • หมายเหตุ • an association สามารถดำรงอยู่ได้ ถึงแม้ว่าจะไม่มี instance (links) ของ association ดังกล่าว เช่นเดียวกับ คลาสที่สามารถดำรงอยู่ได้ ถึงแม้ว่าจะไม่มีวัตถุใดๆ ถูกสร้างขึ้นจากคลาสนั้นๆ OOA

  27. Objects & Links You:Person Me:Person Name=Jane Address=22 Holly Pl Telephone=62312198 Name=Dennis Address=41 High St Telephone=62661734 Owns Owns Owns Ours:Car Mine:Car Manufacturer=Mazda Model=626 Registration=YYX391 Manufacturer=Saab Model=95 Registration=YRT833 OOA

  28. Order Customer dateReceived 1 * isPrepaid name address number : String price : Money creditRating( ) dispatch( ) Association Multiplicity • multiplicity • หมายถึง การพิจารณาจำนวน instances (objects) ของคลาสหนึ่ง ที่สามารถเชื่อมโยงกับ instance (object) ของคลาสที่เกี่ยวข้อง OOA

  29. Association Multiplicity 1 1..* Class Class exactly one one or more 0..1 * Class Class many (zero or more) zero or one/at most one 2 ..4 Class as specified OOA

  30. Example of Multiplicities * * Student University 1 Body Heart 2-3 Bicycle Wheel * 1..* 1..* Account Owner * * OOA

  31. Associations, Objects & Classes • สำหรับ association ใดๆระหว่าง 2 วัตถุ สามารถมี link ได้ตั้งแต่ 0 ถึง 1 link • ระหว่าง 2 วัตถุ สามารถได้มีมากว่า 1 association (Multiple Assoications) แต่ association เหล่านั้นจะต้องมีความแตกต่างในด้านความหมายของ association • Multiple associations ระหว่างคลาสกำหนดให้ ตั้งชื่อ associations OOA

  32. Roles • role • หมายถึง ชื่อที่กำหนดให้กับด้านปลายของ association ซึ่งระบุวิธีการในการที่คลาสมีส่วนร่วมใน association • ปกติชื่อของ role มักเกิดขึ้นเป็นคู่ (เช่นทั้งสองด้านของ association จะมีชื่อของ role • บังคับให้กำหนดชื่อของ Role กับ associations แบบreflexive (Reflexive associations) OOA

  33. Person Works for * Company Name Insurance no. Address Name Address employer employee Rolenames Role names • Role ระบุ ชื่อให้กับด้านปลายของ association OOA

  34. Association Names & Roles • association อาจมีชื่อได้เช่นเดียวกับชื่อของ role ที่กำหนดให้กับด้านปลายของความสัมพันธ์ • ถ้ามีการตั้งชื่อ association แล้วมักไม่มีการตั้งชื่อ role อีก • ถ้ามีการตั้งชื่อที่ปลายของ association (ได้แก่ roles) แล้วมักไม่มีการตั้งชื่อ association อีก OOA

  35. Person Name Insurance no. Address Manager Supervises Salesperson Role names • บังคับให้กำหนดชื่อของ Role ที่เกิดขึ้นระหว่าง link ของวัตถุที่สร้างจากคลาสเดียวกัน OOA

  36. A Reflexive Association • association ที่สร้างจากคลาสเดียวกัน Person Parent Name Address Telephone 2 Role name Child * OOA

  37. Ternary Associations • A ternary association • เป็น assocation ที่ประกอบด้วย 3 คลาส • เช่นเดียวกับแนวคิดของ ternary relationship ในER modelling และแนวคิดคล้ายๆ กัน • นำเสนอโดยใช้รูปสี่เหลี่ยขนมเปียกปูน เชื่อมโยงกับคลาสที่เกี่ยวข้อง OOA

  38. Ternary Associations Vendor Customer Product Sale Ternary association OOA

  39. Ternary Association Multiplicity • multiplicity ของ ternary associations • ซับซ้อนกกว่า binary และ unary associations • มักเป็น แบบ “many” สำหรับคลาสที่เกี่ยวข้อง (participating) OOA

  40. N-ary Associations • โดยทั่วไปแล้ว association อาจเชื่อมโยงกับคลาสจำนวนเท่าใดก็ได้ • ถ้าเชื่อมโยงคลาสมากกว่า 2 คลาสขึ้นไป (รวมทั้ง ternary) เรียกว่า “n-ary” associations • แต่ Associations ที่เชื่อมโยงมากกว่า 0 คลาสมักหาได้ยาก OOA

  41. Summary: Basic notation for associations Association name mult1 mult2 Class A Class B role_B role_A • ตัวอย่างเช่น contains * 1 Order Order Line line items OOA

  42. Association Classes • Link จะถูกพิจารณา เช่นเดียวกับการที่วัตถุถูกพิจารณาจาก attribute ของวัตถุนั้น • attribute ควรผูกติดอยู่กับ association โดยใช้ association class มากกว่าที่จะเป็นของวัตถุที่เชื่อมโยง เมื่อใดก็ตามที่whenever it exists or has meaning when the link itself exists (rather than just the objects linked) - มักเกิดขึ้นบ่อยกับ many-to-many associations OOA

  43. Association Classes Student Subject Enrolment ID Name Address Telephone Code Name Credit * * Result Mark Association class OOA

  44. Association Classes • association class สามารถมีส่วนร่วมใน associations อื่นๆ เช่นเดียวกับที่คลาสปกติสามารถมีได้ OOA

  45. Association Classes Customer Product Purchase Name Address Telephone Number Name Price * * 0..1 Guarantee Date Length Conditions Claim * Association class OOA

  46. Qualified Associations • qualified association • หมายถึง association ที่ถูกทำให้ชัดเจนโดย attribute ที่เรียกว่า qualifier • พิจารณา qualified association เช่นเดียวกับแนวคิดของ weak entity type ใน ER OOA

  47. Unqualified Golf_Course Hole Name Location Number Length Par 1 * Qualified Golf_Course Hole 0..1 HoleNumber Name Location Length Par 1 Qualified Associations OOA

  48. Qualified Association Tournament Prize Year Position 0..1 OOA

  49. Qualified association Organization ABC Inc. President Roger Rabbit ABC Inc. Vice President Finances Joe Savemoney ABC Inc. Member of board John Walker ABC Inc. Member of board Susi Sanssouci ABC Inc. Member of board Karl Eichbaum XYZ Inc. President Donald Duck Company Function Person * OOA

  50. Class Diagrams: Hints • class หนึ่งสามารถเป็นส่วนร่วมได้ในหลาย diagrams • Diagrams ควรจะแสดงแง่มุมเฉพาะด้าน • จำนวนคลาสไม่มากเกินไป • จำนวน associations ไม่มากเกินไป • ซ่อน attributes และ operations ที่ไม่จำเป็นต้องแสดง • อาจต้องมีการสร้าง diagram ซ้ำๆ กันหลายรอบ OOA

More Related