1. Trang chủ
  2. » Công Nghệ Thông Tin

Xây dựng phần mềm hướng đối tượng

169 420 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng phần mềm hướng đối tượng
Tác giả Nguyễn Nam Trung
Người hướng dẫn PTS. Nguyễn Văn A
Trường học University of Technology Ho Chi Minh City
Chuyên ngành Software Engineering
Thể loại Giáo trình
Năm xuất bản 2011
Thành phố Ho Chi Minh City
Định dạng
Số trang 169
Dung lượng 9,97 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Xây dựng phần mềm hướng đối tượng

Trang 1

• Sinh viên s c gi i thi u ph ng pháp , k thu t xây

d ng ph n m m theo h ng i t ng, c bi t trong giai

 K n ng phân tích, thi t k và tri n khai d án ph n m m.

• Ph n 02 – Môi tr ng và công c xây d ng ph n m m

 K n ng xây d ng, cài t ph n m m d a trên b n thi t k

Trang 2

Tài  li u tham kh o

• Roger S Pressman, Roger Pressman (2004),Software Engineering: A Practitioner's Approach, McGraw Hill Science/Engineering/Math

• Ian Sommerville (2006), Software Engineering: (Update) (8th Edition), Addison Wesley

• Dennis de Champeaux, Douglas Lea, Penelope, Faure (1993). Software Engineering Object Oriented System Development, Addison Wesley

• Len Bass, Paul Clements, Rick Kazman (2003),Software Architecture in Practice, 2 nd edition, Addison Wesley

• Clifton Nock (2003), Data Access Patterns: Database Interactions in Object Oriented Applications, Addison Wesley

• Sherif M Yacoub, Hany H Ammar (2003),Pattern Oriented Analysis and Design:

Composing Patterns to Design Software Systems, Addison Wesley.

• Microsoft Corporation (2003),Enterprise Solution Patterns Using Microsoft NET,

Trang 3

• Nguy n Nam Trung, Windows Presentation Foundation, 2011

• Adam Nathan (2010), WPF 4 Unleashed, SAMS

• Matthew MacDonald, Pro WPF in C# 2010:

Windows Presentation Foundation in NET 4.0, Apress

Designer orientated  tutorials for Expression Blend

Flow Document Overview

Tài  li u tham kh o

Trang 4

Mô hình Phân tích Thi t k Thi t k Thi t k

M t s v

c a ng i s hóa yêu c u

h

d li u

ki n trúc ph giao di n

Trang 5

• Khái  ni m v  Công ngh  ph n m m

• Khái  ni m v  Quy trình ph n m m

 Ph n m m qu n lý s  ti t ki m.

 Ph n m m qu n lý gi i vô  ch bóng  á.

 Ph n m m qu n lý bán vé chuy n bay.

chuyên d ng khác , nh m h tr cho các nhà chuyên môn trong

t ng l nh v c chuyên ngành th c hi n t t h n các thao tác nghi p

v c a mình

Trang 6

Khái  ni m v  ph n m m (tt)

Môi tr ng tri n khai ph n m m

• Máy tính: Desktop, Laptop, Tablet PC…

hi b h ê d

• Thi t b chuyên d ng :

 Thi t b di ng: PDA, Pocket PC, Đi n tho i di ng…

 Các thi t b chuyên d ng khác: set top box, router, firewall (ph n c ng…)

H  tr  làm t t h n các thao tác nghi p v :

• Tin  h c hóa nghi p  v  hi n  ang  làm th  công

• C i ti n ch c n ng nghi p v  hi n  ang  c th c hi n trên máy  tính

• Đ  ra, xây d ng và tri n khai ch c  n ng  nghi p  v  m i

d li u ngu n liên quan n công vi c ó), t các thi t b thu th p

d li u (cân, nhi t k , t bào quang i n…), ho c t các ph n

m m khác.

• Cho phép trình bày các k t qu c a vi c th c hi n các yêu c u cho

