CNPM- chương 1

CHƯƠNG 1: MỤC TIÊU CÔNG NGHỆ PM

1.2.1. Phần m ềm là gì

- Sản phẩm đại trà (Generic Product): được phát triển để bán ra ngoài thị trường, đối tượng người sử dụng là tương đối đa dạng và phong phú. Những sản phẩm phần mềm thuộc loại này thường là những phần mềm dành cho máy PC.

- Sản phầm theo đơn đặt hàng (Bespoke Product hoặc Customised Product): được phát triển cho một khách hàng riêng lẻ theo yêu cầu.

          Một phần mềm mới có thể được tạo ra bằng cách phát triển các chương trình mới, thay đổi và điều chỉnh các hệ thống phần mềm đại trà hoặc tái sử dụng lại các phần mềm đã tồn tại.

àKhái niệm:Phần mềm (software) là một tập hợp các câu lệnh được viết bằng một hoặc nhiều ngôn ngữ lập trình, nhằm tự động thực hiện một số các chức năng giải quyết một bài toán nào đó

12.2.Công nghệ là gì: 

là cách sử dụng các công cụ, các kỹ thuật trong cách giải quyết một vấn đề nào đó

1.2.3. Công nghệ phần mềm là gì

          Công nghệ phần mềm là những quy tắc công nghệ (engineering discipline) có liên quan đến tất cả các khía cạnh của quá trình sản xuất phần mềm.

          Các kỹ sư phần mềm nên tuân theo một phương pháp luận có hệ thống và có tổ chức trong công việc của họ. Đồng thời, họ nên sử dụng các công cụ và kỹ thuật thích hợp với vấn đề cần giải quyết, các ràng buộc và tài nguyên sẵn có.

à Khái niệm: Công nghệ phần mềm (software engineering)  là việc áp dụng các công cụ, các kỹ thuật một cách hệ thống trong việc phát triển các ứng dụng dựa trên máy tính.

          công nghệ phần mềm là một mô hình được phân theo ba tầng mà tất cả các tầng này đều nhằm tới mục tiêu chất lượng, chi phí, thời hạn phát triển phần mềm.

          Mô hình được phân theo ba tầng của công nghệ phần mềm được mô tả như sau:

tầng 1: mô tả

tầng 2:  phương pháp

tầng 3: quy trình

- Tầng quy trình (process): liên quan tới vấn đề quản trị phát triển phần mềm như lập kế hoạch, quản trị chất lượng, tiến độ, chi phí, mua bán sản phẩm phụ, cấu hình phần mềm, quản trị sự thay đổi, quản trị nhân sự (trong môi trường làm việc nhóm), việc chuyển giao, đào tạo, tài liệu;

- Tầng phương pháp (methods) hay cách thức, công nghệ, kỹ thuật để làm phần mềm: liên quan đến tất cả các công đoạn phát triển hệ thống như nghiên cứu yêu cầu, thiết kế, lập trình, kiểm thử và bảo trì. Phương pháp dựa trên những nguyên lý cơ bản nhất cho tất cả các lĩnh vực công nghệ kể cả các hoạt động mô hình hoá và kỹ thuật mô tả.

- Tầng công cụ (tools) liên quan đến việc cung cấp các phương tiện hỗ trợ tự động hay bán tự động cho các tầng quá trình và phương pháp (công nghệ).

1.2.4. Sự khác biệt giữa công nghệ phần mềm và khoa học máy tính?

Khoa học máy tính đề cấp tới lý thuyết và những vấn đề cơ bản; còn công nghệ phần mềm đề cập tới các hoạt động xây dựng và đưa ra một phần mềm hữu ích.

Khi sự phát triển của phần mềm trở lên mạnh mẽ thì các lý thuyết của khoa học máy tính vẫn không đủ để đóng vai trò là nền tảng hoàn thiện cho công nghệ phần mềm.

1.2.5.Sự khác biệt giữa công nghệ phần mềm và công nghệ hệ thống

          Công nghệ hệ thống (hay kỹ nghệ hệ thống) liên quan tới tất cả các khía cạnh của quá trình phát triển hệ thống dựa trên máy tính gồm: phần cứng, phần mềm và công nghệ xử lý.

          CNPM chỉ là một phần của quy trình này, nó có liên quan tới việc phát triển hạ tầng phần mềm, điều khiển, các ứng dụng và cơ sở dữ liệu trong hệ thống.

1.2.6.Quy trình phần mềm là gì

          Quy trình phần mềm là một tập hợp các hành động mà mục đích của nó là xây dựng và phát triển phần mềm. Những hành động thường được thực hiện trong các quy trình phần mềm bao gồm:

- Đặc tả: đặc tả những gì hệ thống phải làm và các ràng buộc trong quá trình xây dựng hệ thống.

