文章目錄
- 1.軟體設計的目标和過程
- 2.軟體設計原則
- 3.面向資料流的設計方法
- 4.面向對象設計方法
- 5.程式流程圖
- 6.程式複雜度的度量
- PKU慕課測試
1.軟體設計的目标和過程

2.軟體設計原則
(1)子產品化
(2)抽象
(3)逐漸求精
(4)資訊隐藏和局部化
(5)子產品獨立 目标:高内聚,低耦合
1.耦合:軟體結構内不同子產品之間互連程度的度量
2.内聚:一個子產品内各個元素彼此結合的緊密程度
3.面向資料流的設計方法
4.面向對象設計方法
(1)面向對象如何實作子產品獨立性,其耦合和内聚的含義是什麼?
答:對象=資料+這些資料的操作(方法),對象是以資料為中心,沒有無關的操作,是以對象内部各種元素高内聚;由于完成對象所需要的元素(資料和方法)基本上都被封裝在對象内部,它與外界的聯系自然就比較少。是以,對象之間的耦合通常比較松。
總之,面向對象使用對象、類、繼承和消息的方法,既使用類和繼承等機制,而且對象之間僅能通過傳遞消息實作彼此通信來實作子產品的獨立性。
(2)面向對象和面向過程軟體工程有哪些差別?
1)面向過程就是分析出解決問題所需要的步驟,然後用函數把這些步驟一步一步實作,使用的時候一個一個依次調用就可以了;
面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描叙某個事物在整個解決問題的步驟中的行為。
2)面向過程是把一件事一項工程分解成為一個個小的功能,用一個個函數來實作;面向對象是把事情看成是一個個小的對象組成的,這些對象之間的互相關系,構成了整個項目.在面向對象的思想中,萬物皆對象。而"類",就是對象的抽象。
(3)簡述對象、類、消息、方法的基本概念。
1)對象是人們要進行研究的任何事物,從最簡單的整數到複雜的飛機等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件。
2)類是具有相同或相似性質的對象的抽象。對象的抽象是類,類的具體化就是對象,也可以說類的執行個體是對象。
類具有屬性,它是對象的狀态的抽象,用資料結構來描述類的屬性。
類具有操作,它是對象的行為的抽象,用操作名和實作該操作的方法來描述。
3)對象之間進行通信的結構叫做消息。在對象的操作中,當一個消息發送給某個對象時,消息包含接收對象去執行某種操作的資訊。發送一條消息至少要包括說明接受消息的對象名、發送給該對象的消息名(即對象名、方法名)。一般還要對參數加以說明,參數可以是認識該消息的對象所知道的變量名,或者是所有對象都知道的全局變量名。
4)類中操作的實作過程叫做方法,一個方法有方法名、參數、方法體。
(4)簡述面向對象分析設計的三個模型。
答:三個模型:對象模型、動态模型、功能模型
(1)對象模型描述系統的靜态結構,包括類和對象,它們的屬性和操作,以及它們之間的關系。構造對象模型的目的在于找出與應用程式密切相關的概念。對象模型用包含對象及對象的關系圖表示。
(2)動态模型着重于系統的控制邏輯,考察在任何時候對象及其關系的改變,描述這些涉及時序和改變的狀态。動态模型包括狀态圖和事件跟蹤圖。狀态圖是一個狀态和事件的網絡,側重于描述每一類對象的動态行為。事件跟蹤圖則側重于說明系統執行過程中的一個特點“場景”,也叫做腳本(scenarios),是完成系統某個功能的一個事件序列。腳本通常起始于一個系統外部的輸入事件,結束于一個系統外部的輸出事件。
(3)功能模型着重于系統内部資料的傳送和處理。功能模型表明,通過計算,從輸出資料能得到什麼樣的輸出資料,但不考慮參加計算的資料按什麼時序執行。功能模型由多個資料流圖組成,它們指明從外部輸出,通過操作和内部存儲,直到外部輸出的整個資料流情況。
功能模型還包括了對象模型内部資料間的限制。功能模型中的資料流圖往往形成一個層次結構,一個資料流圖的過程可以由下一層的資料流圖作進一步的說明。