CNPM- chương 2
CHƯƠNG 2: CÁC TIÊU CHUẨN CỦA 1 SẢN PHẨM PHẦN MỀM
2.1. Thế nào là 1 sản phẩm phần mềm
Có 2 khái niệm về phần mềm:
Khái niệm 1: Phần mềm máy tính hay gọi tắt là Phần mềm là một tập hợp những câu lệnh hoặc chỉ thị được viết bằng một hoặc nhiều ngôn ngữ lập trình theo một trật tự xác định và các dữ liệu hay tài liệu liên quan nhằm tự động thực hiện một số nhiệm vụ hay chức năng hoặc giải quyết một vấn đề cụ thể nào đó.
Khái niệm 2: Trong một hệ thống máy tính, nếu trừ bỏ đi các thiết bị và các loại phụ kiện thì phần còn lại chính là phần mềm.
Có thể có nhiều loại phần mềm khác nhau:
- Phần mềm hệ thống?
à dùng để vận hành máy tính và các phần cứng máy tính
- Phần mềm ứng dụng?
à để người sử dụng có thể hoàn thành một hay nhiều công việc nào đó
- Các phần mềm chuyển dịch mã bao gồm trình biên dịch và trình thông dịch?
à các loại chương trình này sẽ đọc các câu lệnh từ mã nguồn được viết bởi các lập trình viên theo một ngôn ngữ lập trình và dịch nó sang dạng ngôn ngữ máy mà máy tính có thể hiểu được, hay dịch nó sang một dạng khác như là tập tin đối tượng (object file) và các tập tin thư viện (library file) mà các phần mềm khác có thể hiểu để vận hành máy tính thực thi các lệnh.
- Các nền tảng công nghệ như .NET, Java...
- Những phần mềm không phụ thuộc?
à nó có thể được bán cho bất kỳ khách hàng nào trên thị trường tự do.
- Những phần mềm được viết theo đơn đặt hàng hay hợp đồng của một khách hàng cụ thể nào đó (một công ty, bệnh viện, trường học,...).
2.2. Các tiêu chuẩn của 1 sản phẩm phần mềm
2.2.1. Tính đúng
Một sản phẩm thực hiện được gọi là đúng nếu nó thực hiện chính xác những chức năng đã đặc tả và thỏa mãn các mục đích công việc của khách hàng.
à một sản phẩm phải được so sánh chuẩn đặt ra để kiểm tra tính đúng và điều này dẫn đến có nhiều bậc thang về tính đúng.
Liệt kê theo thang giảm dần, tính đúng của phần mềm có thể:
+ Tuyệt đối đúng
+ Đúng
+ Có lỗi
+ Có nhiều lỗi,...
Ví dụ: Một hệ thống xử lý dữ liệu không chạy được khi file cơ sở dữ liệu rỗng hoặc có quá 104 bảng ghi,...là những hệ thống vi phạm tính đúng.
2.2.2. Tính khoa học
Tính khoa học của phần mềm được thể hiện qua các mặt
Khoa học về cấu trúc.
Khoa học về nội dung.
Khoa học về hình thức thao tác.
2.2.3. Tính tin cậy
Tính tin cậy của sản phẩm phần mềm thể hiện ở sản phẩm được trông chờ thực hiện các chức năng dự kiến của nó với độ chính xác được yêu cầu.
2.2.4. Tính kiểm thử được
Phần mềm có thể kiểm thử được là phần mềm mà nó có cách dễ dàng để có thể kiểm tra được. Đảm bảo rằng nó thực hiện đúng các chức năng dự định.
2.2.5. Tính hữu hiệu
Tính hữu hiệu của phần mềm được xác định qua các tiêu chuẩn sau:
- Hiệu quả kinh tế hoặc ý nghĩa; giá trị thu được do áp dụng sản phẩm đó.
- Tốc độ xử lý sản phẩm.
- Giới hạn tối đa của sản phẩm hoặc miền xác định của chương trình được xác định qua khối lượng tối đa của các đối tượng mà sản phẩm đó quản lý.
2.2.6. Tính sáng tạo
Một sản phẩm phần mềm có tính sáng tạo khi nó thỏa mãn một trong các tính chất sau:
- Sản phẩm được thiết kế và cài đặt đầu tiên.
- Sản phẩm được phục vụ cho những đặc thù riêng.
- Sản phẩm có những đặc điểm khác về mặt nguyên lý so với các sản phẩm hiện hành.
- Sản phẩm có những ưu thế nổi bật so với sản phẩm hiện hành.
2.2.7. Tính an toàn
Tính an toàn của sản phẩm phần mềm được đánh giá thông qua:
- Có cơ chế bảo mật và bảo vệ các đối tượng do hệ thống phát sinh hoặc quản lý.
- Bản thân sản phẩm được đặt trong một cơ chế bảo mật nhằm chống sao chép trộm hoặc làm biến dạng sản phẩm đó.
2.2.8. Tính toàn vẹn
Sản phẩm phần mềm có tính toàn vẹn khi nó:
- Cơ chế ngăn ngừa việc thâm nhập bất hợp pháp vào phần mềm hay dữ liệu và ngăn ngừa việc phát sinh ra những đối tượng sai quy cách hoặc mâu thuẫn với các đối tượng sẵn có.
- Không gây ra nhập nhằng trong thao tác. Đảm bảo nhất quán về cú pháp.
- Có cơ chế phục hồi lại toàn bộ hoặc một phần những đối tượng thuộc diện quản lý của sản phẩm trong trường hợp có sự cố như hỏng máy, mất điện đột ngột.
2.2.9. Tính đối xứng và đầy đủ chức năng
Sản phẩm cung cấp đủ các chức năng cho người sử dụng và các chức năng của sản phẩm có các cặp loại trừ lẫn nhau
2.2.10. Tính tiêu chuẩn và tính chuẩn
Sản phẩm phần mềm cần đạt được một số tiêu chuẩn tối thiểu được thừa nhận trong thị trường hoặc trong khoa học, và có thể chuyển đổi dạng cấu trúc dữ liệu riêng của hệ thống sang chuẩn và ngược lại.
Tính chuẩn của phần mềm thể hiện ở sản phẩm đó phù hợp với các chuẩn quốc gia hoặc quốc tế.
Trong khi xây dựng phần mềm, cần tuân theo nguyên tắc chuẩn hoá sau:
+ Chỉ thiết kế và xây dựng phần mềm sau khi đã xác định được chuẩn.
+ Mọi thành phần của phần mềm phải được thiết kế và cài đặt theo cùng một chuẩn
2.2.11. Tính độc lập
Phần mềm cần và nên đảm bảo được tính độc lập với các đối tượng sau:
- Độc lập với thiết bị
- Độc lập với cấu trúc của đối tượng mà sản phẩm đó quản lý, độc lập với nội dung của đối tượng mà sản phẩm đó quản lý.
2.2.12. Tính dễ phát triển, hoàn thiện
Thể hiện ở phần mềm có thể mở rộng cho các phương án khác hoặc mở rộng, tăng cường về mặt chức năng một cách rõ ràng.
2.1.13. Một số tính chất khác
+ Tính phổ dụng?
à có thể áp dụng cho nhiều lĩnh vực theo nhiều chế độ làm việc khác nhau.
+ Tính đơn giản?
à mang những yếu tố tâm lý: dễ thao tác, dễ học, dễ hoàn thiện kỹ năng khai thác sản phẩm, trong sáng, dễ hiểu, dễ nhớ...
+ Tính liên tác?
à là tính chất cần có để có thể gắn hệ thống này với hệ thống khác.
+ Tính súc tích?
à là độ gọn của chương trình tính theo số mã dòng lệnh.
+Tính dung thứ sai lầm?
à tức là những hỏng hóc xuất hiện khi chương trình gặp phải lỗi được chấp nhận.
+Tính module?
à là sự độc lập chức năng của các thành phần trong chương trình.
+ Tính đầy đủ hồ sơ?
à hệ thống phải có đầy đủ hồ sơ pháp lý khi xây dựng.
+ Tính theo dõi được, tính dễ vận hành,...
2.3. Hồ sơ của sản phẩm
2.3.1. Lập kế hoạch dự án
Người quản trị dự án và kỹ sư phần mềm xác định nhân tố con người, máy tính và các tài nguyên tổ chức yêu cầu để phát triển ứng dụng.
Việc lên kế hoạch, nói chung, thường gồm các bước sau:
+ Liệt kê các nhiệm vụ: gồm các nhiệm vụ phát triển ứng dụng, các nhiệm vụ đặc trưng của dự án, các nhiệm vụ về tổ chức giao diện, sự xem xét lại và các việc phê chuẩn.
+ Định danh phụ thuộc giữa các công việc.
+Xác định nhân viên dựa vào kỹ năng và kinh nghiệm.
+Ấn định thời gian hoàn thành cho mỗi công việc bằng các tính toán thời gian hợp lý nhất cho mỗi công việc.
+ Định danh hướng đi tới hạn.
+ Xem xét lại các tài liệu theo khía cạnh đầy đủ, nội dung, độ tin cậy và độ chắc chắn.
+ Thương lượng, thỏa thuận và cam kết ngày bắt đầu và kết thúc công việc.
+ Xác định các giao diện giữa các ứng dụng cần thiết, đặt kế hoạch cho việc thiết kế giao diện chi tiết.
Các nhiệm vụ trong lập kế hoạch dự án thường bao gồm:
1) Do tất cả các tài liệu, kế hoạch và công việc của nhóm là phụ thuộc vào người sử dụng, do vậy tổ chức này bao gồm người quản lý, người sử dụng, kiểm toán,...phải đưa các kiến thức chuyên ngành của mình vào những tài liệu ứng dụng một cách thích hợp.
2) Cần đạt được sự đồng ý, cam kết từ các ngành, phòng ban bên ngoài trong quá trình cung cấp tài liệu. Bên cạnh đó, bộ phận đảm bảo chất lượng phải xem xét để tìm ra các sai sót và không đồng nhất của tài liệu và tất cả các hoạt động này đều phải đạt kế hoạch.
3) Xác định các đòi hỏi về giao diện ứng dụng.
4) Đánh giá khối lượng công việc. Thời gian cho mỗi công việc phụ thuộc vào tính phức tạp và mục tiêu của nó
5) Xác định kỹ năng và kinh nghiệm cần có của người thi hành nhiệm vụ để xác định dùng bao nhiêu người và có kỹ năng gì cho dự án à xác định lịch trình làm việc và người quản trị dự án xác định ngân sách.
6) Sau khi hoàn tất, kế hoạch, lịch trình và dự toán ngân sách được đưa cho người sử dụng và người quản lý hệ thống để bổ sung hoặc thông qua.
Chú ý : bản kế hoạch không nên đóng cứng
2.3.2. Kiến trúc phần mềm
Kiến trúc phần mềm được suy dẫn ra qua tiến trình phân hoạch đặt mối quan hệ giữa các phần tử của giải pháp phần mềm với các bộ phận của thế giới thực được xác định không tường minh trong phân tích yêu cầu.
Kiến trúc phần mềm gồm có hai đặc trưng quan trọng:
- Cấu trúc phân cấp của các thành phần thủ tục (module): cấp bậc cây điều khiển.
- Cấu trúc dữ liệu.
1) Cấp bậc điều khiển
Còn gọi là cấu trúc chương trình. Nó biểu thị cho cách tổ chức của các thành phần module.
Một số chỉ số trên cây điều khiển được quan tâm:
+ Chiều rộng: độ trải rộng toàn bộ của điều khiển.
+ Độ sâu: chỉ báo về số mới điều khiển
+Số module ra: là độ đo số các module trực tiếp bị điều khiển của một module khác.
+ Số module vào: số module trực tiếp điều khiển một module đã cho.
+ Thượng cấp: module điều khiển một module khác.
+ Thuộc cấp: một module bị module khác điều khiển.
2) Cấu trúc dữ liệu
Biểu diễn cho mối quan hệ logic giữa các phần dữ liệu riêng lẻ, một số cấu trúc dữ liệu thường sử dụng như: khoảng mục vô hướng, vector tuần tự, danh sách móc nối, không gian n chiều, cây cấp bậc,...
Ta xét phần mềm P cần giải quyết qua phần mềm và giải pháp phần mềm S được chọn như hình sau:
à khi giải quyết một vấn đề, chúng ta có nhiều giải pháp phần mềm. Mỗi giải pháp Si ta có một cấu trúc khác nhau.
Xét bài toán P được cho như sau
2.3.3. Tư liệu hóa yêu cầu phần mềm
Các yêu cầu hệ thống được trình bày trong tài liệu các yêu cầu phần mềm cho biết những thứ cán bộ phát triển hệ thống cần biết.
Tài liệu này bao gồm các định nghĩa về yêu cầu và các đặc tả về các yêu cầu.
Đôi khi, định nghĩa yêu cầu được trình bày như là một giới thiệu tới đặc tả yêu cầu.
Tài liệu yêu cầu phần mềm không phải tài liệu đặc tả. Nó cần phải mô tả cái hệ thống cần phải làm chứ không phải làm thế nào.
Tài liệu này cần dễ dàng được đặc tả và ánh xạ sang các phần tương ứng của thiết kế hệ thống.
Về nguyên tắc, các yêu cầu cần được hoàn chỉnh và chắc chắn. Mọi chức năng hệ thống cần được đặc tả và các yêu cầu không được mâu thuẫnà tài liệu nên được cấu trúc dễ cho việc thay đổi. Nội dung nên được chia thành các chương.
Sáu yêu cầu cần được thỏa mãn là:
1) Cần mô tả các hành vi hệ thống bên ngoài
2) Cần mô tả các ràng buộc về thực hiện
3) Cần phải dễ thay đổi
4) Phải là công cụ tham chiếu cho người bảo trì hệ thống
5) Cần ghi được vòng đời của hệ thống
6) Cần biểu thị được các đáp ứng chấp nhận được với các sự kiện không dự kiến
Cấu trúc chung của tài liệu yêu cầu phần mềm gồm các phần như sau:
+ Giới thiệu: mô tả sự cần thiết của hệ thống. Nó cần sự mô tả sơ lược các chức năng của mình và giải thích cách làm việc với các hệ thống khác. Nó cũng cần mô tả làm thế nào hệ thống đáp ứng được toàn bộ các mục tiêu chiến lược và nghiệp vụ.
+ Thuật ngữ: cần định nghĩa các khái niệm kỹ thuật được sử dụng trong tài liệu này. Không được giả định người đọc đã có kinh nghiệm.
+ Mô hình hệ thống: lập một hoặc nhiều mô hình hệ thống cho biết các quan hệ giữa các cấu thành hệ thống với hệ thống và môi trường của nó. Nó cần bao gồm các mô hình đối tượng, mô hình luồng dữ liệu và ngữ nghĩa dữ liệu.
+ Định nghĩa yêu cầu chức năng: các dịch vụ cung cấp cho người dùng cần được mô tả trong mục này. Mô tả có thể dùng ngôn ngữ tự nhiên, sơ đồ hoặc các dạng ghi chép khác cho phép khách hàng có thể hiểu được.
Các dịch vụ cung cấp cho người dùng cần được mô tả trong mục này. Mô tả có thể dùng ngôn ngữ tự nhiên, sơ đồ hoặc các dạng ghi chép khác cho phép khách hàng có thể hiểu được.
+ Định nghĩa yêu cầu phi chức năng: các ràng buộc về phần mềm và các hạn chế đối với thiết kế cần phải được mô tả trong phần này. Nó có thể bao gồm các chi tiết của biểu diễn dữ liệu, thời gian đáp ứng và yêu cầu bộ nhớ,...Các tiêu chuẩn về sản phẩm và quy trình cần tuân thủ cũng được mô tả.
+ Tiến triển hệ thống: mô tả các giả thiết căn bản làm cơ sở cho hệ thống và dự đoán các thay đổi về phát triển phần cứng, yêu cầu người dùng
+ Đặc tả yêu cầu: mô tả các yêu cầu cơ bản chi tiết hơn.
Ngoài ra, tài liệu yêu cầu phần mềm có thể bao gồm thêm các phần sau:
- Phần cứng
- Yêu cầu dữ liệu: tổ chức logic của dữ liệu được sử dụng bởi hệ thống và các quan hệ giữa chúng được mô tả
- Chỉ mục
Do hệ thống được vận hành trong thời gian dài, nên môi trường hệ thống và mục đích nghiệp vụ có thể thay đổi. Khi đó tài liệu yêu cầu cũng cần phải thay đổi.
Với mục đích tiến triển, tài liệu yêu cầu thường được chia thành 2 loại:
- Các yêu cầu ổn định: được suy dẫn từ các hoạt động cốt lõi của tổ chức tương đối liên quan trực tiếp tới miền hệ thống.
- Các yêu cầu bất thường: các yêu cầu có thể thay đổi khi phát triển hệ thống sau này
2.3.4. Tài liệu chương trình
Là tài liệu bên trong của chương trình gốc. Nó bắt đầu với việc chọn lựa các tên gọi định danh, tiếp đến là vị trí và thành phần của việc chú thích, và kết luận với cách tổ chức trực quan của chương trình.
Việc lựa chọn các tên gọi định danh có nghĩa chính là điều chủ chốt cho việc hiểu chương trình.
Phần mềm phải chứa tài liệu bên trong. Lời chú thích cung cấp cho người phát triển một ý nghĩa truyền thông với các độc giả khác về chương trình gốc.
Lời chú thích có thể cung cấp một hướng dẫn rõ rệt, dễ hiểu trong khâu bảo trì của công nghệ phần mềm.
Có nhiều hướng dẫn đã được đề nghị cho việc viết lời chú thích.
Các chú thích mở đầu và chú thích chức năng là hai phạm trù đòi hỏi cách tiếp cận có hơi khác.
Lời chú thích mở đầu nên xuất hiện ở ngay đầu của mọi module.
Các chú thích mô tả được nhúng vào bên trong thân của chương trình gốc và được dùng để mô tả cho các hàm xử lý.
Lời chú thích nên đưa ra một điều gì đó phụ trợ, không chỉ là lời diễn giải chương trình.
Bên cạnh đó, lời chú thích mô tả nên:
- Mô tả các khối chương trình
- Dùng dòng trống hay thụt cấp để cho lời chú thích có thể được phân biệt với chương trình
- Phải đúng đắn
Với những tên gọi tượng trưng đúng đắn và việc chú thích tốt, việc làm tài liệu bên trong thích hợp sẽ được đảm bảo.
Khi một thiết kế thủ tục chi tiết được biểu diễn bằng cách dùng một ngôn ngữ thiết kế chương trình thì tài liệu thiết kế có thể được nhúng trực tiếp vào trong văn bản chương trình gốc như những câu chú thích
Bạn đang đọc truyện trên: Truyen247.Pro