軟體工程管理 第二次作業

2022-05-26 05:54:07 字數 3226 閱讀 7335

1. **規範(讀教材)

讀了《構建之法》中關於**規範的章節,筆記加個人理解如下。

為什麼要規範**? 有利於**維護,有利於**評審,有利於團隊合作。

1.1 **風格規範  

**風格規範——個人理解就是**的排版。

1 注釋:解釋程式做什麼。        

—— 不要寫不必要的注釋。        

—— 注釋與**同步。(**變動需要注意注釋是否需要修改)  

——  注釋與團隊合作。 很多人在實際的開發中往往不重視注釋,沒有好的注釋,團隊成員合作是會受到影響的。假如你發布了幾個類似功能的介面,如果你在注釋中很好的解釋了介面的功能,輸入引數限制等,其他人通過你的注釋就會明了使用你發布的哪個介面。反之,需要去研究你的**實現——若你的實現很複雜,呼叫很多其它介面,理解起來困難耗時,影響團隊合作。 

2. 換行:每行只寫一條語句;每行只定義乙個變數;用空行分割小功能塊。

3. 縮排:建議使用4個空格或是把tab設定為4個空格。         

分支結構,迴圈結構中使用縮排。

4. 大括號:分支結構,迴圈結構中使用大括號,即使僅包含一條語句。  

5. 命名:第乙個單詞全部小寫,其他單詞首字母大寫。         

函式名採用動詞,動名詞;其他採用名詞。          

6. 行寬:80字元或100字元。

1.2 **設計規範

對於**風格規範,相信大家都有所了解,遵守了很容易做到。(有些開發工具可以幫助自動設定好風格規範,除了**注釋, 開發的時候可以不用過多關注。) 但對於**設計規範,很多人就不是很了解了。教材對**設計規範的一些通用原則做了很詳細的介紹,仔細的讀了兩遍,發現這方面如果要做好,需要慢慢訓練。

1. 函式功能唯一:乙個函式只做一件事,並且要做好。(函式**行數建議80行,最多200行)。

2. 函式引數校驗:debug版所有引數進行校驗;正式版本對外部傳參進行校驗。

3.乙個函式最好有單一出口,有利於邏輯控制。

4. 錯誤處理:當對某件事不確定時,需要寫**處理可能發生的與預期不符的錯誤情況。

5. 斷言的使用:當對某件事很肯定,就這一種預期結果,不允許出現其他結果,此時可使用斷言。

6. **重用性——(todo)注意利用語言、類庫、框架裡提供的方法。

7. 日誌 ——記錄關鍵重要資訊(例:購票系統中,記錄誰在什麼時間買了什麼火車票)

便於查詢bug。

(建議呼叫標準庫或者系統api)

2. 列出乙個checklist

階段檢查項

結果需求分析

檢查是否有需求遺漏

檢查是否進行了需求設計書評審

檢查是否進行了測試用例設計評審

設計檢查是否進行了demo或介面原型評審

檢查是否進行了概要設計評審

檢查是否進行了詳細設計評審

開發檢查**的功能是否實現所有需求

檢查**的效能

檢查是否進行單元測試

檢查**的可移植性

檢查是否遵從**風格規範和設計規範

檢查**是否有硬編碼

檢查是否有無用**未刪除

檢查是否有可優化**

3. 效能分析和測試

關於效能分析:看了教材中關於效能分析的介紹,正如書中所說,不要隨便猜測,要進行實際驗證,資料才更具有說服力。

尤其作為新手和這方面經驗不足的人,只有你實際驗證過了,逐漸掌握的多了,才能像別人那樣直接指出效能差的地方。

關於測試:

4. 使用者需求

5.1 功能需求

5.2 非功能需求

5. 過程控制:燃盡圖、魚刺圖、甘特圖

6.1 燃盡圖

燃盡圖:用圖形展現故事點隨時間的變化情況(對故事點理解的不好)。

試著自己畫了乙個燃盡圖(在這裡假定有5項任務:1. 編寫概要設計 2. 編寫詳細設計 3. 開發** 4. 測試 5. 發布)

其中: y軸代表任務數(燃盡圖的y軸一般描述故事點); x軸代表時間 (時間以天為單位)。

在執行整個過程開始,根據計畫,畫出了如上圖中紅色線的一條參照線。(紅色參照線是計畫的理想情況,隨著時間的推移,剩餘任務數逐漸較少)

圖中黑色線條代表了整個過程中剩餘任務數隨時間變化的實際曲線。

從整個黑線可以看出3.17,3.21日新新增了2個任務,但在3.18——3.23黑色線條一直在紅色參照線的下方,說明最初的計畫高估了完成任務所需時間。

燃盡圖——方便管理者視覺化的觀測工作隨時間的變化,根據實際燃盡曲線和參照線的差異做合理調整。

通過燃盡圖如何評價過程控制的好壞呢?若燃盡曲線在參照線上下小浮浮動,說明該過程控制計畫很合理,無需調整;若燃盡曲線在某一天後一直在參照線上方,則說明該計畫有風險,可能要延期,需要及時調整;若燃盡曲線在某一天後一直處於參照線下方,說明高估了任務完成所需時間,也需要調整。

注:燃盡圖中不展現具體任務。

6.2 甘特圖

在6.1中用燃盡圖,我們看到的是剩餘任務數隨時間的燃盡情況,無法通過該圖來觀察到具體有哪些任務,也無法觀測到還剩下哪些任務,各個任務進行到了什麼階段。

甘特圖描述了整個計畫中具體任務與時間的關係。

6.3 魚刺圖

6. 互評部落格

7. psp

jobtype

date

start

endtotal(min)

編寫隨筆大綱

隨筆2016.03.14

12:30

12:46

16**規範

讀書13:00

13:30

30更新隨筆:**風格規範讀書筆記

隨筆13:31

14:13

42更新隨筆:psp

隨筆14:13

14:26

13更新隨筆:**設計規範讀書筆記

隨筆2016.03.15

08:10

08:33

23更新隨筆:checklist

隨筆9:30

10:11

41了解燃盡圖,甘特圖,魚刺圖

讀書2016.3.16

09:35

10:21

46 更新隨筆:燃盡圖

隨筆12:00

13:20

808. 選做:從範圍的角度,對比一類軟體(3個軟體)

軟體工程第二次作業

題目鏈結位址 github鏈結位址 難度瓶頸 最終選擇 改進版本 只是生成數獨終盤,不考慮附加作業,就沒有考慮類,只是函式。array 0 0 7 basic.erase 7 basic為集合名稱 if basic.size 0 for int k 0 k row k else 版本二 void c...

軟體工程第二次作業

github 位址 我剛開始打 的時候覺得打完就好,能過樣例就ok。經歷過一段時間後會發現有可能樣例過了其他測試點全錯,所以就會開始多測試幾組資料,希望自己的 能夠盡量準確。當準確性開始有保障後,我就會去思考程式本身是不是可以進一步改進,使 執行速度變的更快。在我看來自己出資料測試就相當於書中說的單...

軟體工程第二次作業

1.簡述軟體過程 軟體生存週期 軟體過程模型 軟體生存週期模型 三者之間的概念區別。軟體過程 軟體生存週期中的一系列相關過程所涉及的活動 軟體生存週期 軟體生命週期 同任何事物類似,軟體也有乙個從生到死的過程,這個過程一般稱為軟體生存週期或生命週期 軟體過程模型 軟體生存週期模型 為了能高效地開發乙...