軟體構造課程 ADT

2021-09-24 16:46:12 字數 833 閱讀 5922

abstract data types可簡單理解為乙個封裝的型別,它不需要提供各種詳細的資訊,但是可以有強大的功能。它具有一定的防禦性,只對外提供一些操作,但是內部可以是各種複雜的函式。

對於乙個抽象類操作它的型別主要有4種:

t非此型別的資料 t則為該資料型別。

creators t* -> t。 比如對於int這個資料型別,int的乙個函式由多個string型別生成了乙個int型別。

producers t+,t* -> t。比如string.concat方法,將string和string型別結合返回乙個新的string型別。

observer t+,t* -> t。比如list.size(),由list返回了乙個新的資料型別int

mutator t+,t* -> void|t|t。需要對資料型別進行改變。比如list.add。immutable型別的變數沒有mutator。

af : r -> a

af對抽象資料型別進行解釋。簡單的理解就是這個adt是怎麼呼叫其中變數完成一定的功能的。

比如af(numerator,denominator) = numerator/denominator。(af不一定是一一對映)

ri :r -> boolean

ri= true當它滿足條件時,簡單的理解就是對其中變數的一些限制(ri是一一對映)

adt中加入checkrep函式對ri進行檢測,比如assert 除數不等於0。value不能為null等

常見的方式有

用immutable type

返回mutable type的轉殖,不給它改變的計畫,進行拷貝式防禦

對變數用private final 進行修飾。

軟體構造課程

課程目標 在高階語言程式設計的基礎上,認識軟體構造的質量標準與目標,學習軟體 構造的基本過程,從而具備面向質量目標的複雜軟體構造方法與能力 深入學習抽象資料型別 adt 與物件導向程式設計 oop 初步掌握面向關鍵質量目標 可理解性 可維護性 可復用性 健壯性 時 空效能 的軟體構造基本技術 了解軟...

軟體構造 課程提綱4

第六章 可維護性的常見度量指標 圈複雜度 行數 運算子 運算元的數目 可維護性指數 mi 繼承深度 類耦合 單元測試覆蓋度 聚合度與耦合度 1 耦合度 多個模組間的相互聯絡 2 聚合度 模組內部語句或語句段之間的聯絡 solid 1 s 單一責任原則,即引起類變化的原因只有乙個 2 o 開放封閉原則...

軟體構造課程心得(5)

最近做了lab3,對介面和繼承又有了種種新的認知,在這裡想和大家分享。首先是介面可以接收該介面的各種子類,由此來完成多個不同類的統一接收,如圖 這是乙個state介面 而下圖 以createdstate為例 是這個state介面的各種子類,createdstate,givedstate,blocke...