소프트웨어 구조 분석에 대한 문서를 쓰라는데..

llblurryeyes의 이미지


뭔가 휩쓸려버린 것 같은 아침 회의가 포풍같이 지나갔네요
신입사원들 문서쓰는게 맘에 안드셨는지 문서쓰는 연습을 해야된다며 과제를 받았습니다.
현재 개발중인 프로그램의 구조분석에 대한 문서를 쓰라는데 도통 어떻게 써야 하는지 감이 안오네요
일단은 구조분석의 목적과 어떻게 구조분석할건지 쓰라는데..
이걸 뭐라고 써야되는지 애초에 감도 안오고 분위기상 물어보는것도 그렇고 ㅠㅠ

어떻게 쓰는게 가장 현명할까요 -_-;;;

jachin의 이미지

아아... 매번 '프로그램도 할 줄 모르는 XX'라고 욕먹고 있는 1인입니다.

별로 참고가 안되실 답변일지도 모르겠지만, 다른 분께서 득달같이 달려들어 답글을 남기시길 기원하며 답글을 남겨보겠습니다.

먼저 프로그램의 구조 분석 목적은 협업하는 개발자나 미래의 개발자들에게 자신이 제작한 프로그램에 대한 정보를 전달하여, 유지보수가 쉽게 하기 위한 데에 목적이 있습니다. 개발 문서에 프로그램이 동작하는 원리와, 동작 내용, 왜 만들었으며, 목표가 무엇인지 등의 내용을 작성합니다.

구조 분석을 할 때에는 작성 중인 프로그램의 일부분, 가령 함수라면, 전달되는 인자들이 무엇인지, 각각 어떤 의미를 갖고 있는지, 인자들이 어떻게 사용되고, 어떻게 처리되는지, 그러한 처리를 담당하는 함수부나 프로그램 부분이 어디인지 명시합니다. 그리고 처리 후에는 어떤 값을 반환하는지도 써줍니다. 부분 외의 미리 선언된 값이 있다면, 어떤 선언값들을 참고하고 있는지도 같이 명시합니다. 또한 그 선언값이 어떤 의미를 내포하고 있는지도 같이 써주시면 좋습니다.

대부분 프로그램을 작성하다가 미궁에 빠져버리는 경우가 있는데, 그런 경우 다른 사람의 협업을 얻기 위해서라도, 프로그램 작성이 어디까지 진행이 되었으며, 어떤 이유로 그렇게 작성했는지, 해결되지 않는 점이 무엇인지 잘 써두는 것이 좋습니다. 완성이 되었는지 여부도 같이 써주시면 좋습니다.

직접 작성하신 프로그램이 아니더라도, 프로그램의 내용을 확인하는 차원에서 작성을 하는 것이니, 각 프로그램의 내용이 어떤 것인지 확인해보시고 주석을 달아두셔도 좋다고 생각합니다.

프로그램 함수 간의 관계, 의존하는 선언값이나 변수 등을 기재하시고, 함수의 상하관계(Hierarchy)를 그리시는 것도 도움이 되리라 생각합니다.

부디 용기를 가지고 부딪히시길 바랍니다.

oosap의 이미지

UML 2.0 과 같은(아직도 최신버전이 2.0인지 잘 모르겠군요) 표준적인 문서화 기법을 사용하는 것이 베스트 일 것입니다.
저같은 경우 UML 의 클래스 관계 다이어그램과 시퀀스 다이어그램은 항상 그리고 있거든요.
표준적인 방법 말고도 리소스 중심으로 이해하기 쉬운 다이어그램을 그려보는 것도 좋습니다.
구조분석이니까 더더욱 프로세스, 쓰레드, IPC 자원 들이 어떻게 배치되어있는지를 그려보는게 필요할 것 같습니다. 회사에서 정의된 기호같은게 있으면 그런 걸 사용하고 없으면 창안해보는 것도 괜찮을 것 같아요.
그리고 분석 대상 코드가 독시즌 생성이 가능하도록 되어있다면 독시즌으로 문서를 생성해서 첨부하면 베스트가 아닐까... 싶어요.

요컨대, UML 2.0 클래스 관계다이어그램(OO 언어라면) + UML 2.0 시퀀스 다이어그램(OO 언어라면) + 리소스 중심의 구조 분석 다이어그램 + 독시즌 API 래퍼런스(독시즌 형식 주석이 있다면)

저라면 이렇게 합니다.

Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.

llblurryeyes의 이미지

저 스스로 글을 올리면서도 애매하고 정리가 안됐었는데
두분 댓글을 보니 어느정도 어떻게 작성해야할지 알겠어요 ㅠ_ㅠ
감사 또 감사드립니다. 열심히 작성해볼게요!