1. 2 Lĩnh vực hoạt động và các sản phẩm chủ chính của công ty
2.1.6. Các quy trình trong sản xuất phần mềm
Trong sản xuất phần mềm công nghiệp, người ta phân chia toàn bộ quá trình sản xuất một sản phẩm thành nhiều công đoạn, các công đoạn được gọi là các quy trình. Toàn bộ chuỗi sản xuất phần mềm được chia thành 7 quy trình cụ thể như sau :
1. Quy trình lập và quản lý hợp đồng phần mềm 2. Quy trình xác định yêu cầu phần mềm
3. Quy trình thiết kế phần mềm 4. Quy trình lập trình
5. Quy trình test
6. Quy trình triển khai
7. Quy trình quản lý dự án phần mềm
Toàn bộ các quy trình và mối quan hệ giữa chúng được biểu diễn dưới sơ đồ sau :
Hình 2.2. Các quy trình sản xuất phần mềm
Toàn bộ quá trình sản xuất phần mềm ở quy mô công nghiệp bao gồm sáu chức năng riêng biệt và một chức năng quản lý dự án bao trùm. Dòng
chảy các quy trình từ lúc lập hợp đồng với khách hàng cho đến khi triển khai sản phẩm cho khách hàng đều có một điểm chung là kết quả ở một quy trình nào đó đứng trước sẽ là sản phẩm đầu vào của quy trình đứng tiếp sau. Bởi thế chất lượng của một sản phẩm phần mềm phụ thuộc đồng thời vào cả bảy quy trình và không thể xem nhẹ bất cứ quy trình nào.
a. Quy trình xây dựng và quản lý hợp đồng phần mềm
Quy trình này được tiến hành nhằm mục đích : nghiên cứu, đề xuất hợp đồng phần mềm với khách hàng; theo dõi quá trình thực hiện hợp đồng; tiến hành thanh toán, thanh lý hợp đồng với khách hàng và đặc biệt là định giá đúng giá trị của phần mềm.
Lưu đồ quy trình xây dựng và quản lý hợp đồng phần mềm được biểu diễn như sau :
Trong các khâu đoạn trên có thể thấy khâu lập giải pháp được tiến hành trước khi xây dựng phần mềm là vì để đảm bảo tính khả thi của dự án cần phải xác định năng lực của công ty phần mềm (như nguồn nhân lực, tài chính đặc biệt là năng lực kỹ thuật) để thực hiện dự án trước khi khởi thảo hợp đồng.
b. Quy trình xác định yêu cầu phần mềm
Sau khi đã có hợp đồng phần mềm với khách hàng, quy trình xác định yêu cầu phần mềm được thực hiện, tiếp cận các quy trình nghiệp vụ của khách hàng nhằm xác định nhu cầu của khách hàng về sản phẩm tương lai và tiến hành lượng hóa các dạng mô hình.
c. Quy trình thiết kế phần mềm
Thiết kế là công đoạn có vai trò đặc biệt quan trọng quyết định hình thức và công năng của sản phẩm phần mềm. Thiết kế đóng vai trò trung tâm trong kỹ nghệ phần mềm, người ta thống kê thấy gần 70% nỗ lực trong sản xuất phần mềm là dành cho khâu thiết kế. Bởi thiết kế là cách duy nhất mà chúng ta có thể thực hiện quá trình chuyển dịch một cách chính xác nhất yêu cầu của khách hàng thành sản phẩm phần mềm, do đó thiết kế quyết định chất lượng của phần mềm. Trên cơ sở hồ sơ của giai đoạn xác định yêu cầu, ta chuyển sang quy trình thiết kế nhằm xác định hồ sơ tổng thể các vấn đề thiết kế phần mềm từ tổng quát tới chi tiết.
Quy trình thiết kế phần mềm gồm các công đoạn chính sau đây: - Thiết kế kiến trúc phần mềm
- Thiết kế kỹ thuật + Thiết kế dữ liệu
+ Thiết kế thủ tục (giải thuật) + Thiết kế chương trình + Thiết kế giao diện
Thiết kế kiến trúc phần mềm
Kiến trúc phần mềm là một bản mô tả tổng quát những chức năng chính của một hệ thống dựa trên máy tính và những nét đặc trưng, những mối quan hệ giữa các phần tử trong hệ thống. Thiết kế kiến trúc có tính chất bao trùm hệ thống và được coi là xương sống của phần mềm.
Thiết kế kiến trúc phần mềm là quá trình kỹ sư phần mềm dựa trên cơ sở các chức năng của một hệ thống dựa trên máy tính đã được xác định để tạo ra một mô hình biểu thị cho mối quan hệ giữa các phần tử trong hệ thống và đặt ra nền tảng cho các bước phân tích thiết kế sau này. Kỹ thuật và nghệ thuật của người thiết kế thể hiện ở chỗ lựa chọn được một kiến trúc không quá phức
tạp về tổ chức nhưng lại đảm bảo hiệu quả khi thực hiện.
Thiết kế dữ liệu
Cơ sở dữ liệu là một tập hợp dữ liệu được tổ chức đặc biệt và được lưu trữ trên các thiết bị nhớ của máy tính nhằm cung cấp thông tin cho những người sử dụng khác nhau hay cho những ứng dụng khác nhau. Thiết kế cơ sở dữ liệu trải qua các bước :
Bước 1 : Phân tích toàn bộ yêu cầu để có cái nhìn tổng quát trước khi bắt tay vào thiết kế cơ sở dữ liệu.
Bước 2 : Nhận dạng thực thể : Sau khi đã tìm hiểu kỹ tiến trình xử lý, nhà thiết kế phải nhận diện được những thực thể sẽ làm việc.
Bước 3 : Nhận diện mối tương quan giữa các thực thể : xem xét những thực thể nào có mối tương quan với nhau và mối quan hệ đó như thế nào (1:1, 1:N; N:N ).
Bước 4 : Xác định các mục khóa chính : khóa chính là một trường trong thực thể cho phép phân biệt duy nhất một bản ghi với các bản ghi khác bởi nguyên tắc cơ bản trong thiết kế là không cho phép những bản ghi trùng nhau.
Bước 5 : Thêm các trường không phải là các mục khóa vào bảng, đây là các trường mô tả các tính chất khác nhau của đối tượng theo dõi. Trong bước này cũng phải quyết định đặt tên trường dao cho thuận tiện khi xử lý dữ liệu trên bảng.
Bước 6 : Chuẩn hóa các bảng dữ liệu theo 1NF, 2NF, 3NF.
Bước 7 : Khai báo phạm vi mỗi trường. Đây là bước cuối cùng của quá trình thiết kế cơ sở dữ liệu. Trong bước này cần phải xác định kiểu dữ liệu thích hợp cho mỗi trường và phạm vi dao động của các trường nhằm xác định độ rộng của trường.
Thiết kế giải thuật
tục có thể thực hiện được bằng mày tính. Mỗi giải thuật đều phải tuân thủ theo các yêu cầu sau :
1. Giải thuật phải được xác định và không nhập nhằng để có thể biết rõ một lệnh làm gì.
2. Giải thuật phải đủ đơn giản để máy tính hiểu được.
3. Giải thuật phải kết thúc sau một số hữu hạn các phép toán.
Người ta thường sử dụng cấu trúc lưu đồ để biểu diễn các giải thuật. Một số giải thuật chủ yếu thường hay sử dụng : giải thuật đăng nhập hệ thống, nhập dữ liệu, tìm kiếm…
Thiết kế giao diện
Theo Dumas và Galitz thì có những nguyên tắc cơ bản cho việc thiết kế trình bày thông tin trên màn hình như sau :
-Khuôn dạng màn hình nhập liệu phải được thiết kế giống như khuôn dạng của tài liệu gốc. Không bắt người sử dụng phải nhớ thông tin từ màn hình này sang màn hình khác.
-Nên nhóm các trường thông tin trên màn hình theo một trật tự có ý nghĩa, tự nhiên, theo tần số sử dụng, theo chức năng hoặc tầm quan trọng.
-Không bắt người dùng phải nhập các thông tin thứ sinh tức là những thông tin có thể tính toán được hoặc được suy luận từ các thông tin đã có.
-Đặt tên cho các ô nhập liệu ở trên hoặc bên trái của ô. -Tự động cập nhật các giá trị ngầm định nếu có thể.
-Sử dụng phím tab, phím enter để chuyển đến các trường thông tin tiếp theo.
-Sử dụng tối đa là 3 màu trên một form chức năng và chỉ tô màu nhấn mạnh những trường thông tin quan trọng.
Hình 2.5. Lưu đồ quy trình thiết kế phần mềm d. Quy trình lập trình
Trên cơ sở hồ sơ thiết kế, bộ phận lập trình tiến hành chi tiết hóa các sơ đồ khối hay các lưu đồ để biến thành các bản vẽ thiết kế sản phẩm phần mềm thông qua một ngôn ngữ lập trình cụ thể. Yêu cầu đặt ra đối với quy trình này là công đoạn lập trình phải trung thành với thiết kế kiến trúc của phần mềm, không được làm thay đổi.
Lưu đồ quy trình lập trình :
Hình 2.6. Lưu đồ quy trình lập trình e. Quy trình test phần mềm
Sau khi hoàn thành công đoạn lập trình, các lập trình viên tiến hành test chương trình và test toàn bộ phần mềm bao gồm test hệ thống, test tiêu chuẩn nghiệm thu nhằm đảm bảo có một phần mềm chất lượng cao.
Các yêu cầu về kiểm thử được đặt ra như sau :
- Đảm bảo độ chính xác của thông tin đầu ra phù hợp với thông tin kiểm thử đưa vào
- Đảm bảo thời gian trả lời các kết quả của hệ thống
- Hệ thống có xử lý được với khối lượng dữ liệu tối đa trong thiết kế hay không
- Khả năng phục hồi của hệ thống - An toàn dữ liệu
- Vấn đề dễ dàng sử dụng
Có nhiều cách phân loại test phần mềm. Cụ thể : 1. + Test động : test có chạy phần mềm
+ Test tĩnh : test không chạy chương trình
2. + Test thủ công : dùng các công cụ thủ công để test
+ Test tự động : sử dụng công cụ máy tính, phần mềm khác để test 3. + Test α : thực hiện trong phòng thí nghiệm
+ Test β : thực hiện chạy thực tế 4. + Test module
+ Test đơn vị + Test hệ thống
5. + Test hộp đen : chỉ xem đầu vào và đầu ra
+ Test hộp xám : có đọc bên trong nhưng chủ yếu là xem đầu vào , đầu ra
Lưu đồ quy trình test :
Hình 2.7. Lưu đồ quy trình test phần mềm f. Quy trình triển khai
Triển khai là quy trình cuối cùng trong toàn bộ công đoạn khép kín của quy trình sản xuất phần mềm, được tiến hành nhằm chuyển giao sản phẩm phần mềm cho khách hàng đưa vào hoạt động.
Lưu đồ quy trình triển khai :
Hình 2.8. Lưu đồ quy trình triển khai g. Quy trình quản lý dự án phần mềm
Quản lý dự án phần mềm là một quy trình có tính chất bao trùm và tác động đến tất cả sáu quy trình còn lại. Vì thế quy trình này được coi là có vị trí đặc biệt quan trọng và quản trị viên dự án cũng phải là người có kinh nghiệm nhất định trong lĩnh vực phần mềm. Mục đích quản lý dự án là tiến hành xây dựng dự án, thực hiện theo dõi quá trình thực hiện dự án, thực hiện các điều chỉnh nếu cần thiết và cuối cùng là tổng kết dự án.
Các bước của quá trình quản lý dự án phần mềm bao gồm có bảy công đoạn: 1 - Đề xuất dự án phần mềm : Dựa trên yêu cầu về phần mềm cần xây dựng của khách hàng, dự án phần mềm được đề xuất, xem xét và thông qua.
2 - Lập kế hoạch dự án phần mềm
- Xem xét hợp đồng về nội dung, mục tiêu, phạm vi, các yêu cầu và yếu tố chính của dự án, các điều kiện thực hiện của dự án nhằm xác định được yêu cầu của dự án phần mềm.
- Chuẩn bị nguồn lực, môi trường và điều kiện làm việc của dự án. - Xây dựng phương thức thực hiện dự án : tổ chức dự án, cách thức làm việc, cách thức chuyển giao kết quả, các tiêu chuẩn áp dụng trong dự án.
- Lập kế hoạch dự án : các công việc, kết quả, yên cầu, thời hạn, người thực hiện.
- Xem xét phương thức thực hiện và kế hoạch dự án để phê duyệt kế hoạch. 3 - Quản lý tiến trình dự án phần mềm
- Lập bảng phân công công việc và giao việc cho các nhóm dự án - Hỗ trợ lập kế hoạch chi tiết của mỗi nhóm thực hiện dự án phần mềm. - Kiểm soát thực hiện kế hoạch, lập các bản báo cáo tiến trình thực hiện dự án.
- Tổng hợp kết quả các nhóm, tiến hành bàn giao và nghiệm thu các kết quả, sản phẩm.
4 - Quản lý nguồn lực
- Chuẩn bị nguồn lực, lên kế hoạch nguồn lực dự án theo giai đoạn - Kiểm soát sử dụng nguồn lực, lập báo cáo sử dụng nguồn lực của dự án 5 - Quản lý sản phẩm dự án
- Lập kế hoạch bàn giao kết quả của dự án
- Xem xét quá trình thực hiện, test, xem xét và bàn giao các sản phẩm của dự án
- Kiểm soát lưu trữ sản phẩm 6 - Xử lý các tình huống
- Nghiên cứu tình huống và lập báo cáo nghiên cứu - Đề xuất các giải pháp xử lý tình huống
- Tổ chức thực hiện các giải pháp và ghi nhận biên bản nghiệm thu - Báo cáo kết quả thực hiện
7 - Tổng kết dự án phần mềm
- Tổng hợp kết quả và lập báo cáo kết quả dự án - Lập báo cáo tổng kết dự án
- Tổ chức bàn giao, nghiệm thu và ghi nhận biên bản nghiệm thu dự án phần mềm
- Lưu trữ hồ sơ dự án
Lưu đồ quy trình quản lý dự án phần mềm :