프로그래밍[Univ]/하드웨어

[하드웨어] 복잡함을 관리하는 기법

Cloud Travel 2012. 3. 8. 10:26
ⓐ Abstraction(추상화)
 - 중요하지 않은 세부사항을 숨긴다.
 - 관심이 없는 내용을 숨긴다.
 - System마다 abstraction level이 다르다.
 - Abstraction의 최고 낮은 수준(lowest level)의 세부사항도 고려한다.
  > 이에 따라, 상위 level의 Abstraction은 하위 level의 Abstraction이 돌어가는지 알 필요가 없다. 
  ex) electronic computer
       

 
ⓑ Discipline(규율)
 - 더 생산적이고 높은 level의 추상화를 위해서 의도적으로 제한하는 설계(디자인) 선택
  ex) 총 부품(low-level)의 표준 규격을 정해서 총 생산의 편리함과, 대량화를 가져왔다.

ⓒ The three - "Y's"( hierarchy(계층화), modularity(모듈화), regularity(정규화) ) 
 - Hierarchy(계층화) : 모듈에 의해 시스템을 나눈다. 더 나아가 모듈을 이해하기 쉬운 조각으로 더 나눈다.
 - Modularity(모듈화) : 잘 정의된 Function과 Interface로 구성시킨다.
                                 함수와 인터페이스를 부작용없이 연결한다. 
 - Regularity(정규화) : 모듈의 일률을 최대화한다. 반복되는 행동을 줄인다.
  ex) 총 부품의 The three -"Y's"
   - Hierarchy
     

   - Modularity
    > stock
     >> function : barrel과 lock을 장착하는 뼈대
     >> Interface : Stock의 길이와 결합핀의 위치
   - Regularity : 더 좋은 아이디어로 대체 가능한 부분이 생성됨
    > Regularity에 의해 낡은 barrel은 새로운 barrel로 대체가 가능하다.