結對做業

1、結對做業(祁晨2016012057,王曉哲2016012052)項目地址:https://git.coding.net/lvgx/wsz.gitgit

2、PSP:算法

PSP2.1數據庫

任務內容編程

計劃共完成須要的時間(min)併發

實際完成須要的時間(min)框架

Planning函數

計劃性能

15單元測試

15學習

Estimate

估計這個任務須要多少時間

並規劃大體工做步驟

15

15

Development

開發

4225

5350

 Analysis

 需求分析 (包括學習新技術)

15

 20

Design Spec

生成設計文檔

10

 10

Coding Standard

代碼規範 

(爲目前的開發制定合適的規範)

10

 15

Design

具體設計

25

45

 Coding

具體編碼

4000

5000

Code Review

代碼複審

45

60

 Test

測試

(自我測試,修改代碼,提交修改)

120

200

Reporting

報告

55

60

Test Report

測試報告

15

 15

 Size Measurement

計算工做量

10

 5

Postmortem & Process Improvement Plan

過後總結, 並提出過程改進計劃

30

 40

 3、說明在結對編程中是如何利用這些方法(Information Hiding, Interface Design, Loose Coupling)對接口進行設計的?

       經過查詢資料瞭解到 information-hiding(信息隱藏):採用MATLAB實現圖像信息隱藏。將文本信息,經過DCT和LSB算法嵌入到二維圖像中實現信息隱藏。 interface_design(接口設計):提供給其餘模塊或者系統使用的一種約定或者規範。Loose Coupling(鬆散耦合):意味着DM系統將使用DB或DW系統的某些設施,從這些系統管理的數據庫中提取數據,進行數據挖掘,而後將挖掘的結果存放到計算機中。

4、計算模塊接口的設計與實現過程

       在模塊接口的設計與實現過程當中,咱們兩人在編程時一共用了7個類和9個函數。

        其中Main函數做爲程序執行的起點,程序是從main函數開始執行的,從而負責接收參數判斷參數是否合法。

       在咱們的程序中,Operation類是生成並計算不帶括號的式子,Operation1類是生成帶括號而且帶乘除的式子,Operation2類是生成並計算帶括號只帶加減的式子。

       而且在GUI(圖形用戶界面指採用圖形方式顯示的計算機操做用戶界面)中,咱們分別使用了複選框監聽器和按鈕監聽器。複選框監聽器,建立複選框按鍵,並設置快捷鍵和選定, 而且設置一個panel,將複選框放入同一個panel,最後添加複選框的監聽事件。按鈕監聽器,定義爲靜態變量以便main使用,該面板用來放置按鈕組件,定義按鈕組件,新建按鈕,添加按鈕到面板。

5、計算模塊接口部分的性能改進

        從目前完成進度來講,咱們此次做業完成度只有百分之六七十左右。畢竟能力有限,並且編程這種技術性極高的能力也不是一朝一夕可以增強的。但在以後補充時,咱們花費了4個小時左右,在此咱們還界面程序的性能進行分析,和優化,改進,儘可能減小除法中隨機數,以減小代碼因隨機數生成的無效循環,按F4再一次查看,內存佔用率明顯減小,可是仍有內存沒釋放,咱們會繼續改進的。

6、計算模塊部分單元測試展現

      在這次項目中,對五個類進行了測試,採用結合或者獨立的測試方法,下面是代碼覆蓋率的展現;

      一、Operation1生成帶括號而且帶乘除的式子:
 
      二、GUi界面

      三、Judge判斷括號的優先級

     四、Operationa2生成並計算帶括號只帶加減的式子

      五、Choose簡單的加減乘除

7、計算模塊部分異常處理說明

       一、判斷輸入的出題數、運算符個數、範圍等是否合法或者超出其範圍(展現了對數的範圍的處理,代碼結果以下)

try{               
     r=Integer.parseInt(args[i+1]);                          
     r1=Integer.parseInt(args[i+2]);
if(r<=0||r>100) {                
        System.out.println("r不在範圍[1,100]內");
         return;   
                             }
if(r1<50||r1>1000) {
        System.out.println("r1不在範圍[50,1000]內");
        return;  
                            }
                }
