
발견적 접근 방법을 위한 지침 소프트웨어에서의 설계 방법은 다른 분야의 설계 방법으로 배울 수 있다. 책의 저자를 문제 해결 접근 방법을 통해서 소프트웨어 설계 시 문제 해결하는데 유용하다. 가장 중요한 지침은 한 가지 접근 방법으로만 매달리 필요가 없다. UML로 표현 할 수 없다면 일반 용어로 표현을 해도 된다. 주먹구구식의 해결방법을 사용한다. 펜으로 그림을 그려본다. 문제가 풀리지 않을 시 놓고 잠시 산책 한 후 문제를 다시 풀어본다. 설계 실천법 1. 반복 설계는 반복적인 프로세스다. A 위치에서 B 위치로 가고 끝나는 게 아니라 A에서 B로 가고 다시 A로 돌아오는 경우가 많다. 설계를 여러 번 반복하다 보면 상위 수준과 하위 수준 관점에서 바라보게 될 것이다. 최상위 수준과 최하위 수준의 고..
일반적으로 널리 사용되는 디자인 패턴을 찾아라 디자인 패턴은 소프트웨어에서 가장 흔히 발생하는 많은 문제를 해결하는 데 사용할 수 있는 이미 만들어진 설루션의 핵심적인 부분을 제공한다. 패턴은 이미 만들어진 추상화를 제공함으로써 복잡성을 줄인다. 패턴은 일반적으로 널리 사용되는 해결책의 세부 사항들의 규정함으로써 오류를 줄인다. 패턴은 대안을 제안함으로써 발견적 학습의 가치를 제공한다. 패턴은 설계에 대해 수준 높은 논의를 할 수 있게 해서 의사소통을 원활하게 한다. 잘 알려진 디자인 패턴 추상 팩토리 : 구체적인 클래스를 지정하는 것이 아니라 집합의 종류를 지정함으로써 고나련 객체의 집합을 생성하는 기능을 제공한다. 어댑터 : 클래스의 인터페이스를 다른 인터페이스로 변환한다. 브리지 : 인터페이스와 구..

좋은 이름을 위한 고려 사항 대답하기 쉽게 작성한다. 좋은 변수 이름을 사용했을 때 읽고 기억하기 쉽다. 이름을 지을 때 가장 중요한 고려 사항 변수 이름을 지을 때 그 이름이 변수가 나타내는 것을 완전하고 정확하게 설명하는지를 중요하게 고려한다. 좋은 이름을 생각하는 효과적인 기법은 변수가 표현하는 것을 단어로 서술한다. 미국 올림픽 대표팀의 인원 : numberOfPeopleOnTheUsOlympicTeam 올림픽에서 각 나라의 대표팀에서 획득한 최고 점수를 표현 : maximumNumberOfPointsInModernOlympic 이름에 두 가지 특징이 있어야 한다. 해석하기 쉬워야 한다. 이름이 구체적이어야 한다. 기억하기 쉬운 이름은 해결책보다 문제에 대해서 설명한다. 좋은 이름은 "어떻게"보..
소프트웨어 설계 - 컴퓨터 소프트웨어에 대한 명세를 동작 가능한 소프트웨어로 변환하기 위한 계획에 대한 구성이나 창작, 도구를 뜻한다. 1. 설계는 불명확한 문제다. "불명확함"은 문제를 한 번 해결해야 하며, 작동하는 설루션을 만들기 위해서 다시 문제를 해결해야 한다는 것을 의미합니다. 이 글의 예시로 학교에서 배우는 프로그래머와 전문가로써 개발하는 프로그래머의 차이점은 과제를 제출하고 나서 설계가 변경이 되면 화가 날 것이지만 실무에서는 매번 일어나는 일이라고 합니다. 2. 설계에는 제약이 따른다. 설계의 핵심은 어느 정도는 가능성을 만들고 어느 정도는 제한을 둔다. 만약 제한을 두지 않으면 설계는 방대해지고 복잡해질 것이다. 그래서 제약 사항을 두는 것으로 좀 더 간결한 해결방안을 고안할 수 있었다..