模塊化 組件化 工程化_軟件工程中的模塊和軟件組件

模塊化 組件化 工程化

The module in software is a small part of the software that is responsible for performing any kind of functionality. Sometimes, the term sub-program is also used to refer to the term module.

軟件中模塊是軟件的一小部分,負責執行任何類型的功能。 有時,術語“子程序”也用于指術語“模塊”。

If we try to define the term module (or a sub-program), then it can be defined in several different ways, like "a module is a FORTRAN subroutine", or like "a module is a work assignment for an individual developer", etc. But what all they mean is the same.

如果我們嘗試定義術語模塊(或子程序),則可以通過幾種不同的方式進行定義,例如“模塊是FORTRAN子例程”“模塊是單個開發人員的工作分配”。等等。但是它們的意思是相同的。

A module can be thought as a mini each which performs any of the specific tasks of the software, and the software consists of various such mini software, which can also be called as sub-programs. Each of these sub-programs is individually capable of delivering a piece of functionality independently, and these can be accessed by the users either directly or indirectly with the help of interfaces.

可以將模塊視為一個微型模塊,每個模塊均執行軟件的任何特定任務,并且該軟件由各種此類微型軟件組成,這些微型軟件也可以稱為子程序。 這些子程序中的每一個都能夠獨立地獨立提供一項功能,并且用戶可以在界面的幫助下直接或間接地訪問這些子程序

Modules are added into a software so that each of the functionalities can be easily identified and be understandable for other developers too. This type of Software building is known as component-based software. In this, there are different components of software and each of the components represents a modular, easy to debug and fix, and replaceable part of a system that wraps up and represents a set of interfaces.

將模塊添加到軟件中,以便可以輕松識別每個功能,其他開發人員也可以理解。 這種類型的軟件構建稱為基于組件的軟件。 在這種情況下,軟件具有不同的組件,并且每個組件都代表一個模塊化,易于調試和修復的系統,并且是系統的可替換部分,其包裝并代表一組接口。

The components based development of a software is a very effective way to develop software and has many benefits over developing the entire software under a single module. Some of the characteristics of a modular programming approach in software development are as follows:

基于組件的軟件開發是一種非常有效的軟件開發方式,與在單個模塊下開發整個軟件相比,具有許多優勢。 軟件開發中模塊化編程方法的一些特征如下:

基于組件的軟件開發的好處 (Benefits of component based software development)

  1. Each and every functionality of the software is present in a separate module (or component). This makes the code readable and easy to understand for the other co-developers too. Also, the error detection and maintenance of certain features can also be done in a much simpler and easier way.

    該軟件的每個功能都存在于單獨的模塊(或組件)中。 這也使代碼對于其他共同開發人員而言可讀性強并且易于理解。 而且,某些功能的錯誤檢測和維護也可以以一種非常簡單和容易的方式完成。

  2. Code reusability: The components of software can be reused in other software as it is without having to code them again. Therefore, through modular programming, each module can be used again and again as it provides independent functionalities, and hence this implements reusability of code.

    代碼可重用性 :該軟件的組件可以按原樣在其他軟件中重用,而不必再次對其進行編碼。 因此,通過模塊化編程,每個模塊都可以一次又一次地使用,因為它提供了獨立的功能,因此可以實現代碼的可重用性。

  3. For adding any new feature into the software (in the maintenance part), a new module for it can be created and integrated with the mainline program. This provides us with an easy to add supplement features in our application whenever required.

    為了將任何新功能添加到軟件中(在維護部分中),可以為其創建一個新模塊并將其與主線程序集成。 這使我們可以在需要時輕松地在應用程序中添加補充功能。

基于組件的軟件開發的缺點 (Drawbacks of component based software development)

  1. It is easy to develop separate modules for different functionalities in a software, but it becomes extremely hard to integrate together so that they can function together under a single software. So, the integration part is a massive challenge in front of the developers.

    為軟件中的不同功能開發單獨的模塊很容易,但是將它們集成在一起以使其可以在單個軟件中一起運行卻變得異常困難。 因此,集成部分是開發人員面臨的巨大挑戰。

  2. Even if a module may be able to independently display a feature from the system, but when integrated, it must have some dependencies on other components, like for getting the data or some sort of indicating signals. So, this relationship establishment between the modules takes extra lines of code and also extra time for processing.

    即使一個模塊可能能夠從系統中獨立顯示功能,但在集成時,它也必須對其他組件具有某些依賴性,例如獲取數據或某種指示信號。 因此,模塊之間的這種關系建立需要花費額外的代碼行和處理時間。

翻譯自: https://www.includehelp.com/basics/module-and-software-components-in-software-engineering.aspx

模塊化 組件化 工程化

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/380044.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/380044.shtml
英文地址,請注明出處:http://en.pswp.cn/news/380044.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Firefox2狂占CPU解決辦法

https://images.cnblogs.com/cnblogs_com/Tisty/138006/o_firefox3.jpg 看了一下,不知道 "jpeg_free_large" 是干啥的,遂用 "Firefox jpeg_free_large" Google 一下,出來的一堆東西里有帖子說可能和 Apple 的 QuickTime …

PUSHAD和POPAD,以及PUSHA和POPA

PUSHAD PUSHAD也叫保護現場,就是把我們的寄存器壓入棧中 pushad是把eax,ecx,edx,ebx,esp、ebp,esi,edi依次壓入棧中,ESP會減少32,相當于: push eax push ec…

Java——n個數的全排列

例題: 輸入一串字符串,將該字符串中的字符元素進行全排列,然后,一串輸出結果。 例如: 輸入: ABCD 輸出: ABCD ABDC ACBD ACDB ADBC ADCB BACD BADC BCAD BCDA BDAC BDCA CABD CADB CBAD CBDA…

