



















Preview text:
lOMoAR cPSD| 58933639 8/12/2022
Chương 1. Tổng quan (tiếp)
Tiến tr nh phÆt triển phần mềm Nguyễn Hồng Hạnh, MSc
Bộ môn Công nghệ phần mềm
Khoa CNTT&TT – ĐH Xây dựng Hà Nội Email: hanhnh@huce.edu.vn 1 1
2 .Tiến trình Phát triển Phần mềm • • 2 2 Nội dung lOMoAR cPSD| 58933639 8/12/2022
1. Các hoạt động phát triển phần mềm (PTPM)
2. Một số mô hình phát triển phần mềm thông dụng 3. Tiến trình RUP 3 3
2.1 . Các hoạt ộng Phát triển Phần mềm 6 hoạt động cơ bản :
• Analysis: phân tích xem mình sẽ làm những gì
• Design: mình sẽ thiết kế phần mềm như thế nào
• Develop: mình sẽ code ra sao
• Test: phần mềm được đem đi kiểm tra xem chạy đúng yêu cầu thiết kế chưa
• Deploy: phần mềm được đưa vào sử dụng
• Maintain: giai đoạn bảo trì, hỗ trợ khách hàng sử dụng phần mềm. 4 4 lOMoAR cPSD| 58933639 8/12/2022
2.1. Các hoạt ộng Phát triển Phần mềm 2.1.1 Analysis
Là giai đoạn đội phát triển dự án sẽ phân tích để hiểu
được vấn đề của khách hàng và những gì mà họ đang
mong đợi. Giai đoạn xác định yêu cầu 5
2.1 . Các hoạt ộng Phát triển Phần mềm 2.1.1 Analysis
3 bước quan trọng trong giai đoạn Analysis 6 6 lOMoAR cPSD| 58933639 8/12/2022 5 lOMoAR cPSD| 58933639 8/12/2022
2.1. Các hoạt ộng Phát triển Phần mềm
A. Project Definition – XÆc định dự Æn
Hiểu được dự Æn l m g , khÆch h ng l ai, thuộc lĩnh vực gì, vấn đề của họ ra sao,
hiện trạng hiện tại của họ như thế n o, mục tiêu hướng đến của họ là gì, phạm
vị của dự án như thế nào, kế hoạch thực hiện dự Æn (time schedule) ra sao,
những tiŒu ch giœp dự Æn thỏa mªn kỳ vọng của khÆch h ng… 7 7 lOMoAR cPSD| 58933639 8/12/2022
2.1. Các hoạt ộng Phát triển Phần mềm
2.1 . Các hoạt ộng Phát triển Phần mềm
B. Elicitation – KhaithÆcthngtin
Mụcđích : Nắmđược , khaithÆc được chnhxÆc tất cả những yŒu cầu
( requirements) từ phakhÆchhng( cả tường minh(stated) lẫnngầm ẩn ( unstated)).
Output: Thngtin, rấtnhiều thngtin, tồn tại dướinhiềudạng ( ghichØp, hnh ảnh , mthanh …) 8 8
C. Analysis – Ph n t ch th ng tin
Mục đích: Hệ thống lại th ng tin, đơn giản l sắp xếp & phân loại
mọi thứ cho phø hợp, đẹp đẽ, sạch sẽ để dễ d ng nắm bắt, hiểu
được vấn đề v t m hướng giải quyết.
“Analysis means simply breaking down the information of an object, entity,
process, or anything else to understand its functioning“
Sandhya Jane - tÆc giả cuốn Business Analysis: The question and answer book
Nhận diện đúng đâu l
yŒu cầu thực sự khÆch h ng mong đợi
ở hệ thống. V
trong những yŒu cầu đó th cÆi g nŒn ưu tiŒn
h ng đầu, cÆi g họcầnnhất? 9 lOMoAR cPSD| 58933639 8/12/2022
2.1. Các hoạt ộng Phát triển Phần mềm 9
2.1 . Các hoạt ộng Phát triển Phần mềm
C. Analysis – Phntchthngtin 10 10
D. Documentation – T i liệu h a m
tả chi tiết yŒu cầu của
khÆch h ng, để thực hiện thường Æp dụng 2 cÆch sau: lOMoAR cPSD| 58933639 8/12/2022
2.1. Các hoạt ộng Phát triển Phần mềm
1. Tận dụng cÆc template c sẵn
2. Døng ngn ngữ m hnhha để ti liệu ha. Hai loại phổ biến nhất l BPMN v UML
Ti liệu output:
E. Verification –Kiểm tra lại F. Management 11 11
2.1 . Các hoạt ộng Phát triển Phần mềm 2.1.2 Design
Giai đoạn can thiệp sâu về kỹ thuật, bao gồm: • Thiết kế Database • Vẽ Mockup • Thiết kế UX/UI •
Thiết kế Business Process Flow •
Thiết kế bộ phân quyền hệ thống • … Output: Ti liệuthiết kế
SDD (Software Design Document) hoặc
FDD (Functional Design Document) 12 12 lOMoAR cPSD| 58933639 8/12/2022
2.1. Các hoạt ộng Phát triển Phần mềm
2.1.3 Develop – Quá trình build sản phẩm
2.1.4 Test –Kiểm thử
Internal Testing – test nội bộ đảm bảo Dev cài đặt đúng yêu cầu thiết kế,
đảm bảo trả kết quả đúng cam kết với khách hàng. Sử dụng Requirement
Traceability Matrix để theo dõi quá trình test case khớp với requirement
(thành công hay thất bại)
External Testing – thực hiện User Acceptance Test (UAT) với khách hng 13 13
2.1. Các hoạt ộng Phát triển Phần mềm
2.1.5 Deploy –L m những việc để hệthốngsẵn s ng đượcsửdụng
• Build solution từ môi trường Dev lên môi trường Production.
• Migrate data: là chuyển toàn bộ data hiện tại của khách hàng từ hệ
thống cũ sang hệ thống mới.
• Thiết lập người dùng như: phân quyền, cập nhật tài khoản, thông tin cá nhân…
• Hướng dẫn người dùng sử dụng hệ thống (User Manual)
- c thể ở nhiều dạng: tệp pdf, video, …
2.1.6 Maintain –Bảo tr • Sửa lỗi phÆt sinh • N ng cấp hệ thống lOMoAR cPSD| 58933639 8/12/2022
2.1. Các hoạt ộng Phát triển Phần mềm 14 14 lOMoAR cPSD| 58933639 8/12/2022
2.2. Một số mô hình PTPM thông dụng
Có nhiều mô hình PTPM ◼ Mô hình thác nước
◼ Mô hình phát triển ứng dụng linh hoạt Scrum/ Agile ◼ Mô hình nguyên mẫu ◼ Mô hình chữ V ◼ Mô hình tiến hóa ◼ Mô hình xoắn ốc ◼ Mô hình hợp nhất 15 15
Mô hình thác nước (Waterfall model) Phntch tnh khả thi Phntchv ặc tả yŒu cầu Thiết kế Mªhav kiểmthử Ci ặt v bảo tr 16 16 lOMoAR cPSD| 58933639 8/12/2022
Mô hình nguyên mẫu (prototyping model) PhntchyŒu cầu Thiết kế nhanh Xy dựng nguyŒn mẫu Đánh giÆ Thiết kế 17 17 Mô hình chữ V Đặc tả yŒu cầu Kiểmthử hệ thống Thiết kế kiến trœc Kiểmthử tch hợp Thiết kế chi tiết Kiểmthửơn vị Mªha 18 18 lOMoAR cPSD| 58933639 8/12/2022
MH tiến hóa (evolutionary model) PhiŒn bản ầu tiŒn Đặc tả PhÆt triển PhiŒn bản trunggian Hợpthức ha PhiŒn bản cuối cøng 19 19 M h nh Scrum/ Agile
Chia nhỏ yêu cầu ra thành các User Story, gom vào từng Sprint
Backlog để làm dần dần.
Quy trình sẽ không đi từ đầu tới cuối 1 lần duy nhất, mà đi nhiều lần từ analysis
-> deploy, tạo thành nhiều sprint, nhiều vòng lặp. Mỗi vòng lặp sẽ làm một số
tính năng nhất định, thời gian sẽ được rút ngắn còn khoảng từ 2-4 tuần/ sprint.
Kết quả khÆch h ng thấy ngay được sản phẩm của mình thành hình dần dần,
từ đó góp ý để cải thiện sản phẩm ngày một phù hợp hơn với nhu cầu của họ. 20 20 lOMoAR cPSD| 58933639 8/12/2022
MH xoắn ốc (spiral model) 21 21 Đặt vấn ề Giải quyết vấn ề Thực hiện Vấn ề Giải phÆp Khởi ầu Soạnthảo Xy dựng Chuyển giao Inception
Elaboration Construction Transition Thời gian 22 22 lOMoAR cPSD| 58933639 8/12/2022
MH hợp nhất (unified model) Góc nhìn kỹ thuật Bước lặp Kết quả Bướclặpchuẩn bị Mẫuthử ( maquette) Bướclặpkiến trœc NguyŒn mẫukiến trœc Bướclặpkiến trœc NguyŒn mẫukiến trœc Bướclặp phÆt triển NguyŒn mẫu phÆt triển Bướclặp phÆt triển NguyŒn mẫu phÆt triển Bướclặp phÆt triển PhiŒn bản Bướclặpchuyển giao PhiŒn bản Bướclặpchuyển giao PhiŒn bản chnh thức 23 23
MH hợp nhất (unified model) Kết hợp 2 góc nhìn Bước lặp Kết quả Bướclặpchuẩn bị Mẫuthử maq ( uette) Khởiầu Bướclặpkiến trœc NguyŒn mẫukiến trœc Soạnthảo Bướclặpkiến trœc NguyŒn mẫukiến trœc Bướclặp phÆt triển NguyŒn mẫu phÆt triển Xy Bướclặp dựng phÆt triển NguyŒn mẫu phÆt triển Bướclặp phÆt triển PhiŒn bản Bướclặpchuyển giao PhiŒn bản Chuyển giao Bướclặpchuyển giao PhiŒn bản chnh thức 24 24 lOMoAR cPSD| 58933639 8/12/2022 MH hợp nhất và UML 25 25 3. Tiến trình RUP
RUP (Rational Unified Process) là một tiến trình
phát triển ứng dụng kết hợp MHH với UML,
không phải là một chuẩn. Nội dung đề cập:
3.1. Các nguyên tắc cơ bản
3.2. Các pha và công đoạn 3.3. Tiến trình 10 bước 26 lOMoAR cPSD| 58933639 8/12/2022 26
3.1. Các nguyên tắc cơ bản Lặp và tăng trưởng
◼ Dự án được chia thành những vòng lặp hoặc giai
đoạn ngắn để dễ dàng kiểm soát. Cuối mỗi vòng lặp,
phần thi hành được của HT được sản sinh theo cách thêm vào dần dần.
Tập trung vào kiến trúc
◼ HT phức tạp được chia thành các modul để dễ dàng
triển khai và bảo trì. Kiến trúc này được tr nh b y theo 5 g c nh n khÆc nhau. 27 27
3.1. Các nguyên tắc cơ bản
Dẫn dắt theo các ca sử dụng (Usecase)
◼ Nhu cầu người dùng thể hiện bởi các ca sử dụng. Các ca sử
dụng ảnh hưởng xuyên suốt cho mọi giai đoạn phát triển HT, là
cơ sở xác định vòng lặp và tăng trưởng, là căn cứ để phân chia công việc trong nhóm.
Nắm bắt nhu cầu => phát hiện các ca sử dụng.
Phân tích => đi sâu vào các ca sử dụng.
Thiết kế và cài đặt => xây dựng HT theo các ca sử dụng.
Kiểm định và nghiệm thu HT => thực hiện theo các ca sử dụng.
Khống chế bởi các nguy cơ
◼ Phát hiện sớm và loại bỏ các nguy cơ đ/v dự án. 28 28 lOMoAR cPSD| 58933639 8/12/2022
3.2. Các pha và công đoạn của RUP 29 29
3.2. Các pha và công đoạn của RUP
Pha khởi đầu (inception)
◼ Cho một cái nhìn tổng quát về HT (chức năng, hiệu
năng, công nghệ,…) và về dự án sẽ triển khai (phạm
vi, mục tiêu, tính khả thi,…) => đưa ra kết luận nên
phát triển dự án hay loại bỏ?
Pha triển khai (elaboration)
◼ Phân tích chi tiết hơn về HT (chức năng và cấu trúc tĩnh)
◼ Đề xuất một kiến trúc HT (nguyên mẫu) 30 30 lOMoAR cPSD| 58933639 8/12/2022
3.2. Các pha và công đoạn của RUP
Pha xây dựng (construction)
◼ Tập trung vào thiết kế và cài đặt HT.
◼ Kiến trúc HT được chi tiết hóa, chỉnh sửa.
◼ Kết thúc khi đã cho ra được 1 HT hoàn chỉnh với tài liệu đi kèm.
◼ Là pha tiêu tốn nhiều thời gian, công sức nhất.
Pha chuyển giao (transition)
◼ Chuyển HT tới tay người dùng cuối: chuyển đổi dữ
liệu, lắp đặt, kiểm tra, đào tạo,… 31 lOMoAR cPSD| 58933639 8/12/2022
3.3. Tiến trình 10 bước dựa trên RUP 1.Nghiên cứu sơ bộ
◼ Đưa ra cái nhìn khái quát về HT và dự án.
◼ Đưa ra kết luận nên/không nên triển khai dự án.
2.Nhận định và đặc tả các ca sử dụng
◼ Nắm bắt yêu cầu của người dùng, phát hiện các ca sử dụng
◼ Mỗi ca sử dụng phải được đặc tả dưới dạng kịch bản và/hoặc một biểu đồ trình tự
3.MHH lĩnh vực ứng dụng
◼ Đưa ra 1 MH (biểu đồ lớp) phản ánh mọi khái niệm, nghiệp vụ.
◼ Các lớp ở đây là các lớp lĩnh vực. 33 33
3.3. Tiến trình 10 bước dựa trên RUP
4. Xác định các đối tượng/lớp tham gia ca sử dụng
◼ Với mỗi ca sử dụng, phát hiện các lớp lĩnh vực,lớp điều khiển, lớp biên.
5. MHH tương tác trong các ca sử dụng
◼ Các đối tượng tương tác bằng cách trao đổi thông điệp.
◼ Tạo kịch bản của ca sử dụng: biểu đồ trình tự, biểu đồ giao tiếp. 6. MHH ứng xử
◼ Các đối tượng điều khiển có khả năng ứng xử đ/v các sự kiện đến từ
bên ngoài để điều khiển.
◼ Sử dụng biểu đồ máy trạng thái để mô tả hành vi ứng xử của các đối tượng điều khiển. 34 34