q
a這個作業屬於哪個課程
2020春季計算機學院軟體工程(羅傑 任健)
這個作業的要求在**
個人專案作業
我在這個課程的目標是
系統地學習軟體工程開發知識,掌握相關流程和技術,提公升工程化開發的能力
這個作業在哪個具體方面幫助我實現目標
了解熟悉個人軟體開發流程(psp)
教學班級
005專案位址
psp**:
psp2.1
personal software process stages
預估耗時(分鐘)
實際耗時(分鐘)
planning
計畫· estimate
· 估計這個任務需要多少時間
1010
development
開發· analysis
· 需求分析 (包括學習新技術)
60120
· design spec
· 生成設計文件
2030
· design review
· 設計複審 (和同事審核設計文件)
0· coding standard
· **規範 (為目前的開發制定合適的規範)
2020
· design
· 具體設計
2030
· coding
· 具體編碼
6080
· code review
· **複審
2030
· test
· 測試(自我測試,修改**,提交修改)
100120
reporting
報告· test report
· 測試報告
6060
· size measurement
· 計算工作量
3030
· postmortem & process improvement plan
· 事後總結, 並提出過程改進計畫
3050
合計430
580解題思路
設計實現
程式效能
一開始想的是等所有直線輸入完成再開始計算交點,其實可以一邊輸入一邊對直線交點進行處理。即一開始直線容器\(lines\)為空,對輸入的直線\(l\)或圓\(c\),先與\(lines\)中所有直線求交點,所有圓求交點,若存在則insert到點集容器\(points\)中,然後將直線\(l\)儲存到\(lines\)中,圓\(c\)儲存到\(circles\)中,再接著輸入,這樣可以減小迴圈開銷。
效能分析:
在資料量為1000時的效能分析:
由下圖可以看出程式中消耗最大的操作是set容器的insert操作:
**說明
class line :public point
else if (b != lx.b)
else
}};
inline point line::getintersection(line l1, line l2)
class circle
circle(double x, double y,double r)
bool operator
else if (ypoint != a.ypoint)
else
else if(lb==0)
else
return true;
}
if (l == 'l')
}for (circle c : circles)
lines.insert(l);
}if (l == 'c')
for (circle cc : circles)
}circles.insert(c);
} }
單元測試和code quality analysis
2020軟工個人專案作業
專案 內容這個作業屬於哪個課程 2020計算機學院軟體工程 羅傑 任健 這個作業的要求在 個人專案作業 教學班級 006專案位址 個人專案作業 psp2.1 personal software process stages 預估耗時 分鐘 實際耗時 分鐘 planning 計畫15 15 estim...
2020軟工個人專案作業
專案內容 這個作業屬於哪個課程 2020春季計算機學院軟體工程 羅傑 任健 這個作業的要求在 個人專案作業 我在這個課程的目標是 通過這門課鍛鍊軟體開發能力和經驗,強化與他人合作的能力 這個作業在哪個具體方面幫助我實現目標 進一步應用所學的軟體工程知識,構建專案 psp2.1 personal so...
2020軟工實踐個人程式設計作業
這個作業屬於哪個課程 這個作業要求在 homework 11167 這個作業的目標 軟體開發第一步,總結第一次程式設計作業的學習和實現過程 學號031802412 psp2.1 personal software process stages 預估耗時 分鐘 實際耗時 分鐘 planning 計畫e...