Kết quả mong muốn đạt được:- Hiểu được quá trình, các bước thực hiện khi nghiên cứu, phát triển một phần mềm ứng dụng.- Ứng dụng hiệu quả quy trình phát triển phần mềm thác nước vào dự á
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
THÀNH VIÊN: Trần Tuấn Hùng - 2020603080
Trần Giang Lân - 2020604419 Đặng Hữu Thắng - 2020603086 Nguyễn Hữu Thịnh - 2020604037 Nguyễn Văn Tiến - 2020603331
Hà Nội,11/2022
Trang 2LỜI CẢM ƠN
Để bài tập lớn kết thúc môn học được thực hiện thành công, em xin cảm ơn giảng viên
hướng dẫn TS Nguyễn Thị Mỹ Bình, Khoa Công nghệ thông tin, Trường đại học
Công nghiệp Hà Nội đã chia sẻ những kiến thức quý báu, hướng dẫn tận tình và có những góp ý trong suốt quá trình thực hiện đề tài để chúng em có thể hoàn thành tiểu luận một cách tốt nhất
Sau khi nghiên cứu đề tài và kết thúc khóa học, chúng em đã học hỏi và tích lũy được kiến thức và kinh nghiệm từ cô để hoàn thiện và phát triển bản thân Bên cạnh
đó, đây cũng là cơ hội giúp chúng em nhận ra mình cần hoàn thiện thêm những gì để chuẩn bị cho một hành trình dài phía trước
Do kiến thức của bản thân còn hạn chế và thiếu kinh nghiệm thực tiễn nên nội dungbài nghiên cứu khó tránh những thiếu sót Chúng em rất mong nhận được ý kiến đóng góp của thầy, cô giáo và những người quan tâm đến đề tài này để đề tài này của chúng
em được hoàn thiện hơn nữa
Chúng em xin chân thành cảm ơn cô Nguyễn Thị Mỹ Bình đã giúp đỡ chúng em thực
hiện đề tài này!
Hà Nội, ngày 09 tháng 11 năm 2022
Trang 3MỤC LỤC
LỜI CẢM ƠN 2
MỞ ĐẦU 5
CHƯƠNG I : TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM 7
1.Giới thiệu chung về phần mềm 7
1.1 Khái niệm 7
1.2 Định nghĩa về phần mềm 7
1.3 Phân loại phần mềm 8
1.4 Các thuộc tính cơ bản của một phần mềm tốt 8
2 Giới thiệu chung về công nghệ phần mềm 8
2.1 Khái niệm, định nghĩa 8
2.2 Vòng đời phát triển phần mềm 9
3 Quy trình phát triển phần mềm 10
3.1 Khái niệm quy trình 10
3.2 Mô hình quy trình( Procedure model) 11
4 So sánh các mô hình tiến trình 11
4.1 Mô hình thác nước (Waterfall): 11
4.2 Mô hình tiếp cận lặp (Interactive Model): 13
4.3 Mô hình bản mẫu (Prototyping Model): 14
4.4 Mô hình xoắn ốc (Spiral Model): 17
CHƯƠNG II: GIỚI THIỆU VỀ DỰ ÁN PHẦN MỀM 21
1 Giới thiệu chung 21
2 Mô tả bài toán 21
2.1 Quản lý người dùng 22
2.2 Quản lý khách hàng 22
2.3 Quản lý khách ghé thăm 23
2.4 Quản lý sản phẩm 23
3 Giới thiệu về mô hình quy trình và công nghệ áp dụng trong phát triển Sân bóng Hoài Đức 23
3.1 Mô hình quy trình thác nước 23
3.2 Kỹ thuật được sử dụng 25
3.3 Phương pháp phân tích và thiết kế phần mềm 25
Trang 41.Tác nhân và chức năng hệ thống 27n
1.1 Tác nhân hệ thống 27
1.2 Tác nhân và các chức năng tương ứng 27
2.Biểu đồ use case 29
2.1 Biểu đồ use case tổng quan 29
2.2 Sơ đồ phân rã use case 30
2.2.1 Sơ đồ phân rã phía Front-end 30
2.2.2 Sơ đồ phân rã phía Back-end 31
3 Đặc tả chi tiết các use case 31
3.1 Use case Đăng ký (Nguyễn Văn Tiến) 31
3.2 Use case Đăng nhập (Nguyễn Văn Tiến) 33
3.3 Use case Xem danh sách sân đã đặt (Trần Giang Lân) 34
3.4 Use case Quản lý thông tin khách hàng (Trần Giang Lân) 35
3.5 Use case Đặt sân (Đặng Hữu Thắng) 38
3.6 Use case Bảo trì khuyến mãi (Đặng Hữu Thắng) 39
3.7 Use case Tìm kiếm sân (Trần Tuấn Hùng) 42
3.8 Use case Quản lí đơn đặt (Trần Tuấn Hùng) 43
3.9 Use case Xem thông tin sân (Nguyễn Hữu Thịnh) 45
3.10 Use case Quản lí thông tin sân (Nguyễn Hữu Thịnh) 46
Trang 5Mục đích thực hiện đề tài:
Trang 6- Áp dụng mô hình quy trình phát triển phần mềm thác nước vào dự án.
- Tạo dựng được môi trường giao dịch trực tuyến giữa khách hàng và cửa hàng
- Tăng trải nghiệm người dùng
Hiểu được các vấn đề đó cũng như mong muốn đưa thương mại điện tử đến với nhiều người hơn chúng em thực hiện đề tài: Nghiên cứu mô hình quy trình phát triển phần mềm thác nước và áp dụng trong dự án phát triển phần mềm quản lý sân bóng
của cửa hàng sân Hoài Đức Với mục đích xây dựng một hệ thống cho thuê sân bóng
qua mạng uy tín, đơn giản, thân thiện, cũng như đem lại cho khách hàng những lựa chọn tối ưu để ngay cả những người không có kiến thức về tin học cũng có thể tham gia thuê sân qua mạng chỉ với một số thao tác đơn giản
Kết quả mong muốn đạt được:
- Hiểu được quá trình, các bước thực hiện khi nghiên cứu, phát triển một phần mềm ứng dụng
- Ứng dụng hiệu quả quy trình phát triển phần mềm thác nước vào dự án
- Xây dựng Website cho thuê với đẩy đủ tính năng tương tác trực tuyến với khách hàng
- Làm việc nhóm một cách hiệu quả, phối hợp với các thành viên trong nhóm để thực hiện các giai đoạn phát triển phần mềm
- Xây dựng được phần mềm tối ưu về chi phí đồng thời đạt hiệu quả cao.
Bài báo cáo này gồm 3 chương:
Chương 1 : Tổng quan về công nghệ phần mềm
Chương 2 : Giới thiệu về dự án phần mềm
Chương 3 : Phân tích và đặc tả các yêu cầu phần mềm
Trang 7CHƯƠNG I : TỔNG QUAN VỀ CÔNG
kế viên, lập trình viên, kiểm thử viên, người sử dụng, quản trị hệ thống,
Dưới góc nhìn của người sử dụng, phần mềm là:
Chương trình thực thi được trên máy tính hoặc các thiết bị chuyên dụng khác;
Nhằm hỗ trợ cho các nhà chuyên môn trong từng lĩnh vực và thực hiện tốt hơn các thao tác nghiệp vụ
- Theo định nghĩa của IEEE, phần mềm bao gồm các thành phần:
Chương trình máy tính (code);
Các thủ tục;
Tài liệu;
Dữ liệu cần thiết cho sự vận hành của hệ thống
- Chương trình máy tính: giúp máy tính vận hành thực thi các yêu cầu
- Thủ tục: được yêu cầu để định nghĩa theo một thứ tự và lịch biểu của một chương trình khi thực thi, phương thức được triển khai và chịu trách nghiệm cho thực thi các hoạt động cần thiết cho việc tác động vào phần mềm
- Tài liệu: bao gồm những tài liệu hữu ích, có giá trị cao và rất cần thiết để phát triển, vận hành và bảo trì phần mềm, như: đặc tả yêu cầu, mô tả thiết kế từng loại, điều kiện kiểm thử, thủ tục vận hành, hướng dẫn thao tác:
Trang 8 Cần thiết cho nhà phát triển, người sử dụng và đội bảo trì
Cho phép sự phối hợp và cộng tác giữa các thành viên trong đội ngũ phát triển; rà soát các sản phẩm lập trình và thiết kế
Cung cấp cho đội bảo trì tất cả những thông tin yêu cầu về mã nguồn và công việc và cấu trúc cho từng module
- Dữ liệu cần thiết cho sự vận hành của hệ thống:
Dữ liệu bao gồm các tham số đầu vào, mã nguồn và danh sách tên thích hợp với phần mềm để đặc tả những cái cần thiết cho người sử dụng thao tác với hệ thống;
Dữ liệu cần thiết là chuẩn dữ liệu test Sản phẩm phần mềm có thể được phát triển cho: o Một khách hàng cụ thể;
Phát triển cho một thị trường chung
1.3 Phân loại phần mềm
Sản phẩm phần mềm có thể được phát triển cho:
- Một khách hàng cụ thể;
- Phát triển cho một thị trường chung
Sản phẩm phầm mềm có thể thuộc 1 trong 7 loại sau:
Phần mềm trí tuệ nhân tạo
1.4 Các thuộc tính cơ bản của một phần mềm tốt
Một phần mềm tốt phải đảm bảo các tiêu chí sau:
Phải cung cấp chức năng và hiệu suất cần thiết cho người dùng
Đáng tin cậy
Có thể tái sử dụng được
Có thể bảo trì
2 Giới thiệu chung về công nghệ phần mềm
2.1 Khái niệm, định nghĩa
a Khái niệm
Công nghệ học phần mềm là lĩnh vực khoa học về các phương pháp luận, kỹ thuật và công cụ tích hợp trong quy trình sản xuất và vận hành phần mềm Công nghệ
Trang 9phần mềm là một ngành kỹ thuật liên quan đến tất cả các khía cạnh của sản xuất phần mềm từ giai đoạn đầu của đặc tả hệ thống cho đến bảo trì hệ thống Sản xuất phần mềm 6 không chỉ là quá trình phát triển kỹ thuật, mà còn bao gồm công tác quản lý dự
án, phát triển các công cụ, phương pháp, tài liệu, v.v để hỗ trợ sản xuất phần mềm
b Định nghĩa
Một số định nghĩa về Công nghệ phần mềm:
Bauer [1969]: việc thiết lập và sử dụng các nguyên tắc công nghệ học đúngđắn dùng để thu được phần mềm một cách kinh tế vừa tin cậy vừa làm việchiệu quả trên các máy thực
Parnas [1987]: việc xây dựng phần mềm nhiều phiên bản bởi nhiều người
Ghezzi [1991]: một lĩnh vực của khoa học máy tính, liên quan đến xây dựngcác hệ thống phần mềm vừa lớn vừa phức tạp bởi một hay một số nhóm kỹsư
IEEE [1993]: nghiên cứu các phương pháp tiếp cận và việc áp dụng phươngpháp tiếp cận có hệ thống, bài bản và được lượng hóa trong phát triển, vậnhành và bảo trì phần mềm;
Pressman [1995]: Công nghệ phần mềm là bộ môn tích hợp cả quy trình,
các phương pháp, các công cụ để phát triển phần mềm máy tính
2.2 Vòng đời phát triển phần mềm
- Vòng đời phần mềm (SDLC - Software Development Life Cycle) là thời kỳ tính
từ khi phần mềm được sinh (tạo) ra cho đến khi chết đi (từ lúc hình thành đáp ứng yêu cầu, vận hành, bảo dưỡng cho đến khi loại bỏ không đâu dùng)
- Vòng đời phần mềm hay còn gọi là quy trình phần mềm được phân chia thành các pha chính: xác định yêu cầu, phân tích, thiết kế, chế tạo, kiểm thử, bảo trì Biểu diễn các pha có khác nhau theo từng cá nhân, tập thể xây dựng
- Có ba giai đoạn chính trong quy trình phần mềm:
Giai đoạn định nghĩa (definition phase)
Giai đoạn phát triển (development phase)
Giai đoạn hỗ trợ (support phase)
- Khung quy trình phát triển phần mềm gồm các hoạt động:
Process framework: Khung tiến trình
Umbrella activities: Khung công việc bao trùm:
Trang 10 Quality Focus (đảm bảo chất lượng)
Process (tầng tiến trình hay quy trình)
Process (tầng tiến trình hay quy trình)
Tools (công cụ hỗ trợ)
- Các phương pháp & cách tiếp cận để phát triển sản phẩm phần mềm :
Có hai hướng tiếp cận trong pháp triển phần mềm: Từ trên xuống và từ dướilên
Các phương pháp phát triển phần mềm bao gồm: Hướng chức năng, hướng
dữ liệu và hướng đối tượng
3 Quy trình phát triển phần mềm
3.1 Khái niệm quy trình
Vòng đời phát triển phần mềm (SDLC-Software Development Life Cycle) là một
quá trình bao gồm một loạt các hoạt động được lên kế hoạch để phát triển hoặc thay đổi
Sản phẩm Phần mềm SDLC còn được gọi là Quy trình phát triển phần mềm
SDLC là một quy trình được ngành công nghiệp phần mềm sử dụng để thiết kế,phát triển và kiểm tra phần mềm chất lượng cao SDLC nhằm mục đích tạo ra một phần
mềm chất lượng cao đáp ứng hoặc vượt quá mong đợi của khách hàng, hoàn thành trong
thời gian và chi phí ước tính
SDLC là một quy trình theo sau cho một dự án phần mềm, trong một tổ chứcphần mềm, bao gồm một kế hoạch chi tiết mô tả cách phát triển, bảo trì, thay thế vàthay đổi hoặc nâng cao phần mềm cụ thể
SDLC xác định một phương pháp luận để cải thiện chất lượng của phần mềm và
quá trình phát triển tổng thể
SDLC là một khuôn khổ xác định các tác vụ được thực hiện ở mỗi bước trong
Trang 11quy trình phát triển phần mềm.
Các hoạt động cơ bản của quy trình phát triển phần mềm:
Stage 1: Planning and Requirement Analysis (Lập kế hoạch và Phân tích Yêucầu)
Stage 2: Defining Requirements (Xác định/Định nghĩa yêu cầu)
Stage 3: Designing the Product Architecture (Thiết kế Kiến trúc Sản phẩm)
Stage 4: Building or Developing the Product (Xây dựng/phát triển sản phẩm)
Stage 5: Testing the Product (Kiểm tra sản phẩm)
Stage 6: Deployment in the Market and Maintenance (Triển khai/phát hành trênthị trường và duy trì/bảo trì)
3.2 Mô hình quy trình( Procedure model)
Mô hình quy trình (Procedure model) là một chiến lược phát triển phần
mềm, ở đây: bao gồm các cách thức kết hợp, sử dụng tiến trình (process)
phần mềm, cách vận dụng các phương pháp và các công cụ trong mỗi giai
đoạn phát triển
Mỗi mô hình quy trình tuân theo một loạt các bước duy nhất cho kiểu của
nó để đảm bảo sự thành công trong quá trình phát triển phần mềm
Một số mô hình quy trình phổ biến: Waterfall, Iterative, Spiral, Big Bang,V-Model,…
4 So sánh các mô hình tiến trình
4.1 Mô hình thác nước (Waterfall):
- Mô hình vòng đời tuần tự tuyến tính
- Giai đoạn trước phải hoàn thành thì giai đoạn tiếp theo mới có thể bắt đầu và không có sự chồng chéo giữa các giai đoạn
a) Các pha trong mô hình:
Trang 12Hình 2.1 Các pha trong mô hình thác nước
- Thu thập và phân tích yêu cầu (Requirement Analysis): Tất cả các yêu cầu có thể có của hệ thống được phát triển đều được ghi lại trong tài liệu đặc tả yêu cầu
để phục vụ cho các giai đoạn sau
- Thiết kế hệ thống (System Design): Các thông số kỹ thuật từ gia đoạnđầu được nghiên cứu và thiết kế thống Điều này giúp xác định các yêu cầu phần cứng và hệ thống
- Thực hiện (Implementation): Hệ thống được phát triển trong các chương trình đầu tiên gọi là đơn vị, được tích hợp trong giai đoạn tiếptheo Mỗi đơn vị được phát triển và kiểm tra chức năng của nó (Kiểmthử đơn vị)
- Tích hợp và Kiểm thử (Integration and Testing): Tất cả các đơn vị ở giai đoạn trước được tích hợp vào 1 hệ thống sau khi được thử nghiệm Sau khi tích hợp, toàn bộ hệ thống được kiểm tra xem có bất
kỳ lỗi hay hỏng hóc gì không (Kiểm thử tích hợp)
- Triển khai hệ thống (Deployment of system): Sau khi kiểm tra chức năng và phi chức năng, sản phẩm được triển khai trong môi trường khách hàng hay được tung ra thị trường
- Bảo trì (Maintenance): Bảo trì được thực hiện để nâng cao sản phẩm 1
số phiên bản tốt hơn hoặc để vá lỗi sau khi được tung ra thị trường (trong môi trường khách hàng)
b) Đánh giá:
- Ưu điểm:
Đơn giản, dễ hiểu và sử dụng
Dễ dàng quản lý do độ cứng của mô hình
Mỗi giai đoạn có các phân phối cụ thể và một quy trình xem xét
Các giai đoạn được xử lý và hoàn thành cùng một lúc
Hoạt động tốt cho các dự án nhỏ hơn, nơi các yêu cầu được hiểu rất rõ
Trang 13 Các giai đoạn được xác định rõ ràng.
Các mốc quan trọng được hiểu rõ
Dễ dàng sắp xếp các công việc
Quá trình và kết quả được ghi chép đầy đủ
- Nhược điểm:
Không cho phép phản ánh hoặc sửa đổi nhiều
Không có phần mềm đang hoạt động nào được sản xuất cho đến cuối vòng đời
Lượng rủi ro cao và không chắc chắn
Không phải là một mô hình tốt cho các dự án phức tạp và hướng đối tượng
Mô hình kém cho các dự án dài và đang diễn ra Không phù hợp với các dự án mà các yêu cầu có nguy cơ thay đổi từ trung bình đến cao
Vì vậy, rủi ro và sự không chắc chắn là cao với mô hình quy trình này
Rất khó để đo lường sự tiến bộ trong các giai đoạn
Không thể đáp ứng các yêu cầu thay đổi
- Các dự án phần mềm thích hợp:
Các yêu cầu được ghi chép rất đầy đủ, rõ ràng và cố định
Mô tả (định nghĩa) về sản phẩm ổn định
Công nghệ được hiểu và không mang tính năng động
Không có yêu cầu mơ hồ
Có sẵn các nguồn lực dồi dào với kiến thức chuyên môn cần thiết để
hỗ trợ sản phẩm
Dự án ngắn hạn
4.2 Mô hình tiếp cận lặp (Interactive Model):
- Được chia thành nhiều vòng, tăng dần
- Quy trình lặp lại bắt đầu bằng việc triển khai đơn giản 1 tập hợp nhỏ các yêu cầu phần mềm và cải tiển lặp đi lặp lại các phiên bản đang phát triển cho đến khi hệ thống hoàn chỉnh được được triển khai và sẵn sàng được triển khai.a) Các pha trong mô hình:
Hình 2.2 Các pha trong mô hình Iterative
Trang 14- Requirement: Phân tích và định nghĩa phần mềm
- Buid 1: Triển khai đơn giản với 1 tập hợp nhỏ các yêu cầu
- Build i: Cải tiến phiên bản trước đó bằng cách bổ sung thêm các yêu cầu để tạo ra 1 phiên bản mới
- Build n: Giai đoạn cuối xây dựng được 1 phiên bản phần mềm hoàn thiện với đầy đủ các yêu cầu phần mềm
b) Đánh giá:
- Ưu điểm:
Một số chức năng phần mềm có thể được phát triển nhanh chóng và sớm được đưa vào sử dụng trong vòng đời
Kết quả thu được sớm và theo định kỳ
Có thể lập kế hoạch phát triển song song
Ít tốn kém hơn để thay đổi phạm vi/yêu cầu, hỗ trợ thay đổi yêu cầu
Dễ dàng kiểm tra và gỡ lỗi trong quá trình lặp lại nhỏ hơn
Một số chức năng phần mềm có thể được phát triển nhanh chóng và sớm được đưa vào sử dụng trong vòng đời
Kết quả thu được sớm và theo định kỳ
Có thể lập kế hoạch phát triển song song
Ít tốn kém hơn để thay đổi phạm vi/yêu cầu, hỗ trợ thay đổi yêu cầu
Dễ dàng kiểm tra và gỡ lỗi trong quá trình lặp lại nhỏ hơn
- Nhược điểm:
Cần nhiều tài nguyên hơn;
Các vấn đề về kiến trúc hoặc thiết kế hệ thống có thể phát sinh;
Không thích hợp cho các dự án nhỏ;
Sự phức tạp trong quản lý là nhiều hơn;
Cần có nguồn lực có kỹ năng cao để phân tích rủi ro;
Tiến độ dự án phụ thuộc nhiều vào giai đoạn phân tích rủi ro
- Các dự án phần mềm thích hợp:
Các yêu cầu của hệ thống được xác định hoàn chỉnh và rõ ràng
Các yêu cầu chính phải được xác định trước khi thực hiện các giai đoạn lặp; tuy nhiên, một số chức năng hoặc các cải tiến được yêu cầu
có thể phát triển theo thời gian
4.3 Mô hình bản mẫu (Prototyping Model):
- Xây dựng các nguyên mẫu ứng dụng phần mềm hiển thị chức năng của sản phẩm đang được phát triển
- Cho phép người dùng đánh giá các đề xuất của các nhà phát triển và thử chúng trước khi triển khai Nó giúp hiểu các yêu cầu dành riêng cho người dùng và có thể chưa được nhà phát triển xem xét trong quátình thiết kế sản phẩm
a) Các giai đoạn trong mô hình:
- Nghe khách trình bày (Listen to customer)
- Tạo/Sửa bản mẫu (Build/Revise Mock-up)
- Khách kiểm tra bản mẫu (Customer test drives Mock-up)
Trang 15Hình 2.3 Các giai đoạn trong mô hình Prototyping
b) Các pha trong mô hình:
Hình 2.4 Các pha trong mô hình Prototyping
- Thu thập và phân tích yêu cầu (Requirement gathering and analysis): Các thành viên trong nhóm phân tích sản phẩm sẽ xác định yêu cầu
cơ bản Sau khi hoàn toàn hiểu nhu cầu người dùng, các thành viên trong nhóm đã sẵn sàng 1 tài liệu công cụ yêu cầu sản phẩm
- Thiết kế nhanh (Quick design): Các yêu cầu cơ bản được giới thiệu
và gia diện người dùng được cung cấp Các tính năng này được sử dụng trong thiết kế nhanh có thể không hoạt động chính xác theo cách giống như phần mềm thực tế được phát triển nhưng môi trường làm việc tổng thể xung quanh được sử dụng để mang lại giao diện tương tự như khi phát triển sản phẩm cuối cùng
Trang 16- Xây dựng nguyên mẫu (Building Prototype): Mô hình nguyên mẫu sẽthiết kế nhanh từ đầu ra của thiết kế nhanh và xây dựng thiết kế hệ thống đó tại địa phương.
- Đánh giá của khách hàng (Customer evalution): Khách hàng kiểm tra chức năg làm việc của nguyên mẫu xây dựng và đưa ra phản hồi cho nhóm phát triển Những phản hồi này từ khách hàng và người xếp chồng của sản phẩm được thu thập 1 các có tổ chức và được sử dụng
để cải tiến thêm sản phẩm đang trong giai đoạn phát triển
- Tinh chế sản phẩm (Refining Prototype): Giai đoạn để sửa đổi và nâng cao nguyên mẫu Nhóm phản triển thảo luận về phản hồi và đánh giá của khách hàng về nguyên mẫu xây dựng; tinh chỉnh dự án nếu có vấn đề xảy ra; thực hiện mong muốn của khách hàng về hệ thống Tất cả những thay đổi được chấp nhận này được đưa vào nguyên mẫu mới được phát triển và chu trình lặp lại cho đến khi đáp ứng được kỹ vọng của khách hàng
- Sản phẩm của kỹ sư (Engineer Product): Sau khi tất cả các phản hồi liên tiếp và các đánh giá tích cực hình thành cho khách hàng, nguyên mâu xây dựng do nhóm thiết kế và phát triển phần mềm tiếp quản Sản phẩm thực tế được thiết kế và phát triển
c) Đánh giá:
- Ưu điểm:
Cho phép giao diện người dùng cao của khách hàng với hệ thống đã phát triển
Các lỗi và sự cố có thể được phát hiện rất dễ dàng
Tăng sự tham gia của người dùng vào sản phẩm ngay cả trước khi triển khai.Kể từ khi mô hình hoạt động của hệ thống được hiển thị, người dùng hiểu rõ hơn về hệ thống đang được phát triển
Giảm thời gian và chi phí vì các lỗi có thể được phát hiện sớm hơn nhiều.Phản hồi của người dùng nhanh hơn có sẵn dẫn đến các giải pháp tốt hơn
Chức năng bị thiếu có thể được xác định một cách dễ dàng.Các chức năng khó hiểu hoặc khó có thể được xác định
- Nhược điểm:
Làm tăng độ phức tạp của hệ thống do phạm vi chức năng của hệ thống được mở rộng ra ngoài chức năng đã được lập lịch trước của hệ thống
Ứng dụng không hoàn chỉnh có thể khiến ứng dụng không được sử dụng làm hệ thống đầy đủ và chức năng của sản phẩm
Rủi ro phân tích yêu cầu không đủ do phụ thuộc quá nhiều vào nguyên mẫu
Người dùng có thể bị nhầm lẫn giữa nguyên mẫu và hệ thống thực tế
Trên thực tế, phương pháp luận này có thể làm tăng độ phức tạp của hệthống vì phạm vi của hệ thống có thể mở rộng ra ngoài kế hoạch ban đầu
Trang 17 Các nhà phát triển có thể cố gắng sử dụng lại các nguyên mẫu hiện có
để xây dựng hệ thống thực tế, ngay cả khi nó không khả thi về mặt kỹ thuật
Nỗ lực đầu tư vào việc xây dựng nguyên mẫu có thể là quá nhiều nếu
nó không được giám sát đúng cách
Khi mới rõ mục đích chung chung của phần mềm, chưa rõ chi tiết đầu vào hay xử lý ra sao hoặc chưa rõ yêu cầu đầu ra;
Dùng như “Hệ sơ khai” để thu thập yêu cầu người dùng qua các thiết
kế nhanh;
Các giải thuật, kỹ thuật dùng làm bản mẫu có thể chưa nhanh, chưa tốt, miễn là có mẫu để thảo luận gợi yêu cầu của người dùng
4.4 Mô hình xoắn ốc (Spiral Model):
- Là sự kết hợp giữa mô hình quá trình phát triển lặp đi lặp lại và mô hình phát triển tuyến tính tuần tự
- Cho phép phát hành gia tăng sản phẩm hoặc cải tiến gia tăng thông qua mỗi lần lặp lại theo vòng xoắn ốc
- Đường phát triển xoắn ốc, tính từ trong ra được phân chia thành các nhiệm vụ:
Phát triển ý tưởng (Concept Development)
Phát triển hệ thống (System Development)
Cải tiến hệ thống (System Enhencement)
Bảo trì hệ thống (System Maintenance)
a) Các pha trong mô hình: (3 – 6 pha)
- 6 pha:
Trang 18Hình 2.5 Mô hình xoắn ốc gồm 6 vùng làm việc.
Liên hệ, giao tiếp với khách hàng: giữa người phát triển và khách hàng để tìm hiểu yêu cầu, ý kiến
Lập kế hoạch: ước tính; lập kế hoạch;
Phân tích rủi ro;
Thực thi kỹ thuật: Xây dựng một/một số biểu diễn của ứng dụng
Xây dựng và phát hành: Code, test
Đánh giá hệ thống: Khách hàng tham gia đánh giá hệ thống
- 5 pha :
Hình 2.6 Minh họa về mô hình xoắn ốc với 5 vùng làm việc
Liên hệ, giao tiếp với khách hàng: giữa người phát triển và khách hàng
để tìm hiểu yêu cầu, ý kiến
Lập kế hoạch: ước tính; lập kế hoạch; phân tích rủi ro
Mô hình hóa: phân tích; thiết kế
Trang 19 Xây dựng và phát hành: Code, test
Triển khai: giao hàng; Phản hồi
- 4 pha :
Hình 2.7 Minh họa về mô hình xoắn ốc với 4 vùng làm việc
Xác định mục tiêu và xác định các giải pháp thay thế: Các yêu cầu được thu thập từ khách hàng và các mục tiêu được xác định, xây dựng và phân tích khibắt đầu mọi giai đoạn Sau đó, các giải pháp thay thế có thể cho giai đoạn được đề xuất
Xác định và giải quyết rủi ro: Tất cả các giải pháp khả thi được đánh giá để chọn ra giải pháp tốt nhất có thể
Phát triển phiên bản tiếp theo của sản phẩm: Các tính năng đã xác định được phát triển và xác minh thông qua thử nghiệm Cuối pha, phiên bản tiếp theo của phần mềm đã có sẵn
Xem xét và lập kế hoạch cho Giai đoạn tiếp theo: Khách hàng đánh giá phiênbản đã phát triển cho đến nay của phần mềm Cuối cùng, lập kế hoạch cho giai đoạn tiếp theo được bắt đầu
b) Đánh giá:
- Chú trọng vào phân tích rủi ro dự án
- Mỗi giai đoạn trong mô hình được bắt đầu với yêu cầu/mục tiêu thiết kế và kếtthúc với việc khách hàng kiểm tra tiến độ của từng giai đoạn
- Mô hình này linh hoạt hơn nhiều so với các mô hình SDLC khác
Trang 20 Phức tạp
Đắt
Phụ thuộc quá nhiều vào phân tích rủi ro
Khó khăn trong việc quản lý thời gian
- Các dự án phần mềm thích hợp:
Khi dự án có quy mô lớn
Khi việc đánh giá (phân tích) các chi phí và các rủi ro là quan trọng
Bất cứ lúc nào cũng có thể có yêu cầu thay đổi từ phía khách hàng
Khi dự án được yêu cầu release thường xuyên
Khi yêu cầu không rõ ràng và phức tạp
Đối với các dự án có độ rủi ro từ trung bình đến cao
Những người sử dụng không chắc chắn về các nhu cầu của họ
Các yêu cầu phần mềm phức tạp và lớn
Cần phát triển một dòng sản phẩm mới (New product line)
Khi có các thay đổi quan trọng (cần nghiên cứu và khảo sát cẩn thận)
Trang 21CHƯƠNG II: GIỚI THIỆU VỀ DỰ ÁN
PHẦN MỀM
1 Giới thiệu chung
Sân bóng Hoài Đức là cửa hàng sân bóng dành cho thanh niên lứa tuổi từ 10
đến 55 tuổi Sân này đang có chi nhánh trên địa bàn thị trấn Trạm Trôi, huyện Hoài
Đức, thành phố Hà Nội Hiện Sân bóng Hoài Đức đang có kế hoạch mở rộng kinh
doanh sang mảng thương mại điện tử
Để ứng dụng thương mại điện tử và phát triển kênh bán hàng trực tuyến trong
thời đại công nghệ 4.0, Sân bóng Hoài Đức đã có ý tưởng xây dựng phần mềm cho thuê sân bóng trực tuyến trên nền tảng web (được gọi là Website Sân bóng Hoài Đức) Không những vậy, hệ thống còn cho phép Sân bóng Hoài Đức quản lý nhân lực
và hàng hóa trong toàn bộ hệ thống của mình thông qua ứng dụng web Điều này sẽ
giúp Sân bóng Hoài Đức mở rộng thị trường và tiết kiệm được nhân công Từ đó giúp Sân bóng Hoài Đức tăng thêm khả năng cạnh tranh trên thị trường và có chỗ đứng
vững trãi trong thương mại điện tử
2 Mô tả bài toán
Khi khách hàng có nhu cầu thuê sân bóng sau khi đã xem kỹ thông tin về sân thông qua trang web, khách hàng sẽ đặt sân thông qua website
Mỗi khách hàng muốn đặt sân đều phải là thành viên và phải đăng ký thành công trên trang web của cửa hàng, sau đó khách hàng đăng nhập và thực hiện thuê sân trên website
Trên trang web của cửa hàng hiển thị đầy đủ các mặt hàng sân, khách hàng có thể lựa chọn để xem Khi đã tìm được sản phẩm cần sân cần thuê, khách hàng chỉ cần click vào nút “Đặt ngay” để gửi yêu cầu đặt sân cho cửa hàng Khách hàng cần phải kiểm tra lại thông tin cá nhân của mình cũng sân mà mình đặt thuê để thuận lợi cho việc thực hiện giao dịch này, sau đó xác nhận đặt sân
Để thuận tiện cho việc thực hiện đặt thuê sân bóng, khách hàng cần ghi đúng,
đủ thông tin trong mục đăng ký thành viên Mọi đơn đặt sân thiếu một trong số các
Trang 22Khách hàng có thể lựa chọn nhiều phương thức thanh toán khách nhau như:
- Thanh toán khi nhận sân
- Thanh toán bằng việc chuyển khoản
Yêu cầu chức năng:
- Các chức năng liên quan đến người sử dụng
- Các chức năng liên quan đến người quản trị
- Xem thông tin sản phẩm
- Thanh toán
- Lập đơn đặt
- Đánh giá sản phẩm
Yêu cầu phi chức năng
- Bảo mật giữ liệu, độ tin cậy cao
- Giao diện đẹp mắt, thu hút
- Có thể hoạt động tốt trên nhiều nền tảng và thiết bị khác nhau
- Thao tác đơn giản dễ sử dụng
- Tốc độ sử lý thông tin nhanh
Khách hàng thân thiết cần đăng ký tài khoản và các thông tin khác
Đăng ký tài khoản đi kèm các thông tin phục vụ cho việc mua hàng thanh toán Ngoài
ra, hệ thống còn có các ưu đãi dành cho khách hàng của Sân bóng Hoài Đức
Các thông tin bao gồm:
- Họ và tên
- Địa chỉ
Trang 23dữ liệu trên có thể thống kê được doanh thu của cửa hàng.
3 Giới thiệu về mô hình quy trình và công nghệ áp dụng trong phát triển Sân bóng Hoài Đức
3.1 Mô hình quy trình thác nước.
Mô hình thác nước là một ví dụ của mô hình Sequential (Tuần tự) Trong mô hình này, hoạt động phát triển phần mềm được chia thành các giai đoạn khác nhau và từng giai đoạn bao gồm hàng loạt các nhiệm vụ và có các mục tiêu khác nhau
Mô hình Thác nước là giai đoạn đầu trong quá trình SDLC Trên thực tế, nó là
mô hình đầu tiên được sử dụng rộng rãi trong ngành công nghiệp phần mềm Nó được chia thành các pha (Hình 1.1), đầu ra của một pha trở thành đầu vào của pha tiếp theo
Nó là giai đoạn bắt buộc được hoàn thành trước khi bắt đầu giai đoạn tiếp theo, sự pháttriển của một pha chỉ bắt đầu khi giai đoạn trước hoàn thành Do tính chất này, mỗi giai đoạn của mô hình thác nước phải được xác định khá chính xác Các giai đoạn chuyển từ mức cao xuống mức thấp hơn Nói tóm lại, không có sự chồng chéo nào trong mô hình thác nước
Trang 24Hình Các giai đoạn trong mô hình thác nước.
Mô hình Thác nước được sử dụng khi:
- Yêu cầu ổn định và không thay đổi thường xuyên
- Một ứng dụng nhỏ
- Không có hoặc ít có yêu cầu mà không hiểu hoặc không rõ ràng
- Môi trường ổn định
- Các công cụ và công nghệ được sử dụng là ổn định
- Nguồn lực được đào tạo và sẵn sàng
Ưu điểm của việc sử dụng mô hình thác nước:
- Đơn giản, dễ hiểu và sử dụng
- Đối với các dự án nhỏ hơn, mô hình thác nước hoạt động tốt và mang lại kết quả phù hợp
- Vì các giai đoạn của mô hình thác nước cứng nhắc và chính xác, một pha được thực hiện một lần, nó rất dễ dàng để thực hiện
- Các tiêu chí đầu vào và đầu ra được xác định rõ ràng, do đó nó dễ dàng và có hệthống để tiến hành chất lượng
Nhược điểm của việc sử dụng mô hình thác nước:
- Không thể chấp nhận thay đổi yêu cầu
- Nó trở nên rất khó khăn để di chuyển trở lại giai đoạn Ví dụ, nếu ứng dụng đã chuyển sang giai đoạn thử nghiệm và có thay đổi về yêu cầu, gặp khó khăn để quay lại và thay đổi nó