1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÁO cáo đồ án môn học NHẬP môn CÔNG NGHỆ PHẦN mềm đề tài tìm hiểu về các quy trình phát triển phần mềm

22 1,1K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 2 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các quy trình phát triển phần mềm chuẩn I.1 Nội dung - Tìm hiểu các quy trình phát triển phần mềm chuẩn - Các công cụ hỗ trợ triển khai các quy trình I.2 Chi tiết tìm hiểu Cũng như mọi

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

BỘ MÔN CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN MÔN HỌC NHẬP MÔN CÔNG NGHỆ PHẦN MỀM

Đề tài

Tìm hiểu về các quy trình phát triển phần mềm

Giảng viên hướng dẫn: Thầy Huỳnh Quyết Thắng Sinh viên thực hiện :

1 Đặng Việt Hùng

2 Nguyễn Văn Hiệp Lớp Công nghệ phần mềm K51

Trang 2

MỤC LỤC

Giới thiệu……… 3

I Các quy trình phát triển phần mềm chuẩn 5

I.1 Nội dung 5

I.2 Chi tiết tìm hiểu 5

I.2.1 Qui trình là gì? 5

I.2.2 SEP, ISO, CMM/CMMI 6

I.2.3 Các mô hình SEP 6

II Tìm hiểu quy trình áp dụng thực tế tại các công ty phần mềm 12

II.1 Nội dung 12

II.2 Chi tiết thực hiện 12

II.2.1 Giới thiệu GoldeSoft 12

II.2.2 Khảo sát quy trình phát triển phần mềm tại GoldenSoft 12

II.2.3 Quy trình phát triển phần mềm tại một số công ty phần mềm khác 16

III Nhận xét đánh giá………… 17

IV Tài liệu tham khảo………… .18

Trang 3

Giới thiệu

Đồ án môn học Nhập môn công nghệ phần mềm

Giảng viên hướng dẫn: PGS.TS Huỳnh Quyết Thắng

 Các quy trình chuẩn: cơ sở lí thuyết, phân loại, tìm hiểu chung

 Tìm hiểu và thu thập các tài liệu tham khảo tiêu biểu liên quan đến nội dung của bài tập lớn

 Một số quy trình phát triển phần mềm thông dụng: CMM, Prototyping, RAD, RUP, Chú ý SCRUM : chia nhỏ thành các module

 Các công cụ hỗ trợ triển khai các quy trình

 Thực tế ứng dụng tại các công ty (trên địa bàn Hà Nội): khảo sát thực tế, phỏng vấn, đánh giá

 Bài học kinh nghiệm và kết luận

Trang 4

3 Đề cương nghiên cứu

STT Nội dung Thời hạn Kết quả

cần đạt

Phân công nhóm

1 - Tìm hiểu các quy trình chuẩn

 Cơ sở lý thuyết

 Phân loại

 Tìm hiểu chung

Tuần 9 10/03

Cả nhóm

2 - Tìm hiểu, thu thập các tài liệu tham khảo liên

quan đến quy trình phát triển phần mềm

Cả nhóm

3 - Thực tế ứng dụng tại các công ty trên địa bàn Hà

Nội (công ty phần mềm GoldenSoft)

 Địa chỉ: Số 5-Bắc Hồng-Khương

Trung-Thanh Xuân-Hà Nội

 Điện thoại: 0947796485

Tuần 11,

12 31/04

Cả nhóm

4 - Tổng kết bài học kinh nghiệm, kết luận

- Viết báo cáo

Tuần 13 07/04

Cả nhóm

Trang 5

I Các quy trình phát triển phần mềm chuẩn

I.1 Nội dung

- Tìm hiểu các quy trình phát triển phần mềm chuẩn

- Các công cụ hỗ trợ triển khai các quy trình

I.2 Chi tiết tìm hiểu

Cũng như mọi ngành sản xuất khác, qui trình là một trong những yếu tố cực kỳ quan trọng đem lại sự thành công cho các nhà sản xuất phần mềm, nó giúp cho mọi thành viên trong dự án từ người cũ đến người mới, trong hay ngoài công ty đều có thể xử lý đồng bộ công việc tương ứng vị trí của mình thông qua cách thức chung của công ty, hay ít nhất ở cấp độ dự

án

