Kiến thức

Công nghệ phần mềm – Wikipedia tiếng Việt

Công nghệ phần mềm

Bách khoa toàn thư mở Wikipedia

Bước tới điều hướng

Bước tới tìm kiếm

Kỹ thuật phần mềm (

tiếng Anh

: software engineering) là sự áp dụng một cách tiếp cận có hệ thống, có kỷ luật, và định lượng được cho việc phát triển, sử dụng và bảo trì

phần mềm

.

[1]

Ngành học kỹ sư phần mềm bao trùm kiến thức, các công cụ, và các phương pháp cho việc định nghĩa

yêu cầu

phần mềm, và thực hiện các tác vụ

thiết kế

,

xây dựng

,

kiểm thử

(software testing), và

bảo trì phần mềm

.

[2]

Kỹ sư phần mềm còn sử dụng kiến thức của các lĩnh vực như

kỹ thuật máy tính

,

khoa học máy tính

,

quản lý

,

toán học

,

quản lý dự án

,

quản lý chất lượng

,

công thái học

phần mềm (software ergonomics), và

kỹ sư hệ thống

(systems engineering).

[2]

Trích dẫn một câu nói của

Edsger Dijkstra

về công nghệ phần mềm:

Khi máy tính chưa xuất hiện, thì việc lập trình chưa có khó khăn gì cả. Khi mới xuất hiện một vài chiếc máy tính chức năng kém thì việc lập trình bắt đầu gặp một vài khó khăn nho nhỏ. Giờ đây khi chúng ta có những chiếc máy tính khổng lồ thì những khó khăn ấy trở nên vô cùng lớn. Như vậy ngành công nghiệp điện tử không giải quyết khó khăn nào cả mà họ chỉ tạo thêm ra những khó khăn mới. Khó khăn mà họ tạo nên chính là việc sử dụng sản phẩm của họ.

Lịch sử[

sửa

|

sửa mã nguồn

]

Công nghệ phần mềm có một lịch sử khá sớm. Các công cụ được dùng cũng như các ứng dụng được viết đã tham gia vào kỹ thuật phần mềm theo thời gian.

Dòng thời gian[

sửa

|

sửa mã nguồn

]

  • Thập niên 1940

    : Các chương trình cho máy tính được viết bằng tay.

  • Thập niên 1950

    : Các công cụ đầu tiên xuất hiện như là phần mềm biên dịch Macro Assembler và phần mềm thông dịch đã được tạo ra và sử dụng rộng rãi để nâng cao năng suất và chất lượng. Các trình dịch được tối ưu hoá lần đầu tiên ra đời.

  • Thập niên 1960

    : Các công cụ của thế hệ thứ hai như các trình dịch tối ưu hoá và công việc kiểm tra mẫu đã được dùng để nâng cao sản phẩm và chất lượng. Khái niệm công nghệ phần mềm đã được bàn thảo rộng rãi.

  • Thập niên 1970

    : Các công cụ phần mềm, chẳng hạn trong

    UNIX

    các vùng chứa mã, lệnh make, v.v. được kết hợp với nhau. Số lượng doanh nghiệp nhỏ về phần mềm và số lượng máy tính cỡ nhỏ tăng nhanh.

  • Thập niên 1980

    : các

    PC

    máy trạm

    ra đời. Cùng lúc có sự xuất hiện của

    mô hình dự toán khả năng

    . Lượng phần mềm tiêu thụ tăng mạnh.

  • Thập niên 1990

    : Phương pháp

    lập trình hướng đối tượng

    ra đời. Các quá trình nhanh như là

    lập trình cực hạn

    được chấp nhận rộng rãi. Trong thập niên này, WWW và các thiết bị máy tính cầm tay phổ biến rộng rãi.

  • Hiện nay

    : Các phần mềm biên dịch và quản lý như là

    .NET

    ,

    PHP

    ,

    Java

    làm cho việc thiết kế, viết phần mềm ứng dụng trở nên dễ dàng hơn nhiều.

Hướng phát triển tương lai[

sửa

|

sửa mã nguồn

]

