Tải bản đầy đủ (.pdf) (4 trang)

Tài liệu Báo cáo " Nghiên cứu và thiết kế kiến trúc phần mềm cho các hệ thống lớn và phức tạp " docx

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 (253.86 KB, 4 trang )

Nghiên cứu và thiết kế kiến trúc phần mềm
cho các hệ thống lớn và phức tạp

Vũ Văn Lĩnh

Trường Đại học Công nghệ
Luận văn Thạc sĩ ngành: Công nghệ phần mềm; Mã số: 60 48 10
Người hướng dẫn: Ts. Phạm Ngọc Hùng
Năm bảo vệ: 2011

Abstract: Đưa ra các khái niệm cơ bản về kiến trúc phần mềm, thiết kế kiến trúc phần
mềm, một số kiểu kiến trúc phần mềm tiêu biểu. Giới thiệu các bước thiết kế kiến trúc
phần mềm và đánh giá ưu nhược điểm của thiết kế kiến trúc phần mềm. Mô tả về quy
trình khám chữa bệnh trong y tế. Phân tích xử lý nghiệp vụ của hệ thống quản lý, xử lý
ảnh trong y tế. Tiến hành thiết kế kiến trúc phần cho hệ thống quản lý, xử lý ảnh trong
y tế. Trình bày cách thức cài đặt kiến trúc phần mềm. Đề xuất phương pháp, các bước
đi từ thiết kế kiến trúc tới thiết kế chi tiết sao cho hiệu quả.Tóm tắt kết quả đã đạt
được, nêu lên những hạn chế và hướng nghiên cứu phát triển trong tương lai

Keywords: Công nghệ thông tin; Công nghệ phần mềm; Tin học; Y tế

Content
1.1 Đặt vấn đề
Trong phát triển phầm mềm, có rất nhiều mô hình phát triển khác nhau như mô hình thác
nước, mô hình xoắn ốc, … Hiện nay, mô hình phát triển phần mềm được sử dụng rộng rãi là
mô hình chữ V, được cải tiến từ mô hình thác nước. Trong mô hình phát triển phần mềm hình
chữ V, các công việc được chia thành các giai đoạn khác nhau, mỗi giai đoạn sẽ thực hiện một
số công việc cụ thể. Ví dụ giai đoạn thiết kế kiến trúc (Architecture Design - AD) sẽ thực hiện
chuyển hóa các đặc tả yêu cầu phần mềm (Software Requirement Specification - SRS) thành
các mô tả thiết kế kiến trúc được thể hiện thông qua các hình vẽ, tài liệu mô tả, … Dựa vào
kết quả thiết kế kiến trúc đó, các nhà thiết kế chi tiết có thể tạo ra các bản thiết kế chi tiết cho


phần mềm, phục vụ cho quá trình cài đặt chương trình được dễ dàng, thuận tiện.

2

Hình 1.1: Mô hình phát triển phần mềm hình chữ V [5].

Dựa vào hình 1.1 ta thấy thiết kế kiến trúc chính là một giai đoạn trong mô hình phát triển
phần mềm.
Khi xây dựng và phát triển phần mềm nếu phát triển đúng và đầy đủ theo các giai đoạn
của mô hình phần mềm đang áp dụng, đặc biệt là giai đoạn thiết kế, phần mềm sẽ tránh được
sự rủi ro và có chất lượng tốt. Trên thực tế chúng ta thường làm việc không có kế hoạch cụ
thể, làm tới đâu nghĩ tới đó, xem nhẹ bước thiết kế, coi trọng cài đặt mã nguồn. Kết quả mà
chúng ta thu được thường là một khối mã nguồn rối rắm hoặc nếu có thì cũng chỉ là một
chương trình nhỏ với vài chức năng cần thiết, rất khó cho bảo trì và tái sử dụng. Đôi khi,
chúng ta làm việc có phần chủ quan và mang tính tự phát, nhưng nếu bình tĩnh nghiên cứu,
làm việc có kế hoạch và áp dụng các tiến trình thiết kế phần mềm vào trong bài toán của
mình, chúng ta có thể thấy được nhiều hướng đi, nhiều cách giải quyết, mà có thể đó là những
lời giải tối ưu mà trước đó chúng ta không thấy hoặc đã bỏ qua. Điều quan trọng hơn cả là
chúng ta có thể theo dõi và kiểm soát được những gì đang xảy ra. Thiết kế là đồng nghĩa với
việc tiết kiệm thời gian và tiền bạn. Nếu không có bản thiết kế hoặc thiết kế không tốt, khi có
thay đổi yêu cầu một vài chức năng trong phần mềm hoặc nâng cấp, cải tiến các chức năng
đó, chúng ta phải làm lại một chương tình hoàn toàn mới hoặc phải nghiên cứu lại toàn bộ mã
nguồn, điều đó đồng nghĩa với việc tiêu tốn của chúng ta khá nhiều thời gian và tiền bạc. Mặt
khác dưới một góc nhìn rộng và bao quát hơn, thông qua việc phản ánh các kết quả của quá
trình phân tích, thiết kế thường xác định cho chúng ta nhiều hướng đi, nhiều cách thức giải
quyết trên cùng một bài toán, từ đó cho phép chúng ta chọn được cách thức tốt nhất và con
đường ngắn nhất để đi tới đích [1].
Với sự phát triển nhanh của công nghệ thông tin, ngày nay nhiều lĩnh vực trong đời sống
đã được tin học hóa, giúp cho quá trình xử lý công việc nhanh và đơn giản hơn, giúp cho tiết
kiệm rất nhiều thời gian và tiền bạc.


3
Với sự phát triển của kinh tế, ngày nay cuộc sống con người được cải thiện rất nhiều. Nhu
cầu về chăm sóc, khám chữa bệnh, phát hiện, chuẩn đoán và chữa trị bệnh sớm được tăng lên,
khi đó tin học là cánh tay đắc lực giúp cho việc này.
Năm 2009, khi tôi đang làm việc tại công ty phần mềm FPT, chúng tôi nhận được đơn đặt
hàng của khách hàng bên Nhật Bản, yêu cầu nâng cấp, xây dựng chức năng mới cho hệ thống
quản lý, xử lý ảnh trong y tế. Khi nhận được bài toán, chúng tôi đã tiến hành khảo sát và phân
tích thấy hệ thống cũ có một số hạn chế như sau:
Thứ nhất hệ thống là một chương trình hoàn chỉnh, với mã nguồn rất lớn, hỗn độn nhưng
rất ít tài liệu mô tả về hệ thống. Kiến thức về các chức năng, xử lý nghiệp vụ của hệ thống
không được viết thành tài liệu, mỗi người hiểu một phần rời rạc. Khi phát triển, phần mềm
được phát triển dựa trên hai công nghệ, môi trường lập trình khác nhau. Phần giao diện giao
tiếp với người dùng được viết bằng VB6, sử dụng nhiều thành phần sẵn có trong VB6. Ngoài
ra sử dụng rất nhiều các thư viện của hãng thứ ba nên tính đồng nhất không cao, thường
xuyên phải nâng cấp các phiên bản. Cùng với thời gian phần cứng được thay đổi nhiều, khi đó
VB6 không thể đáp ứng với phần cứng với các phiên bản mới hơn. Mặt khác có nhiều loại
màn hình kích thước khác nhau, chương trình phải đáp ứng sự tùy biến sao cho phù hợp với
các loại màn hình đó, việc này VB6 làm rất khó khăn, gần như không thể. Hơn nữa, VB6 là
ngôn ngữ lập trình hướng thủ tục nên khả năng mở rộng kém, khi thêm các chức năng mới rất
khó khăn. Phần thuật toán xử lý, lưu trữ, thao tác với ảnh thì viết bằng C++. Các phần viết rời
rạc, sự sử dụng lại kém, hình như không có.
Hạn chế thứ hai là quá trình bảo trì và nâng cấp vô cùng khó khăn, khi mở rộng thì mất
nhiều công sức, thậm chí làm ảnh hướng tới chức năng đã có, có thể dẫn tới xử lý sai.
Những khó khăn này đặt ra cho chúng tôi phải có phương pháp đánh giá, hướng tiếp cận
phù hợp để có thể nâng cấp, xây dựng chức năng mới cho phù hợp và xử lý chính xác. Cuối
cùng, sau một thời gian phân tích, đánh giá nghiêm túc, chúng tôi đã tìm ra được hướng đi
phù hợp, đó là phải làm tốt ngay từ giai đoạn phân tích, thiết kế, đặc biệt là thiết kế kiến trúc
phần mềm.
1.2 Nội dung nghiên cứu