- Phát triển: xây dựng hệ thống phần mềm.

- Kiểm thử: kiểm tra xem liệu phần mềm đã thoả mãn yêu cầu của khách hàng.

- Mở rộng: điều chỉnh và thay đổi phần mềm tương ứng với sự thay đổi yêu cầu.

àNhững loại hệ thống khác nhau sẽ cần những quy trình phát triển khác nhau

àNếu không sử dụng một quy trình phát triển hệ thống thích hợp thì có thể làm giảm chất lượng của hệ thống và tăng chi phí xây dựng.

1.2.7.Mô hình quy trình phát triển phần mềm là gì?

          Là một thể hiện đơn giản của một quy trình phần mềm và nó được biểu diễn từ một góc độ cụ thể.

          Một số ví dụ về mô hình quy trình phát triển phần mềm:

- Mô hình luồng công việc (workflow): mô tả một chuỗi các hành động cần phải thực hiện.

- Mô hình luồng dữ liệu (data-flow): mô tả luồng thông tin.

- Mô hình Vai trò/Hành động (Role/action): chỉ ra vai trò của những người liên quan trong quy trình phần mềm và nhiệm vụ của từng người.

          Ngoài ra, còn có một số mô hình quy trình chung cũng được đề xuất như:

- Mô hình thác nước (waterfall)

- Mô hình phát triển lặp lại (Iterative development)

- Mô hình công nghệ phần mềm dựa thành phần (Component-based software engineering).

1.2.8. Các chi phí trong công nghệ phần mềm

          Chi phí phần mềm thường chiếm phần lớn chi phí của cả hệ thống máy tính.

          Chi phí phần mềm trên máy PC thường lớn hơn chi phí phần cứng.

          Chi phí phần mềm dành cho việc bảo trì phần mềm thường lớn hơn chi phí xây dựng phần mềm.

Đối với những hệ thống hoạt động trong thời gian dài, thì chi phí bảo trì thường lớn gấp nhiều lần so với chi phí xây dựng.

          Chi phí biến đổi tuỳ thuộc vào từng loại hệ thống được xây dựng và các yêu cầu về đặc điểm của hệ thống như: hiệu năng và độ tin cậy của hệ thống.

          Việc phân bổ chi phí cũng phụ thuộc vào mô hình phát triển hệ thống được sử dụng.

          Ba mô hình phổ biến nhất, thường được sử dụng:

Mô hình thác nước:

Chi phí của các pha được xác định một cách riêng rẽ.

Mô hình phát triển lặp lại

       Không thể phân biệt rõ chi phí cho từng pha trong quy trình.

Chi phí đặc tả giảm vì đây là đặc tả ở bậc cao.

       Tại mỗi bước lặp, các pha trong quy trình xây dựng hệ thống được thực hiện lại nhằm thực hiện các yêu cầu hệ thống khác nhau ở từng bước lặp.

       Sau khi đã thực hiện hết các bước lặp, phải có chi phí kiểm thử toàn bộ hệ thống.

Mô hình công nghệ phần mềm hướng thành phần

Chi phí phụ thuộc nhiều vào việc tích hợp và kiểm thử hệ thống.

       Ngoài chi phí xây dựng, ta còn phải để một phần lớn chi phí phục vụ cho việc thay đổi phần mềm sau khi nó đã được đưa vào sử dụng. Chi phí cải tiến phần mềm thay đổi phụ thuộc vào từng loại phần mềm.

1.2.9. Các phương pháp công nghệ phần mềm là gì

       Bao gồm các mô hình hệ thống, các ký pháp, quy tắc, hướng dẫn thiết kế và quy trình để xây dựng phần mềm một cách dễ dàng, đảm bảo chất lượng cao và chi phí hiệu quả.

       Một số phương pháp công nghệ phần mềm đã được đề xuất:

- Phân tích hướng cấu trúc - tập trung vào việc xác định các chức năng cơ bản của hệ thống

- Phương pháp hướng đối tượng - tập trung vào việc định nghĩa các đối tượng và sự cộng tác giữa chúng ...

1.2.10.CASE (Computer-Aided Software

 Engineering)

       Các hệ thống CASE thường được sử dụng để hỗ trợ các hoạt động trong quy trình xây dựng phần mềm.

       Có hai loại CASE:

- Upper-CASE: công cụ để hỗ trợ các hoạt động đầu tiên như đặc tả yêu cầu và thiết kế.

- Lower-CASE: công cụ để hỗ trợ các hoạt động sau như lập trình, gỡ lỗi và kiểm thử.

1.2.11. Thế nào là một phần mềm tốt

       Phần mềm phải đáp ứng các chức năng theo yêu cầu, có hiệu năng tốt, có khả năng bảo trì, đáng tin cậy, và được người sử dụng chấp nhận.

