如何使用openGL畫出一個三角形呢 ? 

要構成一個三角形你需要三個點,由這三個點才能連成三條線,最後由這三條線形成三角形。

 

座標 Coordinate

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

什麼是架構模式呢?總結來說,就是使程式有架構性的開發,目的是為了降底耦合,讓程式更有彈性,更容易維護或更貼近業務需求與目標。

 

Repository (Data-Centered, 類似資源中心)
描述 : 所有的data都是由central repository 管理 , 所有的components 不直接作用而是透過repository
使用時機 : 系統擁有龐大資料被產生且需要存儲時。
文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

能力成熟度模型整合(英文:Capability Maturity Model Integration,簡稱CMMI或「希邁」)是一個過程改進方法,它的目的是幫助組織改進他們的績效。「希邁」可以被用於啟動橫貫一個專案、一個部門或一個完整的組織的過程改進,同時他也存在兩種表現方式,「分階段的」(staged)「持續的」(continuous)

 

Staged
Staged 是一個綜合評估方式。分為1~5個階段,階段意義參考下表 : 

●  Initial:初始狀態,表示有經過CMMI評鑑。有管理,但沒有固定工作時程,仰賴組織成員本身能力,容易專案超時或預算超出。

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

軟體配置管理(SCM)是指在開發過程中各階段,管理電腦程式演變的學科,它作為軟體工程的關鍵元素。已經成為軟體開發和維護的重要組成部分。SCM提供了結構化的、有序化的、產品化的管理軟體工程的方法。它涵蓋了軟體生命周期的所有領域並影響所有數據和過程。 配置管理是對產品進行標識、存儲和控制,以維護其完整性、可追溯性以及正確性的學科。

 

我列舉五項SCM主要的任務介紹給大家

Configuration Item Identification:標示配置項,正確標識軟體配置項對整個管理活動非常重要,對軟體開發過程中的所有軟體項目賦予唯一的標識符,便於對其進行狀態控制和管理。

●  由於大型專案會產生出很多文件,而有些文件要被維護很久,需要方便給人識別。

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

Fagan's inspection 是一個結構化的過程,它嘗試在軟體開發的各個階段中發現開發檔案的缺陷,例如程式編碼,規範,設計等等。 它以Michael Fagan的名字命名,被認為是正式的軟體檢查發明者。

 

Steps : 

計劃(Planning):選擇檢驗小組的成員、準備文件和安排會議地點。

概觀(Overview)針對欲檢驗項目替檢驗小組作一般性文件的簡報。

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

White-Box Testing (白箱測試)

又稱為結構測試,其測試方法是根據程式內的結構設計案例,分別驗證其行為的正確性。

通常使用Path testing進行,遍歷所有path。

 

Black-Box Testing (黑箱測試)

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

初學者剛接觸程式語言時常會聽到Override與Overload,但常分不清其中的差別,我以兩個簡單的C++範例說明一下。

 

Override  覆載

建立一個Class 命名為Shape,並且他有一個public function為getShapeType,此時再建立一個class命名為Triangle,並繼承Shape,這時候改寫從Shape繼承下來的function,如此一來,原本class Shape呼叫getShapeType()的時候會回傳字串"Shape",而class Triangle繼承Shape並Override getShapeType(),因此變成回傳字串"Triangle"

class Shape
{  
    public void getShapeType()  
    {  
        return "Shape" ;
    }  
}  
  
class Triangle : Shape
{  
    public void getShapeType()  
    {  
        return "Triangle" ;  
    }  
}  
  

 

文章標籤

橘子亂說話 發表在 痞客邦 留言(2) 人氣()

 

定義 :

確保一個類別只有一個實體,並給它一個存取的全域點(Global Point)

 

使用案例 :

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

這學期剛上完Design Pattern的課程,使用的教科書是 J. Vlissides. 1998. Pattern Hatching: Design Patterns Applied. Addison-Wesley Longman Ltd. 這本書的作者跟老師是很好的朋友,Gang of Four之一,作者提到書中所有的設計都離不開兩大宗旨, Favor object composition over class inheritanceProgram to interface not implementation ,這篇會稍微介紹紀錄一下兩個要點目的是什麼,之後再慢慢介紹其他的pattern。

 

Favor object composition over class inheritance

當需要重用程式碼時,比較好的方法應該是利用 Composition 而非 Inheritance,利用 Composition 物件只會透過自己 interface 訪問自己的功能,不會打破封裝,關聯性也較低。

 

橘子亂說話 發表在 痞客邦 留言(0) 人氣()

What is SOLID?

程序設計領域, SOLID(單一功能、開閉原則、里氏替換、接口隔離以及依賴反轉)是由羅伯特·C·馬丁在21世紀早期引入的記憶術首字母縮略字,指代了物件導向編程物件導向設計的五個基本原則。當這些原則被一起應用時,它們使得一個程式設計師開發一個容易進行軟體維護和擴展的系統變得更加可能。[1] SOLID所包含的原則是通過引發編程者進行軟體原始碼代碼重構進行軟體的代碼異味清掃,從而使得軟體清晰可讀以及可擴展時可以應用的指南。SOLID被典型的應用在測試驅動開發上,並且是敏捷開發以及自適應軟體開發的基本原則的重要組成部分。

 

●  Single-responsiblity principle
一個class內應該只有一個改變的理由,意思是一個class應該只需要專注做一件事情,這個理由是當class內需要做兩件以上的工作時,一旦程式需要改變,因為他的耦合度比一件工作還要高,造成變更上的困難,所以盡量避免。

文章標籤

橘子亂說話 發表在 痞客邦 留言(0) 人氣()