Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh
             Khoa Coâng Ngheä Thoâng Tin




                           Moân...
GIÔÙI THIEÄU MOÂN HOÏC



Ñaëc ñieåm
     Maõ soá: 501095              Soá tín chæ: 2                Phaân phoái giôø: 2(2...
GIÔÙI THIEÄU MOÂN HOÏC (t.t)

Taøi lieäu tham khaûo
     [1] Software Engineering - A practitioner’s approach, R.S.
  Pres...
GIÔÙI THIEÄU MOÂN HOÏC (t.t)

         Hình thöùc ñaùnh giaù

                    Thi giöõa kyø: traéc nghieäm khoâng söû ...
ÑEÀ CÖÔNG
Chöông 1: Giôùi thieäu veà Coâng Ngheä Phaàn Meàm
Chöông 2: Phaân tích yeâu caàu theo phöông phaùp coå ñieån
Chö...
Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh
                         Khoa Coâng Ngheä Thoâng Tin




                   ...
NOÄI DUNG
1.1. Moät soá khaùi nieäm
    1.1.1. Khuûng hoaûng phaàn meàm
    1.1.2. Ñònh nghóa
    1.1.3. Chu trình (proces...
KHUÛNG HOAÛNG PHAÀN MEÀM

                                 Phaàn meàm ñöôïc vieát ngay töø khi

                          ...
KHUÛNG HOAÛNG PHAÀN MEÀM (t.t)
Caùc döõ lieäu quan saùt ñöôïc
        Cöù 6 ñeà aùn trieån khai thì coù 2 bò huyû boû
    ...
KHUÛNG HOAÛNG PHAÀN MEÀM (t.t)
Nguyeân nhaân
      Phaùt trieån phaàn meàm gioáng nhö moät ngheä thuaät, chöa ñöôïc xem nh...
KHUÛNG HOAÛNG PHAÀN MEÀM (t.t)

Höôùng tôùi coâng ngheä saûn xuaát phaàn meàm chuyeân nghieäp

                           ...
ÑÒNH NGHÓA

Ñònh nghóa coå ñieån (cuûa Fritz Bauer)

Coâng Ngheä Phaàn Meàm laø söï thieát laäp vaø söû duïng caùc nguyeân...
ÑÒNH NGHÓA (t.t)

Ñònh nghóa khaùc: Coâng Ngheä Phaàn Meàm
      Laø caùc quy trình ñuùng kyû luaät vaø coù ñònh löôïng ñö...
CHU TRÌNH

Chu trình (process) ñònh nghóa moät boä khung caùc tieâu

chuaån phaûi ñöôïc thieát laäp ñeå trieån khai coâng ...
PHÖÔNG PHAÙP

Phöông phaùp (method) chæ ra caùch thöïc hieän nhöõng coâng
vieäc cuï theå (“how to”):
       phaân tích yeâ...
COÂNG CUÏ

                              Coâng cuï (tool) cung caáp caùc hoã trôï töï

                          ñoäng hay...
MOÄT CAÙCH NHÌN TOÅNG QUAN VEÀ CNPM

 Goàm 3 giai ñoaïn lôùn
        Giai ñoaïn ñònh nghóa: Phaân tích heä thoáng (system ...
MOÂ HÌNH CMM

                                                                            Optimized
                      ...
CAÙC MOÂ HÌNH PHAÙT TRIEÅN PHAÀN MEÀM

   Moâ hình tuaàn töï tuyeán tính: coå ñieån

   Moâ hình prototyping: prototype

 ...
MOÂ HÌNH TUAÀN TÖÏ TUYEÁN TÍNH

                           Requirement            Software
System Engineering             ...
MOÂ HÌNH TUAÀN TÖÏ TUYEÁN TÍNH (t.t)

Boäc loä moät soá khuyeát ñieåm
       Baûn chaát cuûa phaùt trieån phaàn meàm laø q...
MOÂ HÌNH PROTOTYPING
                                                         Prototype nhö laø moät cô cheá ñeå
         ...
MOÂ HÌNH XOAÉN OÁC
                                                        R



                                         Ñ...
MOÂ HÌNH TAÊNG DAÀN

Phaân tích yeâu caàu


                                                                              ...
MOÂ HÌNH TAÊNG DAÀN (t.t)
  Caùc böôùc (iteration) ñaàu taäp trung vaøo yeâu caàu cuûa phaàn meàm vaø
thieát laäp moät kie...
MOÂ HÌNH RAD

                                                                              Application         Testing &
...
Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh
                            Khoa Coâng Ngheä Thoâng Tin




                ...
GIÔÙI THIEÄU
                         Khaùch haøng vaø nhaø phaùt trieån gaëp nhau ñeå thaûo

                     luaän v...
NOÄI DUNG
2.1. Caùc yeáu toá caên baûn cuûa moâ hình phaân tích
2.2. Moâ hình chöùc naêng vaø doøng thoâng tin
    2.2.1. ...
CAÙC YEÁU TOÁ CAÊN BAÛN CUÛA MOÂ HÌNH PHAÂN TÍCH
 Ñaëc taû                                               Process Specifica...
MOÂ HÌNH CHÖÙC NAÊNG VAØ DOØNG THOÂNG TIN

   Moâ taû doøng thoâng tin di chuyeån (flow) xuyeân qua caùc heä thoáng

 thie...
MOÂ HÌNH CHÖÙC NAÊNG VAØ DOØNG THOÂNG TIN (t.t)

   Löu ñoà doøng chaûy döõ lieäu DFD (Data Flow Diagram) cung caáp 4

 ky...
LÖÔÏC ÑOÀ DOØNG CHAÛY DÖÕ LIEÄU (DFD)
 4 phaàn töû chính
       Thöïc theå: taïo ra hoaëc tieâu thuï thoâng tin, naèm beân...
LÖÔÏC ÑOÀ DOØNG CHAÛY DÖÕ LIEÄU (t.t)
DFD ñöôïc xaây döïng qua nhieàu möùc khaùc nhau: möùc 0, 1, 2…
DFD möùc sau chi tieá...
MOÂ HÌNH HAØNH VI PHAÀN MEÀM
   Ñaày giaáy vaø saün saøng                             Raûnh
    ————————
       Yeâu caàu ...
KYÕ THUAÄT PHAÂN TÍCH YEÂU CAÀU
  Thieát laäp ñoaïn vaên mieâu taû chöùc naêng (processing narrative) cho

heä thoáng caàn...
XAÂY DÖÏNG DFD
Phaàn meàm SafeHome: Thieát laäp ñoaïn vaên mieâu taû xöû lyù
DFD möùc ngöõ caûnh: nhaän dieän caùc thöïc t...
XAÂY DÖÏNG DFD (t.t)
Baûng ñieàu khieån                                                                                   ...
XAÂY DÖÏNG DFD (t.t)
                                                                              Thoâng tin caûm öùng
  ...
VIEÁT PSPEC

Coù theå vieát PSPEC baèng moät trong 2 caùch
     Ngoân ngöõ töï nhieân (töông töï processing narrative)

  ...
TÖØ ÑIEÅN DÖÕ LIEÄU
    Nhieàu phaàn töû ñöôïc taïo ra trong moâ hình phaân tích: döõ lieäu, chöùc
naêng, ñieàu khieån…
  ...
TÖØ ÑIEÅN DÖÕ LIEÄU (t.t)
Ví duï phaàn töû döõ lieäu soá ñieän thoaïi
        Teân: Soá ñieän thoaïi
        Bí danh: Khoâ...
TOÅNG KEÁT
                     Phaân tích yeâu caàu theo pp coå ñieån bao goàm: moâ
                 hình chöùc naêng vaø...
Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh
                  Khoa Coâng Ngheä Thoâng Tin



                           ...
NOÄI DUNG

3.1. Ñoái töôïng vaø lôùp, ñoùng bao
3.2. Thuoäc tính
3.3. Taùc vuï
3.4. Thoâng ñieäp
3.5. Bao goäp
3.6. Thöøa ...
GIÔÙI THIEÄU
   Moâ hình höôùng ñoái töôïng giôùi thieäu moät quan ñieåm laäp trình (vaø

phaân tích/thieát keá) khaùc haú...
ÑOÁI TÖÔÏNG vaø LÔÙP
  Moâ hình höôùng ñoái töôïng quan nieäm theá giôùi bao goàm caùc ñoái

töôïng (object) sinh soáng va...
ÑOÁI TÖÔÏNG vaø LÔÙP (t.t)

   Lôùp (class) ñònh nghóa moät taäp hôïp caùc taùc vuï vaø thuoäc tính maø

ñaëc taû ñaày ñuû...
ÑOÙNG BAO
             Circle                                                c1 : Circle
    # Radius: float              ...
THUOÄC TÍNH

   Thuoäc tiùnh (attribute) laø moät vuøng coù theå chöùa döõ lieäu (ñôn hoaëc

toå hôïp) cuûa lôùp.

   Döõ ...
THUOÄC TÍNH (t.t)
  Thuoäc tính coù theå bò che daáu hoaëc truy xuaát ñöôïc töø beân ngoaøi

         Moät soá ngoân ngöõ ...
TAÙC VUÏ

  Taùc vuï (operation) laø moät dòch vuï coù theå yeâu caàu töø phía ñoái

töôïng ñeå thöïc hieän haønh vi.

  D...
TAÙC VUÏ (t.t)
Taùc vuï coù theå bò che daáu hoaëc truy xuaát ñöôïc töø beân ngoaøi
     Moät soá ngoân ngöõ laäp trình (v...
VÍ DUÏ veà LÔÙP/ÑOÁI TÖÔÏNG - JAVA
class abstract HTMLObject {
    protected static final int LEFT = 0;
    protected stat...
THOÂNG ÑIEÄP

   Thoâng ñieäp laø moät pheùp goïi taùc vuï ñeán moät ñoái töôïng

cuï theå.

   Thoâng ñieäp bao goàm 3 ph...
THOÂNG ÑIEÄP (t.t)
Ñoái vôùi caùc ngoân ngöõ laäp trình

     Ñoái töôïng ñích: bieán ñoái töôïng hoaëc baûn thaân ñoái tö...
BAO GOÄP

Bao goäp (aggregation) laø quan heä giöõa hai ñoái töôïng

Moät ñoái töôïng bao laáy ñoái töôïng kia

Quan heä n...
BAO GOÄP (t.t)

Hai daïng lieân keát giöõa ñoái töôïng nguoàn vaø ñoái töôïng ñích

     Chaët cheõ: ñoái töôïng ñích ñöôï...
VÍ DUÏ veà BAO GOÄP - C++
class Geometry {         // abstract base class
public:
    Geometry( );
    ~Geometry( );
    v...
THÖØA KEÁ vaø OVERRIDE
  Thöøa keá (inheritance) laø quan heä giöõa hai lôùp
  Lôùp con thöøa höôûng taát caû thuoäc tính ...
THÖØA KEÁ vaø OVERRIDE (t.t)

Hai loaïi thöøa keá: ñôn thöøa keá vaø ña thöøa keá

Ñôn thöøa keá: moãi lôùp con coù nhieàu...
THÖØA KEÁ vaø OVERRIDE (t.t)

  Lôùp con coù theå override laïi moät soá taùc vuï cuûa lôùp cha.

  Phaûi giöõa nguyeân da...
VÍ DUÏ veà THÖØA KEÁ vaø OVERRIDE - JAVA
class HTMLDocument extends HTMLObject {
    private String title = null;
    // o...
TÍNH ÑA HÌNH
  Moät ñoái töôïng mang nhieàu boä maët khaùc nhau: cuûa chính lôùp ñaëc

taû noù vaø cuûa caùc lôùp cha     ...
TÍNH ÑA HÌNH (t.t)
                     Window
          # hWnd: HWND                                                 Ví d...
TÍNH VÓNH CÖÛU


  Chu kyø soáng cuûa ñoái töôïng: khoaûng thôøi gian töø luùc ñoái töôïng

ñöôïc taïo ra ñeán luùc noù bò...
TÍNH VÓNH CÖÛU (t.t)

  Chu kyø soáng cuûa ñoái töôïng coù theå vöôït ra khoûi söï thöïc thi cuûa

chöông trình       tính...
TOÅNG KEÁT
  Moâ hình höôùng ñoái töôïng quan nieäm theá giôùi bao goàm caùc ñoái

töôïng soáng chung vaø töông taùc vôùi ...
Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh
                            Khoa Coâng Ngheä Thoâng Tin




                ...
NOÄI DUNG
4.1. Nhaän dieän caùc vai troø (actor)
    4.1.1. Khaùi nieäm actor
    4.1.2. Nhaän dieän actor
    4.1.3. Acto...
GIÔÙI THIEÄU
                          Khaùch haøng vaø nhaø phaùt trieån gaëp nhau cuøng

                      thaûo lua...
KHAÙI NIEÄM ACTOR
  Actor xaùc ñònh moät boä vai troø maø ngöôøi hoaëc vaät seõ ñoùng vai khi

töông taùc vôùi heä thoáng ...
NHAÄN DIEÄN CAÙC ACTOR
Traû lôøi moät soá caâu hoûi nhö
      Ai laø ngöôøi söû duïng chöùc naêng chính cuûa heä thoáng ?
...
ACTOR trong UML

Actor ñöôïc bieåu dieãn baèng kyù hieäu hình ngöôøi

Actor ñöôïc xem laø moät lôùp (class) coù stereotype...
ACTOR trong UML (t.t)



Sinh vieân                                                                           Phoøng Ñaøo ...
ACTOR trong UML (t.t)



                                                                                       Quaûn trò ...
KHAÙI NIEÄM USE-CASE
  Use-case bieåu dieãn moät chöùc naêng cuûa heä thoáng phaàn meàm
  Use-case ñöôïc bieåu dieãn baèng...
KHAÙI NIEÄM USE-CASE (t.t)

   Ñieåm môû roäng laø moät vò trí trong use-case maø taïi ñoù coù theå cheøn

chuoãi söï kieä...
TÌM KIEÁM USE-CASE
Traû lôøi moät soá caâu hoûi nhö

      Actor yeâu caàu chöùc naêng gì cuûa heä thoáng ?

      Actor c...
TÌM KIEÁM USE-CASE (t.t)

Moät soá caâu hoûi khaùc caàn chuù yù

      Heä thoáng caàn döõ lieäu input/ouput naøo ? Döõ li...
USE-CASE trong UML

  Use-case ñöôïc bieåu dieãn baèng hình ellipse

  Giöõa use-case vaø actor thöôøng coù quan heä lieân...
USE-CASE trong UML (t.t)

                   <<communicate>>


Sinh vieân                                                 ...
THIEÁT LAÄP CAÙC MOÁI QUAN HEÄ

Quan heä giöõa actor vôùi actor

Quan heä giöõa actor vôùi use-case

Quan heä giöõa use-ca...
QUAN HEÄ LIEÂN KEÁT

Quan heä lieân keát chæ ra moät quan heä coù yù nghóa giöõa hai beân

      Trong thöïc teá: haønh kh...
QUAN HEÄ LIEÂN KEÁT trong UML

  UML bieåu dieãn lieân keát nhö laø moät ñoaïn thaúng (hai chieàu) hoaëc

muõi teân (moät ...
LIEÂN KEÁT trong MOÂ HÌNH NGHIEÄP VUÏ

 Lieân keát laø quan heä duy nhaát giöõa actor vaø use-case

 Coù theå laø moät chi...
QUAN HEÄ GIAO TIEÁP

Laø quan heä lieân keát coù stereotype laø <<communicate>>

Duøng ñeå lieân keát giöõa actor vôùi use...
QUAN HEÄ GOÄP

  Laø quan heä lieân keát coù stereotype laø <<include>>

  Duøng ñeå lieân keát giöõa 2 use-case

  Trong ...
QUAN HEÄ GOÄP (t.t)
   Taïi ñieåm môû roäng, dieãn tieán cuûa use-case nguoàn taïm thôøi ngöøng

laïi ñeå chuyeån sang die...
QUAN HEÄ MÔÛ ROÄNG

  Laø quan heä lieân keát coù stereotype laø <<extend>>

  Duøng ñeå lieân keát giöõa 2 use-case

  Tr...
QUAN HEÄ MÔÛ ROÄNG (t.t)
   Taïi ñieåm môû roäng, neáu ñöôïc môû roäng thì dieãn tieán cuûa use-case

nguoàn taïm thôøi ng...
XAÂY DÖÏNG MOÂ HÌNH USE-CASE
  Caùc yeâu caàu cuûa phaàn meàm ñöôïc mieâu taû trong moâ hình use-case

  Moâ hình use-case...
XAÂY DÖÏNG MOÂ HÌNH USE-CASE (t.t)
Caùc quan heä coù theå xaûy ra trong löôïc ñoà use-case
     Quan heä lieân keát giöõa ...
XAÂY DÖÏNG MOÂ HÌNH USE-CASE (t.t)
                                                                          fee summary
 ...
XAÂY DÖÏNG MOÂ HÌNH USE-CASE (t.t)
               <<communicate>>


                                                     F...
XAÂY DÖÏNG MOÂ HÌNH USE-CASE (t.t)
                          <<include>>
                                                 ...
TOÅNG KEÁT
                                Moâ hình nghieäp vuï theå hieän caùc chöùc naêng

                            c...
Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh
                           Khoa Coâng Ngheä Thoâng Tin




                 ...
NOÄI DUNG
5.1. Nhaän dieän caùc ñoái töôïng/lôùp
    5.1.1. Ñoái töôïng/lôùp thöïc theå
    5.1.2. Ñoái töôïng/lôùp bieân
...
NOÄI DUNG (t.t)
5.4. Nhaän dieän lôùp cô sôû
    5.4.1. Nhaän dieän caùc thuoäc tính/taùc vuï chung
    5.4.2. Quan heä to...
GIÔÙI THIEÄU

                             Moâ hình nghieäp vuï bieåu dieãn caùc chöùc naêng
ñoáii töôïng/lôùp
ñoá töôïng/...
GIÔÙI THIEÄU (t.t)

  Moâ hình phaân tích taäp trung moâ taû vai troø vaø caáu truùc cuûa caùc ñoái

töôïng

  Chöa quan t...
NHAÄN DIEÄN ÑOÁI TÖÔÏNG/LÔÙP

Döïa vaøo ñaëc taû cuûa töøng use-case ñeå tìm kieám caùc ñoái töôïng

Caùc ñoái töôïng thöô...
NHAÄN DIEÄN ÑOÁI TÖÔÏNG/LÔÙP (t.t)

                   Phaân loaïi ñoái töôïng/lôùp

                           Ñoái töôïn...
NHAÄN DIEÄN ÑOÁI TÖÔÏNG/LÔÙP (t.t)
  Trong UML, lôùp ñöôïc bieåu dieãn baèng moät hình chöõ nhaät goàm 3

phaàn: teân, caù...
NHAÄN DIEÄN ÑOÁI TÖÔÏNG/LÔÙP (t.t)

                                          HTMLObject
                               # ...
ÑOÁI TÖÔÏNG/LÔÙP THÖÏC THEÅ

  Bieåu dieãn cho caùc thöïc theå xuaát hieän moät caùch töï nhieân trong heä

thoáng

  Thoâ...
ÑOÁI TÖÔÏNG/LÔÙP THÖÏC THEÅ (t.t)
                                             Ví duï:
           Message                 ...
ÑOÁI TÖÔÏNG/LÔÙP BIEÂN

  Thöïc hieän chöùc naêng giao tieáp vôùi actor

  Thöôøng chöùa caùc phaàn töû hoaëc ñieàu khieån...
ÑOÁI TÖÔÏNG/LÔÙP BIEÂN (t.t)

                                          Ví duï:
      MailView
                           ...
ÑOÁI TÖÔÏNG/LÔÙP ÑIEÀU KHIEÅN

  Coù nhieäm vuï ñieàu khieån caùc lôùp khaùc hoaëc

  (Ñôn giaûn hôn) Nhöõng lôùp khoâng p...
ÑOÁI TÖÔÏNG/LÔÙP ÑIEÀU KHIEÅN (t.t)
                Command
               <<control>>                                    ...
NHAÄN DIEÄN CAÙC THUOÄC TÍNH

  Döïa vaøo ñaëc taû cuûa töøng use-case, tìm kieám caùc danh töø hoaëc

nhoùm danh töø lieâ...
NHAÄN DIEÄN CAÙC THUOÄC TÍNH (t.t)

   Neân xaùc ñònh (tuy nhieân khoâng baét buoäc) trong moâ hình phaân

tiùch
         ...
KIEÅU DÖÕ LIEÄU CUÛA THUOÄC TÍNH

  Moät soá kieåu cô baûn cuûa caùc ngoân ngöõ laäp trình: integer, float,

double, long,...
BAÄC CUÛA THUOÄC TÍNH

  Baäc cuûa thuoäc tính: soá ít hay soá nhieàu

  Neáu thuoäc tính ñöôïc ñaëc taû töôøng minh: duøn...
MÖÙC ÑOÄ TRUY XUAÁT THUOÄC TÍNH

  UML ñònh nghóa 3 möùc ñoä truy xuaát thuoäc tính (visibility)
        public (+): coù t...
NHAÄN DIEÄN CAÙC TAÙC VUÏ

  Döïa vaøo ñaëc taû cuûa töøng use-case, tìm kieám caùc ñoäng töø hoaëc

nhoùm ñoäng töø lieân...
NHAÄN DIEÄN CAÙC TAÙC VUÏ (t.t)

  Xem xeùt möùc ñoä truy xuaát cuûa taùc vuï töông töï nhö ñoái vôùi caùc

thuoäc tính; c...
VÍ DUÏ veà NHAÄN DIEÄN THUOÄC TÍNH

    StudentInfo
    <<entity>>
                                          LecturerInfo
...
VÍ DUÏ veà NHAÄN DIEÄN THUOÄC TÍNH (t.t)

   CourseOfferring                           Catalog                      Heä th...
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Cong Nghe Phan Mem   Dhbk
Upcoming SlideShare
Loading in …5
×

Cong Nghe Phan Mem Dhbk

915 views

Published on

kỹ nghệ phần mềm

Published in: Education, Sports
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
915
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
32
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cong Nghe Phan Mem Dhbk

  1. 1. Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh Khoa Coâng Ngheä Thoâng Tin Moân hoïc COÂNG NGHEÄ PHAÀN MEÀM - Trang 1 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm
  2. 2. GIÔÙI THIEÄU MOÂN HOÏC Ñaëc ñieåm Maõ soá: 501095 Soá tín chæ: 2 Phaân phoái giôø: 2(2.1.4) Moân hoïc tröôùc: Toaùn Tin Hoïc (501302) Toùm taét noäi dung Caùc khaùi nieäm cô baûn cuûa Coâng Ngheä Phaàn Meàm: caùc moâ hình phaùt trieån phaàn meàm, phaân tích yeâu caàu, thieát keá, kieåm tra… 2 tröôøng phaùi chính: coù caáu truùc (coå ñieån) & höôùng ñoái töôïng Chuaån UML vaø vieäc aùp duïng noù trong phöông phaùp höôùng ñoái töôïng Thöïc haønh taïi phoøng Lab: laøm quen vôùi coâng cuï Rational Rose - Trang 2 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm
  3. 3. GIÔÙI THIEÄU MOÂN HOÏC (t.t) Taøi lieäu tham khaûo [1] Software Engineering - A practitioner’s approach, R.S. Pressman, McGraw-Hill, 1997 [2] OMG Unified Modeling Language Specification, version 1.3, Object Management Group (www.omg.org), 1999 [3]UML Toolkit, Hans-Erik Eriksson & Magnus Penker, 1998 [4] Object-Oriented Software Engineering, A Use-Case Driven Approach, I. Jacobson, ACM Press/Addison-Wesley, 1992 [5] Object-Oriented Analysis and Design with Applications, G. Booch, The Benjamin Cummings Publishing Company, 1994 - Trang 3 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm
  4. 4. GIÔÙI THIEÄU MOÂN HOÏC (t.t) Hình thöùc ñaùnh giaù Thi giöõa kyø: traéc nghieäm khoâng söû duïng taøi lieäu, chieám 20 % keát quaû cuoái cuøng Thi cuoái kyø: traéc nghieäm khoâng söû duïng taøi lieäu, chieám 80 % keát quaû cuoái cuøng - Trang 4 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm
  5. 5. ÑEÀ CÖÔNG Chöông 1: Giôùi thieäu veà Coâng Ngheä Phaàn Meàm Chöông 2: Phaân tích yeâu caàu theo phöông phaùp coå ñieån Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng Chöông 6: Cô sôû cuûa thieát keá phaàn meàm vaø phöông phaùp thieát keá coå ñieån Chöông 7: Thieát keá höôùng ñoái töôïng Chöông 8: Hieän thöïc vaø trieån khai heä thoáng Chöông 9: Kyõ thuaät kieåm tra phaàn meàm Chöông 10: Chieán thuaät kieåm tra phaàn meàm - Trang 5 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm
  6. 6. Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh Khoa Coâng Ngheä Thoâng Tin Chöông 1 GIÔÙI THIEÄU VEÀ COÂNG NGHEÄ PHAÀN MEÀM ✦ Moät soá khaùi nieäm ✦ Caùc moâ hình phaùt trieån phaàn meàm - Trang 6 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  7. 7. NOÄI DUNG 1.1. Moät soá khaùi nieäm 1.1.1. Khuûng hoaûng phaàn meàm 1.1.2. Ñònh nghóa 1.1.3. Chu trình (process), phöông phaùp (method), coâng cuï (tool) 1.1.4. Moät caùch nhìn toång quan veà coâng ngheä phaàn meàm 1.1.5. Moâ hình CMM 1.2. Caùc moâ hình phaùt trieån phaàn meàm 1.2.1. Moâ hình tuaàn töï tuyeán tính 1.2.2. Moâ hình prototype 1.2.3. Moâ hình xoaén oác 1.2.4. Moâ hình taêng daàn 1.2.3. Moâ hình RAD - Trang 7 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  8. 8. KHUÛNG HOAÛNG PHAÀN MEÀM Phaàn meàm ñöôïc vieát ngay töø khi xuaát hieän caùc heä maùy tính vaø ngoân ngöõ laäïp trình ñaàu tieân Treân thöïc teá saûn xuaát phaàn meàm khoâng ñaùp öùng kòp yeâu caàu cuûa ngöôøi söû duïng - Trang 8 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  9. 9. KHUÛNG HOAÛNG PHAÀN MEÀM (t.t) Caùc döõ lieäu quan saùt ñöôïc Cöù 6 ñeà aùn trieån khai thì coù 2 bò huyû boû Trung bình thôøi gian thöïc hieän thöïc teá bò keùo daøi 50 % (caù bieät 200- 300%) Caùc ñeà aùn lôùn deã thaát baïi 3/4 caùc heä thoáng lôùn coù loãi khi thöïc thi Quaù trình phaân tích yeâu caàu (5 % coâng söùc): ñeå laïi 55 % loãi, coù 18 % phaùt hieän ñöôïc Quaù trình thieát keá (25 % coâng söùc): ñeå laïi 30 % loãi, coù 10 % phaùt hieän ñöôïc Quaù trình maõ hoaù, kieåm tra vaø baûo trì: ñeå laïi 15 % loãi, coù 72 % phaùt hieän ñöôïc - Trang 9 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  10. 10. KHUÛNG HOAÛNG PHAÀN MEÀM (t.t) Nguyeân nhaân Phaùt trieån phaàn meàm gioáng nhö moät ngheä thuaät, chöa ñöôïc xem nhö moät ngaønh khoa hoïc Quaù trình phaùt trieån phaàn meàm chöa ñöôïc thoáng nhaát Phaûi vieát laïi s/w moãi khi coù söï thay ñoåi veà ngoân ngöõ, h/w hoaëc o/s Chöa ñaït ñöôïc 1 chuaån cho vieäc ño löôøng hieäu suaát vaø saûn phaåm Ñoä phöùc taïp cuûa phaàn meàm quaù cao ñoái vôùi 1 “kieán truùc sö” Kyõ thuaät ñaëc taû ñeå laïi söï nhaäp nhaèng trong caùc yeâu caàu phaàn meàm Laøm vieäc nhoùm khoâng ñuùng kyû luaät gaây ra caùc loãi - Trang 10 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  11. 11. KHUÛNG HOAÛNG PHAÀN MEÀM (t.t) Höôùng tôùi coâng ngheä saûn xuaát phaàn meàm chuyeân nghieäp science production professional engineering commercialization craft - Trang 11 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  12. 12. ÑÒNH NGHÓA Ñònh nghóa coå ñieån (cuûa Fritz Bauer) Coâng Ngheä Phaàn Meàm laø söï thieát laäp vaø söû duïng caùc nguyeân taéc khoa hoïc nhaèm muïc ñích taïo ra caùc phaàn meàm moät caùch kinh teá maø caùc phaàn meàm ñoù hoaït ñoäng hieäu quaû vaø tin caäy treân caùc maùy tính. - Trang 12 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  13. 13. ÑÒNH NGHÓA (t.t) Ñònh nghóa khaùc: Coâng Ngheä Phaàn Meàm Laø caùc quy trình ñuùng kyû luaät vaø coù ñònh löôïng ñöôïc aùp duïng cho söï phaùt trieån, thöïc thi vaø baûo trì caùc heä thoáng thieân veà phaàn meàm Taäp trung vaøo quy trình, söï ño löôøng, saûn phaåm, tính ñuùng thôøi gian vaø chaát löôïng - Trang 13 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  14. 14. CHU TRÌNH Chu trình (process) ñònh nghóa moät boä khung caùc tieâu chuaån phaûi ñöôïc thieát laäp ñeå trieån khai coâng ngheä phaàn meàm. - Trang 14 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  15. 15. PHÖÔNG PHAÙP Phöông phaùp (method) chæ ra caùch thöïc hieän nhöõng coâng vieäc cuï theå (“how to”): phaân tích yeâu caàu thieát keá xaây döïng chöông trình kieåm tra söûa loãi ... - Trang 15 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  16. 16. COÂNG CUÏ Coâng cuï (tool) cung caáp caùc hoã trôï töï ñoäng hay baùn töï ñoäng ñoái vôùi chu trình vaø phöông phaùp Caùc coâng cuï ñöôïc tích hôïp taïo thaønh CASE (Computer Aided Software Engineering) - Trang 16 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  17. 17. MOÄT CAÙCH NHÌN TOÅNG QUAN VEÀ CNPM Goàm 3 giai ñoaïn lôùn Giai ñoaïn ñònh nghóa: Phaân tích heä thoáng (system engineering), Hoaïch ñònh ñeà taøi (software project management), Phaân tích yeâu caàu (requirement analysis). Giai ñoaïn phaùt trieån: Thieát keá phaàn meàm (software design), sinh maõ (code generation), kieåm tra phaàn meàm (software testing) Giai ñoaïn baûo trì: Söûa loãi (correction), thay ñoåi moâi tröôøng thöïc thi (adaptation), taêng cöôøng (enhancement) - Trang 17 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  18. 18. MOÂ HÌNH CMM Optimized (Level 5) Risk Managed (Level 4) Defined (Level 3) Repeatable (Level 2) Initial Competitiveness (Level 1) - Trang 18 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  19. 19. CAÙC MOÂ HÌNH PHAÙT TRIEÅN PHAÀN MEÀM Moâ hình tuaàn töï tuyeán tính: coå ñieån Moâ hình prototyping: prototype Moâ hình xoaén oác: ñaùnh giaù ruûi ro Moâ hình taêng daàn: caùc böôùc laëp Moâ hình RAD: thôøi gian phaùt trieån ngaén - Trang 19 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  20. 20. MOÂ HÌNH TUAÀN TÖÏ TUYEÁN TÍNH Requirement Software System Engineering Coding Test Maintenance Analysis Design Moâ hình phaùt trieån phaàn meàm ñaàu tieân Caùc coâng vieäc tieáp noái nhau moät caùch tuaàn töï Ñaët neàn moùng cho caùc phöông phaùp phaân tích, thieát keá, kieåm tra… - Trang 20 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  21. 21. MOÂ HÌNH TUAÀN TÖÏ TUYEÁN TÍNH (t.t) Boäc loä moät soá khuyeát ñieåm Baûn chaát cuûa phaùt trieån phaàn meàm laø quaù trình laëp ñi laëp laïi chöù khoâng phaûi tuaàn töï Baét buoäc khaùch haøng ñaëc taû taát caû yeâu caàu moät caùch chính xaùc vaø ñaày ñuû ngay töø ban ñaàu Khaùch haøng thöôøng phaûi chôø ñôïi raát laâu ñeå thaáy ñöôïc phieân baûn ñaàu tieân cuûa saûn phaåm Toàn taïi “delay” trong nhoùm laøm vieäc - Trang 21 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  22. 22. MOÂ HÌNH PROTOTYPING Prototype nhö laø moät cô cheá ñeå Xaây döïng prototype nhaän dieän chính xaùc yeâu caàu cuûa khaùch haøng Thaûo luaän vôùi Prototype coù theå bò “throw-away” khaùch haøng Moät soá khuyeát ñieåm Khaùch haøng hoái thuùc nhaø phaùt trieån hoaøn thaønh saûn phaåm Ñaùnh giaù cuûa moät khi thaáy ñöôïc caùc prototype khaùch haøng ñaàu tieân Caùc prototype thöôøng khoâng hoaït ñoäng hieäu quaû - Trang 22 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  23. 23. MOÂ HÌNH XOAÉN OÁC R Ñònh nghóa Ñaùnh giaù quy trình ruûi ro R Hoaïch ñònh Phaùt trieån saûn phaåm ñeà taøi ôû laàn laëp tieáp theo R Ñöôïc thöïc hieän theo moät chuoãi laëp kieåu xoaén oác, moãi laàn laëp caûi thieän saûn phaåm Coù phöông phaùp ñaùnh giaù ruûi ro Coù theå aùp duïng prototype Moãi laàn laëp ñöôïc caûi thieän cho thích nghi vôùi baûn chaát cuûa ñeà aùn - Trang 23 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  24. 24. MOÂ HÌNH TAÊNG DAÀN Phaân tích yeâu caàu Thieát keá kieán truùc 1 Phaùt trieån module 2 Tích hôïp 3 4 Kieåm tra heä thoáng - Trang 24 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  25. 25. MOÂ HÌNH TAÊNG DAÀN (t.t) Caùc böôùc (iteration) ñaàu taäp trung vaøo yeâu caàu cuûa phaàn meàm vaø thieát laäp moät kieán truùc oån ñònh cho heä thoáng (ít phaûi thay ñoåi sau naøy) Caùc böôùc sau taäp trung vaøo vieäc xaây döïng saûn phaåm ñeå cuoái cuøng chuyeån sang giai ñoaïn kieåm tra heä thoáng Moãi böôùc hieän thöïc moät phaàn cuï theå trong toaøn boä yeâu caàu cuûa heä thoáng Quaù trình xaây döïng vaø chieán thuaät kieåm tra theo kieåu taêng daàn vaø döïa treân phöông phaùp kieåm tra hoài quy. - Trang 25 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  26. 26. MOÂ HÌNH RAD Application Testing & Business modeling Data modeling Process modeling generation Turnover Rapid Application Development laø moâ hình tuaàn töï tuyeán tính coù thôøi gian phaùt trieån raát ngaén Söû duïng caùc thaønh phaàn coù saün caøng nhieàu caøng toát Söû duïng coâng cuï laäp trình ôû daïng töï ñoäng sinh maõ chöù khoâng phaûi caùc ngoân ngöõ truyeàn thoáng - Trang 26 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 1: Giôùi thieäu veà CNPM
  27. 27. Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh Khoa Coâng Ngheä Thoâng Tin Chöông 2 PHAÂN TÍCH YEÂU CAÀU THEO PHÖÔNG PHAÙP COÅ ÑIEÅN ✦ Moâ hình phaân tích ✦ DFD & STD ✦ Töø ñieån döõ lieäu - Trang 27 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  28. 28. GIÔÙI THIEÄU Khaùch haøng vaø nhaø phaùt trieån gaëp nhau ñeå thaûo luaän veà yeâu caàu cuûa heä thoáng phaàn meàm caàn xaây döïng Nhaø phaùt trieån kieåm chöùng laïi (validate) yeâu caàu vaø bieåu dieãn noù baèng moâ hình phaân tích Moâ hình phaân tích (WHAT?): caùc chöùc naêng, döõ lieäu input & output, caùc traïng thaùi khaùc nhau... - Trang 28 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  29. 29. NOÄI DUNG 2.1. Caùc yeáu toá caên baûn cuûa moâ hình phaân tích 2.2. Moâ hình chöùc naêng vaø doøng thoâng tin 2.2.1. Löôïc ñoà doøng chaûy döõ lieäu vôùi caùc kyù hieäu cô baûn 2.2.2. Môû roäng cuûa Ward vaø Mellor 2.2.3. Môû roäng cuûa Hatley & Pirbhai 2.3. Moâ hình haønh vi phaàn meàm 2.4. Kyõ thuaät phaân tích yeâu caàu 2.4.1. Xaây döïng DFD 2.4.2. Vieát PSPEC 2.5. Töø ñieån döõ lieäu - Trang 29 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  30. 30. CAÙC YEÁU TOÁ CAÊN BAÛN CUÛA MOÂ HÌNH PHAÂN TÍCH Ñaëc taû Process Specification (PSPEC) ñoái töôïng döõ lieäu Moâ hình chöùc naêng vaø doøng thoâng tin: DFD, PSPEC Löu ñoà Löu ñoà quan heä doøng chaûy thöïc theå Töø ñieån döõ lieäu Moâ hình döõ lieäu: ERD, döõ lieäu ñaëc taû ñoái töôïng döõ lieäu Löu ñoà dòch chuyeån traïng thaùi Moâ hình haønh vi: STD, Control Specification (CSPEC) CSPEC - Trang 30 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  31. 31. MOÂ HÌNH CHÖÙC NAÊNG VAØ DOØNG THOÂNG TIN Moâ taû doøng thoâng tin di chuyeån (flow) xuyeân qua caùc heä thoáng thieân veà phaàn meàm. Thoâng tin input cuõng nhö output coù theå ôû nhieàu daïng khaùc nhau: file, baøn phím, treân maïng, töø thieát bò, keát xuaát ra maøn hình vaø maùy in… Caùc giaûi thuaät xöû lyù cuõng raát ña daïng - Trang 31 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  32. 32. MOÂ HÌNH CHÖÙC NAÊNG VAØ DOØNG THOÂNG TIN (t.t) Löu ñoà doøng chaûy döõ lieäu DFD (Data Flow Diagram) cung caáp 4 kyù hieäu cô baûn ñeå moâ hình söï di chuyeån cuûa doøng thoâng tin DFD ñöôïc môû roäng ñeå moâ hình caùc heä thoáng thôøi gian thöïc Môû roäng cuûa Ward vaø Mellor (töï ñoïc: [1], trang 312) Môû roäng cuûa Hatley & Pirbhai (töï ñoïc: [1], trang 315) - Trang 32 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  33. 33. LÖÔÏC ÑOÀ DOØNG CHAÛY DÖÕ LIEÄU (DFD) 4 phaàn töû chính Thöïc theå: taïo ra hoaëc tieâu thuï thoâng tin, naèm beân ngoaøi bieân giôùi cuûa phaïm vi thoâng tin heä thoáng Chöùc naêng xöû lyù: thöïc hieän chöùc naêng naøo ñoù, tieâu thuï vaø taïo ra thoâng tin, naèm beân trong phaïm vi thoâng tin heä thoáng Thoâng tin hay döõ lieäu Kho döõ lieäu: löu tröõ döõ lieäu maø ñöôïc söû duïng bôûi nhieàu chöùc naêng xöû lyù Chöùc naêng Kho döõ lieäu Thöïc theå xöû lyù Döõ lieäu - Trang 33 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  34. 34. LÖÔÏC ÑOÀ DOØNG CHAÛY DÖÕ LIEÄU (t.t) DFD ñöôïc xaây döïng qua nhieàu möùc khaùc nhau: möùc 0, 1, 2… DFD möùc sau chi tieát hôn möùc tröôùc Process Specification (PSPEC) boå sung cho DFD Tính lieân tuïc cuûa doøng döõ lieäu - Trang 34 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  35. 35. MOÂ HÌNH HAØNH VI PHAÀN MEÀM Ñaày giaáy vaø saün saøng Raûnh ———————— Yeâu caàu copy ———————— Yeâu caàu ñoïc leänh Löôïc ñoà dòch chuyeån Ñoïc leänh Copy xong traïng thaùi (STD) theå hieän ———————— Ñaày giaáy Yeâu caàu ñoïc leänh ———————— Caùc traïng thaùi khaùc Yeâu caàu ñoïc leänh nhau cuûa heä thoáng Thöïc hieän Naïp giaáy copy Heát giaáy Söï dòch chuyeån giöõa ———————— Yeâu caàu naïp giaáy caùc traïng thaùi ñoù Ví duï: mieâu taû hoaït Keït giaáy Heát keït giaáy ———————— ———————— ñoäng cuûa maùy photocopy Yeâu caàu xöû lyù loãi Yeâu caàu ñoïc leänh Xöû lyù loãi - Trang 35 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  36. 36. KYÕ THUAÄT PHAÂN TÍCH YEÂU CAÀU Thieát laäp ñoaïn vaên mieâu taû chöùc naêng (processing narrative) cho heä thoáng caàn xaây döïng Xaây döïng DFD ôû caùc möùc khaùc nhau Thieát laäp sô ñoà ngöõ caûnh (DFD möùc 0) Phaân hoaïch DFD vaøo caùc möùc cao hôn Söû duïng phöông phaùp duyeät vaên phaïm. Luoân luoân tuaân theo tính lieân tuïc cuûa doøng döõ lieäu Vieát PSPEC cho caùc chöùc naêng cuûa DFD möùc cao nhaát - Trang 36 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  37. 37. XAÂY DÖÏNG DFD Phaàn meàm SafeHome: Thieát laäp ñoaïn vaên mieâu taû xöû lyù DFD möùc ngöõ caûnh: nhaän dieän caùc thöïc theå vaø döõ lieäu input, output Baûng ñieàu khieån Leänh vaø döõ lieäu Thoâng tin hieån thò Maøn hình SafeHome Kieåu baùo ñoäng Chuoâng Traïng thaùi caûm öùng Taàn soá cuûa soá ñieän thoaïi Boä caûm öùng Ñöôøng ñieän thoaïi - Trang 37 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  38. 38. XAÂY DÖÏNG DFD (t.t) Baûng ñieàu khieån DFD möùc 1: Yeâu caàu Caáu hình Leänh vaø döõ lieäu caáu hìnhh heä thoáng hình thaønh moät soá chöùc Töông taùc vôùi user Thoâng soá caáu hình naêng chính Start/stop Maøn hình Caám/ Maät maõ Cho pheùp Thoâng baùo a/d Thoâng tin hieån thò Xöû lyù Xaùc nhaän maät maõ Hieån thò maät maõ Thoâng tin caûm öùng Theo doõi Kieåu baùo ñoäng Chuoâng Traïng thaùi caûm öùng caûm öùng Taàn soá cuûa soá ñieän thoaïi Boä caûm öùng Ñöôøng ñieän thoaïi - Trang 38 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  39. 39. XAÂY DÖÏNG DFD (t.t) Thoâng tin caûm öùng DFD möùc 2: Ñònh daïng tinh cheá chöùc Thoâng soá caáu hình hieån thò naêng “Theo Id, type, vò trí Döõ lieäu caáu hình doõi caûm öùng” Thieát laäp Id, type Taïo tín hieäu ñieàu kieän chuoâng Kieåu baùo ñoäng Id, type baùo ñoäng Soá ñieän thoaïi Chuoâng Ñoïc döõ lieäu caûm öùng Quay soá Traïng thaùi caûm öùng Taàn soá cuûa soá ñieän thoaïi Boä caûm öùng Ñöôøng ñieän thoaïi - Trang 39 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  40. 40. VIEÁT PSPEC Coù theå vieát PSPEC baèng moät trong 2 caùch Ngoân ngöõ töï nhieân (töông töï processing narrative) Ngoân ngöõ PDL - laø ngoân ngöõ giaû giuùp theå hieän kieán truùc vaø giao tieáp cuûa chöùc naêng xöû lyù - Trang 40 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  41. 41. TÖØ ÑIEÅN DÖÕ LIEÄU Nhieàu phaàn töû ñöôïc taïo ra trong moâ hình phaân tích: döõ lieäu, chöùc naêng, ñieàu khieån… Phaûi coù moät caùch thöùc quaûn lyù caùc phaàn töû ñoù sao cho hieäu quaû: töø ñieån döõ lieäu Ñònh nghóa: Töø ñieån döõ lieäu laø moät danh saùch coù toå chöùc cuûa taát caû caùc phaàn töû döõ lieäu caàn thieát cho heä thoáng. Caùc phaàn töû ñöôïc ñònh nghóa chính xaùc vaø chaët cheõ sao cho caû phaân tích vieân vaø khaùch haøng cuøng chia seû moät suy nghó veà chuùng. Töø ñieån döõ lieäu thöôøng ñöôïc hieän thöïc nhö laø moät phaàn cuûa coâng cuï CASE. Moãi phaàn töû bao goàm nhöõng thoâng tin: teân, bí danh, ñöôïc duøng ôû ñaâu/nhö theá naøo, ñaëc taû noäi dung vaø thoâng tin phuï trôï - Trang 41 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  42. 42. TÖØ ÑIEÅN DÖÕ LIEÄU (t.t) Ví duï phaàn töû döõ lieäu soá ñieän thoaïi Teân: Soá ñieän thoaïi Bí danh: Khoâng Ñöôïc duøng ôû ñaâu/nhö theá naøo: output cuûa Thieát laäp ñieàu kieän baùo ñoäng input cuûa Quay soá Ñaëc taû noäi dung: soá ñieän thoaïi = [ môû roäng ñòa phöông | soá beân ngoaøi ] môû roäng ñòa phöông = [ 2001 | 2002 … | 2009 ] soá beân ngoaøi = 9 + [ soá ñòa phöông | soá ñöôøng daøi ] soá ñòa phöông = tieàn toá + <chuoãi 4 kyù soá> soá ñöôøng daøi = (1) + maõ vuøng + soá ñòa phöông tieàn toá = [ 795 | 799 | 874 | 877 ] - Trang 42 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  43. 43. TOÅNG KEÁT Phaân tích yeâu caàu theo pp coå ñieån bao goàm: moâ hình chöùc naêng vaø doøng thoâng tin (DFD), moâ hình döõ lieäu (ERD) vaø moâ hình haønh vi (STD) Löôïc ñoà DFD cô baûn coù 4 kyù hieäu vaø noù ñöôïc môû roäng ñeå bieåu dieãn ñöôïc caùc heä thoáng thôøi gian thöïc Xaây döïng DFD möùc 0 roài ñeán caùc möùc cao hôn; chuù yù baûo toaøn tính lieân tuïc cuûa doøng döõ lieäu Töø ñieån döõ lieäu giuùp quaûn lyù vaø tra cöùu caùc phaàn töû döõ lieäu - Trang 43 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 2: Phaân tích yeâu caàu theo pp coå ñieån
  44. 44. Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh Khoa Coâng Ngheä Thoâng Tin Chöông 3 CAÙC KHAÙI NIEÄM CÔ BAÛN CUÛA MOÂ HÌNH HÖÔÙNG ÑOÁI TÖÔÏNG ✦ Lôùp vaø ñoái töôïng, söï ñoùng bao ✦ Thuoäc tính, taùc vuï, thoâng ñieäp ✦ Bao goäp, thöøa keá ✦ Tính ña hình, tính vónh cöûu - Trang 44 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  45. 45. NOÄI DUNG 3.1. Ñoái töôïng vaø lôùp, ñoùng bao 3.2. Thuoäc tính 3.3. Taùc vuï 3.4. Thoâng ñieäp 3.5. Bao goäp 3.6. Thöøa keá vaø override 3.7. Tính ña hình 3.8. Tính vónh cöûu - Trang 45 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  46. 46. GIÔÙI THIEÄU Moâ hình höôùng ñoái töôïng giôùi thieäu moät quan ñieåm laäp trình (vaø phaân tích/thieát keá) khaùc haún so vôùi tröôøng phaùi coå ñieån (coù caáu truùc) Baét ñaàu nhen nhoùm vaøo nhöõng naêm cuoái 60s vaø ñeán ñaàu 90s trôû neân raát phoå bieán trong coâng nghieäp phaàn meàm Nhöõng ngoân ngöõ höôùng ñoái töôïng ñaàu tieân: Smalltalk, Eiffel. Sau ñoù xuaát hieän theâm: Object Pascal, C++, Java… Hình thaønh caùc phöông phaùp phaân tích/thieát keá höôùng ñoái töôïng - Trang 46 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  47. 47. ÑOÁI TÖÔÏNG vaø LÔÙP Moâ hình höôùng ñoái töôïng quan nieäm theá giôùi bao goàm caùc ñoái töôïng (object) sinh soáng vaø töông taùc vôùi nhau Ñoái töôïng bao goàm döõ lieäu: mang moät giaù trò nhaát ñònh taùc vuï: thöïc hieän moät coâng vieäc naøo ñoù - Trang 47 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  48. 48. ÑOÁI TÖÔÏNG vaø LÔÙP (t.t) Lôùp (class) ñònh nghóa moät taäp hôïp caùc taùc vuï vaø thuoäc tính maø ñaëc taû ñaày ñuû caáu truùc vaø haønh vi cuûa caùc ñoái töôïng. Ñoái töôïng (coøn goïi laø minh duï (instance) ) ñöôïc cuï theå hoaù töø lôùp Caùc ngoân ngöõ laäp trình höôùng ñoái töôïng Khai baùo lôùp: töông töï nhö khai baùo moät kieåu do ngöôøi duøng ñònh nghóa Khai baùo ñoái töôïng: bieán cuûa kieåu lôùp - Trang 48 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  49. 49. ÑOÙNG BAO Circle c1 : Circle # Radius: float Radius = 1.3 - x: float x = 3.2 - y: float y = 1.7 + Draw( w: Window) + GetClass( ): String Ñoùng bao: vieäc goäp thuoäc tính vaø taùc vuï trong moät ñoái töôïng ñoàng thôøi giôùi haïn caùch truy xuaát caùc thuoäc tính ñoù (thöôøng phaûi thoâng qua caùc taùc vuï get/set) - Trang 49 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  50. 50. THUOÄC TÍNH Thuoäc tiùnh (attribute) laø moät vuøng coù theå chöùa döõ lieäu (ñôn hoaëc toå hôïp) cuûa lôùp. Döõ lieäu maø thuoäc tính theå hieän naèm trong moät khoaûng giaù trò naøo ñoù ñöôïc xaùc ñònh bôûi kieåu. Giaù trò cuûa taát caû thuoäc tính xaùc ñònh traïng thaùi cuûa ñoái töôïng Ví duï: moät ñoái töôïng cuûa Circle coù (Radius, x, y) = (1.2, 3.4, 5.3) - Trang 50 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  51. 51. THUOÄC TÍNH (t.t) Thuoäc tính coù theå bò che daáu hoaëc truy xuaát ñöôïc töø beân ngoaøi Moät soá ngoân ngöõ laäp trình (vaø UML): public, protected, private Coù 2 loaïi taàm vöïc Taàm vöïc lôùp: thuoäc tính chung cho taát caû caùc ñoái töôïng cuûa moät lôùp Taàm vöïc ñoái töôïng: thuoäc tính cuûa töøng ñoái töôïng (coù theå mang giaù trò khaùc nhau) Baäc cuûa thuoäc tính chæ ra soá löôïng döõ lieäu maø baûn thaân thuoäc tính coù theå naém giöõ: 0..1, 1, *, 5..8 - Trang 51 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  52. 52. TAÙC VUÏ Taùc vuï (operation) laø moät dòch vuï coù theå yeâu caàu töø phía ñoái töôïng ñeå thöïc hieän haønh vi. Daáu hieäu nhaän daïng cuûa taùc vuï (signature) xaùc ñònh caùc thoâng soá coù theå truyeàn cuõng nhö keát quaû traû veà. Phöông thöùc (method) laø phaàn hieän thöïc cuûa taùc vuï - Trang 52 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  53. 53. TAÙC VUÏ (t.t) Taùc vuï coù theå bò che daáu hoaëc truy xuaát ñöôïc töø beân ngoaøi Moät soá ngoân ngöõ laäp trình (vaø UML): public, protected, private Taùc vuï coù theå ñöôïc override trong caùc lôùp con thöøa keá Tröøu töôïng (abstract): khoâng coù hieän thöïc Moät soá ngoân ngöõ laäp trình cho pheùp ñònh nghóa Taùc vuï khôûi taïo (constructor): ñöôïc goïi khi ñoái töôïng môùi taïo ra Taùc vuï huûy (destructor): ñöôïc goïi khi ñoái töôïng saép bò huyû boû - Trang 53 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  54. 54. VÍ DUÏ veà LÔÙP/ÑOÁI TÖÔÏNG - JAVA class abstract HTMLObject { protected static final int LEFT = 0; protected static final int MIDDLE = 1; protected static final int RIGHT = 2; private int alignment = LEFT; protected Vector objects = null; HTMLObject( ){ // constructor objects = new Vector ( 5 ); } public void setAlignment( int algnmt ) { alignment = algnmt; } public int getAlignment( ) { return alignment; } public abstract String toHTML( ); // abstract operation } - Trang 54 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  55. 55. THOÂNG ÑIEÄP Thoâng ñieäp laø moät pheùp goïi taùc vuï ñeán moät ñoái töôïng cuï theå. Thoâng ñieäp bao goàm 3 phaàn Ñoái töôïng ñích Daáu hieäu nhaän daïng cuûa taùc vuï muoán goïi Danh saùch thoâng soá goïi - Trang 55 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  56. 56. THOÂNG ÑIEÄP (t.t) Ñoái vôùi caùc ngoân ngöõ laäp trình Ñoái töôïng ñích: bieán ñoái töôïng hoaëc baûn thaân ñoái töôïng muoán göûi thoâng ñieäp (self, this) Daáu hieäu nhaän daïng cuûa taùc vuï muoán goïi: teân taùc vuï truøng nhau xem caùc thoâng soá goïi Danh saùch thoâng soá goïi: nhö pheùp goïi haøm bình thöôøng, chuù yù kieåu khi truyeàn vaø gaùn keát quaû traû veà Ví duï: aCircle.SetRadius( 3 ); aCircle.Draw( pWnd ); - Trang 56 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  57. 57. BAO GOÄP Bao goäp (aggregation) laø quan heä giöõa hai ñoái töôïng Moät ñoái töôïng bao laáy ñoái töôïng kia Quan heä naøy thöôøng xaûy ra trong theá giôùi thöïc, ví duï Xe hôi bao goàm: baùnh xe, ñoäng cô, khung xe... Trang HTML bao goàm: text, hình aûnh, tieâu ñeà, caùc lieân keát... Checkbox, ComboBox, Slider… naèm trong moät hoäp thoaïi - Trang 57 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  58. 58. BAO GOÄP (t.t) Hai daïng lieân keát giöõa ñoái töôïng nguoàn vaø ñoái töôïng ñích Chaët cheõ: ñoái töôïng ñích ñöôïc taïo ra vaø huyû ñi ñoàng thôøi vôùi ñoái töôïng nguoàn Loûng leûo: chu kyø soáng cuûa hai ñoái töôïng ñoäc laäp nhau Quan heä bao goäp cuõng ñöôïc aùp duïng cho lôùp Moät soá ngoân ngöõ laäp trình hoã trôï caû 2 daïng lieân keát: bieán & con troû - Trang 58 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  59. 59. VÍ DUÏ veà BAO GOÄP - C++ class Geometry { // abstract base class public: Geometry( ); ~Geometry( ); virtual void Draw( Window *pWnd ) = 0; // abstract operation protected: int xPos, yPos; double xScale, yScale; COLORREF color; }; class Group : public Geometry { public: Group( ); ~Group( ); virtual void Draw( Window *pWnd ); // override private: Geometry **ppGeo; // pointer container int geoCount; }; - Trang 59 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  60. 60. THÖØA KEÁ vaø OVERRIDE Thöøa keá (inheritance) laø quan heä giöõa hai lôùp Lôùp con thöøa höôûng taát caû thuoäc tính vaø taùc vuï cuûa lôùp cha Lôùp con (subclass) laø cuï theå hoaù cuûa lôùp cha (superclass); lôùp cha laø toång quaùt hoaù cuûa lôùp con Quan heä naøy cuõng thöôøng ñöôïc ghi nhaän trong theá giôùi thöïc, ví duï Hoå, baùo, soùi ñeàu laø thuù Button, Checkbox vaø Dialog ñeàu laø Window Hình troøn, hình chöõ nhaät, hình ellipse ñeàu laø hình veõ 2D. - Trang 60 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  61. 61. THÖØA KEÁ vaø OVERRIDE (t.t) Hai loaïi thöøa keá: ñôn thöøa keá vaø ña thöøa keá Ñôn thöøa keá: moãi lôùp con coù nhieàu nhaát laø moät lôùp cha Ña thöøa keá: Moãi lôùp con coù moät hoaëc nhieàu lôùp cha Naûy sinh hai vaán ñeà: ñuïng ñoä giöõa teân caùc thaønh phaàn (member) cuûa lôùp cha vaø thöøa keá laïi - Trang 61 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  62. 62. THÖØA KEÁ vaø OVERRIDE (t.t) Lôùp con coù theå override laïi moät soá taùc vuï cuûa lôùp cha. Phaûi giöõa nguyeân daáu veát nhaän daïng (signature) cuûa taùc vuï bò override; chæ ñöôïc thay ñoåi phöông thöùc (phaàn hieän thöïc) cuûa noù Ña soá ngoân ngöõ laäp trình höôùng ñoái töôïng hoã trôï thöøa keá Moät soá ngoân ngöõ ñöa ra khaùi nieäm phöông thöùc aûo (virtual) - Trang 62 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  63. 63. VÍ DUÏ veà THÖØA KEÁ vaø OVERRIDE - JAVA class HTMLDocument extends HTMLObject { private String title = null; // other attributes... HTMLDocument( ){ } public void setTitle( String ttl ) { if ( ttl != null ) title = ttl; } public String getTitle( ) { return title; } public String toHTML( ) { // override StringBuffer html = new StringBuffer; // additional implementation... return html.toString( ); } } - Trang 63 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  64. 64. TÍNH ÑA HÌNH Moät ñoái töôïng mang nhieàu boä maët khaùc nhau: cuûa chính lôùp ñaëc taû noù vaø cuûa caùc lôùp cha tính ña hình (polymorphism) Töông hôïp kieåu: kieåu cuûa lôùp con luoân töông hôïp vôùi kieåu lôùp cha Moät soá ngoân ngöõ laäp trình ñònh nghóa khaùi nieäm lieân keát muoän Haøm ñöôïc goïi ñeå ñaùp öùng caùc thoâng ñieäp ñöôïc xaùc ñònh trong thôøi gian thöïc thi chöù khoâng phaûi bieân dòch Moãi ñoái töôïng coù moät baûng phöông thöùc aûo - Trang 64 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  65. 65. TÍNH ÑA HÌNH (t.t) Window # hWnd: HWND Ví duï: ñoái töôïng http + MoveWindow( ) ñöôïc xem nhö thuoäc + GetClass( ): String kieåu cuûa HttpView, View http : HttpView View vaø Window + GetClass( ): String + GetDocument( ): Document HttpView + GetClass( ): String - Trang 65 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  66. 66. TÍNH VÓNH CÖÛU Chu kyø soáng cuûa ñoái töôïng: khoaûng thôøi gian töø luùc ñoái töôïng ñöôïc taïo ra ñeán luùc noù bò huyû ñi. Thoâng thöôøng chu kyø soáng cuûa ñoái töôïng goùi goïn trong thôøi gian chöông trình thöïc thi - Trang 66 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  67. 67. TÍNH VÓNH CÖÛU (t.t) Chu kyø soáng cuûa ñoái töôïng coù theå vöôït ra khoûi söï thöïc thi cuûa chöông trình tính vónh cöûu (persistence) Ñoái töôïng ñöôïc caát vaøo boä nhôù vónh cöûu khi chöông trình keát thuùc Khi caàn thieát coù theå khoâi phuïc laïi ñoái töôïng vaøo boä nhôù chính Chæ löu tröõ traïng thaùi cuûa ñoái töôïng Ngoân ngöõ C++ vaø Java: streaming - Trang 67 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  68. 68. TOÅNG KEÁT Moâ hình höôùng ñoái töôïng quan nieäm theá giôùi bao goàm caùc ñoái töôïng soáng chung vaø töông taùc vôùi nhau: Caùc ñaëc ñieåm chính Ñoùng bao: moãi ñoái töôïng bao goàm döõ lieäu vaø taùc vuï. Caùc taùc vuï thieát laäp neân haønh vi cuûa ñoái töôïng. Caùc ñoái töôïng ñöôïc phaân loaïi baèng lôùp Caùc ñoái töôïng töông taùc vôùi nhau baèng caùch göûi thoâng ñieäp Giöõa caùc lôùp/ñoái töôïng coù theå toàn taïi quan heä bao goäp vaø thöøa keá Tính ña hình: ñoái töôïng mang nhieàu boä maët Tính vónh cöûu: ñoái töôïng coù theå “nguû” - Trang 68 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 3: Caùc khaùi nieäm cô baûn cuûa moâ hình höôùng ñoái töôïng
  69. 69. Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh Khoa Coâng Ngheä Thoâng Tin Chöông 4 MOÂ HÌNH NGHIEÄP VUÏ VAØ THU THAÄP YEÂU CAÀU ✦ Actor & use-case ✦ Moâ hình use-case - Trang 69 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  70. 70. NOÄI DUNG 4.1. Nhaän dieän caùc vai troø (actor) 4.1.1. Khaùi nieäm actor 4.1.2. Nhaän dieän actor 4.1.3. Actor trong UML 4.2. Nhaän dieän caùc tröôøng hôïp söû duïng (use-case) 4.1.1. Khaùi nieäm use-case 4.1.2. Tìm kieám use-case 4.1.3. Use-case trong UML 4.3. Thieát laäp caùc moái quan heä 4.3.1. Quan heä lieân keát (association) 4.3.2. Quan heä giao tieáp, goäp vaø môû roäng 4.4. Xaây döïng moâ hình use-case - Trang 70 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  71. 71. GIÔÙI THIEÄU Khaùch haøng vaø nhaø phaùt trieån gaëp nhau cuøng thaûo luaän veà yeâu caàu cuûa heä thoáng phaàn meàm caàn xaây döïng Moâ hình nghieäp vuï ñöôïc thieát laäp ñeå hoã trôï caû nhaø phaùt trieån laãn khaùch haøng trong vieäc kieåm chöùng laïi vaø thoáng nhaát yeâu caàu phaàn meàm vaø vai troø caùc taùc nhaân beân ngoaøi - Trang 71 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  72. 72. KHAÙI NIEÄM ACTOR Actor xaùc ñònh moät boä vai troø maø ngöôøi hoaëc vaät seõ ñoùng vai khi töông taùc vôùi heä thoáng phaàn meàm Actor naèm ngoaøi phaïm vi cuûa heä thoáng Chæ quan taâm caùc thoâng ñieäp maø actor göûi hay nhaän Khoâng quan taâm caáu truùc beân trong cuûa actor Phaân loaïi actor Chuû yeáu / Thöù yeáu Tích cöïc / Thuï ñoäng - Trang 72 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  73. 73. NHAÄN DIEÄN CAÙC ACTOR Traû lôøi moät soá caâu hoûi nhö Ai laø ngöôøi söû duïng chöùc naêng chính cuûa heä thoáng ? Ai caàn söï hoã trôï töø heä thoáng ñeå thöïc hieän coâng vieäc thöôøng nhaät cuûa hoï ? Ai phaûi thöïc hieän coâng vieäc baûo döôõng, quaûn trò vaø giöõ cho heä thoáng hoaït ñoäng ? Heä thoáng seõ kieåm soaùt thieát bò phaàn cöùng naøo ? Heä thoáng ñang xaây döïng caàn töông taùc vôùi nhöõng heä thoáng khaùc hay khoâng ? Ai hoaëc vaät theå naøo quan taâm ñeán hay chòu aûnh höôûng bôûi keát quaû maø heä thoáng phaàn meàm taïo ra ? - Trang 73 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  74. 74. ACTOR trong UML Actor ñöôïc bieåu dieãn baèng kyù hieäu hình ngöôøi Actor ñöôïc xem laø moät lôùp (class) coù stereotype laø <<actor>> Giöõa caùc actor coù theå coù quan heä toång quaù hoaù Ví duï: Sinh vieân, giaûng vieân vaø khaùch ñeàu laø ñoäc giaû cuûa heä thoáng quaûn lyù thö vieän Ví duï: moät heä thoáng ñaêng kyù moân hoïc trong tröôøng ñaïi hoïc - Trang 74 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  75. 75. ACTOR trong UML (t.t) Sinh vieân Phoøng Ñaøo Taïo Heä thoáng ñaêng kyù moân hoïc Giaûng vieân Phoøng Taøi Vuï - Trang 75 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  76. 76. ACTOR trong UML (t.t) Quaûn trò vieân Ngöôøi ñaêng kyù mailbox Heä thoáng göûi nhaän mail - Trang 76 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  77. 77. KHAÙI NIEÄM USE-CASE Use-case bieåu dieãn moät chöùc naêng cuûa heä thoáng phaàn meàm Use-case ñöôïc bieåu dieãn baèng moät chuoãi caùc thoâng ñieäp trao ñoåi beân trong heä thoáng vaø moät hoaëc moät soá thoâng ñieäp trao ñoåi vôùi actor Moät soá quy öôùc Use-case luoân luoân ñöôïc baét ñaàu baèng thoâng ñieäp ñeán töø actor Use-case phaûi hoaøn taát: chuoãi thoâng ñieäp phaûi keát thuùc baèng keát quaû cuï theå. Loãi thöôøng gaëp: chia nhoû use-case trôû thaønh nhöõng chöùc naêng vuïn vaët - Trang 77 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  78. 78. KHAÙI NIEÄM USE-CASE (t.t) Ñieåm môû roäng laø moät vò trí trong use-case maø taïi ñoù coù theå cheøn chuoãi söï kieän cuûa moät use-case khaùc Use-case coù theå chöùa ñieàu kieän reõ nhaùnh, xöû lyù loãi, ngoaïi leä... Minh duï cuûa use-case laø kòch baûn (scenario): mieâu taû cuï theå trình töï caùc söï kieän - Trang 78 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  79. 79. TÌM KIEÁM USE-CASE Traû lôøi moät soá caâu hoûi nhö Actor yeâu caàu chöùc naêng gì cuûa heä thoáng ? Actor caàn phaûi ñoïc, taïo, xoaù, söûa ñoåi hoaëc löu tröõ thoâng tin naøo ñoù cuûa heä thoáng khoâng ? Actor caàn thieát phaûi ñöôïc caûnh baùo veà nhöõng söï kieän trong heä thoáng, hay actor caàn phaûi baùo hieäu cho heä thoáng veà vaán ñeà naøo ñoù khoâng ? Heä thoáng coù theå hoã trôï moät soá coâng vieäc thöôøng nhaät cuûa actor naøo ñoù hay khoâng ? - Trang 79 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  80. 80. TÌM KIEÁM USE-CASE (t.t) Moät soá caâu hoûi khaùc caàn chuù yù Heä thoáng caàn döõ lieäu input/ouput naøo ? Döõ lieäu ñoù ñeán töø ñaâu ? Nhöõng khoù khaên naøo lieân quan ñeán hieän thöïc cuûa heä thoáng hieän taïi (chaúng haïn heä thoáng quaûn lyù baèng giaáy tôø neân ñöôïc thay theá baèng heä thoáng quaûn lyù treân maùy tính) ? - Trang 80 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  81. 81. USE-CASE trong UML Use-case ñöôïc bieåu dieãn baèng hình ellipse Giöõa use-case vaø actor thöôøng coù quan heä lieân keát Giöõa caùc use-case cuõng coù quan heä lieân keát hoaëc toång quaùt hoaù Ví duï: moät heä thoáng ñaêng kyù moân hoïc theo tín chæ trong tröôøng ñaïi hoïc - Trang 81 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  82. 82. USE-CASE trong UML (t.t) <<communicate>> Sinh vieân Phoøng Ñaøo Taïo Quaûn lyù MH Ñaêng kyù hoïc <<extend>> Ñaêng kyù daïy Quaûn lyù SV Theâm SV môùi Giaûng vieân - Trang 82 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  83. 83. THIEÁT LAÄP CAÙC MOÁI QUAN HEÄ Quan heä giöõa actor vôùi actor Quan heä giöõa actor vôùi use-case Quan heä giöõa use-case vôùi use-case UML ñöa ra quan heä lieân keát (association) - Trang 83 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  84. 84. QUAN HEÄ LIEÂN KEÁT Quan heä lieân keát chæ ra moät quan heä coù yù nghóa giöõa hai beân Trong thöïc teá: haønh khaùch vôùi laùi xe, sinh vieân vôùi giaùo vieân, giaûng vieân vôùi moân hoïc… Moät soá tính chaát lieân quan Teân cuûa lieân keát Moät chieàu hay 2 chieàu Baäc: soá löôïng thöïc theå tham gia vaøo lieân keát taïi moãi beân - Trang 84 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  85. 85. QUAN HEÄ LIEÂN KEÁT trong UML UML bieåu dieãn lieân keát nhö laø moät ñoaïn thaúng (hai chieàu) hoaëc muõi teân (moät chieàu) Coù theå aùp duïng stereotype: <<include>> <<extend>> <<communicate>> ... - Trang 85 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  86. 86. LIEÂN KEÁT trong MOÂ HÌNH NGHIEÄP VUÏ Lieân keát laø quan heä duy nhaát giöõa actor vaø use-case Coù theå laø moät chieàu hoaëc hai chieàu actor kích hoaït use-case vaø nhaän keát quaû veà: lieân keát 2 chieàu actor kích hoaït use-case, khoâng quan taâm keát quaû veà: lieân keát 1 chieàu 1 * Ñaët haøng Ngöôøi baùn haøng - Trang 86 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  87. 87. QUAN HEÄ GIAO TIEÁP Laø quan heä lieân keát coù stereotype laø <<communicate>> Duøng ñeå lieân keát giöõa actor vôùi use-case maø noù kích hoaït <<communicate>> Ñaêng kyù daïy Giaûng vieân - Trang 87 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  88. 88. QUAN HEÄ GOÄP Laø quan heä lieân keát coù stereotype laø <<include>> Duøng ñeå lieân keát giöõa 2 use-case Trong use-case nguoàn coù moät ñieåm môû roäng maø taïi ñoù baét buoäc phaûi cheøn use-case ñích vaøo - Trang 88 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  89. 89. QUAN HEÄ GOÄP (t.t) Taïi ñieåm môû roäng, dieãn tieán cuûa use-case nguoàn taïm thôøi ngöøng laïi ñeå chuyeån sang dieãn tieán cuûa use-case ñích Khi keát thuùc use-case ñích, dieãn tieán cuûa use-case nguoàn laïi tieáp tuïc <<include>> Tìm kieám Ñaêng nhaäp - Trang 89 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  90. 90. QUAN HEÄ MÔÛ ROÄNG Laø quan heä lieân keát coù stereotype laø <<extend>> Duøng ñeå lieân keát giöõa 2 use-case Trong use-case nguoàn coù moät ñieåm môû roäng maø taïi ñoù coù theå (hoaëc khoâng) phaûi cheøn use-case ñích vaøo Cheøn hay khoâng phuï thuoäc vaøo ñieàu kieän reõ nhaùnh hoaëc töông taùc töø phía actor - Trang 90 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  91. 91. QUAN HEÄ MÔÛ ROÄNG (t.t) Taïi ñieåm môû roäng, neáu ñöôïc môû roäng thì dieãn tieán cuûa use-case nguoàn taïm thôøi ngöøng laïi ñeå chuyeån sang dieãn tieán cuûa use-case ñích Khi keát thuùc use-case ñích, dieãn tieán cuûa use-case nguoàn laïi tieáp tuïc <<extend>> Tìm kieám Ñaêng kyù ñaët choã - Trang 91 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  92. 92. XAÂY DÖÏNG MOÂ HÌNH USE-CASE Caùc yeâu caàu cuûa phaàn meàm ñöôïc mieâu taû trong moâ hình use-case Moâ hình use-case bao goàm caùc löôïc ñoà use-case (use-case diagram) vaø (coù theå) moät soá package Moãi löôïc ñoà use-case bao goàm caùc actor, use-case vaø caùc moái quan heä Coù theå söû duïng package ñeå gom moät soá use-case lieân quan taïo thaønh moät boä chöùc naêng con cuûa heä thoáng - Trang 92 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  93. 93. XAÂY DÖÏNG MOÂ HÌNH USE-CASE (t.t) Caùc quan heä coù theå xaûy ra trong löôïc ñoà use-case Quan heä lieân keát giöõa actor vaø use-case: moät chieàu hoaëc hai chieàu, thöôøng coù stereotype laø <<communicate>> Quan heä môû roäng hay goäp giöõa 2 use-case: quan heä lieân keát vôùi stereotype <<extend>> hay <<include>> Quan heä toång quaùt hoaù (generalization) giöõa caùc actor: nhieàu actor coù vai troø cuûa moät actor tröøu töôïng Quan heä toång quaùt hoaù giöõa caùc use-case: nhieàu use-case laø tröôøng hôïp cuï theå cuûa moät use-case tröøu töôïng - Trang 93 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  94. 94. XAÂY DÖÏNG MOÂ HÌNH USE-CASE (t.t) fee summary Prints timetable Makes timetable Student print request <<communicate>> Finance <<communicate>> timetable command Registers courses Removes students People Administration <<include>> Manages course <<extend>> <<include>> Lecturer Reads courses <<include>> Manages lecturers <<include>> Adds students <<extend>> <<include>> Login <<include>> Manages students Undertakes courses - Trang 94 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  95. 95. XAÂY DÖÏNG MOÂ HÌNH USE-CASE (t.t) <<communicate>> Forwards Removes mailbox Subcriber <<communicate>> <<extend>> <<extend>> Views mail <<include>> Administrator Replies <<communicate>> <<communicate>> <<extend>> <<include>> <<include>> Adds mailbox Login Composes - Trang 95 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  96. 96. XAÂY DÖÏNG MOÂ HÌNH USE-CASE (t.t) <<include>> <<extend>> models imports <<communicate>> initializes <<communicate>> model command import command run command <<communicate>> export command sets appearance exports <<communicate>> save command Viewer toggles light saves model <<communicate>> <<extend>> close command toggles mode exits sets eye sets viewing - Trang 96 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  97. 97. TOÅNG KEÁT Moâ hình nghieäp vuï theå hieän caùc chöùc naêng cuûa heä thoáng phaàn meàm vaø caùc thöïc theå lieân quan UML ñònh nghóa moâ hình use-case bao goàm caùc actor, caùc use-case vaø caùc löôïc ñoà use-case Tieáp theo moâ hình nghieäp vuï laø moâ hình caùc ñoái töôïng phaân tích - Trang 97 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 4: Moâ hình nghieäp vuï vaø thu thaäp yeâu caàu
  98. 98. Tröôøng Ñaïi Hoïc Baùch Khoa Tp. Hoà Chí Minh Khoa Coâng Ngheä Thoâng Tin Chöông 5 PHAÂN TÍCH YEÂU CAÀU HÖÔÙNG ÑOÁI TÖÔÏNG ✦ Nhaän dieän ñoái töôïng/lôùp ✦ Löôïc ñoà lôùp - Trang 98 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  99. 99. NOÄI DUNG 5.1. Nhaän dieän caùc ñoái töôïng/lôùp 5.1.1. Ñoái töôïng/lôùp thöïc theå 5.1.2. Ñoái töôïng/lôùp bieân 5.1.3. Ñoái töôïng/lôùp ñieàu khieån 5.2. Nhaän dieän caùc thuoäc tính 5.2.1. Kieåu döõ lieäu cuûa thuoäc tính 5.2.2. Baäc cuûa thuoäc tính 5.2.3. Möùc ñoä truy xuaát thuoäc tính 5.3. Nhaän dieän caùc taùc vuï - Trang 99 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  100. 100. NOÄI DUNG (t.t) 5.4. Nhaän dieän lôùp cô sôû 5.4.1. Nhaän dieän caùc thuoäc tính/taùc vuï chung 5.4.2. Quan heä toång quaùt hoùa (generalization) 5.5. Nhaän dieän caùc moái quan heä 5.5.1. Quan heä lieân keát (association) 5.5.2. Quan heä bao goäp (aggregation) 5.6. Xaây döïng löôïc ñoà lôùp 5.7. Thieát laäp caùc package - Trang 100 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  101. 101. GIÔÙI THIEÄU Moâ hình nghieäp vuï bieåu dieãn caùc chöùc naêng ñoáii töôïng/lôùp ñoá töôïng/lôùp -- quan heä quan heä phaàn meàm caàn xaây döïng döôùi daïng caùc use-case Moâ hình phaân tích seõ tìm kieám caùc ñoái töôïng “soáng” trong ngöõ caûnh cuûa phaàn meàm Caùc ñoái töôïng seõ töông taùc vôùi nhau ñeå taïo neân caùc chöùc naêng moâ taû bôûi use-case - Trang 101 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  102. 102. GIÔÙI THIEÄU (t.t) Moâ hình phaân tích taäp trung moâ taû vai troø vaø caáu truùc cuûa caùc ñoái töôïng Chöa quan taâm ñeán haønh vi cuï theå vaø nhieäm vuï chi tieát cuûa chuùng trong ngöõ caûnh cuûa heä thoáng Nguyeân taéc: moâ hình phaân tích phaûi ñoäc laäp vôùi o/s, ngoân ngöõ laäp trình, coâng cuï phaùt trieån - Trang 102 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  103. 103. NHAÄN DIEÄN ÑOÁI TÖÔÏNG/LÔÙP Döïa vaøo ñaëc taû cuûa töøng use-case ñeå tìm kieám caùc ñoái töôïng Caùc ñoái töôïng thöôøng xuaát hieän trong caùc danh töø hay nhoùm danh töø Moät soá löu yù Khoâng neân duøng ñoái töôïng ñeå bieåu dieãn moät döõ lieäu ñôn (neân xem laø thuoäc tính cuûa ñoái töôïng khaùc) Ñoái töôïng/lôùp phaûi thöïc söï caàn thieát cho söï hoaït ñoäng cuûa heä thoáng Ñoái töôïng/lôùp ≠ baûng cô sôû döõ lieäu Ñoái töôïng/lôùp ≠ actor - Trang 103 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  104. 104. NHAÄN DIEÄN ÑOÁI TÖÔÏNG/LÔÙP (t.t) Phaân loaïi ñoái töôïng/lôùp Ñoái töôïng thöïc theå (entity): bieåu dieãn caùc thoâng tin thieát yeáu cuûa heä thoáng, coù theå ñöôïc löu trong cô sôû döõ lieäu Ñoái töôïng bieân (boundary): thöïc hieän chöùc naêng giao tieáp vôùi actor Ñoái töôïng ñieàu khieån (control): ñieàu khieån caùc ñoái töôïng khaùc - Trang 104 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  105. 105. NHAÄN DIEÄN ÑOÁI TÖÔÏNG/LÔÙP (t.t) Trong UML, lôùp ñöôïc bieåu dieãn baèng moät hình chöõ nhaät goàm 3 phaàn: teân, caùc thuoäc tính vaø caùc taùc vuï Coù theå aùp duïng stereotype cho lôùp: <<entity>>, <<boundary>>, <<control>>... Ñoái töôïng cuõng ñöôïc bieåu dieãn baèng hình chöõ nhaät, thoâng thöôøng goàm 2 phaàn: teân ñoái töôïng + teân lôùp (ñöôïc gaïch chaân), giaù trò caùc thuoäc tính (traïng thaùi cuûa ñoái töôïng) - Trang 105 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  106. 106. NHAÄN DIEÄN ÑOÁI TÖÔÏNG/LÔÙP (t.t) HTMLObject # alignment: int + GetAlignment( ): int + toHTML( ): String HTMLDocument doc : HTMLDocument alignment = MIDDLE - title: String title = “A document” + GetTitle( ): String + toHTML( ): String - Trang 106 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  107. 107. ÑOÁI TÖÔÏNG/LÔÙP THÖÏC THEÅ Bieåu dieãn cho caùc thöïc theå xuaát hieän moät caùch töï nhieân trong heä thoáng Thoâng tin veà caùc ñoái töôïng thöïc theå coù theå phaûi ñöôïc löu tröõ laâu daøi (database, file...) Trong UML, ñöôïc gaùn stereotype <<entity>> Deã nhaän dieän caùc thuoäc tính cuûa chuùng - Trang 107 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  108. 108. ÑOÁI TÖÔÏNG/LÔÙP THÖÏC THEÅ (t.t) Ví duï: Message Ñoái vôùi heä thoáng ñaêng kyù moân hoïc heä tín <<entity>> chæ qua WEB, nhaän dieän caùc ñoái töôïng thöïc # subject: String # sent: Date theå nhö: thoâng tin SV, thoâng tin GV, nhoùm # content: String lôùp hoïc, ñaêng kyù nhoùm, soå tay sinh vieân… + GetSubject( ): String Ñoái vôùi heä thoáng mail, nhaän dieän caùc ñoái + toString( ): String töôïng thöïc theå nhö: hoäp thö, thoâng ñieäp mail… Ñoái töôïng ñöôøng ñoàng möùc, ñöùt gaõy vaø baûn ñoà trong chöông trình veõ beà maët ñòa hình - Trang 108 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  109. 109. ÑOÁI TÖÔÏNG/LÔÙP BIEÂN Thöïc hieän chöùc naêng giao tieáp vôùi actor Thöôøng chöùa caùc phaàn töû hoaëc ñieàu khieån giao dieän ngöôøi duøng (nuùt nhaán, hoäp danh saùch, tuyø choïn, menu...) Trong UML, ñöôïc gaùn stereotype <<boundary>> Khoù nhaän bieát caùc thuoäc tính vaø taùc vuï trong moâ hình phaân tích - Trang 109 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  110. 110. ÑOÁI TÖÔÏNG/LÔÙP BIEÂN (t.t) Ví duï: MailView Ñoái vôùi heä thoáng ñaêng kyù moân hoïc heä <<boundary>> tín chæ qua WEB, nhaän dieän caùc ñoái töôïng bieân nhö: RegisterForm, StudentForm… Ñoái vôùi heä thoáng mail, nhaän dieän caùc ñoái töôïng bieân nhö: MailView, MailCompose... - Trang 110 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  111. 111. ÑOÁI TÖÔÏNG/LÔÙP ÑIEÀU KHIEÅN Coù nhieäm vuï ñieàu khieån caùc lôùp khaùc hoaëc (Ñôn giaûn hôn) Nhöõng lôùp khoâng phaûi laø lôùp thöïc theå vaø lôùp bieân Trong UML, ñöôïc gaùn stereotype <<control>> Lôùp bieân thöôøng coù quan heä lieân keát hoaëc phuï thuoäc vôùi caùc lôùp khaùc - Trang 111 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  112. 112. ÑOÁI TÖÔÏNG/LÔÙP ÑIEÀU KHIEÅN (t.t) Command <<control>> Ví duï: Ñoái töôïng bieåu dieãn + Execute( ) + Reexecute( ) moät soá leänh thoâng + Unexecute( ) # Do( ) thöôøng nhö caét, daùn, thay ñoåi thoâng soá nhìn PasteCommand BgCommand <<control>> <<control>> trong hieån thò ñoà hoaï… + Execute( ) + Execute( ) + Reexecute( ) + Reexecute( ) + Unexecute( ) + Unexecute( ) # Do( ) # Do( ) - Trang 112 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  113. 113. NHAÄN DIEÄN CAÙC THUOÄC TÍNH Döïa vaøo ñaëc taû cuûa töøng use-case, tìm kieám caùc danh töø hoaëc nhoùm danh töø lieân quan ñeán ñoái töôïng ñang xeùt Traû lôøi caâu hoûi: nhöõng thaønh phaàn naøo caáu thaønh ñoái töôïng ñang xeùt ? Löu yù: cuøng moät ñoái töôïng trong caùc ngöõ caûnh khaùc nhau chuùng ta coù theå tìm ñöôïc caùc thuoäc tính khaùc nhau - Trang 113 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  114. 114. NHAÄN DIEÄN CAÙC THUOÄC TÍNH (t.t) Neân xaùc ñònh (tuy nhieân khoâng baét buoäc) trong moâ hình phaân tiùch Kieåu cuûa thuoäc tính: moät soá kieåu cô baûn Baäc cuûa thuoäc tính: soá ít hoaëc soá nhieàu Visibility cuûa thuoäc tính: möùc ñoä cho pheùp truy xuaát thuoäc tiùnh töø beân ngoaøi UML: thuoäc tính ñöôïc mieâu taû töôøng minh hoaëc thoâng qua quan heä vôùi caùc lôùp khaùc - Trang 114 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  115. 115. KIEÅU DÖÕ LIEÄU CUÛA THUOÄC TÍNH Moät soá kieåu cô baûn cuûa caùc ngoân ngöõ laäp trình: integer, float, double, long, char... Moät soá kieåu cô baûn khaùc: string, date, time... UML cho pheùp ñònh nghóa taát caû caùc kieåu döõ lieäu treân - Trang 115 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  116. 116. BAÄC CUÛA THUOÄC TÍNH Baäc cuûa thuoäc tính: soá ít hay soá nhieàu Neáu thuoäc tính ñöôïc ñaëc taû töôøng minh: duøng daáu [] ñeå chæ soá nhieàu hoaëc soá löôïng chính xaùc Tröôøng hôïp thuoäc tính ñöôïc mieâu taû thoâng qua quan heä vôùi caùc lôùp khaùc: UML cho pheùp theå hieän baäc treân quan heä (ví duï: 1, 0, *, 2..9, 0..n) - Trang 116 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  117. 117. MÖÙC ÑOÄ TRUY XUAÁT THUOÄC TÍNH UML ñònh nghóa 3 möùc ñoä truy xuaát thuoäc tính (visibility) public (+): coù theå truy xuaát thuoäc tính töø taát caû caùc vò trí khaùc nhau protected (#): baûn thaân lôùp ñang xeùt vaø caùc lôùp con cuûa noù coù theå truy xuaát thuoäc tính private (-): chæ coù lôùp ñang xeùt coù theå truy xuaát thuoäc tính Thoâng thöôøng neân ñaët möùc ñoä truy xuaát thuoäc tính laø private hoaëc protected (cho caùc lôùp cô sôû), khoâng neân laø public. Thuoäc tính neân ñöôïc truy xuaát thoâng qua taùc vuï get/set - Trang 117 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  118. 118. NHAÄN DIEÄN CAÙC TAÙC VUÏ Döïa vaøo ñaëc taû cuûa töøng use-case, tìm kieám caùc ñoäng töø hoaëc nhoùm ñoäng töø lieân quan ñeán ñoái töôïng ñang xeùt Chuù yù xem ñoái töôïng ñöôïc taïo ra vaø bò huyû boû ñi nhö theá naøo ? Trong thôøi gian ñoù noù göûi/nhaän thoâng ñieäp ra sao ? Caùc ñoái töôïng bieân coù caùc taùc vuï nhaän leänh töø actor. - Trang 118 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  119. 119. NHAÄN DIEÄN CAÙC TAÙC VUÏ (t.t) Xem xeùt möùc ñoä truy xuaát cuûa taùc vuï töông töï nhö ñoái vôùi caùc thuoäc tính; caùc taùc vuï thöôøng coù visibility laø + hoaëc # Moät soá taùc vuï khoâng xuaát hieän moät caùch töï nhieân trong moâ hình phaân tích moâ hình thieát keá seõ nghieân cöùu kyõ traùch nhieäm vaø haønh vi cuûa töøng ñoái töôïng - Trang 119 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  120. 120. VÍ DUÏ veà NHAÄN DIEÄN THUOÄC TÍNH StudentInfo <<entity>> LecturerInfo <<entity>> Heä thoáng ñaêng kyù - name: String - name: String moân hoïc heä tín chæ qua - code: Long - code: String - dateOfBirth: Date - dateOfBirth: String - addr: String - addr: String WEB - Nhaän dieän caùc - acaYear: Date - degree - department - title: String thuoäc tính cho caùc ñoái - home: String - division töôïng: StudentInfo, - socialAid - health - experience: Date + GetName( ): String + GetCode( ): Long + GetName( ): String + GetCode( ): String LecturerInfo - Trang 120 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng
  121. 121. VÍ DUÏ veà NHAÄN DIEÄN THUOÄC TÍNH (t.t) CourseOfferring Catalog Heä thoáng ñaêng kyù <<entity>> <<entity>> - courseName: String - acaYear: Date moân hoïc heä tín chæ qua - courseCode: String - semester - offering: int WEB - Nhaän dieän caùc - session - credit: int - prerequisite thuoäc tính cho caùc ñoái töôïng: CourseOffering, Catalog - Trang 121 - Khoa Coâng Ngheä Thoâng Tin - Moân Coâng Ngheä Phaàn Meàm - Chöông 5: Phaân tích yeâu caàu höôùng ñoái töôïng

×