psp2.1**
psp2.1
psp階段
預估耗時
(分鐘)
實際耗時
(分鐘)
planning
計畫40
20· estimate
· 估計這個任務需要多少時間
3020
development
開發300
· analysis
· 需求分析 (包括學習新技術)
6040
· design spec
· 生成設計文件
1010
· design review
· 設計複審 (和同事審核設計文件)
1010
· coding standard
· **規範 (為目前的開發制定合適的規範)
2010
· design
· 具體設計
4030
· coding
· 具體編碼
120100
· code review
· **複審
1010
· test
· 測試(自我測試,修改**,提交修改)
4050
reporting
報告20
20· test report
· 測試報告
1010
· size measurement
· 計算工作量
1010
· postmortem & process improvement plan
· 事後總結, 並提出過程改進計畫
1010
介面實現:
我們小組講這個工程分成類7大模組:
param:引數解析模組
in :輸入模組
core :核心處理模組
out :輸出模組
ui :圖形介面模組
util :工具類模組
start: 模組整合模組
我主要負責的是輸出模組,各個模組如下圖所示:
輸出控制模組:
public class wordprinter
public void print() 即可,不需要換行;如果 是非空**塊則:
1) 左大括號前不換行。
2) 左大括號後換行。
3) 右大括號前換行。
4) 右大括號後還有 else 等**則不換行;表示終止的右大括號後必須換行。
理解:就是字面意思,不用解釋。
舉例:while(i)
public class duck extends animal
3. 【強制】不能使用過時的類或方法。
理解:一般來說過時的方法都會有風險,或者效率問題。
舉例:acm中最喜歡用的streamtokenizer
4. 【強制】構造方法裡面禁止加入任何業務邏輯,如果有初始化邏輯,請放在 init 方法中。
理解:講邏輯放在構造方法中會造成構造物件浪費大量的時間,有些物件構造了但不一定會使用。
舉例:略。
理解:+相當於使用多個stringbuilder物件,效率很低下。
舉例:string a="asd";
a=a+"few"+"few";
正例:stringbuilder a=new stringbuilder();
1) 如果不允許外部直接通過 new 來建立物件,那麼構造方法必須是 private。
2) 工具類不允許有 public 或 default 構造方法。
3) 類非 static 成員變數並且與子類共享,必須是 protected。
4) 類非 static 成員變數並且僅在本類使用,必須是 private。
5) 類 static 成員變數如果僅在本類使用,必須是 private。
6) 若是 static 成員變數,必須考慮是否為 final。
7) 類成員方法只供類內部呼叫,必須是 private。
8) 類成員方法只對繼承類公開,那麼限制為 protected。
理解:這個符合最小訪問原則。
1. 【推薦】集合初始化時,指定集合初始值大小。
理解:arraylist預設大小是10 map的預設大小是16,他們一般都會在容量達到75%的時候進行擴容處理,所以如果初始時候知道了容量可以避免擴容的開銷,提公升效率。
舉例:lista = new arraylist(100);
2. 【推薦】使用 entryset 遍歷 map 類集合 kv,而不是 keyset 方式進行遍歷。
理解:看過map原始碼就知道,hashmap在內部維持了乙個entry的陣列,使用entryset遍歷其實就是遍歷陣列,如果使用keyset就行遍歷,是講所有的key打包成乙個set然後再通過遍歷key從map中獲取相應的value,效率低下。
舉例:for(map.entrye : map.entryset()){
存在的問題:
**的注釋比較少,讓人摸不著頭腦。
變數命名意義不是很明顯。
優化策略:總結:
沒有軟體開發就沒有測試,軟體開發提供軟體測試的物件。
軟體開發和軟體測試都是軟體生命週期中的重要部分。
軟體開發和軟體測試都是軟體過程的重要活動。
軟體測試是保證軟體開發產物質量的重要手段。
參考:printwriter用法:
第四周作業
第四周實驗作業 1.完成課本每乙個程式設計題。要求先畫出流程演算法圖或n s圖,然後程式設計實現,有可能的話使用兩種以上方法 1.1求自然對數e的近似值 include using namespace std int main cout 1.2求圓周率 的近似值 include using name...
第四周作業
實驗作業1.完成課本每乙個程式設計題。要求先畫出流程演算法圖或n s圖,然後程式設計實現,有可能的話使用兩種以上方法 2.程式設計求 百錢百雞 問題。雞翁一值錢五,雞母 一值錢三,雞雛三值錢一。百錢買百雞,問雞翁 雞母 雞雛各幾何?3.程式設計輸入乙個整數,計算它是幾位數字,分別輸出每一位數字,並輸...
第四周作業
實驗作業1.完成課本每乙個程式設計題。要求先畫出流程演算法圖或n s圖,然後程式設計實現,有可能的話使用兩種以上方法 2.程式設計求 百錢百雞 問題。雞翁一值錢五,雞母 一值錢三,雞雛三值錢一。百錢買百雞,問雞翁 雞母 雞雛各幾何?3.程式設計輸入乙個整數,計算它是幾位數字,分別輸出每一位數字,並輸...