임베디드 프로그래밍  

         
전체 기타 | WinCE | Delphi | VisualC | ARM | Media | SE | 마리오네트 | Java | wdm | JTAG | 영상처리 | 인증 | 질문/답변 | H/W | 알고리즘 | Platform | .net | VB | PPC | Network | android | QT | WWW | Linux |
C++ 의 Legacy Code 분석
하창호12-12 14:05 | HIT : 4,226
< C++ 의 Legacy Code 분석 >

▧ Weighted Methods Per Class (WMC) : 클래스당 함수 갯수 (overriding method는 제외)
- WMC가  너무 큰 경우는 클래스는 여러 가지 책임을 담당하고 있을 가능성이 높아서, 클래스가 복잡하게 되며 Reuse를 어렵게 함
- WMC가 일반클래스인 경우 20이상, UI클래스인 경우 50이상 클래스들은 서브 클래싱 또는 책임 별 클래스 분할을 통해 작은 단위로 변경을 권장함

▧ Depth of Inheritance Tree (DIT) : 상속 횟수
- DIT가 높으면 오류발생 가능성이 높아 품질이 떨어지는 요인으로 작용함
- Visual Studio.net 등 프레임웍을 사용하는 경우 경우 5이하를 권장

▧ Number of Children (NOC) : Number of immediate sub-classes of a class
- NOC값이 0인 것의 비율이 높으면 OO 관점에서의 설계가 부족한 경우임
- 이 경우 인터페이스로 작성된 클래스가 인터페이스의 역할이 아닌 추상클래스 역할을 수행하는 경우가 많음
- NOC값이 0인 클래스들 중 상속을 통한 일반화 가능한 클래스를 찾아 변경하도록 권장
- NOC값이 높은 클래스는 너무 포괄적인 추상화이므로 서브 클래싱 하도록 권장

▧ Coupling Between Object classes (CBO) : 외부 클래스의 값 및 함수 사용
- 한 클래스 내의 method가 외부 클래스의 method나 variable를 사용하는 경우
- CBO가 높아 모듈화/컴포넌트화를 방해하는 요인이 되는 클래스가 존재함
- CBO가 높은 경우 한 클래스에서 변경이 발생하면, 파생적으로 여러 개의 클래스에 Side-Effect를 야기할 수 있음
- CBO가 높은 클래스는 같은 책임을 갖고 있는 경우 일수 있으므로 하나로 병합 권장

▧ 사용 TOOL : Understand for C++
다운로드 http://www.scitools.com/download.html?product=understand_c


22  SE :: Doxygen 에서 한글 깨지는 부분 해결 방법    하창호 2008·08·13 3099
21  SE :: 비주얼 스튜디오 팀 시스템    하창호 2007·09·11 3402
20  SE :: 일반적인 개발 절차    하창호 2007·01·10 3401
19  SE :: ATAM 이란    하창호 2006·12·15 4426
18  SE :: Software Platform Architecture Desi...    하창호 2006·12·14 4240
17  SE :: C 의 Legacy Code 분석    하창호 2006·12·14 3768
 SE :: C++ 의 Legacy Code 분석    하창호 2006·12·12 4226
15  SE :: Static Attribute 와 Operation UML 처...    하창호 2006·12·06 3420
14  SE :: Class Diagram 설명    하창호 2006·12·05 3613
13  SE :: Carnegie Mellon TSP Symposium 2007 ...    하창호 2006·12·01 3947
12  SE :: doxygen 사용 방법  …1  하창호 2006·11·28 4846
11  SE :: ClearCase Document    하창호 2006·08·25 3701
10  SE :: Extreme Programming 강좌    하창호 2006·06·12 4077
9  SE :: Together 를 이용한 UI Designer 사용한 코...    하창호 2004·08·30 3790
8  SE :: 자바 소스의 리버스엔지니어링 결과 시퀀스 다이어그램    하창호 2004·08·30 5678
7  SE :: Together Workshop Q/A 자료    하창호 2004·08·30 3572
6  SE :: Together Workshop 발표자료    하창호 2004·08·30 3614
5  SE :: Together Testing Framework 설명    하창호 2004·08·30 3602
4  SE :: UML 로즈를 기준으로 정리된 자료    하창호 2004·05·14 3521
3  SE :: [논문] 사용행태 분석에 의한 냉장고 사용편의성 개선    하창호 2004·04·01 3437
2  SE :: 비밀이야 이건    하창호 2004·04·01 6
1  SE :: [논문] 가전제품 화면 메뉴의 사용서에 관한 연구  …1  하창호 2004·04·01 3460
1
   
Copyright 1999-2018 Zeroboard / skin by GGAMBO
....