Lập trình định dạng

và các phương pháp linh hoạt sẽ giữ vai trò quan trọng trong tương lai của công nghệ phần mềm. ICSE 2005 đã tham gia theo dõi cả hai chủ đề này. (ICSE là dạng viết tắt của International Conference on Software Engineering tức là Hội nghị Quốc tế về Kỹ Sư Phần mềm.)

– Lập trình định dạng (aspect-oriented programming) sẽ giúp người lập trình ứng xử với các yêu cầu không liên quan đến các chức năng thực tế của phần mềm bằng cách cung ứng các công cụ để thêm hay bớt các khối mã ít bị thay đổi trong nhiều vùng của mã nguồn. Lập trình định dạng mô tả các đối tượng và hàm nên ứng xử như thế nào trong một tình huống cụ thể.

Thí dụ: Lập trình định dạng có thêm vào các cơ cấu kiểm soát

hiệu chỉnh lỗi

,

biên bản

khoá

cho tất cả các đối tượng của một số kiểu. Các nhà nghiên cứu đang tìm cách ứng dụng lập trình định dạng để thiết kế mã cho mục tiêu thông thường.

– Phát triển phần mềm linh hoạt: nhằm hướng dẫn các đề án phát triển phần mềm mà trong đó bao gồm việc thoả mãn các nhu cầu thay đổi và sự cạnh tranh của thị trường một cách nhanh chóng. Các quá trình cồng kềnh, nặng về hồ sơ tính như là

TickIT

,

CMM

ISO 9000

đang lu mờ dần tầm quan trọng.

Hội nghị

Future of Software Engineering

Lưu trữ

2012-03-23 tại

Wayback Machine

(FOSE) tin rằng ICSE 2000 đã hồ sơ hoá các tính năng hiện đại nhất của kỹ sư phần mềm và nêu ra nhiều vấn đề cần được giải quyết trong thập niên tới.

Đề án

Feyerabend

có ý định tìm hiểu tương lai của kỹ sư phần mềm qua tìm kiếm và xuất bản các ý kiến sáng tạo.

Xem thêm: NHẬN BIẾT MỘT SỐ ANION NO3-, Cl-, SO42-, CO32-& NHẬN BIẾT MỘT SỐ CHẤT KHÍ

Nghề nghiệp[

sửa

|

sửa mã nguồn

]

Giáo dục[

sửa

|

sửa mã nguồn

]

Các ngành chuyên sâu[

sửa

|

sửa mã nguồn

]

Kĩ nghệ phần mềm có thể được chia thành 10 ngành chuyên sâu, đó là:

[3]

  1. Yêu cầu phần mềm

    : Phân tách, phân tích, đặc tả và phê chuẩn các

    yêu cầu

    đối với

    phần mềm

    .

  2. Thiết kế phần mềm

    : Việc thiết kế phần mềm thường được hoàn thành bằng các công cụ

    Computer-Aided Software Engineering

    (CASE) và sử dụng các tiêu chuẩn định dạng, như Unified Modeling Language (

    UML

    ).

  3. Phát triển phần mềm

    : Xây dựng phần mềm thông qua việc dùng các

    ngôn ngữ lập trình

    .

  4. Kiểm thử phần mềm

    : Kiểm thử phần mềm là quá trình thực thi 1 chương trình với mục đích tìm ra lỗi. Kiểm thử phần mềm mục đích để đảm bảo sản phẩm phần mềm đáp ứng chính xác, đầy đủ và đúng theo yêu cầu của khách hàng, yêu cầu của sản phẩm đã đặt ra.

  5. Bảo trì phần mềm

    : Các hệ thống phần mềm thường có nhiều vấn đề và cần được cải tiến trong một thời gian dài sau khi đã được hoàn tất vào lần đầu tiên. Lĩnh vực con này xem xét các vấn đề đó.

  6. Quản lý cấu hình phần mềm

    : Bởi vì các hệ thống phần mềm rất phức tạp, cấu hình của chúng (ví dụ như

    kiểm soát phiên bản

    mã nguồn

    ) phải được quản lý bằng các phương pháp chuẩn và có cấu trúc.

  7. Quản lý kĩ nghệ phần mềm

    : Quản lý hệ thống phần mềm vay mượn rất nhiều khái niệm từ

    quản lý dự án

    , nhưng có nhiều khác biệt nhỏ gặp trong phần mềm mà không gặp trong các ngành quản lý khác.

  8. Quy trình phát triển phần mềm

    : Quy trình xây dựng phần mềm là điều tranh cãi giữa các nhà thực hành; một số quy trình nổi tiếng là

    Mô hình Thác nước

    ,

    Mô hình Xoắn ốc

    , Phát triển Tăng tiến và Lặp, và Phát triển Linh hoạt.

  9. Các công cụ kĩ thuật phần mềm, xem bài

    Computer Aided Software Engineering

  10. Chất lượng phần mềm

