✨Xây dựng phần mềm

Xây dựng phần mềm

Xây dựng phần mềm (tiếng Anh:Software construction) là một quy tắc kỹ thuật phần mềm. Nó là quá trình tạo ra chi tiết của phần mềm thông qua sự kết hợp của viết mã, xác minh, kiểm thử đơn vị, kiểm thử tích hợp, và gỡ lỗi. Nó được liên kết tới tất cả các quy tắc công nghệ phần mềm, nhất là với thiết kế phần mềm và kiểm thử phần mềm.

Các nguyên tắc cơ bản về xây dựng phần mềm

Giảm thiểu sự phức tạp

Sự cần thiết phải giảm sự phức tạp chủ yếu là do khả năng hạn chế của hầu hết mọi người khi phải giữ cấu trúc phức tạp và thông tin trong ký ức làm việc của họ

Dự kiến ​​thay đổi

Xây dựng để xác minh

Tái sử dụng

Sử dụng lại có hệ thống có thể cho phép cải thiện năng suất, chất lượng và chi phí phần mềm đáng kể

Các tiêu chuẩn trong xây dựng

Quản lý xây dựng

Cân nhắc thực tiễn

Viết mã

Kiểm thử xây dựng

Mục đích của kiểm thử xây dựng là để giảm khoảng cách giữa thời gian lỗi được đưa vào trong mã và thời gian lỗi được phát hiện. Trong một số trường hợp, kiểm thử xây dựng được thực hiện sau khi mã đã được viết. Trong mô hình phát triển hướng về kiểm thử (TDD), các bài kiểm thử được tạo ra trước khi mã được viết. Xây dựng liên quan đến hai dạng kiểm thử vốn thường được thực hiện bởi kĩ sư phần mềm là người viết mã:

  • Kiểm thử đơn vị
  • Kiểm thử tích hợp

Tái sử dụng

Hiện thực tái sử dụng phần mềm đòi hỏi nhiều hơn là tạo ra và sử dụng thư viện tài sản.

Chất lượng xây dựng

Các kĩ thuật chính được sử dụng để bảo đảm chất lượng mã nguồn khi được xây dựng gồm:

  • Kiểm thử đơn vị và kiểm thử tích hợp. Một nghiên cứu cho thấy tỷ lệ phát hiện lỗi trung bình của kiểm thử đơn vị và tích hợp lần lượt là 30% và 35%.
  • Phát triển hướng về kiểm thử
  • Sử dụng assertions và defensive programming
  • Gỡ lỗi
  • Inspections.
  • Technical reviews.
  • Static analysis

Tích hợp

Kĩ thuật xây dựng

👁️ 0 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**Xây dựng phần mềm** (tiếng Anh:_Software construction_) là một quy tắc kỹ thuật phần mềm. Nó là quá trình tạo ra chi tiết của phần mềm thông qua sự kết hợp của viết mã, xác
**Kiểm thử phần mềm** (tiếng Anh: **Software testing**) là một cuộc kiểm tra được tiến hành để cung cấp cho các bên liên quan thông tin về chất lượng của sản phẩm hoặc dịch vụ
**Quản lý dự án phần mềm** việc lên kế hoạch có tính khoa học và nghệ thuật trong quá trình quản lý các dự án phần mềm. Nó chính là quy trình quản lý dự
**Công nghệ phần mềm** () 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. Ngành
**Bộ công cụ phát triển phần mềm** (tiếng Anh: **software development kit**, viết tắt là **SDK**) là một gói các công cụ phát triển phần mềm (software development) trong một gói có thể cài đặt.
**Kiến trúc phần mềm** của một chương trình máy tính hay một hệ thống tính toán là cấu trúc của các thành phần trong hệ thống đó. _Kiến trúc phần mềm_ bao gồm các phần
nhỏ|Ảnh chụp màn hình trò chơi giáo dục Chinese Tap trên Android để dạy học tiếng Trung. **Phần mềm giáo dục** là phần mềm máy tính có nhiệm vụ chính là hỗ trợ dạy học
**Phần mềm tự do nguồn mở** (Tiếng Anh: _Free and open-source software_ (Viết tắt là F/OSS, FOSS) hoặc _Free/Libre/open-source software_ (Viết tắt là FLOSS)) là loại phần mềm được bao gồm Phần mềm tự do
liên_kết=https://en.wikipedia.org/wiki/File:ClamTk_5.27.png|nhỏ|300x300px|[[ClamTk, một phần mềm diệt vi-rút mã nguồn mở dựa trên công cụ diệt virus ClamAV, ban đầu được Tomasz Kojm phát triển vào năm 2001.]] nhỏ|255x255px|Ảnh chụp giao diện phần mềm diệt virus có
**Phần mềm dạng dịch vụ** (**SaaS** ) là mô hình cấp phép và phân phối phần mềm trong đó phần mềm được cấp phép trên cơ sở đăng ký và được lưu trữ tập trung.
**Phần mềm gián điệp**, còn được dùng nguyên dạng Anh ngữ là **spyware**, là loại phần mềm chuyên thu thập các thông tin từ các máy chủ (thông thường vì mục đích thương mại) qua
Đây là danh sách **Phần mềm mã nguồn mở**: là phần mềm máy tính được cấp phép giấy phép mã nguồn mở. Bài viết này không có tham vọng liệt kê tất cả những phần
nhỏ|phải|Logo của giải thưởng **Mùa hè sáng tạo viết ứng dụng Phần mềm nguồn mở** Giải thưởng **Mùa hè sáng tạo** được xây dựng dựa theo "Google Summer of Code". Ban đầu là một giải
thumb|alt=Màn hình máy tính của hệ điều hành, màn hình hiển thị các ứng dụng phần mềm tự do khác nhau.|Ví dụ về một hệ điều hành phần mềm tự do hiện đại chạy một
nhỏ| Một sơ đồ cho thấy cách người dùng tương tác với [[phần mềm ứng dụng trên một máy tính để bàn thông thường. Lớp phần mềm ứng dụng giao tiếp với hệ điều hành,
**Phần mềm hệ thống** là phần mềm máy tính thiết kế cho việc vận hành và điều khiển phần cứng máy tính và cung cấp một kiến trúc cho việc chạy _phần mềm ứng dụng_.
**Phần mềm giỏ hàng** (Tiếng Anh: _Shopping cart software_) là một phần mềm thương mại điện tử (e-commerce software) cho phép khách hàng truy cập vào một trang web, chọn lựa và mua sắm các
Trong thời đại công nghệ số hiện nay, việc sử dụng phần mềm tính tiền - in bill đã trở thành một yếu tố không thể thiếu cho các nhà hàng, khách sạn và nhiều
nhỏ|500x500px| Yêu cầu quan trọng đối với phần mềm phân phối là **Khả năng hiển thị hàng tồn kho** bao gồm cả khả năng hiển thị hàng tồn kho nội bộ (ở trên) cũng như
**Phần mềm xử lý bảng tính** hay **Bảng tính** (tiếng Anh**: Spreadsheet**) là một phần mềm ứng dụng dùng để tổ chức, phân tích và lưu trữ dữ liệu thông qua các bảng tính (gọi
**Mô hình thông tin xây dựng (BIM), hay mô hình thông tin công trình** là một quy trình liên quan tới việc tạo lập và quản lý những đặc trưng kỹ thuật số (được gọi
**RPM Package Manager** (**RPM**) (ban đầu là **Red Hat Package Manager**; bây giờ là một từ viết tắt đệ quy) là một trình quản lý gói. Tên gọi RPM đề cập đến: định dạng file.rpm,
**Wine** là một lớp tương thích tự do nguồn mở dùng để chạy các phần mềm viết cho Windows trên các hệ điều hành tương tự Unix (Linux, FreeBSD,...). Wine cũng cung cấp một thư
**Quy trình phát triển phần mềm** _(software development methodology)_ là một cấu trúc bao gồm tập hợp các thao tác và các kết quả tương quan sử dụng trong việc phát triển để sản xuất
nhỏ|phải|Một phần móng lộ của công trình xây dựng, Tàn tích dọc theo Đường mòn Appalachian tại Totts Gap, Hạt Northampton, trong Khu giải trí Quốc gia Delaware Water Gap. Hình vẽ phần móng dưới
**Hóa đơn nguyên vật liệu phần mềm** (BOM phần mềm) là danh sách các thành phần trong một phần mềm. Các nhà cung cấp phần mềm thường tạo ra các sản phẩm bằng cách lắp
thumb|upright|Biểu đồ dòng thời gian cho thấy sự phát triển của các [[bản phân phối Linux, với mỗi nhánh rẽ trong sơ đồ được gọi là "một fork".]] Trong phát triển phần mềm, **fork** ()
nhỏ|KYLIX3 IDE JP **Kylix** là một công cụ phần mềm cho phép phát triển các chương trình tương tự như Delphi, nhưng trên nền Linux. ## Lịch sử Kylix được công ty phần mềm Borland
**Triển khai phần mềm** (tiếng Anh: **Software deployment**) là tât cả các hoạt động khiến một hệ thống phần mềm sẵn sàng cho việc sử dụng. Quá trình triển khai chung bao gồm một số
**Mono** là một dự án tự do nguồn mở nhằm tạo ra một để tạo software framework tương thích .NET Framework tương thích tiêu chuẩn Ecma, bao gồm một trình biên dịch C# và Common
**Phát triển phần mềm linh hoạt** hoặc **lập trình linh hoạt** (tiếng Anh: **_Agile software development_** hay **_Agile programming_**) là một phương thức thực hiện các dự án công nghệ phần mềm, phương thức này
Phần mềm là các lệnh được lập trình mà được lưu trữ trong bộ nhớ được lưu trữ của các máy tính kỹ thuật số để bộ xử lý thực hiện. Phần mềm là một
**Bảo trì phần mềm** (tiếng Anh _software maintenance_) bao gồm điều chỉnh các lỗi mà chưa được phát hiện trong các giai đoạn trước của vòng đời của một phần mềm, nâng cấp tính năng
**Blender** là một phần mềm đồ họa 3D miễn phí và nguồn mở, được sử dụng để làm phim hoạt hình, kỹ xảo, ảnh nghệ thuật, mẫu in 3D, phần mềm tương tác 3D và
**Quỹ Phần mềm Tự do** hay **Tổ chức Phần mềm Tự do** (tiếng Anh: _Free Software Foundation_, viết tắt **FSF**) là một tổ chức phi lợi nhuận do Richard Stallman thành lập ngày 4 tháng
thumb|Một kỹ sư phần mềm đang viết mã Java **Kỹ sư phần mềm** (tiếng Anh: **software engineer**) là người áp dụng các nguyên tắc/nguyên lý của công nghệ phần mềm vào việc thiết kế, phát
**Jenkins** là một phần mềm tự động hóa, mã nguồn mở và viết bằng Java. Dự án được tách ra từ dự án ban đầu là Hudson, sau khi xảy ra sự tranh chấp với
Một **nhà xuất bản phần mềm** là một công ty xuất bản trong ngành công nghiệp phần mềm nằm giữa nhà phát triển và nhà phân phối. Trong một số công ty, hai hoặc cả
**Mastodon** là một dịch vụ mạng xã hội tự do nguồn mở hoạt động với hình thức tự lưu trữ (self-hosting). Nó cho phép bất cứ ai cũng có thể xây dựng một hệ thống
**Công** **nghiệp phần mềm** bao gồm các doanh nghiệp phát triển, bảo trì và xuất bản phần mềm đang sử dụng các mô hình kinh doanh khác nhau, chủ yếu là "dựa trên giấy phép
[[Tập tin:Nexus 4.png|thumb| Nexus 4 là một trong những thiết bị "thân thiện với lập trình viên" thuộc dòng sản phẩm Google Nexus]] **Phát triển phần mềm Android** là quy trình tạo ra các ứng
**Phần mềm thời gian thực** (_real-time software_) là các chương trình giám sát/phân tích/điều khiển các sự kiện trong thế giới thực ngay khi nó xảy ra. Các phần tử của phần mềm thời gian
**Unity** là một game engine đa nền tảng được phát triển bởi Unity Technologies, mà chủ yếu để phát triển video game cho máy tính, consoles và điện thoại. Lần đầu tiên nó được công
Nhiều doanh nghiệp ngành thép hiện vẫn đang vận hành với mô hình quản trị rời rạc, thủ công hoặc sử dụng phần mềm riêng lẻ cho từng bộ phận. Hệ quả là: Thiếu sự
**Miền** hay **tên miền** (tiếng Anh: _domain_) là một lĩnh vực nghiên cứu nhằm xác định một tập các yêu cầu chung, thuật ngữ, và chức năng cho bất cứ chương trình phần mềm nào
**Phần mềm máy chủ ứng dụng** (tiếng Anh: _Application Server_) là một phần mềm (software engine) trong cung cấp ứng dụng phần mềm cho các máy trạm hoặc thiết bị, thông thường là qua mạng
Ngành vật liệu xây dựng có đặc thù là hoạt động theo mùa vụ, phụ thuộc vào tiến độ dự án và nhu cầu thị trường. Điều này khiến doanh nghiệp phải đối mặt với
công tác thiết kế, thi công và giảng dạy trong lĩnh vực xây dựng công trình ngầm trong môi trường đô thị — đặc biệt là theo phương pháp đào mở (open cut method). Trong
là một tài liệu chuyên sâu dành cho các kỹ sư, nhà quản lý dự án, nhà thầu, và những người làm việc trong lĩnh vực xây dựng. Cuốn sách này cung cấp cái nhìn
Ngành thép là lĩnh vực đòi hỏi sản phẩm có khối lượng lớn, thời gian giao hàng nhanh và uy tín thương hiệu cao. Chính vì thế, hệ thống đại lý đóng vai trò then