잡談/DO-178 실무가이드

DO-178 인증 실무가이드 번역본 목차 정리

sudam 2020. 9. 15. 19:48

 

※ 번역본에 대한 소개는 별도 페이지를 참고하세요.

 

번역본의 목차와 원서의 목차를 1:1로 정리했습니다. 참고로 번역본의 목차에는 3단계(예 - 2.1.1) 이하의 하부 제목은 목차 페이지에는 인쇄되어 있지 않습니다만 본문에는 아래와 같이 원서와 동일하게 모두 포함되어 있습니다.

 

워낙 항목이 많아서 전체를 정리하니 표가 상당히 길어졌습니다. 참고하세요.

구분

인덱스(번역본)

인덱스(원서)

Part 01

소개

Introduction

Chapter 1

소개 및 개요

Introduction and Overview

1.1

안전 필수 소프트웨어에 대한 정의

Defining Safety-Critical Software

1.2

안전에 초점을 맞추는 것에 대한 중요성

Importance of Safety Focus

1.3

책의 목적과 중요한 단서 조항

Book Purpose and Important Caveats

1.4

책의 개요

Book Overview

참고문헌

참고문헌

References

Part 02

안전 필수 소프트웨어 개발의 맥락

Context of Safety-Critical Software Development

Chapter 2

시스템 맥락에서의 소프트웨어

Software in the Context of the System

2.1

시스템 개발의 개요

Overview of System Development

2.2

시스템 요구사항

System Requirements

2.2.1

시스템 요구사항의 중요성

Importance of System Requirements

2.2.2

시스템 요구사항의 유형

Types of System Requirements

2.2.3

좋은 요구사항의 특징

Characteristics of Good Requirements

2.2.4

시스템 요구사항 고려사항

System Requirements Considerations

2.2.4.1

무결성과 유효성에 대한 고려사항

Integrity and Availability Considerations

2.2.4.2

시스템 요구사항의 다른 고려사항

Other System Requirements Considerations

2.2.5

요구사항에 대한 가정

Requirements Assumptions

2.2.6

아이템으로의 할당

Allocation to Items

2.3

시스템 요구사항 확인 및 검증

System Requirements Validation and Verification

2.3.1

요구사항 확인

Requirements Validation

2.3.2

구현 검증

Implementation Verification

2.3.3

확인 및 검증 권고사항

Validation and Verification Recommendations

2.4

시스템 엔지니어를 위한 모범 사례

Best Practices for Systems Engineers

2.5

시스템에 대한 소프트웨어의 관계

Software’s Relationship to the System

참고문헌

참고문헌

References

Chapter 3

시스템 안전성 평가 맥락에서의 소프트웨어

Software in the Context of the System Safety Assessment

3.1

항공기와 시스템 안전성 평가 프로세스의 개요

Overview of the Aircraft and System Safety

Assessment Process

3.1.1

안전성 프로그램 계획

Safety Program Plan

3.1.2

Functional Hazard Assessment

Functional Hazard Assessment

3.1.3

System Functional Hazard Assessment

System Functional Hazard Assessment

3.1.4

Preliminary Aircraft Safety Assessment

Preliminary Aircraft Safety Assessment

3.1.5

Preliminary System Safety Assessment

Preliminary System Safety Assessment

3.1.6

Common Cause Analysis

Common Cause Analysis

3.1.7

Aircraft Safety Assessments System Safety Assessments

Aircraft and System Safety Assessments

3.2

개발 보증

Development Assurance

3.2.1

개발 보증 레벨

Development Assurance Levels

3.3

소프트웨어는 어떻게 안전성 프로세스에 맞춰지는가?

How Does Software Fit into the Safety Process?

3.3.1

소프트웨어의 독특함

Software’s Uniqueness

3.3.2

소프트웨어 개발 보증

Software Development Assurance

3.3.3

다른 관점

Other Views

3.3.4

시스템 안전성 프로세스에서 소프트웨어를 다루기 위한 몇 가지 제안

Some Suggestions for Addressing Software in the System Safety Process

참고문헌

참고문헌

References

Part 03

DO-178C를 사용한 안전 필수 소프트웨어 개발

Developing Safety-Critical Software Using DO-178C

Chapter 4

DO-178C의 개요와 지원 문서들

Overview of DO-178C and Supporting Documents

4.1

DO-178의 역사

History of DO-178

4.2

DO-178C DO-278A 핵심 문서들

DO-178C and DO-278A Core Documents

4.2.1

DO-278A DO-178C의 차이점

DO-278A and DO-178C Differences

4.2.2

DO-178C Annex A 목표 테이블의 개요

Overview of the DO-178C Annex A Objectives Tables

4.3

DO-330 : 소프트웨어 도구 인증 고려사항

DO-330: Software Tool Qualification Considerations

4.4

DO-178C 기술 부속서

DO-178C Technology Supplements

4.4.1

DO-331 : 모델 기반 개발 부속서

DO-331: Model-Based Development Supplement

4.4.2

DO-332 : 객체 지향 기술 부속서

