Công ty phần mềm

Giới thiệu về Kỹ Thuật Phần Mềm – Software Engineering

Cập nhật827
0
0 0 0 0

Software Engineering là một phần của System Engineering - liên quan đến mọi mặt của việc phát triển ''hệ thống dựa trên máy tính'' (Computer-based System), chính vì thế System Engineering bao gồm cả phần cứng, phần mềm, và quy trình kỹ thuật.


thi-truong-phan-mem-cong-ty-phan-mem
Giới thiệu


Trong một thế giới mà Internet và máy tính đang trở nên cần thiết bao giờ hết, thì việc phát triển phần mềm là một yếu tố không thể thiếu. Phát triển phần mềm là một quá trình phức tạp, gồm nhiều công đoạn. Bài viết này đưa ra một số khái niệm cơ bản về kỹ thuật phần mềm (Software Engineering – SE) và một số vấn đề liên quan.

Việc nắm được các khái niệm cũng như công đoạn phát triển phần mềm là yếu tố sống còn cho một dự án, nắm vững được những điều trên giúp cải thiện tiến độ và chất lượng sản phẩm.
thi-truong-phan-mem-cong-ty-phan-memKhái niệm cơ bản

Software là gì?

Software là chương trình máy tính và các tài liệu liên quan (yêu cầu, mô hình thiết kế, hướng dẫn sử dụng).

Sản phẩm software

  • Phổ thông (Generic) - nhắm tới nhiều loại khách hàng. Ví dụ: MS Windows, Adobe Photoshop;

  • Tùy chỉnh (Custom) – sản phẩm chỉ dành cho một hoặc một nhóm khách hàng, và được thiết kế theo yêu cầu của họ.

Cách thức phát triển software

  • Phát triển chương trình mới.

  • Tùy biến hệ thống đã có.

  • Sử dụng lại phần mềm đã có.

Software Engineering là gì?

Software Engineering là một lĩnh vực kỹ thuật bao gồm tất cả các mặt của việc sản xuất phần mềm.

Mục tiêu

  • Sử dụng chi phí hiệu quả.

  • Đúng thời hạn.

  • Chất lượng cao.

  • Thỏa mãn nhu cầu người dùng.

Yếu tố nào làm nên phần mềm tốt?

  • Khả năng bảo trì (Maintainability): Software phải có khả năng tiến hóa (evolve) để đáp ứng sự thay đổi trong nhu cầu.

  • Độ tin cậy (Dependability): Software luôn phải có tính tin cậy cao.

  • Hiệu quả (Efficiency): Software phải sử dụng tài nguyên hiệu quả.

  • Chấp nhận (Acceptability): Software phải được người dùng chấp nhận. Hơn nữa, software phải dễ hiểu, khả dụng và tương thích với các hệ thống khác.

Các thử thách trong Software Engineering

Có rất nhiều thử thách trong Software Engineering, có thể kể đến:

  • Đa dạng: các kỹ thuật để phát triển software trên nhiều nền tảng.

  • Độ tin cậy: các kỹ thuật để làm software đạt được sự tin tưởng của người dùng.

  • ...

Software Process (Quy trình phần mềm) là gì?

Software Process là tập hợp những hoạt động với mục tiêu là sự phát triển và tăng tiến của phần mềm. Nhìn chung, Software Process có những hoạt động:

  • Cấu hình (Specification): hệ thống phần mềm sẽ làm gì và các ràng buộc trong phát triển.

  • Phát triển (Development): sản xuất hệ thống phần mềm.

  • Xác thực (Validation): kiểm tra xem hệ thống phần mềm có đáp ứng được nhu cầu người dùng

  • Tăng tiến / tiếng hóa (Evolution): thay đổi phần mềm để phù hợp với những sự thay đổi trong nhu cầu của người dùng.

Software Process Model (Mô hình quy trình phần mềm) là gì?

Software Process Model là mô hình giản lược của các quy trình phần mềm (Software process) và từ một góc nhìn cụ thể:

  • Góc nhìn Workflow: chuỗi các hoạt động phát triển.

  • Góc nhìn Data-flow: thông tin về các dòng dữ liệu.

  • Góc nhìn Role/action: vai trò của các thành viên.

