남에 소스코드 분석하기
남이 짜놓은 소스코드를 유지보수하는 일을 맏게되었습니다.
이전 담당자는 2년경력자이고, 전자과를 졸업하여, 소프트웨어, 펌웨어를 잘 작성하지는 못하지만, 자신만의 방식으로 그럭저럭 잘 사용해온것 같다.
물론, 이전에 다른사람이 작성해 놓은 코드를 가져다가 사용한 흔적도 있다.
자료구조를 잘 몰라, 좀 이상하게 작성해 놓았다.
소스코드를 보자 마자 머리가 아파온다.
초보자들은 보통 쉬운것을 빙빙 돌려서 어렵게 작성한다.
버그가 생길만한곳도 많다.
과연 제대로 돌아가는걸까?
여기저기서 버그 발생소지가 있는 코드들이 보인다.
아이고 머리야...
새로 작성하는건 어렵지 않으나, 기존 시스템과 호환성을 유지하는건 쉽지않다.
시스템을 완전히 이해하고 새로작성하든가, 시스템에 맞게 잘 고쳐써야한다.
둘다 어렵다.
시스템에서 변경 불가능한 부분이 있다면, 변경할 수 없다.
그냥 잘 고쳐쓰는것도 한계에 다다르면, 방법이 없다.
몇일 분석해보고, 어떻게할지 결정해야한다.
본론으로 들어가서, 남에 코드가 문제가 없는지 확인하는 방법은 사용하는 데이터를 모두 넣어보고, 문제점을 찾는것이다.
물론, 변수값이 많아지면, 이것도 불가능이 될 수 도 있다.
보통은 중간중간 디버깅코드를 넣어서, 해당 변수값의 범위를 알아낸다.
또한 특정 값이 입력될때 버그가 없는지 확인한다.
입력값은 데이터로 미리 넣어놓고, 실제로 입력을 받은것처럼 동작을 시켜보는 것이다.
완벽하게 분석하려면, 많은 부분에서 코드수정이 이루어져야하는 경우가 대부분이고,
일부 코드는 아예 처음부터 다시작성하는것이 쉬울 수도 있으나, 새로작성한 코드에 문제가 생기면 책임은 본인에게 돌아간다.
요약 : 거의 대부분의 코드를 검증해야하며, 쉽지않은 작업이다.
'C언어,ARM' 카테고리의 다른 글
ATXMega-클럭 변경 (0) | 2020.05.30 |
---|---|
J2Cal 계산기, RS232TestProgram3, ScreenBMPcopy (0) | 2020.05.25 |
ARM cortex 업체별 코드 호환성 (0) | 2020.05.09 |
STM32 - ST-LINK download (0) | 2020.05.09 |
SMT32 - UART1 설정 (0) | 2020.05.09 |