DO-332: Object-Oriented Technology Supplement

4.4.3

DO-333 : 정형 기법 부속서

DO-333: Formal Methods Supplement

4.5

DO-248C : 지원 항목

DO-248C: Supporting Material

참고문헌

참고문헌

References

Chapter 5

소프트웨어 계획

Software Planning

5.1

소개

Introduction

5.2

일반적인 계획 권고사항들

General Planning Recommendations

5.3

다섯 가지 소프트웨어 계획

Five Software Plans

5.3.1

소프트웨어 인증 계획(PSAC)

Plan for Software Aspects of Certification

5.3.2

소프트웨어 개발 계획(SDP)

Software Development Plan

5.3.3

소프트웨어 검증 계획(SVP)

Software Verification Plan

5.3.4

소프트웨어 형상 관리 계획(SCMP)

Software Configuration Management Plan

5.3.5

소프트웨어 품질 보증 계획(SQAP)

Software Quality Assurance Plan

5.4

세 가지 개발 표준

Three Development Standards

5.4.1

소프트웨어 요구사항 표준(SRS)

Software Requirements Standards

5.4.2

소프트웨어 설계 표준(SDS)

Software Design Standards

5.4.3

소프트웨어 코딩 표준(SCS)

Software Coding Standards

5.5

도구 인증 계획

Tool Qualification Planning

5.6

기타 계획들

Other Plans

5.6.1

프로젝트 관리 계획

Project Management Plan

5.6.2

요구사항 관리 계획

Requirements Management Plan

5.6.3

시험 계획

Test Plan

참고문헌

참고문헌

References

Chapter 6

소프트웨어 요구사항

Software Requirements

6.1

소개

Introduction

6.2

요구사항 정의하기

Defining Requirement

6.3

좋은 소프트웨어 요구사항의 중요성

Importance of Good Software Requirements

6.3.1

이유 1 : 요구사항은 소프트웨어 개발에 대한 근간이다

Reason 1: Requirements Are the Foundation for the Software Development

6.3.2

이유 2 : 좋은 요구사항은 시간과 돈을 절약한다

Reason 2: Good Requirements Save Time and Money

6.3.3

이유 3 : 좋은 요구사항은 안전에 필수이다

Reason 3: Good Requirements Are Essential to Safety

6.3.4

이유 4 : 좋은 요구사항은 고객의 요구를 충족하기 위해 필요하다

Reason 4: Good Requirements Are Necessary to Meet the Customer Needs

6.3.5

이유 5 : 좋은 요구사항은 시험을 위해 중요하다

Reason 5: Good Requirements Are Important for Testing

6.4

소프트웨어 요구사항 엔지니어

The Software Requirements Engineer

6.5

소프트웨어 요구사항 개발의 개요

Overview of Software Requirements Development

6.6

소프트웨어 요구사항에 대한 입력 수집 및 분석

Gathering and Analyzing Input to the Software Requirements

6.6.1

요구사항 수집 활동

Requirements Gathering Activities

6.6.2

요구사항 분석 활동

Requirements Analyzing Activities

6.7

소프트웨어 요구사항 작성하기

Writing the Software Requirements

6.7.1

작업 1 : 방법론을 결정하라

Task 1: Determine the Methodology

6.7.2

작업 2 : 소프트웨어 요구사항 문서 레이아웃을 결정하라

Task 2: Determine the Software Requirements Document Layout

6.7.3

작업 3 : 소프트웨어 기능을 하위 시스템 그리고/혹은 특징으로 나누어라

Task 3: Divide Software Functionality into Subsystems and/or Features

6.7.4

작업 4 : 요구사항의 우선순위를 결정하라

Task 4: Determine Requirements Priorities

6.7.5

잠시 우회하기(작업이 아님) : 피해야 할 위험한 상황

A Brief Detour (Not a Task): Slippery Slopes to Avoid

6.7.5.1

위험한 상황 #1 : 너무 빨리 설계하기

Slippery Slope #1: Going to Design Too Quickly

6.7.5.2

위험한 상황 #2 : 한 가지 레벨의 요구사항

Slippery Slope #2: One Level of Requirements

6.7.5.3

위험한 상황 #3 : 코드로 바로 가기

Slippery Slope #3: Going Straight to Code

6.7.6

작업 5 : 요구사항 작성하기

Task 5: Document the Requirements

6.7.6.1

기능 요구사항 작성하기

Document Functional Requirements

6.7.6.2

비기능 요구사항 작성하기

Document Nonfunctional Requirements

6.7.6.3

인터페이스 작성하기

Document Interfaces

6.7.6.4

각각의 요구사항을 유일하게 식별하기

Uniquely Identify Each Requirement

6.7.6.5

근거를 작성하기

Document Rationale

6.7.6.6

요구사항에 대한 소스를 추적하기

Trace Requirements to Their Source

6.7.6.7

불확실성과 가정을 식별하기

Identify Uncertainties and Assumptions

6.7.6.8

데이터 사전을 시작하기

Start a Data Dictionary

6.7.6.9

