정보처리기사

[정보처리기사실기] 소프트웨어 공학 3R / 개발 단계

PEAZH 2024. 6. 21. 10:46
반응형

1과목. 소프트웨어 구축

📒 01. 소프트웨어 공학 개념


1. 소프트웨어 공학

(1) 소프트웨어 공학의 정의 ⭐

- 소프트웨어 위기를 극복하고 품질 높은 소프트웨어를 효율적으로 개발하기 위한 학문

- 품질 좋은 소프트웨어를 빠른 시간 안에 만드는 것

(2) 위기의 원인

- 특성에 대한 이해 부족

- 올바른 설계 등한시함

- 개발에 대한 전문적 교육 부족

(3) 위기 결과

- 성능 및 신뢰성 부족

- 개발 기간 및 비용의 증가

- 생산성 저하

 

2. 소프트웨어 공학의 3R

- 역공학, 재공학, 재사용을 통해 생산성을 극대화하는 기법

(1) 역공학(Reverse Engineering)

- 이미 개발된 시스템을 분석하여 문서를 추출하는 작업

- 개발 단계를 역순으로 거슬러 올라가면서 기존의 코드나 데이터로부터 설계 명세서나 요구 분석서 등을 도출하는 과정

(2) 재공학(Re-Engineering)

- 유지보수의 생산성을 통해 소프트웨어의 위기를 극복하기 위한 방법

- 기존 소프트웨어를 폐기하지 않고, 기능을 개선하거나 새로운 소프트웨어로 재활용하는 공법

- ex) 건물이 있으면 전부 다 보수하는 게 아니라 특정 부분만 보수

- 재공학 과정 : 분석 → 재구성  → 역공학 → 이관

(3) 재사용(Reuse)

- 이미 개발된 소프트웨어의 전체 또는 일부를 다시 사용하는 것

- 재사용 범위 : 함수와 객체, 컴포넌트, 애플리케이션

- 재사용 방법 : 합성 중심(끼워맞추는 것), 생성 중심(추상화)

 

3. 소프트웨어 개발 단계

(1) 계획(Planning)

- 개발할 내용의 명확한 정의

- 비용 및 기간 예측

(2) 요구사항 분석(Requirements Analysis)

- 소프트웨어의 기능, 제약조건, 목표 정의

- 요구사항의 정확한 이해 및 유도

(3) 소프트웨어 설계(Design)

- 시스템의 동작 방식 정의

- 요구사항 분석을 바탕으로 입력자료, 처리내용, 출력자료 등 정의

- 분석한 것을 그림으로 그리는 것 (=모델링)

- 시스템 구조 설계, 프로그램 설계, 사용자 인터페이스 설계

(4) 구현(Development)

- 프로그래밍 언어를 사용하여 실제 프로그램 작성

- 코딩, 디버깅, 단위 테스트 진행

(5) 테스트(Test)

- 구현된 소프트웨어가 요구사항을 만족하는지 검사

- 실행 결과의 정확성 검증 및 평가

(6) 유지보수(Maintenance)

- 사용 중 발견된 문제 수정, 새로운 기능 추가

- 소프트웨어의 지속적 개선

 

더보기

SI - 개발에 특화된 집단

에이전시 - 디자인에 특화된 집단

SM - 유지보수에 특화된 집단

 

참고자료

흥달쌤,  '흥!나게 합격 달성! 2024 정보처리기사 실기 클래스'
 

1억뷰 N잡

[1회 연장 포함] 흥!나게 합격 달성! 2024 정보처리기사 실기 클래스

www.njobler.net

 

 

반응형