Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (148.43 KB, 12 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>Mở đầu </b>
Trong quỏ trỡnh phát triển của công nghệ phần mềm, nhiều dự án, nhiều
ch-ơng trình phát triển phần mềm đã đ-ợc thực hiện, nh-ng hoặc là không kết thúc,
hoặc xây dựng xong nh-ng không thực hiện đ-ợc hoặc đã xây dựng xong nh-ng cịn
nhiều lỗi khơng đáp ứng đ-ợc u cầu của ng-ời sử dụng. Vì để xây dựng một phần
mềm tốt cần phải chú ý tới các vấn đề chính sau:
- Dữ liệu, đối t-ợng và cấu trỳc ca chỳng
- Những hành vi thể hiện các chức năng và quá trình trong hệ thống
- Điều khiĨn hµnh vi tỉng thĨ cđa hƯ thèng
Trong thực tế, cấu trúc dữ liệu và hành vi của hệ thống phải th-ờng xuyên thay
đổi theo yêu cầu của ng-ời sử dụng. Do vậy, việc khảo sát, phân tích, thiết kế hệ
thống là một công việc rất phức tạp và quan trọng trong quá trình xây dựng một hệ
thống phần mềm. Phải phân tích kỹ bài toán, lựa chọn ph-ơng pháp phát triển hệ
thống thích hợp để cho hệ thống có tính mở, dễ thích nghi, chất l-ợng cao, giúp cho
cơng việc bảo trì hệ thống đỡ tốn kém.
Trong tất cả các giải pháp phát triển phần mềm hiện nay, giải pháp h-ớng đối
t-ợng đã đ-ợc xem nh- là giải pháp tốt cho những hệ thống phần mềm có qui mơ
lớn, độ phức tạp cao, có nhiều -u điểm so với ph-ơng pháp h-ớng chức năng truyền
thống. Có thể giải pháp h-ớng đối t-ợng sẽ còn đ-ợc tiếp tục đ-ợc cải tiến cùng với
mơ hình phát triển phần mềm. Nh-ng hiện nay đây là một giải pháp tốt đang đ-ợc sự
quan tâm đặc biệt và nhiều công ty đã triển khai.
ngôn ngữ đặc tả cho ngành công nghệ phần mềm và đang đ-ợc những hãng sản xuất
phần mềm nổi tiếng trên thế giới sử dụng như: Microsoft, Oracle, HP, …
Vì vậy việc nghiên cứu ph-ơng pháp phân tích, thiết kế h-ớng đối t-ợng và sử
dụng UML để phát triển phần mềm đang là một xu h-ớng trong kỹ nghệ phần mềm.
Những nội dung chính của đề tài:
Tổng quan ph-ơng pháp phát triển phần mềm theo định h-ớng đối t-ợng
Giíi thiƯu vỊ hƯ c«ng cơ UML
Vận dụng ph-ơng pháp và công cụ nêu trên tiến hành phân tích, thiết kế hệ
thống đào ạo ở một tr-ờng đại học.
Luận văn này gồm bốn ch-ơng. Ch-ơng 1 và 2 giới thiệu tổng quan về ph-ơng
pháp h-ớng đối t-ợng và các công cụ hỗ trợ. Ch-ơng 3 và ch-ơng 4 xây dựng mơ
hình cho hệ thống quản lý đào tạo sử dụng UML. Quản lý đào tạo là một công việc
không thể thiếu đ-ợc trong tất cả các hệ thống tr-ờng học, việc xây dựng một hệ
thống quản lý tự động sẽ giúp hệ thống các tr-ờng học quản lý đ-ợc hiệu quả, chính
xác và đỡ tốn thời gian , sức lực của nhiều ng-ời.
Thực hiện đề tài này giúp em hiểu sâu hơn các b-ớc để phân tích, thiết kế một
ứng dụng và ph-ơng pháp mơ hình hoá hệ thống phần mềm h-ớng đối t-ợng bằng
cơng cụ UML. Vì vấn đề đ-ợc xét là rộng lớn và phức tạp, kết quả của luận văn mới
dừng lại ở b-ớc phân tích tổng thể bài tốn và thiết kế chi tiết cho một phần quan
trọng của bài toán. Tuy vậy, những vấn đề lý thuyết, ph-ơng pháp luận và công cụ
phát triển phần mềm h-ớng đối t-ợng đã đ-ợc sử dụng, vận dụng khá toàn diện. Đây
là kết quả b-ớc đầu nghiên cứu khoa học, chắc chắn còn rất nhiều hạn chế, rất mong
đ-ợc ý kiến đóng góp quý báu của các thầy cô và các bạn. Em cũng xin gửi lời cảm
ơn chân thành đến PGS. TS. Nguyễn Văn Vỵ, ng-ời đã giúp đỡ em rất nhiều để em
có thể hoàn thành luận văn này
Hà nội, ngày 5 tháng 2 năm 2004
Vũ Thị Tâm
Hiện nay thông tin thực sự trở thành nguồn tài nguyên quan trọng, nguồn của
cải to lớn của xã hội. Trong mọi lĩnh vực, các dữ liệu, các mối quan hệ của mọi hệ
thống kinh tế xã hội đều đ-ợc xử lý một cách nhanh chóng nhất trên máy tính. Hệ
thống càng phát triển, tức là càng nhiều yếu tố hợp thành thì mối quan hệ giữa chúng
càng trở nên phức tạp. Để xử lý l-ợng thông tin lớn nh- vậy, cần phải có những
ph-ơng pháp và các cơng cụ hiện đại.
<b>1.1. Q trình chung để phát triển phần mềm h-ớng đối t-ợng. </b>
Tiến trình thực hiện một b-ớc lặp bao gồm xác định yêu cầu của hệ thống,
phân tích, thiết kế, triển khai và kiểm thử, chính là nội dung cơ bản của tiến trình
phát triển phần mềm h-ớng đối t-ợng. Trong các hoạt động đó, hoạt động phân tích
và thiết kế đặt ra nhiều vấn đề nan giải hơn cả.[3]
<b>Những vấn đề đặt ra trong phân tích thiết kế h-ớng đối t-ợng</b>
Đặc điểm của phân tích và thiết kế h-ớng đối t-ợng là nhìn nhận hệ thống
nh- một tập các đối t-ợng t-ơng tác với nhau để tạo ra một hành động cho một kết
quả ở mức cao hơn. Để làm đ-ợc điều đó ng-ời ta phải sử dụng hệ thống mơ hình
các đối t-ợng với các đặc tr-ng cơ bản sau đây:
- TÝnh trõu t-ợng hoá cao
- Tính bao gói thông tin
- Tính mô đun hoá
- Tính kế thừa
Ngy nay, UML là công cụ đ-ợc thiết kế có tất cả những tính chất và điều
<b>Lập mô hình nghiệp vụ </b>
vi và chức năng hệ thống cần nghiên cứu bằng cách liệt kê các chức năng mà hệ
thống thực hiện, chỉ ra mối quan hệ của nó với mơi tr-ờng thông qua việc sử dụng
các chức năng của hệ thống. Tiếp đó cần tìm các ca sử dụng nghiệp vụ từ các chức
năng của hệ thống mà qua đó con ng-ời và các hệ thống khác sử dụng chúng.[1]
<b>Xác định yêu cầu hệ thống </b>
Nhiệm vụ chính trong xác định yêu cầu là phát triển một mơ hình của hệ
thống cần xây dựng bằng cách dùng các ca sử dụng. Điều này là tự nhiên, bởi vì các
yêu cầu về chức năng đ-ợc cấu trúc thành các ca sử dụng và do phần lớn các yêu cầu
phi chức năng đều là riêng dối với một ca sử dụng đơn nên chúng cũng đ-ợc xử lý
trong các ca sử dụng đó. Để mơ tả các u cầu nghiệp vụ d-ới góc độ phát triển phần
mềm ta cần tìm các tác nhân và các ca sử dụng để chuẩn bị một phiên bản đầu tiên
của mơ hình ca sử dụng. Sau đó, ta sẽ xác định các ca sử dụng có ý nghĩa về mặt
kiến trúc và sắp thứ tự -u tiên các ca sử dụng sẽ đ-ợc triển khai trong b-ớc lặp hiện
thời.[4]
<b>Ph©n tÝch </b>
Nhiệm vụ của pha phân tích là làm mịn dần các yêu cầu đã nhận đ-ợc từ pha
tr-ớc và tạo cấu trúc cho chúng. Thơng qua đó, các yêu cầu đ-ợc hiểu chính xác
hơn, từ đó đ-a ra cấu trúc cho toàn bộ hệ thống.
Nhiệm vụ của pha phân tích là tìm ra cách thức để thực hiện các yêu cầu của
hệ thống đã đ-ợc xác định trong các ca sử dụng. Cụ thể là, cần phân tích mơ hình ca
- Ph©n tÝch kiÕn tróc hƯ thèng
- Ph©n tÝch mét ca sư dơng
- Ph©n tÝch mét líp
Trong q trình phân tích, ta sẽ liên tục tìm các gói, các lớp phân tích mới và
các yêu cầu chung khi tiếp tục làm mịn mơ hình bằng cách phân tích các gói phân
tích và duy trì các gói đó.
<b>ThiÕt kÕ </b>
Trong thiết kế, chúng ta định hình hệ thống và tìm hình thức thể hiện về mặt
vật lý của nó (kể cả kiến trúc) để thực hiện mọi yêu cầu đ-ợc đặt ra cho hệ thống.
Một đầu vào cho thiết kế là mơ hình phân tích. Khi thiết kế ta sẽ cố gắng bảo tồn
đ-ợc càng nhiều càng tốt cấu trúc của hệ thống đ-ợc định hình từ mơ hình phân
tích. Kết quả của thiết kế là mơ hình thiết kế và mơ hình triển khai đ-ợc thể hiện ra
d-ới dạng một loạt các mơ hình cụ thể. Mơ hình thiết kế là sự thực thi mơ hình phân
tích khi tính đến các điều kiện của mơi tr-ờng thc thi h thng.
Để nhận đ-ợc mô hình thiết kế ta cần thực hiện các công việc sau:
- ThiÕt kÕ kiÕn tróc
- ThiÕt kÕ mét ca sư dơng
- ThiÕt kÕ mét líp
- ThiÕt kÕ mét hƯ thèng con
Mơ hình thiết kế là một mơ hình đối t-ợng mơ tả sự thực thi các ca sử dụng về
mặt vật lý bằng cách tập trung vào việc xác định các yêu cầu chức năng và phi chức
năng, cũng nh- các ràng buộc khác liên quan đến môi tr-ờng triển khai và ảnh
h-ởng của chúng lên hệ thống.
<b>Đặc điểm của cách tiếp cân h-ớng đối t-ợng </b>
Sử dụng kết hợp cả hai cách thiết kế: trên - xuống (top-down) và d-ới-lên
(bottom-up). Kỹ thuật phân rã chức năng trên-xuống đ-ợc áp dụng để thiết kế các
lớp, còn cấu trúc cả hệ thống đ-ợc xây dựng dựa trên kiến trúc đơn thể đ-ợc đặc tả
trong miền ứng dụng và hỗ trợ một phần trong việc sử dụng lại - cách tiếp cận d-ới -
lên và nguyên lý che dấu thông tin cho phép sử dụng lại một cách tối đa.
<b>1.2. Các -u điểm của tiếp cận h-ớng đối t-ợng </b>
Những đối t-ợng đ-ợc thiết kế tốt trong hệ thống h-ớng đối t-ợng là cơ sở để kết
Cơ chế t-ơng tác bằng cách truyền thông điệp giữa các đối t-ợng đảm bảo cho
việc mô tả các giao diện giữa các modul bên trong hệ thống và hệ thống bên
ngoài trở nên dễ dàng hơn.
Việc phân tích và thiết kế theo cách phân bài toán thành các đối t-ợng là h-ớng
tới lời giải của thế giới thực, là tự nhiên hơn so với cách phân rà theo chức năng
từ trên xuống (Top-down).
Nguyên lý che dấu thông tin hỗ trợ cho việc xây dựng các hệ thống thông tin an
toàn.
Nguyờn lý thit k dựa vào sự bao gói cả dữ liệu và xử lý trong một đối t-ợng rất
phù hợp với ngữ nghĩa của mơ hình trong cài đặt.
Lập trình h-ớng đối t-ợng và kỹ thuật kế thừa cho phép xác định các modul và sử
dụng ngay sau khi chúng ch-a thực hiện đầy đủ các chức năng và sau đó mở rộng
các đơn thể đó mà khơng ảnh h-ởng tới các đơn thể đã có.
Tiếp cận h-ớng đối t-ợng cung cấp cho ta công cụ hỗ trợ giải quyết độ phức tạp
của bài toán bằng việc phân rã thành các thành phần độc lập t-ơng đối với nhau.
Hệ thống h-ớng đối t-ợng dễ dàng mở rộng thành các hệ thống có quy mơ lớn
hơn nhờ t-ơng tác giữa các đối t-ợng thông qua việc gửi và nhận thông báo.
Về vấn đề phát triển và bảo trì hệ thống đơn giản hơn do có sự phân hoạch rõ
ràng, là kết quả của việc bao gói thơng tin và sự kết nối giữa các đối t-ợng thông
qua giao diện, là việc sử dụng lại các thành phần tin cậy.
Xoá bỏ đ-ợc hố ngăn cách giữa các b-ớc phát triển, thiết kế và cài t trong quỏ
trình phát triển phần mềm.[2]
<b>1.3. Nhng vấn đề đặt ra trong việc khai thác phần mềm h-ớng đối t-ợng </b>
- Xác định các lớp và đối t-ợng
<b>- G¸n tr¸ch nhiƯm </b>
<b>Ch-ơng 2. Các công cụ hỗ trợ phát triển h-ớng đối t-ợng </b>
Ph-ơng pháp phân tích thiết kế h-ớng đối t-ợng với việc sử dụng ngôn ngữ
UML cung cấp cho chúng ta ph-ơng tiện đủ mạnh để xác định các đối t-ợng và xây
dựng các đơn thể của hệ thống cần phát triển
<b>2.1. Khái quát về UML. </b>
<b> UML là một ngôn ngữ chuyên dụng </b>
UML<b> </b>-c -a vo sử dụng từ năm 1997, và đã nhanh chóng đ-ợc công
nghiệp phần mềm chấp nhận làm ngôn ngữ đồ hoạ chuẩn để đặc tả, xây dựng và làm
tài liệu cho các hệ thống phần mềm chuyên sâu.
UML là ngơn ngữ mơ hình hố, ngơn ngữ chuẩn thống nhất để viết ra bản kế
hoạch chi tiết phần mềm. Nó mơ tả ký pháp thống nhất, ngữ nghĩa và các định nghĩa
chính mơ hình hố. Các khung nhìn của ngơn ngữ cho phép nhìn nhận hệ thống đ-ợc
phát triển khác nhau, nó khơng khó hiểu và dễ sử dụng. Nh- mọi ngơn ngữ mơ hình
hố khác, UML có ký pháp (các biểu t-ợng sử dụng trong mơ hình)và tập các quy
tắc sử dụng nó để mơ hình hố các hệ thống của thế giới thực.
<b>UML lµ mét ngôn ngữ</b>
L mt ngụn ng UML có từ vựng và quy tắc tổ hợp các từ vựng đó nhằm
<b>UML là ngôn ngữ để biểu diễn đồ hoạ</b>
viết thành các mô hình thì thơng tin có thể mất hoặc khơng thể viết lại một cách đầy
đủ nếu chỉ xem mã lệnh trong tr-ờng hợp ng-ời viết mã chuyển đi nơi khác làm việc.
Để khắc phục những nh-ợc điểm trên, ta sẽ sử dụng ngôn ngữ UML để xây
dựng cỏc mụ hỡnh khỏc nhau:
- Mỗi ký pháp trong UML mang một ngữ nghĩa rõ ràng, nên nếu một ng-êi
trong đội phát triển viết mơ hình UML thì những ng-ời khác có thể hiểu
đ-ợc, thậm chí các cơng cụ khác cũng có thể dịch đ-ợc những mơ hình
đó một cách rõ ràng
- Các cấu trúc mô tả d-ới dạng các mơ hình đồ hoạ nên dễ dàng nắm bắt
- Mơ hình rõ ràng sẽ làm cho việc trao đổi, giao tiếp trở nên dễ dàng.
<b>UML là ngôn ngữ đặc tả</b>
Đặc tả là mô tả rõ ràng nhất những điểm mấu chốt của vấn đề. UML cho phép
mơ tả chính xác, khơng nhập nhằng và hồn thiện. UML tập trung đặc tả toàn bộ các
quyết định phân tích, thiết kế và cài đặt quan trọng trong quá trình phát triển và triển
khai hệ thống phần mềm.
<b>UML là ngôn ngữ để tạo mã</b>
UML không phải là ngơn ngữ lập trình trực quan, những mơ hình của nó có
thể kết nối trực tiếp tới các ngơn ngữ lập trình khác nhau. Điều đó có nghĩa là có thể
ánh xạ từ mơ hình trong UML sang một ngơn ngữ lập trình nh- Java, C++ hoặc
Visual Basic, thậm chí có thể sang các bảng trong cơ sở dữ liệu quan hệ hoặc cơ sở
dữ liệu h-ớng đối t-ợng. Đồng thời có thể thực hiện ng-ợc lại từ cài đặt về mơ hình
UML. Điều đó có nghĩa là nó cho phép chúng ta có thể làm việc với văn bản,
ch-ơng trình, hay đồ hoạ một cách nht quỏn.
<b>UML là ngôn ngữ làm tài liệu</b>
UML h-ớng tới làm tài liệu kiến trúc hệ thống và các chi tiết của nó. UML
cho khả năng biểu diễn yêu cầu, thử nghiệm, mơ hình hoá các hoạt động lập kế
hoạch và quản lý sản phẩm.
- UML cho biÕt giíi h¹n cđa hệ thống và các chức năng của nó thông qua các
tr-ờng hợp sử dụng (Use case) và tác nhân (Actor).
- <b>Tài liệu tham khảo </b>
- <b>TiÕng ViƯt</b>
- [1]. Đồn Văn Ban (1997), <i>Phân tích thiết kế và lập trình h-ớng đối t-ợng</i>, <i></i>
<i>tr23-35</i> NXB Thèng Kª
- [2]. Đồn Văn Ban (2003), <i>Phân tích, thiết kế h-ớng đối t-ợng bằng </i>
<i>UML,tr19-27</i>.
- [3]. Đặng Văn Đức (2002), <i>Phân tích thiết kế h-ớng đối t-ợng bằng UML, </i>NXB
Gi¸o dơc
- [4]. Nguyễn Văn Vỵ (2002), <i>Phân tích thiết kế các hệ thống thơng tin hin i</i>,
<i>ch-ơng 15,</i> NXB Thống Kê.
- [5]. Lê Minh TrÝ, (2002), <i>JavaScipt, </i>tËp 2, NXB trỴ.
- <b>TiÕng Anh </b>
- [6].Grady Booch, James Rumbaugh, Ivar Jacobson, 1999), <i>The Unifiel </i>
<i>Modelling Language user Guide, </i>Addison- Wesley, 482pp.
- [7]. Boggs, W., and Boggs, W., (1999), <i>Matering UML with Rational Rose, </i>
Sybex, 957pp.
- [8]. Craig Larman, (1998), <i>Applying UML and Patterns, </i>Prentice Hall PTR,
507pp.
- [9]. Eriksson, H.E., (1998), <i>UML Toolkit, </i>Wiley Computer, 397pp.
- [10]. Jacobson, Ivar, Grady Booch, and Jame Rumbaugh, (1999), <i>The Unified </i>
<i>Software Development Process</i>, Addison Wesley Longman, 463pp.
- [11]. Ivar Jacobson, Magnus Christerson, Patrik Jonsson, and Gunnar Evergaard,
(2000), <i>Object Oriented Softward Engineering, Use Case Drive Approach</i>,
Wokingham, England, Addison Wesley, 245pp.
- [12]. Mughal, K.A., and Rasmussen, R.W., (2000), <i>A.Programmer’s Guide to </i>
<i>JavaTM Certification, </i>A®ion – Wesley
- [13]. Trainee’s Material, (1997), <i> Internet and Java, </i> First Edition
- [14] . Zhiming Liu, (2001), <i>Object Oriented Software Development Using UML, </i>