좋은 요구사항의 특징을 구현하기

Implement Characteristics of Good Requirements

6.7.7

작업 6 : 시스템 요구사항에 피드백을 전달하기

Task 6: Provide Feedback on the System Requirements

6.8

요구사항 검증하기(리뷰하기)

Verifying (Reviewing) Requirements

6.8.1

추천되는 동료 검토 사례들

Peer Review Recommended Practices

6.9

요구사항 관리하기

Managing Requirements

6.9.1

요구사항 관리의 기본

Basics of Requirements Management

6.9.2

요구사항 관리 도구들

Requirements Management Tools

6.10

요구사항 프로토타이핑하기

Requirements Prototyping

6.11

추적성

Traceability

6.11.1

추적성의 중요성과 장점

Importance and Benefits of Traceability

6.11.2

양방향 추적성

Bidirectional Traceability

6.11.3

DO-178C와 추적성

DO-178C and Traceability

6.11.4

추적성에 대한 어려움

Traceability Challenges

참고문헌

참고문헌

References

추천 자료

추천 자료

Recommended Readings

Chapter 7

소프트웨어 설계

Software Design

7.1

소프트웨어 설계의 개요

Overview of Software Design

7.1.1

소프트웨어 아키텍처

Software Architecture

7.1.2

소프트웨어 하위 레벨 요구사항

Software Low-Level Requirements

7.1.3

설계 패키징

Design Packaging

7.2

설계 접근법

Approaches to Design

7.2.1

구조 기반 설계(전통적인)

Structure-Based Design (Traditional)

7.2.2

객체 지향 설계

Object-Oriented Design

7.3

좋은 설계의 특성

Characteristics of Good Design

7.4

설계 검증

Design Verification

참고문헌

참고문헌

References

Chapter 8

소프트웨어 구현 : 코딩 및 통합

Software Implementation: Coding and Integration

8.1

소개

Introduction

8.2

코딩

Coding

8.2.1

DO-178C 코딩 지침의 개요

Overview of DO-178C Coding Guidance

8.2.2

안전 필수 소프트웨어에 사용되는 언어

Languages Used in Safety-Critical Software

8.2.2.1

어셈블리 언어

Assembly Language

8.2.2.2

Ada

Ada

8.2.2.3

C

C

8.2.3

언어와 컴파일러 선택하기

Choosing a Language and Compiler

8.2.4

프로그래밍에 대한 일반적인 권고사항

General Recommendations for Programming

8.2.5

코드와 관련된 특별한 주제들

Special Code-Related Topics

8.2.5.1

코딩 표준

Coding Standards

8.2.5.2

컴파일러 제공 라이브러리

Compiler-Supplied Libraries

8.2.5.3

자동 코드 생성기(Autocode Generators)

Autocode Generators

8.3

소스 코드를 검증하기

Verifying the Source Code

8.4

개발 통합

Development Integration

8.4.1

빌드 프로세스

Build Process

8.4.2

로드 프로세스

Load Process

8.5

개발 통합을 검증하기

Verifying the Development Integration

참고문헌

참고문헌

References

추천 자료

추천 자료

Recommended Readings

Chapter 9

소프트웨어 검증

Software Verification

9.1

소개

Introduction

9.2

검증의 중요성

Importance of Verification

9.3

독립성과 검증

Independence and Verification

9.4

리뷰

Reviews

9.4.1

소프트웨어 계획 리뷰

Software Planning Review

9.4.2

소프트웨어 요구사항, 설계 그리고 코드 리뷰

Software Requirements, Design, and Code Reviews

9.4.3

시험 데이터 리뷰

Test Data Reviews

9.4.4

다른 데이터 항목들의 리뷰

Review of Other Data Items

9.5

분석

Analyses

9.5.1

워스트 케이스 실행시간(Worst-Case Execution Time : WCET) 분석

Worst-Case Execution Time Analysis

9.5.2

메모리 마진 분석

Memory Margin Analysis

9.5.3

링크 및 메모리맵 분석

Link and Memory Map Analysis

9.5.4

로드 분석

Load Analysis

9.5.5

인터럽트 분석

Interrupt Analysis

9.5.6

수학 분석

Math Analysis

9.5.7

에러와 경고 분석

Errors and Warnings Analysis

9.5.8

파티션 분석

Partitioning Analysis

9.6

소프트웨어 시험

Software Testing

9.6.1

소프트웨어 시험의 목적

Purpose of Software Testing

9.6.2

DO-178C 소프트웨어 시험 지침의 개요

Overview of DO-178C’s Software Testing Guidance

9.6.2.1

요구사항 기반 시험 방법

Requirements-Based Test Methods

9.6.2.2

정상적인 시험과 강건성 시험

Normal and Robustness Tests

9.6.3

시험 전략에 대한 조사

Survey of Testing Strategies

9.6.3.1

동등 클래스 분할

Equivalence Class Partitioning

9.6.3.2

경계값 시험

Boundary Value Testing

9.6.3.3

상태 전이 시험

State Transition Testing

9.6.3.4

