2.2.2.1. Công nghệ phần mềm
Công nghệ phần mềm gồm ba yếu tố chủ chốt: phương pháp, công cụ, thủ tục. Ba yếu tố này giúp quản trị viên dự án nắm bắt một cách rõ ràng vòng đời phát triển của phần mềm, đồng thời cung cấp cho kỹ sư phần mềm một nền tảng để xây dựng một phần mềm có chất lượng cao.
Quy trình phần mềm không phụ thuộc vào lĩnh vực ứng dụng, độ phức tạp hay qui trình công nghệ mà nó bao gồm ba giai đoạn chủ yếu:
Giai đoạn 1: Xác định. Giai đoạn 2: Phát triển. Giai đoạn 3: Bảo trì.
Hệ thống các giai đoạn mà quá trình phát triển phần mềm phải trải qua. Với mỗi giai đoạn cần xác định rõ mục tiêu, kết quả nhận được từ giai đoạn trước đó cũng chính là kết quả chuyển giao cho giai đoạn kế tiếp.
Để tiến hành xây dựng một phần mềm, chúng ta có thể áp dụng nhiều phương pháp khác nhau. Mỗi phương pháp sẽ có những hướng dẫn cụ thể các công việc cần phải thực hiện trong từng giai đoạn trong quy trình xây dựng phần mềm. Các phương pháp xây dựng phần mềm được chia làm hai nhóm khác nhau dựa vào tính
chất của công việc cần thực hiện: - Phương pháp xây dựng:
+ Phương pháp hướng chức năng + Phương pháp hướng dữ liệu + Phương pháp hướng đối tượng - Phương pháp tổ chức quản lý: + Xây dựng dự án
+ Tổ chức nhân sự
+ Ước lượng rủi ro, chi phí
+ Lập và theo dõi kế hoạch triển khai
Các công cụ và môi trường phát triển phần mềm là các các phần mềm hỗ trợ chính người sử dụng trong quá trình xây dựng phần mềm. Các phần mềm này gọi chung là CASE tools (computer Aided Software Engineering).Việc hỗ trợ của các CASE tools trong một giai đoạn gồm 2 hình thức chính:
- Cho phép lưu trữ, cập nhật trên kết quả chuyển giao với một phương pháp nào đó.
- Cho phép phát sinh ra kết quả chuyển giao cho giai đoạn kế tiếp.
2.2.2.2. Các quy trình của công nghệ phần mềm
Trong quy trình sản xuất phần mềm người ta thường tuân theo 6 quy trình chính sau:
•Quy trình xây dựng hợp đồng • Quy trình xác định yêu cầu • Quy trình phân tích thiết kế • Quy trình lập trình
• Quy trình test • Quy trình triển khai
Các quy trình có mối liên hệ thống nhất với nhau theo một trình tự nhất định trong đó đầu ra của quy trình này làm đầu vào của quy trình tiếp sau.
Quy trình 1: Xây dựng hợp đồng phần mềm
Mục đích: Nghiên cứu, đề xuất giải pháp kỹ thuật, tiến hành xây dựng hợp đồng với khách hàng, theo dõi tiến trình thực hiện hợp đồng, tổ chức thanh lý,
thanh toán hợp đồng và lập hồ sơ tổng quát về quy trình hợp đồng phần mềm. Dấu hiệu:
- Xây dựng hợp đồng phần mềm với khách hàng. - Theo dõi thực hiện hợp đồng với khách hàng. - Thanh toán thanh lý hợp đồng phần mềm.
Sơ đồ xây dựng hợp đồng:
Quy trình 2: Xác định yêu cầu phần mềm
Mục đích: sau khi ký kết hợp đồng phần mềm với khách hàng thì hợp đồng được chuyển sang để xác định nhu cầu của khách hàng về sản phẩm họ cần. Yêu cầu đặt ra là phải lượng hoá các dạng mô hình.
B
Nghiên cứu đề xuất
Lập giải pháp
Xây dựng hợp đồng
Trao đổi hợp đồng
Thanh toán thanh lý hợpđồng
Báo cáo quy trình 1
Dấu hiệu:
- Phân tích nghiệp vụ chuyên sâu. - Lập mô hình hoạt động của hệ thống.
Sơ đồ xác định yêu cầu khách hàng:
Quy trình 3: Thiết kế phần mềm
Mục đích: Sau khi đã xác định được yêu cầu về phần mềm của khách hàng, trên cơ sở hồ sơ của giai đoạn phân tích ta chuyển sang quy trình thiết kế để 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.
B
Lập kế hoạch xác định yêu cầu
Xác định yêu cầu người sử dụng
Phân tích nghiệp vụ
Lập mô hình hệ thống
Báo cáo quy trình 2 Quản trị viên dự án duyệt Không duyệt E Duyệt
Thiết kế là chìa khoá dẫn đến thành công của một dự án. Công việc thiết kế là một quá trình đòi hỏi tính sáng tạo, tinh tế, hiểu biết sâu sắc của người thiết kế.Thiết kế phần mềm cung cấp cách biểu diễn phần mềm có thể được xác nhận về chất lượng và là cách duy nhất mà chúng ta có thể chuyển hoá một cách chính xác các yêu cầu của khách hàng thành sản phẩm hay hệ thống phần mềm cuối cùng.
Dấu hiệu: - Thiết kế cấu trúc phần mềm. - Thiết kế kỹ thuật. + Thiết kế dữ liệu. + Thiết kế thủ tục. + Thiết kế chương trình. + Thiết kế giao diện.
Sơ đồ: Quy trình thiết kế: B Lập kế hoạch thiết kế Thiết kế kiến trúc PM Duyệt thiết kế kiến trúc Không duyệt Hồ sơ thiết kế Thiết kế giao diện Thiết kế chương trình
Thiết kế thủ tục Thiết kế dữ liệu Duyệt
+ Thiết kế cơ sở dữ liệu:
a.Thiết kế cơ sở dữ liệu logic từ các thông tin đầu ra Bước 1: Xác định các thông tin đầu ra
- Liệt kê toàn bộ các thông tin đầu ra
- Nội dung, khối lượng, tần suất và nơi nhận chúng
Bước 2: Xác định các tệp cần thiết cung cấp đủ dữ liệu cho việc tạo ra từng đầu ra
- Đầu tiên liệt kê toàn bộ các thuộc tính thành một danh sách
- Đánh dấu các thuộc tính lặp – là những thuộc tính có thể nhận nhiều giá trị dữ liệu.
- Đánh dấu các thuộc tính thứ sinh – là những thuộc tính được tính toán ra hoặc được suy ra từ các thuộc tính khác.
- Gạch chân các thuộc tính làm khoá chính cho các thông tin đầu ra.
Thực hiện chuẩn hoá mức 1 (1.NF):
Chuẩn hóa mức 1 (1NF) quy định rằng, trong mỗi thực thể không được phép chứa những thuộc tính lặp và không chứa thuộc tính thứ sinh. Thuộc tính thứ sinh là thuộc tính được sinh ra sau quá trình xử lý và tính toán, do đó không quản lý những thuộc tính này. Nếu có các thuộc tính lặp thì phải tách các thuộc tính lặp đó thành các thực thể con, có một ý nghĩa dưới góc độ quản lý. Gắn cho thực thể mới tách được một tên, tìm cho nó thuộc tính định danh riêng và thêm thuộc tính định danh cho thực thể gốc.
Thực hiện chuẩn hoá mức 2 (2.NF):
Chuẩn hóa mức 2 (2NF) là chuẩn hóa mức 1 trong đó quy định rằng, trong một thực thể, mỗi thuộc tính phải phụ thuộc hàm vào toàn bộ khóa chứ không chỉ phụ thuộc một phần của khóa. Nếu có sự phụ thuộc như vậy thì phải tách những thuộc tính phụ thuộc hàm vào bộ phận của khóa thành một thực thể mới., lấy bộ phận khóa đó thành làm khóa cho thực thể mới. Đặt tên cho thực thể mới này sao cho phù hợp với nội dung của các thuộc tính trong thực thể.
Thực hiện chuẩn hoá mức 3 (3.NF):
Chuẩn hóa mức 3 (3NF) là chuẩn hóa mức 2 trong đó quy định rằng, trong một thực thể không được phép có sự phụ thuộc bắc cầu giữa các thuộc tính. Nếu thuộc tính A phụ thuộc hàm vào thuộc tính B và thuộc tính B phụ thuộc hàm vào thuộc tính C thì phải tách chúng vào hai thực thể: thực thể thứ nhất chứa quan hệ A với B và thực thể thứ hai chứa quan hệ B với C. Xác định khóa và tên cho mỗi thực thể mới
Bước 3: Tích hợp các tệp để chỉ tạo ra một cơ sở dữ liệu
Sau khi tiến hành bước 2 sẽ tạo ra rất nhiều danh sách, mỗi danh sách liên quan đến một đối tượng quản lý. Các danh sách nào cùng mô tả về một thực thể thì phải tích hợp lại, có nghĩa là tạo ra một danh sách chung, bằng cách tâp hơp tất cả các thuộc tính chung và riêng của những danh sách đó.
Bước 4: Xác định khối lượng dữ liệu cho từng tệp và toàn bộ sơ đồ - Xác định số lượng các bản ghi cho từng tệp
- Xác định độ dài cho một thuộc tính, tính độ dài cho các bản ghi.
Bước 5: Xác định liên hệ logic giữa các tệp và thiết lập sơ đồ cấu trúc dữ liệu: Xác định mối liên hệ giữa các tệp, biểu diễn chúng bằng các mũi tên hai chiều.
b.Thiết kế cơ sở dữ liệu bằng phương pháp mô hình hoá
Các thành phần của mô hình dữ liệu bao gồm:
- Thuộc tính: là đặc trưng của thực thể. Thuộc tính liên quan đến các kiểu thực thể, còn giá trị thuộc tính riêng biệt thì thuộc về riêng từng thực thể. Có ba loại thuộc tính sau
+ Thuộc tính định danh: là một hay nhiều thuộc tính cho phép xác định duy nhất một thực thể.
+ Thuộc tính mô tả: hầu hết các thuộc tính trong kiểu thực thể đều là thuộc tính mô tả. Mỗi thuộc tính chỉ xuất hiện trong một bảng
Ví dụ: Với thực thể DMPhongBan gồm các trường: MaPB, TenPB, DienThoai
Thuộc tính MaPB là khoá.
Thuộc tính TenPB, DienThoai là thuộc tính mô tả.
+ Thuộc tính kết nối: là thuộc tính được dùng để chỉ ra mối quan hệ giữa một thực thể này với một thực thể khác.
- Thực thể: được hiểu là tập hợp các đối tượng cùng loại dưới góc độ quan tâm của nhà quản lý.
Có hai loại thực thể:
Thực thể tài nguyên: chỉ mô tả mà không giao dịch.
Thực thể giao dịch: thể hiện các giao dịch
- Kiểu thực thể: là một nhóm tự nhiên một số thực thể lại, mô tả một loại thông tin chứ không phải bản thân thông tin.
Các kiểu liên kết:
1 - 1 Liên kết Một - Một
Một lần xuất hiện của thực thể A được liên kết với chỉ một lần xuất hiện của thực thể B và ngược lại.
1 - N Liên kết Một - Nhiều
Loại liên kết này phổ biến trong thực tế, một lần xuất hiện của thực thể A liên kết với một hay nhiều lần xuất hiện của thực thể B, nhưng mỗi lần xuất hiện thực thẻ B chcỉ liên kết một lần với thực thể A.
N - M Liên kết Nhiều - Nhiều
Mỗi lần xuất của A tương ứng với một hay nhiều lần xuất của B và ngược lại, nhiều mỗi lần xuất của B tương ứng với một hay nhiều lần xuất của B.
+ Thiết kế giao diện:
- Những nguyên tắc cơ bản khi trình bày thông tin trên màn hình
Theo Dumas và Galitz thì có những nguyên tắc cơ bản cho việc trình bày thông tin trên màn hình như sau:
+ Đặt mọi thông tin gắn liền với một nhiệm vụ trên cùng một màn hình. Người sử dụng không phải nhớ thông tin từ màn hình này sang màn hình khác.
+ Chỉ dẫn rõ cách thoát màn hình. Đạt giữa các tiêu đề và xếp đặt thông tin theo trục trung tâm.
+ Nếu đầu ra gồm nhiều trang màn hình thì phải đánh số thứ tự cho các trang. + Viết văn bản theo quy ước chung bằng cách sử dụng chữ in hoa, in thường, chữ gạch chân… và ngắt câu hợp lý.
+ Đặt tên đầu cho mỗi cột.
+ Căn trái các cột văn bản và căn phải các cột số, vị trí dấu thập phân thẳng hàng. + Chỉ đặt màu khác biệt cho các thông tin quan trọng.
- Các quy tắc hữu ích cho việc thiết kế màn hình nhập liệu
+ Khi nhập dữ liệu từ tài liệu gốc thì khuôn dạng màn hình nhập dữ liệu phải giống như tài liệu gốc
+ Người dùng không phải nhập các thông tin mà chương trình có thể tìm được từ cơ sở dữ liệu hoặc tính toán được.
+ Đặt tên các trường ở trên hoặc trước trường nhập + Đặt các giá trị ngầm định cho phù hợp
Quy trình 4: Lập trình
Mục đích: trên cơ sở của hồ sơ thiết kế, bộ phận lập trình sẽ tiến hành chi tiết hoá 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 nhưng bản thân công đoạn lập trình phải trung thành với thiết kế.
Lập trình là một tiến trình dịch thiết kế chi tiết thành chương trình bao gồm tập hợp các dòng mã lệnh mã máy tính có thể hiểu được. Mỗi ngôn ngữ lập trình có những giới hạn nhất định do vậy dựa trên các đặc trưng của ngôn ngữ, chúng ta sẽ chọn ngôn ngữ phù hợp.
Dấu hiệu:
- Lập trình các thư viện chung - Lập trình module
Sơ đồ: Quy trình lập trình: B Lập kế hoạch lập trình Lập kế hoạch lập trình Lập trình module Tích hợp hệ thống
Báo cáo quy trình lậptrình Duyệt?
Không duyệt
Duyệt
Quy trinh 5: Test
Mục đích: sau khi đã có công đoạn lập trình, nhưng người 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 tốt.
Quy trình test là quá trình đánh giá chương trình có phù hợp với những đặc tả yêu cầu và đáp ứng sự mong đợi của khách hàng hay không. Quá trình này phải được tiến hành thường xuyên sau mỗi giai đoạn sản xuất phần mềm.
Dấu hiệu:
- Lập kịch bản test. - Test hệ thống. - Test nghiệm thu.
Không duyệt Duyệt B Lập kế hoạch test Lập kịch bản test Test hệ thống Test nghiệm thu Ghi nhận sai sót Báo cáo quy trình test
Duyệt?
Quy trình 6: Triển khai
Mục đích: 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. Triển khai là một giai đoạn quan trọng, là một phần việc tất yếu đi kèm khi chuyển giao phần mềm, cho nên khi đánh giá thường chỉ quan tâm đến các chức năng và tính năng của hệ thống mà quên một điều quan trọng rằng đó là những tiềm năng sẵn có. Để đưa hệ thống cùng toàn bộ tính năng ưu việt của nó vào ứng dụng trong thực tế thì chỉ có quá trình triển khai tốt mới có thể biến các tiềm năng đó thành hiện thực. Tỷ lệ thất bại của phần mềm là do quá trình triển khai vẫn đang chiếm một tỷ lệ rất cao, nguyên nhân chủ yếu là do:
- Năng lực của người sử dụng còn hạn chế. - Truyền đạt và thông tin không tốt.
- Phương pháp triển khai thiếu tính khoa học và không rõ ràng.
Trong quá trình triển khái việc đào tạo người sử dụng là vấn đề không thể thiếu. Việc đào tạo giúp người sử dụng có thể điều hành trôi chảy hệ thống mới, thông báo một số tình huống có thể xảy ra lỗi khi vận hành sản phẩm để người dùng biết cách xử lý.
Dấu hiệu:
- Cài đặt máy chủ - Cài đặt máy mạng - Vận hành phần mềm
Sơ đồ :Quy trình triển khai B Không duyệt E Lập giải pháp
Lập kế hoạch triển khai
Duyệt?
Cài đặt máy chủ
Cài đặt máy mạng
Vận hành
Đào tạo sử dụng
Báo cáo quy trình Duyệt
Các phương pháp cài đặt:
•Cài đặt trực tiếp
Phương pháp này người ta thực hiện cài đặt trong khoảng thời gian ngắn, toàn bộ các công việc được thực hiện
Ưu điểm: triển khai thực hiện trong thời gian ngắn, tổng kinh phí ít, do thời gian thực hiện ngắn nên việc chống đối khó có điều kiện thực hiện.
Nhược điểm: Có tính rủi ro cao và đòi hỏi chi phí tập trung, đòi hỏi nhân lực công nghệ thông tin, và việc quản lý căng thẳng.
Áp dụng: cho các hệ thống thông tin nhỏ, ít rủi ro và người quản lý có kinh nghiệm chuyên nghiệp.
•Cài đặt song song
Hệ thống thông tin mới sẽ hoạt động song song với hệ thống thông tin cũ trong thời gian khá dài, hai hệ thống riêng biệt. Khi hệ thống thông tin mới chứng tỏ được tính ưu việt của mình thì mới dừng hoạt động của hệ thống thông tin cũ.