Tuesday, February 11, 2014

Giới thiệu về quy trình phát triển phần mềm

Một quy trình phần mềm là tập hợp các hoạt động dẫn đến sản xuất một sản phẩm phần mềm. Các hoạt động này có thể liên quan đến việc phát triển phần mềm từ đầu băng ngôn ngữ lập trình cơ bản như C hoặc Java. Tuy nhiên, đối với ứng dụng doanh nghiệp thì không cần thiết phát triển theo cách này.. Các phần mềm này thường được phát triển bằng cách mở rộng, thay đổi hệ thống đã có hoặc cấu hình, tich hợp với các thành phần hệ thống, các phần mềm sẵn có khác.

Có rất nhiều quy trình phần mềm khác nhau nhưng tất cả đều bao gồm 4 hoạt động cơ bản:
1.    Đặc tả phần mềm: Định nghĩa các chức năng phần mềm, các ràng buộc trên các hoạt động của phần mềm.
2.    Thiết kế và cài đặt phần mềm: Phần mềm cần phải đúng với các đặc tả
3.    Kiểm định phần mềm : Phần mềm cần được kiểm định để chắc chắn đúng với khách hàng muốn.
4.    Tiến hóa phần mềm: Phần mềm cần phải tiến hóa được đáp ứng nhu cầu thay đổi của khách hàng.
Trong một số hình thức, các hoạt động này là một phần của quy trình phần mềm. Trong thực tế, chúng là những hoạt động phức tạp, bao gồm nhiều các hoạt động nhỏ như việc kiểm định lại yêu cầu, thiết kế kiến truocs, kiểm tra các thành phần … Có những hoạt động hỗ trợ như viết tài liều và quản lý cấu hình phần mềm.
Khi chúng ta mô tả và thảo luận về các tiến trình, chúng ta thương nói về các hoạt động của những tiến trình này như là mô hình đặc tả, thiết kế giao diện, .. thứ tự của những hoạt động. Tuy nhiên, như những hoạt động này, mô tả các tiến trình này cũng bao gồm:
1. Sản phẩm: Đó là đầu ra của các hoạt động trong quy trình. Ví dụ, nếu đầu ra của hoạt động thiết kế kiến trúc có thể là một bản mô hình hóa kiến trúc phần mềm.
2. Vai trò: Cái phản ánh trách nhiệm của con người liên quan đến quy trình. Ví dụ vai trò là người quản lý dự án, người phân công công việc, người lập trình …
3. Điều kiện trước và sau: Đó là những điều đúng trước hoặc sau hoạt động của quy trình được kích hoạt hoặc một sản phẩm được làm ra. Ví dụ trước khi thiết kế kiến trúc, điều kiện trước là tất cả các yêu cầu đã được khách hàng duyệt qua; sau khi hoạt động này hoàn thành, điều kiện sau có thể là mô hình UML mô tả kiến trúc đã được xem qua.
Quy trình phần mềm phức tạp và giống như tất các quy trình sáng tạo và đầy chất xám, dựa trên sự phán đoán và quyết định của con người. KHông có quy trình nào lý tưởng mà hầu hết các tổ chức đã sử dụng làm quy trình phát triển phần mềm riêng cho họ. Các quy trình đã được tiến hóa, tận dụng được các điểm mạnh nhân lực trong tổ chức và các đặc tính đặc trưng của hệ thống đang phát triển. Đối với một số hệ thống, như những hệ thống quan trọng, yêu cầu một quy trình phát triển rất có cấu trúc. Đối với hệ thống doanh nghiệp, với sự thay yêu cầu nhanh chống, một quy trình phát triển linh hoạt, ít chuẩn hóa thì có thể thích hợp hơn.
Thỉnh thoảng, quy trình phần mềm được phân loại hoặc là quy trịnh định hướng hoặc là quy trình nhanh. Quy trình định hướng là quy trình mà ở đó tất các hoạt động được lên ký hoạch trướcvà tiến độ đo lường lại kế hoạch này. Trong quy trình nhanh, sẽ được thảo luận trong chương 3, kế hoạch được tăng dần, và dễ dàng thay đổi quy trình để phản ánh sự thay đổi yêu cầu của khách hàng.
Như ở hội thảo Boehm and Turner (2003), mỗi cách tiếp cân phải phù hợp với các loại phần mềm khác nhau. Thông thường, bạn cần phải tìm sự cân bằng giữa kế hoạch định hướng và kế hoạch nhanh.
Mặc dù không có quy trình phần mềm lý tưởng, nhưng có phạm vi cho việc cải tiến quy trình phần mềm trong nhiều tổ chức. Quy trình có thể chứ nhiều kỹ thuật lạc hậu hoặc không tận dụng thế mạnh trong thực tế trong ngày công nghiệp phần mềm. Thật vậy, có nhiều tổ chức vẫn không sử dụng phương thức công nghệ phần mềm mạnh nhất trong công việc phát triển phần mềm của họ.
Các quy trình phần mềm có thể được cải tiến bởi quy trình phân loại hóa làm cho sự đa dạng của cá quy trinh trong các tổ chức giảm đi. Điều này dẫn tới cải thiện về sự trao đổi thông tin, giảm thời gian tập huấn, và thiết lập các quy trình hỗ trợ tự động kinh tế hơn. Sự phân loại cũng là bước quan trọng đầu tiên trong giới thiệu các công nghệ-kỹ thuật  phần mềm mới và thực hành công nghệ phần mềm. Điều này sẽ được thảo luận thêm sau.

No comments:

Post a Comment