Xem thêm: Điểm Chuẩn Đại Học Ngoại Ngữ Tin Học TP HCM 2020

Các ngành liên quan[

sửa

|

sửa mã nguồn

]

Kĩ nghệ phần mềm liên quan đến các ngành

khoa học máy tính

,

khoa học quản lý

, và

kĩ nghệ hệ thống

.

[4]

[5]

Khoa học máy tính[

sửa

|

sửa mã nguồn

]

Kĩ nghệ phần mềm đã từng được nhiều nhà khoa học coi là một lĩnh vực con của

khoa học máy tính

.[

cần dẫn nguồn

] Nhiều nền tảng của kĩ nghệ phần mềm đến từ

khoa học máy tính

.

Quản lý dự án[

sửa

|

sửa mã nguồn

]

Việc xây dựng một hệ thống phần mềm thường được coi là một dự án và việc quản lý nó vay mượn nhiều nguyên lý từ lĩnh vực

Quản lý dự án

.

Kĩ nghệ hệ thống[

sửa

|

sửa mã nguồn

]

Các kĩ sư hệ thống

đã xem xét độ phức tạp của các hệ thống lớn trong nhiều thập kỉ, và những kiến thức của họ được áp dụng cho nhiều vấn đề kĩ nghệ phần mềm.

Các sản phẩm phần mềm[

sửa

|

sửa mã nguồn

]

Đối tượng chính của công nghệ phần mềm là sản xuất ra các sản phẩm phần mềm.

Sản phẩm phần mềm là các phần mềm được phân phối cho khách hàng cùng với các tài liệu mô tả phương thức cài đặt và cách thức sử dụng chúng.

Phân loại[

sửa

|

sửa mã nguồn

]

  1. Sản phẩm tổng quát: là các phần mềm đứng riêng, được sản xuất bởi một tổ chức phát triển và bán vào thị trường cho bất kỳ khách hàng nào có khả năng tiêu thụ.
  2. Sản phẩm chuyên ngành: là phần mềm được hỗ trợ tài chính bởi khách hàng trong chuyên ngành. Phần mềm được phát triển một cách đặc biệt cho khách hàng qua các hợp đồng.

Cho đến

thập niên 1980

hầu hết sản phẩm phần mềm đều làm theo đơn đặt hàng riêng (đặc biệt hóa). Nhưng kể từ khi có

PC

tình hình hoàn toàn thay đổi. Các phần mềm được phát triển và bán cho hàng trăm ngàn khách hàng là chủ các PC và do đó giá bán các sản phẩm này cũng rẻ hơn nhiều.

Microsoft

là nhà sản xuất phần mềm lớn nhất hiện nay.

Thuộc tính của sản phẩm phần mềm[

sửa

|

sửa mã nguồn

]

Thuộc tính của một sản phẩm phần mềm là các đặc tính xuất hiện từ sản phẩm một khi nó được cài đặt và được đưa ra dùng. Các thuộc tính này không bao gồm các dịch vụ được cung cấp kèm theo sản phẩm đó. Ví dụ: mức hiệu quả, độ bền, khả năng bảo trì, khả năng dùng ở nhiều nền là các thuộc tính.

Các thuộc tính biến đổi tùy theo phần mềm. Tuy nhiên những thuộc tính tối quan trọng bao gồm:

  1. Khả năng bảo trì: Nó có khả năng thực hành những tiến triển để thỏa mãn yêu cầu của khách hàng.
  2. Khả năng tin cậy: Khả năng tin cậy của phần mềm bao gồm một loạt các đặc tính như là độ tin cậy, an toàn, và bảo mật. Phần mềm tin cậy không thể tạo ra các thiệt hại vật chất hay kinh tế trong trường hợp hư hỏng.
  3. Độ hữu hiệu: Phần mềm không thể phí phạm các nguồn tài nguyên như là bộ nhớ và các chu kì vi xử lý.
  4. Khả năng sử dụng: Phần mềm nên có một giao diện tương đối dễ cho người dùng và có đầy đủ các hồ sơ về phần mềm.

Tham khảo[

sửa

|

sửa mã nguồn

]

  1. ^

    “IEEE Standard Glossary of Software Engineering Terminology,”

    IEEE

    std 610.12-1990, 1990.

  2. ^

    a

    ă

    “Guide to the Software Engineering Body of Knowledge”

    . 6 tháng 2 năm 2004. Truy cập ngày 13 tháng 2 năm 2007.

  3. ^

    SWEBOK

    executive editors, Alain Abran, James W. Moore; editors, Pierre Bourque, Robert Dupuis. (2004).

    Guide to the Software Engineering Body of Knowledge – 2004 Version

    .

    IEEE Computer Society

    . tr. 1–1.

    ISBN

     

    0-7695-2330-7

    . Đã bỏ qua tham số không rõ |editors= (gợi ý |editor=) (

    trợ giúp

    )Quản lý CS1: nhiều tên: danh sách tác giả (

    liên kết

    )

  4. ^

    Ian Sommerville

    (2004). Software Engineering. 7th edition.

    Chapter 1

    . Bezien 20 Okt 2008.

  5. ^

    Table 2 in Chapter 1,

    “Guide to the Software Engineering Body of Knowledge”

    . ngày 6 tháng 2 năm 2004.

    Lưu trữ

    bản gốc ngày 18 tháng 1 năm 2008. Truy cập ngày 21 tháng 2 năm 2008.

Xem thêm: CẤU TẠO, TÍNH CHẤT HÓA HỌC, ĐIỀU CHẾ VÀ ỨNG DỤNG CỦA CLO

Xem thêm[

sửa

|

sửa mã nguồn

]

  • Phần mềm

  • Sản xuất phần mềm

  • Thiết kế phần mềm

  • Kiểm thử phần mềm

  • Bảo trì phần mềm

  • Quản lý dự án phần mềm

  • Chất lượng của hệ thống phần mềm

Đọc thêm[

sửa

|

sửa mã nguồn

]

  • Pressman, Roger S

    (2005).

    Software Engineering: A Practitioner’s Approach

    (ấn bản 6). Boston, Mass: McGraw-Hill.

    ISBN

     

    0072853182

    .

  • Sommerville, Ian

    (2007) [1982].

    Software Engineering

    (ấn bản 8). Harlow, England: Pearson Education.

    ISBN

     

    0-321-31379-8

    .

  • Jalote, Pankaj

    (2005) [1991].

    An Integrated Approach to Software Engineering

    (ấn bản 3). Springer.

    ISBN

     

    0-387-20881-X

    .

  • Ghezzi, Carlo (2003) [1991]. Fundamentals of Software Engineering (ấn bản 2). Pearson Education @ Prentice-Hall. Đã bỏ qua tham số không rõ |coauthors= (gợi ý |author=) (

    trợ giúp

    )

Liên kết ngoài[

sửa

|

sửa mã nguồn

]

Lấy từ “

https://vi.wikipedia.org/w/index.php?title=Công_nghệ_phần_mềm&oldid=64562850

Chuyên mục: Kiến thức

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Check Also
Close
Back to top button