一段個性化stringgrid的代碼

需要注意的是 該段程序使用了 canvas。 procedure TW_CkbTaiZhang.KhLstDrawCell(Sender: TObject; ACol,ARow: Integer; Rect: TRect; State: TGridDrawState);begin if ARowkhlst.Row then with khlst.Canvas do //畫 cell 的邊框 begin Pen.Color : $00ff0000; …

dp 扔雞蛋_使用動態編程(DP)的雞蛋掉落問題

dp 扔雞蛋Problem statement: You are given N floor and K eggs. You have to minimize the number of times you have to drop the eggs to find the critical floor where critical floor means the floor beyond which eggs start to break. Assumptions of the problem: 問…

MOVSX和MOVZX

MOVSX 先符號擴展,再傳送 格式: MOVSX 操作數A ,操作數B //操作數B的空間小于A比如說我們使用命令: movsx eax,bxbx是16位,eax是32位,傳值過程: 先用bx的符號位把eax高16填滿,b…

統計學習以及支持向量機的國內外基本比較重要的書

1、支持向量機導論,此書乃是SVM方面的經典著作, 該書的作者也是近年來SVM、kernel methods學術圈內的活躍學者,對于這些領域均有過重要的貢獻。這本書從“線性機器、核方法、統計學習理論、凸優化”四個方面揭示了SVM的內在機理 --利用核…

Java——集合(TreeSet)

package com.wsq.set; //這里進行調用Person()方法,要進行導包 import java.util.TreeSet; import com.wsq.bean.Person; public class Demo3_TreeSet { /*** TreeSet集合是用來對元素進行排序的,同樣它也可以保證元素的唯一* 當compareTo()方法返…

setmonth_日期setMonth()方法以及JavaScript中的示例

setmonthJavaScript日期setMonth()方法 (JavaScript Date setMonth() method) setMonth() method is a Date class method, it is used to set the month to the Date object with a valid month value (between 0 to 11. 0 for January, 1 for February and so on). setMonth(…

LEA與XCHG

LEA 格式: LEA 通用寄存器 內存地址功能:取地址命令 將內存地址賦值給寄存器 lea eax,dword ptr ds:[ecx0x16]dword 雙字 就是四個字節ptr pointer縮寫 即指針ds 數據段版寄存器[]里的數據是一個地址值,這個地址指向一個雙字型數據 將dwo…

分域名優化的時候要考慮備選IP的問題

我們在需要下載很多內容的時候,很容易想到做分域名的并發下載,給原來的服務器多分幾個域名,因為分不同的域名可能可以在瀏覽器中分到更多的下載進程,提高下載速度。 但是在做網絡應用的時候,我們的一個域名下面有的時候…

面試題-ASP 與 ASP.Net的區別?

比較簡潔的回答: 1.開發語言不同,ASP局限于用腳本語言來開發,而ASP.Net可以使用C#,VB.C等來開發。 2.運行機制不同,ASP是解釋運行的,執行效率較低。ASP.Net是編譯性的編程框架。 3.開發方式不同,ASP里前臺H…

Java——集合(輸入5個學生的信息按總分高低排序)

題目要求: 鍵盤錄入5個學生信息(姓名,語文成績,數學成績,英語成績),按照總分從高到低輸出到控制臺 分析: 1,定義一個學生類 * 成員變量:姓名,…

日期setHours()方法以及JavaScript中的示例

JavaScript Date setHours()方法 (JavaScript Date setHours() method) setHours() method is a Date class method, it is used to set the hour to the Date object with a valid hour value (between 00 to 23). setHours()方法是Date類方法,用于將小時設置為具有…

Google SSL zz

// Google SSL// Modified from SSL Certificates Pro//z 2011-12-29 8:59 AM is2120csdn : reader,calendar// UserScript// name Google SSL// namespace http://raychow.info/// version 2.1.2// description 強制 Google 使用安全連接。//// include htt…

阿諾德.施瓦辛格 訓練方法

阿諾德.施瓦辛格 訓練方法七次“奧林匹亞先生”獲得者、著名影星阿諾德.施瓦辛格,是廣大健美愛好者崇拜的偶像。即使在今天,他那無與倫比的二頭肌和胸肌仍為人們津津樂道。本文是他通過親身體會,講述了怎樣鍛煉才能增長肌肉的觀點和方法&…

ADC和SBB命令

ADC 帶進位加法指令 用法: adc 操作數1,操作數2相當于: 操作數1操作數2進位標志CF->操作數1現在的eax是0,C1,用adc指令直接會是0x6 SBB 帶進位減法指令 用法: sbb 操作數1,操作數2相當…

Java——集合(輸入一串字符串,統計字符串中每個字符出現的次數)

A:案例演示 需求:輸入一串字符串,統計字符串中每個字符出現的次數** 分析:1,定義一個需要被統計字符的字符串2,將字符串轉化為字符數組,才能拿到每一個字符3,定義雙列集合存儲字符串…

entry數組_數組entry()方法以及JavaScript中的示例

entry數組JavaScript entry()方法 (JavaScript entries() method) entries() method is used to create an iterator object of an array to access the keys (index) and values. entry()方法用于創建數組的迭代器對象,以訪問鍵(索引)和值。 Syntax: 句法&#xf…

mul和div指令(8位,16位,32位)

MUL 無符號乘法指令,默認操作數與eax相乘(這里只說32位,其他與下面的div類似) 格式: mul 操作數 //操作數只有一個操作數與eax相乘,結果共有16位(這里的16位是16進制數)&#xff…