- Khả năng bảo trì: phần mềm phải được điều chỉnh và mở rộng để thoả mãn những yêu cầu thay đổi.

- Mức độ tin cậy: phần mềm phải được tin cậy, bảo mật và chính xác.

- Hiệu quả: phần mềm không nên sử dụng lãng phí tài nguyên của hệ thống.

- Khả năng được chấp nhận: người sử dụng phải chấp nhận phần mềmàdễ hiểu, sử dụng được và tương thích với các hệ thống khác.

1.2.12. Thách thức đối với công nghệ phần mềm

       Công nghệ phần mềm trong thế kỷ 21 phải đối mặt với rất nhiều thách thức to lớn:

- Không đồng nhất: phát triển các kỹ thuật xây dựng phần mềm để giải quyết sự không đồng nhất về môi trường thực hiện và nền tảng hạ tầng.

- Chuyển giao: phát triển các kỹ thuật nhằm dẫn tới việc chuyển giao phần mềm tới người sử dụng nhanh hơn.

- Độ tin cậy: phát triển các kỹ thuật để chứng minh rằng phần mềm được người sử dụng nó tin tưởng

1.3. Các giai đoạn thiết kế 1 sản phẩm phần mềm

1.3.1. Đặc điểm quá trình thiết kế phần mềm

       Nhiệm vụ của thiết kế là chuyển đổi những yêu cầu của hệ thống sang dạng biểu diễn của hệ thống phần mềm <-> xây dựng các mô tả văn bản (thiết kế chi tiết) nêu rõ mối quan hệ giữa tiền điều kiện và hậu điều kiện cho tất cả các chức năng (quá trình) của hệ thống.

       Tiền điều kiện xác định những cái sẽ nhận giá trị chân lý đúng trước khi một quá trình thực hiện

       Hậu điều kiện xác định những điều sẽ nhận giá trị đúng khi chấp nhận tiền điều kiện và khi quá trình đó kết thúc thành công.

       Tầm quan trọng của thiết kế được thể hiện qua hình sau:

àThiết kế là một quyết định chọn lựa, xây dựng một đặc tả về hành vi nhìn thấy được từ bên ngoài và bổ sung các chi tiết  cần thiết cho việc cài đặt trên hệ thống máy tính bao gồm cả chi tiết về tổ chức quản lý dữ liệu, công việc và tương tác với con người.

       Mối liên quan của thiết kế phần mềm với công nghệ phần mềm được thể hiện qua sơ đồ sau:

       Thiết kế phần mềm là hoạt động được xác lập dựa trên hai mặt: quản lý và kỹ thuật, chúng đan xen với nhau. Mối quan hệ giữa hai khía cạnh kỹ thuật và quản lý được thể hiện qua sơ đồ:

          Trong tiến trình thiết kế, mô hình để biểu diễn công việc thiết kế là đồ thị. Các đỉnh của đồ thị dùng để biểu diễn các thực thể và các cạnh là các mối liên hệ giữa chúng.

           Quá trình thiết kế thường được mô tả bằng nhiều mức khác nhau của cách tiếp cận trừu tượng hóa, nhằm tách các bộ phận cấu thành của bài toán, nâng cao độ chắc chắn, độ tin cậy của hệ thống.

1.3.2. Các hoạt động của quá trình thiết kế phần mềm

          Các hoạt động phải thực hiện trong quá trình này gồm:

- Định danh: là tìm kiếm những gì quan trọng có liên quan như việc tìm các thực thể, các đối tượng, các mối quan hệ, các chức năng, các tiến trình và các ràng buộc của hệ thống.

- Suy diễn: xác định các chi tiết của những gì đã được định danh. Về mặt thể hiện, một yêu cầu có thể được cung cấp bản kê khai thống nhất của khách hàng cho báo cáo đặc biệt.

-         Tổng hợp lại: xây dựng một khung nhìn thống nhất của ứng dụng, điều hoà các phần không thích hợp và biểu diễn các yêu cầu trên form đồ thị. Sự biểu diễn có thể là thủ công hoặc tự động, sử dụng các công cụ tính toán cơ sở.

-  Xem xét lại: là việc thực hiện điều khiển chất lượng. Tại cuối mỗi giai đoạn, phân tích lại tính khả thi, thời biểu và bố trí nhân sự. Xem xét lại chúng khi cần thiết dựa vào sự hoàn thiện hơn, các khái niệm hiện tại của hệ thống mới

-         Tạo tài tiệu: tạo các chương trình hữu ích đặc biệt và một tài liệu thiết kế toàn thể. Tài liệu thiết kế mô tả cơ sở dữ liệu, cấu trúc của ứng dụng, các ràng buộc, cũng như các đồ thị và văn bản thiết kế. 

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: