Bài giảng Phân tích & Thiết kế hệ thống - Chương 1: Những vấn đề chung - Nguyễn Trần Phương

Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
CHƢƠNG 1:  
NHỮNG VẤN ĐỀ CHUNG  
Chương này trình bày các nội dung trọng tâm:  
- Các khái niệm cơ bản.  
- Các hệ thống thông tin và vấn đề phát triển hệ thống thông tin  
- Các giai đoạn trong quá trình xây dựng HTTT  
- Các định hướng trong cách tiếp cận để thực hiện một dự án tin học.  
1.1 HỆ THỐNG THÔNG TIN  
1.1.1 Hệ thống thông tin  
Hệ thống là tập hợp các phần tử tương tác được tổ chức nhằm thực hiện một  
mục đích xác định. Áp dụng định nghĩa này vào các tổ chức ta cần chính xác hoá  
một số khái niệm:  
Các phần tử ở đây tập hợp các phương tiện vật chất và nhân lực.  
Tổ chức tạo thành một hệ thống mở, nghĩa là liên hệ với một môi trường.  
Một số phần tử của hệ thống có sự tương tác với bên ngoài (cung ứng, thương mại,  
v.v…).  
Hệ thống thông tin là một hệ thống mà mối liên hệ giữa các thành phần của  
nó cũng như những liên hệ của nó với với các hệ thống khác là liên hệ thông tin.  
Hệ thống thông tin của một tổ chức là bao gồm các nguồn lực và quy trình  
xử lý thông tin trong tổ chức đương nhiên không thể bỏ qua các thông tin. Khi nói  
đến thông tin thì nhất thiết phải kể đến:  
Kiểu thông tin: Ví như văn bản, số liệu, âm thanh, hình ảnh, tri thức.  
Phương tiện lưu trữ thông tin: Giấy, phim, ảnh, đĩa vv....  
Các quy tắc và phương pháp biến đổi thông tin.  
Như vậy hệ thống thông tin tin học hóa chính là phần mềm tin học được cấu  
thành bởi các yếu tố con người, thông tin, phương tiện và phương pháp xử lý tin.  
1.1.1.1 Các hệ thống thông tin  
Ngày nay, các ứng dụng công nghệ thông tin đã được áp dụng trong hầu hết  
các lĩnh vựa khác nhau của đời sống xã hội. Tuỳ theo quan điểm mà có thể phân  
loại các hệ thống thông tin theo các tiêu chí khác nhau. Tuy nhiên xét về mặt ứng  
dụng, hệ thống thông tin có thể được phân chia thành một số nhóm như sau:  
Hệ thống thông tin quản lý:  
Bao gồm các hệ thống thông tin hỗ trợ các hoạt động nghiệp vụ và quản lý  
của các doanh nghiệp, các tổ chức. Ví dụ các hệ thống quản lý nhân sự, hệ thống  
kế toán, hệ thống tính cước và chăm sóc khách hàng, hệ thống quản lý thư viện, hệ  
thống đào tạo trực tuyến, hệ thống quản lý các đại lý bán hàng từ xa ...  
Các hệ thống Website:  
Gồm các hệ thống có nhiệm vụ cung cấp thông tin cho người dùng trên môi  
trường mạng Internet. Các hệ thống Website có đặc điểm là thông tin cung cấp cho  
người dùng có tính đa dạng (có thể là tin tức hoặc các dạng file đa phương tiện) và  
được cập nhật thường xuyên.  
Giáo viên biên soạn: Nguyễn Trần Phương  
4
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
Gồm cả các hệ thống website đặc biệt cung cấp các dịch vụ chủ yếu là việc  
trao đổi mua bán hàng hoá trên môi trường Internet. Hệ thống thương mại điện tử  
bao gồm cả các nền tảng hỗ trợ các giao thức mua bán, các hình thức thanh toán,  
chuyển giao hàng hoá ...  
Hệ thống điều khiển:  
Gồm các hệ thống phần mềm gắn với các thiết bị phần cứng hoặc các hệ  
thống khác nhằm mục đích điều khiển và giám sát hoạt động của thiết bị hay hệ  
thống đó. Ví dụ như hệ thống máy tính nhúng trong một dây truyền sản xuất, hệ  
thống điều khiển lò nung, hệ thống điều khiển cửa phai thủy điện, v.v...  
Mỗi loại hệ thống thông tin có những đặc trưng riêng và cũng đặt ra những  
yêu cầu riêng cho việc phát triển hệ thống. Ví dụ, các hệ thống điều khiển đòi hỏi  
những yêu cầu về môi trường phát triển, hệ điều hành và ngôn ngữ lập trình riêng;  
các hệ website thực thi các chức năng trên môi trường mạng phân tán đòi hỏi cách  
phát triển riêng...Do vậy, không có một phương pháp luận chung cho tất cả các  
dạng hệ thống thông tin.  
Có một cách phân chia khác:  
Hệ thống thông tin (Information System):  
Cất giữ, lấy, biến đổi biểu diễn thông tin cho người sử dụng. Xử lý những  
khoảng dữ liệu lớn có các quan hệ phức tạp , mà chúng được lưu trữ trong các cơ  
sở dữ liệu quan hệ hay hướng đối tượng .  
Hệ thống kỹ thuật (Technical System):  
Xử lý và điều khiển các thiết bị kỹ thuật như viễn thông, hệ thống quân sự,  
hay các quá trình công nghiệp. Đây là loại thiết bị phải xử lý các giao tiếp đặc biệt,  
không có phần mềm chuẩn và thường là các hệ thống thời gian thực (real time).  
Hệ thống nhúng (Embeded System):  
Thực hiện trên phần cứng gắn vào các thiết bị như điện thoại di động, điều  
khiển xe hơi, … Điều này được thực hiện bằng việc lập trình mức thấp với hỗ trợ  
thời gian thực. Những hệ thống này thường không có các thiết bị như màn hình đĩa  
cứng, …  
Hệ thống phân bố ( Distributed System):  
Được phân bố trên một số máy cho phép truyền dữ liệu từ nơi này đến nơi  
khác một cách dễ dàng. Chúng đòi hỏi các cơ chế liên lạc đồng bộ để đảm bảo toàn  
vẹn dữ liệu và thường được xây dựng trên một số các kỹ thuật đối tượng như  
CORBA, COM/DCOM, hay Java Beans/RMI.  
Hệ thống Giao dịch (Business System):  
Mô tả mục đích, tài nguyên (con người, máy tính, …), các quy tắc (luật  
pháp, chiến thuật kinh doanh, cơ chế, …), và công việc hoạt động kinh doanh.  
Phần mềm hệ thống (System Software):  
Định nghĩa cơ sở hạ tầng kỹ thuật cho phần mềm khác sử dụng, chẳng hạn  
như hệ điều hành, cơ sở dữ liệu, giao diện người sử dụng.  
Giáo viên biên soạn: Nguyễn Trần Phương  
5
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
1.1.1.2 Các tính năng của hệ thống thông tin  
Các tính năng của một hệ thống thông tin gồm:  
o Thời gian trả kết quả: Tức là thời gian kể từ khi hệ thống nhận được  
thông tin yêu cầu cho đến khi có quyết định tương ứng với thông tin yêu cầu đó.  
o Khối lượng của thông tin được xử lý.  
o Độ phức tạp của dữ liệu cần xử lý và cả độ phức tạp của xử lý.  
o Độ phức tạp của cấu trúc hệ thống cho dù quy mô của hệ thống không  
lớn.  
o Độ tin cậy của hệ thống trong đó phải tính đến cơ chế an toàn, dự phòng  
các sự cố ngoài mong đợi. Bên cạnh đó là sự chính xác của quá trình xử lý thông  
tin cũng như độ ổn của hệ thống mà nguyên nhân chủ yếu đề phát sinh từ con  
người.  
1.2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG THÔNG TIN  
Phân tích và thiết kế hệ thống thông tin là một phương pháp được sử dụng  
để tạo và duy trì hệ thống thông tin nhằm thực hiện các chức năng cơ bản như lưu  
trữ, xử lý thông tin và truyền thông tin. Mục tiêu chính của phân tích và thiết kế hệ  
thống là cải tiến hệ thống cấu trúc theo một hay một nhóm các quy trình, điển hình  
là qua ứng dụng phần mềm, phần mềm có thể giúp đỡ những người sử dụng hoàn  
tất các công việc chính của đơn vị được dễ dàng và hiệu quả hơn. Là một người  
phân tích hệ thống, bạn sẽ phải là trung tâm của sự phát triển phần mềm đó. Phân  
tích và thiết kế hệ thống thông tin được dựa trên:  
o Sự hiểu biết của bạn về các mục tiêu, các cấu trúc và các qui trình của tổ  
chức.  
o Kiến thức về tin học và am hiểu chuyên môn của bạn đối với lĩnh vực sẽ  
triển khai công nghệ thông tin nhằm mang lại lợi ích cho tổ chức theo yêu cầu.  
Trên thực tế chưa có một phần mềm nào ngay khi đưa vào sử dụng cũng như  
quá trình sử dụng mà không có những phiếm khuyết. Vậy cho nên việc nghiên cứu  
nhu cầu đánh giá hiện trạng và phân tích trước khi thiết kế là điều không thể thiếu  
với dự án tin học hóa hệ thống, điều đó sẽ giảm chi phí cho việc phát triển hệ  
thống.  
Thông thường phía đầu tư thuê nhà phát triển với yêu cầu hết sức mờ, mơ hồ  
có dạng “Phần mềm quản lý...” hoặc “Trang tin điện tử của đơn vị ...” chứ  
không nói rõ là sẽ tin học hóa một vấn đề cụ thể nào. Thế nhưng khi vận hành nhà  
đầu tư chỉ quan tâm tới những nhu cầu trực tiếp và bỏ qua phần tổng thể của hệ  
thống tất nhiên là không bao giờ nói đến các mối liên hệ công tác giữa các nhóm  
trong đơn vị cũng như các quy định, quy trình riêng hiện đang có và đang vận hành  
tại đơn vị của mình. Vì thế nhất thiết phải có một phương pháp khoa học hướng  
dẫn việc thực hiện dự án tin học hóa tùy theo mô hình sẽ phát triển.  
Có rất nhiều quan điểm về cách tiếp cận vấn đề cũng như việc phân chia các  
giai đoạn và cách gọi tên (có tài liệu, giáo trình chỉ có bốn giai đoạn, có tài liệu  
giáo trình phân chia thành tám giai đoạn. Tuy nhiên trong phạm vi khuôn khổ của  
tài liệu này và điều kiện cụ thể tại nhà trường, tôi xin phân chia các giai đoạn như  
sau: Lập kế hoạch, xác định yêu cầu; Phân tích; Thiết kế; Thi công; Thử  
Giáo viên biên soạn: Nguyễn Trần Phương  
6
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
nghiệm; Bảo trì và nội dung chủ yếu của từng giai đoạn được tóm tắt ở các mục  
tương ứng.  
1.2.1 Các quan điểm phân tích  
Quan điểm tiếp cận tổng thể theo đó mọi thành phần, mọi dữ liệu, mọi chức  
năng đều là hợp phần trong tổng thể và sự hiểu biết tất cả những điều đó là cần  
thiết cho việc phát triển hệ thống. Thế nhưng sự hiểu biết của mỗi cá thể là hữu  
hạn, hơn nữa do điều kiện sống cũng như môi trường đào tạo, v.v.. là khác nhau  
vậy đòi hỏi sự hiểu biết tất cả có lẽ là ít khả thi.  
Quan điểm cấu trúc xem toàn bộ tổ chức, lĩnh vực, điểm công tác là các  
phần tử có cấu trúc tức là có các quy tắc hoạt động, quy tắc kiểm tra và có hệ thống  
thông tin riêng. Bên cạnh đó cần phải nói thêm rằng có những quy tắc hoạt động sẽ  
là những ràng buộc của hệ thống được tin học hóa sau này nhưng điều đó không  
phải lúc nào cũng có thể mô tả trọn vẹn được vì đôi khi các quy tắc đó có mâu  
thuẫn không thể dung hòa. Để làm được điều đó đòi hỏi phải tất cả các quy tắc  
hoạt động phải được đồng bộ hóa.  
Trong những năm 70 - 80, những trên quan điểm được coi là chuẩn mực để  
phát triển phần mềm. Tuy nhiên, ngày này cùng với thay đổi, phát triển của công  
nghệ những chuẩn trên tỏ ra không phù hợp trong phát triển các hệ phần mềm lớn  
và đặc biệt là kém hiệu quả trong sử dụng và tái sử dụng lại - Một yêu cầu quan  
trọng trong công nghiệp phần mềm.  
Quan điểm trừ trên - xuống (top - down) là quan điểm tiếp cận từ trên  
xuống, từ tổng thể đến riêng biệt trong đó định ra các mức trừu tượng hóa tương  
ứng với chu trình phát triển của hệ thống (Các giai đoạn trong quá trình xây dựng  
hệ thống thông tin sẽ được nói ở phần 1.3 của tài liệu này) và đồng thời cũng định  
ra kết quả mong đợi cho từng giai đoạn. Tuy nhiên với quan điểm này thì cần có  
những phương pháp phân tích khoa học và đội ngũ phân tích viên chuyên nghiệp.  
Tóm lại: Cho dù có nhiều quan điểm và cách nhìn nhận khác nhau thế  
nhưng cho đến thời điểm hiện nay thì vẫn nổi bật là quan điểm “Chia để trị” đó là  
kim chỉ nam cho việc phân tích và thiết kế bất cứ hệ thống thông tin cần phát triển.  
1.2.2 Các phƣơng pháp phân tích  
Có nhiều phương pháp phân tích, Thập niên 90 chứng kiến sự nở rộ trong  
nghiên cứu và xây dựng phương pháp luận phát triển phần mềm hướng đối tượng  
và nhanh chóng trở thành phổ biến trong công nghiệp phần mềm ngày nay. Tuy  
nhiên trong phạm vi tài liệu này chỉ nêu tên và thừa nhận kết quả còn nghiên cứu,  
tìm hiểu chuyên sâu sẽ dành cho các bậc học cao hơn.  
Phương pháp SADT (Structured Analysis and Design Technique): Kỹ thuật  
phân tích cấu trúc và thiết kế, phương pháp này xuất phát từ Mỹ. Phương pháp  
phân tích này bao gồm sơ đồ luồng dữ liệu (Data Flow Diagram) và từ điển dữ  
liệu (Data Dictionary) ;  
Phương pháp phân tích MERISE (Method Pour Rassembler les Ideés Sans  
Effort) theo [GTPTTK.ĐHQG] dựa vào các mức bất biến kết hợp với mô hình.  
Tạm dịch là "Các phương pháp tập hợp ý tưởng không cần cố gắng", ra đời tại  
Pháp cuối thập niên 70.  
Phương pháp MXC (Méthode de Xavier Castellani): Nguồn gốc từ Pháp.  
Giáo viên biên soạn: Nguyễn Trần Phương  
7
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
Phương pháp GALACSI (Groupe d' Animation et de Liaison pour d'  
Analyse et la Conception de Systeme d' Information): Tạm dịch nguyên văn:  
"Nhóm cọ vẽ và liên lạc để phân tích và quan niệm hoá hệ thông tin" ra đời tại  
Pháp vào tháng 4 năm 1982.  
1.2.2.1 Phương pháp hướng cấu trúc  
Đặc trưng của phương pháp hướng cấu trúc là phân chia chương trình chính  
thành nhiều chương trình con, mỗi chương trình con nhằm đến thực hiện một công  
việc xác định.  
Trong phương pháp hướng cấu trúc, phần mềm được thiết kế dựa trên một  
trong hai hướng: Hướng dữ liệu và hướng hành động.  
Cách tiếp cận hướng dữ liệu xây dựng phần mềm dựa trên việc phân rã  
phần mềm theo các chức năng cần đáp ứng và dữ liệu cho các chức năng đó. Cách  
tiếp cận hướng dữ liệu sẽ giúp cho những người phát triển hệ thống dễ dàng xây  
dựng ngân hàng dữ liệu.  
Cách tiếp cận hướng hành động lại tập trung phân tích hệ phần mềm dựa  
trên các hoạt động thực thi các chức năng của phần mềm đó.  
Cách thức thực hiện của phương pháp hướng cấu trúc là phương pháp thiết  
kế từ trên xuống (top-down). Phương pháp này tiến hành phân rã bài toán thành  
các bài toán nhỏ hơn, rồi tiếp tục phân rã các bài toán con cho đến khi nhận được  
các bài toán có thể cài đặt được bằng cách sử dụng các hàm của ngôn ngữ lập trình  
hướng cấu trúc.  
Phương pháp hướng cấu trúc có ưu điểm là tư duy phân tích thiết kế rõ ràng,  
chương trình sáng sủa dễ hiểu. Tuy nhiên, phương pháp này có một số nhược điểm  
sau:  
o Không hỗ trợ việc sử dụng lại. Các chương trình hướng cấu trúc phụ  
thuộc chặt chẽ vào cấu trúc dữ liệu và bài toán cụ thể, do đó không thể dùng lại  
một modul nào đó trong phần mềm này cho phần mềm mới với các yêu cầu về dữ  
liệu khác.  
o Tỏ ra không phù hợp cho phát triển các phần mềm lớn có sở sở dữ liệu  
phân tán. Nếu hệ thống thông tin lớn, việc phân ra thành các bài toán con cũng như  
phân các bài toán con thành các modul và quản lý mối quan hệ giữa các modul đó  
sẽ là không phải là dễ dàng và dễ gây ra các lỗi trong phân tích và thiết kế hệ  
thống, cũng như khó kiểm thử và bảo trì.  
1.2.2.2 Phương pháp hướng đối tượng  
Khác với phương pháp hướng cấu trúc chỉ tập trung hoặc vào dữ liệu hoặc  
vào hành động, phương pháp hướng đối tượng tập trung vào cả hai khía cạnh của  
hệ thống là dữ liệu và hành động theo [TĐQ&NMS.PTTK].  
Hướng đối tượng là thuật ngữ thông dụng hiện thời của ngành công nghiệp  
phần mềm. Các công ty đang nhanh chóng tìm cách áp dụng và tích hợp công nghệ  
mới này vào các ứng dụng của họ. Thật sự là đa phần các ứng dụng hiện thời đều  
mang tính hướng đối tượng.  
Cách tiếp cận hướng đối tượng là một lối tư duy theo cách ánh xạ các thành  
phần trong bài toán vào các đối tượng ngoài đời thực. Với cách tiếp cận này, một  
hệ thống được chia tương ứng thành các thành phần nhỏ gọi là các đối tượng, mỗi  
Giáo viên biên soạn: Nguyễn Trần Phương  
8
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
đối tượng bao gồm đầy đủ cả dữ liệu và hành động liên quan đến đối tượng đó.  
Các đối tượng trong một hệ thống tương đối độc lập với nhau và phần mềm sẽ  
được xây dựng bằng cách kết hợp các đối tượng đó lại với nhau thông qua các mối  
quan hệ và tương tác giữa chúng. Các nguyên tắc cơ bản của phương pháp hướng  
đối tượng bao gồm :  
Trừu tượng hóa (abstraction):  
Trong phương pháp hướng đối tượng, các thực thể phần mềm được mô hình  
hóa dưới dạng các đối tượng. Các đối tượng này được trừu tượng hóa ở mức cao  
hơn dựa trên thuộc tính và phương thức mô tả đối tượng để tạo thành các lớp. Các  
lớp cũng sẽ được trừu tượng hóa ở mức cao hơn nữa để tạo thành một sơ đồ các  
lớp được kế thừa lẫn nhau.  
Trong phương pháp hướng đối tượng có thể tồn tại những lớp không có đối  
tượng tương ứng, gọi là lớp trừu tượng. Như vậy, nguyên tắc cơ bản để xây dựng  
các khái niệm trong hướng đối tượng là sự trừu tượng hóa theo các mức độ khác  
nhau.  
Quá trình phân tích phạm vi bài toán thường được bắt đầu với các khái niệm  
then chốt (Key Abstraction).  
Khái niệm then chốt rất quan trọng vì dựa vào nó chúng ta có thể tìm và chỉ  
ra các lớp (class) :  
. Định nghĩa ranh giới của vấn đề.  
. Nhấn mạnh đến các thực thể có liên quan đến thiết kế của hệ thống.  
. Loại bỏ thực thể nằm ngoài phạm vi hệ thống.  
Các khái niệm then chốt thường sẽ trở thành các lớp trong mô hình phân tích. Mỗi  
lần tìm thấy một khái niệm then chốt mới, cần xem xét nó theo cách nhìn của vấn  
đề, có thể hỏi các câu hỏi sau :  
. Những chức năng nào có thể được thực hiện đối với thực thể này ?  
. Điều gì khiến những thực thể loại này được tạo ra ?  
Nếu không có câu trả lời thích hợp, cần phải suy nghĩ lại về thực thể đó. Mỗi  
khái niệm then chốt mới cần phải được đặt tên cho thích hợp, miêu tả đúng chức  
năng của khái niệm.  
Một khái niệm then chốt tóm lại là một lớp hay đối tượng thuộc chuyên  
ngành của phạm vi bài toán. Khi trình bày với người sử dụng, chúng có một ánh xạ  
1-1 giữa với những thực thể liên quan tới người sử dụng ví như hóa đơn, séc, giấy  
đề nghị rút tiền, sổ tiết kiệm, thẻ rút tiền tự động, nhân viên thu ngân, nhân viên  
nhà băng, các phòng ban,….  
Khi phân tích phạm vi bài toán, cần chú ý rằng mức độ trừu tượng của các  
khái niệm then chốt là rất quan trọng, bởi mức độ trừu tượng quá cao hay quá  
thấp đều rất dễ gây nhầm lẫn.  
Mức trừu tượng quá cao dẫn tới những định nghĩa quá khái quát về một thực  
thể, tạo nên một cái nhìn vĩ mô và thường không nhắm vào một mục tiêu cụ thể. Ví  
dụ trong một nhà băng, ta không thể chọn khái niệm then chốt là "người", bởi nó  
sẽ dẫn đến lời miêu tả: "Một người đến nhà băng để gửi tiền vào, và số tiền đó  
được một người khác tiếp nhận". Trong khi một yêu cầu quan trọng ở đây là phải  
phân biệt giữa nhân viên với khách hàng vì chức năng của họ là khác hẳn nhau.  
Giáo viên biên soạn: Nguyễn Trần Phương  
9
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
Tương tự như vậy, mức trừu tượng quá thấp cũng dễ gây hiểu lầm, bởi  
những thông tin quá vụn vặt chưa thích hợp với thời điểm đang nghiên cứu.  
Các nguyên tắc cơ bản của phương pháp hướng đối tượng bao gồm:  
Tính đóng gói (encapsulation) và ẩn dấu thông tin: Các đối tượng có  
thể có những phương thức hoặc thuộc tính riêng (kiểu private) mà các đối tượng  
khác không thể sử dụng được. Dựa trên nguyên tắc ẩn giấu thông tin này, cài đặt  
của các đối tượng sẽ hoàn toàn độc lập với các đối tượng khác, các lớp độc lập với  
nhau và cao hơn nữa là cài đặt của hệ thống hoàn toàn độc lập với người sử dụng  
cũng như các hệ thống khác sử dụng kết quả của nó.  
Tính modul hóa (modularity): Các bài toán sẽ được phân chia thành  
những vấn đề nhỏ hơn, đơn giản và quản lý được.  
Tính phân cấp (hierarchy): Cấu trúc chung của một hệ thống hướng đối  
tượng là dạng phân cấp theo các mức độ trừu tượng từ cao đến thấp.  
Ưu điểm nổi bật của phương pháp hướng đối tượng là đã giải quyết được  
các vấn đề nảy sinh với phương pháp hướng cấu trúc:  
Hỗ trợ sử dụng lại mã nguồn : Chương trình lập trình theo phương pháp  
hướng đối tượng thường được chia thành các gói là các nhóm của các lớp đối  
tượng khác nhau. Các gói này hoạt động tương đối độc lập và hoàn toàn có thể sử  
dụng lại trong các hệ thống thông tin tương tự.  
Phù hợp với các hệ thống lớn: Phương pháp hướng đối tượng không chỉ  
chia bài toán thành các bài toán nhỏ mà tập trung vào việc xác định các đối tượng,  
dữ liệu và hành động gắn với đối tượng và mối quan hệ giữa các đối tượng. Các  
đối tượng hoạt động độc lập và chỉ thực hiện hành động khi nhận được yêu cầu từ  
các đối tượng khác. Vì vậy, phương pháp này hỗ trợ phân tích, thiết kế và quản lý  
một hệ thống lớn, có thể mô tả các hoạt động nghiệp vụ phức tạp bởi quá trình  
phân tích thiết kế không phụ thuộc vào số biến dữ liệu hay số lượng thao tác cần  
thực hiện mà chỉ quan tâm đến các đối tượng tồn tại trong hệ thống đó.  
1.2.2.3 Các khái niệm cơ bản của hướng đối tượng  
Một số khái niệm cơ bản trong hướng đối tượng bao gồm:  
Đối tƣợng (object): Một đối tượng biểu diễn một thực thể vật lý, một  
thực thể khái niệm hoặc một thực thể phần mềm. Có thể định nghĩa một đối tượng  
là một khái niệm, sự trừu tượng hoặc một vật với giới hạn rõ ràng và có ý nghĩa  
với một ứng dụng cụ thể.  
Lớp (Class): Là mô tả của một nhóm đối tượng có chung các thuộc tính,  
hành vi và các mối quan hệ. Như vậy, một đối tượng là thể hiện của một lớp và  
một lớp là một định nghĩa trừu tượng của đối tượng.  
Thành phần (component): Là một phần của hệ thống hoạt động độc lập  
và giữ một chức năng nhất định trong hệ thống.  
Gói (package): Là một cách tổ chức các thành phần, phần tử trong hệ  
thống thành các nhóm. Nhiều gói có thể được kết hợp với nhau để trở thành một hệ  
thống con (subsystem).  
Giáo viên biên soạn: Nguyễn Trần Phương  
10  
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
Kế thừa: Trong phương pháp hướng đối tượng, một lớp có thể có sử  
dụng lại các thuộc tính và phương thức của một hoặc nhiều lớp khác. Kiểu quan hệ  
này gọi là quan hệ kế thừa, được xây dựng dựa trên mối quan hệ kế thừa trong bài  
toán thực tế. Ví dụ, giả sử ta có lớp Người gồm các thuộc tính : tên, ngày sinh, quê  
quán, giới tính ; Lớp Nhân Viên có quan hệ kế thừa từ lớp Người sẽ có tất cả các  
thuộc tính trên và bổ sung thêm các thuộc tính mới gồm : chức vụ, lương.  
Vòng đời phát triển phần mềm hướng đối tượng cũng có các pha tương tự  
như các vòng đời phát triển phần mềm nói chung. Các pha cơ bản đặc trưng trong  
phát triển phần mềm hướng đối tượng bao gồm:  
Phân tích hƣớng đối tƣợng (Object Oriented Analysis - OOA): xây  
dựng một mô hình chính xác để mô tả hệ thống cần xây dựng là gì. Thành phần  
của mô hình này là các đối tượng gắn với hệ thống thực.  
Là giai đoạn phát triển một mô hình chính xác và súc tích của vấn đề, có  
thành phần là các đối tượng và khái niệm đời thực, dễ hiểu đối với người sử dụng.  
Trong giai đoạn OOA, vấn đề được trình bày bằng các thuật ngữ tương ứng  
với các đối tượng có thực. Thêm vào đó, hệ thống cần phải được định nghĩa sao  
cho người không chuyên Tin học có thể dễ dàng hiểu được.  
Dựa trên một vấn đề có sẵn, nhà phân tích cần ánh xạ các đối tượng hay thực  
thể có thực vào thiết kế để tạo ra được bản thiết kế gần cận với tình huống thực.  
Mô hình thiết kế sẽ chứa các thực thể trong một vấn đề có thực và giữ nguyên các  
mẫu hình về cấu trúc, quan hệ cũng như hành vi của chúng. Nói một cách khác, sử  
dụng phương pháp hướng đối tượng chúng ta có thể mô hình hóa các thực thể  
thuộc một vấn đề có thực mà vẫn giữ được cấu trúc, quan hệ cũng như hành vi của  
chúng.  
Kiểu phân tích bằng kiểu ánh xạ "đời thực” vào máy tính như thế thật sự là  
ưu điểm lớn của phương pháp hướng đối tượng. Thế nhưng cũng có một yếu điểm  
là đôi khi phân tích viên cũng như nhóm phát triển có thể không nhìn thấy tính  
tổng thể của dự án tin học hóa sẽ phát triển trong tương lai. Do vậy kết quả của  
toàn bộ dự án không như mong đợi của cả các bên. Điều này một trong những  
nguyên nhân cơ bản dẫn tới sự thất bại của một dự án tin học hóa.  
Thiết kế hƣớng đối tƣợng (Object Oriented Design - OOD): Là giai  
đoạn tổ chức chương trình thành các tập hợp đối tượng cộng tác, mỗi đối tượng  
trong đó là thực thể của một lớp. Kết quả của pha thiết kế cho biết hệ thống sẽ  
được xây dựng như thế nào qua các bản thiết kế kiến trúc và thiết kế chi tiết.  
Mục đích của giai đoạn OOD là tạo thiết kế dựa trên kết quả của giai đoạn  
OOA, dựa trên những quy định phi chức năng, những yêu cầu về môi trường,  
những yêu cầu về khả năng thực thi, .... OOD tập trung vào việc cải thiện kết quả  
của OOA, tối ưu hóa giải pháp đã được cung cấp trong khi vẫn đảm bảo thoả mãn  
tất cả các yêu cầu đã được xác lập.  
Trong giai đoạn OOD, nhà thiết kế định nghĩa các chức năng, thủ tục  
(operations), thuộc tính (attributes) cũng như mối quan hệ của một hay nhiều lớp  
(class) và quyết định chúng cần phải được điều chỉnh sao cho phù hợp với môi  
trường phát triển. Đây cũng là giai đoạn để thiết kế ngân hàng dữ liệu và áp dụng  
các kỹ thuật tiêu chuẩn hóa.  
Giáo viên biên soạn: Nguyễn Trần Phương  
11  
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
Về cuối giai đoạn OOD, nhà thiết kế đưa ra một loạt các biểu đồ (diagram)  
khác nhau. Các biểu đồ này có thể được chia thành hai nhóm chính là tĩnh và động.  
Các biểu đồ tĩnh biểu thị các lớp và đối tượng, trong khi biểu đồ động biểu thị  
tương tác giữa các lớp và phương thức hoạt động chính xác của chúng. Các lớp đó  
sau này có thể được nhóm thành các gói (Packages) tức là các đơn vị thành phần  
nhỏ hơn của ứng dụng.  
Lập trình hƣớng đối tƣợng (Object Oriented Programming - OOP):  
Thực hiện bản thiết kế hướng đối tượng bằng cách sử dụng các ngôn ngữ lập trình  
hướng đối tượng (C++, Java, …). Kết quả chung cuộc của giai đoạn này là một  
loạt các code chạy được, nó chỉ được đưa vào sử dụng sau khi đã trải qua nhiều  
vòng quay của nhiều bước thử nghiệm khác nhau. Tuy nhiên trên thực tế các ngôn  
ngữ lập trình hướng đối tượng như đã nêu đều được nhúng một hệ quản trị cơ sở  
dữ liệu (HQTCSDL) nào đó. Hiện nay có các loại hệ quản trị cơ sở dữ liệu phổ  
dụng:  
Loại phân cấp như hệ IMS của IBM  
Loại mạng IDMS của Cullinet Software  
Loại tập tin đảo như ADABAS của Software AG  
Loại quan hệ như như ORACLE của Oracle, DB2 của IBM, ACCESS  
của Microsoft Access  
Loại đối tượng. Loại này là một tiếp cận khá mới trong thiết kế  
HQTCSDL và việc sử dụng hệ loại này sớm trở nên phổ biến.  
Hiện tại, loại HQTCSDL chính được sử dụng trong công nghệ là loại HQTCSDL  
quan hệ (RDBMS). Loại này đã chiếm lĩnh trong công nghệ trên 10-15 năm cuối  
cùng khi đánh bật loại HQTCSDL phân cấp và gần đây là HQTCSDL mạng.  
1.3. CÁC GIAI ĐOẠN TRONG QUÁ TRÌNH XÂY DỰNG HTTT  
Việc phát triển các hệ thống thông tin không chỉ đơn giản là lập trình mà  
luôn được xem như một tiến trình hoàn chỉnh.  
Tiến trình phần mềm là phương cách sản xuất ra phần mềm với các thành  
phần chủ yếu bao gồm: Mô hình vòng đời phát triển phần mềm, các công cụ hỗ trợ  
cho phát triển phần mềm và những người trong nhóm phát triển phần mềm.  
Như vậy, tiến trình phát triển phần mềm nói chung là sự kết hợp cả hai khía  
cạnh kỹ thuật (vòng đời phát triển, phương pháp phát triển, các công cụ và ngôn  
ngữ sử dụng, …) và khía cạnh quản lý (quản lý dự án phần mềm). Xin lưu ý về  
cách dùng ngôn ngữ của một số tài liệu thì các giai đoạn trong quá trình xây dựng  
hệ thống thông tin cũng tương ứng với các vòng đời các bước phát triển một sản  
phẩm phần mềm. Các giai đoạn trong quá trình xây dựng hệ thống thông tin gồm  
các bước cơ bản sau:  
1.3.1 Lập kế hoạch, xác định yêu cầu  
Đây là giai đoạn đầu tiên nhằm nghiên cứu thực trạng của tổ chức (nhà đầu  
tư) có nhu cầu tin học hóa một quá trình nào đó được nhà phát triển gọi là dự án tin  
học hóa (bản chất là xây dựng một phần mềm phục vụ mục đích chuyên dụng của  
một tổ chức đó, không loại trừ phần mềm này đã được thương mại hóa và có bán  
trên thị trường nhưng có một số điểm không phù hợp với yêu cầu cụ thể của đơn vị  
đó). Nếu là dự án tin học hóa lớn người ta cũng có thể tổ chức đấu thầu như việc  
Giáo viên biên soạn: Nguyễn Trần Phương  
12  
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
đấu thầu trong xây dựng vậy. Điều đặc biệt ở chỗ trước khi bỏ thầu nhà phát triển  
cũng phải khảo sát hiện trạng thực tế sơ bộ, còn nếu không thì khôn ngoan hơn cả  
là có lẽ chỉ gia công một số công đoạn nào đó trong dự án tin học đó.  
Trong giai đoạn này nhà phát triển phải nhất thiết xác định được các yêu cầu  
cụ thể của nhà đầu tư trước khi tiến hành nghiên cứu và phát triển dự án.  
Nhà phát triển phải có kế hoạch và thống nhất với nhà đầu tư thời gian khảo  
sát thực tiễn tại đơn vị đó bao gồm:  
Thời gian và địa điểm sẽ khảo sát.  
Số lượng các thành viên, cơ sở vật chất có liên quan, ảnh hưởng đến việc  
triển khai dự án đó.  
Khám phá các khái niệm liên quan đến việc phát triển phần mềm.  
Trình độ và tính sẵn sàng cho việc tin học hóa của thành viên tại đơn vị  
đó.  
Xác định chính xác yêu cầu và các ràng buộc của khách hàng với sản  
phẩm phần mềm đó.  
Bên cạnh đó cũng thống nhất thời gian tiến hành và kết thức dự án, các  
giai đoạn chính trong quá trình thực hiện dự án.  
Các vấn đề về tài chính, nhân sự và trách nhiệm các bên trong từng giai  
đoạn.  
Các hợp đồng và các thủ tục hành chính phù hợp với pháp luật của quốc  
gia nơi nhà đầu tư sẽ phải được ký kết trước khi tiến hành dự án  
1.3.2 Phân tích  
1.3.2.1 Phân tích hướng chức năng theo [GTPTTK.ĐHQG]  
Đây là công việc trọng tâm trong cả quá trình xây dựng hệ thống thông tin.  
Bản thân giai đoạn này cũng có khởi điểm nằm trong các giai đoạn khác. Đặc biệt  
là nằm quá trình nghiên cứu hiện trạng của giai đoạn lập kế hoạch trước nhưng ở  
mức độ chi tiết hơn.  
Xây dựng một mô hình chính xác để mô tả hệ thống cần xây dựng là gì.  
Thành phần của mô hình này là các đối tượng gắn với hệ thống thực.  
Mô tả chức năng của sản phẩm, các input của sản phẩm và các output  
được yêu cầu; Khám phá các khái niệm trong miền quan tâm của sản phẩm và  
bước đầu đưa ra giải pháp xây dựng hệ thống. Hay nói cách khác chính là xác định  
phạm vi của dự án cần tin học hóa.  
Nghiên cứu hiện trạng: Như đã nói ở phần trên quá trình này cụ thể hóa  
các tình trạng hiện tại của hệ thống cũ, cũng như xem xét nhiệm vụ, vai trò của  
từng đơn vị và của từng thành viên có liên quan, mối quan hệ thông tin, luồng  
thông tin, quá trình xử lý thông tin để hoạt động trong tổ chức có nhu cầu tin học  
hóa.  
Tần xuất, thời hạn, hiệu xuất của các thông tin đó trong hệ thống cũ. Các  
khả năng và giải pháp cho hệ thống tin học sẽ phát triển trong tương lai.  
Xây dựng mô hình hệ thống: Căn cứ và kết quả nghiên cứu hiện trạng từ  
đó làm rõ mô hình thông tin và mô hình hoạt động của hệ thống. Đây là giai đoạn  
cực kỳ quan trọng quyết định sự thành bại của dự án tin học hóa bởi vì:  
Giáo viên biên soạn: Nguyễn Trần Phương  
13  
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
Phụ thuộc hoàn toàn vào tài năng và kinh nghiệm của các phân tích viên.  
Tính thống nhất, hiểu biết chuyên môn giữa các phân tích viên và các  
thành viên các được tìm hiểu tại các đơn vị thuộc nhà đầu tư.  
Sự hợp tác của các thành viên tham gia không loại trừ các lý do tế nhị.  
Khả năng tài chính của nhà đầu tư khi phải thay đổi.  
Trình độ ứng dụng tin học cũng như trạng thái sẵn sàng thay đổi của các  
thành viên trong đơn vị sẽ sử dụng phần mềm này trong tương lai. Vì hầu hết các  
phần mềm được xây dựng đều có thể phải thay đổi một phần nhỏ về quy trình hoạt  
động của tổ chức đó cho dù không muốn điều đó xảy ra.  
Lập hồ sơ nhiệm vụ: Lựa chọn các giải pháp và định hình các chức năng  
có thể mà hệ thống cần đạt được; Định hình thô giao diện và các mô dul cơ bản  
nhất, có thể đây là một nguyên mẫu; Chuẩn các văn bản thỏa thuận các bên (Phân  
tích viên, Nhà đầu tư, người sẽ sử dụng).  
1.3.2.2 Phân tích hướng đối tượng theo UML- Ngôn Ngữ Mô Hình Hoá Thống Nhất  
(Unifield Modeling Language) [TĐQ&NMS.PTTK].  
Giai đoạn phân tích quan tâm đến quá trình trừu tượng hóa đầu tiên (các lớp  
và các đối tượng) cũng như cơ chế hiện hữu trong phạm vi vấn đề. Sau khi nhà  
phân tích đã nhận biết được các lớp thành phần của mô hình cũng như mối quan hệ  
giữa chúng với nhau, các lớp cùng các mối quan hệ đó sẽ được miêu tả bằng công  
cụ biểu đồ lớp (class diagram) của UML. Sự cộng tác giữa các lớp nhằm thực hiện  
các Use case cũng sẽ được miêu tả nhờ vào các mô hình động (dynamic models)  
của UML. Trong giai đoạn phân tích, chỉ duy nhất các lớp có tồn tại trong phạm vi  
vấn đề (các khái niệm đời thực) là được mô hình hóa. Các lớp kỹ thuật định nghĩa  
chi tiết cũng như giải pháp trong hệ thống phần mềm, ví dụ như các lớp cho giao  
diện người dùng, cho ngân hàng dữ liệu, cho sự giao tiếp, trùng hợp, v.v..., chưa  
phải là mối quan tâm của giai đoạn này.  
Xây dựng Biểu đồ use case (Use Case Diagram): Dựa trên tập yêu cầu  
ban đầu, người phân tích tiến hành xác định các tác nhân, use case và các quan hệ  
giữa các use case để mô tả lại các chức năng của hệ thống. Một thành phần quan  
trọng trong biểu đồ use case là các kịch bản mô tả hoạt động của hệ thống trong  
mỗi use case cụ thể.  
Một biểu đồ Use case chỉ ra một số lượng các tác nhân ngoại cảnh và mối  
liên kết của chúng đối với Use case mà hệ thống cung cấp - Hình 1.1. Một Use  
case là một lời miêu tả của một chức năng mà hệ thống cung cấp. Lời miêu tả Use  
case thường là một văn bản tài liệu, nhưng kèm theo đó cũng có thể là một biểu đồ  
hoạt động. Các Use case được miêu tả duy nhất theo hướng nhìn từ ngoài vào của  
các tác nhân (hành vi của hệ thống theo như sự mong đợi của người sử dụng),  
không miêu tả chức năng được cung cấp sẽ hoạt động nội bộ bên trong hệ thống ra  
sao. Các Use case định nghĩa các yêu cầu về mặt chức năng đối với hệ thống.  
Giáo viên biên soạn: Nguyễn Trần Phương  
14  
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
Hình 1.1: Biểu đồ use case của một công ty bảo hiểm  
Xây dựng Biểu đồ lớp (Class Diagram): Xác định tên các lớp, các thuộc  
tính của lớp, một số phương thức và mối quan hệ cơ bản trong sơ đồ lớp.  
Một biểu đồ lớp chỉ ra cấu trúc tĩnh của các lớp trong hệ thống - Hình 1.2.  
Các lớp là đại diện cho các “vật” được xử lý trong hệ thống. Các lớp có thể quan  
hệ với nhau trong nhiều dạng thức: liên kết (associated - được nối kết với nhau),  
phụ thuộc (dependent - một lớp này phụ thuộc vào lớp khác), chuyên biệt hóa  
(specialized - một lớp này là một kết quả chuyên biệt hóa của lớp khác), hay đóng  
gói (packaged - hợp với nhau thành một đơn vị). Tất cả các mối quan hệ đó đều  
được thể hiện trong biểu đồ lớp, đi kèm với cấu trúc bên trong của các lớp theo  
khái niệm thuộc tính (attribute) và thủ tục (operation). Biểu đồ được coi là biểu đồ  
tĩnh theo phương diện cấu trúc được miêu tả ở đây có hiệu lực tại bất kỳ thời điểm  
nào trong toàn bộ vòng đời hệ thống.  
Một hệ thống thường sẽ có một loạt các biểu đồ lớp - chẳng phải bao giờ tất  
cả các biểu đồ lớp này cũng được nhập vào một biểu đồ lớp tổng thể duy nhất và  
một lớp có thể tham gia vào nhiều biểu đồ lớp.  
Hình 1.2 : Biểu đồ lớp cho một đăng nhập chương trình  
Giáo viên biên soạn: Nguyễn Trần Phương  
15  
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
Biểu đồ đối tượng (Object Diagram): Một biểu đồ đối tượng là một phiên  
bản của biểu đồ lớp và thường cũng sử dụng các ký hiệu như biểu đồ lớp. Sự  
khác biệt giữa hai loại biểu đồ này nằm ở chỗ biểu đồ đối tượng chỉ ra một  
loạt các đối tượng thực thể của lớp, thay vì các lớp. Một biểu đồ đối tượng vì  
vậy là một ví dụ của biểu đồ lớp, chỉ ra một bức tranh thực tế có thể xảy ra  
khi hệ thống thực thi: bức tranh mà hệ thống có thể có tại một thời điểm nào  
đó. Biểu đồ đối tượng sử dụng chung các ký hiệu của biểu đồ lớp, chỉ trừ hai  
ngoại lệ: đối tượng được viết với tên được gạch dưới và tất cả các thực thể  
trong một mối quan hệ đều được chỉ ra - Hình 1.2. Biểu đồ đối tượng không  
quan trọng bằng biểu đồ lớp, chúng có thể được sử dụng để ví dụ hóa một  
biểu đồ lớp phức tạp, chỉ ra với những thực thể cụ thể và những mối quan hệ  
như thế thì bức tranh toàn cảnh sẽ ra sao. Một biểu đồ đối tượng thường  
thường được sử dụng làm một thành phần của một biểu đồ cộng tác  
(collaboration), chỉ ra lối ứng xử động giữa một loạt các đối tượng.  
Xây dựng biểu đồ trạng thái (State Diagram): Mô tả các trạng thái và  
chuyển tiếp trạng thái trong hoạt động của một đối tượng thuộc một lớp nào đó.  
Một biểu đồ trạng thái thường là một sự bổ sung cho lời miêu tả một lớp. Nó  
chỉ ra tất cả các trạng thái mà đối tượng của lớp này có thể có, và những sự kiện  
(event) nào sẽ gây ra sự thay đổi trạng thái - Hình 1.3. Một sự kiện có thể xảy ra  
khi một đối tượng tự gửi thông điệp đến cho nó - ví dụ như để thông báo rằng một  
khoảng thời gian được xác định đã qua đi – hay là một số điều kiện nào đó đã được  
thỏa mãn. Một sự thay đổi trạng thái được gọi là một sự chuyển đổi trạng thái  
(State Transition). Một chuyển đổi trạng thái cũng có thể có một hành động liên  
quan, xác định điều gì phải được thực hiện khi sự chuyển đổi trạng thái này diễn  
ra.  
Biểu đồ trạng thái không được vẽ cho tất cả các lớp, mà chỉ riêng cho những lớp có  
một số lượng các trạng thái được định nghĩa rõ ràng và hành vi của lớp bị ảnh  
hưởng và thay đổi qua các trạng thái khác nhau. Biểu đồ trạng thái cũng có thể  
được vẽ cho hệ thống tổng thể.  
Hình 1.3: Biểu đồ trạng thái trong xây dựng hệ thống quản lý thư viện  
Giáo viên biên soạn: Nguyễn Trần Phương  
16  
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
Các biểu đồ cộng tác (Collaboration Diagram): Biểu diễn mối liên hệ  
giữa các đối tượng trong hệ thống và giữa các đối tượng với các tác nhân bên  
ngoài. Có hai loại biểu đồ tương tác:  
. Biểu đồ trình tự: Biểu diễn mối quan hệ giữa các đối tượng và giữa các  
đối tượng và tác nhân theo thứ tự thời gian.  
. Biểu đồ cộng tác: Biểu diễn mối quan hệ giữa các đối tượng và giữa các  
đối tượng và tác nhân nhưng nhấn mạnh đến vai trò của các đối tượng trong tương  
tác.  
Biểu đồ hoạt động: Biểu diễn các hoạt động và sự đồng bộ, chuyển tiếp  
các hoạt động, thường được sử dụng để biểu diễn các phương thức phức tạp của  
các lớp.  
Biểu đồ thành phần: Định nghĩa các thành phần của hệ thống và mối  
liên hệ giữa các thành phần đó.  
Biểu đồ triển khai: Mô tả hệ thống sẽ được triển khai như thế nào, thành  
phần nào được cài đặt ở đâu, các liên kết vật lý hoặc giao thức truyền thông nào  
được sử dụng.  
1.3.3 Thiết kế  
1.3.3.1 Thiết kế hướng chức năng theo [GTPTTK.ĐHQG]  
Xác định cụ thể phần mềm sẽ được xây dựng như thế nào. Thiết kế bao gồm  
hai mức là thiết kế kiến trúc và thiết kế chi tiết. Việc thiết kế không hẳn là dùng  
giải pháp tin học để mô phỏng lại hệ thống như vốn dĩ đang có hoặc bắt chước hệ  
thống thông tin tin học hóa cũ mà phải loại bỏ vấn đề đã lạc hậu và tính kế thừa ưu  
điểm và đồng thời có tính mềm dẻo cho các thay đổi trong tương lai gần.  
Công việc thiết kế đòi hỏi sự sáng tạo, bề dày kinh nghiệm, không thể học  
qua sách vở. Bên cạnh đó thiết kế có phương pháp nghiêm ngặt vậy đối với một  
học sinh, sinh viên ngành công nghệ thông tin mới ra trường cần có thời gian, môi  
trường nhất định. Để có phương pháp thiết kế tốt độc giả nên đọc các tài liệu, giáo  
trình bộ môn công nghệ phần mềm.  
Trên thực tế giai đoạn phân tích và giai đoạn thiết kế không hoàn toàn tách  
rời, chúng đan xen theo chu trình vòng xoắn ốc, nói tóm lại thiết kế gồm:  
Thiết kế dữ liệu: Định ra đối tượng và cấu trúc dữ liệu tương ứng cho đối  
tượng đó.  
Thiết kế các chức năng hoặc các tập hợp đối tượng cộng tác, mỗi đối  
tượng trong đó là thực thể của một lớp.  
Thiết giao diện: Chi tiết hóa hình thức giao tiếp người và máy.  
Thiết kế an toàn, bảo mật của hệ thống, hệ thống trợ giúp.  
Thiết kế phần cứng.  
1.3.3.2 Thiết kế hướng đối tượng [TĐQ&NMS.PTTK].  
Trong giai đoạn này, kết quả của giai đoạn phân tích sẽ được mở rộng thành  
một giải pháp kỹ thuật. Các lớp mới sẽ được bổ sung để tạo thành một hạ tầng cơ  
sở kỹ thuật: Giao diện người dùng, các chức năng để lưu trữ các đối tượng trong  
ngân hàng dữ liệu, giao tiếp với các hệ thống khác, giao diện với các thiết bị ngoại  
Giáo viên biên soạn: Nguyễn Trần Phương  
17  
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
vi và các máy móc khác trong hệ thống, .... Các lớp thuộc phạm vi vấn đề có từ  
giai đoạn phân tích sẽ được "nhúng" vào hạ tầng cơ sở kỹ thuật này, tạo ra khả  
năng thay đổi trong cả hai phương diện: Phạm vi vấn đề và hạ tầng cơ sở. Giai  
đoạn thiết kế sẽ đưa ra kết quả là bản đặc tả chi tiết cho giai đoạn xây dựng hệ  
thống.  
Xây dựng các biểu đồ tương tác (gồm biểu đồ cộng tác và biểu đồ tuần  
tự): Mô tả chi tiết hoạt động của các use case dựa trên các scenario đã có và các  
lớp đã xác định trong pha phân tích.  
Xây dựng biểu đồ lớp chi tiết: tiếp tục hoàn thiện biểu đồ lớp bao gồm  
bổ sung các lớp còn thiếu, dựa trên biểu đồ trạng thái để bổ sung các thuộc tính,  
dựa trên biểu đồ tương tác để xác định các phương thức và mối quan hệ giữa các  
lớp.  
Xây dựng biểu đồ hoạt động: Mô tả hoạt động của các phương thức  
phức tạp trong mỗi lớp hoặc các hoạt động hệ thống có sự liên quan của nhiều lớp.  
Biểu đồ hoạt động là cơ sở để cài đặt các phương thức trong các lớp.  
Xây dựng biểu đồ thành phần: Xác định các gói, các thành phần và tổ  
chức phần mềm theo các thành phần đó.  
Xây dựng biểu đồ triển khai hệ thống: Xác định các thành phần và các  
thiết bị cần thiết để triển khai hệ thống, các giao thức và dịch vụ hỗ trợ.  
1.3.4 Thi công  
1.3.4.1 Thi công hướng chức năng theo [GTPTTK.ĐHQG]  
Xây dựng coding để mã hóa chương trình; Cài đặt chi tiết và tích hợp hệ  
thống phần mềm dựa trên kết quả của thiết kế. Hầu hết các công cụ phân tích  
CASE (Computer Aided Software Engineering) đều có thể chuyển mã (C, v.v …)  
cho khung chính của phần mềm. Tuy nhiên lập trình viên vẫn phải hiệu chỉnh các  
đối tượng. Ngoài ra tùy theo kiểu hệ thống phần mềm mà lập trình viên mà có thể  
lựa chọn một công cụ thích hợp phát triển để xây dựng mã nguồn. Ví dụ như  
“Chương trình tuyển sinh của một trường học trung cấp chuyên nghiệp” có thể  
dùng hệ quản trị Foxpro để xây dựng cũng được.  
Nhiệm vụ quan trọng trong giai đoạn này là xây dựng tài liệu: Tài liệu kỹ  
thuật và tài liệu hướng dẫn sử dụng.  
1.3.4.2 Thi công sử dụng UML [TĐQ&NMS.PTTK]  
Mô hình thiết kế (gồm chủ yếu các biểu đồ) được chuyển thành code.  
Programmer sử dụng các UML diagrams trong giai đoạn thiết kế để hiểu vấn đề và  
tạo code. Một công cụ phát triển được bàn đến trong tài liệu Rational Rose sẽ chia  
xẻ ở chương 4 theo đó việc sinh mã không phải là vấn đề.  
Trong giai đoạn xây dựng (giai đoạn lập trình), các lớp của giai đoạn thiết kế sẽ  
được biến thành những dòng code cụ thể trong một ngôn ngữ lập trình hướng đối  
tượng cụ thể (không nên dùng một ngôn ngữ lập trình hướng chức năng!). Phụ  
thuộc vào khả năng của ngôn ngữ được sử dụng, đây có thể là một công việc khó  
khăn hay dễ dàng. Khi tạo ra các mô hình phân tích và thiết kế trong UML, tốt nhất  
nên cố gắng né tránh việc ngay lập tức biến đổi các mô hình này thành các dòng  
code. Trong những giai đoạn trước, mô hình được sử dụng để dễ hiểu, dễ giao tiếp  
và tạo nên cấu trúc của hệ thống; vì vậy, vội vàng đưa ra những kết luận về việc  
Giáo viên biên soạn: Nguyễn Trần Phương  
18  
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
viết code có thể sẽ thành một trở ngại cho việc tạo ra các mô hình chính xác và đơn  
giản. Giai đoạn xây dựng là một giai đoạn riêng biệt, nơi các mô hình được chuyển  
thành code.  
Tất nhiên có một điểm chung của cả thi công theo hướng đối tượng và thi  
công theo hướng chức năng là viết tài liệu kỹ thuật và tài liệu hướng dẫn sử dụng.  
1.3.5 Thử nghiệm  
1.3.5.1 Thử nghiệm hướng chức năng theo [GTPTTK.ĐHQG]  
Thử nghiệm là quá trình tốn kém về thời gian và tiền bạc. Nhưng cơ bản có  
các thử nghiệm chính:  
Thử nghiệm an-pha: Thử nghiệm dành cho người dùng chuyên nghiệp trong  
phạm vi và lĩnh vực hẹp.  
Thử nghiệm bê - ta: Là thử nghiệm cho những người đồng ý dùng thử và  
báo cáo lại các vấn đề cho nhà phát triển hệ thống.  
Thử nghiệm gam - mar: Tương tự như thử nghiệm bê - ta nhưng số lượng  
người đồng ý dùng thử lớn hơn và đa dạng về trình độ, ngành nghề hơn.  
Để tìm hiểu kỹ và sâu hơn đọc giả có thể tham khảo các tài liệu, giáo trình  
công nghệ phần mềm; Quản lý dự án phần mềm.  
1.3.5.2 Thử nghiệm sử dụng UML [TĐQ&NMS.PTTK]  
Tương tự như đã trình bày trong phần thử nghiệm hướng chức năng và bàn  
chi tiết trong chương 5, một hệ thống phần mềm thường được thử nghiệm qua  
nhiều giai đoạn và với nhiều nhóm thử nghiệm khác nhau. Các nhóm sử dụng  
nhiều loại biểu đồ UML khác nhau làm nền tảng cho công việc của mình: Thử  
nghiệm đơn vị sử dụng biểu đồ lớp (class diagram) và đặc tả lớp, thử nghiệm tích  
hợp thường sử dụng biểu đồ thành phần (component diagram) và biểu đồ cộng tác  
(collaboration diagram), và giai đoạn thử nghiệm hệ thống sử dụng biểu đồ Use  
case (use case diagram) để đảm bảo hệ thống có phương thức hoạt động đúng như  
đã được định nghĩa từ ban đầu trong các biểu đồ này.  
Sử dụng các UML diagrams trong các giai đoạn trước. Có 4 hình thức kiểm  
tra hệ thống:  
Unit testing (class diagrams & class specifications): kiểm tra từng đơn  
thể, được dùng để kiểm tra các lớp hay các nhóm đơn thể.  
Integration testing (integration diagrams & collaboration diagrams):  
kiểm tra tích hợp là kiểm tra kết hợp các component với các lớp để xem chúng hoạt  
động với nhau có đúng không.  
System testing (use-case diagrams): kiểm tra xem hệ thống có đáp ứng  
được chức năng mà người sử dụng yêu cầu hay không.  
Acceptance testing: Kiểm tra tính chấp nhận được của hệ thống,  
thường được thực hiện bởi khách hàng, việc kiểm tra này thực hiện tương tự như  
kiểm tra hệ thống.  
1.3.6 Bảo trì  
Tiến hành sửa chữa phần mềm khi có các thay đổi. Đây là giai đoạn không  
kém phần quan trọng, tiêu tốn nhiều thời gian và chi phí nhất trong tiến trình phát  
Giáo viên biên soạn: Nguyễn Trần Phương  
19  
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
triển phần mềm. Để thực hiện vấn đề này, đội ngũ bảo trì phải được cung cấp tài  
liệu kỹ thuật đầy đủ từ giai đoạn thi công. Đặc biệt phải xây dựng kênh thông tin  
giữa người sử dụng và đội ngũ bảo trì, lập kế hoạch bảo trì thường xuyên định kỳ  
ngay sau khi đã cài đặt và đưa vào sử dụng.  
Cần phải nói thêm rằng có nhiều kiểu phân chia các giai đoạn phát triển hệ  
thống thông tin tin học hóa hay vòng đời của phần mềm nhưng hai mô hình đơn  
giản và được sử dụng rộng rãi hiện nay là mô hình thác nước và mô hình tạo  
nguyên mẫu (làm bản mẫu nhanh).  
Giai đoạn bảo trì có liên quan mật thiết từ giai đoạn thiết kế, thi công vì quá  
trình này tài liệu kỹ thuật đã phải được lập một cách chi tiết. Điều này thường bị bỏ  
qua đối với dự án nhỏ vì tương đối tốn kém thời gian và công sức của các nhà thiết  
kế và thi công.  
Mô hình xoắn ốc: Là sự đệ quy mô hình mô hình thác nước tức là  
trong mỗi giai đoạn lại thực hiện các lại tiến trình như mô hình thác nước. Tiến  
trình này chỉ dừng lại khi bài toán đủ nhỏ để cài đặt thuật toán hay nói các khác là  
bài toán có thể giải được bằng một thuật giải được mô tả bằng ngôn ngữ lập trình  
nào đó.  
Mô hình thác nƣớc: Sau khi đã được xác định yêu cầu của hệ thống.  
Giai đoạn phân tích sẽ được tiến hành để xây dựng tài liệu. Sau khi tài liệu phân  
tích được khách hàng chấp nhận, nhóm phát triển sẽ tiến hành lập kế hoạch và lịch  
biểu cho các quá trình phát triển tiếp theo. Sau đó, các thiết kế, cài đặt và tích hợp  
sẽ lần lượt được tiến hành;  
Mỗi giai đoạn này đều có phần kiểm tra để khi cần có thể quay lại sửa đổi tài  
liệu của pha trước đó. Khi phần mềm đã được triển khai và chuyển sang giai đoạn  
bảo trì; Nếu có lỗi hoặc thay đổi xảy ra, nhóm thiết kế sẽ phải quay trở lại sửa đổi  
tài liệu cho một trong các giai đoạn trước đó và nếu cần có thể quay trở lại thay  
đổi một số yêu cầu ban đầu của hệ thống.  
Giáo viên biên soạn: Nguyễn Trần Phương  
20  
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
Vì các giai đoạn cứ nối tiếp nhau một cách liên tục như một thác nước nên  
mô hình này được gọi là mô hình thác nước. Tiến trình phần mềm theo mô hình  
thác nước được biểu diễn như trong Hình 1.4. Mô hình thác nước có một số ưu  
điểm như sau:  
Có vòng lặp, cho phép trở về giai đoạn trước trong vòng đời phần mềm  
để sữa chữa khi phát hiện lỗi hoặc khi có thay đổi.  
Hướng tài liệu: Tất cả các giai đoạn trong vòng đời phần mềm theo mô  
hình thác nước đều được viết tài liệu cẩn thận và được kiểm tra trước khi chuyển  
sang giai đoạn tiếp theo. Do vậy, hệ thống sẽ dễ dàng bảo trì khi có những thay  
đổi.  
Tuy nhiên, mô hình thác nước cũng có nhược điểm là sản phẩm phần mềm  
cuối cùng có thể không thỏa mãn nhu cầu thực sự của khách hàng. Lý do là khách  
hàng chỉ được trao đổi một lần duy nhất và chưa được hình dung sản phẩm nên rất  
có thể các giai đoạn tiếp theo sẽ không thực hiện đúng những gì khách hàng cần.  
Tất nhiên nguy cơ thất bại của một dự án là tương đối lớn nếu các nguyên nhân của  
sự rủi do không được đoán định, lường trước và có kế hoạch dự phòng. Để hiểu  
biết kỹ vấn đề này độc giả có thể tìm hiểu kiến thức trong các tài liệu, giáo trình  
quản lý dự án phần mềm.  
Hình 1.4: Tiến trình phần mềm theo mô hình thác nước  
Giáo viên biên soạn: Nguyễn Trần Phương  
21  
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
Mô hình tạo nguyên mẫu  
Trong mô hình tạo nguyên mẫu, bước đầu tiên là nhóm phát triển sẽ xây  
dựng một bản mẫu và giao cho khách hàng và người sử dụng hệ thống dùng thử.  
Khi khách hàng đồng ý chấp nhận bản mẫu thì nhóm phát triển mới tiếp tục tiến  
hành các pha khác của vòng đời phần mềm. Trong các pha tiếp theo, do đã có bản  
mẫu nên các pha sẽ được tiến hành liên tục và không có bước quay về pha trước  
đó. Chỉ khi hệ thống đã triển khai và chuyển sang pha bảo trì, nếu có thay đổi hay  
phát hiện lỗi thì nhóm phát triển mới quay lại một trong những pha trước đó,  
nhưng không quay lại pha làm bản mẫu vì bản mẫu đã được chấp nhận. Ưu điểm  
chính của mô hình này là “nhanh” và hơn nữa do sản phẩm phần mềm được tạo ra  
từ mô hình làm bản mẫu nên có khả năng cao là đảm bảo thỏa mãn yêu cầu thực sự  
của khách hàng.  
Tuy nhiên, mô hình làm bản mẫu nhanh cũng có nhược điểm do các pha  
được tiến hành liên tục mà không được viết tài liệu. Mô hình làm bản mẫu nhanh  
được biểu diễn như trong Hình 1.5.  
Hình 1.5: Phát triển phần mềm theo mô hình tạo nguyên mẫu  
Giáo viên biên soạn: Nguyễn Trần Phương  
22  
Trường Trung học Kinh tế Kỹ thuật Hòa Bình – Ngành Công nghệ Thông tin - Môn Phân tích & Thiết kế hệ thống  
1.4. CÁC MỨC TRỪU TƢỢNG HÓA  
Đây là một trong các phương pháp tiếp cận nhằm chỉ ra mức bất biến của hệ  
thống thông tin sẽ phát triển. Phương pháp này đáp ứng các nhu cầu phát triển cho  
một hệ thống thông tin nói chung và hệ thống thông tin tự động hóa nói riêng,  
trong khi một số phương pháp khác khó có thể thỏa mãn các nhu cầu phát triển đó  
đồng thời cung cấp cái nhìn toàn diện trong quá trình phát triển dự án tin học,  
nhưng phương pháp này bản thân cũng ở mức trừu tượng cao do đó để nắm chắc  
phương pháp này đòi hỏi học sinh, sinh viên phải đầu tư thời gian học và khổ  
luyện.  
Các nhu cầu mà phân tích viên phải lưu ý:  
Mô hình và ngôn ngữ đặc tả đơn giản, đơn nghĩa để xác định yêu cầu trong  
quá trình phân tích.  
Mô hình và ngôn ngữ để đối thoại với người không chuyên tin học khi  
nghiên cứu hiện trạng và tìm hiểu yêu cầu. Ví dụ: Quan niệm CSDL giữa người  
chuyên tin học và không chuyên là hoàn khác nhau đôi khi còn trái ngược  
Bao quát mô hình ở tất cả các mức độ trừu tượng hóa khác nhau: Sau khi  
ta có mô hình thì có sử dụng một công cụ phân tích nào đó để hỗ trợ. Do đó mô  
hình cũng cần phải dễ chuyển tải từ lời miêu tả ở cấp trừu tượng hóa cao nhất của  
hệ thống (tức là ở dạng một lượng các gói khác nhau) đi xuống cho tới cấp của  
những dòng code thật sự. Sau đó, để truy xuất những dòng lệnh code cho một thủ  
tục cụ thể nào đó trong một lớp nào đó, bạn có thể chỉ cần nhấp chuột vào tên của  
thủ tục đó trong một biểu đồ.  
Tóm lại: Dù tiếp phương pháp tiếp cận nào thì cũng cần tạo ra mức bất biến  
của hệ thống thông tin sẽ phát triển. Để khắc phục yếu điểm của phân tích viên  
cũng như nhóm phát triển có thể không nhìn thấy tính tổng thể của dự án tin học  
hóa sẽ phát triển trong tương lai. UML hỗ trợ cách tiếp cận theo hướng nhìn từ  
nhiều phía theo bảng sau - Bảng 1.1:  
Khía cạnh chính  
Hƣớng nhìn  
Hướng nhìn tĩnh  
(static view)  
Các biểu đồ Các khái niệm chính  
lớp, liên hệ, kế thừa,  
Biểu đồ lớp  
phụ thuộc, giao diện  
Hướng nhìn use  
case (Use case  
view)  
Hướng nhìn cài đặt  
(implementation  
view)  
Biểu đồ use Use case, tác nhân, liên  
case  
hệ, extend, include …  
Khía cạnh cấu trúc  
hệ thống  
Biểu  
thành phần  
đồ Thành phần, giao diện,  
quan hệ phụ thuộc …  
Hướng nhìn triển  
khai (deployment  
view)  
Node, thành phần, quan  
hệ phụ thuộc, vị trí  
(location)  
Biểu đồ triển  
khai  
Hướng nhìn máy Biểu  
trạng thái (state trạng thái  
machine view)  
đồ  
Trạng thái, sự kiện,  
chuyển tiếp, hành động  
Khía cạnh động  
Hướng nhìn hoạt Biểu  
đồ Trạng thái, sự kiện,  
Giáo viên biên soạn: Nguyễn Trần Phương  
23  
Tải về để xem bản đầy đủ
pdf 22 trang myanh 22920 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phân tích & Thiết kế hệ thống - Chương 1: Những vấn đề chung - Nguyễn Trần Phương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_phan_tich_thiet_ke_he_thong_chuong_1_nhung_van_de.pdf