Có thể nói qui trình phát triển/xây dựng phần mềm (Software Development/Engineering Process - SEP) có tính chất quyết định để tạo ra sản phẩm chất luợng tốt với chi phí thấp và năng suất cao, điều này có ý nghĩa quan trọng đối với các công ty sản xuất hay gia công phần

mềm củng cố và phát triển cùng với nền công nghiệp phần mềm đầy cạnh tranh

I.2.1 Qui trình là gì?

- Qui trình có thể hiểu là phương pháp thực hiện hoặc sản xuất ra sản phẩm Tương tự như vậy, SEP chính là phương pháp phát triển hay sản xuất ra sản phẩm phần mềm.Thông thường một qui trình bao gồm những yếu tố cơ bản sau:

 Thủ tục (Procedures)

 Hướng dẫn công việc (Activity Guidelines)

 Biểu mẫu (Forms/templates)

 Danh sách kiểm định (Checklists)

 Công cụ hỗ trợ (Tools)

- Với các nhóm công việc chính:

Trang 6

 Đặc tả yêu cầu (Requirements Specification): chỉ ra những “đòi hỏi” cho cả các yêu cầu chức năng và phi chức năng

 Phát triển phần mềm (Development): tạo ra phần mềm thỏa mãn các yêu cầu được chỉ

ra trong “Đặc tả yêu cầu”

 Kiểm thử phần mềm (Validation/Testing): để bảo đảm phần mềm sản xuất ra đáp ứng những “đòi hỏi” được chỉ ra trong “Đặc tả yêu cầu”

 Thay đổi phần mềm (Evolution): đáp ứng nhu cầu thay đổi của khách hàng

- Tùy theo mô hình phát triển phần mềm, các nhóm công việc được triển khai theo những cách khác nhau Để sản xuất cùng một sản phẩm phần mềm người ta có thể dùng các mô hình khác nhau Tuy nhiên không phải tất cả các mô hình đều thích hợp cho mọi ứng dụng

I.2.2 SEP, ISO, CMM/CMMI

Vấn đề được đặt ra là làm thế nào cải tiến qui trình để cải thiện chất lượng và năng suất?

Câu trả lời chính là qui trình khung (Process Framework - PF) PF sẽ chỉ ra những yêu cầu mà một qui trình phải đáp ứng tùy theo mỗi mức độ PF không chỉ ra bất kỳ một qui trình

cụ thể nào mà chỉ đưa ra những yêu cầu ở mỗi mức độ trưởng thành khác nhau của qui trình phải đạt được Đây chính là những hướng dẫn cho các hoạt động cải tiến để nâng mức độ trưởng thành từ thấp lên cao

Có nhiều PF, nhưng phổ biến nhất là ISO và CMM (Capability Maturity Model) được các

tổ chức thế giới công nhận ISO nhắm chung đến nhiều loại tổ chức cả sản xuất lẫn dịch vụ, trong khi CMM được dành riêng cho các tổ chức phát triển phần mềm

Đối với phần mềm, ISO chỉ ra mức độ chất lượng yêu cầu tối thiểu mà một SEP phải đạt (ISO certified) và việc cải tiến qui trình được thực hiện thông qua qui trình kiểm định, trong khi CMM bao gồm những thực tiễn tốt nhất (best practices) được tập hợp rút tỉa từ rất nhiều tổ chức phát triển phần mềm khác nhau và chúng được tổ chức thành 5 mức độ trưởng thành khác nhau (Level 1 - Initial, Level 2 - Repeatable, Level 3 - Defined, Level 4 - Managed, Level 5

- Optimizing)

Ngày nay, phần mềm không đứng riêng một mình mà thường là một bộ phận trong hệ thống hoàn chỉnh Do đó, CMMI (Capability Maturity Model Integration) ra đời hướng đến các qui trình cho việc xây dựng cả hệ thống, bao gồm cả việc tích hợp để xây dựng và bảo trì toàn

bộ hệ thống

I.2.3 Các mô hình SEP

Mô hình SEP còn được gọi là chu trình hay vòng đời phần mềm (SLC - Software Life Cycle) SLC là tập hợp các công việc và quan hệ giữa chúng với nhau diễn ra trong quá trình phát triển phần mềm

Có khá nhiều mô hình SLC khác nhau, trong đó một số được ứng dụng khá phổ biến trên thế giới:

- Các mô hình một phiên bản (Single-version models)

• Mô hình Waterfall (Waterfall model)

