Chương 8-Công nghệ phần mềm hướng đối tượng

Chia sẻ: Pacific Ocean | Ngày: | Loại File: PDF | Số trang:32

0
118
lượt xem
61
download

Chương 8-Công nghệ phần mềm hướng đối tượng

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'chương 8-công nghệ phần mềm hướng đối tượng', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Chương 8-Công nghệ phần mềm hướng đối tượng

  1. 14/9/2009 Mô hình hư ng đ i tư ng Gi i thi u l Mô hình hư ng đ i tư ng gi i thi u m t quan đi m l p trình (và phân tích/thi t k ) khác h n so v i trư ng phái Chương 8 c đi n (có c u trúc) Công ngh ph n m m hư ng đ i tư ng l B t đ u nhen nhóm vào nh ng năm cu i 60 và đ n đ u 90 tr nên r t ph bi n trong công nghi p ph n m m l Nh ng ngôn ng hư ng đ i tư ng đ u tiên: Smalltalk, Eiffel. Sau đó xu t hi n: Object Pascal, C++, Java… Đ i tư ng và l p Đ i tư ng và l p l Hình thành các phương pháp phân tích/thi t k hư ng l L p (class) đ nh nghĩa m t t p h p các tác v và thu c tính đ i tư ng mà đ c t đ y đ c u trúc và hành vi c a các đ i tư ng. l Mô hình hư ng đ i tư ng quan ni m th gi i bao g m l Đ i tư ng (còn g i là minh d (instance) ) đư c c th hoá các đ i tư ng (object) sinh s ng và tương tác v i nhau t l p l Các ngôn ng l p trình hư ng đ i tư ng l Đ i tư ng bao g m u Khai báo l p: tương t như khai báo m t ki u do ngư i u d li u: mang m t giá tr nh t đ nh dùng đ nh nghĩa u tác v : th c hi n m t công vi c nào đó u Khai báo đ i tư ng: bi n c a ki u l p 1
  2. 14/9/2009 Đóng bao Thu c tính l Đóng bao: vi c g p thu c tính và tác v trong m t đ i l Thu c tiùnh (attribute) là m t vùng có th ch a d tư ng đ ng th i gi i h n cách truy xu t các thu c tính li u (đơn ho c t h p) c a l p. đó (thư ng ph i thông qua các tác v get/set) l D li u mà thu c tính th hi n n m trong m t kho ng giá tr nào đó đư c xác đ nh b i ki u. Circle c1 : Circle l Giá tr c a t t c thu c tính xác đ nh tr ng thái c a đ i # Radius: float Radius = 1.3 tư ng - x: float x = 3.2 - y: float y = 1.7 u Ví d : m t đ i tư ng c a Circle có (Radius, x, y) = + Draw( w: Window) (1.2, 3.4, 5.3) + GetClass( ): String Thu c tính Tác v l Thu c tính có th b che d u ho c truy xu t đư c t bên l Tác v (operation) là m t d ch v có th yêu c u t phía ngoài đ i tư ng đ th c hi n hành vi. u M t s ngôn ng l p trình (và UML): public, protected, l D u hi u nh n d ng c a tác v (signature) xác đ nh các private thông s có th truy n cũng như k t qu tr v . l Có 2 lo i t m v c l Phương th c (method) là ph n hi n th c c a tác v u T m v c l p: thu c tính chung cho t t c các đ i tư ng c am t l p u T m v c đ i tư ng: thu c tính c a t ng đ i tư ng (có th mang giá tr khác nhau) l B c c a thu c tính ch ra s lư ng d li u mà b n thân thu c tính có th n m gi : 0..1, 1, *, 5..8 2
  3. 14/9/2009 Tác v Ví d l p, đ i tư ng java class abstract HTMLObject { l Tác v có th b che d u ho c truy xu t đư c t bên ngoài protected static final int LEFT = 0; u M t s ngôn ng l p trình (và UML): public, protected, protected static final int MIDDLE = 1; protected static final int RIGHT = 2; private private int alignment = LEFT; protected Vector objects = null; l Tác v có th đư c override trong các l p con th a k HTMLObject( ){ // constructor u Tr u tư ng (abstract): không có hi n th c objects = new Vector ( 5 ); } l M t s ngôn ng l p trình cho phép đ nh nghĩa public void setAlignment( int algnmt ) { alignment = algnmt; u Tác v kh i t o (constructor): đư c g i khi đ i tư ng } m i t o ra public int getAlignment( ) { return alignment; u Tác v h y (destructor): đư c g i khi đ i tư ng s p b } public abstract String toHTML( ); // abstract operation hu b } Thông đi p Thông đi p l Thông đi p là m t phép g i tác v đ n m t đ i tư ng c l Đ i v i các ngôn ng l p trình th . u Đ i tư ng đích: bi n đ i tư ng ho c b n thân đ i l Thông đi p bao g m 3 ph n tư ng mu n g i thông đi p (self, this) u Đ i tư ng đích u D u hi u nh n d ng c a tác v mu n g i: tên tác v u D u hi u nh n d ng c a tác v mu n g i trùng nhau ⇒ xem các thông s g i u Danh sách thông s g i u Danh sách thông s g i: như phép g i hàm bình thư ng, chú ý ki u khi truy n và gán k t qu tr v u Ví d : aCircle.SetRadius( 3 ); aCircle.Draw( pWnd ); 3
  4. 14/9/2009 Bao g p Bao g p l Bao g p (aggregation) là quan h gi a hai đ i tư ng l Hai d ng liên k t gi a đ i tư ng ngu n và đ i tư ng l M t đ i tư ng bao l y đ i tư ng kia đích l Quan h này thư ng x y ra trong th gi i th c, ví d u Ch t ch : đ i tư ng đích đư c t o ra và hu đi đ ng u Xe hơi bao g m: bánh xe, đ ng cơ, khung xe... th i v i đ i tư ng ngu n u L ng l o: chu kỳ s ng c a hai đ i tư ng đ c l p nhau u Trang HTML bao g m: text, hình nh, tiêu đ , các liên k t... l Quan h bao g p cũng đư c áp d ng cho l p u Checkbox, ComboBox, Slider… n m trong m t h p l M t s ngôn ng l p trình h tr c 2 d ng liên k t: bi n tho i & con tr Ví d bao g p C++ Th a k và n p ch ng class Geometry { // abstract base class public: l Th a k (inheritance) là quan h gi a hai l p Geometry( ); ~Geometry( ); l L p con th a hư ng t t c thu c tính và tác v c a l p virtual void Draw( Window *pWnd ) = 0; // abstract cha operation protected: l L p con (subclass) là c th hoá c a l p cha int xPos, yPos; (superclass); l p cha là t ng quát hoá c a l p con double xScale, yScale; }; COLORREF color; l Quan h này cũng thư ng đư c ghi nh n trong th gi i class Group : public Geometry { th c, ví d public: Group( ); u H , báo, sói đ u là thú ~Group( ); virtual void Draw( Window *pWnd ); // override u Button, Checkbox và Dialog đ u là Window private: Geometry **ppGeo; // pointer container u Hình tròn, hình ch nh t, hình ellipse đ u là hình v int geoCount; }; 2D. 4
  5. 14/9/2009 Th a k và n p ch ng Th a k và n p ch ng l Hai lo i th a k : đơn th a k và đa th a k l L p con có th override l i m t s tác v c a l p cha. l Đơn th a k : m i l p con có nhi u nh t là m t l p cha l Ph i gi a nguyên d u v t nh n d ng (signature) c a tác l Đa th a k : v b override; ch đư c thay đ i phương th c (ph n hi n u M i l p con có m t ho c nhi u l p cha th c) c a nó l Đa s ngôn ng l p trình hư ng đ i tư ng h tr th a k u N y sinh hai v n đ : đ ng đ gi a tên các thành ph n (member) c a l p cha và th a k l i l M t s ngôn ng đưa ra khái ni m phương th c o (virtual) Ví d th a k và n p ch ng java Tính đa hình class HTMLDocument extends HTMLObject { l M t đ i tư ng mang nhi u b m t khác nhau: c a chính private String title = null; // other attributes... l p đ c t nó và c a các l p cha ⇒ tính đa hình HTMLDocument( ){ } (polymorphism) public void setTitle( String ttl ) { l Tương h p ki u: ki u c a l p con luôn tương h p v i if ( ttl != null ) title = ttl; ki u l p cha } public String getTitle( ) { l M t s ngôn ng l p trình đ nh nghĩa khái ni m liên k t return title; mu n } public String toHTML( ) { // override u Hàm đư c g i đ đáp ng các thông đi p đư c xác StringBuffer html = new StringBuffer; // additional implementation... đ nh trong th i gian th c thi ch không ph i biên d ch return html.toString( ); } u M i đ i tư ng có m t b ng phương th c o } 5
  6. 14/9/2009 Tính đa hình Tính vĩnh c u Ví d : đ i tư ng http Window l Chu kỳ s ng c a đ i tư ng: kho ng th i gian t lúc đư c xem như thu c # hWnd: HWND đ i tư ng đư c t o ra đ n lúc nó b hu đi. ki u c a HttpView, + MoveWindow( ) l Thông thư ng chu kỳ s ng c a đ i tư ng gói g n View và Window + GetClass( ): String trong th i gian chương trình th c thi View http : HttpView + GetClass( ): String + GetDocument( ): Document HttpView + GetClass( ): String CNPM Hư ng đ i tư ng - Gi i Tính vĩnh c u thi u l Chu kỳ s ng c a đ i tư ng có th vư t ra kh i s th c l Khách hàng và nhà phát tri n g p nhau cùng th o lu n thi c a chương trình ⇒ tính vĩnh c u (persistence) v yêu c u c a h th ng ph n m m c n xây d ng u Đ i tư ng đư c c t vào b nh vĩnh c u khi l Mô hình nghi p v đư c thi t l p đ h tr c nhà chương trình k t thúc phát tri n l n khách hàng trong vi c ki m ch ng l i và u Khi c n thi t có th khôi ph c l i đ i tư ng vào b th ng nh t yêu c u ph n m m và vai trò các tác nhân nh chính bên ngoài u Ch lưu tr tr ng thái c a đ i tư ng u Ngôn ng C++ và Java: streaming 6
  7. 14/9/2009 Khái ni m v actor Nh n di n các actor l Actor xác đ nh m t b vai trò mà ngư i ho c v t s l Tr l i m t s câu h i như đóng vai khi tương tác v i h th ng ph n m m u Ai là ngư i s d ng ch c năng chính c a h th ng ? l Actor n m ngoài ph m vi c a h th ng u Ai c n s h tr t h th ng đ th c hi n công vi c u Ch quan tâm các thông đi p mà actor g i hay nh n thư ng nh t c a h ? u Không quan tâm c u trúc bên trong c a actor u Ai ph i th c hi n công vi c b o dư ng, qu n tr và l Phân lo i actor gi cho h th ng ho t đ ng ? u Ch y u / Th y u u H th ng s ki m soát thi t b ph n c ng nào ? u Tích c c / Th đ ng u H th ng đang xây d ng c n tương tác v i nh ng h th ng khác hay không ? u Ai ho c v t th nào quan tâm đ n hay ch u nh hư ng b i k t qu mà h th ng ph n m m t o ra ? Actor trong UML Actor trong UML l Actor đư c bi u di n b ng ký hi u hình ngư i l Actor đư c xem là m t l p (class) có stereotype là Sinh vieân Phoøng Ñaøo Taïo l Gi a các actor có th có quan h t ng quá hoá u Ví d : Sinh viên, gi ng viên và khách đ u là đ c Heä thoáng gi c a h th ng qu n lý thư vi n ñaêng kyù l Ví d : m t h th ng đăng ký môn h c trong trư ng moân hoïc đ ih c Giaûng vieân Phoøng Taøi Vuï 7
  8. 14/9/2009 Actor trong UML Khái ni m v Use-case l Bi u di n m t ch c năng c a h th ng ph n m m l Use-case đư c bi u di n b ng m t chu i các thông đi p trao đ i bên trong h th ng và m t ho c m t s thông Quaûn trò vieân đi p trao đ i v i actor l M t s quy ư c Ngöôøi ñaêng kyù mailbox u Use-case luôn luôn đư c b t đ u b ng thông đi p đ n Heä thoáng göûi nhaän mail t actor u Use-case ph i hoàn t t: chu i thông đi p ph i k t thúc b ng k t qu c th . u L i thư ng g p: chia nh use-case tr thành nh ng ch c năng v n v t Khái ni m v Use-case Tìm ki m Use-case l Đi m m r ng là m t v trí trong use-case mà t i đó l Tr l i m t s câu h i như có th chèn chu i s ki n c a m t use-case khác u Actor yêu c u ch c năng gì c a h th ng ? l Use-case có th ch a đi u ki n r nhánh, x lý l i, u Actor c n ph i đ c, t o, xoá, s a đ i ho c lưu tr ngo i l ... thông tin nào đó c a h th ng không ? l Minh d c a use-case là k ch b n (scenario): miêu t u Actor c n thi t ph i đư c c nh báo v nh ng s c th trình t các s ki n ki n trong h th ng, hay actor c n ph i báo hi u cho h th ng v v n đ nào đó không ? u H th ng có th h tr m t s công vi c thư ng nh t c a actor nào đó hay không ? 8
  9. 14/9/2009 M t s câu h i c n lưu ý Use-case trong UML l M t s câu h i khác c n chú ý l Use-case đư c bi u di n b ng hình ellipse u H th ng c n d li u input/ouput nào ? D li u đó l Gi a use-case và actor thư ng có quan h liên k t đ n t đâu ? l Gi a các use-case cũng có quan h liên k t ho c t ng u Nh ng khó khăn nào liên quan đ n hi n th c c a quát hoá h th ng hi n t i (ch ng h n h th ng qu n lý b ng l Ví d : m t h th ng đăng ký môn h c theo tín ch gi y t nên đư c thay th b ng h th ng qu n lý trên trong trư ng đ i h c máy tính) ? Use-case trong UML Thi t l p các m i quan h l Quan h gi a actor v i actor l Quan h gi a actor v i use-case Sinh vieân l Quan h gi a use-case v i use-case Quaûn lyù MH Ñaêng kyù hoïc l UML đưa ra quan h liên k t (association) Ñaêng kyù daïy Quaûn lyù SV Theâm SV môùi Giaûng vieân 9
  10. 14/9/2009 Quan h liên k t Quan h liên k t trong UML l Quan h liên k t ch ra m t quan h có ý nghĩa gi a l UML bi u di n liên k t như là m t đo n th ng (hai hai bên chi u) ho c mũi tên (m t chi u) u Trong th c t : hành khách v i lái xe, sinh viên v i l Có th áp d ng stereotype: giáo viên, gi ng viên v i môn h c … u l M t s tính ch t liên quan u u Tên c a liên k t u u M t chi u hay 2 chi u u ... u B c: s lư ng th c th tham gia vào liên k t t i m i bên Liên k t trong mô hình nghi p v Quan h giao ti p l Liên k t là quan h duy nh t gi a actor và use-case l Là quan h liên k t có stereotype là l Có th là m t chi u ho c hai chi u u actor kích ho t use-case và nh n k t qu v : liên l Dùng đ liên k t gi a actor v i use-case mà nó kích k t 2 chi u ho t u actor kích ho t use-case, không quan tâm k t qu v : liên k t 1 chi u Ñaêng kyù daïy 1 * Ñaët haøng Giaûng vieân Ngöôøi baùn haøng 10
  11. 14/9/2009 Quan h g p Quan h g p l Là quan h liên k t có stereotype là l T i đi m m r ng, di n ti n c a use-case ngu n t m l Dùng đ liên k t gi a 2 use-case th i ng ng l i đ chuy n sang di n ti n c a use-case l Trong use-case ngu n có m t đi m m r ng mà t i đó đích b t bu c ph i chèn use-case đích vào l Khi k t thúc use-case đích, di n ti n c a use-case ngu n l i ti p t c Tìm kieám Ñaêng nhaäp Quan h m r ng Quan h m r ng l Là quan h liên k t có stereotype là l T i đi m m r ng, n u đư c m r ng thì di n ti n c a l Dùng đ liên k t gi a 2 use-case use-case ngu n t m th i ng ng l i đ chuy n sang l Trong use-case ngu n có m t đi m m r ng mà t i đó di n ti n c a use-case đích có th (ho c không) ph i chèn use-case đích vào l Khi k t thúc use-case đích, di n ti n c a use-case l Chèn hay không ph thu c vào đi u ki n r nhánh ngu n l i ti p t c ho c tương tác t phía actor Tìm kieám Ñaêng kyù ñaët choã 11
  12. 14/9/2009 Xây d ng mô hình use-case Xây d ng mô hình use-case l Các yêu c u c a ph n m m đư c miêu t trong mô l Các quan h có th x y ra trong lư c đ use-case hình use-case u Quan h liên k t gi a actor và use-case: m t chi u l Mô hình use-case bao g m các lư c đ use-case (use- ho c hai chi u, thư ng có stereotype là case diagram) và (có th ) m t s package l M i lư c đ use-case bao g m các actor, use-case và u Quan h m r ng hay g p gi a 2 use-case: quan h các m i quan h liên k t v i stereotype hay l Có th s d ng package đ gom m t s use-case liên u Quan h t ng quát hoá (generalization) gi a các quan t o thành m t b ch c năng con c a h th ng actor: nhi u actor có vai trò c a m t actor tr u tư ng u Quan h t ng quát hoá gi a các use-case: nhi u use- case là trư ng h p c th c a m t use-case tr u tư ng Xây d ng mô hình use-case Xây d ng mô hình use-case fee summary Prints timetable Makes timetable Forwards Student Removes mailbox print request Finance Subcriber timetable command Registers courses Removes students People Administration Views mail Administrator Manages course Replies Lecturer Reads courses Manages lecturers Adds students Login Adds mailbox Manages students Undertakes Login courses 12
  13. 14/9/2009 Xây d ng mô hình use-case Phân tích yêu c u – gi i thi u l Mô hình nghi p v bi u di n các ch c năng ph n m m models imports initializes c n xây d ng dư i d ng các use-case model command import command l Mô hình phân tích s tìm ki m các đ i tư ng “s ng” run command trong ng c nh c a ph n m m export command sets appearance exports l Các đ i tư ng s tương tác v i nhau đ t o nên các save command Viewer ch c năng mô t b i use-case toggles light saves model close command toggles mode exits sets eye Phân tích yêu c u – gi i thi u Nh n di n đ i tư ng/l p l Mô hình phân tích t p trung mô t vai trò và c u trúc l D a vào đ c t c a t ng use-case đ tìm ki m các đ i c a các đ i tư ng tư ng l Chưa quan tâm đ n hành vi c th và nhi m v chi l Các đ i tư ng thư ng xu t hi n trong các danh t hay ti t c a chúng trong ng c nh c a h th ng nhóm danh t l Nguyên t c: mô hình phân tích ph i đ c l p v i o/s, l M t s lưu ý ngôn ng l p trình, công c phát tri n u Không nên dùng đ i tư ng đ bi u di n m t d li u đơn (nên xem là thu c tính c a đ i tư ng khác) u Đ i tư ng/l p ph i th c s c n thi t cho s ho t đ ng c a h th ng u Đ i tư ng/l p ≠ b ng cơ s d li u u Đ i tư ng/l p ≠ actor 13
  14. 14/9/2009 Nh n di n đ i tư ng/l p Nh n di n đ i tư ng/l p l Phân lo i đ i tư ng/l p l Trong UML, l p đư c bi u di n b ng m t hình ch u Đ i tư ng th c th (entity): bi u di n các thông tin nh t g m 3 ph n: tên, các thu c tính và các tác v thi t y u c a h th ng, có th đư c lưu trong cơ s l Có th áp d ng stereotype cho l p: , d li u , ... u Đ i tư ng biên (boundary): th c hi n ch c năng l Đ i tư ng cũng đư c bi u di n b ng hình ch nh t, giao ti p v i actor thông thư ng g m 2 ph n: tên đ i tư ng + tên l p u Đ i tư ng đi u khi n (control): đi u khi n các đ i (đư c g ch chân), giá tr các thu c tính (tr ng thái c a tư ng khác đ i tư ng) Nh n di n đ i tư ng/l p Đ i tư ng/l p th c th l Bi u di n cho các th c th xu t hi n m t cách t nhiên HTMLObject trong h th ng # alignment: int l Thông tin v các đ i tư ng th c th có th ph i đư c + GetAlignment( ): int lưu tr lâu dài (database, file...) + toHTML( ): String l Trong UML, đư c gán stereotype HTMLDocument doc : HTMLDocument l D nh n di n các thu c tính c a chúng alignment = MIDDLE - title: String title = “A document” + GetTitle( ): String + toHTML( ): String 14
  15. 14/9/2009 Đ i tư ng/l p th c th Đ i tư ng/l p biên l Ví d : l Th c hi n ch c năng giao ti p v i actor u Đ i v i h th ng đăng ký môn Message l Thư ng ch a các ph n t ho c đi u khi n giao di n h c h tín ch qua WEB, nh n ngư i dùng (nút nh n, h p danh sách, tuỳ ch n, di n các đ i tư ng th c th như: # subject: String thông tin SV, thông tin GV, menu...) # sent: Date nhóm l p h c, đăng ký nhóm, # content: String l Trong UML, đư c gán stereotype s tay sinh viên … + GetSubject( ): String l Khó nh n bi t các thu c tính và tác v trong mô hình u Đ i v i h th ng mail, nh n + toString( ): String phân tích di n các đ i tư ng th c th như: h p thư, thông đi p mail… u Đ i tư ng đư ng đ ng m c, đ t gãy và b n đ trong chương trình v b m t đ a hình Đ i tư ng/l p biên Đ i tư ng/l p đi u khi n l Ví d : l Có nhi m v đi u khi n các l p khác ho c u Đ i v i h th ng đăng ký MailView l (Đơn gi n hơn) Nh ng l p không ph i là l p th c th môn h c h tín ch qua và l p biên WEB, nh n di n các đ i tư ng biên như: l Trong UML, đư c gán stereotype RegisterForm, l L p biên thư ng có quan h liên k t ho c ph thu c StudentForm… v i các l p khác u Đ i v i h th ng mail, nh n di n các đ i tư ng biên như: MailView, MailCompose... 15
  16. 14/9/2009 Đ i tư ng/l p đi u khi n Nh n di n các thu c tính l Ví d : Command l D a vào đ c t c a t ng use-case, tìm ki m các danh u Đ i tư ng t ho c nhóm danh t liên quan đ n đ i tư ng đang bi u di n m t + Execute( ) xét + Reexecute( ) s l nh thông + Unexecute( ) l Tr l i câu h i: nh ng thành ph n nào c u thành đ i thư ng như c t, # Do( ) tư ng đang xét ? dán, thay đ i l Lưu ý: cùng m t đ i tư ng trong các ng c nh khác thông s nhìn PasteCommand BgCommand nhau chúng ta có th tìm đư c các thu c tính khác trong hi n th nhau đ ho … + Execute( ) + Execute( ) + Reexecute( ) + Reexecute( ) + Unexecute( ) + Unexecute( ) # Do( ) # Do( ) Nh n di n các thu c tính Nh n di n các thu c tính l Nên xác đ nh (tuy nhiên không b t bu c) trong mô l M t s ki u cơ b n c a các ngôn ng l p trình: hình phân tiùch integer, float, double, long, char... u Ki u c a thu c tính: m t s ki u cơ b n l M t s ki u cơ b n khác: string, date, time... u B c c a thu c tính: s ít ho c s nhi u l UML cho phép đ nh nghĩa t t c các ki u d li u trên u Visibility c a thu c tính: m c đ cho phép truy xu t thu c tiùnh t bên ngoài l UML: thu c tính đư c miêu t tư ng minh ho c thông qua quan h v i các l p khác 16
  17. 14/9/2009 Nh n di n các thu c tính Nh n di n các thu c tính l H th ng đăng ký StudentInfo LecturerInfo l H th ng đăng ký môn h c h tín môn h c h tín CourseOfferring Catalog - name: String - name: String ch qua WEB - - code: Long - code: String ch qua WEB - Nh n di n các - dateOfBirth: Date - dateOfBirth: String Nh n di n các - courseName: String - acaYear: Date - addr: String - addr: String - courseCode: String - semester thu c tính cho - acaYear: Date - degree thu c tính cho - offering: int các đ i tư ng: - department - title: String các đ i tư ng: - session - home: String - division - credit: int StudentInfo, - socialAid - health CourseOffering, - prerequisite LecturerInfo - experience: Date Catalog + GetName( ): String + GetCode( ): Long + GetName( ): String + GetCode( ): String Nh n di n các thu c tính B c c a thu c tính l Chương trình Isoquant Fracture l B c c a thu c tính: s ít hay s nhi u bi u di n b m t l N u thu c tính đư c đ c t tư ng minh: dùng d u [] - ID: Integer - ID: Integer đ a hình - Nh n - open: boolean - open: boolean đ ch s nhi u ho c s lư ng chính xác di n các thu c - altitude: double l Trư ng h p thu c tính đư c miêu t thông qua quan tính cho các đ i h v i các l p khác: UML cho phép th hi n b c trên tư ng: Isoquant, quan h (ví d : 1, 0, *, 2..9, 0..n) Fracture * # points Point2D * - x: double # points - y: double 17
  18. 14/9/2009 M c đ truy xu t thu c tính Nh n di n các tác v l UML đ nh nghĩa 3 m c đ truy xu t thu c tính (visibility) l D a vào đ c t c a t ng use-case, tìm ki m các đ ng u public (+): có th truy xu t thu c tính t t t c các v trí t ho c nhóm đ ng t liên quan đ n đ i tư ng đang khác nhau xét u protected (#): b n thân l p đang xét và các l p con c a l Chú ý xem đ i tư ng đư c t o ra và b hu b đi như nó có th truy xu t thu c tính th nào ? Trong th i gian đó nó g i/nh n thông đi p ra u private (-): ch có l p đang xét có th truy xu t thu c sao ? tính l Các đ i tư ng biên có các tác v nh n l nh t actor. l Thông thư ng nên đ t m c đ truy xu t thu c tính là private ho c protected (cho các l p cơ s ), không nên là public. Thu c tính nên đư c truy xu t thông qua tác v get/set Nh n di n các tác v Nh n di n l p cơ s l Xem xét m c đ truy xu t c a tác v tương t như đ i l L p cơ s (base class) đư c nh n di n sau khi đã v i các thu c tính; các tác v thư ng có visibility là + nh n di n các l p c th ho c # l S xu t hi n c a l p cơ s làm cho mô hình phân tiùch có tính dùng l i cao (reusability) và d m r ng l M t s tác v không xu t hi n m t cách t nhiên (scalability) trong mô hình phân tích ⇒ mô hình thi t k s nghiên c u k trách nhi m và hành vi c a t ng đ i tư ng l UML h tr quan h t ng quát hoá (generalization) l L p cơ s tr u tư ng (không th c th hoá t o ra đ i tư ng) có tên in nghiêng 18
  19. 14/9/2009 Nh n di n các thu c tính/tác v chung Quan h t ng quát hóa l Đ i v i các đ i tư ng/l p th c th , tìm các thu c tiùnh chung đ hình thành l p cơ s l UML đ nh nghĩa quan h t ng quát hoá gi a m t l p MapCurve l Ví d t ng quá hơn v i m t l p c u Trong h th ng qu n lý thư vi n qua WEB: các đ i th hơn: l p c th hơn có t t tư ng Book, Magazine có m t s thu c tính chung Isoquant c thu c tính, tác v và quan ⇒ hình thành l p LibraryItem h c a l p kia. u Đ i v i h th ng đăng ký môn h c tín ch qua l Ký hi u: mũi tên có đ u là Fracture WEB: l p PeopleInfo là l p cơ s c a StudentInfo m t tam giác nh và LecturerInfo l L p t ng quát hơn n m v u Chương trình v b m t đ a hình: l p MapCurve là phía mũi tên l p cơ s c a đư ng đ ng m c Isoquant và đ t gãy Fracture Quan h t ng quát hóa Nh n di n các m i quan h PeopleInfo l Ví d : trong h l Trong mô hình phân tích các đ i tư ng/l p có quan h # name: String th ng đăng ký # code: String v i nhau môn h c tín ch # dateOfBirth: Date l M t s quan h mà UML h tr # addr: String qua WEB, l p u T ng quát hoá (generalization) PeopleInfo là t ng u Liên k t (association) quát hoá c a StudentInfo LecturerInfo StudentInfo và u Bao g p (aggregation) - degree LecturerInfo - acaYear: Date - title: String l Các quan h khác đư c áp d ng cho mô hình thi t k - department - home: String - division u Ph thu c (dependency) - socialAid - health - experience: Date u C th hoá (realization) 19
  20. 14/9/2009 Quan h liên k t Quan h liên k t l V ý nghĩa và ký hi u gi ng như quan h liên k t l Ví d : l p StudentInfo students has Registration Registration trong mô hình nghi p v 40..80 liên k t v i - acaYear: Date l Áp d ng cho 2 l p có m i tương quan mang ý nghĩa l p - semester nh t đ nh StudentInfo, LecturerInfo 0..1 reg l Chú ý ghi rõ (n u có th đư c) và lecturer u B c và tên vai trò c a m i l p trong quan h CourseOfferi offering LecturerInfo 0..1 u Tên c a chính quan h liên k t ng CourseOffering Quan h bao g p Quan h bao g p Catalog l UML đ nh nghĩa quan h bao g p là trư ng h p đ c CourseOffering * bi t c a quan h liên k t, khi mà m t đ u n i liên k t - acaYear: Date tr thành đ u n i bao g p (aggregation) - semester l L p đ u n i bao g p s bao hàm l p kia l Ví d : l Ký hi u c a đ u n i bao g p là m t hình thoi tô ho c u Đ i v i h th ng đăng ký môn h c tín ch qua WEB, l p không tô đen Catalog bao g p l p CourseOffering l Có hai d ng bao g p u C a s giao di n bao g p hoàn toàn thanh cu n và menu u Chia x (shared): chia x gi a các bao g p khác nhau Menu Window 1 * ScrollBar u Hoàn toàn (composite): s h u đ y đ 20

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản