0992010 김정우 임베디드 시스템
TRANSCRIPT
임베디드시스템
1. 제품
주변에서 흔히 볼 수 있는 커피 자판기.
설정에 따라 동전을 넣거나, 넣지 않고 버튼을눌러 커피를 뽑을 수 있다.
좌측 상단의 7 segment display는 사용자가 넣은 금액을 표시하며, 커피가 나오는 동안 현재작업 중임을 표시한다.
좌측 사진의 자판기는 동전 없이 동작하며, 한가지의 버튼만 활성화되어 있다.
2. 왜소프트웨어인가? (1)
7 segment 등의 Display 표시.
가격 등의 데이터 변경 시 유리.
소프트웨어를 기반으로 사용한 자판기의 경우,
업그레이드를 통한 품질 개선을 위함.
자판기 동작 절차를 제어.
2. 왜소프트웨어인가? (2)
커피를 마시기까지 절차의 단순화
→ 시간 절약
커피를 만드는 수고의 감소
→ 인력 감소
3. 버그
정상적인 경우
- 버튼 1회 누르면 컵 1개가 나오고 커피가 나옴.
- 커피가 나오는 도중 버튼을 다시 눌러도 반응하지 않음
버그가 발생한 경우
- 버튼 1회 누르면 컵 2개가 나오고 커피가 나옴.
기타 버그가 발생한 경우
- 버튼 1회 누르면 컵이 나오지 않고 커피가 나옴.
3. 버그 –재현가능성?
자판기 내부의 알고리즘이 엉켜서 발생하는 것으로 추측
→ 언제 발생할 지 예측 불가
→ 재현의 어려움
일반적으로 자판기에 컵 또는 음료가 없을 경우해당 상태를 알려주기 때문에 인위적인 재현은어려울 것으로 판단
4. 시스템구조예상 (1)
본 예시의 경우(돈을 넣지 않는 경우)
1. 버튼을 누른다.
2. 컵이 나와있는 지를 판별하고 나와있지 않다면컵을 1개 내보낸다.
3. 컵을 내보낸 후 커피 믹스를 일정량 내보낸다.
4. 커피 믹스를 내보낸 후 물을 일정량 내보낸다.
5. 2~4번 과정을 진행하는 동안 7 segment display는 진행 중임을 표시한다.
6. 4번까지의 과정 후 7 segment display를 초기화한다. (000)
☞ 단, 2~4의 과정은 이전에 실행되었는지
확인해야 한다.
4. 시스템구조예상 (2)
컵, 커피 믹스, 물
- 소프트웨어의 경우 Locking 과 같은 방법을 이용하여 구현할 것으로 예상.
- Locking이 제대로 이루어지지 않을 경우 좌측의 사진과 같은 버그가 발생할 것으로 예상.
설계
시작
버튼입력?
Y
N
컵배출
컵배출?N
Y
커피믹스배출
커피믹스배출?
N
Y
물배출
물배출?
N
Y
종료
대기 버튼입력있음
버튼입력
컵배출
커피믹스배출
물배출
음료판매시작
커피믹스[컵나옴]/커피믹스배출
물[커피믹스나옴]/물배출
음료판매종료
기기종료
사용자 버튼인식버튼 입력정보
음료파악 컵배출동작 신호
커피믹스배출
컵 배출 단계 완료신호
물배출커피믹스 배출단계 완료 신호
음료정보메모리
음료 정보
테스트
대기
버튼입력
컵배출
커피믹스배출
물배출
연속해서버튼을입력할경우최초의입력이외의것은무시되는가?음료가나올때까지버튼의입력이무시되는가?
컵이 1개만나오는가?
정해진양만큼커피믹스가나오는가?
정해진양만큼물이나오는가?물의온도는적당한가?