결정 테이블 시험

Decision Table Testing

9.6.3.5

통합 시험

Integration Testing

9.6.3.6

성능 시험

Performance Testing

9.6.3.7

기타 전략들

Other Strategies

9.6.3.8

복잡도 측정

Complexity Measurements

9.6.3.9

좋은 시험의 요약과 특징

Summary and Characteristics of a Good Test

9.6.4

시험 계획

Test Planning

9.6.5

시험 개발

Test Development

9.6.5.1

시험 케이스

Test Cases

9.6.5.2

시험 절차

Test Procedures

9.6.5.3

DO-178C 요구사항

DO-178C Requirements

9.6.5.4

하위 레벨 요구사항 시험 vs. 단위 시험

Low-Level Requirements Testing versus Unit Testing

9.6.5.5

시험될 수 없는 요구사항의 처리

Handling Requirements That Cannot Be Tested

9.6.5.6

여러 레벨의 시험에 대한 신뢰를 획득하기

Obtaining Credit for Multiple Levels of Testing

9.6.5.7

요구사항의 추가적인 레벨을 시험하기

Testing Additional Levels of Requirements

9.6.6

시험 수행

Test Execution

9.6.6.1

예행 연습 수행하기

Performing Dry Runs

9.6.6.2

시험 케이스와 절차를 리뷰하기

Reviewing Test Cases and Procedures

9.6.6.3

타깃 컴퓨터 vs. 에뮬레이터 혹은 시뮬레이터 사용하기

Using Target Computer versus Emulator or Simulator

9.6.6.4

검증 환경을 문서화하기

Documenting the Verification Environment

9.6.6.5

시험 준비 리뷰(TRR)

Test Readiness Review

9.6.6.6

인증 신뢰를 위한 시험 수행하기

Running Tests for Certification Credit

9.6.7

시험 리포팅

Test Reporting

9.6.8

시험 추적성

Test Traceability

9.6.9

회귀 시험

Regression Testing

9.6.10

시험가능성

Testability

9.6.11

검증 프로세스에서의 자동화

Automation in the Verification Processes

9.7

검증의 검증

Verification of Verification

9.7.1

시험 절차의 리뷰

Review of Test Procedures

9.7.2

시험 결과의 리뷰

Review of Test Results

9.7.3

요구사항 커버리지 분석

Requirements Coverage Analysis

9.7.4

구조적 커버리지 분석

Structural Coverage Analysis

9.7.4.1

Statement 커버리지(DO-178C Table A-7 목표 7)

Statement Coverage (DO-178C Table A-7 Objective 7)

9.7.4.2

Decision 커버리지(DO-178C Table A-7 목표 6)

Decision Coverage (DO-178C Table A-7 Objective 6)

9.7.4.3

Modified Condition/Decision Coverage(DO-178C Table A-7 목표 5)

Modified Condition/Decision Coverage (DO-178C Table A-7 Objective 5)

9.7.4.4

추가적인 코드 검증(DO-178C Table A-7 목표 9)

Additional Code Verification (DO-178C Table A-7 Objective 9)

9.7.4.5

데이터 결합도와 컨트롤 결합도 분석(DO-178C Table A-7 목표 8)

Data Coupling and Control Coupling Analyses (DO-178C Table A-7 Objective 8)

9.7.4.6

구조적 커버리지 갭을 해결하기

Addressing Structural Coverage Gaps

9.7.4.7

구조적 커버리지 분석에 대한 최종 고찰

Final Thoughts on Structural Coverage Analysis

9.8

문제점 리포팅

Problem Reporting

9.9

검증 프로세스를 위한 권고사항

Recommendations for the Verification Processes

참고문헌

참고문헌

References

추천 자료

추천 자료

Recommended Readings

Chapter 10

소프트웨어 형상 관리

Software Configuration Management

10.1

소개

Introduction

10.1.1

소프트웨어 형상 관리가 무엇인가?

What Is Software Configuration Management?

10.1.2

소프트웨어 형상 관리가 왜 필요한가?

Why Is Software Configuration Management Needed?

10.1.3

소프트웨어 형상 관리를 구현하는 것은 누구의 책임인가?

Who Is Responsible for Implementing Software Configuration Management?

10.1.4

소프트웨어 형상 관리가 관여하는 것은 무엇인가?

What Does Software Configuration Management Involve?

10.2

SCM 활동들

SCM Activities

10.2.1

형상 식별

Configuration Identification

10.2.2

베이스라인

Baselines

10.2.3

추적성

Traceability

10.2.4

문제점 리포팅

Problem Reporting

10.2.4.1

여러 이해관계자들과 함께 문제점 리포트 관리

Problem Report Management with Multiple Stakeholders

10.2.4.2

오픈/연기된 문제점 리포트 관리하기

Managing Open/Deferred Problem Reports

10.2.5

변경 컨트롤과 리뷰

Change Control and Review

10.2.6

형상 상태 감사

Configuration Status Accounting

10.2.7

릴리즈

Release

10.2.8

보관과 복구

Archival and Retrieval

