본문 바로가기
IVS/SW 공학

[SW공학] SW공학 개요, 소프트웨어 개발수명주기

by 코곰_ 2024. 12. 31.

 

전장 시스템

시스템(System) = 센서(Sensor) + ECU + 액추에이터(Actuator)

- Sensor로 값을 받아(input), ECU로 처리하여, Actuator로 출력(output)

 

 

 

 

소프트웨어 정의와 특징

소프트웨어 정의

: 소스코드와 관련된 모든 산출 문서들

1. 소스코드 프로그램

2. 요구사항 명세서

3. 아키텍처 설계서

 

* 시프트-레프트(조기 테스팅 원리): 테스트를 소프트웨어 개발 수명 주기 초기에 수행하도록 하는 접근법

-> 분석/설계/구현/테스트 중 앞 단계에서부터 품질을 잡아가야 한다.

 

 

소프트웨어 특징

- 비가시성(Invisibility): 구조가 눈에 보이지 않음

- 비선형(Non-Linearity)

 

 

 

 

 

 

 

 

 


소프트웨어 공학 개요

: 소프트웨어의 개발, 운용, 유지보수 및 폐기에 대한 체계적인 공학적 접근 방법

 

목표

1. 재사용 및 생산성 향상(∵ 재사용 재작업 ↓)

2. 소프트웨어 품질 향상

3. 개발/ 유지보수 비용 절감

4. 일정(납기) 준수

 

 

Q. 자동차 부품 회사는 왜 A-SPICE를 해야할까?
A. 유럽 등 해외 자동차 OEM들은 최소 Capability Level 2 이상을 요구한다.
BMW, Daimler, Volvo, GM 등 VDA Scope에 대해 Level 3 이상을 권장. 

 

 

 

 

 

 

ISO 26262 기능 안전 표준

: 자동차에 탑재되는 전기전자시스템의 오동작(Malfunction)과 해저드로 인한 사고를 방지하기 위한 기준을 제공하는 기능 안전 국제표준

* 적용 대상: 자동차, 모터사이클 및 상용차(트럭, 버스) (3.5t 무게제한 X)

* 제외: 특수 목적 차량(장애인 운전 차량 등), Moped(모터 달린 자전거) 등

 

> Part 6. Product development on the software level

 

c.f)

IEC 61508: 전기/전자/프로그램 가능한 전자 안전 관리 시스템의 기능 안전 (일반적인 전장)

- ISO 26262: 자동차 기능안전 표준 규격

- IEC 62279: 철도 소프트웨어 개발 국제 표준

 

 

 

 

 

소프트웨어 개발 생명주기

: 소프트웨어를 어떻게 개발할 것인가에 대해 정의한 최상위 수준의 프로세스

 

역할

- 소프트웨어 개발 단계를 정의

- 소프트웨어 개발 접근 방식 제공

- 마일스톤과 일정 수립의 기준 제공

- 소프트웨어 비용 산정의 기준 제공

 

 

접근 방식

I. Big Bang Approach

II. Evolutionary Approach

 

 

소프트웨어 개발 수명주기의 유형

1. 주먹구구식 개발 모델(Build & Fix Model)

- 요구사항 개발(분석), 설계 단위 없이 구현(코딩) 후 만족할 때까지 수정

- 소프트웨어 크기가 아주 작은 경우에만 가능

 

2. 폭포수 모델(Waterfall Model) ***

요구사항 개발(분석) > 설계 > 구현(코딩) > 테스팅 > 유지보수

- I. Big Bang Approach, 대부분의 경우

- 소프트웨어 크기가 비교적 작고, 고객 요구사항이 명확한 경우에 적용

- 이전 단계의 산출물은 다음 단계의 입력으로 활용

- 이전 단계가 완료될 때까지 다음 단계들은 대기 상태여야 함

유용한 경우

- 요구사항이 100% 가까이 확인 되었을 때

- 요구사항에 대한 이해도가 높을 때

- 요구사항이 변경되지 않을 때

단점

- 요구사항 개발이 명확하지 않을 경우

- 고객은 개발 후반부에나 실제 동작하는 소프트웨어를 확인 가능

 

3. 원형 모델(Prototyping Model)

- 원형을 만들어 고객과 함께 평가 후, 개발될 소프트웨어 요구사항을 명확히 하여 완제품을 만듦

- II. Evolutionary Approach

- 소프트웨어 개발 초기에 고객 요구사항을 파악하기 어려운 경우에 적용

 

4. 나선형 모델(Spiral Model)

- 폭포수 및 원형 모델의 장점을 수용하고 위험 분석을 추가한 모델

- II. Evolutionary Approach

- 위험에 대처 가능하므로 고비용의 기간이 긴 소프트웨어 개발에 적용

 

+ 애자일(Agile)

- 짧은 사이클로 제품을 개발, 테스트하고 피드백을 받아 보완하는 방식

- 분석-설계-구현-테스트 구현 주기를 단축(ex. 6개월 -> 2~4주)

- iteration/ sprint를 작은 단위로 수행

- 자동화가 중요해짐

단점

- 임베디드의 경우, HW와 연동해야 하므로 어려움

 

 

 

 

 

 

 

 

 

 

 

 

'IVS > SW 공학' 카테고리의 다른 글

[SW공학] 소프트웨어 설계  (0) 2025.01.03
[SW공학] 형상관리  (0) 2025.01.03
[SW공학] 비기능 요구사항  (0) 2025.01.02
[SW공학] UML, Usecase Diagram  (2) 2025.01.02
[SW공학] V-model, 소프트웨어 요구 공학  (0) 2024.12.31