C프로그램 설계 어떻게 하시나요?
이번에 회사 생활 처음 시작한 사람입니다.
객체지향 프로그램은 UML로 한다고 치고(안해서 모르니까요..)
C는 어떻게 설계 하시나요?
회사에서 테스트 프로그램 만들라고 시키길래
연수 때 배운 걸로 했습니다.(솔직히 기억가물가물 한데..)
함수 이름을 네모로 하고 호출 하면 화살표로 이어주고
데이터 흐름은 같은 화살표면 헷갈리니까
검은 점에서 나온 화살표가 있고 화살표 위에 데이터 이름
써주는 방식으로 했습니다.(연수 때 이걸 배운건지 아무튼 떠올라서 했습니다)
그런식으로 설계 해서 선배님한테 보내니까
보기 힘드니까(우리 부서는 펌웨어 팀이라 기계어 위주입니다.)
예전 방식대로 네모, 마름모로 설계해서 다시 달라더군요
할 수 없이 다시 만들어서 보냈습니다.
그리고 나서는 .c .h파일에 함수 이름들하고 호출 되는 루틴 들만
만들 어서 여기 저기 함수로 뛰어 다니게 만든 것 까지 만들었습니다.
그런데 정작 프로그램 다 만들고 나니 오히려 설계 한 그림보다는
파일 이름에 적었던 함수이름들과 헤더 선언들'만' 참조 하면서
만들게 되더군요.
일이 이지경까지 되고 나니까 내가 뭔가 잘못하는건 아닌가
하는 생각이 들었습니다. 설계 해놓고 설계도 안보고
집 짓는 것 같은 그런 생각이 들어서요
학부생 때는 그냥 종이에 찍찍 그린다음에 그린거하고는
적절히(?) 다른 코딩을 하던 기억이 나네요
물론 여럿이 하는 회사 프로젝트에는 못 써먹겠죠..
다른 분들은 어떤식으로 하시나요?
좋은 설계 및 코딩 습관 조언좀 해주세요
-_-; C언어에서 그 정도면 양호하지요.
Top Down Level 방식으로 설계합니다. 일단 일의 처리 순서를 생각하고,
각 처리에 필요한 함수를 잘게 부숩니다.
각각의 함수를 구현 가능할 정도로 나눠놓고는
열심히 함수를 만듭니다.
각 함수를 연결하는 중간 단계 함수들을 가지고 테스트 해보면서,
다시 상위 함수를 만듭니다.
상위 함수가 모두 연결되어 프로그램 수행 순서를 제대로 따라가면,
일단은 완성입니다.
문제는 테스트인데, 테스트 할 때, 각 경우에 따른 완벽한 테스트 모델이 뒷받침 되어줘야 한다는 점입니다.
예외처리를 잘 해줬는지에 중점을 두지 않으면 의도하지 않은 오류로 고생합니다.
제 경우에는 Top-Down 방식에 더해서 중요한 데이타들은 객체지향 방
제 경우에는 Top-Down 방식에 더해서 중요한 데이타들은 객체지향 방식으로 설계 합니다.
=-=-=-=-=-=-=-=-=
http://youlsa.com