Page 82

본격적으로 코드를 작성하기 전에 반드시 프로그램 디자인부터 해야 한다. 특히 팀 단위로 프로 그램을 작성할 때는 사용할 데이터 구조나 클래스에 대한 분석 작업부터 먼저 해야 한다. 프로그 램을 함께 작성하는 다른 동료의 계획을 전혀 모른 채 무작정 코드부터 작성하는 것은 상당히 위 험하다. 이 장에서는 C++ 프로그램을 전문가답게 디자인하는 방법을 소개한다. 소프트웨어 공학 프로세스에서 디자인은 굉장히 중요한 역할을 한다. 하지만 실전에서 가볍게 보거나 오해하는 사람이 많다. 그래서 구체적인 계획 없이 무작정 코드부터 작성하는 프로그래 머가 너무 많다. 코드를 작성하면서 디자인하는 것이다. 이렇게 접근하면 디자인이 상당히 난해 하고 복잡해지기 쉽다. 그래서 구현과 디버깅, 유지보수가 굉장히 힘들어진다. 본능을 거스르는 기분이 들더라도 프로젝트를 시작할 때 시간을 충분히 투자해서 제대로 디자인 하면 오히려 프로젝트 완료 시점을 앞당길 수 있다.

4.1 프로그램 디자인의 정의 프로젝트를 새로 시작하거나 기존에 구현했던 프로그램을 개선하기 시작할 때 가장 먼저 할 일 은 요구사항을 분석하는 것이다. 요구사항은 이해 당사자와 함께 논의한다. 요구사항 분석 단계 에서 가장 핵심적인 결과는 기능 요구사항 문서다. 이 문서는 작성할 코드가 정확히 할 일만 표 현하고, 그 일을 달성하는 구체적인 방법은 생략한다. 요구사항 분석 과정에서 비기능 요구사항 문서도 나올 수 있다. 이 문서는 최종 결과로 나오는 시스템에 대한 동작이 아닌 속성을 표현한 다. 예를 들어 시스템이 보안에 뛰어나고, 확장성도 높고, 일정한 성능 기준을 만족해야 한다는 식으로 표현한다. 요구사항을 모두 수집했다면 프로젝트 디자인 단계로 넘어간다. 프로그램 디자인 또는 소프트웨 어 디자인이란 앞 단계에서 도출한 (기능 및 비기능) 요구사항을 모두 만족하는 프로그램을 구 현하기 위한 구조에 대한 명세서다. 쉽게 말해 디자인이란 프로그램의 구현 계획을 정리한 것이 다. 디자인은 일반적으로 문서 형태로 작성한다. 회사나 프로젝트마다 디자인 문서 포맷을 나름 대로 정해두고 있는데, 대부분 다음과 같이 크게 두 부분으로 구성된다. 1 프로그램을 구성하는 서브시스템 : 인터페이스와 서브시스템 사이의 의존성, 서브시스템 사이의 데이터 흐

름, 서브시스템에 대한 입출력, 기본 스레드 활용 모델 2 서브시스템별 세부사항 : 클래스 구성, 클래스 계층도, 데이터 구조, 알고리즘, 개별 스레드 활용 모델, 에러

처리 방법

176 2부 전문가답게 C++ 소프트웨어 디자인하기

Profile for 한빛미디어

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

Advertisement