책- 정리/Code Complete2 3

[Code Complete 2] 구현 설계 - 1

설계란? 소프트웨어에 대한 명세를 동작 가능한 소프트웨어로 변환 하기위한 계획에 대한 구상을 뜻한다. 훌륭한 상위 수준 설게는 여러 개의 하위 수준 설계를 무리 없이 담을 수 있는 구조를 제공한다. 훌륭한 설계는 규모가 큰 프로젝트에서는 꼭 필요한 작업이며 작은 프로젝트에서도 유용하다. 설계는 사용자의 요구사항에 따라 계속 바뀐다. 그래서 어렵다. 설계의 어려움 1. 설계란는 절충과 우선순위의 문제다. 설계자의 주요 업무중 하나가 서로 상충하는 설계 특징을 비교하여 그 특성들 사이에 균현을 맞추는 일이다. 빠른 응답 속도가 개발 시간을 최소하는 것보다 중요하다면 설계자는 그에 맞는 설계를 선택 할 것이다. 2. 설계에는 제약이 따른다. 설계의 핵심은 어느 정도는 가능성을 만들고 어느 정도는 가성능성 제한..

[Code Complete 2] 구현시 결정해야 할 핵심 사항

언어 프로그래밍의 목적에 따라 언어를 잘 골라야 하지만 대부분 고수준의 언어가 생산성이 좀더 좋다. 그리고 생성성이 비슷 하다면 익숙한 언어를 사용하는게 효율 성이 훨씬 좋다고 한다. 마지막으로 모든 프로그래밍 언어에는 장단점이 있다. 그걸 알고 모르고는 개발 생산성에 큰 영향을 미친다고 본다. 프로그래밍 규약 품질이 우수한 소프트웨어는 아키텍처의 개념적 무결성과 저수군 구현 사이의 관계가 명확하다. 구현은 반드시 아키텍처와 일관성을 유지해야 하며 내 부적으로도 일관선을 유지해야한다. 그것이 바로 변수 이름과 루틴 이름, 형식 규약, 주석 규약에 대하나 가이드라인의 핵심이다. - 아키텍처 가이드라인을 통해서 프로그램 구조적인 균형을 유지 - 구현 가이드라인을 통해서 각 클래스가 전체 적인 설계의 구성원으..

[Code Complete 2] 프로젝트 절차 (architecture 설계에서 할일)

프로젝트의 절차 1. 문제 정의 - 해결책에 대해서는 언급하지 않고 문제가 문엇인지 정의한다. - 사용자의 언어로 작성 한다. 2. 요구 사항 - 소프트웨어 시스템이 무엇을 수행해야 하는지에 대해서 상세하게 기술한다. - 해결책을 구현하기위한 첫 번째 과정 이다. - 명시적 요구사항의 필요성. - 사용자가 시스템의 기능을 주도하게 하는데 도움이 된다. - 요구사항을 명시적으로 정의함으로써 사용자가 원하는 것이 무엇인지를 알 수 있다. 3. 아키텍쳐 - 시스템 전반에 적용되는 설계상의 제약 사항을 명시한다. - 모든 설계에는 타당한 이유가 있어야 한다. - 모든 주요 결정사항에 대한 동기를 기술 해야한다. - 아키텍쳐에서 해야 할 일 1) 프로그램 구조 설계 - 프로그램 내의 중요한 빌딩 블록 을 정의 해..