Lĩnh vực Công nghệ thông tin
nghiên cứu UML và ứng dụng UML vào quá trình
phát triển phần mềm
KS. Lu Thị Thu Hiền
Trung tâm Công nghệ thông tin
Tóm tắt:
Xu thế áp dụng phơng pháp hớng đối tợng thay cho phơng pháp hớng chức năng (phơng pháp
truyền thống) ngày càng đợc áp dụng phổ biến vào các hệ thống phần mềm.
Đối với một hệ thống lớn, phơng pháp tiếp cận hớng đối tợng sử dụng UML đợc áp dụng nh
một quá trình suy diễn phát triển hệ thống để việc trao đổi giữa ngời thu thập thông tin với
khách hàng, giữa ngời thiết kế với ngời lập trình ... cùng sử dụng một ngôn ngữ mô hình hoá.
Rất nhiều dự án phải thay đổi dẫn đến tăng thêm chi phí do không có sự thống nhất giữa
khách hàng và nhà sản xuất, giữa nhà quản lý và ngời thiết kế, những ngời phát triển sản
phẩm với nhau.
Nhận thấy rõ vai trò và tầm quan trọng của nó, Trung tâm Công nghệ thông tin CDiT
(thuộc Học viện Công nghệ BCVT) đã quyết định chọn hớng nghiên cứu ứng dụng UML
nhằm nâng cao chất lợng sản phẩm thông qua cải tiến tối u quy trình sản xuất phần mềm
bằng việc mô hình hóa quá trình.
1. Nhu cầu thực tế và khả năng ứng dụng của UML
Ngôn ngữ mô hình hợp nhất (UML - Unified Modelling Language) đợc tổ chức OMG
(Object Management Group) công nhận chuẩn công nghiệp vào tháng 11/1997 là công cụ hỗ
trợ đắc lực cho phơng pháp luận hớng đối tợng.
Ngôn ngữ mô hình hợp nhất này phù hợp cho việc mô hình hoá các hệ thống nh: hệ thống
thông tin doanh nghiệp, các ứng dụng phân tán trên nền Web, hệ thống nhúng thời gian
thực
Đặc biệt, nó còn đợc sử dụng cho mọi tiến trình phát triển phần mềm, xuyên suốt vòng đời
phát triển sản phẩm và độc lập với các công nghệ cài đặt hệ thống.
Đối với ngành Bu chính Viễn thông, các bài toán đặc thù của ngành có một số đặc điểm đòi
hỏi khá khắt khe:
- Phạm vi áp dụng bài toán rất lớn và có tính mở cao.
- Phức tạp và đa dạng, đòi hỏi độ chính xác cao.
- Thời gian phát triển và nâng cấp hệ thống không có giới hạn vì nghiệp vụ viễn thông
không chỉ luôn có những bớc tiến mới mà còn tốc độ các công nghệ kỹ thuật tiên tiến
không ngừng gia tăng.
- Đòi hỏi cần có một kiến trúc vững vàng và hiểu đợc bức tranh tổng thể cũng nh hiểu đúng
yêu cầu thực tế. Vấn đề này rất cần cho những bài toán lớn trong các trờng hợp nếu hệ
thống bổ sung thêm các chức năng mà nhóm phát triển phải làm lại từ đầu thì mất rất
nhiều công sức, chi phí và thời gian. Do vậy, kiến trúc là một xơng sống của hệ thống.
Để chuyển tải và hiểu rõ yêu cầu đó của khách hàng, việc áp dụng UML trong quá trình phát
triển phần mềm là hoàn toàn phù hợp và đáp ứng đợc yêu cầu bài toán đặt ra.
UML là ngôn ngữ mô hình hợp nhất:
Học viện Công nghệ BCVT
Hội nghị Khoa học lần thứ 5
- Đặc tả thông tin(specifying): mô tả rõ ràng những điểm mấu chốt của vấn đề, cho phép
mô tả mô hình chính xác, không nhập nhằng. UML hớng tới đặc tả thiết kế, phân tích và
quyết định cài đặt trong quá trình phát triển và triển khai hệ thống phần mềm.
- Trực quan (Visualizing - có thể nhìn thấy đợc): ngời phát triển có thể giao tiếp thông qua
mô hình khái niệm.
- Xây dựng (Constructing): có thể ánh xạ mô hình trong UML tới các ngôn ngữ lập trình
khác nhau nh: Java, C++, hay các bảng CSDL quan hệ, CSDL hớng đối tợng. ánh xạ này
cho khả năng biến đổi thuận từ mô hình UML sang ngôn ngữ lập trình. Đồng thời có khả
năng biến đối ngợc từ cài đặt về mô hình UML; có nghĩa rằng nó cho khả năng làm việc
với văn bản hay đồ họa nhất quán.
- Lập tài liệu(documenting): 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 hóa các hoạt động
lập kế hoạch và quản lý sản phẩm.
Chúng ta có thể áp dụng UML cho các kiểu hệ thống khác nhau, các lĩnh vực, các phơng
pháp hoặc các quy trình, mô hình phát triển khác nhau. Trong quá trình xây dựng hệ thống
phần mềm theo hớng đối tợng UML đợc sử dụng cho mọi tiến trình, xuyên suốt vòng đời
phát triển và không phụ thuộc công nghệ dùng trong lập trình hệ thống.
Các đặc điểm của UML:
- Là một ngôn ngữ mô hình đa dụng: tập trung chủ yếu vào các khái niệm cơ bản cho việc
yêu cầu, chia sẻ và tận dụng tối đa kiến thức với các cơ cấu mở rộng.
- Là một ngôn ngữ mô hình đợc áp dụng rộng rãi, nó đợc áp dụng ở các kiểu hệ thống
(phần mềm và phi-phần mềm ), các miền, các phơng thức và các quy trình khác nhau.
- UML là một ngôn ngữ mô hình hỗ trợ công cụ, các công cụ này là sẵn sàng hỗ trợ ứng
dụng ngôn ngữ để chi tiết hóa(đặc tả), trực quan, xây dựng và lập tài liệu cho các hệ
thống dễ dàng và tiện lợi.
- UML là một ngôn ngữ mô hình chuẩn, nó là một ngôn ngữ đợc công nhận có tính mở
cao.
UML có khả năng làm giảm chi phí và thời gian thực hiện, hạn chế tối thiểu các rủi ro có thể
xảy ra khi hệ thống có sự thay đổi liên tục và đối với những hệ thống phức tạp.
Một đặc điểm của UML nữa là tính hệ thống hoá từ phơng pháp luận, mô hình phát triển cho
tới công cụ (thiết kế, kiểm tra, quản lý cấu hình) có mối liên kết chặt chẽ với nhau. Đây là
điểm rất khác biệt đối với các công cụ dùng thiết kế cho hớng chức năng.
2. Một số kết quả đạt đợc trong quá trình nghiên cứu UML tại CDiT
Quá trình nghiên cứu UML của Trung tâm Công nghệ thông tin bớc đầu đã đạt đợc một
số kết quả khá khả quan: làm chủ đợc công nghệ mới từ đó xây dựng thành công mô hình
hoá quy trình sản xuất phần mềm ứng dụng UML, sử dụng công cụ Rational Rose cho quá
trình phân tích và thiết kế.
Quy trình sản xuất phần mềm có ứng dụng UML mô hình hóa quá trình phát triển phần
mềm tuân thủ các nguyên tắc sau đây:
2.1.Phát triển theo lặp và tăng dần
Ngời phát triển phải thử nhiều trờng hợp và cải tiến dần giải pháp của mình cho đến khi có
đợc mô hình thỏa mãn yêu cầu chức năng cũng nh dễ thay đổi hay mở rộng.
Học viện Công nghệ BCVT
Lĩnh vực Công nghệ thông tin
2.2.Use case điều khiển (Use-case driven)
Use-case driven: các use case (UC) đợc sử dụng nh là một nhân tố chính cho việc xây dựng
cách thức hoạt động cần thiết của hệ thống. Các UC điều khiển tất cả công việc của nhóm
phát triển kể từ khi bắt đầu dự án và thỏa thuận các yêu cầu khách hàng cho đến khi lập trình.
Hình vẽ dới đây cho chúng ta thấy rằng: Ngời sử dụng mô tả Use-case, ngời thiết kế có
nhiệm vụ thiết kế UC, lập trình viên cài đặt UC và nhân viên kiểm định chất lợng kiểm tra
UC.
2.3.Tập trung vào kiến trúc (Architecture centric)
Kiến trúc của một hệ thống đợc xem nh một nền tảng cơ bản trong quá trình phát triển phần
mềm. Kiến trúc hệ thống liên kết với các use case để điều khiển và giám sát các góc độ của
hệ thống. Đứng ở góc độ quy trình, kiến trúc đợc thể hiện rõ dới dạng các khung nhìn cơ bản
trong sáu mô hình. Các khung nhìn đó phản ánh Tầm quan trọng của kiến trúc các phần tử
trong các mô hình, cách chúng làm việc cùng nhau, các khung nhìn hình thành nên mô tả
kiến trúc.
Kiến trúc hệ thống đợc nhóm phát triển dự án mô tả và hình thành ngay giai đoạn ban đầu
sau đó trong suốt quá trình phát triển nó sẽ đợc bổ sung và cập nhật theo thực tế thực hiện.
Các phần mềm hiện nay có xu hớng tập trung trên việc tính toán phân tán, vì vậy nó cũng trở
nên khá phức tạp và không ai có thể nói rằng công cụ và công nghệ sẽ theo kịp ở bất cứ
thời gian nào. Yêu cầu của khách hàng thờng xuyên có sự thay đổi. Do vậy chúng ta cũng
khó thể hiểu đầy đủ về bức tranh tổng thể của hệ thống. Vì lý do này mà kiến trúc chính là
phơng tiện đầu tiên giúp cho chúng ta có thể hiểu đợc dễ dàng bức tranh tổng thể của hệ
thống. Nhóm phát triển có thể sử dụng hiệu quả các mô hình kiến trúc mẫu có thể trợ giúp
định hớng nỗ lực phát triển ở các mức khác nhau (Client/Server, mô hình kiến trúc 3 lớp, mô
hình kiến trúc n-lớp).
Một trong các nguyên lý cơ bản của việc phát triển dựa trên các thành phần (component
based development) là khả năng sử dụng lại của các thành phần, với việc bổ sung sửa đổi
(customize) là tối thiểu trong ngữ cảnh khác nhau. Một kiến trúc tốt là các thành phần có thể
làm việc cùng với nhau và các nhóm phát triển có thể đợc sử dụng lại trong việc xây dựng
một hệ thống khác. Việc này đã làm giảm đợc thời gian cho các nhóm phát triển tập trung
vào việc xây dựng các thành phần mới, và vì vậy các nhóm có thể tận dụng tối đa thời gian
này để tìm hiểu kỹ hơn về các vấn đề của khách hàng và các giải pháp mô hình.
Mô hình của UML thể hiện trong các loại biểu đồ sau: Biểu đồ Use-case, Biểu đồ lớp (Class
Diagram), Biểu đồ cộng tác(Collaboration Diagram), Biểu đồ hoạt động (Activity Diagram),
Học viện Công nghệ BCVT
Nguoi su dung
Lap trinh vien
Thietke
Nguoi phan tich
Kiemtra
UseCase
Diendat
Caidat
Thietke
Hieu
Kiemtra
Hội nghị Khoa học lần thứ 5
Biểu đồ trang thái (State Diagram), Biểu đồ tuần tự (Sequence Diagram), Biểu đồ đối tợng
(Object Diagram).
Qua quá trình nghiên cứu đồng thời cũng giúp cho nhóm phát triển:
- Nắm đợc các khái niệm căn bản và phơng pháp phân tích hệ thống hớng đối tợng
- Phân biệt giữa phơng pháp phân tích hệ thống hớng chức năng và phơng pháp phân tích
hệ thống hớng đối tợng, các mô hình phát triển phần mềm đặc trng cho từng phơng pháp.
- Kỹ năng sử dụng công cụ Rational Rose để thể hiện mô hình hệ thống thông tin cần phân
tích.
3. Kết luận
UML với rất nhiều u điểm đặc trng của mình, là một ngôn ngữ mô hình hoá có nhiều tiềm
năng trợ giúp cho các tổ chức phần mềm đạt đợc hiệu quả và chất lợng cao. Tuy nhiên, để áp
dụng thành công UML vào quá trình sản xuất phần mềm, chúng ta không thể không nhắc đến
sự quan tâm đầu t, chỉ đạo sát sao của lãnh đạo trung tâm CDiT. Đồng thời, yếu tố mang lại
thành công không kém phần quan trọng đó là định hớng phát triển. Đối với một môi trờng
công nghệ cao và một nền kinh tế tri thức không có con đờng nào khác là tham gia vào cuộc
chạy đua tri thức.
Đặc biệt trong lĩnh vực CNPM, đây là một lĩnh vực khó và khá mới mẻ ở Việt Nam. Do vậy,
xác định hớng đi đúng đắn ngay từ ban đầu đã tiết kiệm đợc chi phí thực hiện và tránh đợc
lãng phí về thời gian.
Góp phần cho sự thành công của kết quả này, đội ngũ trẻ của CDiT không ngừng phấn đấu
lao động, sáng tạo, trau dồi kiến thức và thờng xuyên trao đổi, học hỏi kinh nghiệm lẫn
nhau.
Dựa vào thành quả đạt đợc trong quá trình nghiên cứu UML, Trung tâm công nghệ thông tin-
CDIT đã xác định rõ hớng đi tiếp theo đó là:
- Đào tạo về UML cho tất cả các cán bộ nghiên cứu của Trung tâm công nghệ thông tin.
- Nghiên cứu, triển khai áp dụng đồng bộ công cụ có sẵn hỗ trợ UML của Rational theo
các phơng diện khác nhau nh quản lý dự án, đánh giá kiểm tra sản phẩm, theo các giai
đoạn khác nhau trong sản xuất phần mềm: Kiểm soát và phân tích yêu cầu, phân tích và
thiết kế, Kiểm tra, quản lý cấu hình nhằm giảm thiểu lỗi trong quá trình sản xuất phần
mềm.
Với trọng tâm: Chất lợng luôn luôn là vấn đề sống còn, do vậy Trung tâm công nghệ
thông nguyện phát huy kết quả đã đạt đợc, đem hết năng lực và nhiệt tình thúc đẩy sự
nghiệp phát triển ngang tầm với đòi hỏi của thời kỳ công nghiệp hoá, hiện đại hoá đất nớc.
Tài liệu tham khảo
1. UML distilled second edition, A brief guide to the standard object modeling language,
Martin follower with Kendall scott
2. UML in a nutshell, Sinan Si Alhir, OReilly
3. Object-Oriented Project management with UML, Murray R.Cantor
4. Phân tích thiết kế hớng đối tợng bằng UML, Đặng Văn Đức
5. Nghiên cứu về UML để phân tích và thiết kế hệ thống thông tin quản lý, Trần Văn Lăng
6.
7. Object-oriented Analysis and design using the UML, Rational University professional
education and product training.
Học viện Công nghệ BCVT
LÜnh vùc C«ng nghÖ th«ng tin
8. Lecture 4: Software Lifecycles, University of Toroton, Department of computer
science.
9. Lecture8: Advanced design issues, Software engineering.
Häc viÖn C«ng nghÖ BCVT