Dẫn nhập : Các cách tiếp cận TS. Hồ Bảo Quốc
Dẫn nhập : Các cách tiếp cận TS. Hồ Bảo Quốc
Dẫn nhập
� Thực hiện theo một phương pháp cũng như việc nấu ăn theo một sách nấu ăn ◦ Một phương pháp phát triển như một
chỉ dẫn nấu ăn ◦ Theo phương pháp chúng ta có thể
nấu mốt món ăn như một đầu bếp giỏi (nhưng cũng có thể nấu ra một món ăn
khủng khiếp mặc dù đã theo đúng chỉ dẫn !!!!)
Dẫn nhập
� Các phương pháp phát triển đã phát triển rất nhanh trong 15 năm qua
� Các phương pháp phát triển hệ thống vẫn đang tiếp tục phát triển sử dụng các công nghệ, các tiếp cận phát triển phần mềm mới
Dẫn nhập � Một phương pháp cần phải ◦ Cung cấp một khung để đánh giá vấn đề cần quan tâm ◦ Cung cấp một lộ trình để bảo đảm xác định được các bước đi quan trọng và mọi thứ phải được lập kế hoạch ◦ Cung cấp các công cụ và các kỹ
thuật cho phép biểu diễn (mô hình) các mặt khac nhau của một hệ thống
Một số phương pháp
� Structured Systems Analysis and Design Method (SSADM)
� Dynamic Systems Development Method (DSDM) ◦ Joint Applications Development (JAD) ◦ Unified Modelling Language (UML) –
chưa thực sự là một phương pháp phát triển! ◦ Rational Unified Process (RUP)
SSADM � Structure Analysis and Design
Method được Learmonth and Burchett Consultancy (LBMS) phát triển cho Central Computer and Telecommunications Agency (CCTA)
� Sau đó được sử dụng cho các dự án chính phủ vào 1983
� Nguồn gốc là chu kỳ phát triển theo thác nước cổ điển
� Được cho là quan liêu, khó sử dụng và không hiệu quả
SSADM (tt.) � Vào những năm 1990, nhiều phiên
bản khác nhau xuất hiện nhằm cải tiến và thu hút người phát triển ◦ Rapid Application Development ◦ Object Oriented
� Đươc xem như một cách tiếp cận “lỗi thời”
Khung tổng quát của SSADM
Các Pha của SSADM
� Mỗi Pha bao gồm một số bước
� Mỗi bước có thể gồm một hoặc nhiều bước con
� Mỗi Pha/bước/bước con có một hoặc nhiều kết xuất liên quan
Ví dụ: Pha phân tích yêu cầu � Nghiên cứu môi trường hiện tại ◦ Xác định một khung phân tích ◦ Nghiên cứu và xác định các yêu cầu ◦ Nghiên cứu các xử lý hiện tại ◦ Nghiên cứu dữ liệu hiện tại ◦ Rút ra mô hình logic cho các dịch vụ hiện tại ◦ Tổ hợp các kết quả nghiên cứu
� Các chọn lựa hệ thống nghiệp vụ ◦ Xác định các chọn lựa của hệ thống nghiệp vụ ◦ Chọn môt giải pháp nghiệp vụ ◦ Xác định các yêu cầu
Dynamic Systems Development Method (DSDM) � Tập trung vào Rapid Application
Development (RAD). ◦ Nghĩa là, các dự án phải hoàn thành trong một
thời gian ngắn và có thể cập nhật các thay đổi. � Không thực sự là một phương pháp- cung
cấp khung và các hướng dẫn nhưng không xác định các kỹ thuật và công cụ thực hiện
� Là một khởi đầu quan trọng cho các cách tiếp cận phát triển vì nó được phát triển cho các dự án công nghiệp (không chỉ là hàn lâm).
Chu kỳ phát triển của DSDM
Business Study
Feasibility
Functional Model iteration
Implementation
Design & build iteration
UML � Unified Modelling Language � Không phải là một phương pháp, vì
nó chỉ gồm ◦ Một tập các đặc tả và ký hiệu cho phát
triển hướng đối tượng ◦ Là tổ hợp các kỹ thuật mô hình hóa do
Booch, Rumbaugh và Jakobsen phát triển
UML models and diagrams
RUP The Rational Unified Process � “Một tiến trình đầy đủ có thể hỗ trợ
cho toàn bộ chu kỳ phát triển phần mềm”.
� “Tiếp cận theo trường hợp sử dụng (Use case driven), Kiến trúc là quan trọng (architecture centric), tương tác và gia tăng từng bước”
Tiếp cận theo trường hợp sử dụng (Use case driven) � Trường hợp sử dụng được sử dụng để nắm
bắt nhu cầu người dùng � Một trường hợp sử dụng (use case) mô tả
một phần của một chức năng nào đó của hệ thống
� Tổng hợp tất cả các trường hợp sử dụng (the use case model)mô tả chức năng tổng thể của hệ thống ◦ Hệ thống được thiết kế dựa trên các trường hợp sử
dụng này ◦ Được cài đặt để hỗ trợ cho những trường hợp sử
dụng này ◦ Được kiểm tra theo nội dung của các trường hợp
sử dụng này � Vì vậy, trường hợp sử dụng và rất quan
trọng !
Kiến trúc là trung tâm (Architecture-centric) � Kết xuất cho mỗi bước là rất quan
trọng trong RUP. � So sách kiến trúc phần mềm với
kiến trúc của một ngôi nhà. � Nhiều phương pháp bỏ qua việc
phát triển kiến trúc (các mô hình) mà chỉ tập trung vào phát triển phần mềm
Tương tác và gia tăng
� Nhu cầu người dùng không thể được xác định đầy đủ và chính xác qua một bước.
� Các yêu cầu tiến hóa và thay đổi theo thời gian và sự hiểu biết sâu thêm về hệ thống.
� Đây cũng là khái niệm quan trọng của các phương pháp hiện đại.
Phát triển tương tác
� Người phát triển khó mà có thể nắm đúng mọi yêu cầu trong một lần, cần phải quay lại để hiểu lại vấn đề tốt hơn với tri thức mới về hệ thống và với sự thay đổi của môi trường bài toán
Phát triển gia tăng
� Đi đôi với phát triển tương tác để có thể bổ sung các yêu cầu mới do các thay đổi của môi trường hay do những hiểu biết còn thiếu sót ở các bước trước. Nghĩa là chúng ta phải hoàn thiện dần các yêu cầu, phát triển hệ thống phù hợp với sự phát triển của nhu cầu người dùng
RUP- Các pha và tài nguyên
RUP – Cấu trúc tiến trình
Tương lai của các phương pháp � Phát triển tự phát (Ad hoc
development) ◦ Không sử dụng một phương pháp hình thức
hóa ◦ Những người phát triển có kinh nghiệm sử
dụng các cách tiếp cận/công cụ/kỹ thuật mà học đã biết.
� Sự phát triển của các phương pháp hình
thức ◦ Các phương pháp hướng đối tượng (O-O
methods) và các phương pháp web-based được tiếp tục phát triển ◦ Các phương pháp sử dụng tập công cụ của
UML
Tương lai của các phương pháp � Các phương pháp có khả năng
thích ứng ◦ Các phương pháp có thể thích ứng với
các môi trường phát triển khác nhau ◦ Khác với các tiếp cận tự phát : chọn
và tổ hợp nhưng bên trong một khung phát triển xác định.
Tương lai của các phương pháp � Phát triển bên ngoài (External
development) ◦ Avison & Fitzgerald đã nhận thấy
khuynh hướng tiến tới outsourcing. ◦ Các tổ chức không còn liên quan đến
nhiều các vấn đề của phát triển – công ty phần mềm tự tạo khung phát triển cho mình