Friday, April 17, 2009

DSA-주차장 관리 시스템

PGCS(Parking Garage Control System)

분할 스타일(Decomposition Style)

- 시나리오에 기반하여 명사 추출만 충실히 한 후, 종속관계를 취함.

- 하드웨어 은닉 모듈, 행위 은닉 모듈, 소프트웨어 결정 모듈 구분은 다음 기회에~

Driver

TicketMachine

Button

CardReader

ParkingGarage

StateDisplay

Ticket

Time

Gate

Loop

Car

Card

Cashier (The cashier is not part of the software system)

Fee

사용 스타일(Uses Style)

모듈의 필요성을 묻지도 않고 따지지도 않고 모두 추가함.

고객이 변심할 뿐이고, 내일이면 변경될 뿐이고, 단위테스트를 해야 할 뿐이고...

uses_style.jpg

일부 모듈을 정제하여 재작성한다. (Driver, Cashier, Car 모듈 삭제)

uses_style

일반화 스타일(Generalization Style)

입고(Entrance)

generalization_style

사용스타일의 모듈과 일반화스타일의 클래스와의 일반적인 관계 또는 매핑을 만들 수 있을까?

  • 사용스타일의 모듈은 일반화 스타일의 클래스로 확대되거나 축소된다.
  • 일반화스타일에서는 Loop관련 모듈이 삭제되었다.

계층화 스타일(Layered Style)

layered_style