本次實驗訓練抽象資料型別(adt)的設計、規約、測試,並使用物件導向
程式設計(oop)技術實現 adt。具體來說:
⚫ 針對給定的應用問題,從問題描述中識別所需的 adt;
⚫ 設計 adt 規約(pre-condition、post-condition)並評估規約的質量;
⚫ 根據 adt 的規約設計測試用例;
⚫ adt 的泛型化;
⚫ 根據規約設計 adt 的多種不同的實現;針對每種實現,設計其表示
(representation)、表示不變性(rep invariant)、抽象過程(abstraction function);
⚫ 使用 oop 實現 adt,並判定表示不變性是否違反、各實現是否存在表示洩
露(rep exposure);
⚫ 測試 adt 的實現並評估測試的覆蓋度;
⚫ 使用 adt 及其實現,為應用問題開發程式;
⚫ 在測試**中,能夠寫出 testing strategy 並據此設計測試用例。
1.在面向adt的程式設計和直接面向應用場景程式設計時,adt使用方法更為普遍
2.使用泛型程式設計使**應用場合更廣,**復用性更強
3.經過p3要求從0開始設計adt並使用它們完成乙個具體應用,經過p1的編寫,較為適應adt的設計。
4.以後編寫程式時會養成習慣為adt撰寫specification, invariants, ri, af,並且會時刻注意adt是否有rep exposure,保證**的安全性。
軟體構造 Lab2總結
af 抽象函式,代表值到其對應的抽象值的對映。ri 表示不變數,代表某個值必須滿足的條件。safety from rep expose 安全保證,描述adt如何防止表示暴露。checkrep 檢查表示不變數是否始終被滿足。可變型別 提供修改物件值的方法,存在表示暴露的風險,可採用防禦式複製保護可變型...
軟體構造 實驗回顧 Lab2
第二部分 re implement the social network in lab1 第三部分 playing chess 本次實驗訓練抽象資料型別 adt 的設計 規約測試,並使用物件導向 程式設計 oop 技術實現 adt。具體來說 針對給定的 應用問題,從描述中識別所需adt 設計 adt...
軟體構造Lab3實驗總結
本次實驗是軟體構造課程當中工作量最大,且最為複雜的乙個。主要工作是實現乙個多軌道系統,在這個系統的基礎上完成三個應用。track game atom structure social network circle 三種應用都具有一定的多軌道結構。track game 中的軌道是跑道,atom str...