Changes between Version 27 and Version 28 of SDG


Ignore:
Timestamp:
Jul 13, 2024 3:20:15 PM (10 months ago)
Author:
admin
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SDG

    v27 v28  
    6767== [wiki:./software_developmment_tools 13. 소프트웨어 개발 도구 (Software Development Tools)] == 
    6868 
    69 == 6. 소프트웨어 개발 계획 == 
    70 제조자는 개발할 소프트웨어 안전 등급과 범위, 규모에 적합한 소프트웨어 개발 프로세스 활동을 수행하기 위한 소프트웨어 개발 계획을 수립해야 한다.  
    71  
    72 제조자는 개발 진행에 맞춰 다음과 같은 내용을 업데이트해야 한다.  
    73  1. 프로젝트 개요 
    74  1. 참여자 및 책임과 권한 
    75  1. 위험 관리 
    76  1. 사이버보안  
    77  1. 사용적합성 
    78  1. 소프트웨어 개발 프로세스 (시스템 통합, 검증 및 밸리데이션 포함) 
    79  1. 소프트웨어 개발 문서 (추적성 포함) 
    80  1. 소프트웨어 개발 일정 (마일스톤 포함) 
    81  1. 소프트웨어 형상 관리 (SOUP 형상관리 아이템 및 개발 지원 소프트웨어 포함) 
    82  1. 소프트웨어 변경 관리 (SOUP 형상관리 아이템 및 개발 지원 소프트웨어 포함) 
    83  1. 소프트웨어 문제 해결 관리 
    84  1. 소프트웨어 개발 환경  
    85   1. 소프트웨어 개발 표준, 방법, 도구 포함 
    86   1. 일반적인 소프트웨어 결함의 식별 및 회피 방법과 근거  
    87  
    88 == 7. 소프트웨어 위험 관리 == 
    89 의료기기 소프트웨어 개발 플랫폼은 기본적으로 ISO 14971에 따라 위험관리를 수행해야 한다. 
    90  
    91 Figure: 위험관리 프로세스 [[BR]] 
    92 [[Image(risk_management_process.png)]] 
    93 [[BR]] 
    94 출처: [ISO 14971] 
    95  
    96 === 7.1. 위험분석 === 
    97 위에서, 소프트웨어는 위해 또는 위해상황을 식별해야 하며, 다음가 같은 상황을 고려해야 한다: 
    98  1. 소프트웨어 요구사항 사양의 불완전 또는 부정확 
    99  1. 소프트웨어 아이템의 기능상 결함 
    100  1. SOUP에 의한 의도되지 않은 결과 또는 실패 
    101  1. 소프트웨어의 예상하지 못한 동작의 결과로 인해 발생하는 하드웨어의 고장 
    102  1. 타당하게 예상할 수 있는 잘못된 사용  
    103  
    104 예상하지 못한 SOUP의 오류에 의해 소프트웨어 아이템에 잠재적 위해가 발생할 수 있을 경우, 최소한 SOUP공급자가 배포한 이상상황목록에 대해서는 발생할 수 있는 위해상황을 평가해야 한다. 
    105  
    106 소프트웨어 아이템과 관련된 위해상황은 위험관리 파일에 문서화한다. 식별된 위해상황에 의해 발생할 수 있는 이벤트에 대해 위험관리 파일에 문서화한다. 
    107  
    108 === 7.2. 위험평가 === 
    109  1. 소프트웨어의 경우 발생가능성은 100%로 추정한다.  
    110  1. 소프트웨어 제품의 심각성 기준은 다음과 같다: 
    111  
    112  ||= Level =||= Severity =||= Description =|| 
    113  || 5 || Catastrophic || 환자의 사망을 발생하는 수준 || 
    114  || 4 || Critical || 영구적 손상 또는 치명적 상해를 발생하는 수준 || 
    115  || 3 || Serious || 전문적 의료시술이 필요한 상해 또는 손상을 발생하는 수준 || 
    116  || 2 || Minor || 전문적 의료시술이 필요 없는 일시적인 상해나 손상을 발생하는 수준 || 
    117  || 1 || Negligible || 불편 또는 일시적 곤란을 발생하는 수준 || 
    118  
    119  1. 위험 계산 방법: [[BR]] 
    120     위험 수준 (Risk Level) = 발생가능성 정도(Probability rating) x 심각성 정도(Severity rating) 
    121  1. 위험 허용 기준 
    122   1. 허용 가능한 위험 수준 (AR, Acceptable Risk) = 1, 2 
    123   1. 허용할 수 없는 위험 수준 (UR, Unacceptable Risk) = 3, 4, 5 
    124  
    125 === 7.3. 위험통제 === 
    126 제조자는 위험통제수단을 정의하고 문서화해야 한다. 위험통제수단이 소프트웨어의 기능 일부로 구현된 경우 다음과 같이 수행해야 한다: 
    127  1. 소프트웨어 요구사항에 위험통제수단을 포함시킨다. 
    128  1. 위험통제수단으로 제어하고 있는 위험에 근거하여, 위험통제수단의 구현에 기여하는 각 소프트웨어 항목에 소프트웨어 안전등급을 배정한다.  
    129  
    130 === 7.4. 위험통제수단의 검증 === 
    131 문서화된 각 위험통제수단의 구현은 검증되어야 하며, 검증 결과를 문서화한다. 제조자는 위험통제수단을 검토하고, 위험통제수단이 새로운 위험상황을 초래할 수 있는지 확인하여야 한다. 
    132  
    133 제조자는 또한 다음과 같은 추적성 명시해야 한다: 
    134  1. 위해상황에서 소프트웨어 항목까지 
    135  1. 소프트웨어 항목에서 특정 소프트웨어 원인까지 
    136  1. 소프트웨어 원인에서 위험통제수단까지 
    137  1. 위험통제수단에서 위험통제수단 검증까지  
    138  
    139 === 7.5. 소프트웨어 변경의 위험 관리 === 
    140 제조자는 SOUP를 포함하여 의료기기 소프트웨어에 대한 변경을 분석해야 한다: 
    141  1. 추가적인 잠재적 원인이 위해상황에서 발생할 수 있는지 
    142  1. 추가적인 위험통제수단이 필요한지 
    143  
    144 == 8. 사이버보안 == 
    145 식품의약품안전평가원의 의료기기 사이버보안 허가심사 가이드라인 (민원인 안내서)를 따른다. 
    146  
    147 == 9. 사용적합성 == 
    148 TBD 
    149  
    150 == 10. 소프트웨어 개발 프로세스 == 
    151 소프트웨어 개발 프로세스는 Rational Unified Process를 기반으로 삼는다.  
    152  
    153 Figure: 소프트웨어 개발 프로세스[[BR]] 
    154 [[Image(rational_unified_process.png)]] 
    155 [[BR]] 
    156 출처: [RUP] 
    157  
    158 The process can be described in two dimensions – the horizontal axis represents time expressed in phases, iterations, and milestones. The vertical axis represents workflows. A workflow is a sequence of activities that produces a result of observable value. 
    159  
    160 프로세스는 두 개의 차원으로 설명할 수 있다. 수평 축은 단계, 반복, 마일스톤으로 표현되는 시간을 나타내며, 수평 축은 워크플로우를 나타낸다. 워크플로우는 관측 가능한 값으로 결과를 생성하는 일련의 활동이다. 
    161  
    162 === 10.1. PHASES === 
    163  
    164 ==== 10.1.1. INCEPTION PHASES (도입 단계) ==== 
    165 During the inception phase, product concepts are defined.  
    166  
    167 도입 단계에서는 제품 컨셉을 정의한다. 
    168  
    169 ==== 10.1.2. ELABORATION PHASE (정교화 단계) ==== 
    170 The purpose of the elaboration phase is to analyze the problem domain, establish a sound architectural foundation, develop the project plan, and eliminate the highest risk elements of the projects.  
    171  
    172 정교화 단계의 목적은 문제 영역을 분석하고 튼튼한 구조 기반을 구축하고, 프로젝트 계획을 개발하고, 프로젝트의 가장 큰 리스크 요소를 제거하는 것이다. 
    173  
    174 ==== 10.1.3. CONSTRUCTION PHASE (구축 단계) ==== 
    175 During the construction phase, all remaining components and application features are developed and integrated into the product, and all features are thoroughly verified.  
    176  
    177 구축 단계에서는 모든 구성요소와 어플리케이션 기능을 개발하고 제품에 통합하며, 모든 기능을 철저하게 검증한다. 
    178  
    179 ==== 10.1.3. TRANSITION PHASE (이관 단계) ==== 
    180 The purpose of the transition phase is to transition the software product to a user outside of project team.  
    181  
    182 이관 단계의 목적은 소프트웨어 제품을 프로젝트 팀 외부의 사용자에게 이관하는 것이다.  
    183  
    184 === 10.2. WORKFLOW (워크플로우) === 
    185  
    186 ==== 10.2.1. BUSINESS MODELING (비즈니스 모델링) ==== 
    187 Business model describes product concept and business process to assure a common understanding among all stakeholders of what product is planned and what business process needs to supported in the organization.  
    188  
    189 비즈니스 모델은 조직에서 어떤 제품이 기획되고 어떤 비즈니스 프로세스가 지원될 필요가 있는지를 이해당사자 사이에 공통의 이해를 도모하기 위해 제품 컨셉과 비즈니스 프로세스를 기술한다.  
    190  
    191 The deliverable of business modeling workflow is a software development plan. 
    192  
    193 비즈니스 모델링의 산출물은 소프트웨어 개발 계획 문서이다. 
    194  
    195 ==== 10.2.2. REQUIREMENT (비즈니스 모델링) ==== 
    196 The goal of the Requirements workflow is to describe what the system should do and allows the developers and the customer (product manager?) to agree on that description.  
    197  
    198 요구사항 워크플로우의 목표는 시스템이 무엇을 할 지를 기술하고, 개발자와 고객이 기술한 바에 대해 동의할 수 있게 하는 것이다.   
    199  
    200 The deliverable of requirements workflow is a risk management plan, a cyber security checklist and a software requirement specification.  
    201  
    202 요구사항 워크플로우의 산출물은 리스크 관리 계획 문서, 사이버 보안 점검표, 소프트웨어 요구사항 문서이다. 
    203  
    204 ==== 10.2.3. ANALYSIS AND DESIGN (분석 및 설계) ==== 
    205 The goal of the Analysis and Design workflow is to show how the system will be realized in the implementation phase.  
    206  
    207 분석과 설계 워크플로우의 목표는 구현 워크플로우에서 시스템을 어떻게 실현시킬 지를 보는 것이다.  
    208  
    209 The deliverables of analysis and design workflow is a software architecture.  
    210 분석과 설계 워크플로우의 산출물은 소프트웨어 아키텍처이다. 
    211  
    212 ==== 10.2.4. IMPLEMENTATION (구현) ==== 
    213 The purpose of implementation is: 
    214  - To define the organization of the code, in terms of implementation subsystems organized in layers. 
    215  - To implement classes and objects in terms of components (source files, binaries, executables, and others) 
    216  - To verify the developed components as units. 
    217  - To integrate the results produced by individual implementers (or team), into an executable system.  
    218  
    219 구현 워크플로우의 목적은 다음과 같다: 
    220  - 계층적으로 구조화된 서브시스템 구현의 관점에서 코드의 구성을 정의한다.  
    221  - (소스 파일, 바이너리 파일, 이진 파일 등등의) 구성요소의 관점에서 클래스와 객체를 구현한다.  
    222  - 개발된 구성요소를 소프트웨어 단위(software unit)로써 검증한다.  
    223  - 개별적인 구현자(또는 팀)에 의해 생산된 결과를 실행가능한 시스템으로 통합한다.  
    224  
    225 The deliverables of implementation workflow are detailed requirement specification, design specification, source code and software specification plan 
    226  
    227 구현 워크플로우의 산출물은 상세 요구사항 문서, 설계 문서, 소스 코드 및 소프트웨어 검증 계획 문서이다. 
    228  
    229 ==== 10.2.5. VERIFICATION & VALIDATION (검증) ==== 
    230 The purpose of verification is: 
    231  - To verify the interaction between objects 
    232  - To verify the proper integration of all components of the software 
    233  - To verify that all requirements have been correctly implemented 
    234  - To identify and ensure defects are addressed prior to the deployment of the software 
    235  
    236 검증의 목적은 다음과 같다: 
    237  - 객체간 인터랙션(상호작용)을 검증한다.  
    238  - 소프트웨어의 모든 구성요소가 적절하게 통합되었는지를 검증한다.  
    239  - 모든 요구사항이 올바르게 구현되어 있는지를 검증한다.  
    240  - 소프트웨어를 배포하기 전에 결함을 식별하고 해결한다. 
    241  
    242 The deliverables of verification workflow are software verification reports, risk management report and software validation report.  
    243  
    244 검증 워크플로우의 산출물은 software verification reports와 risk management report 및 software validation report이다. 
    245  
    246 ==== 10.2.6. DEPLOYMENT (배포) ==== 
    247 The purpose of the deployment workflow is to successfully produce product releases, and deliver the software to its end users.  
    248  
    249 배포 워크플로의 목적은 제품을 성공적으로 출시해서 최종 사용자에게 소프트웨어를 전달하는 것이다.  
    250  
    251 The deliverables of the deployment workflow are installable software, and release note. 
    252  
    253 배포 워크플로우의 산출물은 설치가능한 소프트웨어와 릴리즈 노트이다. 
    254  
    255 ==== 10.2.7. PROJECT MANAGEMENT (프로젝트 관리) ==== 
    256 Software Project Management is the art of balancing competing objectives, managing risk, and overcoming constraints to deliver, successfully, a product in which meets the needs of customers and the users.  
    257  
    258 소프트웨어 프로젝트 경쟁하는 목표들을 조율하고, 리스크를 관리하고 제약사항을 극복하여 성공적으로 고객과 사용자의 필요를 충족시키는 제품을 전달하는 행위이다.  
    259  
    260 The deliverables of project management workflow are Software development plan and project meeting minutes.  
    261  
    262 프로젝트 관리의 산출물은 소프트웨어 개발 계획 문서와 프로젝트 회의록이다. 
    263  
    264 ==== 10.2.8. CONFIGURATION AND CHANGE REQUEST MANAGEMENT ==== 
    265 The purpose of the configuration and change request management workflow is to trace why, when, and by whom any deliverable was changed.  
    266  
    267 형상관리와 변경요청 관리 워크플로우의 목적은 이유, 시기 그리고 누구에 의해 산출물이 변경되었는지를 추적하는 것이다.  
    268  
    269 The deliverables of the configuration and change request management workflow are configuration items and change requests. 
    270  
    271 형상관리와 변경요청 관리 워크플로우의 산출물은 형상관리 아이템들과 변경요청 사항들이다.  
    272  
    273 Change request management workflow are activities for the problem resolve management process. 
    274  
    275 변경 요청 관리 워크플로우는 문제 해결 관리 프로세스를 위한 활동이다. 
    276  
    277 ==== 10.2.9. ENVIRONMENT (개발환경) ==== 
    278 The purpose of the environment workflow is to provide the software development organization with the software development environment – both processes and tools – that are needed to support the development team.  
    279  
    280 환경 워크플로우의 목적은 소프트웨어 팀을 지원하기 위해 필요한 소프트웨어 개발 환경(프로세스와 도구)을 소프트웨어 개발 조직에게 제공하는 것이다. 
    281  
    282 The deliverable of the environment workflow is a software development plan for a project.  
    283  
    284 환경 워크플로우의 산출물은 소프트웨어 개발 계획 문서이다. 
    285  
    286 === 10.3. 산출물 === 
    287 The process recommends software development documents (or deliverables) depending on Phase like as: 
    288 소프트웨어 개발 프로세스는 프로젝트 단계별로 다음과 같은 소프트웨어 개발 문서 (또는 산출물) 권장한다:[[BR]] 
    289  
    290 Figure: 문서 구조[[BR]] 
    291 [[Image(document_tree.png)]] 
    292 [[BR]] 
    293  
    294 == 11. 소프트웨어 형상관리 == 
    295  
    296 === 11.1. 소프트웨어 형상관리 도구 === 
    297 소프트웨어 형상 관리 도구를 사용해야 한다.  
    298  
    299 === 11.2. 소프트웨어 버전 === 
    300 소프트웨어 버전 형식은 다음과 같다: 
    301  - major.minor.patch.build 
    302  
    303 위에서,  
    304  - major는 주요한 기능이 추가되었을 때 증가시킨다. 
    305  - minor는 기능이 개선되거나 단순한 기능이 추가되었을 때 증가시킨다. 
    306  - patch는 출시된 버전의 오류를 해결했을 때 증가시킨다. 
    307  - build는 전체 integration build를 할 때마다 증가시킨다.  
    308  
    309 === 11.3. 소프트웨어 버전 트리 === 
    310 소프트웨어 버전은 다음과 같이 관리한다: 
    311 Figure: 소프트웨어 버전 트리[[BR]] 
    312 [[Image(software_version_tree.png)]] 
    313 [[BR]] 
    314 출처: [] 
    315  
    316 위에서, 
    317  - Tagging은 버전을 포함해야 하며, 전체 integration build가 성공하면, build 번호를 증가시켜야 한다.  
    318  - Branching은 configuration item을 다르게 유지해야(evolving) 할 경우에 추가한다.  
    319  - Commit을 할 경우에는 CR 번호 및 타이틀을 포함해야 한다.  
    320  
    321 == 12. 소프트웨어 변경 및 문제 해결 관리 == 
    322  
    323 === 12.1. 소프트웨어 변경 및 문제 해결 관리 도구 === 
    324 소프트웨어 변경 및 문제 해결 관리 도구를 사용해야 한다.  
    325  
    326 === 12.2. 소프트웨어 변경 및 문제 해결 절차  === 
    327  
    328 Figure: 소프트웨어 변경 및 문제 해결 절차 [[BR]] 
    329 [[Image(change_request_process.png)]] 
    330 [[BR]] 
    331  
    332 CR을 등록할 경우 Reporter는 다음 사항을 명시한다: 
    333  - 시스템 버전 
    334  - 변경 요청 사항 요약 (title) 
    335  - 변경 요청 사항 상세 내용. 가능하면, 재발생 스텝을 포함한다. 
    336  
    337 == 13. 소프트웨어 개발 환경 == 
    338  
    339 === 13.1. 소프트웨어 개발 도구 === 
    340 각 프로젝트는 소프트웨어 빌드를 포함하여 개발 도구 명시한다.  
    341  
    342 === 13.2. 소프트웨어 통합 === 
    343 매일 빌드를 수행할 경우, Daily integration을 수행하며, 프로세스는 다음과 같다: 
    344  
    345 === 13.3. 소프트웨어 설치 파일 === 
    346 프로젝트는 소프트웨어 설치 파일을 이용하여 소프트웨어를 배포한다. (OS 이미지 제외) 
    347  
    348 === 13.4. 서버 URL === 
    349 각 프로젝트는 사용하는 서버에 대해 URL을 포함한 정보를 명시한다.  
    35069 
    35170== ==