Một số mô hình thường gặp

  • Thác nước (Waterfall)

  • Vòng lặp (Iterative Development)

  • Kỹ thuật phần mềm hướng thành phần (Component-based software engineering)

Software Engineering Methods (Phương pháp trong kỹ thuật phần mềm) là gì?

Các phương pháp đã được cấu trúc trong việc pháp triển phần mềm: mô hình hệ thống, ký hiệu, ...

  • Mô tả của các mô hình (Model descriptions): các mô hình luôn phải kèm theo mô tả.

  • Luật (Rules): các ràng buộc trong mô hình hệ thống.

  • Khuyến cáo (Recommendations): các khuyến cáo về phương pháp thiết kế hiệu quả.

  • Hướng dẫn quy trình (Process guidance): các hoạt động cần làm theo.

Chi phí

Thông thường, quá trình phát triển sẽ chiếm khoảng 60%, 40% còn lại dành cho việc testing.

Với phần mềm tùy biến (custom software), chi phí evolution (tiến hóa) nhiều khả năng sẽ nhiều hơn chi phí phát triển.

Các yếu tố tác động đến chi phí: Yêu cầu, độ phức tạp, nhân lực, v.v.

CASE là gì?

CASE (Computer-Aided Software Engineering): hệ thống hỗ trợ tự động hóa cho các hoạt động trong quy trình phần mềm. Có 2 loại CASE:

  • Upper-CASE: Công cụ hỗ trợ quá trình thiết kế và yêu cầu.

  • Lower-CASE: Công cụ hỗ trợ các hoạt động lập trình, debug, và testing.

Trách nhiệm

Software Engineering bao gồm rất nhiều trách nhiệm, không chỉ riêng về mặt kỹ thuật. Kỹ sư phần mềm chuyên nghiệp luôn phải trung thực và có trách nhiệm đạo đức. Đạo đức ở đây không phải chỉ tuân phủ luật pháp.

  • Tuyệt mật: kỹ sư luôn phải tôn trọng đồng nghiệp, nhân viên và khách hàng cho dù điều khoản bảo mật có được ký kết hay không.

  • Chuyên môn: kỹ sư không được cố ý làm những việc ngoài chuyên môn.

  • Quyền sở hữu trí tuệ: kỹ sư luôn phải tuân thủ luật về việc sử dụng các sở hữu trí tuệ như patents, copyright, .... Họ cũng cần phải đảm bảo rằng sở hữu trí tuệ của khách hàng và nhân viên được bảo mật.

  • Trung thực: kỹ sư không được lạm dụng khả năng của mình để sử dụng sai máy tính của người khác.

ACM/IEEE Code of Ethics

Tổ chức ACM/IEEE đã đưa ra Code of Ethics (Nguyên tắc đạo đức) cho các chuyên gia kỹ thuật phần mềm. Nó được sử dụng khi các kỹ sư đưa ra quyết định dựa trên hành động của họ.

Tổng kết

Đây là một bài viết khá dài nên việc tổng hợp lại kiến thức là quan trọng. Những điểm quan trọng mà bạn đọc cần nắm:

Software Engineering là một lĩnh vực kỹ thuật bao gồm tất cả các mặt của việc sản xuất phần mềm.

Sản phẩm Software bao gồm chương trình phần mềm và tài liệu liên quan.

Software Process bao gồm những hoạt động trong quá trình phát triển phần mềm.

Kỹ sư phần mềm phải có trách nhiệm với sản phẩm và xã hội


Xem thêm các bài viết liên quan khác: Công ty phần mềm

Xem thêm nhiều bài viết hay tại:
Cổng thông tin toàn diện về phần mềm
Cổng thông tin VHRO - giải pháp quản lý nhân sự online
NguồnTrung Nguyễn
Lượt xem11/07/2021
0 0 0 0
Chia sẻ bài viết

Tin Nổi bật

Tin xem nhiều

Trang chủ Liên hệ Tìm kiếm Tài khoản Danh mục
Hệ thống đang xử lý
Thông tin liên hệ của quý khách đã được gửi đến cho chúng tôi. Chúng tôi sẽ nhanh chóng tiếp nhận và phản hồi thông tin cho quý khách trong thời gian thích hợp nhất. Đóng