catch(Exception e) { 
                   System.out.println("r的輸入不合法,請從新輸入");                               
                               }         
                                     }

        二、文件處理異常:點擊出題時,若是文件生成錯誤,將再也不生成。

try{
            PrintStream file=newPrintStream("../result.txt");            
            System.setOut(file); 
                    }
catch(Exception e) {
            System.out.println("文件生成錯誤");
                            }

8、界面模塊的詳細設計過程:使用GUI設計該程序出題、答題界面

public static void main(String[] args) {
     Gui frame=new Gui();
     frame.pack();
     frame.setSize(500, 300);
     frame.setLocationRelativeTo(null);
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
     frame.setVisible(true);
    }

9、界面模塊與計算模塊的對接:GUI按鈕監聽器

       一、出題界面:經過按鈕監聽器——出題按鈕實現

          二、作題界面:經過按鈕監聽器——下一題按鈕實現,而且在此按鈕下進行判斷、繼續出題,最重要的是根據此按鈕調用統計界面

         三、最終界面:經過按鈕監聽器——提交按鈕實現,出現最終頁面,展現作題總數、正確數以及你所用的時間,而且在下面展現整個卷面

10、描述結對的過程

       我(祁晨)與我結對做業的隊友(王曉哲)是同一個寢室的室友,所以咱們在老師發佈這個做業的時候,就不約而同的選擇了對方。由於是室友,因此咱們在一塊兒的時間比較多,對於此次做業的討論與交流也會比較方便。因爲個人項目經驗不足,因此這次項目中的結構框架、所用的技術等等都是由個人隊友主要負責,而我就負責對於項目的測試,以及一些簡單的編碼。

 

11、說明結對編程的優勢和缺點

        現代軟件產業通過幾十年的發展,一個軟件由一我的單槍匹馬完成,已經不多見了,軟件都是在相互合做中完成的。合做的最小單位是兩我的,兩個工程師在一塊兒,作的最多的事情就是「看代碼」,每一個人都能看「別人的代碼」,並發表意見。   ————《構建之法》第四章

       經過此次兩人結對項目也讓我親身體會到了上面這句話的意思,而且在此次項目中也感覺到了更多的道理。那麼下面我就說一說我經過此次結對做業對結對編程的感覺。

       結對編程的優勢:提升了工做效率,一個編程項目從一我的變爲兩我的去完成,不只減輕了每一個人的工做負擔,也提升了編程的效率。更多奇思妙想的碰撞,一我的的想法也許比較單一,可是有兩我的協力去思考就會發現一條不同凡響的道路。編程氛圍變得有趣,一我的的枯燥不見了,取而代之的是兩我的的彼此鼓勵與交流,出現任何的負面情緒也再也不孤單,有人去傾聽你的煩惱,你也可以幫助你的隊友解決憂愁。

        結對編程的缺點:奇思妙想的碰撞容易摩擦出火花,每一個人的思考不一樣,頗有可能對彼此的意見產生疑問與抗拒。而且每一個人的編程習慣不一樣,若是不能很好地融合就會致使彼此的代碼之間出現間隙。最重要的是,有了隊友以後本身容易出現依賴心理,全權依靠隊友本身什麼事情都不作。從而,致使工做效率下降,甚至項目沒法完成。

12、指出結對的每個人的優勢和缺點在哪裏 (要列出至少三個優勢和一個缺點)?

      一、 隊友優勢:工做能力超強,對於她的part老是完成的及時而且有質量;十分勤奮,對於她不懂的問題肯花時間、費心思的去查閱資料和詢問老師同窗;頗有本身的想法,對於項目的每一步都有思考。 

            隊友缺點:過於細緻。

       二、自身優勢:隊友安排的工做盡全力完成;可以及時與隊友溝通交流本身的想法與問題;氣氛擔當。

             自身缺點:缺少項目經驗,沒法給予隊友更多的幫助。

相關文章
相關標籤/搜索