• Mô hình chữ V (V-model)

- Các mô hình nhiều phiên bản (Multi-version models)

• Mô hình mẫu (Prototype)

• Mô hình tiến hóa (Evolutionary)

• Mô hình lặp và tăng dần (Iterative and Incremental)

Trang 7

• Mô hình phát triển ứng dụng nhanh (RAD)

• Mô hình xoắn (Spiral)

- Phân tích hệ thống và thiết kế (System Analysis and Design): là giai đoạn định ra “làm thế nào” (“How”) để hệ thống phần mềm đáp ứng những “đòi hỏi” (“What”) mà khách hàng yêu cầu trong SRS Đây là chính là cầu nối giữa “đòi hỏi” (“What”) và mã (Code) được hiện thực để đáp ứng yêu cầu đó

- Hiện thực và kiểm thử từng thành phần (Coding and Unit Test): là giai đoạn hiện thực

“làm thế nào” (“How”) được chỉ ra trong giai đoạn “Phân tích hệ thống và thiết kế”

- Kiểm thử (Test): giai đoạn này sẽ tiến hành kiểm thử mã (code) đã được hiện thực, bao gồm kiểm thử tích hợp cho nhóm các thành phần và kiểm thử toàn hệ thống (system test) Một khâu kiểm thử cuối cùng thường được thực hiện là nghiệm thu (acceptance test), với sự tham gia của khách hàng trong vai trò chính để xác định hệ thống phần mềm có đáp ứng yêu cầu của họ hay không

- Cài đặt và bảo trì (Deployment and Maintenance): đây là giai đoạn cài đặt, cấu hình và huấn luyện khách hàng Giai đoạn này sửa chữa những lỗi của phần mềm (nếu có) và phát triển những thay đổi mới được khách hàng yêu cầu (như sửa đổi, thêm hay bớt chức năng/đặc điểm của hệ thống)

Thực tế cho thấy đến những giai đoạn sau mới có khả năng nhận ra sai sót trong những

Trang 8

giai đoạn trước và phải quay lại để sửa chữa Đây chính là kiểu waterfall dạng lặp (Iterative Waterfall) và được minh hoạ trong Hình 1

b Mô hình chữ V

Trong mô hình Waterfall, kiểm thử được thực hiện trong một giai đoạn riêng biệt Còn với mô hình chữ V, toàn bộ qui trình được chia thành hai nhóm giai đoạn tương ứng nhau: phát triển và kiểm thử Mỗi giai đoạn phát triển sẽ kết hợp với một giai đoạn kiểm thử tương ứng như được minh họa trong Hình 2

Hình 2 Mô hình chữ V

Tinh thần chủ đạo của V-model là các hoạt động kiểm thử phải được tiến hành song song (theo khả năng có thể) ngay từ đầu chu trình cùng với các hoạt động phát triển Ví dụ, các hoạt động cho việc lập kế hoạch kiểm thử toàn hệ thống có thể được thực hiện song song với các hoạt động phân tích và thiết kế hệ thống

c Mô hình mẫu (Prototype)

Hình 3 Mô hình mẫu

Mô hình mẫu (prototype) được minh hoạ trong Hình 3 Trong đó, qui trình được bắt đầu bằng việc thu thập yêu cầu với sự có mặt của đại diện của cả phía phát triển lẫn khách hàng nhằm định ra mục tiêu tổng thể của hệ thống phần mềm sau này, đồng thời ghi nhận tất cả những yêu cầu có thể biết được và sơ luợc những nhóm yêu cầu nào cần phải được làm rõ

Trang 9

Sau đó, thực hiện thiết kế nhanh tập trung chuyển tải những khía cạnh thông qua prototype để khách hàng có thể hình dung, đánh giá giúp hoàn chỉnh yêu cầu cho toàn hệ thống phần mềm Việc này không những giúp tinh chỉnh yêu cầu, mà đồng thời giúp cho đội ngũ phát triển thông hiểu hơn những gì cần được phát triển

Tiếp theo sau giai đoạn làm prototype này có thể là một chu trình theo mô hình

waterfall hay cũng có thể là mô hình khác

Chú ý, prototype thường được làm thật nhanh trong thời gian ngắn nên không được xây dựng trên cùng môi trường và công cụ phát triển của giai đoạn xây dựng phần mềm thực sự

