1. 서언
정보통신 부문의 임베디드 SW엔지니어링, DB엔지니어링 직무와 관련된 국가직무능력표준이 제시하는 직무능력 수준, 능력단위명, 세부내용, 필요역량을 정리해보겠습니다.
2. 국가직무능력표준(NCS) 공통 부문
1) 임베디드 SW 엔지니어링
하드웨어 플랫폼에 대한 이해를 바탕으로 플랫폼별로 운영체제 이식과 펌웨어, 디바이스 드라이버, 애플리케이션 등 임베디드 소프트웨어를 개발하고, 하드웨어 플랫폼에 최적화를 수행
임베디드 SW 엔지니어링 직무의 능력단위는 크게 운영체제 이식, 디바이스 드라이버(분석·설계·구현), 임베디드 SW(요구사항분석·아키텍처설계), 임베디드 시스템테스팅, 펌웨어(분석·설계) 로 구성됩니다. 각 능력단위별 수준과 세부내용, 필요역량은 다음과 같습니다.
① 운영체제 이식 · 디바이스 드라이버
| 수준 | 능력단위명 | 세부내용 | 필요역량 |
|---|---|---|---|
| 6 | 운영체제 이식 | 1. 커널 이미지 구현 : 호스트에 설치된 교차개발 환경 숙지, 메모리 관리모듈 작성, 소스분석 활용 타이머 초기화, 전원관리 모듈 코드작성, 보드 종속적 코드 식별, 수정, 스크립트 파일 수정, CPU 커널 구성, 커널 이미지 생성 2. 부팅 시험 : 커널 이미지 준비, 호스트와 타겟보드 시리얼 라인으로 연결, 타겟 보드 기억장치에 저장, 생성된 커널 이미지가 부트로더를 통하여 타겟보드 탑재, 정상적 커널 실행 확인 | 의사소통, 수리, 문제해결, 정보, 기술 |
| 6 | 디바이스 드라이버 분석 | 1. 설계전 준비 : 타겟보드에 적용된 해당 데이터 시트, 하드웨어 설계자료 확보, 적용된 유사 드라이버가 있을 경우 참조용 드라이버 샘플코드 확보 2. 드라이버 분석 : 디바이스 드라이버의 로딩, 종료시점 정의, 확보된 관련 자료들을 분석, 사용된 디바이스들의 인터페이스 방식 분석, 타겟보드 적용 특성 파악, 적합한 형태 정의, 활용 최적화를 위해 레지스터 속성, 기능분석, 운영체제와 드라이버간 관계, 앱프로그램과 드라이버간 인터페이스 구조 분석 | 의사소통, 수리, 문제해결, 자원관리, 정보, 기술 |
| 6 | 디바이스 드라이버 설계 | 1. API모듈 설계 : 인터페이스에 포함될 루틴에 대한 이름, 매개변수 개수, 종류, 리터타입 등 정의, 디바이스 초기화, 데이터 송수신 루틴 의사코드 작성, 데이터 송수신 성능향상을 위한 버퍼링 메커니즘 설계, 필요 루틴에 대한 의사코드 작성, 인터럽트 처리 메커니즘 설계 2. 설계 문서화 : 레지스터 메모리 맵 제어, 상태 레지스터 표현 자료구조 설계, 문서화, 타겟보드 적용 디바이스 초기화 방법, 절차, 표준 API 및 인터럽트 처리방법 설계, 문서화, 설계된 드라이버 구현 과정 고려 및 제약사항에 대한 설계, 문서화 | 의사소통, 수리, 문제해결, 자원관리, 정보, 기술 |
| 6 | 디바이스 드라이버 구현 | 1. 구현 : 설계자료를 기준으로 디바이스 제어 드라이버 구현, 디바이스 특성에 적합한 드라이버 타입 정의, 디바이스들의 초기화, 제어방법 정의, 드라이버 검증용 테스트 코드 작성 2. 소스코드 인스펙션 : 설계문서, 소스 준비, 인스펙션 일정수립, 참고용 사내 프로그래밍 표준 문서 준비, 소스 프로그램 작성자가 내용 설명, 인스펙션 과정의 문제점들의 심각성, 가능한 해결책을 문서화, 소스 문제점 수정, 컴파일하여 추가적 문법 오류, 경고 제거 | 의사소통, 수리, 문제해결, 자기개발, 자원관리, 대인관계, 정보, 기술 |
② 임베디드 SW 요구사항분석 · 아키텍처설계
| 수준 | 능력단위명 | 세부내용 | 필요역량 |
|---|---|---|---|
| 6 | 임베디드 SW 요구사항분석 | 1. 요구사항 도출 : 요구사항 수집, 내용 파악, 개발하고자 하는 임베디드 SW에 미치는 영향 분석, 요구사항 적용범위 확인, 요구사항을 기능적/비기능적으로 분류, 우선순위, 영향범위 도출 2. 요구사항 명세화 : 사용자 요구사항 정의서 작성, 시스템 운영환경 구체화, 문서화, 요구사항 구체화, 요구사항 명세서 작성 3. 요구사항 검증 : 명세서의 문서표준 준수 및 사용자가 이해할 수 있도록 일관성, 완성도 검증, 명세서 오류, 잘못된 가정, 불명확한 설명, 비표준적인 내용 등 검토, 기술환경, 구현가능성, 항목간 불일치성, 안정성 등을 고려, 명세된 요구사항들 검증 | 의사소통, 수리, 문제해결, 정보, 기술 |
| 6 | 임베디드 SW 아키텍처설계 | 1. 모듈화 : 요구사항 분석에서 정의된 기능&비기능 세분화, 상호 독립적인 세부단위, 중복성 및 재사용성 고려, 모듈 정의, 모듈간 상호관계 설계, 요구사항 충족여부 확인을 위해 모듈간 상호관계 검증 2. 데이터 구조 설계 : 필요한 정보 추상화, 구체화, 모듈에서 사용할 데이터 정의, 모듈의 상호관계에 따라 데이터 구조 정의, 설계 3. 인터페이스 설계 : 도출된 요구기능에 대한 외부 인터페이스 선정, 목록화, 분석, 필요한 인터페이스 분류, 정의, 선정된 운영체제, 플랫폼이 제공하는 인터페이스 조사, 목록화, 분석, 필요한 인터페이스 선정, 분류, 표준화 | 의사소통, 수리, 대인관계, 정보, 기술 |
③ 임베디드 시스템테스팅
| 수준 | 능력단위명 | 세부내용 | 필요역량 |
|---|---|---|---|
| 5 | 임베디드 시스템테스팅 | 1. 단위 테스트 : 개발된 소스코드의 안정적인 동작을 테스트하기 위해 테스트 케이스 문서, 코드 준비, 단계별 테스트 접근방법에 따라 각 단위 모듈별 테스트 프로그램 컴파일, 링크하여 바이너리 이미지 작성, 테스트 프로그램 수행, 테스트 케이스별 정상적인 동작여부 확인 문서화 2. 통합 테스트 : 통합테스트가 끝난 SW 전체소스 컴파일하고 링크, 바이너리 이미지 작성, 다운로드, JTAG포트 이용 플래시 메모리에 기록, 요구사항의 모든 항목의 정상적인 수행여부 확인, 검증 3. 테스트 지원 : 테스트 환경에 따라 필요한 자원, 장비, 환경조사, 정의, 테스트 케이스 문서 준비, 요구사항의 모든 항목의 정상적인 수행 확인에 필요한 사항 준비 4. 버그 수정 : 테스트 케이스 실행, 실행결과 분석, 버그 발견, 버그원인 분석, 원인식별된 버그 수정, 회귀테스트 수행, 원인이 불분명한 버그 추가적인 테스트. 자동화된 도구를 활용한 디버깅 수행 5. 변경관리 : 형상관리 지침에 따라 SW변경에 대한 사용자 요구사항 확인, 변경작업 수행, 검토된 변경내용을 다음 배포판에 반영 조치, 버전관리도구를 활용 버전 빌드, 수정, 검토된 변경내용을 새로운 버전에 포함 | 의사소통, 문제해결, 자원관리, 정보, 기술 |
④ 펌웨어 분석 · 설계
| 수준 | 능력단위명 | 세부내용 | 필요역량 |
|---|---|---|---|
| 5 | 펌웨어 분석 | 1. 운영체제 부트 과정 분석 : 회로도, 주요부품 리스트, 데이터시트 확보, 운영체제 부팅 관련 정보, 운영체제 부팅절차 분석, 시스템 HW에서 부팅에 사용가능한 장치 분석, 시스템에서 가능한 부팅방법들의 구체적인 절차, 문서화 2. 요구사항 도출 : 부팅에 필요한 주변장치들의 동작방법에 대한 요구사항, 부팅방법에서 지원하는 옵션 정리, 부팅절차에 따른 플래시 메모리 관리에 필요한 요구사항 도출, 부트로더가 지원해야 하는 모든 명령, 동작, 시스템 리셋상황 시 펌웨어 수행절차 기술, HW 초기화 방법, 펌웨어 테스트 순서 결정 3. 요구사항 분석 : 펌웨어 설계, 구현을 위한 개발도구 준비, 테스트 대상 HW 파악, 운영체제 부트과정, 부트로더 요구사항 파악, 전원 관련 HW 지원사항, 운영체제 전원관리 기술, 요구사항 파악, 운영체제에서 전원관리를 수행하는 하드웨어 단위 분석, 시스템 리셋 시 펌웨어 수행절차, HW 초기화, 테스트 순서 기술 | 의사소통, 수리, 문제해결, 정보, 기술, 조직이해 |
| 5 | 펌웨어 설계 | 1. HW테스트 SW 설계 : 정의된 테스트 순서에 따른 각 하드웨어 테스트 모듈이름 결정, HW 기능항목 별 테스트 코드번호 지정, 테스트 결과확인을 위한 결과코드 지정, 테스트 결과에 따라 펌웨어 이후동작 정의, HW 초기화 절차, 동작여부 확인절차 설계, HW 동작결과 분류, 코드 할당방법 설계 2. 구조 설계 : 부트로더 기능 분류, 공통요소 추출, 재사용성 확보, 중복개발을 피하기 위한 HW 제어, 하위 공통모듈, 상위기능 모듈, 사용자 인터페이스로 구성된 계층구조 정의, 계층 간 인터페이스 정의, 계층 내 단위모듈들 정의, 펌웨어와 연계 대상 모듈간 특성을 고려 계층내 정의된 단위 모듈들 사이의 인터페이스 정의, 사용자 인터페이스 정의 3. 단위 SW 모듈 설계 : 인터페이스 분석, 내부절차에 필요한 자료구조 정의, 의사코드 작성 | 의사소통, 수리, 문제해결, 정보, 기술, 조직이해 |
정리
임베디드 SW 엔지니어링 직무는 능력단위에 따라 수준 5~6에 걸쳐 있습니다. 운영체제 이식, 디바이스 드라이버 분석·설계·구현, 임베디드 SW 요구사항분석·아키텍처설계는 수준 6으로, 임베디드 시스템테스팅과 펌웨어 분석·설계는 수준 5로 제시되어 있습니다.
필요역량 측면에서는 의사소통, 수리, 문제해결, 정보, 기술이 대부분의 능력단위에 공통으로 요구되며, 여기에 능력단위의 성격에 따라 자원관리(드라이버 분석·설계, 시스템테스팅), 대인관계·자기개발(드라이버 구현, 아키텍처설계), 조직이해(펌웨어 분석·설계)가 추가로 요구됩니다.