So sánh chi phí phát triển phần cứng và phần mềm?
Bạn hiểu gì về thế giới phần mềm tất cả các khái niệm xung quanh? Hãy cùng Hybrid Technologies “nghiền ngẫm” bài viết dưới đây về tất tần tật những thứ liên quan đến “phần mềm” bạn nhé! Show Phần mềm là gì?Phần mềm là các chương trình máy tính và những tài liệu liên quan đến nó như: các yêu cầu, mô hình thiết kế, tài liệu hướng dẫn sử dụng… Do đó, chúng ta thấy rằng đặc điểm của phần mềm là trừu tượng và vô hình. Các sản phẩm phần mềm được chia thành 2 loại:
Như vậy một phần mềm mới có thể được tạo ra bằng cách phát triển từ đầu, 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. 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 Software Developer nên tuân theo một phương pháp, một quy trình có hệ thống, có tổ chức trong công việc của mình. Đồng thời, một kỹ sư phần mềm thường ưu tiên sử dụng các công cụ và kỹ thuật có sẵn thích hợp với vấn đề cần giải quyết thay vì tự suy nghĩ các phương pháp của mình. Vì cơ bản, các phương pháp có sẵn đã được những người lập trình viên trước giải quyết hiệu quả vấn đề và được nhiều người công nhận, sử dụng. Khác biệt giữa công nghệ phần mềm và khoa học máy tính:
Khác biệt giữa công nghệ phần mềm và công nghệ hệ thống:
Quy trình phần mềm là gì?
Quy trình phần mềm là tập hợp các hành động với mục đích 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:
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. Ví dụ, hệ thống thời gian thực yêu cầu phải hoàn thành đặc tả hệ thống trước khi chuyển sang giai đoạn xây dựng nó. Nhưng với hệ thống thương mại điện tử, chúng ta có thể vừa đặc tả vừa xây dựng chương trình một cách đồng thời. Tuy nhiên, nếu chúng ta 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. Mô hình quy trình phát triển phần mềm như thế nào?Mô hình quy trình phát triển phần mềm 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:
Các phương pháp công nghệ phần mềmPhương pháp công nghệ phần mềm 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 như:
Là một kỹ sư phần mềm giỏi, ngoài chuyên môn bạn cần có khả năng thích ứng, làm việc nghiêm túc, chuyên nghiệp, hiệu quả và tuân thủ quy trình phù hợp, dần dần tích lũy, dần dần phát triển, dần dần tạo ra càng nhiều giá trị. Chúc các bạn luôn thành công!
Một nhà máy ở Đài Loan đóng vai trò là nhà sản xuất cho nhà sản xuất dụng cụ thể dục của Hoa Kỳ bằng cách sử dụng dịch vụ xử lý kim loại chuyên dụng để sản xuất bánh đà. Mặc dù nhà máy có phòng thí nghiệm đo chuyên dụng để kiểm tra chất lượng bánh đà, nhưng phải mất hơn ba phút để hoàn thành mỗi lần kiểm tra. Để tránh ảnh hưởng tiêu cực đến tốc độ sản xuất và đảm bảo giao hàng kịp thời, dây chuyền sản xuất kiểm soát chất lượng sản phẩm thông qua kiểm tra ngẫu nhiên cùng với kiểm tra thủ công. Thật không may, nhà máy đã nhận được một khiếu nại khi giao lô bánh đà gần đây nhất của mình cho công ty dụng cụ thể dục của Hoa Kỳ, người đã tuyên bố rằng chất lượng kém. Việc sản xuất này buộc phải tạm dừng và công ty Hoa Kỳ đã tìm cách bồi thường cho những khiếm khuyết. Để tránh bị phạt trong tương lai do kiểm soát chất lượng kém, nhà máy đã quyết định triển khai hệ thống thị giác máy kiểm tra tất cả các sản phẩm mà không ảnh hưởng đến tốc độ sản xuất. Mặc dù nhà máy cần nhanh chóng lấy lại niềm tin của khách hàng, nhưng việc triển khai một hệ thống mới thường cần thời gian phát triển sáu tháng (lập kế hoạch dự án sơ bộ, lựa chọn phần cứng, kiểm tra tương thích phần cứng, lập trình, xác định lỗi và kiểm tra, khởi chạy hệ thống và kiểm tra) và không thể được giải quyết kịp thời. Điều này đã khiến nhà máy mua một giải pháp tổng thể có thể hoàn thành trong một khoảng thời gian ngắn (dưới ba tháng), có thể thực hiện nhiều nhiệm vụ kiểm tra cùng một lúc, có thể thêm hoặc sửa đổi các mục kiểm tra và sản phẩm được kiểm tra, rất dễ dàng sử dụng và bảo trì, và tích hợp cả phần cứng và phần mềm. Để mang đến một sản phẩm phần mềm chất lượng đáng tin cậy thì việc phân tích yêu cầu là khâu vô cùng quan trọng trong quá trình xây dựng phần mềm. Hoạt động này đòi hỏi sự phố kết hợp rất chặt chẽ giữa khách hàng và người phân tích để vạch ra được xem chúng ta phải phát triển cái gì 1 - Mục tiêu và yêu cầu của phần mềm: Yêu cầu của phần mềm là tất cả các yêu cầu về phần mềm do người dùng nêu ra bao gồm các chức năng của phần mềm, hiệu năng của phần mềm, giao diện của phần mềm và một số các yêu cầu khác Thông thường các yêu cầu phần mềm được phân loại dựa trên 4 thành phần của phần mềm như sau:
Mục tiêu quan trọng nhất đối với chất lượng phần mềm là phần mềm phải thỏa mãn được các yêu cầu và mong muốn của người dùng. Người dùng thường chỉ đưa ra những ý tưởng, nhiều khi rất mơ hồ về phần mềm mà họ mong muốn xây dựng. Và việc của các kỹ sư phát triển phần mềm đó là phải giúp họ đưa những ý tưởng mơ hồ đó thành hiện thực và xây dựng được một phần mềm có đầy đủ các tính năng cần thiết thỏa mãn yêu cầu của người dùng. Hơn thế nữa, ý tưởng của người dùng thường xuyên thay đổi và việc của nhà phát triển là phải nắm bắt và đáp ứng được các yêu cầu thay đổi đó một cách hợp lý. 2 - Những khó khăn trong việc phân tích, nắm bắt yêu cầu: 2.1 - Những vấn đề từ phía người dùng:
2.2 - Những vấn đề từ phía nhà phát triển:
2.3 - Những vấn đề khác:
3 - Các giai đoạn trong phân tích yêu cầu: Mục đích của giai đoạn phân tích là xác định rõ các yêu cầu của phần mềm cần phát triển. Tài liệu mô tả yêu cầu phải vừa dễ hiểu với người dùng vừa chặt chẽ để làm cơ sở cho việc lập kế hoạch. Do đó yêu cầu thường được mô tả ở nhiều mức chi tiết khác nhau, nhiều giai đoạn khác nhau. Cụ thể như sau: 3.1 - Tìm hiểu các yêu cầu của phần mềm: Các phương pháp để tìm hiểu các yêu cầu của phần mềm bao gồm:
3.2 - Phân tích yêu cầu và thương lượng: Sau khi tìm hiểu được các yêu cầu của phần mềm, chúng ta cần:
3.3 - Mô hình hóa yêu cầu: Một số phương pháp hay dùng để mô hình hóa yêu cầu đó là: a - Biểu đồ luồng dữ liệu Biểu đồ luồng dữ liệu (Data Flow Diagram - DFD) là một kỹ thuật để biểu diễn luồng thông tin vào ra của một chức năng trong hệ thống Các thành phần biểu đồ luồng dữ liệu bao gồm:
Các ký hiệu được dùng trong biểu đồ luồng dữ liệu như sau: Biểu đồ luồng dữ liệu có thể được dùng để biểu diễn cho một hệ thống hay phần mềm ở bất kì mức nào, từ tổng quát cho đến chi tiết. Trong thực tế, DFD có thể được phân chia thành nhiều mức biểu diễn. Sau đây là minh họa một DFD cho hệ thống bán vé tầu. b - Biểu đồ thực thể quan hệ Mô hình quan hệ - thực thể ER (Entity Relationship Model) được sử dụng để thiết kế cơ sở dữ liệu ở mức khái niệm. Mô hình này được sử dụng như một công cụ để trao đổi ý tưởng giữa nhà thiết kế và người dùng cuối trong giai đoạn phân tích Mô hình quan hệ - thực thể bao gồm ba phần tử cơ bản:
Sau đây là một ví dụ cho mô hình quan hệ - thực thể 3.4 - Đặc tả yêu cầu: a - Phân loại yêu cầu: Yêu cầu được chia thành nhiều loại:
b - Đặc tả yêu cầu: Nếu như tài liệu xác định yêu cầu được viết bởi ngôn ngữ tự nhiên của khách hàng thì tài liệu đặc tả yêu cầu phải rất rõ ràng và được xây dựng theo hướng của người phát triển, tránh gây hiểu nhầm giữa khách hàng và người phát triển. Có các phương pháp đặc tả như sau:
Chất lượng cả bản đặc tả yêu cầu được đánh giá qua các tiêu chí sau:
c - Thẩm định yêu cầu: Sau khi các yêu cầu được xây dựng thì chúng cần được thẩm định xem đã thỏa mãn nhu cầu của khách hàng hay chưa. Nếu việc thẩm định không được thực hiện một cách nghiêm túc, chặt chẽ thì các sai sót sẽ có thể gây ra những hậu quả lớn cho các giai đoạn về sau. Mục tiêu của việc thẩm định là xác định xem yêu cầu có thỏa mãn 4 yếu tố sau không:
d - Xây dựng bản mẫu: Đối với các hệ thống phức tạp, nhiều khi chúng ta không nắm chắc được yêu cầu của khách hàng, chúng ta cũng khó đánh giá được tính khả thi cũng như hiệu quả của hệ thống. Một giải pháp được đưa ra là xây dựng bản mẫu. Bản mẫu vừa được dùng để phân tích yêu cầu vừa có thể tiến hóa thành sản phẩm cuối cùng. Bản mẫu phần mềm không phải nhằm vào việc thẩm định thiết kế (thiết kế của nó thường là hoàn toàn khác với hệ thống được phát triển cuối cùng), mà là để thẩm định yêu cầu của người sử dụng. 3.5 - Định dạng đặc tả yêu cầu: Kết quả của bước phân tích là tạo ra bản đặc tả yêu cầu phần mềm (Software Requirement Specification - SRS). Đặc tả yêu cầu phải chỉ rõ được phạm vi của sản phẩm, các chức năng cần có, đối tượng người sử dụng và các ràng buộc khi vận hành sản phẩm. Có nhiều chuẩn khác nhau trong xây dựng tài liệu, dưới đây là một định dạng RSR thông dụng (theo chuẩn IEEE 830-1984). Trên đây là khái quát về bước phân tích và đặc tả yêu cầu trong quá trình phát triển phần mềm. Kết quả của việc phân tích là tạo ra bản đặc tả các yêu cầu phần mềm. Đặc tả cần được xét duyệt để đảm bảo rằng người phát triển và khách hàng có cùng nhận biết về hệ thống cần phát triển. Trong các bài viết sau, tôi sẽ mô tả chi tiết hơn về các phương pháp để mô hình hóa yêu cầu Nguồn tham khảo: http://uet.vnu.edu.vn/~hungpn/class/ASE/Lec2_1.pdf https://truonganhhoang.gitbooks.io/swebok3/content/chapter_1_Software_requirements.html |