sau này Prototype không đặt ra mục tiêu tái sử dụng cho giai đoạn phát triển thực sự sau đó

d Mô hình tiến hóa (Evolutionary)

Mô hình này thực sự cũng là một dạng dựa trên mô hình mẫu, tuy nhiên có sự khác biệt:

 Mô hình tiến hóa xây dựng nhiều phiên bản prototype liên tiếp nhau

 Những phiên bản prototype trước sẽ được xây dựng với mục tiêu có thể tái sử dụng trong những phiên bản sau

- Hình 4 minh họa mô hình tiến hóa, cho thấy một số phần của hệ thống phần mềm có thể đuợc xây dựng sớm ngay từ giai đoạn thực hiện phân tích yêu cầu và thiết kế

e Mô hình lặp và tăng dần (Iterative and Incremental)

Mô hình lặp và tăng dần có lúc được hiểu là một Tuy nhiên, ta có thể phân biệt ít nhiều

sự khác biệt

Trước tiên, hai mô hình này đều có điểm giống nhau là đều dựa trên tinh thần của mô hình tiến hóa, và có thêm đặc điểm nhắm đến việc cung cấp một phần hệ thống, để khách hàng có thể đưa vào sử dụng trong môi trường hoạt động sản xuất thực sự, mà không cần chờ cho đến khi toàn bộ hệ thống được hoàn thành (trong mô hình mẫu hay tiến hóa, các phiên bản mẫu hay trung gian đều không nhắm đến đưa vào vận hành thực sự cho khách hàng, trừ phiên bản cuối cùng)

Để khách hàng có thể sử dụng, mỗi phiên bản đều phải được thực hiện như một qui trình đầy đủ các công việc từ phân tích yêu cầu với khả năng bổ sung hay thay đổi, thiết kế, hiện thực cho đến kiểm nghiệm và có thể xem như một qui trình (chu trình) con Các chu trình

con có thể sử dụng các mô hình khác nhau (thông thường là waterfall) Hình 5 minh họa hai mô

hình này, trong đó mỗi chu trình con là một waterfall nhỏ

Trang 10

Hình 5

Mục tiêu của phiên bản đầu tiên là phát triển phần lõi và nhóm các chức năng quan trọng Sau mỗi phiên bản được đưa vào sử dụng, các kết quả đánh giá sẽ được phản hồi và lập

kế hoạch cho chu trình con của phiên bản tiếp theo để thực hiện:

 Những thay đổi cho phiên bản trước đó nhằm đáp ứng nhu cầu khách hàng tốt hơn

 Có thể thêm những chức năng hoặc đặc điểm bổ sung

 Sự khác nhau giữa hai mô hình tăng dần và lặp có thể được hiểu đơn giản như sau (so với sản phẩm được hoàn thành trong chu trình con trước):

 Mô hình tăng dần (Incremental): thêm chức năng vào sản phẩm (xem minh hoạ Hình 6)

 Mô hình lặp (Iterative): thay đổi sản phẩm (xem minh họa Hình 6)

- Một SEP có thể kết hợp cả hai mô hình lặp lẫn tăng dần, chẳng hạn RUP (Rational Unified Process)

f Mô hình phát triển nhanh (RAD)

Mô hình phát triển nhanh (RAD - Rapid Application Development) chính là mô hình tăng dần với chu kỳ phát triển cực ngắn Để đạt được mục tiêu này, RAD dựa trên phương pháp phát triển trên cơ sở thành phần hóa hệ thống cùng với việc tái sử dụng các thành phần thích hợp RAD thích hợp cho những hệ thống quản lý thông tin

g Mô hình xoắn (Sprial)

Mô hình này được xây dựng bởi Barry Boehm, đặt trọng tâm phân tích rủi ro và xem xét

kế hoạch để giải quyết chúng, thông qua nhiều chu kỳ con nối tiếp được lặp liên tiếp dựa trên bản chất của mô hình lặp

Trong mô hình này, việc phân tích và giải quyết những vấn đề có rủi ro cao tập trung vào thiết kế từng khía cạnh cụ thể chứ không dựa vào việc xử lý các vấn đề một cách chung chung

Hình 7 minh họa mô hình này với các giai đoạn lặp theo chu kỳ xoay vòng, trong đó mỗi chu kỳ bao gồm 4 giai đoạn con như sau:

 Analysis: Xác định mục tiêu chất lượng cho sản phẩm được thực hiện, đồng thời xác

định sự lựa chọn mua, tái sử dụng hay tự thiết kế và hiện thực các thành phần của hệ thống

 Evaluation: Phân tích sự lựa chọn và các rủi ro có thể xảy ra Việc này được thực hiện

bởi nhiều hoạt động khác nhau thông qua làm mẫu hay mô phỏng

 Development: Phát triển và kiểm định sản phẩm ở mức tiếp theo dựa trên kết quả

định hướng được chỉ ra trong giai đoạn con số 2 (phân tích rủi ro)

 Planing: Kiểm duyệt tất cả các kết quả của các giai đoạn con xảy ra trước đó và lập kế

hoạch cho chu kỳ lặp tiếp theo

Trang 11

Hình 7

Trang 12

II Tìm hiểu quy trình áp dụng thực tế tại các công ty phần mềm

II.1 Nội dung

- Tìm hiểu quy trình áp dụng thực tế tại các công ty phần mềm

- Cụ thể khảo sát tại công ty Golden Soft

II.2 Chi tiết thực hiện

Tiếp tục thực hiện theo đề cương đồ án, nhóm đã tiến hành khảo sát, tìm hiểu thực tế

áp dụng các quy trình phát triển phần mềm tại các công ty trên địa bàn Hà Nội

Cụ thể nhóm đã khảo sát tại các công ty sau:

 Trực tiếp khảo sát tại công ty cổ phần phần mềm vàng GoldenSoft

 Tìm hiểu thông tin về quy trình tại các công ty

o FPT

o Tinh vân

o Sóc bay

o

II.2.1 Giới thiệu GoldenSoft

- Công ty GoldenSoft là công ty hàng đầu trong lĩnh vực phát triển các hệ thống phần mềm hướng dịch vụ Công ty là một phần trong quá trình hiện thực hóa đề án xây dựng chính phủ điện tử

Một số hệ thống được GoldenSoft nghiên cứu, triển khai, phát triển; hiện đang hỗ trợ hiệu quả cho các cơ quan quản lý nhà nước trong nhiều lĩnh vực, đặc biệt về bất động sản

 Hệ thống cấp và quản lý giấy chứng nhận chuyên gia môi giới định giá bất động sản

 Hệ thống cấp và quản lý giấy chứng nhận quyền sử dụng đất, quyền sở hữu nhà ở và tài sản khác gắn liền với đất

 Hệ thống sàn bất động sản điện tử Việt Nam

 Hệ thống website ban chỉ đạo trung ương về các vấn đề nhà ở và bất động sản

- Công ty GoldenSoft hiện có 20 nhân viên, đều là kỹ sư tốt nghiệp khoa CNTT ĐHBKHN

II.2.2 Khảo sát quy trình phát triển phần mềm tại GoldenSoft

Hiện tại GoldenSoft đang áp dụng một quy trình SCRUM, theo mô hình linh hoạt Do đặc thù đội phát triển số lượng nhỏ (có 3 team, mỗi team khoảng 7 thành viên), nên việc áp dụng quy trình SCRUM giúp việc phát triển phần mềm trở nên nhanh chóng và dễ dàng

a Giới thiệu SCRUM

- Đó là một quy trình phát triển phần mềm theo mô hình linh hoạt (agile) Công nghệ Agile cung cấp rất nhiều phương pháp luận, quy trình và các thực nghiệm để cho việc phát triển phần mềm trở nên nhanh chóng và dễ dàng Scrum theo mô hình này

Scrum chia dự án thành các vòng lặp phát triển gọi là các sprint Mỗi sprint thường mất 2- 4 tuần (30 ngày) để hoàn thành Nó rất phù hợp cho những dự án có nhiều sự thay đổi và

Ngày đăng: 08/01/2016, 08:33

HÌNH ẢNH LIÊN QUAN

Hình 1. Mô hình Waterfall - BÁO cáo đồ án môn học NHẬP môn CÔNG NGHỆ PHẦN mềm đề tài tìm hiểu về các quy trình phát triển phần mềm
Hình 1. Mô hình Waterfall (Trang 7)
Hình 2. Mô hình chữ V - BÁO cáo đồ án môn học NHẬP môn CÔNG NGHỆ PHẦN mềm đề tài tìm hiểu về các quy trình phát triển phần mềm
Hình 2. Mô hình chữ V (Trang 8)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w