ng i dùng (k t qu c a công vi c khi th c hi n trên máy tính)

ho c i u khi n ho t ng các thi t b i u khi n ( óng/m c a, dùng hay cho chuy n g y y ng…) g

• M t cách t ng quát, thành ph n giao ti p cho phép nh p/xu t thông tin cùng v i hình th c trình bày/giao ti p t ng ng.

• M c tiêu chính c a thành ph n này là a thông tin t th gi i bên ngoài ph n m m (ng i s d ng, các thi t b , ph n m m khác…) và bên trong, ho c ng c l i.

Trang 7

• Dùng thông tin ngu n t các thành ph n giao di n ( ch c n ng

• Dùng thông tin ngu n t các thành ph n giao di n ( ch c n ng

Thành ph n l u tr (thành ph n d li u)

• Cho phép l u tr l i ( ch c n ng ghi ) các k t qu ã x lý

 Ví d : Vi c m n sách ã c ki m tra h p l , b ng l ng tháng ã c tính

M c tiêu chính c a thành ph n này là chuy n i d li u gi a b

nh chính và b nh ph

Các  lo i 

Trang 9

Tí h ú

Ph n

Ph n m mm m

nh t c quan tâm xem xét trong ngành Công ngh Ph n m m

Tính d s a l i: khi có s không phù h p (so v i yêu c u) trong quá trình ki m tra m t thành ph n, vi c phát hi u chính xác “v trí l i” và s a l i là nhanh nh t có th c.

Tính d b o trì: khi c n nâng c p, c i ti n m t thành ph n (theo yêu c u m i), vi c c p nh t ph n m m là nhanh, chính xác nh t có th c và c bi t là c g ng h n ch nh

h ng n các thành ph n khác

h ng n các thành ph n khác

Tính tái s d ng: các thành ph n ã th c hi n có th dùng

l i trong các ph n m m cùng l p (ho c cùng l nh v c) v i th i gian và công s c ít nh t có th c

………

 góc nhìn c a Ng i s  d ng

Trang 10

S  phát tri n c a Công ngh  ph n m m

Giai  o n 1  (1950 – gi a 1960)

• X  lý theo lô, x  lý t p trung, ít x  lý phân tán, ít s a  i ph n m m

Giai  o n 2 (t  gi a 1960  n gi a 1970)

• H  th ng  a ch ng trình và  a ngu i dùng

• Th c  hi n không  úng yêu c u (tính toán sai, không  n  nh…)

• Th i gian b o trì nâng c p quá lâu, chi phí cao, hi u qu  th p

• Khó s  d ng

• Th c hi n ch m Khô h i d li i á h

• Không  chuy n  i d  li u gi a các ph n m m

 C m tính : m i ng i theo m t ph ng pháp riêng

 Thô s , n gi n : ch t p trung vào vi c l p trình mà ít quan tâm

n các công vi c c n làm khác (kh o sát hi n tr ng, phân tích yêu c u, thi t k …)

 Th công : còn thi u các công c h tr quy trình phát tri n

Khái ni m:

• Công ngh ph n m m là ngành khoa h c nghiên c u v vi c xây

d ng các ph n m m có ch t l ng trong th i gian và chi phí h p lý

d ng các ph n m m có ch t l ng trong th i gian và chi phí h p lý

Công  ngh  ph n m m

Công  c Quy  trình

Ph ng  pháp

Trang 11

ph n m m

• Công c và Môi tr ng phát tri n ph n m m :

• H th ng các ph n m m tr giúp trong l nh v c xây d ng ph n

m m

• H tr các chuyên viên tin h c trong các b c xây d ng ph n

m m theo m t ph ng pháp nào ó v i m t quy trình c

Các yêu c u Xác  nh 

Ki m ch ng

Tri n  khai Waterfall

Xác  nh  yêu c u

“Thi t k   nhanh”

Xây d ng Prototype

Đánh giá và  xác   nh rõ yêu c u

Phát tri n 

ph n m m

Trang 13

• Phân  lo i yêu c u:

 Yêu c u ch c n ng: L u tr , tra c u, tính toán, k t xu t

Trang 14

Giai   o n kh o sát hi n tr ng và xác  nh yêu c u

oCó v n /khó kh n gì hi n t i hay không? Nguyênnhân?

 V n /khó kh n c l p v i công ngh , ch liên quan

n chuyên môn nghi p v thì c n gi i quy t ngay

• Hi n tr ng t ch c

• Hi n tr ng nghi p v

• Hi n tr ng Tin h c (ph n c ng, ph n m m, con ngg (p g, p , g i))

Trang 16

K  thu t thu th p yêu c u – Ph ng v n

Có th   nh h ng n i dung c n tìm hi u, có th  h  

th ng hóa các v n ghi nh n c

th ng hóa các v n   ghi nh n  c

• Làm vi c v i c p lãnh  o   n m m c tiêu c a h  

th ng ph n m m c n xây d ng, nh ng  i t ng c n h

• Khi tìm hi u, c n ghi nh n các thông tin:

Đ a nh n xét cá nhân c a ng i ph ng v n

 Dùng thu t ng /ngôn ng  Tin h c

Trang 17

K  thu t thu th p yêu c u – B ng câu h i

 Thêm ch  cho l i bình 

 Không ph i ch    cu i trang, hay cu i b ng câu h i, 

 Nên d  ki n nh ng câu h i nào s  có ý ki n thêm thì nên có s n ch    ghi l i bình ngay d i câu h i  ó)

• Các tài li u (có th  tìm hi u nh ng v n b n chung)

• Ti n hành sau cùng (n u c n thi t)

• Ki m tra l i:

Đã hi u  úng nghi p v  hi n t i?

 Có nh ng ngo i l ?

 Phát hi n nh ng khó kh n, l  h ng trong quy trình nghi p v

Phân tích thi t k  nhóm (JAD – Joint Application Design)

Trang 18

Q  & A

Trang 19

• Các mô t v yêu c u trong giai o n xác nh yêu c u:

 Ch mô t ch y u các thông tin liên quan n vi c

 Ch mô t ch y u các thông tin liên quan n vi c

th c hi n các nghi p v trong th gi i th c, ch a

th hi n rõ nét vi c th c hi n các nghi p v trênmáy tính

 Mô t thông quá các v n b nd gây ra nh m l nvàkhông tr c quan

Trang 20

 Nhi u nhóm ng i dùng có cùng các quy n h n gi ng nhau

 Nên  xét là  1  Actor hay nhi u Actor ?

 Vi c xác nh Actor ph thu c ng c nh và quy trình th c t

Trang 21

•Đ c tín hi u t  camera, sensor

• Phát l nh  i u khi n ra loa,  èn,  i n tho i…

• K t xu t/n p d  li u t  Excel

• K t xu t d  li u báo cáo ra ph n m m g i email 

(Microsoft Outlook, Outlook Express…)

• Ph n m m trung gian k t n i   chuy n  i email t  

d ng Web based sang POP3 (ví d  Yahoo!Pop)

• …………

• M t Use Case làm t chu i các hành ngmàh th ng

Trang 22

Ví  d  1 : Xét ph n m m Qu n lý h c sinh c p III

• S  t ng tác gi a   Actor và   Use case

• Chi u  c a m i tên th  hi n  vai  trò ch   ng trong  s  t ng tác

Trang 23

S    Use Case

• S t ng tác gi a Actor và Use case

• S  t ng tác gi a   Actor và   Use case

• Chi u  c a m i tên th  hi n  vai  trò ch   ng trong  

s  t ng tác

• Ví d  :

Ki m tra tài kho n

Rút ti n Khách  hàng Ki m tra tài kho n

Ng i  s  d ng

1 Use Case b t  u khi khách hàng  a th  tín d ng vào. H  th ng  c và th m tra thông tin c a th

2 H  thông nh c nh p s  PIN. H  th ng ki m tra s  PIN

3 H  th ng h i tác v  nào khách hàng mu n th c hi n. 

• basic  flow (“Happy Path”)

Trang 24

c p 1, các s    c p 1 này ph i  m b o th  hi n  y 

 ý ngh a s    c p 0 (tác nhân, thi t b , lu ng d  

li u, x  lý, b  nh  ph )

 C p 2: M i s    c p 1 l i có th  phân rã thành nhi u 

s    c p 2 t ng t  nh  vi c phân rã c a s    c p p g p p0

 ………

Ví  d  : S    c p 0

Configuration Information

Configuration Data

Configuration Data

Ví  d  : S    c p 1

Trang 25

 D1: Thông tin c n l u tr (d a vào bi u

m u liên quan)

 D5: Thông tin c n l u tr (ch có trong m t

Ng i dùng  D5: Thông tin c n l u tr (ch có trong m t

 X lý l u tr

• Đ c D3 l y các tham s , quy nh và danh m c

• N u th a quy nh, ghi D4 , thông báo

tin trong bi u m u liên quan

• Tùy theo quy nh có th có hay không

Trang 26

 D3:

• Các danh m c ch n l a

• D li u v i t ng khi tìm th y (d a vào

bi u m u liên quan n i t ng c n tìm ki m)

 D2:

• Các danh m c ch n l a

• D li u v i t ng khi tìm th y (d a vào

bi u m u liên quan n i t ng c n tìm ki m)

 D6: D li u k t xu t (thông th ng là c n thi t)

 D4: D li u c n l u tr l i

• Thông th ng không c n thi t

• C n thi t khi nào???

• Hi n th thông tin k t qu ( D2 ) và k t xu t D6 (n u c n)

• D2 và D6 th ng trùng v i D3 (nh ng không nh t thi t)

Trang 27

• S d ng D1 , D3, D5 và quy nh liên quan tính k t qu D4

 D1: Thông tin v báo bi u mu n th c

hi n (d a vào bi u m u liên quan)

 D5: Thông tin v báo bi u mu n th c

 D4: Thông tin có trong báo bi u liên quan (c n thi t ph i l u l i) nh ng ch a

c x lý và ghi nh n l i (yêu c u x lý tính toán)

 D2: Thông tin v báo bi u c l p (bi u

• N u có D4 thì tính toán theo quy nh

và Ghi k t qu D4

• Hi n th thông tin báo bi u D2 và k t

xu t D6

Trang 29

Phân tích: xây d ng mô hìnhTh  gi i th c

Phân tích theo h ng  i t ng: xây d ng các mô hình 

v  các  i t ngc a Th  gi i th c

Trang 30

L p   i t ng

(Các) ph ng th c(Các) thu c tính

Protected   

#  protectedAttribute +publicOp()

#  protectedOp() privateOp()

• Xác  nh s  l ng th  hi n c a thu c tính / ph ng th c

Cl Class classifierScopeAttribute

classifierScopeOperation() instanceScopeAttribute

instanceScopeOperation()

Ví  d

Student name

address nextAvailID : int +  addSchedule(theSchedule : Schedule, forSemester : Semester) + getSchedule(forSemester : Semester) : Schedule

+ hasPrerequisites(forCourseOffering : CourseOffering) : boolean

# passed(theCourseOffering : CourseOffering) : boolean

studentID

#  passed(theCourseOffering : CourseOffering) : boolean + getNextAvailID() : int

Trang 31

Nh n  xét

Bình  th ng: Class bình th ng

Tên  class

(Các) ph ng th c (Các)  thu c tính

In nghiêng: Class thu n  o

G ch  d i: Object (không ph i class) Bình  th ng: Thu c tính bình th ng

In  nghiêng: không s  d ng

G ch  d i: Thu c tính static

Bì h h Ph h bì h h Bình  th ng: Ph ng th c bình th ng

+ float DienTich() + float ChuVi() + void Ve() +

# CDiem P2

# CDiem P3

# CDiem P4 + CTuGiac()

+ float DienTich() + float ChuVi() + void Ve() +

# float A

# float B + CEllipse()

+ float DienTich() + float ChuVi() + void Ve() +

 Quan h  k  th a

• ClassBk th a t ClassA

• ClassBk  th a t  ClassA

• ClassBlà m t tr ng h p  c bi t c a ClassA

• ClassAlà tr ng h p t ng quát c a ClassB

Trang 32

Quan  h  gi a các l p  i t ng

 ObjectXc a ClassAb h y thì ObjectYc a ClassB 

(bên trong ObjectX) v n có th  còn t n t i

 ObjectXc a ClassAb h y thì ObjectYc a ClassB 

(bên trong ObjectX) không th  còn t n t i

• Ví d :?

 Chi u c a quan h  (Association, Aggregation, Composition)

• N u  quan h  là 1 chi u:  a  s các  l i g i hàm  c  g i theo  úng  chi u  c a quan h

• N u  quan h  là 2 chi u: không v  m i tên

Trang 33

Quan  h  gi a các l p  i t ng

 Quan h  Dependency

• ClassA và ClassB không có quan h  Association

• ClassA “ph  thu c” vào ClassB

Trong ClassA có s

Tham  s  truy n vào K t  qu  tr  ra Bi n  c c b

c c (ki u B), ho c

th c/thu c tính static c a ClassB

class  A { void     F(B   x) {

… } };

class  A {

B     F() {

… } };

class  A { void     F() {

B     x;

} };

Đ i t ng chính

Đ i t ng ph

Tiêu  chu n nh n d ng  i t ng: có r t nhi u tr ng phái 

Trang 34

Đ ngh :

• Quan h theo th i gian

 Ít bi n ng: sau 1 th i gian dài m i thay i (th ng làm v

m t t ch c)

 Bi n ng: quan h x y ra vào lúc nào, trong thông tin có thu c

tính v th i gian thay i theo th i gian ( th ng quan tâm

tính v th i gian, thay i theo th i gian ( th ng quan tâm nhi u n lo i quan h này )

• Quan h v t ch c (th ng liên quan n i t ng ph )

• Quan h v không gian (th ng liên quan n i t ng ph

• Quan h theo vai trò : Ch ng/B ng

Trang 35

Nh n  d ng thu c tính

 S  ph  thu c (không có ý ngh a rõ ràng khi  ng  c l p)

• Ph  thu c m t  i t ng  Thu c tính c a  i t ng

• Ph thu c nhi u i t ng Thu c tính c a quan h

• Ph  thu c nhi u  i t ng  Thu c tính c a quan h

• Xét l n l t t ng bi u m u và quy  nh

 N u trong s    l p hi n t i ch a có th  l u tr  

• 3.1.Nhi ul p i t ng cónhi u c i m chung

Xây d ng l p i t ng t ng quát chung cho các

Trang 36

 Danh sách các l p  i t ng và quan h

 Mô t  chi ti t t ng l p  i t ng và quan h

• V i m i l p  i t ng:

Trang 37

Các  khái ni m

 S    tr ng thái

• Mô t  chu trình s ng c a các  i t ng chính t  khi 

sinh ra, ho t  ng & m t  i

• M i  i t ng có th  có nhi u s    tr ng thái theo các góc nhìn khác nhau

 Tr ng thái & bi n c

• Tr ng tháic a  i t ng di n  t tình tr ng hi n có 

c a  i t ng (có ý ngh a trong m t  o n th i gian)

 Là   th  có h ng v i các node là các tr ng thái n i v i nhau 

b i  các cung mô t  vi c chuy n  i tr ng thái

Tên  tr ng thái

stateVar  : type = value entry/  entry action

d / ti it

Tên  tr ng thái

stateVar  : type = value entry/  entry action

d / ti it

Bi n  c (tham s )  [Bi u  th c  i u ki n]

/ Hành  ng (tham s )

do/  activity exit/  exit action

do/  activity exit/  exit action

Chuy n   i tr ng thái Hành   ng

Hành   ng

Trang 38

B3

B4

B5 B3,  B5, B6, B7 :  bi n c  ho t  ng

 Ph c v tra c u, tìm ki m Ph c  v  tra c u, tìm ki m

• Khi  ã quan tâm  n s    tr ng thái c a 1  i t ng

 Th ng  trong  ng d ng  không  còn ch c n ng xóa (th t  s )  i 

Trang 39

Assigned removeProfessor

addProfessor

Ví  d  2

add student / numStudents = numStudents + 1 add student / numStudents = numStudents + 1

Unassigned / numStudents = 0

/ numStudents = 0

remove student / numStudents = numStudents  1 remove student / numStudents = numStudents  1 add student / numStudents = numStudents + 1

Unassigned / numStudents = 0

remove student / numStudents = numStudents  1

Full

Cancelled do: Send cancellation notices do: Send cancellation notices

close addProfessor

closeRegistration

cancel

removeProfessor

close[ numStudents < 3 ] cancel

close

[ numStudents = 10 ] [ numStudents = 10 ] cancel

Full

Cancelled do: Send cancellation notices

close addProfessor

closeRegistration

cancel

removeProfessor

close[ numStudents < 3 ] cancel

close

[ numStudents = 10 ] cancel

do: Generate class roster do: Generate class roster

closeRegistration [ has Professor assigned ] closeRegistration [ has Professor assigned ]

close

[ numStudents = 10 ] [ numStudents = 10 ]

close[ numStudents < 3 ] close[ numStudents < 3 ]

closeRegistration[ numStudents >= 3 ] closeRegistration[ numStudents >= 3 ]

add student / numStudents = numStudents + 1

add student / numStudents = numStudents + 1

closeRegistration[ numStudents >= 3 ]

add student / numStudents = numStudents + 1

Ví  d  3: tr ng thái l ng nhau

superstate

ll d closeRegistration

/ numStudents = 0 / numStudents = 0

superstate

ll d closeRegistration

/ numStudents = 0

substate

Unassigned

add a professor add a professor

Cancelled do: Send cancellation notices do: Send cancellation notices

Full close

remove a professor remove a professor

close[ numStudents < 3 ] close[ numStudents < 3 ] [ numStudents = 10 ] [ numStudents = 10 ]

closeRegistration [ has Professor assigned ] closeRegistration [ has Professor assigned ]

Full close

remove a professor

close[ numStudents < 3 ] [ numStudents = 10 ]

closeRegistration [ has Professor assigned ]

close

add student / numStudents = numStudents + 1 add student /

numStudents = numStudents + 1

Assigned

H

Committed do: Generate class roster do: Generate class roster closeRegistration[ numStudents >= 3 ]

closeRegistration[ numStudents >= 3 ]

close[ numStudents >= 3 ] close[ numStudents >= 3 ]

add student / numStudents = numStudents + 1

Assigned

H

Committed do: Generate class roster closeRegistration[ numStudents >= 3 ]

close[ numStudents >= 3 ]

Trang 40

Luy n  t p

• V  s    tr ng thái c a thang máy

• V  s    tr ng thái c a 1  èn giao thông

• V s tr ng thái c a 1 c p èn giao thông t i ngã t

• V  s    tr ng thái c a 1 c p  èn giao thông t i ngã t

• V  s    tr ng thái c a 1  c gi

Ngày đăng: 11/05/2014, 15:00

HÌNH ẢNH LIÊN QUAN

Hình nh c trích t http://msdn.microsoft.com/en us/library/ms742806.aspx - Xây dựng phần mềm hướng đối tượng
Hình nh c trích t http://msdn.microsoft.com/en us/library/ms742806.aspx (Trang 111)

TỪ KHÓA LIÊN QUAN

w