2019軟件工程-我的項目做業

2020軟件工程-結對項目做業

1. 項目簡介

github連接 git

項目 內容
這個做業屬於哪一個課程 https://edu.cnblogs.com/campus/buaa/BUAA_SE_2020_LJ
這個做業的要求在哪裏 https://edu.cnblogs.com/campus/buaa/BUAA_SE_2020_LJ/homework/10466)
我在這個課程的目標是 提高軟件開發能力
這個做業在哪一個具體方面幫助我實現目標 提高了我的編程能力, 測試和提高代碼性能的能力

2. PSP時間花費

PSP2.1 Personal SoftWare Process Stages 預計耗時 實際耗時
Planning 計劃 120 60
Estimte 估計這個任務須要多少時間 1800 1700
Development 開發 1100 1000
Analysis 需求分析 0 0
Desing Spaec 生成設計文檔 100 40
Design Review 設計複審 100 10
Coding Standard 代碼規範 0 0
Design 具體設計 60 40
Coding 具體編碼 1100 180
Code Review 代碼複審 60 60
Test 測試 180 180
Reporting 報告 100 120
Test Report 測試報告 0 0
Size Measurement 計算工做量 5 0
Postmortem & Process Improvement 過後總結 60 50
- 合計 1800 1700

3. 接口設計

通過查閱資料和學習, 我瞭解到在接口設計中有經常使用的一些原則, 本次做業的設計中, 咱們用到了這些原則。github

  • 單一職責原則編程

    Single Responsibility Principle: There shuld never be more than one reason for class to change函數

    單一職責原則要求一個接口, 一個功能, 若是在private 方法和public接口中, 改動過多, 那麼容易引發錯誤。 在結對編程的設計中, 計算模塊裏咱們儘可能保證一個函數只作一個事情, 好比Line Circle Point分出三個類, 每一個求交點的函數只處理一種類型等。性能

  • 里氏替換原則學習

    Liskov Substitution Principle: Functions that use pointers or references to base classed must be able to use objecsts of derived classes without knowing it測試

    這一法則是多態的體現, 全部父指針的使用點均可以用子指針, 這要求了子類只擴展父類, 可是不能夠用在覆寫父類函數的時候讓函數的應用範圍減小。 在最初的版本中, 咱們採用了Line Circle繼承父類的方式實現, 後來發現這種繼承影響性能, 就放棄了繼承。編碼

  • 依賴倒置原則設計

    依賴倒轉原則是TDD測試驅動開發的體現, 要求高層模塊不依賴特定的底層模塊, 而是依賴其抽象, 這要求編程者提早想好接口。指針

  • 接口隔離原則

    clients should not be forced to depend upon interfacess that they don't use

    保證接口單一, 不要過於臃腫, 在計算模塊和UI模塊的對接時, 咱們儘可能細化接口, 讓模塊的每一個按鈕對應了恰好一個接口, 同時接口之間的功能達到了隔離。

  • 迪米特法則

    law of Demeter: least knowledge

    loose coupling: Loose coupling means they mostly independent

    這一原則要求兩個類之間要低耦合, 達到loose coupling, 一個類不須要知道另外一個類是怎麼實現的, 更不須要由於一個類內部代碼的修改二更改本身的方法。 在咱們的結對編程中, 爲了實現接口的高效對接, 對於接口進行和抽象和封裝

5. UML圖

7. Design By Contract

10. 界面模塊設計

11. 界面模塊與計算模塊的對接

12. 描述結對的過程

13. 結對編程優缺點

相關文章
相關標籤/搜索