기본 콘텐츠로 건너뛰기

라벨이 생애주기인 게시물 표시

MEDI-01. IEC 62304: 의료기기 소프트웨어 개발 프로세스

IEC 62304는 의료기기 소프트웨어의 전체 '수명 주기(life cycle)'에 대한 요구사항을 정의하는 국제 표준입니다. 소프트웨어 결함이 환자에게 심각한 위험을 초래할 수 있으므로, 이 표준은 환자의 안전 보장을 최우선 목표로 삼습니다. 따라서 미국 FDA, 유럽 CE 등 대부분의 규제 기관은 의료기기 승인을 위해 IEC 62304를 준수하는 체계적이고 문서화된 개발 프로세스를 필수로 요구합니다. 1. 소프트웨어 개발 계획 (Software Development Planning) 본격적인 개발에 앞서 전체적인 로드맵을 그리는 단계입니다. 주요 활동: 개발 모델 정의: 프로젝트에 적합한 개발 방법론(예: 폭포수, 애자일)을 선택합니다. 산출물 계획: 각 개발 단계에서 생성해야 할 문서와 결과물을 정의합니다. 표준 및 도구 정의: 코딩 표준, 개발 도구 등을 명시합니다. 위험 관리 계획: 소프트웨어 개발 및 사용 중에 발생할 수 있는 위험을 식별하고 관리할 계획을 수립합니다. (ISO 14971 표준과 연계) 문서화 및 구성 관리 계획: 모든 문서와 소프트웨어 버전을 어떻게 관리할지 계획합니다. 2. 소프트웨어 요구사항 분석 (Software Requirements Analysis) 소프트웨어가 무엇을 해야 하는지를 명확하게 정의하는 단계입니다. 주요 활동: 요구사항 수집 및 명세화: 기능적 요구사항(예: 혈압 측정 기능)과 비기능적 요구사항(예: 1초 내 응답)을 상세하게 문서화합니다. 위험 분석: 각 요구사항과 관련된 잠재적 위험을 식별하고, 이를 기반으로 소프트웨어 안전 등급(Safety Class) 을 결정합니다. 이 안전 등급에 따라 이후 모든 개발, 테스트, 문서화 활동의 범위와 깊이가 결정되므로 매우 중요한 단계입니다. Class A: 심각한 부상이나 사망을 초래할 수 없음 Class B: 심각하지 않은 부상을 초래할 수 있음 Class C: 심각한 부상이나 사망을 초래할 수 있음 요구사항 검증: 요구사항이 명...

V-모델: 검증과 확인 강조

V-모델은 소프트웨어 개발 생애 주기(SDLC) 모델 중 하나로, 전통적인 폭포수 모델(Waterfall Model)의 확장된 형태입니다. V-모델의 가장 큰 특징은 개발의 각 단계마다 그에 상응하는 테스트 단계를 설정하여 검증(Verification)과 확인(Validation)을 강조한다는 점입니다. 모델의 흐름이 알파벳 'V'자 형태를 띠기 때문에 V-모델이라는 이름이 붙었습니다. V자 왼쪽은 개발 및 명세화 과정을, 오른쪽은 테스트 및 검증 과정을 나타냅니다. V-모델의 구조와 단계별 활동 V-모델은 V자의 왼쪽 날개를 따라 내려가며 개발이 진행되고, V자의 바닥(코딩 단계)을 찍은 후 오른쪽 날개를 따라 올라오며 테스트가 진행되는 구조입니다. 각 개발 단계는 특정 테스트 단계와 수평적으로 연결되어 있습니다. V-모델의 왼쪽 (Verification Process - 검증 단계) 이쪽 날개에서는 " 우리가 제품을 올바르게 만들고 있는가? (Are we building the product right?) "를 검증합니다. 즉, 각 단계의 산출물이 이전 단계의 요구사항을 충실히 반영했는지 확인하는 과정입니다. 1. 요구사항 분석 (Requirement Analysis) 활동: 고객의 요구사항을 수집하고 분석하여 명확하게 문서화합니다. 이 단계의 산출물은 '요구사항 명세서'입니다. 연결된 테스트: 인수 테스트 (Acceptance Testing). 인수 테스트는 바로 이 요구사항 명세서를 기반으로 계획됩니다. 2. 시스템 설계 (System Design) 활동: 요구사항 명세서를 바탕으로 전체 시스템의 아키텍처, 하드웨어 및 소프트웨어 구성 요소 등을 설계합니다. '시스템 설계서'가 산출됩니다. 연결된 테스트: 시스템 테스트 (System Testing). 시스템 테스트는 시스템 설계서에 명시된 기능 및 비기능적 요구사항이 모두 충족되는지 검증하기 위해 계획됩니다. 3. 아키텍처 설계 (Ar...

소프트웨어 개발 생애 주기(SDLC)

소프트웨어 개발 생애 주기(Software Development Life Cycle, SDLC)는 고품질의 소프트웨어를 가장 효율적인 비용과 시간 안에 개발하고 유지보수하기 위해 거치는 전체 과정을 체계적으로 정의한 모델입니다. 간단히 말해, 소프트웨어의 탄생부터 소멸까지의 전 과정을 단계별로 나눈 일종의 '로드맵'이라고 할 수 있습니다. SDLC는 개발팀이 특정 목표와 계획에 따라 소프트웨어를 설계, 개발, 테스트할 수 있도록 명확한 프레임워크를 제공합니다. 이를 통해 프로젝트의 투명성을 높이고, 예측 가능성을 향상시키며, 최종 제품의 품질을 보장하는 데 중요한 역할을 합니다. SDLC의 주요 단계 SDLC는 일반적으로 다음과 같은 핵심 단계를 포함하며, 각 단계는 이전 단계의 결과물을 바탕으로 진행됩니다. 1. 요구사항 분석 (Requirement Analysis) 목표: 개발할 소프트웨어에 대한 모든 요구사항을 파악하고 정의하는 단계입니다. 주요 활동: 프로젝트 이해관계자(고객, 사용자 등)와의 인터뷰, 설문조사, 시장 조사를 통해 필요한 기능과 비기능적 요구사항(성능, 보안 등)을 수집하고 분석하여 명세서로 만듭니다. 이 단계의 성공이 프로젝트 전체의 방향을 결정합니다. 2. 설계 (Design) 목표: 요구사항 명세서를 바탕으로 소프트웨어의 전체적인 구조와 아키텍처를 설계합니다. 주요 활동: 시스템 구조, 데이터베이스 모델, 사용자 인터페이스(UI), 네트워크 구성 등을 구체적으로 설계합니다. 이 단계에서는 '어떻게' 만들 것인가에 대한 청사진을 그립니다. 설계는 보통 시스템의 전체적인 구조를 잡는 상위 수준 설계(High-level Design)와 각 컴포넌트의 세부적인 동작을 설계하는 하위 수준 설계(Low-level Design)로 나뉩니다. 3.  구현 (Implementation) 목표: 설계된 내용을 바탕으로 실제 코드를 작성하여 소프트웨어를 개발하는 단계입니다. 주요 활동: 개발자들이 프로그래밍 언어...