10.2.9

데이터 컨트롤 분류

Data Control Categories

10.2.10

로드 컨트롤

Load Control

10.2.11

소프트웨어 라이프 사이클 환경 컨트롤

Software Life Cycle Environment Control

10.3

특별한 SCM 기술들

Special SCM Skills

10.4

SCM 데이터

SCM Data

10.4.1

SCM 계획

SCM Plan

10.4.2

문제점 리포트

Problem Reports

10.4.3

소프트웨어 라이프 사이클 환경 형상 인덱스

Software Life Cycle Environment Configuration Index

10.4.4

소프트웨어 형상 인덱스

Software Configuration Index

10.4.5

SCM 레코드

SCM Records

10.5

SCM 함정들

SCM Pitfalls

10.6

변경 영향 분석

Change Impact Analysis

참고문헌

참고문헌

References

Chapter 11

소프트웨어 품질 보증

Software Quality Assurance

11.1

소개 : 소프트웨어 품질 및 소프트웨어 품질 보증(SQA)

Introduction: Software Quality and Software Quality Assurance (SQA)

11.1.1

소프트웨어 품질 정의하기

Defining Software Quality

11.1.2

고품질 소프트웨어의 특징

Characteristics of High-Quality Software

11.1.3

소프트웨어 품질 보증

Software Quality Assurance

11.1.4

공통 품질 프로세스 및 제품 이슈의 예시

Examples of Common Quality Process and Product Issues

11.2

효과적인 SQA와 효과적이지 않은 SQA의 특징

Characteristics of Effective and Ineffective SQA

11.2.1

효과적인 SQA

Effective SQA

11.2.2

효과적이지 않은 SQA

Ineffective SQA

11.3

SQA 활동들

SQA Activities

참고문헌

참고문헌

References

Chapter 12

인증 교섭

Certification Liaison

12.1

인증 교섭이 무엇인가?

What Is Certification Liaison?

12.2

인증 당국과 커뮤니케이션하기

Communicating with the Certification Authorities

12.2.1

인증 당국과의 조율에 대한 모범 사례

Best Practices for Coordinating with Certification Authorities

12.3

소프트웨어 완수 요약

Software Accomplishment Summary

12.4

SOI(Stage of Involvement) 감사

Stage of Involvement (SOI) Audits

12.4.1

SOI 감사의 개요

Overview of SOI Audits

12.4.2

소프트웨어 Job Aid의 개요

Overview of the Software Job Aid

12.4.3

소프트웨어 Job Aid 사용하기

Using the Software Job Aid

12.4.4

감사자에 대한 일반적인 권고사항

General Recommendations for the Auditor

12.4.5

피감사자(지원자/개발자)를 위한 일반적인 권고사항

General Recommendations for the Auditee (the Applicant/Developer)

12.4.6

SOI 리뷰 상세

SOI Review Specifics

12.4.6.1

SOI 1 진입 기준, 예상 그리고 준비 권고사항

SOI 1 Entry Criteria, Expectations, and Preparation Recommendations

12.4.6.2

SOI 2 진입 기준, 예상 그리고 준비 권고사항

SOI 2 Entry Criteria, Expectations, and Preparation Recommendations

12.4.6.3

SOI 3 진입 기준, 예상 그리고 준비 권고사항

SOI 3 Entry Criteria, Expectations, and Preparation Recommendations

12.4.6.4

SOI 4 진입 기준, 예상 그리고 준비 권고사항

SOI 4 Entry Criteria, Expectations, and Preparation Recommendations

12.5

인증 비행 시험 전 소프트웨어 성숙도

Software Maturity Prior to Certification Flight Tests

참고문헌

참고문헌

References

Part 04

도구 인증과 DO-178C 부속서

Tool Qualification and DO-178C Supplements

Chapter 13

DO-330과 소프트웨어 도구 인증

DO-330 and Software Tool Qualification

13.1

소개

Introduction

13.2

도구 인증 필요성과 레벨을 결정하기(DO-178C Section 12.2)

Determining Tool Qualification Need and Level (DO-178C Section 12.2)

13.3

도구 인증하기(DO-330 개요)

Qualifying a Tool (DO-330 Overview)

13.3.1

DO-330에 대한 필요성

Need for DO-330

13.3.2

DO-330 도구 인증 프로세스

DO-330 Tool Qualification Process

13.4

특별한 도구 인증 주제들

Special Tool Qualification Topics

13.4.1

FAA Order 8110.49

FAA Order 8110.49

13.4.2

도구 결정론

Tool Determinism

13.4.3

추가적인 도구 인증 고려사항

Additional Tool Qualification Considerations

13.4.4

도구 인증의 함정들

Tool Qualification Pitfalls

13.4.5

DO-330 DO-178C 부속서

DO-330 and DO-178C Supplements

13.4.6

다른 분야를 위해 DO-330 사용하기

Using DO-330 for Other Domains

참고문헌

참고문헌

References

Chapter 14

DO-331과 모델 기반 개발 및 검증

DO-331 and Model-Based Development and Verification

