Chu trình phát triển hệ thống The systems development life cycle – SDLC - Quá trình áp dụng cho các dự án phát triển hệ thống thông tin, đảm bảo rằng các yêu cầu chức năng, yêu cầu ngườ
Trang 2Nội dung
1 Vòng đời phát triển hệ thống phần mềm
2 Các phương pháp phát triển hệ thống phần mềm
3 Đặc điểm của phân tích thiết kế hướng đối tượng
4 Quy trình thống nhất (phương pháp phát triển phần mềm hướng đối tượng)
5 Mô hình ngôn ngữ thống nhất (UML)
6 Vai trò và kĩ năng của đội dự án
Trang 3Chu trình phát triển hệ thống (The systems development life cycle – SDLC )
- Quá trình áp dụng cho các dự án phát triển hệ thống thông tin, đảm bảo rằng các
yêu cầu chức năng, yêu cầu người sử dụng, các mục tiêu và mục đích chiến lược
đều được đáp ứng
- Cung cấp một tiến trình được cấu trúc và chuẩn hóa cho tất cả các pha của bất kz
nỗ lực phát triển hệ thống nào
Trang 5
Các giai đoạn phát triển hệ thống giống như các giai đoạn trong xây dựng một ngôi
nhà
Trang 6Giai đoạn lập kế hoạch là để hiểu tại sao hệ thống cần được xây dựng và xác định đội
dự án sẽ tiến hành xây dựng nó Giai đoạn này gồm 2 bước:
- Khởi tạo dự án
- Quản lý dự án
Trang 7- Khởi tạo dự án:
Xác định tính khả thi của dự án
Tính khả thi về ý tưởng kỹ thuật (Can we build it?)
Tính khả thi về kinh tế (Will it provide business value?)
Tính khả thi về tổ chức (If we build it, will it be used?)
- Quản lý dự án
- Sau khi được phê duyệt, dự án sẽ được quản lý Người quản lý dự án tạo ra
kế hoạch dự án, xây dựng đội ngũ nhân viên dự án, đặt các kỹ thuật vào đúng
vị trí để giúp kiểm soát đội dự án và chỉ đạo dự án trong suốt vòng đời phát
Trang 8Giai đoạn phân tích:
- Mục đích: Tìm hiểu nhu cầu của người sử dụng, phân tích các chức năng và
dữ liệu của tổ chức
Trang 9Giai đoạn phân tích gồm 3 bước:
- Xây dựng chiến lược phân tích để chỉ dẫn nguồn lực của đội dự án Chiến lược
bao gồm phân tích hệ thống hiện hành (as – is system) và các tồn tại của nó, từ
đó đề cử các cách để thiết kế một hệ thống mới (to-be system)
- Thu thập yêu cầu và phân tích thông tin sử dụng các mô hình phân tích
- Kết hợp các phân tích, định nghĩa về hệ thống mới và các mô hình vào một tài
liệu gọi là đề xuất xây dựng hệ thống (system proposal) Các nhà bảo trợ
(sponsor) dựa vào đề xuất hệ xây dựng thống để quyết định liệu dự án có được
Trang 10Giai đoạn thiết kế:
Mục đích: quyết định hệ thống sẽ vận hành như thế nào về phần cứng, phần
mềm, kiến trúc mạng, giao diện người dùng và các biểu mẫu, báo cáo, các
chương trình, file và cơ sở dữ liệu cụ thể cào sẽ được xây dựng
Trang 11Giai đoạn thiết kế gồm 4 bước:
- Phát triển chiến lược thiết kế (mua, thuê hay tự làm?)
- Thiết kế kiến trúc hệ thống: phần cứng, phần mềm, kiến trúc mạng, giao diện và
các biểu mẫu báo cáo
- Thiết kế tệp và cơ sở dữ liệu
- Thiết kế chương trình
Kết quả
Thiết kế kiến trúc
Trang 12Giai đoạn cài đặt và chuyển giao:
Mục đích: tạo ra hệ thống thực sự, đây thường là giai đoạn được chú ý nhiều
nhất bởi vì nó thường dài nhất và tốn kém nhất
Trang 13Giai đoạn cài đặt gồm 3 bước:
- Xây dựng hệ thống, hệ thống được xây dựng và thử nghiệm để đảm bảo
hoạt động theo đúng thiết kế, đây là công việc của hầu hết thành viên đội
dự án (coder, tester)
- Cài đặt hệ thống, chuyển giao hệ thống cũ sang hệ thống mới
- Đội phân tích thiết lập kế hoạch hỗ trợ cho hệ thống
Kết quả
Hệ thống sẵn sàng để hoạt động
Trang 14Bảng trên slide thống kê các sản phẩm được tạo ra trong mỗi giai đoạn xây
dựng hệ thống
Trang 15- Phương pháp phát triển hệ thống là một cách tiếp cận chính thức để thực
hiện vòng đời phát triển hệ thống
- Có rất nhiều phương pháp phát triển hệ thống và chúng được được chia
làm 3 nhóm dựa trên trình tự của các giai đoạn trong SDLC cùng với thời
gian và nguồn lực dành cho mỗi giai đoạn
-
Trang 16Ba nhóm phương pháp phát triển hệ thống bao gồm:
- Thiết kế cấu trúc:
- Mô hình phát triển thác nước
- Mô hình phát triển song song
- Phát triển ứng dụng nhanh
- Mô hình phát triển dựa trên giai đoạn
- Mô hình phát triển dựa trên mẫu thử (system prototyping, throwaway
prototyping)
- Phát triển ứng dụng linh hoạt: Extreme programming
Trang 17- Thiết kế cấu trúc: các phương pháp thuộc nhóm này được áp dụng chủ
yếu ở những năm 1980 Đây là nhóm các phương pháp mà các giai đoạn
trong SDLC được thực hiện một cách tuần tự, hết bước này mới chuyển
sang giai đoạn tiếp theo Rất nhiều phương pháp lấy quy trình làm trung
tâm hoặc lấy dữ liệu làm trung tâm đã dựa trên hai mô hình thiết kế cấu trúc
là mô hình phát triển thác nước (waterfall development) và mô hình phát
triển song song (Parallel development)
Trang 18- Mô hình phát triển thác nước (Waterfall Development): các nhà phân tích và
NSD thực hiện tuần tự từng giai đoạn phát triển hệ thống Các tài liệu (sản
phẩm) được sinh gia trong mỗi giai đoạn thường rất dài (khoảng vài trăm
trang) Sau mỗi giai đoạn các tài liệu được người chủ trì dự án (project
sponsor) phê duyệt để quyết định xem dự án có chuyển sang thực hiện
bước tiếp theo không
- Phương pháp này đươc goi là mô hình phát triển thác nước vì các giai
đoạn phát triển hệ thống thực hiện từ bước này sang bước khác giống mô
hình thác nước
- Trong mô hình phát triển hệ thống thác nước, các giai đoạn có thể được lặp
lại tuy nhiên việc quay lui là rất khó
- Mô hình phát triển cấu trúc sử dụng các mô hình và biểu đồ để mô tả các
quy tình nghiệp vụ và dữ liệu hỗ trợ các tiến trình đó Tập các biểu đồ để
biểu diễn các quy trình nghiệp vụ riêng biệt với tập các biểu đồ biểu diễn dữ
liệu Do đó, nhà phân tích hệ thống phải quyết định lựa chọn tập biểu đồ
quy trình nghiệp vụ được phát triển trước hay tập biểu đồ dữ liệu được phát
triển trước Việc lựa chọn này tùy thuộc vào mức độ quan trọng của quy
trình nghiệp vụ hay dữ liệu của hệ thống cần phát triển
Trang 19Nhược điểm của mô hình phát triển thác nước:
- Giai đoạn thiết kết bắt buộc phải hoàn thành trước khi chuyển sang giai đoạn lập
trình
- Khoảng cách thời gian từ khi đưa ra đề xuất dự án trong giai đoạn phân tích đến
giai đoạn chuyển giao phần mềm dài (từ vái tháng đến vài năm)
- Hệ thống cũng có thể phải làm lại rất nhiều nếu môi trường nghiệp vụ thay đổi so
với thời điểm phân tích hệ thống
Trang 20- Giải quyết nhược điểm của mô hình thác nước là khoảng cách thời gian từ giai đoạn
phân tích đến giai đoạn chuyển giao hệ thống dài
- Đầu tiên, đội dự án lập kế hoạch, phân tích và thiết kế tổng thể hệ thống Sau đó, dự
án được chia nhỏ thành các dự án con có thể thiết kế cài đặt song song Khi các dự án
con được thực hiện hoàn thành thì chúng được tích hợp lại với nhau và hệ thống
tổng hợp được chuyển giao
Trang 21- Mất nhiều thời gian để tài liệu hóa dự án
- Phát sinh một số vấn đề mới: Các hệ thống con không hoàn toàn độc lập,
sự thay đổi thiết kế của hệ thống con này dẫn đến ảnh hưởng hệ thống con
khác, và dự án có thể mất nhiều nguồn lực để tích hợp các hệ thống con lại
với nhau
Trang 22- Các phương pháp thuộc mô hình phát triển ứng dụng nhanh được sử dụng chủ
yếu vào những năm 1990 Các phương pháp này cố gắng giải quyết hai nhược
điểm của mô hình phát triển hướng cấu trúc bằng cách điều chỉnh các giai đoạn
trong vòng đời phát triển hệ thống sao cho một phần của hệ thống được phát
triển nhanh và đưa đến thay người sử dụng Khi đó, NSD sẽ hiểu hệ thống tốt hơn
và đưa ra các lời nhận xát để các nhà phân tích có thể cải tiến hệ thống sao cho
đúng với thực tế hơn
Trang 23- Các nhà phân tích được khuyên sử dụng các các kĩ thuật đặc biệt và công cụ máy
tính để tăng tốc trong các giai đoạn phân tích, thiết kế và cài đặt Ví dụ, các công cụ
hỗ trợ quá trình thiết kế và cài đặt chương trình (CASE - Computer-aided software
engineering), các phiên họp thiết kế ứng dụng chung, các ngôn ngữ lập trình thế
hệ thứ 4, các công cụ tự động sinh mã chương trình dựa trên các đặc tả thiết kế
- Tuy nhiên các phương pháp phát triển hệ thống dựa trên các kỹ thuật hỗ trợ cũng
phát sinh ra thêm một vấn đề đó là quản lý mong muốn của NSD Khi NSD càng
nhanh được tiếp cận với hệ thống mới, họ càng hiểu được công nghệ và các mong
muốn của họ thay đổi và mở rộng
Trang 24- Phương pháp phát triển dựa trên giai đoạn phân mảnh toàn bộ hệ thống ra thành
một dãy các phiên bản để phát triển một cách tuần tự
Trang 25- Giai đoạn phân tích sẽ xác định khái niệm thổng thể về hệ thống Sau đó, đội dự án
cùng NSD và người chủ trì dự án sẽ phân nhóm các yêu cầu hệ thống thành một
loạt các phiên bản Tập các yêu cầu hệ thống quan trọng nhất và cơ bản nhất sẽ
được đưa vào để thiết kế và cài đặt hệ thống ở phiên bản thứ nhất
Trang 26- Khi phiên bản 1 của hệ thống hoàn thiện sẽ được đưa tới cho NSD dùng thử Tiếp
đến, phiên bản 2 của hệ thống được thiết kế và cài đặt dựa trên các nhận xét góp ý
của NSD ở phiên bản 1 cùng với tập yêu cầu đã được xác định cho phiên bản 2
trong giai đoạn phân tích Phiên bản hai hoàn thành lại đực chuyển đến cho NSD
dùng và cho nhận xét Các phiên bản kế tiếp được thực hiện theo đúng trình tự
như trên cho đến khi nào hệ thống hoàn thiện các chức năng theo yêu cầu
Trang 27- Ưu điểm
- Nhanh chóng đưa hệ thống thử nghiệm đến cho NSD dụng dùng thử
- NSD phát hiện và thêm được các yêu cầu còn thiếu sớm hơn so với các
phương pháp phát triển theo mô hình thiết kế cấu trúc
- Nhược điểm:
- NSD được tiếp cận sớm với phần mềm khi nó chưa hoàn thiện do đó việc
xác định tập các yêu cầu quan trọng nhất và cơ bản nhất cho phiên bản một
của hệ thống là rất quan trọng Thêm vào đó là việc quản lý các mong
muốn của NSD cũng cần được chú ý đến
Trang 28- Phương pháp dựa trên bản mẫu hệ thống thực hiện việc phân tích, thiết kế và cài
đặt đồng thời Cả 3 giai đoạn này được thực hiện lặp lại cho tới khi hệ thống được
hoàn thiện
- Đầu tiên, giai đoạn phân tích và thiết kế sơ lược sẽ được thực hiện, sau đó cài đặt
ngay một chương trình mẫu với một tập nhỏ các đặc trưng (chức năng) Phiên bản
mẫu đầu tiên của hệ thống thường là một phần đầu tiên của hệ thống Bản mẫu
đầu tiên sẽ được các đưa cho NSD và người chủ trì dự án xem và cho nhận xét
Những nhận xét này sẽ được sử dụng để phân tích, thiết kế và cài đặt lại ở bản
mẫu thử số 2 Quá trình này cứ tiếp tục cho đến khi nào nhà phân tích, NSD và
người chủ trì dự án đồng { với bản mẫu có đầy đủ các chức năng yêu cầu Sau đó,
hệ thống sẽ được cài đặt và được sử dụng trong công ty Hệ thống tiếp tục được
chỉnh sửa cho đến khi nào nó được chấp nhận sử dụng
Trang 29- Ưu điểm:
- Nhanh chóng cung cấp một hệ thống cho NSD tương tác
- Đảm bảo với NSD rằng đội ngũ dự án đang quan tâm phát triển dự án
- Giúp chỉnh sửa các yêu cầu của hệ thống nhanh và chính xác hơn
- NSD hiểu rõ hệ thống có thể làm được gì và không làm được gì
Trang 30- Nhược điểm:
- Nhịp độ phát triển nhanh của hệ thống yêu cầu các nhà phân tích phải
thực hiện quá trình phân tích một cách cẩn thận và có phương pháp
- Bản mẫu thường thay đổi nhiều đến mức nhiều quyết định thiết kế ban
đầu trở thành nghèo nàn Điều này có thể gây ra một số vấn đề trong
việc phát triển các hệ thống phức tạp vì các vấn đề và các nhiệm vụ
quan trọng không được nhận ra cho đến khi đi vào quá trình phát
triển
Trang 31Các phương pháp dựa trên nguyên mẫu bỏ đi có một giai đoạn phân tích
tương đối kỹ lưỡng được sử dụng để thu thập thông tin và phát triển ý tưởng
cho khái niệm hệ thống Tuy nhiên, người dùng có thể không hoàn toàn hiểu
nhiều tính năng mà họ đề xuất và có thể có các vấn đề kỹ thuật đầy thách
thức cần giải quyết Mỗi vấn đề được kiểm tra bằng cách phân tích, thiết kế và
xây dựng một nguyên mẫu thiết kế Một nguyên mẫu thiết kế không phải là
một hệ thống làm việc; nó là một sản phẩm đại diện cho một phần của hệ
thống cần được tinh chỉnh thêm và nó chỉ chứa đủ chi tiết để cho phép người
dùng hiểu các vấn đề đang được xem xét
Ví dụ: giả sử người dùng không hoàn toàn rõ ràng về cách hệ thống nhập đơn
hàng hoạt động như thế nào Nhóm phân tích có thể xây dựng một loạt các
trang HTML được xem bằng trình duyệt Web để giúp người dùng hình dung ra
một hệ thống như vậy Trong trường hợp này, một loạt các màn hình giả có vẻ
là một hệ thống, nhưng chúng thực sự không làm gì cả
Hoặc giả sử rằng nhóm dự án cần phát triển một chương trình đồ họa tinh vi
Trang 32The throwaway prototyping–based methodologies have a relatively thorough analysis
phase that is used to gather information and to develop ideas for the system concept
However, users may not completely understand many of the features they suggest,
and there may be challenging technical issues to be solved Each of these issues is
examined by analyzing, designing, and building a design prototype A design
prototype is not a working system; it is a product that represents a part of the system
that needs additional refinement and it contains only enough detail to enable users
to understand the issues under consideration
For example, suppose users are not completely clear on how an order entry system
should work The analyst team might build a series of HTML pages viewed using a
Web browser to help the users visualize such a system In this case, a series of
mock-up screens appear to be a system, but they really do nothing
Or, suppose that the project team needs to develop a sophisticated graphics program
in Java The team could write a portion of the program with pretend data to ensure
that they could do a full-blown program successfully
Trang 34Ưu nhược điểm:
- Phương pháp dựa trên nguyên mẫu loại bỏ giúp các giai đoạn phân tích và
thiết kế được thực hiện một cách cẩn thận bằng việc sử dụng các nguyên mẫu để
tinh chỉnh các nhiệm vụ chính trước khi hệ thống được xây dựng
- Nó có thể mất nhiều thời gian hơn để cung cấp hệ thống cuối cùng so với
phương pháp dựa trên nguyên mẫu (vì các nguyên mẫu không trở thành bản
cuối cùng hệ thống), nhưng phương pháp này thường tạo ra các hệ thống ổn
định và đáng tin cậy hơn
Trang 35Mô hình phát triển ứng dụng linh hoạt
- Phương pháp PTUD linh hoạt tập trung vào lập trình này có một vài quy tắc
và thực hành, tất cả đều khá dễ thực hiện Họ tập trung vào việc hợp lý hóa
SDLC bằng cách loại bỏ nhiều các bước mô hình hóa hệ thống và tài liệu hóa
trong các giai đoạn Các dự án nhấn mạnh phát triển ứng dụng đơn giản, lặp
đi lặp lại
- Ví dụ về các phương pháp phát triển nhanh bao gồm lập trình cực đoan,
Scrum và Phương pháp phát triển hệ thống động (DSDM)
- Cách tiếp cận phát triển nhanh thường được sử dụng cùng với các phương
pháp hướng đối tượng
Trang 36Sau một quá trình lập kế hoạch sơ qua, các dự án thực hiện các giai đoạn
phân tích, thiết kế và thực hiện lặp lại
-
Một dự án XP bắt đầu với những câu chuyện của người dùng mô tả những gì
hệ thống cần làm Sau đó, lập trình viên viết mã theo các mô-đun nhỏ, đơn
giản và thử nghiệm để đáp ứng các nhu cầu đó Người dùng được yêu cầu
phải luôn sẵn sàng để trả lời các câu hỏi và vấn đề phát sinh
Các nhóm XP sử dụng một bộ tên, mô tả và thực hành mã hóa phổ biến để
giảm thiểu nhầm lẫn Các dự án XP cung sản phẩm phần mềm nhanh hơn các
phương pháp phát triển ứng dụng nhanh (RAD) và chúng ít khi bị mất nhiều thời
gian vào việc thu thập các yêu cầu cho hệ thống
Trang 37- Phương pháp lập trình cực đoan (XP) được thành lập dựa trên bốn giá trị cốt
lõi: giao tiếp, đơn giản, phản hồi và can đảm
- Bốn giá trị này cung cấp một nền tảng mà các nhà phát triển XP sử dụng để
tạo ra hệ thống
- Đầu tiên, các nhà phát triển phải cung cấp phản hồi nhanh chóng
cho người dùng cuối một cách liên tục
- Thứ hai, XP yêu cầu các nhà phát triển tuân theo nguyên tắc KISS
(Keep It Simple and Stupid)
- Thứ ba, các nhà phát triển phải thực hiện các thay đổi gia tăng để
phát triển hệ thống và họ không chỉ phải chấp nhận thay đổi mà là họ
phải sẵn sàng chấp nhận thay đổi
- Thứ tư, các nhà phát triển phải có một chất lượng tâm lý tốt nhất