• 沒有找到結果。

應用設計樣式對軟體複雜度的影響

N/A
N/A
Protected

Academic year: 2021

Share "應用設計樣式對軟體複雜度的影響"

Copied!
13
0
0

加載中.... (立即查看全文)

全文

(1)

(Design Pattern)

a b a 64 [email protected] b 64 [email protected] CK Metrics 1:1

(Design Pattern) (Software Complexity) (Complexity

Metrics) CK Metrics

1.

(design pattern) (application framework)

(Booch 1994)

Ralf Reißing State Pattern CK Metrics

(Ralf Reißing 2001) (State

Pattern) 1:1

(2)

2.

2.1.

Gamma, Johnson, Helm and Vlissides (1995)( Gof )

(Context) (Problen) (Solution) Gof(1995) (1) (2) (3) (4)

2.2.

Metapattern

(Pree 1994) (Solution) (1)

(Template Method) (Hook Method)

(Template Class) (Hook Class)

(Delegation)

(3)

Template-Hook (2) (Unification Metapattern) (Connection Metapattern) Unification Pattern (Override) Gof 23 (Template Pattern) 1:1 1:N 1:1

Connection Pattern 1:N Connection Pattern 1:1

1:N (Runtime)

Gof 23 (Strategy Pattern) 1:1

(Recursive)

1:1 Recursive Connection Pattern 1:N Recursive Connection Pattern

(4)

Pree 1994

2.3.

Basili(1980) (a system) (Joseph K 1986) CK Metrics(Chidamber 1986)

2.4. CK Metrics

CK Metrics Shyam R. Chidamber Chris F. Kemerer(1994) (1) Weighted Methods per Class (WMC)

(2) Depth of the Inheritance Tree (DIT) Root

(3) Number of Childern (NOC)

(4) Coupling Between Object classes(CBO)

(Dependency Relation) (5) Response for a Class (RFC)

(5)

(6) Lack of Cohesion of Methods (LCOM) Instance Variable

(method-pair) Instance Variable

3.

3.1.

CK Metrics CK Metrics

Steven John Metsker(2002)

Design Patterns Java Workbook Martin Fowler(1999) Refactoring Imporving

the Design of Existing Code CIF tHUB

3.2.

CIF tHUB CIF Portal CIF 1. 2. IBM MQ Series ( ) 3. CIF tHUB

tHUB tHUB tAdapter tHUB

tHUB

tAdapter (

(6)

2. tAdapter 3. 4. tAdapter 5. tHUB

3.3.

Gof(1995) CIF Portlet (Action)

Portlet Portlet doActionEvent if-else

Protlet CIF Portlet Portlet Gof(1995) tHUB 3.3-2 Assignment DateT2C( ) StringFilter( ) XML Converter XML

(7)

Conveter XML Conveter 1 1 CIF Portlet-Command CIF 2001 tHUB tHUB 2001

(8)

tHUB

tHUB 2001

3.4.

CIF CIF

CIF

Portlet doActionEvent doActionEvent

CIF

tHUB Steven John Metsker(2002)

Design Patterns Java Workbook

if-else

Martin Fowler Refactoring Imporving the

Design of Existing Code

Movie getPrice

if-else attrMap

(9)

tHUB

3.5.

CK Metrics WMC

McCabe(1976) Cyclomatic Complexity WMC

Cyclomatic Complexity (binary decision) +1

n-way n-1

if-else

McCabe Cyclomatic Complexity WMC

4. CK Metrics

4.1. CK Metrics

CIF A B CK Metrics IndiOpenController B A CBO RFC Metrics CK Metrics IndiOpenController B B A CK Metrics A tHUB A B CK Metrics Converter B CBO RFC A B A CK Metrics

WMC DIT NOC CBO RFC LCOM

(10)

IndiOpenController 2 7 1 1 0 0 1 0 3 2 0 0 PortletCommand 1 0 5 0 1 0 CustomerEditCommand 1 1 0 0 1 0 CustomerViewCommand 1 1 0 0 1 0 CustomerSaveCommand 1 1 0 0 1 0 BankEditCommand 1 1 0 0 1 0 FundEditCommand 1 1 0 0 1 0 SUM 8 7 6 1 5 0 1 0 9 2 0 0 CIF CK Metrics A B A B A B A B A B A B Converter MapStrategy AssignmentStrategy DateT2CStrategy StringFilterStrategy SUM CIF CK Metrics

4.2.

CK Metrics 1 1 if-else CBO RFC 1 1 CBO RFC if-else (Method) Cyclomatic Complexity WMC 1 DIT NOC RFC

(11)

RFC 1 1 (1) CBO RFC (2) RFC (3) WMC (4) DIT NOC WMC DIT

NOC CBO RFC LCOM

1 1

CK Metrics

WMC 1 WMC

Cyclomatic Complexity

DIT NOC DIT NOC 1

CBO CBO 1 RFC 1 1 RFC 1 (1) WMC =1 (2) DIT = (3) NOC = (4) CBO =1 (5) RFC =2+

5.

CK Metrics CK Metrics 1 1 CK Metrics (1) CBO RFC

(12)

(2) RFC (3) WMC (4) DIT NOC (1) WMC =1 (2) DIT = (3) NOC = (4) CBO =1 (5) RFC =2+ CK Metrics (1) 1 1 (2)

1. 2002 Design Patterns Java

2. Gamma Johnson Helm Vlissides 2001

1. Booch,G. (1994), Object-Oriented Analysis and Design with Applications, second ed. Redwood City, Calif.: Benjamin/Cummings

2. Chidamber, S.; Kemerer, C (1994), A Metrics Suite for Object Oriented Design. IEEE Transactions on Software Engineering, 20(6), 1994, 476-493.

3. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, (1993), Design Patterns:

Abstraction and Reuse of Object-Oriented Design, ECOOP ’93 Conference Proceedings,

Springer-Verlag Lecture Notes in Computer Science.

(13)

29, Nov.

5. Steven John Metsker, (2002), Design Patterns Java Workbook, Addison Wesley

6. Fowler, M.; Beck, K.; Brant, J.; Opdyke,W.; Roberts, D., (1999), Refactoring Imporving

the Design of Existing Code, Addison Wesley

7. Ralf Reißing, (2001), The Impact of Pattern Use on Design Quality, OOPSLA 2001 Workshop,

8. Stephen H. Kan, (2003), Metrics and Models in Software Quality Engineering Second

Edition

9. Wolfgang Pree, (1994), Meta Patterns—A Means For Capturing the Essentials of

參考文獻

相關文件

包括三維機械設計的所更的功能(SolidWorks 三維建模軟體)、資料管 理軟體 PDMWorks Client、以及用於設計交流的常用工具:eDrawings 專 業版(基於 e-mail 的設計交流工具),

 受試者包括了54 名便秘型大腸激躁症患者以及16 名健康者,共70 位,平均年齡28 .4歲,其中IBSC

魚油 + 運動 魚油 紅花油 豬油 對生理的影響 左心室收縮壓、.

Kluwer Academic Publishers, 2002; Raymond Martin, John Barresi (eds.), Personal Identity, Malden: Blackwell Publishing, 2003; Raymond Martin, John Barresi, The Rise and Fall of

National Taiwan University July 9, 2005 Page 5..

一、工業革命與19世紀社會背景 二、工業革命對設計環境的影響 三、平面設計的新形式與新媒材

2.注重實地演練,角色扮演、跟隨經驗、實地參訪及邀請業界主管演講方 式,使學生能從「經驗中學習」

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 1..