본문 바로가기

플밍 is 뭔들/Code Complete

소프트웨어 구현의 정의

※ 소프트웨어 개발 과정

- 문제정의

- 요구사항 개발

-구현 계획 수립

- 소프트웨어 아키텍처 또는 고급 수준 설계

- 상세 설계

- 코드 작성 및 디버깅

- 단위 테스트

- 통합 테스트

- 통합

- 시스템 테스트

- 유지보수

 

※ 소프트웨어 구현이란 무엇인가?

소프트웨어 구현은 코드를 작성하고 디버깅하는 것이지만, 그와 더불어 상세 설계, 구현 계획 수립, 단위 테스트, 통합, 통합 테스트를 비롯한 다른 활동도 포함된다. 구현 외에 중요한 활동으로는 관리와 요구사항 개발, 소프트웨어 아키텍처, 사용자 인터페이스 설계, 시스템 테스트, 유지보수가 있다.

구현 활동에 속하는 구체적인 작업 예시

- 성공적 구현 활동을 위한 기초 작업 검증

- 코드에 대한 테스트 방법 결정

- 클래스 및 루틴 설계와 작성

- 변수와 이름 상수(named constant) 생성 및 이름 부여

- 제어 구조 선택과 명령문 블록 구조화

- 코드에 대한 단위 테스트, 통합 테스트, 디버깅

- 저수준 설계와 코드를 다른 팀원과 교차 검토

- 조심스럽게 코드의 포맷을 맞추고 주석을 달아 코드를 정리

- 개별적으로 작성한 소프트웨어 컴포넌트의 통합

- 코드가 더 빨리 실행되고 더 적은 자원을 사용하도록 최적화

 

※ 소프트웨어 구현이 중요한 이유

1. 구현은 소프트웨어 개발에서 큰 비중을 차지한다.

- 프로젝트에 따라 전체 기간의 30 ~ 80%를 차지한다. 이 정도의 시간을 차지할 정도면 무엇이 됐든 프로젝트 성공에 큰 영향을 미치게 되어 있다.

 

2. 구현은 소프트웨어 개발 과정에서 중심적인 활동이다.

- 요구사항 분석 및 설계는 효과적 구현을 위한 앞 단계, 시스템 테스트는 독립적인 테스트라는 측면에서 구현이 잘 되었는지 검증하는 구현 이후의 단계. 구현은 소프트웨어 개발의 중심에 있다.

 

3. 구현에 집중함으로써 프로그래머의 생산성을 크게 향상할 수 있다.

- 프로그래머 개인의 생산성은 구현하는 동안 10 ~ 20배정도 차이가 있다. 

 

4. 구현의 결과물인 소스코드만이 소프트웨어를 정확하게 설명하는 경우가 많다.

- 소프트웨어를 설명하는 문서들은 최신화가 안될 수 있지만 소스코드는 항상 최신 내용이다. 따라서 소스코드는 항상 최고의 품질을 유지해야 한다. 소스코드의 품질을 향상시키기 위한 기법을 지속적으로 적용하는 것은 거창하기만 하고 하는일을 보잘것 없는 프로그램과 세밀하고 유용한 프로그램과의 차이를 만들어 낸다. 그러한 기법들은 구현중에 가장 효과적으로 사용할 수 있다.

 

5, 구현은 반드시 해야 하는 유일한 활동이다.

- 프로젝트를 완성하는 과정에는 다양한 단계들이 있다. 하지만 아무리 급하고 계획이 엉성한 프로젝트라도 구현 단계를 생략할 수 없다. 그것이 핵심이기 때문이다. 따라서 개발 과정이 얼마나 단축되든 상관없이 구현 과정을 향상시키는 것이 소프트웨어 개발에 들이는 수고를 더는 방법이다.