14.1

소개

Introduction

14.2

모델 기반 개발 및 검증의 잠재적인 이점

Potential Benefits of Model-Based Development and Verification

14.3

모델 기반 개발 및 검증의 잠재적인 위험

Potential Risks of Model-Based Development and Verification

14.4

DO-331 개요

Overview of DO-331

14.5

DO-331에 대한 인증 당국의 인식

Certification Authorities Recognition of DO-331

참고문헌

참고문헌

References

Chapter 15

DO-332와 객체 지향 기술 및 관련 기법

DO-332 and Object-Oriented Technology

and Related Techniques

15.1

객체 지향 기술의 소개

Introduction to Object-Oriented Technology

15.2

항공 분야에서 OOT의 사용

Use of OOT in Aviation

15.3

항공 분야 핸드북에서의 OOT

OOT in Aviation Handbook

15.4

FAA가 후원하는 OOT와 구조적 커버리지에 대한 연구

FAA-Sponsored Research on OOT and Structural Coverage

15.5

DO-332 개요

DO-332 Overview

15.5.1

계획

Planning

15.5.2

개발

Development

15.5.3

검증

Verification

15.5.4

취약성

Vulnerabilities

15.5.5

타입 안전성

Type Safety

15.5.6

관련된 기법들

Related Techniques

15.5.7

자주 묻는 질문

Frequently Asked Questions

15.6

OOT 권고사항

OOT Recommendations

15.7

결론

Conclusion

참고문헌

참고문헌

References

추천 자료

추천 자료

Recommended Readings

Chapter 16

DO-333과 정형 기법

DO-333 and Formal Methods

16.1

정형 기법에 대한 소개

Introduction to Formal Methods

16.2

정형 기법이 무엇인가?

What Are Formal Methods?

16.3

정형 기법의 잠재적인 이점

Potential Benefits of Formal Methods

16.4

정형 기법에 대한 어려움들

Challenges of Formal Methods

16.5

DO-333 개요

DO-333 Overview

16.5.1

DO-333의 목적

Purpose of DO-333

16.5.2

DO-333 DO-178C의 비교

DO-333 and DO-178C Compared

16.5.2.1

계획 및 개발

Planning and Development

16.5.2.2

형상 관리, 품질 보증 그리고 인증 교섭

Configuration Management, Quality Assurance, and Certification Liaison

16.5.2.3

검증

Verification

16.6

다른 자료들

Other Resources

참고문헌

참고문헌

References

Part 05

특별한 주제들

Special Topics

Chapter 17

커버되지 않은 코드

(데드 코드, 관련 없는 코드, 비활성화된 코드)

Noncovered Code

(Dead, Extraneous, and Deactivated Code)

17.1

소개

Introduction

17.2

관련 없는 코드와 데드 코드

Extraneous and Dead Code

17.2.1

관련 없는 코드와 데드 코드의 늦은 발견을 피하기

Avoiding Late Discoveries of Extraneous and Dead Code

17.2.2

관련 없는 코드 혹은 데드 코드를 평가하기

Evaluating Extraneous or Dead Code

17.3

비활성화된 코드

Deactivated Code

17.3.1

계획

Planning

17.3.2

개발

Development

17.3.3

검증

Verification

참고문헌

참고문헌

References

Chapter 18

현장 적재가능 소프트웨어
(Field-Loadable Software)

Field-Loadable Software

18.1

소개

Introduction

18.2

현장 적재가능 소프트웨어가 무엇인가?

What Is Field-Loadable Software?

18.3

현장 적재가능 소프트웨어의 장점

Benefits of Field-Loadable Software

18.4

현장 적재가능 소프트웨어의 어려움

Challenges of Field-Loadable Software

18.5

현장 적재가능 소프트웨어 개발 및 검증하기

Developing and Loading Field-Loadable Software

18.5.1

현장 적재가능하도록 시스템 개발하기

Developing the System to Be Field-Loadable

18.5.2

현장 적재가능 소프트웨어 개발하기

Developing the Field-Loadable Software

18.5.3

현장 적재가능 소프트웨어 로딩하기

Loading the Field-Loadable Software

18.5.4

현장 적재가능 소프트웨어 수정하기

Modifying the Field-Loadable Software

18.6

요약

Summary

참고문헌

참고문헌

References

Chapter 19

사용자 수정가능 소프트웨어
(User-Modifiable Software) ·

User-Modifiable Software

19.1

소개

Introduction

19.2

사용자 수정가능 소프트웨어는 무엇인가?

What Is User-Modifiable Software?

19.3

UMS의 예시

Examples of UMS

19.4

UMS를 위한 시스템 설계하기

Designing the System for UMS

19.5

UMS를 수정하고 유지보수하기

Modifying and Maintaining UMS

참고문헌

참고문헌

References

Chapter 20

실시간 운영체제
(Real-Time Operating Systems)

Real-Time Operating Systems

20.1

소개

Introduction

20.2

RTOS란 무엇인가?

What Is an RTOS?

20.3

RTOS를 사용하는가?

