•
소프트웨어 개발에서 construction이라는 용어는 구현이라고 한다.
•
개발에서의 구현 과정에서는 계획과 설계, 작업 내용 확인 등이 포함되지만 대개 구현이라고 하면 무언가를 만드는 작업을 의미한다.
1. 소프트웨어 구현이란 무엇인가?
•
컴퓨터 소프트웨어 개발 과정에는 다음과 같은 수많은 활동들이 존재한다.
◦
문제 정의, 요구사항 개발, 구현 계획 수립, 소프트웨어 아키텍처 또는 고급 수준 설계, 상세 설계 등
•
구현은 코드를 작성하고 디버깅하는 것이라고 일반적으로 받아들여지지만 그와 더불어 상세 설계, 구현 계획 수립, 단위 테스트 등을 비롯한 다른 활동들도 포함된다.
•
이 책에서 의미하는 구현은 프로그래밍과 같다. 구체적인 구현 활동은 다음이 있겠다.
◦
성공적인 구현 활동을 위한 기초 작업 검증, 코드에 대한 테스트 방법 결정, 클래스 및 루틴 설계와 작성 등
2. 소프트웨어 구현이 중요한 이유는 무엇인가?
•
구현은 소프트웨어 개발에서 큰 비중을 차지한다.
◦
프로젝트의 크기에 따라 일반적으로 구현은 전체 프로젝트 기간의 30%에서 80%를 차지한다. 따라서 중요하다.
•
구현은 소프트웨어 개발 과정에서 중심적인 활동이다.
◦
요구사항 분석과 설계는 효과적인 구현을 위해 구현보다 앞서 이뤄진다. 시스템 테스트는 구현이 제대로 되었는지 검증하기 위해 구현 후에 수행한다. 구현은 소프트웨어 개발 과정의 중심에 있다.
•
구현에 집중함으로써 프로그래머의 생산성을 크게 향상할 수 있다.
•
구현의 결과물인 소스코드만이 소프트웨어를 정확하게 설명하는 경우가 많다.
◦
많은 프로젝트에서 개발자에게 허용된 유일한 문서는 코드 자체다. 요구사항 명세서와 설계 문서는 최신 정보를 반영하지 못할 수 있다.
◦
소스코드는 항상 최신 내용이다. 따라서 소스코드는 항상 최고의 품질을 유지해야 한다.
•
구현은 반드시 해야 하는 유일한 활동이다.
◦
이상적인 프로젝트는 구현을 시작하기 전 요구사항을 정의하고 아키텍처를 설계한다.
◦
이상적인 프로젝트는 구현을 끝내고난 후 통계를 기반으로 한 포괄적인 시스템 테스트를 거친다.
◦
하지만 위 둘은 생략이 가능하다. 프로젝트에서 생략이 불가능한 것은 구현이다.
3. 이 책을 읽는 방법
•
통독도 원하는 것만 읽는 것도 좋다.
요점 정리
•
소프트웨어 구현은 소프트웨어 개발 과정의 중심적인 활동이다. 그리고 구현은 모든 프로젝트에서 반드시 수행해야 하는 유일한 활동이다.
•
구현 과정의 주요 활동은 상세 설계, 코드 작성, 디버깅, 통합, 개발자 테스트(단위 테스트, 통합 테스트)다.
•
구현은 흔히 코드 작성 또는 프로그래밍이라고 한다.
•
구현 품질은 소프트웨어 품질에 많은 영향을 준다.
•
결국 구현 방법을 얼마나 잘 이해하느냐가 얼마나 훌륭한 프로그래머인지를 결정하고 이 책의 나머지 내용도 그에 대한 것이다.