Luận văn tập trung nghiên cứu lý thuyết về thiết kế kiến trúc phần mềm, các thành phần
chính trong thiết kế kiến trúc phần mềm, đặc điểm của một số kiểu kiến trúc phần mềm tiêu
biểu, các bước thiết kế kiến trúc phần mềm và đánh giá ưu nhược điểm của thiết kế kiến trúc
phần mềm. Sau đó luận văn tập trung vào quá trình khảo sát, phân tích hệ thống quản lý, xử lý
ảnh trong y tế. Từ kết quả khảo sát, phân tích đó, luận văn trình bày chi tiết quá trình áp dụng
các bước thiết kế kiến trúc phần mềm vào bài toán quản lý, xử lý ảnh trong y tế.
Luận văn cũng mô cách thức cài đặt thiết kế kiến trúc phần mềm, đề xuất phương pháp,
các bước đi từ thiết kế kiến trúc tới thiết kế chi tiết sau cho hiệu quả.
1.3 Cấu trúc luận văn
Các phần còn lại của luận văn có cấu trúc như sau:

4
Chương 2 trình bày các khái niệm cơ bản về kiến trúc phần mềm, thiết kế kiến trúc phần
mềm, một số kiểu kiến trúc phần mềm tiêu biểu. Sau đó trình bày các bước thiết kế kiến trúc
phần mềm và đánh giá ưu nhược điểm của thiết kế kiến trúc phần mềm.
Chương 3 mô tả về quy trình khám chữa bệnh trong y tế. Phân tích xử lý nghiệp vụ của hệ
thống quản lý, xử lý ảnh trong y tế.
Chi tiết quá trình áp dụng các bước thiết kế kiến trúc phần mềm đã nêu ở chương 2 để
thiết kế kiến trúc cho hệ thống quản lý, xử lý ảnh trong y tế được mô tả chi tiết trong chương
4.
Chương 5 mô tả cách thức cài đặt kiến trúc phần mềm. Đề xuất phương pháp, các bước đi
từ thiết kế kiến trúc tới thiết kế chi tiết sao cho hiệu quả.
Tóm tắt kết quả đã đạt được, trình bày những hạn chế và hướng nghiên cứu phát triển
trong tương lai sẽ được trình bày trong phần kết luận.

References
Tiếng Việt
[1] Phương Lan (2005), Design Patterns, NXB Phương Đông, TP. Hồ Chí Minh.
Tiếng Anh
[2] R. N. Taylor, N. Medvidovic and E. M. Dashofy (2009), “Software Architecture

Foundations, Theory, and Practice”, Wiley.
[3] J.D. Meier, Alex Homer, David Hill, Jason Taylor and Prashant Bansode, “Microsoft
Application Architecture Guide”, Microsoft Corporation
[4] Albin and Stephen T (2003), “The Art of Software Architecture Design Methods and
Techniques”, John Wiley & Sons.
[5] Paul C. Jorgensen (1995), “Software Testing A Craftsman's Approach”, CRC Press.
[6] David Garlan and Mary Shaw (1993), “An Introduction to Software Architecture.”,
New Jersey.

×