Mô hình usecase ..... Công ty này cung cp d ch v đó cho các công ty khác thông qua d ch v Web... Trong khi đó private ch cho phép các ph ng th c thành viên trong l p đó truy xu t.. Chún
Trang 1H U
H
CH NG 1 : T NG QUAN 1
1.1 GI I THI U 2
1.2 TH C T NH NG PH N M N ANG S D NG 2
1.3 M C TIÊU C A PH N M M 2
CH NG 2 : C S LÝ THUY T 4
2.1 NGÔN NG L P TRÌNH C 5
2.1.1 Lch s ngôn ng C 5
2.1.2.Tìm hi u t ng quan v ngôn ng C 5
2.1.2.1 Các ki u d li u 4
2.1.2.2 Toán t 5
2.1.2.3 Con tr (Pointer) 5
2.1.2.4 Hàm (Function) 5
2.2 CÔNG NGH & CÔNG C C S D NG 6
2.2.1 B visual studio.net 6
2.2.2 T ng quan v C# 9
2.2.2.1 Các thành ph n m r ng C# 9
2.2.2.2 Các ki u d li u trong C# 10
2.2.2.3 Bi u th c toán t 11
2.2.2.4 Phát bi u đi u ki n và vòng l p 12
2.2.2.5 L p và th a k 13
2.2.2.6 a hình 17
2.2.2.7 Giao di n 19
2.2.3 S L C V UML 21
2.2.3.1 Gi i thi u 21
2.2.3.2 Ngu n g c c a UML 22
2.2.3.3 Bi u đ usecase 22
2.2.3.4 Bi u đ l p 23
2.2.3.5 Bi u đ c ng tác 27
2.2.3.6 Bi u đ h at đ ng 28
2.2.4 Mô hình 3 l p (Data Access Layer) 30
2.2.5 Microsoft Visual C++ Toolkit 2003 31
2.2.6 Các công c đ c s d ng 32
CH NG 3 : PHÂN TÍCH VÀ THI T K 35
3.2 NH NG CH C N NG CHÍNH 35
3.3 PHÂN TÍCH UML 36
3.3.1 Mô hình usecase 36
3.3.2 Mô hình h at đ ng 39
3.3.2.1 Ch n cách h c 39
3.3.2.2 Ch n làm bài t p 40
n làm bài t p 41
Trang 2H U
H
4.1 L P TR U T NG (ABSTRACT) 46
4.1.1 Business Layer 46
4.1.2 Data Layer 49
4.2 Mô hình l p 49
4.2.1 Business Layer 50
4.2.2 Data Layer 57
4.3 Mô hình c ng tác 61
4.3.1 L y danh sách bài hoc 61
4.3.2 L y danh sách ch ng 62
4.3.3 L y bài t p 63
4.3.4 L y bài hoc 63
4.3.5 L y m t ch ng 64
4.3.6 Thêm ng i dùng 65
4.3.7 Ki m tra ng i dùng 66
4.3.8 Thêm th vi n 67
4.3.9 C p nh t th vi n 68
4.3.10 L y d li u 68
4.4 DESIGN PATTERN 69
4.4.1 Singleton pattern 69
4.4.2 Adapter pattern 69
4.4.3 Factory Method pattern 71
4.4.4 Proxy pattern 72
4.5 THI T K C S D LI U, GIAO DI N PH N M M 73
4.5.1 Thi t k c s d li u 73
4.5.1.1 Mô hình th c th ERD 73
4.5.1.2 Mô hình quan h trong SQL Server 79
4.5.2 Giao di n ph n m n 79
4.5.2.1 Giao di n chính 80
4.5.2.2 Khi ch y debug 81
4.5.2.3 Bài t p 82
CH NG 5 : K T LU N VÀ H NG PHÁT TRI N 84
5.1 NH NG I U Ã LÀM C 84
5.2 NH NG I U CH A LÀM C 85
5.3 H NG PHÁT TRI N 85
TÀI LI U THAM KH O 86
Trang 3Xây d ng ph n m m h tr h c môn k thu t l p trình C, nh m giúp đ m t
ph n nh cho các b n m i làm quen v i l p trình có th ti p c n ngôn ng C m t cách
d dàng, h ng thú Ch ng trình bao g m vi c hi n th nôi d ng bài h c, làm bài t p,
t o th vi n riêng và debug nh ng ví d m u, biên d ch và ch y bài t p do ng i vi t
Vi c s d ng tin h c t o ra nh ng ph n m m h tr h c t p đã đ c phát tri n
r t nhi u nh t là t khi máy vi tính đã tr nên m t thi t b c n thi t trong m i gia đình
T nh ng ph n m m cho thi u nhi đ n nh ng ph n m m d y h c cao c p Nh ng
ph n m m v h c t p c ng r t phong phú h c anh v n, toán, lý, hóa, …
Hi n nay nhu c u h c l p trình r t l n Có r t nhi u b n mu n tìm hi u nh ng không bi t b t đ u t đâu và s d ng ngôn ng nào cho thích h p
Trên th tr ng hi n nay c ng có r t nhi u ph n m m h tr h c ngôn ng l p trình Nh ng h u h t là nh ng ngôn ng b c cao (ví d Visual Basic, Visual Studio NET, …) trong khi đó li r t ít ph n m m h tr h c các ngôn ng l p trình C/C++ hay Pascal
H u h t các ph n m m d ng d y nh ng ngôn ng l p trình C/C++ đ u không
đ c đ u t nhi u
Trang 4M t khóa h c s bao g m nhi u ch ng M i ch ng s có bài lý thuy t và
nh ng bài t p nh nh m giúp ng i dùng quen v i l p trình
K t thúc m i ch ng s có bài ki m tra ki n th c d i d ng tr c nghi m
Ngoài ra ng i dùng c ng có th ch n:
Làm m t bài ki m tra t ng h p v m t ph n nào đó
Ch n m t bài h c ho c m t ch ng nào đó trong ch ng trình
1.3.4 Thi t k sao cho d dàng thay đ i/nâng c p/b o trì
Thi t k và cài đ t b t bu c ph i theo mô hình l p
H ng phát tri n:
a lên website Cho phép ng i dùng t so n th o m t ch ng trình h c (VD: H c toán, …)
S d ng ngôn ng UML thi t k ch ng trình
Ph n m m đ c thi t k theo mô hình 3 l p
ng d ng Design Pattern vào thi t k mô hình l p
Trang 5H U
H
h tr vi c ch y ph n bài t p c a ng i dùng, ch ng trình có s d ng thêm công c Microsoft Visual C++ Toolkit 2003 c a Microsoft
S d ng nh ng control mã ngu n m trên m ng internet
Trong thi t k giao di n ph n m m h n ch s d ng form, chuy n sang t o và
Trang 6Ngôn ng C đ c phát tri n t hai ngôn ng tr c đó là BCPL và B BCPL
đ c phát tri n b i Martin Richards n m 1967 và là ngôn ng dành đ vi t các ph n
m m h đi u hành và các trình biên d ch Ken Thomspon phát tri n ngôn ng B, có nhi u đi m b t ch c BCPL Và B đ c dùng đ vi t phiên b n đ u tiên c a h đi u hành UNIX t i Bell Laboratories n m 1970
Ngôn ng C đ c Dennis Ritchie Bell Laboratories đ c phát tri n t B vào
n m 1972 C đ c ph b i n ban đ u do vi c là ngôn ng phát tri n cho h đi u hành UNIX Ngày nay h u nh t t c h đi u hành ch ch t đ u đ c vi t b ng C hay C++
2.1.2 Tìm hi u t ng quan v ngôn ng C
2.1.2.1 Các ki u d li u
Ch ng trình C, c ng gi ng nh nh ng ngôn ng kh ác, chúng ta cung cp d
li u (s , ch , …) và mô t cách th c hi n công vi c Và chúng ta trong đ i k t qu t
nh ng d li u trên Do đó, đi u c n thi t trong ch ng trình C là ph i phân lo i t t c các d li u b ng cách chia chúng theo ki u d li u (data type) C có 4 ki u d li u c n
b n là : ký t (character), d u ch m đ ng (floating point number), tinh xác đôi (double precision) Trong C dùng 7 t khóa đ phân bi t ki u d li u khác nhau : int, long, short, unsigned, char, float và double
Trang 7Trong C, hàm cho phép chia nh ng ch ng trình l n thành nh ng ch ng trình
nh và m t l i th là m t hàm đ c áp d ng thành công ch ng trình này thì c ng
Trang 8Hàm trong th vi n chu n c a C (ví d nh printf (), scanf ())
đi u hành g i là các NET server; m t t p các đ i t ng c s g i là NET Framework,
và m t t p các d ch v h tr cho t t c các ngôn ng NET là Common Language Runtime (CLR) Các ph n này đ c tách bi t nh trong hình:
Trang 9Ph n l n các h th ng ki u này th c hi n công vi c c a chúng ph n h u (back end),
c p đ server Microsoft cung c p m t t p các s n ph m ph n m m mà chúng đ c
bi t nh là NET Enterprise Servers Chúng đ c thi t k đ h tr các tính n ng x lý
ph n h u c n thi t c a m t h th ng phân tán.Các s n ph m này bao g m:
H đi u hành server, Microsoft Windows (Server, Advanced Server, và Datacenter Server)
Các ph m m m nh là Microsoft App Center và Microsoft Cluster Server
M t h th ng l u tr th đi n t , thông tin t do, …, Microsoft Exchange Server
Trang 10Khi chuy n qua Visual Basic NET, nhi u th đã đ c thay đ i m t cách tri t
đ ; m t trong chúng là s phát tri n c a m t n n t ng m i cho t t c các công c phát tri n c a NET N n t ng c s này, g i là NET Framework, cung c p hai th chính: môi tr ng th c thi c s (base runtime environment) và m t t p các l p n n t ng (foundation class) Base Environmet cung cp m t l p n m gi a các ch ng trình và
ph n còn l i c a h th ng, th c hi n các d ch v cho các ng d ng c a ng i l p trình
và đ n gi n hóa vi c x lý đ n ch c n ng c a các l p th p h n Các l p n n t ng cung
c p m t t p l n các ch c n ng xây d ng s n, nh x lý t p tin, thao tác v i XML, …
.NET Framework c ng cung c p m t t p các hàm API c a riêng nó đ giúp cho
ng i l p trình t n d ng đ c h t các kh n ng c a nó
.NET Service
.NET có các khái nim mà v t xa h n các chi ti t c a l p trình đ mô t cách các h th ng đ c xây d ng và cách chúng có th t ng tác M t trong các khái ni m trên là ý t ng Web Services, ch c n ng đ c phân theo m t quy lu t nh t quán thông qua Internet Các dch v này cho phép m t công ty hay t ch c cung c p ch c n ng
mà ch c n ng này đ c th c hi n hoàn toàn bên trong môi tr ng c a h M t ví d
c a các d ch v này là d ch v thanh tóan hóa đ n, m t công ty có các sever và các ng
d ng trong chính công ty c a h mà có th th c hi n và qu n lý đ c vi c thanh toán hóa đ n Công ty này cung cp d ch v đó cho các công ty khác thông qua d ch v Web Dch v này khác v i vi c cung c p m t trang Web thông th ng; đây là m t giao ti p mà các ng d ng hay các trang Web khác có th s d ng ch c n ng đ c cung c p
Trang 11vi c v i các d ch v và các ng d ng xây d ng trên NET Các thi t b NET bao g m các máy tính ch y trên Windows và các thi t b ch y Windows CE (Framework t ng thích cho lo i thi t b này có s n, cho phép h tr các tính n ng NET)
2.2.2.T ng quan v C#
Ngôn ng C# đ c thi t k b i Anders Hfsberg c a Microsoft C# là m t ngôn
ng l p trình h ng đ i t ng hi n đ i có th t ng tác v i các ph n t c a các ngôn
ng khác nh C, C++, Pascal, Java, và ngay c Basic C# là m t s n ph m c a b s n
ph m Visual Studio.NET Ngoài ra, b Visual Studio.NET còn có các s n ph m khác
nh Visual Basic.NET…
V ph ng di n l p trình, ngôn ng C# có phong cách l p trình gi ng nh ng ngôn ng l p trình h ng đ i t ng khác nh Visual C++, Java
Sau đây là nh ng c i ti n ho c m r ng c a ngôn ng l p trình C# so v i C/C++
2.2.2.1 Các thành ph n m r ng C#
T p tin vi t b ng ngôn ng C# c ng nh các t p tin khác nh ng chúng có tên
m r ng là cs, và tên m r ng c a project là csproj
Ngoài ra, đ biên d ch và s d ng đ c ch ng trình vi t b ng ngôn ng C# c n
ph i có môi tr ng g i là FrameWork Software Development Kit (SDK), cng nh
ch ng trình vit b ng ngôn ng Java c ng c n ph i có môi tr ng là Java Development Kit (JDK)
Trang 12b t đ u b ng tên System trong NET Framework, các không gian tên quan tr ng nh System.Drawing, System.Windows.Forms,…
2.2.2.2.Các ki u d li u C#
Ki u Mô t
object L p c s c a t t c các đ i t ng trong C#
string Dãy các ký t d ng Unicode
sbyte Nguyên có d u 8-bit
short Nguyên có d u 16-bit
Int Nguyên có d u 32-bit
Long nguyên có d u 62-bit
Byte Nguyên không d u 8-bit
Ushort Nguyên không d u 16-bit
Uint Nguyên không d u 32-bit
Ulong Nguyên không d u 64-bit
Trang 13Primary (), [], f(), x++, y++, new, typeof,
sizeof, checked, unchecked Unary(toán t m t ngôi) +, -, !, ~, ++x, x
Trang 14Vòng l p foreach cho phép t o vòng l p thông qua m t t p h p hay m t m ng
ây là m t câu l nh l p m i không có trong ngôn ng C/C++ Câu l nh foreach có
cú pháp chung nh sau:
foreach ( <ki u t p h p> <tên truy c p thành ph n > in < tên t p h p>)
<Các câu l nh th c hi n>
Do l p d a trên m t m ng hay t p h p nên toàn b vòng l p s duy t qua t t c các
thành ph n c a t p h p theo th t đ c s p Khi duy t đ n ph n t cu i cùng trong
t p h p thì ch ng trình s thoát ra kh i vòng l p foreach
Namespace
Nh chúng ta đã bi t NET cung c p m t th vi n các l p đ s và th vi n
này có tên là FCL (Framework Class Library) Trong đó Console ch là m t l p nh
trong hàng ngàn lp trong th vi n M i l p có m t tên riêng, vì v y FCL có hàng
ngàn tên nh ArrayList, Dictionary, FileSelector,…
i u này làm n y sinh v n đ , ng i l p trình không th nào nh h t đ c tên
c a các l p trong NET Framework T h n n a là sau này có th ta t o l i m t l p trùng v i l p đã có ch ng h n Ví d trong quá trình phát tri n m t ng d ng ta c n xây d ng m t l p t đi n và l y tên là Dictionary, và đi u này d n đ n s tranh ch p
khi biên dch vì C# ch cho phép m t tên duy nh t
Ch c ch n r ng khi đó chúng ta phi đ i tên c a l p t đi n mà ta v a t o
thành m t cái tên khác ch ng h n nh myDictionary Khi đó s làm cho vi c phát
tri n các ng d ng tr nên ph c t p, c ng k nh n m t s phát tri n nh t đ nh nào
đó thì chính là c n ác m ng cho nhà phát tri n
Trang 15H U
H
Gi i pháp đ gi i quy t v n đ này là vi c t o ra m t namespace, namsespace
s h n ch ph m vi c a m t tên, làm cho tên này ch có ý ngh a trong vùng đã đ nh ngha
T ng t nh v y ta c t o các namespace đ phân thành các vùng cho các l p trùng tên không tranh ch p v i nhau
T ng t nh v y, NET Framework có xây d ng m t l p Dictionary bên
trong namespace System.Collections, và t ng ng ta có th t o m t l p Dictionary
khác nm trong namespace ProgramCSharp.DataStructures, đi u này hoà n toàn không d n đ n s tranh ch p v i nhau
M ng
Ngôn ng C# cung c p cú pháp chu n cho vi c khai báo nh ng đ i t ng
Array Tuy nhiên, cái tht s đ c t o ra là đ i t ng c a ki u System.Array M ng
trong ngôn ng C# k t h p cú pháp khai báo m ng theo ki u ngôn ng C và k t h p
v i đ nh ngh a l p do đó th hi n c a m ng có th truy c p nh ng ph ng th c và thu c tính c a System.Array M t s các thu c tính và ph ng th c c a l p System.Array
2.2.2.5 L p và th a k
Th a k là khái ni m then ch t c a thi t k trong các ngôn ng h ng đ i
t ng , th a k cho phép nh ng ch c n ng và thu c tính dùng chung l p c s và
nh ng l p ch đ nh có th k th a nh ng ch c n ng c a l p c s C# ch h tr th a
k đ n C++ cho phép đa th a k và n u đ c s d ng đúng cách đây th t s là đi m
r t m nh Tuy nhiên, ph i th a nh n là đa th a k r t khó qu n lý và khó áp d ng
ây là m t trong nh ng lý do C# ch phát tri n đa th a k
Trang 17i u khi n truy xu t
Kh n ng hi n h u c a m t l p và các thành viên c a nó có th đ c h n ch
thông qua vic s d ng các b sung truy c p: public, private, protected, internal, và protected internal
T khoá public cho phép m t thành viên có th đ c truy c p b i m t ph ng
th c thành viên c a nh ng l p khác Trong khi đó private ch cho phép các ph ng
th c thành viên trong l p đó truy xu t T khóa protected thì m r ng thêm kh n ng
c a private cho phép truy xu t t các l p d n xu t c a l p đó Internal m r ng kh
n ng cho phép bt c ph ng th c c a l p nào trong cùng m t kh i k t h p (assembly) có th truy xu t đ c M t kh i k t h p đ c hi u nh là m t kh i chia
x và dùng l i trong CLR Thông th ng, kh i này là t p h p các t p tin v t lý đ c
l u tr trong m t th m c bao g m các t p tin tài nguyên, ch ng trình th c thi theo
ngôn ng IL,
T khóa internal protected đi cùng v i nhau cho phép các thành viên c a cùng
m t kh i assembly ho c các l p d n xu t c a nó có th truy c p Chúng ta có th xem
s thi t k này gi ng nh là internal hay protected
Các l p c ng nh nh ng thành viên c a l p có th đ c thi t k v i b t c
m c đ truy xu t nào M t l p th ng có m c đ truy xu t m r ng h n cách thành viên c a l p, còn các thành viên thì m c đ truy xu t th ng có nhi u h n ch Do
đó, ta có th đ nh ngh a m t l p MyClass nh sau:
Trang 18Nh trên bi n thành viên myValue đ c khai báo truy xu t protected m c dù
b n thân l p đ c khai báo là public M t l p public là m t l p s n sàng cho b t c
l p nào khác mu n t ng tác v i nó ôi khi m t l p đ c t o ra ch đ tr giúp cho
nh ng l p khác trong m t kh i assemply, khi đó nh ng l p này nên đ c khai báo
khóa internal h n là khóa public
Truy n tham s
Nh đã th o lu n trong ch ng tr c, tha m s có ki u d li u là giá tr thì s
đ c truy n giá tr vào cho ph ng th c i u này có ngh a r ng khi m t đ i t ng
có ki u là giá tr đ c truy n vào cho m t ph ng th c, thì có m t b n sao chép đ i
t ng đó đ c t o ra bên trong ph ng th c M t khi ph ng th c đ c th c hi n
xong thì đ i t ng sao chép này s đ c h y Tuy nhiên, đây ch là tr ng h p bình
th ng, ngôn ng C# còn cung c p kh n ng cho phép ta truy n các đ i t ng có ki u giá tr d i hình th c là tham chi u Ngôn ng C# đ a ra m t b sung tham s là ref
cho phép truy n các đ i t ng giá tr vào trong ph ng th c theo ki u tham chi u Và tham s b sung out trong tr ng h p mu n truy n d i d ng tham chi u mà không
c n ph i kh i t o giá tr ban đ u cho tham s truy n Ngoài ra ngôn ng C# còn h
tr b sung params cho phép ph ng th c ch p nh n nhi u s l ng các tham s
Truy n tham chi u
Nh ng ph ng th c ch có th tr v duy nh t m t giá tr , m c dù giá tr này
có th là m t t p h p các giá tr N u chúng ta mu n ph ng th c tr v nhi u h n
m t giá tr thì cách th c hi n là t o các tham s d i hình th c tham chi u Khi đó
Trang 19H U
H
trong ph ng th c ta s x lý và gán các giá tr m i cho các tham s tham chi u này,
k t qu là sau khi ph ng th c th c hi n xong ta dùng các tham s truy n vào nh là các k t qu tr v
2.2.2.6 a hình
Trong thu t ng l p trình h ng đ i t ng, kh n ng ghi đè ph ng th c c a
l p c s và cung c p m t phát tri n khác trong l p d n xu t là m t hình th c c
b n c a khái ni m đa hình
Xem ví d tr c, trong đó Cho và Meo đ c d n xu t t l p c s chung Thu
L p c s Thu cung c p ph ng th c Keu đ c các l p d n xu t th a k
Tuy nhiên, nu b n đã t ng nghe thì gi ng Cho s a s khác v i gi ng Meo,
chúng s a không gi ng nhau Vì v y, l p c s Thu ph i cho phép các l p d n xu t
cung c p phát tri n ph ng th c Keu c a riêng chúng
C# cung c p t khóa virtual đ ch rõ là ph ng th c có th b các l p d n xu t ghi đè M t l p d n xu t có th ghi đè ph ng th c virtual b ng cách s d ng t khóa override
Trang 20H U
H
T khóa override
Trong ngôn ng C#, ng i l p trình có th quy t đ nh ph quy t m t ph ng
th c o b ng cách khai báo t ng minh t khóa override i u này giúp cho ta đ a
ra m t phiên b n m i c a ch ng trình và s thay đ i c a l p c s s không làm nh
h ng đ n ch ng trình vi t trong các l p d n xu t Vi c yêu c u s d ng t khóa
override s giúp ta ng n ng a v n đ này
Trang 21Giao di n cung c p hình th c tr u t ng hóa s r t thu n ti n cho vi c phát
tri n theo phong cách xây d ng theo thành ph n c s Giao di n cung c p nh ng
th a thu n chung cho phép các thành ph n làm vi c v i nhau
M t giao di n không ph i là m t l p và do đó c ng không có b t c mã cài đ t nào M t giao di n ch a các khai báo c a các thành ph n c a các ph ng th c, trong
đó t t c đ u ph i khai báo public C# cho phép struct và lp cài đ t m t hay nhi u
giao di n, đi u này khác h n v i th a k Th a k là vi c cài đ t m t l p t l p c s , còn cài đ t giao di n thì ch xác đ nh ra r ng l p s phát tri n m t giao di n đ t bi t
và cam đoan s hoàn thành giao di n nh đã đ ra
Ph n thu c tính chúng ta s đ c p sau Thành ph n b sung truy c p bao g m:
public, private, protected, internal, và protected internal đã đ c đ c p
Theo sau t khóa interface là tên c a giao di n Thông th ng tên c a giao
di n đ c b t đ u v i t I hoa (đi u này không b t bu c nh ng vi c đ t tên nh v y
r t rõ ràng và d hi u, tránh nh m l n v i các thành ph n khác)
Trang 22C# cung c p ch c n ng cho chúng ta m r ng m t giao di n đã có b ng cách
thêm các ph ng th c và các thành viên hay b sung cách làm vi c cho các thành
Chúng ta mu n ki m tra m t đ i t ng xem nó có h tr giao di n, đ sau đó
th c hi n các ph ng th c t ng ng Trong ngôn ng C# có hai cách đ th c hi n
đi u này Ph ng pháp đ u tiên là s d ng toán t is Cú pháp c a toán t is là:
<bi u th c> is <ki u d li u>
Trang 23H U
H
Toán t is tr v giá tr true n u bi u th c th ng là ki u tham chi u có th
đ c gán an toàn đ n ki u d li u c n ki m tra mà không phát sinh ra b t c ngo i l nào
Toán t as
Toán t as k t h p toán t is và phép gán b ng cách đ u tiên ki m tra h p l
phép gán (kim tra toán t is tr v true) r i sau đó phép gán đ c th c hi n N u
phép gán không hp l (k hi phép gán tr giá tr false), thì toán t as tr v giá tr
<bi u th c> as <ki u d li u>
2.2.3 S L C V UML
2.2.3.1 Gi i thi u
Ngôn ng h p nh t UML (Unified Modeling Language) là m t ngôn ng tr c quan cung c p cho các nhà phân tích thi t k h ng đ i t ng m t cách hình dung ra
các h th ng ph n m m, mô hình hóa các t ch c nghi p v s d ng các h th ng
ph n m m này; c ng nh xây d ng chúng và làm tài li u v chúng
UML là ngôn ng tr c quan đ c dùng trong quy trình phát tri n các h th ng
ph n m m, là ngôn ng đ c t hình th c
Trang 24Các k thu t và phân tích thi t k h ng đ i t ng đ c t o ra nh m giúp đ
công vi c mô hình hóa nghi p v , phân tích yêu c u và thi t k các h th ng ph n
m m
UML đ c thi t k nh m k t h p các đ c đi m t t nh t c a m t s k thu t và
ký hi u trong phân tích thi t k đ t o ra m t tiêu chu n công nghi p
2.2.3.3 Bi u đ use case
Use case cung cp m t b c tranh tòan c nh v nh ng gì đang x y r a trong h
th ng hi n t i ho c nh ng gì s x y ra trong h th ng m i, do đó có r t nhi u d án tin
Mô hình hóa chu i hành đ ng mà h th ng s th c hi n, và nh m cung c p m t
k t qu có ý ngh a cho m t ng i nào đó hay cho m t h th ng khác bên ngòai
Cung c p m t cái nhìn t ng th v nh ng gì h th ng s làm và ai dùng nó
Trang 25Admin Use case 2
2.2.3.4 Bi u đ l p
Bi u đ l p mô t các l p, là nh ng thành ph n c b n nh t đ làm nên b t k
h th ng nào Kh n ng c ng tác b ng cách truy n thông đi p, đ c ch ra trong các
m i quan h gi a chúng
Bi u đ l p ch cho ta th y khung nhìn t nh c a các l p trong mô hình ho c m t
ph n c a mô hình Nó ch cho ta th y các thu c tính và các thao tác c a l p, c ng nh
l ai quan h c a các l p
Các t ng tác và c ng tác th c s x y ra đ h tr cho b t k m t yêu c u ch a
n ng nào, biu di n m t tuy n nào đó nào đó trên s đ Tuy n này s len l i
(navigate) t l p này sang l p khác thông qua các m i quan h gi a chúng L u ý là
ch có th thông th ng gi a hai đi m b ng cách xu t phát t đi m đ u đi qua các
đi m trung gian h p l và t i đi m đích
Tên use case
Trang 26H ng d n l p mô hình
Tìm l p và m i k t h p
Các l p và các m i k t h p có th xác đ nh b ng mô hình use case, tr c ti p t quá trình thu th p thông tin ho c b ng cách đ u t công s c vào bi u đ l p
Trang 27H U
H
Xác đ nh thu c tính và thao tác
Các m c d li u trong m i th hi n là thu c tính c a l p Trong mô hình quan
ni m, các thu c tính nên đu c nh n bi t ngay t các ngu n thông tin có s n
Các thao tác mô t kh n ng x lý c a m t l p Trong mô hình quan ni m, không d xác đ nh các thao tác đ y đ cho m t l p cho t i khi chi ti t trên các s đ
t ng tác đ c hoàn t t Tuy nhiên có m t s thao tác nhìn th y rõ trong các ngu n thông tin có s n
K t t p (Aggregation), h p thành (Composition), t ng quát hóa (Generalization)
k t h p aggregation Hình thoi luôn bên đ whole c a k t h p
V i aggregation thì m t part có th t n t i bên ngòai k t h p whole-part Ngh a
là m t thành ph n có th t n mà không nh t thi t ph i là m t part c a m t s n ph m
T ng t m t s n ph m có th t o ra t nh ng thành ph n có tr c
Ký hi u:
Trang 28H U
H
H p thành (Composition)
Aggregation là m t k t h p bi u di n c u trúc whole-part gi a hai l p V i k t
h p composition c ng vây, tuy nhiên m t k t h p composition có hàm ý cùng g n k t Ngh a là đ u whole c a k t h p đ c t o ra thì đ u part c ng đ c t o Khi đ u whole
b xóa thì các thành ph n part c ng b xóa theo Nói cách khác m t part không th t n
t i n u nó không ph i là m t thành ph n c a whole
UML c ng đ t m t hình thoi đ c tô đen bên đ u whole
Ký hi u :
T ng quát hóa (Generalization)
T ng quát hóa là m t hình th c quan h khác gi a hai l p ôi khi nó đ c mô
t nh là quan h “kind of”
Thu
Trang 29Mô hình c ng tác gi a các đ i t ng ho c các vai trò nh m th c hi n ch c n ng
c a m t thao tác
Mô hình các c ch bên trong thi t k
Bi u đ c ng tác đ c chú thích v i các t ng tác Các t ng tác này trình bày các thông đi p gi a các đ i t ng ho c vai trò bên trong c ng tác
Mô hình các kch b n bên trong m t use case ho c m t thao tác liên quan đ n
Giai đ an đ u, nh là m t ph n c a qui trình phát tri n bi u đ l p, các đ i
t ng tham gia vào m i use case có th đ c mô hình trong m t bi u đ c ng tác, t
đó xác đ nh l p cho chúng Các l p này đ c k t h p l i phác th o ra bi u đ l p đ u tiên
Trang 30H U
H
Khi bi t các l p trong h th ng, bi u đ c ng tác dùng đ xác đ nh t ng tác
x y ra gi a các vai trò nh m hi n th c use case
Khi có thao tác biu đ c ng tác dùng đ xác đ nh cách th c hi n c a các thao tác có hành vi ph c t p
B t k giai đ an nào, các b c phát tri n bi u đ c ng tác nh sau:
D a vào ng c nh : H th ng, h th ng con, use case ho c thao tác
Xác đ nh các ph n t c u trúc (vai trò l p, đ i t ng, h th ng con) c n thi t đ
M c đích c a bi u đ h at đ ng:
Mô hình các dòng nghi p v
Xác đ nh các use case, qua vi c kh o sát các dòng nghi p v
Xác đ nh các đi u ki n đ u và cu i cho use case
c gi a các use case
Trang 31Tìm ki m tác nhân nghi p v và use case nghi p v
Xác đ nh k ch b n chính c a các use case, dùng các nhánh chính và các nhánh thay th
K t h p các k ch b n đ t o ra dòng nghi p v có th hi u đ c, các dòng nghi p v này đ c mô t b ng bi u đ h at đ ng
N u m t hành vi chính c a đ i t ng đ c gây ra b i m t dòng nghi p v , thì chúng ta thêm dòng đ i t ng vào bi u đ
nh ngh a các h at đ ng ph c t p theo cách th c tu n t
Ký hi u
Bat Dau
Trang 32H U
H
2.2.4 Mô hình 3 l p (Data Access Layer)
Khi phát trin ng d ng , dù là l n hay nh thì c ng nên duy tr ì m t ý t ng trong lúc vi t M t trong nh ng cách đ duy trì là s d ng các mô hình l p trong thi t
k m t ng d ng làm đ c đ u đó thì ng d ng đ c thi t k ít nh t là 3 l p : Presentation Layer (PL), Business Logic Layer (BLL) and Data Access Layer (DAL)
Nh ng l p này có th vi t trong cùng m t ng d ng ho c là chia chúng ra thành t ng
ph n (component) Vi c phân chia thành t ng ph n giúp cho d trong vi c b o trì,
ch y ki m tra l i, m r ng và s d ng l i
- Presentation Layer
Presentation Layer là lp đ hi n th nh ng thông tin và ng i s d ng có th thao tác v i nó nh c p nh t, … Win form và web form là nh ng lóp Presentation
- Business Logic Layer
Business Logic Layer (BLL) nh là m t ng d n gi a Presentation Layer (PL)
và Data Access Layer Nhim v ch ính c a Business Logic Layer là nh n d li u t Presentation Layer và chuyn nh ng d li u nh n đ c t i Data Access Layer Ng c
l i Business Logic Layer nh n d li u t Data Access Layer và tr ra cho Presentation Layer
- Data Access Layer
Data Access Layer nh n d li u t Business Log;ic Layer và g i nh ng ph ng
th c ho c th t c đ x lý d li u v a nh n đ c
Trang 33H U
H
- u đi m c a ki n trúc l p
Tính m m d o và uy n chuy n Ví d nh l p Presentation layer không bi t d
li u s đ c l u nh th nào và thao tác ra sao Nh ng quyt đ nh thu c v l p Data
Layer Access Ta có th thay đ i h qu n tr c s d li u mà không làm nh h ng
đ n c u trúc c a ng d ng
Rõ ràng và d s d ng trong vi c phân chia ngu n nhân l c c ng là m t thu n
l i c a mô hình l p Vì b n có th phát tri n m t l p mà không l thu c vào nh ng
ng i khác
- B t l i c a ki n trúc l p
Khi s d ng mô hình này, vi c phát tri n ng d ng tr nên phúc t p
Chia thành nhi u l p c ng đ ng ngh a v i vi c làm v n đ tr nên l n x n
2.2.5 Microsoft Visual C++ Toolkit 2003
Micrsoft Visual C ++ Toolkit 2003 đã đ c thi t k và cho phép ng i phát tri n biên d ch và ki m tra m t ng d ng v i đ y đ các tính n ng c a m t trình biên
Trang 34n u quá trình biên d ch không có l i thì b n s đ c thông báo
Microsoft ( R ) Incremental Linker Version 7.10.3077
Copyright ( C ) Microsoft Corporation.All rights reserved
Trang 35Là control giúp thi t k ch ng trình có thêm m t c a s gi ng v i controlbox
c a NET c vi t b i Tim Dawson
XPExplorerBar
ây là control t o giao di n gi ng v i Explorer c a Windows XP c cung
c p b i Mathew Hall
Trang 36H U
H
Cách s d ng :
Trong môi tr ng NET ta References vào Add Reference … và ch n Browser
t i 3 file : sharplibrary.dll, dockingsuite.dll, XPExplorerBar.dll
Balloon
ây là mt project (http://www.codeproject.com) giúp thêm nhng Balloon
(gi ng v i tooltip c a window) vào ng d ng
Trang 37th bài h c Trong ph n bài h c có nh ng ví d , tên c a nh ng ví d là tên file ch a d
li u c n thi t cho vi c ch y debug ví d đó V i m t bài h c, có m t file t ng ng
đ c l u trong th m c c a ch ng trình Các thông tin còn l i c a bài h c nh tên,
đ ng d n t i file ch a d li u đ c l u tr trong c s d li u Khi ch ng trình
ch y thì d li u nh tên bài h c, đ ng d n s đ c l y lên treeView
- Ch y debug ví d demo
Khi đang bài h c nào mà có ví d thì ng i dùng có th ch n (b ng cách s
d ng chu t bôi đen ph n tên ví d ) và nh n chu t ph i đ xem debug c a ví d đó Khi
đó, s có m t form đ hi n th t ng b c ch y cùng v i k t qu th c hi n debug,
ch ng trình có s d ng m t file mô t quá trình ch y debug
Trang 38H U
H
- Làm bài t p
M i bài h c s có ph n bài t p riêng Ng i dùng có th làm bài và l u l i đ
có thêm t li u Bài t p đ c l u ra file trong th m c c a ch ng trình, ph n c s d
li u ch l u đ ng d n t i file bài t p đó Trong bài t p thì có thêm ph n bài gi i, bài
gi i c ng đ c l u ra file riêng và trong c s d li u ch l u đ ng d n t i file đó
Khi làm bài tp có th ch y th ph n v a làm, s có thông báo l i và k t qu
Khi ng i dùng đ ng ký thành viên thì có th s d ng thêm tính n ng t o th
vi n Thành viên có th dùng th vi n nh là m t quy n s tay riêng T t c thông tin
đ u mang tính cá nhân Th vi n có th l u đ c nh ng chú thích ho c đ ng d n t i file ho c th m c ng th i b n có th l u đ c hình nh đ i di n cho ph n th vi n
b n v a m i t o
3.2 Phân tích UML
3.2.1 Mô hình usecase (usecase diagram)
Trang 39H U
Tao thu vien
Khach
Chon bai hoc
Khach khong dang ky
Chon cach hoc
<<extend>>
<<extend>>
Chay Demo Vi du
<<extend>>
Dang ky thanh vien
Lam bai tap
Hoc Vien
Bai kiem tra
Quan ly dang nhap Admin
Quan ly dang ky
- Use case “ ng ký thành viên” : Ngi s d ng đ ng ký (username,
password) v i ch ng trình N u username h p l thì h th ng s c p m t tài kho n
Mà l n sau vào ng i dùng có th s d ng tài kho n đó đ đ ng nh p vào h th ng
- Use case “To th vi n” : Cho phép ng i dùng (thành viên) t o ra th vi n riêng, ch có th xem khi đ ng nh p vào h th ng
Trang 40H U
H
- Use case “Ch y demo ví d ” : Khi đang xem m t bài h c nào, n u có ph n ví
d thì ng i dùng có th xem quá trình ch y debug cho ví d đó
- Use case “Ch n cách h c” : Ng i dùng có th ch n theo 2 cách h c
- Use case “Làm bài tp” : X lý vi c th c hi n bài t p c a ng i dùng, bao
g m l u, cho xem bài m u và làm bài
- Use case “Bài ki m tra” : Ng i dùng sau khi đ c xong m t ch ng thì có th làm th bài ki m tra Là bài tr c nghi m ki m th c thu c m t ch ng nào đó Khi làm xong bài thì có th l u l i
- Use case “Qu n lý đ ng nh p” : Khi ng i dùng đ ng nh p vào h th ng thì
s ki m tra username và password
- Use case “Qu n lý đ ng ký” : Khi ng i dùng đ ng ký, c n cung c p
username Use case Quan ly dang ky xem username ng i dùng đ ng ký đã đ c s
d ng ch a N u ch a thì cho đ ng ký Ng c l i, thông báo cho ng i dùng
- Mô hình use case cho use case “Tao thu vien”
Them vao thu vien
Cap nhat Thanh vien
Thay doi thong tin