




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程軟件工程1 1軟件工程軟件工程第三章第三章 軟件設計軟件設計3.1 3.1 軟件設計的概念軟件設計的概念3.2 3.2 功能獨立性功能獨立性3.3 3.3 結構化設計方法結構化設計方法3.4 3.4 過程設計過程設計軟件工程軟件工程2 23.1 3.1 軟件設計的概念軟件設計的概念n軟件設計的基本目標是軟件設計的基本目標是用比較抽象概括的方式用比較抽象概括的方式確定目標系統如何完成預定的任務確定目標系統如何完成預定的任務,即軟件設,即軟件設計是確定系統的物理模型。計是確定系統的物理模型。n從技術觀點來看,軟件設計包括從技術觀點來看,軟件設計包括數據設計數據設計、體體系結構設計系結構設計
2、、接口設計接口設計、過程設計過程設計。n數據設計數據設計將實體關系圖中描述的對象和關系,將實體關系圖中描述的對象和關系,以及數據字典中描述的詳細數據內容轉化為數以及數據字典中描述的詳細數據內容轉化為數據結構的定義。據結構的定義。軟件工程軟件工程3 3 體系結構設計體系結構設計定義軟件系統各主要成份之間的定義軟件系統各主要成份之間的關系。關系。 接口設計接口設計根據數據流圖定義軟件內部各成份之根據數據流圖定義軟件內部各成份之間、軟件與其它協同系統之間及軟件與用戶之間、軟件與其它協同系統之間及軟件與用戶之間的交互機制。間的交互機制。 過程設計過程設計則是把結構成份轉換成軟件的過程性則是把結構成份轉
3、換成軟件的過程性描述。描述。軟件工程軟件工程4 4將分析模型轉換為設計將分析模型轉換為設計數據字典數據字典數數據據流流圖圖實實體體關關系系圖圖狀態轉換圖狀態轉換圖加加工工規規格格說說明明控控制制規規 格格說說明明數數據據對對象象描描述述過程設計過程設計接口設計接口設計體系結構設計體系結構設計數據設計數據設計軟件工程軟件工程5 5n從工程管理角度來看,軟件設計分兩步完成:從工程管理角度來看,軟件設計分兩步完成:概要設計和詳細設計。概要設計和詳細設計。n概要設計概要設計將軟件需求將軟件需求轉化為軟件體系結構轉化為軟件體系結構確定系統級接口確定系統級接口全局數據結構或數據庫模式。全局數據結構或數據庫
4、模式。n詳細設計詳細設計確立每個模塊的實現算法和局部數據結構確立每個模塊的實現算法和局部數據結構用適當方法表示算法和數據結構的細節用適當方法表示算法和數據結構的細節軟件工程軟件工程6 6n軟件設計是后續開發步驟及軟件維護工作的基軟件設計是后續開發步驟及軟件維護工作的基礎。如果沒有設計,只能建立一個不穩定的系礎。如果沒有設計,只能建立一個不穩定的系統結構。統結構。設計設計編碼編碼測試測試維護維護測試測試編碼編碼維護維護有軟件設計有軟件設計 沒有軟件設計沒有軟件設計軟件工程軟件工程7 7n軟件設計既是過程又是模型。軟件設計既是過程又是模型。n設計過程設計過程是一系列的迭代步驟,使設計人員能是一系列
5、的迭代步驟,使設計人員能夠描述目標系統的各個側面。夠描述目標系統的各個側面。n設計模型設計模型首先描述目標系統的整體架構,然后首先描述目標系統的整體架構,然后逐步細化架構得到構造每個細節的指導原則,逐步細化架構得到構造每個細節的指導原則,從而得到系統的一系列不同的視圖。從而得到系統的一系列不同的視圖。n良好的設計原則可為設計過程導航。良好的設計原則可為設計過程導航。n衡量衡量設計過程設計過程的技術原則:的技術原則: 設計必須實現分析模型中描述的所有顯式需設計必須實現分析模型中描述的所有顯式需求,必須滿足用戶希望的所有隱式需求。求,必須滿足用戶希望的所有隱式需求。衡量軟件設計的原則衡量軟件設計的
6、原則軟件工程軟件工程8 8對于開發者和未來的維護者而言,對于開發者和未來的維護者而言,設計必須是設計必須是可讀的、可理解的,使得將來易于編程、易可讀的、可理解的,使得將來易于編程、易于測試、易于維護。于測試、易于維護。設計應該給出軟件的全貌,包括從實現角度可設計應該給出軟件的全貌,包括從實現角度可看到的數據、功能、行為。看到的數據、功能、行為。n衡量衡量設計模型設計模型的技術原則的技術原則 設計模型應該是一個分層結構。該結構:設計模型應該是一個分層結構。該結構: 使用可識別的使用可識別的設計模式設計模式搭建系統結構。搭建系統結構。 用顯示良好設計特征的用顯示良好設計特征的構件構件構成。構成。
7、可以用可以用演化的方式演化的方式實現。實現。 設計應當模塊化。設計應當模塊化。軟件工程軟件工程9 9 設計應當包含數據、體系結構、接口和構件設計應當包含數據、體系結構、接口和構件(模塊)的清晰的視圖。(模塊)的清晰的視圖。 設計應當根據將要實現的對象和數據模式導設計應當根據將要實現的對象和數據模式導出合適的數據結構。出合適的數據結構。 設計應當建立具有獨立功能特征的構件。設計應當建立具有獨立功能特征的構件。 設計應當建立能夠降低模塊與外部環境之間設計應當建立能夠降低模塊與外部環境之間復雜連接的接口。復雜連接的接口。 設計模型應當通過使用軟件需求信息所驅動設計模型應當通過使用軟件需求信息所驅動的
8、可重復的方法導出。的可重復的方法導出。nDavis的軟件設計原則的軟件設計原則 設計應具有設計應具有可跟蹤性可跟蹤性,能回溯到軟件需求,能回溯到軟件需求;軟件工程軟件工程1010 設計不必每次都從頭做起,可以復用已有的設計不必每次都從頭做起,可以復用已有的設計模式和數據模式。設計模式和數據模式。 設計應當縮小軟件與現實世界中問題的設計應當縮小軟件與現實世界中問題的“智智力距離力距離”,盡量逼近問題領域的結構,盡量逼近問題領域的結構; 設計應具有一致性和集成性。整個系統應具設計應具有一致性和集成性。整個系統應具有統一的風格和格式,具有良好的接口。有統一的風格和格式,具有良好的接口。 設計結果應能
9、適應未來可能的變更設計結果應能適應未來可能的變更; 設計不是編碼,編碼也不是設計。設計模型設計不是編碼,編碼也不是設計。設計模型的抽象級別比源代碼高。在編碼級別上唯一的抽象級別比源代碼高。在編碼級別上唯一的設計決策是補充一些實現細節。的設計決策是補充一些實現細節。軟件工程軟件工程11 11 設計應具有容錯性和異常處理能力。對于異設計應具有容錯性和異常處理能力。對于異常數據、事件、操作條件等能夠平滑處理。常數據、事件、操作條件等能夠平滑處理。 在建立設計方案時就應能評估設計質量,而在建立設計方案時就應能評估設計質量,而不是在系統編碼之后。不是在系統編碼之后。 應堅持設計評審,減少概念性(語義性)
10、的應堅持設計評審,減少概念性(語義性)的錯誤。錯誤。1)設計應遵循設計應遵循抽象化抽象化的原則,的原則,數據抽象數據抽象軟件設計的主要手段軟件設計的主要手段軟件工程軟件工程1212 過程抽象過程抽象 是指在軟件設計中將處理過程的是指在軟件設計中將處理過程的實現細節隱藏在過程抽象中,可以直接通過實現細節隱藏在過程抽象中,可以直接通過模塊接口使用這些處理操作模塊接口使用這些處理操作。 數據抽象數據抽象 是指采用抽象數據類型表示數據,是指采用抽象數據類型表示數據,實現數據封裝,使得使用者可通過接口使用實現數據封裝,使得使用者可通過接口使用數據而不必關心數據結構的實現。數據而不必關心數據結構的實現。2
11、)設計應遵循設計應遵循自頂向下自頂向下、逐步細化逐步細化的原則,建立一的原則,建立一個層次的結構。個層次的結構。 將軟件體系結構自頂向下,對過程細節和數將軟件體系結構自頂向下,對過程細節和數據細節從抽象到具體,逐層細化,直到用編據細節從抽象到具體,逐層細化,直到用編程語言的語句能夠實現為止。程語言的語句能夠實現為止。軟件工程軟件工程13133)設計應當遵循設計應當遵循模塊化模塊化的原則的原則。 每個模塊可獨立地開發、測試,最后組裝成每個模塊可獨立地開發、測試,最后組裝成完整的程序。完整的程序。 其出發點是本著將一種復雜問題其出發點是本著將一種復雜問題“分而治之分而治之”的原則。其目的是使程序的
12、結構清晰,容易的原則。其目的是使程序的結構清晰,容易閱讀、理解、測試、修改。閱讀、理解、測試、修改。 Meyer的的良好模塊設計方法的標準良好模塊設計方法的標準a) 模塊可分解性模塊可分解性 可將系統按問題子問題可將系統按問題子問題分解的原則分解成系統的模塊層次結構分解的原則分解成系統的模塊層次結構;b) 模塊可組裝性模塊可組裝性 可利用已有的設計構件組可利用已有的設計構件組裝成新系統,不必一切從頭開始。裝成新系統,不必一切從頭開始。軟件工程軟件工程1414c) 模塊可理解性模塊可理解性 一個模塊可不參考其他模一個模塊可不參考其他模塊而被理解;塊而被理解;d) 模塊連續性模塊連續性 對軟件需求
13、的一些微小變更對軟件需求的一些微小變更只導致對某個模塊的修改而整個系統不只導致對某個模塊的修改而整個系統不用大動用大動;e) 模塊保護模塊保護 將模塊內出現異常情況的影響將模塊內出現異常情況的影響范圍限制在模塊內部;范圍限制在模塊內部;4)設計應遵循設計應遵循信息隱蔽信息隱蔽的原則的原則。 Patnas主張在開發時,將每個程序的成分隱主張在開發時,將每個程序的成分隱藏在模塊內,定義每一個模塊時盡可能少藏在模塊內,定義每一個模塊時盡可能少地顯露其內部的處理。地顯露其內部的處理。軟件工程軟件工程1515 每個模塊的實現細節對于其它模塊是隱蔽的,每個模塊的實現細節對于其它模塊是隱蔽的,將來修改軟件時
14、偶然引入錯誤所造成的影響將來修改軟件時偶然引入錯誤所造成的影響就可以局限在一個或幾個模塊內部,不致波就可以局限在一個或幾個模塊內部,不致波及到軟件的其它部分。及到軟件的其它部分。 在可預見將來可能修改的場合,信息隱蔽可在可預見將來可能修改的場合,信息隱蔽可以提高軟件的可修改性、可測試性和可移植以提高軟件的可修改性、可測試性和可移植性。性。軟件工程軟件工程16163.2 3.2 功能獨立性功能獨立性n功能獨立性是抽象、模塊化和信息隱蔽的直接功能獨立性是抽象、模塊化和信息隱蔽的直接產物。如果一個模塊能夠獨立于其他模塊被編產物。如果一個模塊能夠獨立于其他模塊被編程、測試和修改,則該模塊具有功能獨立性
15、。程、測試和修改,則該模塊具有功能獨立性。n1978年年Myers提出用兩個準則來度量功能獨立提出用兩個準則來度量功能獨立性,即模塊間的耦合和模塊的內聚。性,即模塊間的耦合和模塊的內聚。n內聚性內聚性:內聚是一個模塊內部各個元素彼此結:內聚是一個模塊內部各個元素彼此結合的緊密程度的度量。合的緊密程度的度量。n耦合性耦合性: 耦合是模塊間互相連接的緊密程度的耦合是模塊間互相連接的緊密程度的度量,它取決于各個模塊之間接口的復雜度、度量,它取決于各個模塊之間接口的復雜度、調用方式以及哪些信息通過接口。調用方式以及哪些信息通過接口。軟件工程軟件工程1717非直接非直接 數據數據 標記標記 控制控制 外
16、部外部 公共公共 內容內容 耦合耦合 耦合耦合 耦合耦合 耦合耦合 耦合耦合 耦合耦合 耦合耦合耦合性耦合性功能獨立性功能獨立性模塊間的耦合模塊間的耦合n模塊之間耦合性越強,功能獨立性越差,這樣模塊之間耦合性越強,功能獨立性越差,這樣形成的模塊結構界面不好。形成的模塊結構界面不好。軟件工程軟件工程1818非直接耦合非直接耦合(Nondirect(Nondirect Coupling) Coupling)n兩個模塊之間沒有直接關系,它們之間的聯系完兩個模塊之間沒有直接關系,它們之間的聯系完全是通過主模塊的控制和調用來實現的。全是通過主模塊的控制和調用來實現的。n非直接耦合的模塊獨立性最強。非直接
17、耦合的模塊獨立性最強。主模塊主模塊ABCEFGXYZ軟件工程軟件工程1919數據耦合數據耦合 (Data Coupling)(Data Coupling)n一個模塊訪問另一個模塊時,彼此之間是通過簡一個模塊訪問另一個模塊時,彼此之間是通過簡單數據參數單數據參數 (不是控制參數、公共數據結構或外不是控制參數、公共數據結構或外部變量部變量) 來交換輸入、輸出信息的。來交換輸入、輸出信息的。p0 (x0, y0) p1 (x1, y1)數據耦合數據耦合 LINE ( x0, y0, x1, y1)軟件工程軟件工程2020標記耦合標記耦合 (Stamp Coupling)(Stamp Coupling
18、)n一組模塊通過參數表傳遞記錄信息,就是標記耦一組模塊通過參數表傳遞記錄信息,就是標記耦合。這個記錄是某一數據結構的子結構,而不是合。這個記錄是某一數據結構的子結構,而不是簡單變量。簡單變量。p0 (x0, y0) p1 (x1, y1)標記標記耦合耦合 LINE ( p0, p1)軟件工程軟件工程2121控制耦合控制耦合 (Control Coupling)(Control Coupling)n如果一個模塊通過如果一個模塊通過傳送開關、標志、傳送開關、標志、名字等控制參數,名字等控制參數,明顯地控制選擇另明顯地控制選擇另一模塊的功能,就一模塊的功能,就是控制耦合。是控制耦合。FlagFlag
19、f1f2fn軟件工程軟件工程2222外部耦合(外部耦合(External CouplingExternal Coupling)n一組模塊都訪問同一全局簡單變量而不是同一一組模塊都訪問同一全局簡單變量而不是同一全局數據結構,而且不是通過參數表傳遞該全全局數據結構,而且不是通過參數表傳遞該全局變量的信息,則稱之為外部耦合。局變量的信息,則稱之為外部耦合。公共耦合(公共耦合(Common CouplingCommon Coupling)n若一組模塊都訪問同一個公共數據環境,則它若一組模塊都訪問同一個公共數據環境,則它們之間的耦合就稱為公共耦合。公共的數據環們之間的耦合就稱為公共耦合。公共的數據環境可
20、以是全局數據結構、共享的通信區、內存境可以是全局數據結構、共享的通信區、內存的公共覆蓋區等。的公共覆蓋區等。軟件工程軟件工程2323n公共耦合的復雜程度隨耦合模塊的個數增加而公共耦合的復雜程度隨耦合模塊的個數增加而顯著增加。若只是兩模塊間有公共數據環境,顯著增加。若只是兩模塊間有公共數據環境,則公共耦合有兩種情況。松散公共耦合和緊密則公共耦合有兩種情況。松散公共耦合和緊密公共耦合。公共耦合。common公共數據區公共數據區ABcommon公共數據區公共數據區AB松散的公共耦合松散的公共耦合緊密的公共耦合緊密的公共耦合軟件工程軟件工程2424n如果發生下列情形,模塊之間就是內容耦合如果發生下列情
21、形,模塊之間就是內容耦合: 一個模塊直接訪問另一個模塊的內部數據一個模塊直接訪問另一個模塊的內部數據; 一個模塊不通過正常入口轉到另一模塊內一個模塊不通過正常入口轉到另一模塊內部部; 兩個模塊有一部分程序代碼重迭兩個模塊有一部分程序代碼重迭(只可能出只可能出現在匯編語言中現在匯編語言中); 一個模塊有多個入口。一個模塊有多個入口。內容耦合內容耦合 (Content Coupling)(Content Coupling)軟件工程軟件工程2525 c AB進入另一模塊內部進入另一模塊內部模塊代碼重疊模塊代碼重疊ABentry1 entry2 模塊多個入口模塊多個入口軟件工程軟件工程2626模塊內聚
22、模塊內聚巧合巧合 邏輯邏輯 時間時間 過程過程 通信通信 信息信息 功能功能內聚內聚 內聚內聚 內聚內聚 內聚內聚 內聚內聚 內聚內聚 內聚內聚內聚性內聚性功能獨立性功能獨立性n模塊內聚性越強,功能獨立性越好,對于形成模塊內聚性越強,功能獨立性越好,對于形成的模塊結構有比較好的作用。的模塊結構有比較好的作用。n要求模塊結構達到要求模塊結構達到高內聚,低耦合高內聚,低耦合。軟件工程軟件工程2727n一個模塊中各個部分都是完成某一具體功能必一個模塊中各個部分都是完成某一具體功能必不可少的組成部分,或者說該模塊中所有部分不可少的組成部分,或者說該模塊中所有部分都是為了完成一項具體功能而協同工作,緊密
23、都是為了完成一項具體功能而協同工作,緊密聯系,不可分割的。則稱該模塊為功能內聚模聯系,不可分割的。則稱該模塊為功能內聚模塊。塊。n功能內聚模塊的功能獨立性最強。功能內聚模塊的功能獨立性最強。功能內聚功能內聚 (Functional Cohesion)(Functional Cohesion)軟件工程軟件工程2828n這種模塊完成多個功能,各個功能相互獨立但這種模塊完成多個功能,各個功能相互獨立但都在同一數據結構上操作,每一項功能有一個都在同一數據結構上操作,每一項功能有一個唯一的入口點。這個模塊將根據不同的要求,唯一的入口點。這個模塊將根據不同的要求,確定該執行哪一個功能。確定該執行哪一個功能
24、。n由于這個模塊的所有功能都是基于同一個數據由于這個模塊的所有功能都是基于同一個數據結構(符號表),因此,它是一個信息內聚的結構(符號表),因此,它是一個信息內聚的模塊。模塊。n信息內聚模塊可以看成是多個功能內聚模塊的信息內聚模塊可以看成是多個功能內聚模塊的組合,并且達到信息的隱蔽。組合,并且達到信息的隱蔽。信息內聚信息內聚 (Informational Cohesion)(Informational Cohesion)軟件工程軟件工程2929初始化初始化插入插入刪除刪除查找查找修改修改符符 號號 表表軟件工程軟件工程3030n如果一個模塊內各功能部分都使用了相同的輸如果一個模塊內各功能部分都
25、使用了相同的輸入數據,或產生了相同的輸出數據,則稱之為入數據,或產生了相同的輸出數據,則稱之為通信內聚模塊。通常,通信內聚模塊是通過數通信內聚模塊。通常,通信內聚模塊是通過數據流圖來定義的。據流圖來定義的。n模塊內各個功能是緊密相連的。模塊內各個功能是緊密相連的。通信內聚通信內聚 (Communication Cohesion)(Communication Cohesion)軟件工程軟件工程3131打印打印檢驗結檢驗結果果讀文件讀文件文件文件計算計算A計算計算B合并合并修改修改文件文件新文件新文件A結果結果B結果結果軟件工程軟件工程3232n使用流程圖做為工具設計程序時,如果流程圖使用流程圖做
26、為工具設計程序時,如果流程圖太大,可以把流程圖中的某一部分劃出組成模太大,可以把流程圖中的某一部分劃出組成模塊,就得到過程內聚模塊。塊,就得到過程內聚模塊。n例如,把流程圖中的循環部分、判定部分、計例如,把流程圖中的循環部分、判定部分、計算部分分成三個模塊,這三個模塊都是過程內算部分分成三個模塊,這三個模塊都是過程內聚模塊。聚模塊。過程內聚(過程內聚(Procedural CohesionProcedural Cohesion)軟件工程軟件工程3333n時間內聚又稱為經典內聚。這種模塊大多為多時間內聚又稱為經典內聚。這種模塊大多為多功能模塊,但模塊的各個功能的執行與時間有功能模塊,但模塊的各個
27、功能的執行與時間有關,通常要求所有功能必須在同一時間段內執關,通常要求所有功能必須在同一時間段內執行。行。n例如,初始化模塊和終止模塊就是時間內聚模例如,初始化模塊和終止模塊就是時間內聚模塊。塊。時間內聚(時間內聚(Classical CohesionClassical Cohesion)軟件工程軟件工程3434n這種模塊把幾種相關的功能組合在一起,每次這種模塊把幾種相關的功能組合在一起,每次被調用時,由傳送給模塊的判定參數來確定該被調用時,由傳送給模塊的判定參數來確定該模塊應執行哪一種功能。模塊應執行哪一種功能。寫一個記錄寫一個記錄讀一個記錄讀一個記錄判定判定調用模塊調用模塊被調用被調用模塊
28、模塊邏輯內聚(邏輯內聚(Logical CohesionLogical Cohesion)軟件工程軟件工程3535n當幾個模塊內正好有一段代碼是相同的,將它們當幾個模塊內正好有一段代碼是相同的,將它們抽取出來形成單獨的模塊,即巧合內聚模塊。這抽取出來形成單獨的模塊,即巧合內聚模塊。這種模塊沒有獨立功能,各部分之間沒有聯系,或種模塊沒有獨立功能,各部分之間沒有聯系,或聯系很松散。聯系很松散。巧合內聚(巧合內聚(Coincidental CohesionCoincidental Cohesion)ABCM STORE REC() TO N READ MASTER FILE ADD 1 TO x 軟
29、件工程軟件工程3636n結構化設計(結構化設計(structured design,SD)是一)是一種面向數據流的設計方法,它可以與種面向數據流的設計方法,它可以與SA方法方法銜接。銜接。n結構化設計是基于模塊化、自頂向下細化、結構化設計是基于模塊化、自頂向下細化、結構化程序設計等程序設計技術基礎上發展結構化程序設計等程序設計技術基礎上發展起來的。基本思想是將系統設計成由相對獨起來的。基本思想是將系統設計成由相對獨立、功能單一的模塊組成的結構。立、功能單一的模塊組成的結構。n該方法實施的要點是:該方法實施的要點是:1) 首先首先研究研究、分析和審查數據流圖分析和審查數據流圖。 從軟件從軟件3.
30、3 3.3 結構化設計方法結構化設計方法軟件工程軟件工程3737的需求規格說明中弄清數據流加工的過程,的需求規格說明中弄清數據流加工的過程,對于發現的問題及時解決。對于發現的問題及時解決。2) 然后然后根據數據流圖確定數據處理的類型根據數據流圖確定數據處理的類型。典型的類型有兩種:變換型和事務型。針典型的類型有兩種:變換型和事務型。針對兩種對兩種不同類型分別進行分析處理。不同類型分別進行分析處理。3) 由數據流圖推導由數據流圖推導出系統的初始結構圖出系統的初始結構圖。4) 利用一些啟發式原則利用一些啟發式原則改進系統初始結構圖改進系統初始結構圖,直到得到符合要求的結構圖為止。直到得到符合要求的
31、結構圖為止。5) 修改和補充數據字典。修改和補充數據字典。6) 制定制定測試計劃。測試計劃。軟件工程軟件工程3838在系統結構圖中的模塊在系統結構圖中的模塊n傳入模塊傳入模塊 從下屬模塊取得數據,經過某些從下屬模塊取得數據,經過某些處理處理, 再將其傳送給上級模塊。它傳送的數據再將其傳送給上級模塊。它傳送的數據流叫做邏輯輸入數據流。流叫做邏輯輸入數據流。n傳出模塊傳出模塊 從上級模塊獲得數據,進行某些從上級模塊獲得數據,進行某些處理,再將其傳送給下屬模塊。它傳送的數處理,再將其傳送給下屬模塊。它傳送的數據流叫做邏輯輸出數據流。據流叫做邏輯輸出數據流。n變換模塊變換模塊 它從上級模塊取得數據,進
32、行特它從上級模塊取得數據,進行特定的處理,轉換成其它形式定的處理,轉換成其它形式, 再傳送回上級模再傳送回上級模塊。塊。軟件工程軟件工程3939n協調模塊協調模塊 對所有下屬模塊進行協調和管理對所有下屬模塊進行協調和管理的模塊。的模塊。傳入模塊傳入模塊AA傳出模塊傳出模塊DD變換模塊變換模塊AB協調模塊協調模塊AABB軟件工程軟件工程4040系統結構圖的基本符號系統結構圖的基本符號模塊模塊調用調用數據數據控制信息控制信息轉接符號轉接符號系統結構圖的基本符系統結構圖的基本符號號選擇(判斷)選擇(判斷)重復重復軟件工程軟件工程4141模塊調用示例模塊調用示例(a) 調用調用(b) 判斷調用判斷調用
33、(c) 循環調用循環調用軟件工程軟件工程4242n數據數據:模塊之間傳送的數據用:模塊之間傳送的數據用帶空心圓的箭頭帶空心圓的箭頭表示,并在旁邊標上數據名。表示,并在旁邊標上數據名。n控制信息控制信息:控制信息與數據的主要區別是前者:控制信息與數據的主要區別是前者只反映數據的某種狀態。只反映數據的某種狀態。模塊間的數據傳遞模塊間的數據傳遞AB(a)xyz查職工簡歷查職工簡歷讀人事文件讀人事文件(b)職工號職工號簡歷數據簡歷數據無此職工無此職工軟件工程軟件工程4343數據處理的類型數據處理的類型 n在需求分析階段,面向數據流的在需求分析階段,面向數據流的SA方法產生數方法產生數據流圖據流圖DFD
34、。n在軟件設計階段,面向數據流的在軟件設計階段,面向數據流的SD方法將方法將DFD轉換成程序結構圖。轉換成程序結構圖。n數據處理即為在數據處理即為在DFD中從系統的輸入數據流到中從系統的輸入數據流到系統的輸出數據流所經歷的一連串連續變換。系統的輸出數據流所經歷的一連串連續變換。n數據處理的類型分為變換流型與事務流型。數據處理的類型分為變換流型與事務流型。 軟件工程軟件工程4444變換流變換流 n數據沿著數據沿著輸入通路輸入通路進入系統,經過一系列數進入系統,經過一系列數據變換,將數據的外部形式轉換成對應的內據變換,將數據的外部形式轉換成對應的內部表示,然后通過部表示,然后通過變換中心變換中心(
35、也稱主加工)(也稱主加工)處理,再沿著處理,再沿著輸出通路輸出通路轉換成外部形式離開轉換成外部形式離開系統。具有這種特性的數據流稱為變換流。系統。具有這種特性的數據流稱為變換流。n變換流型變換流型DFD可以分成:可以分成: 輸入變換中心(主加工)輸出輸入變換中心(主加工)輸出 輸入數據輸入數據C變換數據變換數據CD輸出數據輸出數據D軟件工程軟件工程4545n相應于取得數據、變換數據、給出數據,變相應于取得數據、變換數據、給出數據,變換流型系統結構圖由輸入、變換中心和輸出換流型系統結構圖由輸入、變換中心和輸出等三部分組成。等三部分組成。軟件工程軟件工程4646事務事務流流 n數據沿著數據沿著輸入
36、通路輸入通路到達一個到達一個事務中心事務中心,事務,事務中心根據輸入數據(即事務)的類型在若干中心根據輸入數據(即事務)的類型在若干個動作(稱為活動流)中選擇一個來執行,個動作(稱為活動流)中選擇一個來執行,這種數據流也稱為事務流。這種數據流也稱為事務流。n事務流有明顯的事務中心,各活動流以事務事務流有明顯的事務中心,各活動流以事務中心為起點呈輻射狀流出。中心為起點呈輻射狀流出。n在事務流型系統結構圖中,事務中心模塊按在事務流型系統結構圖中,事務中心模塊按所接受的事務的類型,選擇某一事務(活動所接受的事務的類型,選擇某一事務(活動流)處理模塊執行。各事務處理模塊并列。流)處理模塊執行。各事務處
37、理模塊并列。軟件工程軟件工程4747事務中心事務中心分派模塊分派模塊輸出結果輸出結果事務事務1輸入作業信息輸入作業信息事務事務2事務事務3事務事務4作業信息作業信息作業作業信息信息結果結果結果結果操作操作1操作操作2操作操作3操作操作4操作操作5操作操作6細節細節1細節細節2細節細節3細節細節4細節細節5細節細節6軟件工程軟件工程4848變換分析變換分析 n變換分析從變換流型的數據流圖導出系統結變換分析從變換流型的數據流圖導出系統結構圖構圖.n步驟步驟1. 重畫數據流圖;重畫數據流圖;2. 區分有效(邏輯)輸入、有效(邏輯)輸區分有效(邏輯)輸入、有效(邏輯)輸出和變換中心部分;出和變換中心部
38、分;3. 進行一級分解,設計模塊結構的頂層和第進行一級分解,設計模塊結構的頂層和第一層模塊;一層模塊;4. 進行二級分解,設計輸入、輸出和中心變進行二級分解,設計輸入、輸出和中心變換換部分的中、下層模塊。部分的中、下層模塊。軟件工程軟件工程49491. 1. 重畫數據流圖(平鋪)重畫數據流圖(平鋪)n為了建立系統結構,將數據流圖平鋪開來,為了建立系統結構,將數據流圖平鋪開來,物理輸入畫在左側,物理輸出畫在右側。物理輸入畫在左側,物理輸出畫在右側。n如果一個外部實體既是物理輸入又是物理輸如果一個外部實體既是物理輸入又是物理輸出,則兩側都要畫出它。出,則兩側都要畫出它。ABBCEGGHDFCDEA
39、BCDEFGH物理輸入物理輸入物理輸出物理輸出軟件工程軟件工程50502. 2. 確定邏輯輸入、邏輯輸出確定邏輯輸入、邏輯輸出和變換中心部分和變換中心部分n變換中心是程序的核心功能,它的輸入是邏變換中心是程序的核心功能,它的輸入是邏輯輸入,它的輸出為邏輯輸出。輯輸入,它的輸出為邏輯輸出。變換中心變換中心ABBCEGGHDFCDEABCDEFGH物理輸入物理輸入物理輸出物理輸出邏輯輸入邏輯輸入邏輯輸出邏輯輸出軟件工程軟件工程51513. 3. 第一級分解:第一級分解:設計模塊結構的頂層和第一層設計模塊結構的頂層和第一層n頂層模塊:其功能就是整個系統的功能;頂層模塊:其功能就是整個系統的功能;n輸
40、入控制模塊:接收所有的輸入數據;輸入控制模塊:接收所有的輸入數據;n變換控制模塊:實現輸入到輸出的變換;變換控制模塊:實現輸入到輸出的變換;n輸出控制模塊:產生所有的輸出數據。輸出控制模塊:產生所有的輸出數據。頂層模塊頂層模塊變換控制變換控制輸出控制輸出控制輸入控制輸入控制軟件工程軟件工程5252變換中心變換中心ABBCEGGHDFCDEABCDEFGH物理輸入物理輸入物理輸出物理輸出邏輯輸入邏輯輸入邏輯輸出邏輯輸出主模塊主模塊C D、E輸入輸入C輸出輸出D輸出輸出ECCD,EDE邏輯輸入邏輯輸入變換中心變換中心邏輯輸出邏輯輸出軟件工程軟件工程53534. 4. 第二級分解:設計中、下層模塊第
41、二級分解:設計中、下層模塊輸入控制模塊的分解:從變換中心的邊界開輸入控制模塊的分解:從變換中心的邊界開始,沿著各輸入通路,把輸入通路上的每個始,沿著各輸入通路,把輸入通路上的每個加工映射成輸入控制模塊的一個低層模塊。加工映射成輸入控制模塊的一個低層模塊。輸出控制模塊的分解:從變換中心的邊界開輸出控制模塊的分解:從變換中心的邊界開始,沿著各輸出通路,把輸出通路上的每個始,沿著各輸出通路,把輸出通路上的每個加工映射成輸出控制模塊的一個低層模塊。加工映射成輸出控制模塊的一個低層模塊。變換控制模塊的分解:變換控制模塊通常沒變換控制模塊的分解:變換控制模塊通常沒有通用的分解方法,應根據數據流圖中變換有通
42、用的分解方法,應根據數據流圖中變換部分的實際情況進行設計。部分的實際情況進行設計。軟件工程軟件工程5454輸出輸出HG HABBCEGGHDFCD,EABCDEFGH物理輸入物理輸入物理輸出物理輸出主模塊主模塊CD,E輸入輸入C輸出輸出D輸出輸出ECCD,EDE輸入輸入BBBCBC輸入輸入AABABA輸出輸出GE G輸出輸出FDFDFFEGGGHH軟件工程軟件工程5555輸出輸出HG HABBCEGGHDFCD,EABCDEFGH物理輸入物理輸入物理輸出物理輸出主模塊主模塊CD,E輸入輸入C輸出輸出D輸出輸出ECCD,EDE輸入輸入BBBCBC輸入輸入AABABA輸出輸出GE G輸出輸出FDF
43、DFFEGGGHH軟件工程軟件工程5656變換分析練習-DFD練習1軟件工程軟件工程5757n畫出初始結構圖軟件工程軟件工程58581格式格式檢查檢查3產生產生收據收據2計算計算匯費匯費4記賬記賬匯款單匯款單合格的合格的匯款單匯款單處理后的處理后的匯款單匯款單收據收據明細賬明細賬變換中變換中心心輸出輸出輸入輸入業務業務數據數據變換分析練習2-DFD軟件工程軟件工程5959變換分析練習1-轉換后的SC匯款處理系統匯款處理系統取得合格取得合格匯款單匯款單計算匯費計算匯費記賬記賬輸出處理后輸出處理后的匯款單的匯款單輸入輸入匯款單匯款單格式檢查格式檢查產生收據產生收據打印收據打印收據合格的合格的匯款單
44、匯款單處理后的處理后的匯款單匯款單合格的合格的匯款單匯款單業務數據業務數據處理后的處理后的匯款單匯款單匯款單匯款單合格的合格的匯款單匯款單匯款單匯款單處理后的處理后的匯款單匯款單收據收據收據收據業務數據業務數據匯款處理系統匯款處理系統取得合格取得合格匯款單匯款單計算匯費計算匯費記賬記賬輸出處理后輸出處理后的匯款單的匯款單輸入輸入匯款單匯款單格式檢查格式檢查產生收據產生收據打印收據打印收據合格的合格的匯款單匯款單處理后的處理后的匯款單匯款單合格的合格的匯款單匯款單業務數據業務數據處理后的處理后的匯款單匯款單匯款單匯款單合格的合格的匯款單匯款單匯款單匯款單處理后的處理后的匯款單匯款單收據收據收據收
45、據業務數據業務數據軟件工程軟件工程6060事務分析事務分析n事務分析是從事務流型數據流圖導出系統結事務分析是從事務流型數據流圖導出系統結構圖。構圖。n步驟:步驟:1. 確定事務中心和每條活動流的流特性確定事務中心和每條活動流的流特性 2. 將事務流型數據流圖映射成高層的系統結將事務流型數據流圖映射成高層的系統結構構3. 進一步分解進一步分解 軟件工程軟件工程61611. 1. 確定事務中心和各活動流的流特性確定事務中心和各活動流的流特性 n右圖為事務流型右圖為事務流型DFD的一般形式。的一般形式。n事務中心事務中心(圖中的(圖中的T):):位于活動流的起點,位于活動流的起點,活動流從該點成輻射
46、狀流出。活動流從該點成輻射狀流出。n活動流:活動流:可為變換流可為變換流可為事務流可為事務流n事務流型的事務流型的DFD的組成:的組成:輸入流事務中心若干條活動流輸入流事務中心若干條活動流 T T輸入流輸入流事務流事務流活動流活動流軟件工程軟件工程6262n右圖為事務流型右圖為事務流型DFD的高層結構形式。的高層結構形式。n頂層模塊:頂層模塊:其功能就是整個系統的功能。其功能就是整個系統的功能。n接收模塊:接收模塊:接收輸入數據。接收輸入數據。n分派模塊:分派模塊:調度模塊,調度模塊,控制下層的所有活動模塊。控制下層的所有活動模塊。n事務模塊:事務模塊:對應活動流,對應活動流,是該活動流映射成
47、的。是該活動流映射成的。 2. 2. 將事務流型將事務流型DFDDFD映射成映射成高層系統結構高層系統結構頂層模塊頂層模塊分派分派接收接收事務事務1 1事務事務2事務事務n軟件工程軟件工程63633. 3. 進一步分解進一步分解n接收模塊:接收模塊:類同于變換分析中輸入控制模塊的類同于變換分析中輸入控制模塊的分解。分解。n活動流模塊:活動流模塊:根據其流特性(變換流或事務流)根據其流特性(變換流或事務流)進一步采用變換分析或事務分析進行分解。進一步采用變換分析或事務分析進行分解。 軟件工程軟件工程6464事務分析舉例事務分析舉例-DFD-DFD要要求求類類型型處處理理圖圖書書管管理理要要求求無
48、無效效輸輸入入1 1. .1 1新新書書入入庫庫1 1. .2 2還還入入庫庫單單罰罰款款單單1 1. .5 5注注銷銷圖圖書書1 1. .3 3還還書書1 1. .4 4目目錄錄文文件件借借書書單單書書單單注注銷銷單單借借書書借借書書文文件件罰罰款款單單事事務務分分析析舉舉例例事事務務分分析析舉舉例例- - - -D DF FD DD DF FD D事事務務中中心心要要求求類類型型處處理理圖圖書書管管理理要要求求無無效效輸輸入入1 1. .1 1新新書書入入庫庫1 1. .2 2還還入入庫庫單單罰罰款款單單1 1. .5 5注注銷銷圖圖書書1 1. .3 3還還書書1 1. .4 4目目錄錄
49、文文件件借借書書單單書書單單注注銷銷單單借借書書借借書書文文件件罰罰款款單單事事務務分分析析舉舉例例事事務務分分析析舉舉例例- - - -D DF FD DD DF FD D事事務務中中心心軟件工程軟件工程6565事務分析舉例事務分析舉例- -轉換后的轉換后的SCSC圖書處理系統圖書處理系統取得圖書取得圖書處理要求處理要求修改目修改目錄文件錄文件操作層操作層細節層細節層新書入庫新書入庫注銷圖書注銷圖書借書借書還書還書打印打印罰款單罰款單修改借修改借書文件書文件圖書管圖書管理要求理要求入庫單入庫單借書單借書單還書單還書單注銷單注銷單圖書處理系統圖書處理系統取得圖書取得圖書處理要求處理要求修改目修
50、改目錄文件錄文件操作層操作層細節層細節層新書入庫新書入庫注銷圖書注銷圖書借書借書還書還書打印打印罰款單罰款單修改借修改借書文件書文件圖書管圖書管理要求理要求入庫單入庫單借書單借書單還書單還書單注銷單注銷單軟件工程軟件工程6666練習1n畫出初始結構圖軟件工程軟件工程6767軟件工程軟件工程6868練習2n畫出初始結構圖(變換型與事務型混合)軟件工程軟件工程6969軟件工程軟件工程7070模塊設計的原則模塊設計的原則n在選擇模塊設計的次序時,必須對一個模塊在選擇模塊設計的次序時,必須對一個模塊的全部直接下屬模塊都設計完成之后,才能的全部直接下屬模塊都設計完成之后,才能轉向另一個模塊的下層模塊的設
51、計。轉向另一個模塊的下層模塊的設計。n使用使用“黑盒黑盒”技術技術: 在設計當前模塊時,在設計當前模塊時,先把先把該模塊的所有下層模塊定義成該模塊的所有下層模塊定義成“黑盒黑盒”,在,在設計中利用它們時暫不考慮其內部結構和實設計中利用它們時暫不考慮其內部結構和實現。在這一步定義好的現。在這一步定義好的“黑盒黑盒”,在下一步,在下一步就可以對它們進行設計和加工。最后,全部就可以對它們進行設計和加工。最后,全部“黑盒黑盒”的內容和結構應完全被確定。的內容和結構應完全被確定。軟件工程軟件工程7171n在設計下層模塊時,應考慮模塊的在設計下層模塊時,應考慮模塊的耦合耦合和和內內聚聚問題,以提高初始結構
52、圖質量。問題,以提高初始結構圖質量。n模塊劃分時,一個模塊的直接下屬模塊一般模塊劃分時,一個模塊的直接下屬模塊一般在在 5 個左右。如果直接下屬模塊超過個左右。如果直接下屬模塊超過 10 個,個,可設立中間層次。可設立中間層次。n如果出現以下情況,就停止模塊分解:如果出現以下情況,就停止模塊分解: 模塊不能再細分為明顯的子任務;模塊不能再細分為明顯的子任務; 分解成用戶提供的模塊或庫函數;分解成用戶提供的模塊或庫函數; 模塊接口是輸入輸出設備傳送的信息;模塊接口是輸入輸出設備傳送的信息; 模塊不宜再分解得過小。模塊不宜再分解得過小。軟件工程軟件工程7272n變換分析是軟件系統結構設計的主要方法
53、。變換分析是軟件系統結構設計的主要方法。n一般,一個大型的軟件系統是變換型結構和一般,一個大型的軟件系統是變換型結構和事務型結構的混合結構。所以,我們通常利事務型結構的混合結構。所以,我們通常利用以變換分析為主,事務分析為輔的方式進用以變換分析為主,事務分析為輔的方式進行軟件結構設計。行軟件結構設計。軟件工程軟件工程7373abdpqrsbac1d分派模塊分派模塊事務控制事務控制qrs接受通路接受通路p軟件工程軟件工程74741.模塊功能完善化模塊功能完善化 一個完整的模塊應當有以下幾部分:一個完整的模塊應當有以下幾部分: 執行規定的功能的部分;執行規定的功能的部分; 出錯處理的部分。當模塊不
54、能完成規定的出錯處理的部分。當模塊不能完成規定的功能時,必須回送出錯標志,出現例外情功能時,必須回送出錯標志,出現例外情況的原因。況的原因。 如果需要返回數據給它的調用者,在完成如果需要返回數據給它的調用者,在完成數據加工或結束時,數據加工或結束時, 應當給它的調用者返應當給它的調用者返回一個狀態碼。回一個狀態碼。改進系統結構的啟發式原則改進系統結構的啟發式原則軟件工程軟件工程75752.消除重復功能,改善軟件結構消除重復功能,改善軟件結構 完全相似完全相似:在結構上完全相似,可能只是:在結構上完全相似,可能只是在數據類型上不一致。此時可以采取完全在數據類型上不一致。此時可以采取完全合并的方法
55、。合并的方法。 局部相似局部相似:找出其相同部分,分離出去,:找出其相同部分,分離出去,重新定義成一個獨立的下一層模塊。還可重新定義成一個獨立的下一層模塊。還可以與它的上級模塊合并。以與它的上級模塊合并。軟件工程軟件工程7676R1R2XYR1R2XYR1+R2XYX+R1Y+R2R1Y+R2X不可取不可取開關太多開關太多軟件工程軟件工程77773.模塊的作用范圍應在控制范圍之內模塊的作用范圍應在控制范圍之內 模塊的模塊的控制范圍控制范圍包括它本身及其所有的從包括它本身及其所有的從屬模塊。屬模塊。 模塊的模塊的作用范圍作用范圍是指模塊內一個判定的作是指模塊內一個判定的作用范圍,凡是受這個判定影
56、響的所有模塊用范圍,凡是受這個判定影響的所有模塊都屬于這個判定的作用范圍。都屬于這個判定的作用范圍。 如果一個判定的作用范圍包含在這個判定如果一個判定的作用范圍包含在這個判定所在模塊的控制范圍之內,則這種結構是所在模塊的控制范圍之內,則這種結構是簡單的,否則,它的結構是不簡單的。簡單的,否則,它的結構是不簡單的。軟件工程軟件工程7878軟件工程軟件工程79794.盡可能減少高扇出結構盡可能減少高扇出結構如果一個模塊的扇出數過大,就意味著該模如果一個模塊的扇出數過大,就意味著該模塊過分復雜,需要協調和控制過多的下屬模塊過分復雜,需要協調和控制過多的下屬模塊。應當適當增加中間層次的控制模塊。塊。應
57、當適當增加中間層次的控制模塊。PPP1P2軟件工程軟件工程80805.避免或減少使用病態聯接避免或減少使用病態聯接a. 直接病態聯接直接病態聯接b. 公共數據域病態聯接公共數據域病態聯接c.通信通信模塊病態聯接模塊病態聯接ABcommonABTABLEITABABxxxx(a) 直接病態聯接直接病態聯接(b) 公共數據域公共數據域 病態聯接病態聯接(c) 通信模塊通信模塊 病態聯接病態聯接軟件工程軟件工程81816.模塊的大小要適中。模塊的大小要適中。7.設計功能可預測的模塊設計功能可預測的模塊 一個功能可預測的模塊一個功能可預測的模塊, 不論內部處理細節如不論內部處理細節如何,但對相同的輸入
58、數據,總能產生同樣的何,但對相同的輸入數據,總能產生同樣的結果。但是,如果模塊內部蘊藏有一些特殊結果。但是,如果模塊內部蘊藏有一些特殊的鮮為人知的功能時,這個模塊就可能是不的鮮為人知的功能時,這個模塊就可能是不可預測的。對于這種模塊,如果調用者不小可預測的。對于這種模塊,如果調用者不小心使用,其結果將不可預測。心使用,其結果將不可預測。軟件工程軟件工程8282保存當前標記保存當前標記恢復恢復“以前以前”標標記記標記?標記?標記?標記?功能不可預測的模塊功能不可預測的模塊軟件工程軟件工程8383n在過程設計階段,要決定各個模塊的實現算法,在過程設計階段,要決定各個模塊的實現算法,并精確地表達這些
59、算法。并精確地表達這些算法。n對每個模塊規定的功能以及算法的設計,給出對每個模塊規定的功能以及算法的設計,給出適當的算法描述:適當的算法描述:v圖形工具:程序流程圖,圖形工具:程序流程圖, N-S ,PAD, HIPOv表格工具:判定表表格工具:判定表v語言工具:語言工具: PDL , HIPO3.5 3.5 過程設計(詳細設計)過程設計(詳細設計)軟件工程軟件工程8484程序流程圖程序流程圖ABABPA1P=1A2=2An=nTSPFFSPT順序型順序型選擇型選擇型先判斷先判斷重復型重復型后判斷后判斷重復型重復型多分支選擇型多分支選擇型軟件工程軟件工程8585gabfx1x4x5x6x2x3
60、入口入口hijcde出口出口流程圖示例流程圖示例FFFFFTTTTTswitchdo-whiledo-whilewhile-do=1=2=3軟件工程軟件工程8686N-S N-S 圖圖ABPFTABPFTAwhile-do PAdo-while PAP= 1 = 2 = nA1 A2 An順序型順序型選擇型選擇型(1)選擇型選擇型(2)先判斷重復型先判斷重復型后判斷重復型后判斷重復型多分支選擇型多分支選擇型軟件工程軟件工程8787N-SN-S圖(盒圖)示例圖(盒圖)示例do-while x6abx1TTFFx2x4f=1=2=3gido-while x5hdec while-do x6j軟件工
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 購買單間小屋合同協議
- 認購協議幾天內簽訂合同
- 試用期保密協議合同
- 詹姆斯合同和三方協議
- 購買琉璃瓦合同協議
- 購房合同和房產交易協議
- 設備經銷商合同協議
- 2025年跨文化交際與語言學理論考試試題及答案
- 2025年景觀設計師職業資格考試試題及答案
- 武漢舊機車交易合同協議
- 合肥高新美城物業有限公司招聘筆試題庫2025
- 《詞匯構建法:課件中的詞根詞綴解析》
- 2025年山東省濟南市歷城區中考一模物理試題(原卷版+解析版)
- Unit 7 第1課時 Welcome to the unit【基礎深耕】七年級英語下冊高效課堂(譯林版2024)
- 2025年第33批 歐盟REACH SVHC高度關注物質清單247項
- 2024年江蘇省南京市中考物理試卷真題(含答案)
- K30自動生成及計算試驗記錄
- 綠水青山就是金山銀山PPT
- 2022年同等學力英語真題
- GB/T 12759-1991雙圓弧圓柱齒輪基本齒廓
- 《法拉第電磁感應定律》設計 省賽一等獎
評論
0/150
提交評論