Why Use an RTOS?

20.4

RTOS 커널과 그것을 지원하는 소프트웨어

RTOS Kernel and Its Supporting Software

20.4.1

RTOS 커널

RTOS Kernel

20.4.2

애플리케이션 프로그램 인터페이스

Application Program Interface

20.4.3

보드 지원 패키지

Board Support Package

20.4.4

디바이스 드라이버

Device Driver

20.4.5

지원 라이브러리

Support Libraries

20.5

안전 필수 시스템에 사용되는 RTOS의 특징

Characteristics of an RTOS Used in Safety-Critical Systems

20.5.1

결정론적

Deterministic

20.5.2

신뢰할 수 있는 성능

Reliable Performance

20.5.3

호환가능한 하드웨어

Compatible with the Hardware

20.5.4

호환가능한 환경

Compatible with the Environment

20.5.5

결함 허용

Fault Tolerant

20.5.6

헬스 모니터링

Health Monitoring

20.5.7

인증가능성

Certifiable

20.5.8

유지보수가능성

Maintainable

20.5.9

재사용가능성

Reusable

20.6

안전 필수 시스템에 사용되는 RTOS의 특성

Features of an RTOS Used in Safety-Critical Systems

20.6.1

멀티태스킹

Multitasking

20.6.2

보장되고 결정론적인 스케줄가능성

Guaranteed and Deterministic Schedulability

20.6.2.1

파티션 간의 스케줄링

Scheduling between Partitions

20.6.2.2

파티션 내의 스케줄링

Scheduling within Partitions

20.6.3

결정론적 태스크 간 통신

Deterministic Intertask Communication

20.6.4

신뢰할 수 있는 메모리 관리

Reliable Memory Management

20.6.5

인터럽트 프로세싱

Interrupt Processing

20.6.6

후크(Hook) 기능

Hook Functions

20.6.7

강건성 체크하기

Robustness Checking

20.6.8

파일 시스템

File System

20.6.9

강건한 파티셔닝

Robust Partitioning

20.7

고려해야 할 RTOS 이슈들

RTOS Issues to Consider

20.7.1

고려해야 할 기술적인 이슈들

Technical Issues to Consider

20.7.1.1

리소스 경합

Resource Contention

20.7.1.2

우선순위 역전

Priority Inversion

20.7.1.3

메모리 누수

Memory Leaks

20.7.1.4

메모리 단편화

Memory Fragmentation

20.7.1.5

태스크 간 간섭

Intertask Interference

20.7.1.6

지터(Jitter)

Jitter

20.7.1.7

취약성들

Vulnerabilities

20.7.2

고려해야 할 인증 이슈들

Certification Issues to Consider

20.7.2.1

안전 서브셋을 생성하기

Creating a Safe Subset

20.7.2.2

사용자 매뉴얼

User’s Manual

20.7.2.3

리버스 엔지니어링

Reverse Engineering

20.7.2.4

비활성화된 특성들

Deactivated Features

20.7.2.5

복잡도

Complexity

20.7.2.6

시스템과의 비연결성

Disconnect with the System

20.7.2.7

코드 준수 이슈

Code Compliance Issues

20.7.2.8

에러 처리 이슈

Error Handling Issues

20.7.2.9

문제점 리포팅

Problem Reporting

20.7.2.10

파티셔닝 분석

Partitioning Analysis

20.7.2.11

다른 지원 소프트웨어

Other Supporting Software

20.7.2.12

타깃 시험

Target Testing

20.7.2.13

수정

Modifications

20.8

RTOS 관련 다른 주제들

Other RTOS-Related Topics

20.8.1

ARINC 653 개요

ARINC 653 Overview

20.8.2

도구 지원

Tool Support

20.8.3

오픈 소스 RTOS

Open Source RTOSs

20.8.4

멀티코어 프로세서, 가상화 그리고 하이퍼바이저

Multicore Processors, Virtualization, and Hypervisors

20.8.5

보안

Security

20.8.6

RTOS 선택을 위한 질문

RTOS Selection Questions

참고문헌

참고문헌

References

Chapter 21

소프트웨어 파티셔닝
(Software Partitioning)

Software Partitioning

21.1

파티셔닝에 대한 소개

Introduction to Partitioning

21.1.1

파티셔닝: 보호의 서브셋

Partitioning: A Subset of Protection

21.1.2

DO-178C와 파티셔닝

DO-178C and Partitioning

21.1.3

강건한 파티셔닝

Robust Partitioning

21.2

공유 메모리(공간 파티셔닝)

Shared Memory (Spatial Partitioning)

21.3

공유 중앙 처리 장치(시간 파티셔닝)

Shared Central Processing Unit (Temporal Partitioning)

21.4

공유 입력/출력

Shared Input/Output

21.5

파티셔닝과 관련된 몇 가지 어려움

Some Partitioning-Related Challenges

2.15.1

직접 메모리 액세스

Direct Memory Access

2.15.2

캐시 메모리

Cache Memory

2.15.3

인터럽트

Interrupts

