소프트웨어 위기
소프트웨어 위l의주요한 위lr 컴퓨터 성능이 몇 수십 배나 더 강력해졌기
때문입st! 심하게 말하면, 컴퓨터가 없었을 r 프로i래밍에r 전혀 문제가
없었습st( q린 컴퓨터 몇 개 뿐이었을 r 프로i래밍이 조k 문제가 되었
c, 이제r 거v한 컴퓨터에 프로i래밍x 따라서 거v한 문제가 되었습st(
' 에츠허르 w이크스트라 / 1.-, 01M 튜링상 수상 연설
F. L. 바우어(Fritz Bauer), 1968, 나토 SW 공학 학회
http://homepages.cs.ncl.ac.uk/brian.randell/NATO/NATOReports/index.html
관심사 분리
(Separation ofconcerns)
Edsger W. Dijkstra, 1974, "On the role of scientific thought”
“e심사 분리r, 완벽하지r 않t 해x, 아직은 ph가의 생각을 효율
적으로 정리하rw 사용할 수 있r 유일한 l법이t(”
“sepaKaMCoG o@ coGceKGs X eOeG C@ GoM peK@ecMly possCble Cs yeM Mhe
oGly aOaClable MechGCJue @oK e@@ecMCOe oKdeKCGA o@ oGe’s MhouAhMs”
“특정 e점에 주의를 집중함”
“@ocusCGA oGe's aMMeGMCoG upoG some aspecM”
다이나믹 디스패치 ≒메시징
“m게 OO7r 메시징d 상태 처리 d정의 지역적 보존,
보호, 은익d 모든 것의 극u적인 지연 바인딩 뿐이t(”
“OO7 Mo me meaGs oGly messaACGA, local KeMeGMCoG aGd pKoMecMCoG aGd
hCdCGA o@ sMaMe'pKocess, aGd exMKeme laMe'bCGdCGA o@ all MhCGAs”
“중요한 착안은 “메시지”이t( 이r 스몰톡d 스퀵 핵심
의 본질이t( 일본어에 마(ま)라r 짧은 u어가 있t(”
“9he bCA Cdea Cs “messaACGA" MhaM Cs PhaM Mhe keKGal o@ SmallMalk)SJueak Cs
all abouM( 9he JapaGese haOe a small PoKd Tma’(((”
앨런 케이(0laG Kay)
間
객체 생성 문제
malloc()new
?
GRASP의 생성자(creator) 원칙
누가 객체를 생성해야 하나?
대상 클래스로 구성되는 클래스
대상 클래스를 담고 있는 클래스
대상 클래스의 인스턴스를 기록하는 클래스
대상 클래스와 가깝게 사용되는 클래스
대상 클래스를 생성하는데 필요한 데이터가 있는 클래스
5A A G