Bài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Giới thiệu về hướng đối tượng
Tìm hiểu các nguyên tắc cơ bản của hướng
đối tượng (object orientation – OO)
? Tìm hiểu các khái niệm cơ bản và các thuật
ngữ của hướng đối tượng kết hợp với hệ
thống ký hiệu của UML
? Đánh giá chính xác sức mạnh của OO
? Tìm hiểu một số cơ chế mô hình hoá cơ bản
của UML
Component Name Design Model Implementation Model > Component Name Component Interface Component Interface Nguyeân taéc OO: Ñoùng goùi vaø Tính ñôn theå Subsystem vaø Component OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 37 Caùc khaùi nieäm cô baûn cuûa Höôùng ñoái töôïng ?Object ?Class ?Attribute ?Operation ?Interface (Polymorphism) ?Component ?Package ?Subsystem ?Relationships OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 38 Caùc moái quan heä ?Association (Keát hôïp) ?Aggregation (Thu naïp) ?Composition (Caáu thaønh) ?Dependency (Phuï thuoäc) ?Generalization (Toång quaùt hoùa) ?Realization (Hieän thöïc hoaù) OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 39 Professor UniversityDaïy cho Class Association Teân Association Professor University EmployerEmployee Teân Role Moái quan heä: Association ?Moâ hình hoaù moät lieân keát ngöõ nghóa giöõa caùc class OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 40 Student Schedule Whole Aggregation Part Moái quan heä: Aggregation ?Moät daïng ñaëc bieät cuûa association moâ hình hoaù moái quan heä toaøn theå-boä phaän giöõa moät thöïc theå vaø caùc boä phaän cuûa noù OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 41 Student Schedule Whole Aggregation Part Moái quan heä: Composition ?Moät daïng aggregation coù tính sôû höõu cao vaø cuøng chu kyø soáng ?Caùc boä phaän khoâng theå soáng laâu hôn thöïc theå OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 42 Association: Baûn soá vaø Chieàu ?Baûn soá xaùc ñònh soá ñoái töôïng tham gia vaøo moät moái quan heä ?Soá caùc theå hieän cuûa moät class quan heä vôùi MOÄT theå hieän cuûa moät class khaùc ?Ñöôïc chæ ra ôû moãi ñaàu cuûa quan heä association ?Association vaø aggregation maëc ñònh laø hai chieàu, nhöng ngöôøi ta thöôøng giôùi haïn theo moät chieàu ?Muõi teân ñöôïc theâm vaøo ñeå chæ chieàu cuûa moái quan heä OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 43 Association: Baûn soá 2..4 0..1 1..* 0..* 1 * ?Khoâng xaùc ñònh ?Chæ moät ?Khoâng hoaëc nhieàu ?Moät hoaëc nhieàu ?Khoâng hoaëc moät ?Khoaûng ñöôïc chæ ñònh ?Caùc khoaûng khoâng lieân tuïc 2, 4..6 OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 44 Student Schedule1 0..* Multiplicity Navigation Ví duï: Baûn soá vaø Chieàu OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 45 Client Supplier Package ClientPackage SupplierPackage Client Supplier Class Dependency relationship Dependency relationship Component Moái quan heä: Dependency ?Quan heä giöõa hai phaàn töû trong moâ hình maø thay ñoåi ôû phaàn töû naøy coù theå gaây ra thay ñoåi ôû phaàn töû kia ?Quan heä “söû duïng”, khoâng caáu truùc OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 46 Moái quan heä: Generalization ?Quan heä giöõa caùc class trong ñoù moät lôùp chia seû caáu truùc vaø/hoaëc haønh vi cuûa moät hoaëc nhieàu class khaùc ?Xaùc ñònh moät söï phaân caáp caùc möùc ñoä tröøu töôïng trong ñoù moät subclass keá thöøa töø moät hoaëc nhieàu superclass ?Ñôn keá thöøa ?Ña keá thöøa ?Generalization laø quan heä “laø moät daïng cuûa” OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 47 Account balance name number Withdraw() CreateStatement() Checking Withdraw() Savings GetInterest() Withdraw() Superclass (cha) Subclasses Generalization Relationship Toå tieân Haäu dueä Ví duï: Ñôn keá thöøa ?Moät class keá thöøa töø moät class khaùc OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 48 Airplane Helicopter Wolf Horse FlyingThing Animal Bird Ña keâ thöøa Chæ söû duïng ña keá thöøa khi thaät caàn, vaø luoân phaûi caån thaän ! Ví duï: Ña keá thöøa ?Moät class keá thöøa töø nhieàu class khaùc OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 49 Söï keá thöøa laøm noåi baät caùc ñieåm töông ñoàng giöõa caùc class Caùi gì ñöôïc keá thöøa? ?Moät subclass keá thöøa caùc thuoäc tính, haønh vi vaø caùc moái quan heä töø cha noù ?Moät subclass coù theå: ?Boå sung thuoäc tính, haønh vi vaø caùc moái quan heä ?Ñònh nghóa laïi caùc haønh vi (neân caån thaän!) ?Caùc thuoäc tính, haønh vi vaø caùc moái quan heä chung ñöôïc ñaët ôû möùc cao nhaát coù theå trong caáu truùc phaân caáp OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 50 Truck tonnage GroundVehicle weight licenseNumber Car owner register( ) getTax( ) Person 0..* Trailer 1 Superclass (cha) Subclass generalization size Ví duï: Caùi gì ñöôïc keá thöøa OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 51 ?Moät classifier ñoùng vai troø moät hôïp ñoàng maø moät classifier khaùc ñoàng yù thöïc hieän ?Xuaát hieän giöõa: ?Caùc Interface vaø caùc classifier hieän thöïc chuùng ?Caùc Use case vaø caùc collaboration hieän thöïc chuùng Component Interface Use Case Use-Case Realization Daïng taét Class Interface Subsystem Interface Daïng chính taéc Moái quan heä: Realization OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 52 Giôùi thieäu veà Höôùng Ñoái Töôïng: Caùc chuû ñeà ?Caùc nguyeân taéc cô baûn cuûa OO ?Caùc khaùi nieäm cô baûn cuûa OO ?Söùc maïnh cuûa OO ?Caùc cô cheá moâ hình hoaù cô baûn cuûa UML OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 53 Söùc maïnh cuûa Höôùng ñoái töôïng ?Moät moâ hình chung ?Coù tính deã duøng laïi ?Moâ hình phaûn aùnh chính xaùc theá giôi thöïc ?Moâ taû chính xaùc hôn caùc taäp döõ lieäu vaø caùc xöû lyù ?Ñöôïc phaân raõ döïa treân caùc phaân chia töï nhieân ?Deã hieåu vaø deã baûo trì ?Tính oån ñònh ?Moät thay ñoåi nhoû trong yeâu caàu khoâng gaây ra söï thay ñoåi lôùn trong heä thoáng ñang phaùt trieån OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 54 Ñaët haøng Saûn xuaát Vaän chuyeån baèng Moät ví duï ñôn giaûn: Sales Order System OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 55 Class Diagram cuûa ví duï “baùn haøng” Salesperson Product Sale Corporate Customer Individual Truck Vehicle Train seller buyer item sold shipping mechanism OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 56 Hieäu öùng cuûa söï thay ñoåi yeâu caàu Giaû söû baïn caàn phöông tieän vaän chuyeån môùi ... Salesperson Product Sale Corporate Customer Individual Truck Vehicle Train seller buyer item sold shipping mechanism Vieäc thay ñoåi lieân quan ñeán vieäc theâm 1 subclass môùi Airplane OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 57 Giôùi thieäu veà Höôùng Ñoái Töôïng: Caùc chuû ñeà ?Caùc nguyeân taéc cô baûn cuûa OO ?Caùc khaùi nieäm cô baûn cuûa OO ?Söùc maïnh cuûa OO ?Caùc cô cheá moâ hình hoaù cô baûn cuûa UML OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 58 ?Phaân lôùp vaø môû roäng caùc phaàn töû trong heä thoáng kyù hieäu UML ?Ñònh nghóa moät phaàn töû cuûa moâ hình môùi döïa treân moät phaàn töû khaùc ?Coù theå aùp duïng cho moïi phaàn töû moâ hình ?Ñöôïc bieåu dieãn vôùi teân ñaët trong daáu > hoaëc baèng caùc icon khaùc > MyBoundaryClass MyBoundaryClass Caùc khuoân maãu (Stereotype) OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 59 > > > Processor #1 > DesignClass Processor #1 Ví duï: Stereotype OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 60 There can be up to one MaintainScheduleForm per user session.MaintainScheduleForm Caùc ghi chuù (note) ?Coù theå ñaët ghi chuù cho moïi phaàn töû UML ?Ghi chuù duøng ñeå theâm thoâng tin cho caùc löôïc ñoà ?Noù laø hình chöõ nhaät bò beû goùc ?Ghi chuù coù theå moùc noái vôùi moät phaàn töû baèng moät ñöôøng ñöùt neùt OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 61 PersistentClass {persistence} anObject : ClassA {location=server} Caùc giaù trò ñính (Tagged Values) ?Laø söï môû roäng cuûa caùc thuoäc tính hoaëc cuûa caùc phaàn töû UML ?Laø moät soá thuoäc tính ñöôïc ñònh nghóa saün bôûi UML ?Persistence ?Location (chaúng haïn client, server) ?Laø caùc thuoäc tính coù theå ñöôïc taïo bôûi caùc nhaø moâ hình hoaù UML phuïc vuï cho muïc ñích baát kyø OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 62 Professor Department Member Department Head {subset} 1..* 1 1 1 Caùc raøng buoäc (Constraints) ?Hoã trôï vieäc theâm caùc luaät môùi hoaëc hieäu chænh caùc luaät ñang toàn taïi OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 63 ?Boán nguyeân taéc cô baûn cuûa OO laø gì ? Moâ taû ngaén goïn veà moái nguyeân taéc. ?Ñoái töôïng laø gì ? Class laø gì ? Nhöõng ñieåm khaùc nhau giöõa chuùng ? ?Thuoäc tính (Attribute) laø gì ? ?Haønh vi (Operation) laø gì ? ?Interface laø gì ? Polymorphism laø gì ? ?Component laø gì ? (coøn tieáp) Caâu hoûi oân taäp OOAD Söû duïng UML – Giôùi thieäu veà Höôùng Ñoái Töôïng Döông Anh Ñöùc, 9/2000 64 Caâu hoûi oân taäp (tt) ?Package laø gì? ?Subsystem laø gì ? Noù coù quan heä nhö theá naøo vôùi Component? Noù coù quan heä nhö theá naøo vôùi package? Noù coù quan heä nhö theá naøo vôùi class? ?Teân cuûa 4 quan heä UML cô baûn ? Moâ taû töøng quan heä. ?Moâ taû söùc maïnh cuûa OO. ?Cho bieát teân vaø moâ taùc moät soá cô cheá toång quaùt trong UML. ?Stereotype laø gì? Cho bieát teân cuûa moät soá stereotype duøng chung.
File đính kèm:
- Bài giảng Phân tích và thiết kế hướng đối tượng sử dụng UML - Giới thiệu về hướng đối tượng.pdf