2.15.4

파티션 간 통신

Interpartition Communication

21.6

파티셔닝에 대한 권고사항

Recommendations for Partitioning

참고문헌

참고문헌

References

Chapter 22

구성 데이터
(Configuration Data)

Configuration Data

22.1

소개

Introduction

22.2

용어 및 예시

Terminology and Examples

22.3

파라미터 데이터에 대한 DO-178C 지침의 요약

Summary of DO-178C Guidance on Parameter Data

22.4

권고사항

Recommendations

참고문헌

참고문헌

References

Chapter 23

항공용 데이터
(Aeronautical Data)

Aeronautical Data

23.1

소개

Introduction

23.2

DO-200A : Standards for Processing Aeronautical Data

DO-200A: Standards for Processing Aeronautical Data

23.3

FAA Advisory Circular 20-153A

FAA Advisory Circular 20-153A

23.4

항공용 데이터 프로세싱을 위해 사용되는 도구들

Tools Used for Processing Aeronautical Data

23.5

항공용 데이터와 관련된 기타 업계 문서들

Other Industry Documents Related to Aeronautical Data

23.5.1

DO-201A : Standards for Aeronautical Information

DO-201A: Standards for Aeronautical Information

23.5.2

DO-236B: Minimum Aviation System Performance Standards: Required Navigation Performance for Area Navigation

DO-236B: Minimum Aviation System Performance Standards: Required Navigation Performance for Area Navigation

23.5.3

DO-272C: User Requirements for Aerodrome Mapping Information

DO-272C: User Requirements for Aerodrome Mapping Information

23.5.4

DO-276A: User Requirements for Terrain and Obstacle Data

DO-276A: User Requirements for Terrain and Obstacle Data

23.5.5

DO-291B: Interchange Standards for Terrain, Obstacle, and Aerodrome Mapping Data

DO-291B: Interchange Standards for Terrain, Obstacle, and Aerodrome Mapping Data

23.5.6

ARINC 424: Standard, Navigation System Database

ARINC 424: Standard, Navigation System Database

23.5.7

ARINC 816-1: Embedded Interchange Format for Airport Mapping Database

ARINC 816-1: Embedded Interchange Format for Airport Mapping Database

참고문헌

참고문헌

References

Chapter 24

소프트웨어 재사용
(Software Reuse)

Software Reuse

24.1

소개

Introduction

24.2

재사용가능한 컴포넌트 설계하기

Designing Reusable Components

24.3

이전에 개발된 소프트웨어 재사용하기

Reusing Previously Developed Software

24.3.1

민간 항공 제품에 사용하기 위해 PDS를 평가하기

Evaluating PDS for Use in Civil Aviation Products

24.3.2

DO-178[ ]을 사용해서 개발되지 않은 PDS 재사용하기

Reusing PDS That Was Not Developed Using DO-178[ ]

24.3.3

COTS 소프트웨어에 대한 추가적인 생각

Additional Thoughts on COTS Software

24.4

제품 서비스 히스토리

Product Service History

24.4.1

제품 서비스 히스토리의 정의

Definition of Product Service History

24.4.2

제품 서비스 히스토리를 사용해서 신뢰를 추구하는 것의 어려움

Difficulties in Seeking Credit Using Product Service History

24.4.3

제품 서비스 히스토리를 사용해서 신뢰를 주장할 때 고려해야 할 요인들

Factors to Consider When Claiming Credit Using Product Service History

참고문헌

참고문헌

References

Chapter 25

리버스 엔지니어링
(Reverse Engineering)

Reverse Engineering

25.1

리버스 엔지니어링이란 무엇인가?

What Is Reverse Engineering?

25.2

리버스 엔지니어링의 예시

Examples of Reverse Engineering

25.3

리버스 엔지니어링할 때 해결되어야 할 이슈들

Issues to Be Addressed When Reverse Engineering

25.4

리버스 엔지니어링에 대한 권고사항

Recommendations for Reverse Engineering

참고문헌

참고문헌

References

Chapter 26

아웃소싱 및 해외 외주(Offshoring)

소프트웨어 라이프 사이클 활동

Outsourcing and Offshoring

Software Life Cycle Activities

26.1

소개

Introduction

26.2

아웃소싱을 하는 이유

Reasons for Outsourcing

26.3

아웃소싱의 어려움과 위험

Challenges and Risks in Outsourcing

26.4

어려움과 위험을 극복하기 위한 권고사항

Recommendations to Overcome the Challenges and Risks

26.5

요약

Summary

참고문헌

참고문헌

References

Appendix

부록

Appendix

Appendix A

전이 기준 예시

Example Transition Criteria

Appendix B

실시간 운영체제 우려 영역

Real-Time Operating System Areas of Concern

Appendix C

안전 필수 시스템을 위한 실시간 운영체제를 선택할 때 고려해야 할 질문

Questions to Consider When Selecting a Real-Time Operating System for a Safety-Critical System

Appendix D

소프트웨어 서비스 히스토리 질문

Software Service History Questions

찾아보기

찾아보기

-