본문 바로가기

Embedded Systems : 전자제어 장치/Tech. Issue

What is a software defect? 소프트웨어 결점 이란?

소프트웨어 개발이 중요할까요?

테스트하고 검증하고 평가하는 것이 왜 필요할까요?

물리적인 영역과 밀접하게 관련된어 작동하는 소프트웨어라면?

 

어릴때 시청한 로보캅의 한 장면이다. 이때까지 난 로봇이 잘못이라고 생각했다. 하지만 이것은 소프트웨어 개발자나 엔지니어가 잘못된 코딩을 한것이다. 아니지 담당자들은 요구사항대로 개발을 했을 것이고 SW공학 관점에서는 문제가 없을 것이다. 

 

로보캅 1편

1) 로봇이 총을 든 사람을 감지하여 총을 내려 놓으라고 한다.

 

2) 당연히 총을 바닥에 던진다.

 

3) 로봇은 여전히 총을 내려놓으라고 말한다. 15초 남았다. 15초후 발포 할 예정이다. 과학자? 엔지니어들이 당황한다.

총은 없어졌지만 총을 바닥에 내려 놓은 것이 감지가 안된것이다? 따라서 총은 안들고 있지만 내려놓지도 않았기에 따라서 발표 명령 해제 조건이 불충분한 것이다.

 

4) 회의장은 아니 시연장은 아비규환이다. 누가 저기서 실탄까지 장착 할 줄이야 미국이라 그런가

로봇이 타겟 추적을 하고 있다. 5초 남았다. 왜 아무도 셧다운 버튼을 누르지 않는거지? 

 

5) 결국 최악의 상황인 총이 발표되고 있다.

 

과거 IT 에서의 SW 개발은 사람의 사용성에 초첨을 두고 개발되어졌다. 앞으로는 더 이상 사람의 사용보단 앞서 예측하고 미리 동작하는 시대가 이미 왔으며 급속도로 정진 할 것이다. 문제는 소프트웨어가 물리적인 필드에서 직접적으로 관여할 수록 테스트하고 검증하고 평가하는 활동들이 더욱 더 중요한 한 문제가 될 것이다. 하지만 여전히 선개발 후 문제대응이다. 수십년간 시간이 지남에도 불구하고 선개발 후 문제대응이라는 것은 바뀌지 않았으며 이것이 인간의 본질인 것이다. 그렇기 떼문에 난 몇가지 신기술에 대한 필드 데이터 이력없이는 사용하기를 꺼려한다.