Study for Backend/정보처리기사 따야한다 따고싶다

[정보처리기사] 1과목 소프트웨어 구축 - 소프트웨어 공학 개념

지미니박 2024. 2. 15. 23:30

[ 1 ] 소프트웨어  공학
1. 소프트웨어  공학 (Software  Engineering) 

소프트웨어의 개발, 운용, 유지보수 등의 생명 주기 전반을 체계적이고 서술적이며 정량적으로 다루는 학문이다.

 

2. 소프트웨어  공학의 3R 
⑴ 역공학(Reverse Engineering)
- 기존 개발된 시스템을 CASE(Computer Adied Software Engineering) 도구를 이용하여 요구 분석서, 설계서 등의 문서로 추출
- 개발 단계를 역으로 올라가 기존 개발된 시스템의 코드나 데이터로부터 설계 명세서나 요구 분석서 등을 도출


⑵ 재공학(Re-Engineering)
- 소프트웨어의 위기를 해결하기 위해 개발의 생산성이 아닌 유지보수의 생산성으로 해결하려는 방법
- 기존 소프트웨어를 폐기하지 않고 기능을 개선시키거나 새로운 소프트웨어로 재활용하는 소프트웨어 재사용 공법
- 예방 유지보수 (Preventive Maintenance) 측면에서 소프트웨어 위기 해결 

- 재공학 과정 : 분석(Analysis) -> 재구성(Restructuring) -> 역공학(Reverse Engineering) -> 이관(Migration)


⑶ 재사용(Reuse)
- 이미 개발되어 있는 소프트웨어의 전체 또는 일부분을 다시 사용
- 재사용의 범위 : 
  -> 함수와 객체 재사용 : 클래스나 함수 단위로 구현한 소스코드를 재사용
  -> 컴포넌트 재사용
  -> 애플리케이션 재사용


-  재사용 방법
  ① 합성 중심 (Composition Based, 블록 구성) : 전자 칩과 같은 소프트웨어 부품 즉 블록(모듈) 을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법
  ② 생성 중심 (Generation Based,  패턴 구성) : 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법

 

3.  소프트웨어  개발  단계

계획 -> 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수